@charset "UTF-8";
:root{--ink:#20372e;--muted:#75827b;--green:#184c3b;--lime:#dcf291;--bg:#f5f6f1;--line:#e6eae2;--white:#fff;--shadow:0 12px 45px #18372d12;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #aac767;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #accd91;outline-offset:1px}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:31px;letter-spacing:-1.1px;font-weight:650}h2{font-size:22px;letter-spacing:-.5px}h3{font-size:16px}small{font-size:12px}a{color:var(--green)}svg.ico{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.layout{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:31px 19px 20px;display:flex;flex-direction:column;background:#fbfcf8;border-right:1px solid var(--line)}.brand{display:flex;gap:11px;align-items:center;font-size:25px;font-weight:750;letter-spacing:-.8px;padding:0 13px;margin-bottom:42px}.brandmark{width:36px;height:36px;background:var(--green);border-radius:11px;display:grid;place-items:center;color:var(--lime)}.brandmark .ico{width:25px;height:25px}.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:1.8px;color:#a0aaa2;font-weight:700;padding:0 15px;margin:21px 0 10px}.nav{display:flex;align-items:center;gap:12px;padding:13px 15px;margin-bottom:5px;width:100%;border-radius:11px;text-align:left;color:#6c7d70;background:transparent;font-weight:550}.nav:hover{background:#f0f3e9}.nav.active{background:var(--green);color:#fff;box-shadow:0 6px 15px #184c3b20}.nav.active .ico{color:var(--lime)}.count{margin-left:auto;font-size:11px;min-width:24px;padding:3px 6px;text-align:center;background:#e9efdf;border-radius:6px;color:#61704b}.sidebar .spacer{flex:1}.sidebar-note{padding:16px;background:#eff4e5;border-radius:12px;margin:20px 4px;font-size:12px;line-height:1.65;color:#5c704c}.sidebar-note strong{display:block;color:#32472b;margin-bottom:4px}.user-chip{border-top:1px solid var(--line);padding:17px 8px 0;display:flex;align-items:center;gap:10px;text-align:left;background:transparent}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e8eddc;color:#687b4c;font-size:11px;font-weight:700;flex-shrink:0;object-fit:cover}.avatar.big{width:76px;height:76px;font-size:23px}.user-name{font-size:12px;font-weight:650}.user-role{font-size:10px;color:var(--muted);margin-top:3px}.main{padding:0 34px 34px;min-width:0}.topbar{height:77px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;margin-bottom:29px}.breadcrumbs{font-size:12px;color:var(--muted);display:flex;gap:10px;align-items:center}.breadcrumbs strong{color:#405447;font-weight:500}.top-right{display:flex;gap:18px;align-items:center;font-size:12px;color:var(--muted)}.dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:#749644;margin-right:7px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px}.subtitle{font-size:13px;color:var(--muted);margin-top:9px;line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 15px;border-radius:9px;font-size:12px;font-weight:600;background:white;border:1px solid #dfe6db;color:var(--ink);white-space:nowrap}.btn:hover{background:#f0f5e9}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.primary:hover{background:#23654d}.btn.danger{color:#a54c40;background:#fff6f3;border-color:#f0d9d4}.btn.icon{padding:9px;width:38px;min-height:36px}.btn.quiet{background:transparent;border-color:transparent}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.stat{background:white;border:1px solid var(--line);border-radius:13px;padding:18px 20px;position:relative;overflow:hidden}.stat.green{background:#eaf1dd;border-color:#dfe9cd}.stat-label{display:flex;align-items:center;justify-content:space-between;color:#7a8877;font-size:12px}.stat-number{font-size:32px;font-weight:650;letter-spacing:-1px;margin:12px 0 5px}.stat-note{font-size:11px;color:var(--muted)}.stat-icon{width:30px;height:30px;border-radius:8px;background:#f4f6ef;display:grid;place-items:center;color:#80916b}.green .stat-icon{background:#dbe8c6}.panel{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 3px 15px #18372d03}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:19px 21px;border-bottom:1px solid var(--line)}.period-name{font-size:17px;font-weight:650;letter-spacing:-.3px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:8px 11px;border-radius:8px;color:#9aa697;min-width:220px;background:#fff}.search input{border:0;outline:none;width:100%;font-size:12px;color:var(--ink)}.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.filters select,.filters input{border:1px solid var(--line);background:#fff;color:#677861;border-radius:8px;padding:9px 11px;font-size:12px;max-width:190px}.segment{display:flex;background:#f4f6ef;border-radius:8px;padding:3px;gap:2px}.segment button{padding:7px 11px;border-radius:6px;background:transparent;color:#8b9781;font-size:11px}.segment button.selected{background:#fff;color:var(--green);box-shadow:0 2px 5px #263b2010;font-weight:600}.calendar-wrap{overflow:auto;max-height:64vh;min-height:300px;scrollbar-color:#c9d4c1 #f5f6f1;scrollbar-width:thin}.calendar{border-collapse:separate;border-spacing:0;font-size:11px;width:100%;min-width:max-content}.calendar th,.calendar td{border-right:1px solid #edf0e8;border-bottom:1px solid #edf0e8;text-align:center;padding:0;min-width:62px;height:57px;background:#fff}.calendar th{position:sticky;top:0;z-index:3;background:#fbfcf8;height:64px;color:#849078;font-weight:500}.calendar th .day-number{display:block;font-size:13px;font-weight:650;color:#425642;margin-bottom:6px}.calendar th.weekend,.calendar td.weekend{background:#fafbf7}.calendar th.today{background:#eaf1dd}.calendar th.today .day-number{color:var(--green)}.calendar td.today{background:#fcfdf9}.calendar .name-col{position:sticky;left:0;min-width:266px;max-width:266px;z-index:2;text-align:left;padding:0 13px;background:#fff;border-right:1px solid #dfe6d7;box-shadow:3px 0 5px #20372503}.calendar th.name-col{z-index:5;background:#fbfcf8;color:#75826b;font-size:11px}.employee-line{display:flex;align-items:center;gap:10px}.employee-line .avatar{width:29px;height:29px;font-size:9px}.employee-name{background:none;color:#344d3e;text-align:left;font-weight:600;font-size:11px;max-width:196px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0;display:block}.employee-position{font-size:9px;color:#9aa390;margin-top:5px;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell{height:30px;margin:4px;min-width:49px;border-radius:6px;font-size:9px;font-weight:600;background:transparent;color:#bac3b3;padding:0 4px;transition:transform .15s}.cell:hover{transform:translateY(-1px);background:#eff4e6;color:var(--green)}.cell.booked{background:var(--cell-bg);color:var(--cell-ink)}.cell.absent{color:#a68f77;background:#f7f1e8;font-weight:500}.cell.empty{font-size:18px;opacity:0}.calendar tr:hover .cell.empty{opacity:1}.calendar tr:hover .name-col{background:#fafcf6}.panel-foot{padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;flex-wrap:wrap}.legend{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.legend i{display:inline-block;width:7px;height:7px;border-radius:3px;margin-right:6px}.notice{background:#f4f6e9;border:1px solid #e4e8d5;padding:12px 16px;border-radius:10px;color:#78825b;font-size:12px;display:flex;align-items:center;gap:10px;line-height:1.5;margin:18px 0}.notice.warning{background:#fff8ea;border-color:#f0e3ca;color:#907540}.notice button{color:inherit;background:none;text-decoration:underline;font-size:12px;margin-left:auto}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th{background:#fbfcf8;font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#8b9884;text-align:left;padding:13px 18px;white-space:nowrap}.data-table td{border-bottom:1px solid #eff1eb;padding:15px 18px;vertical-align:middle}.data-table tbody tr:hover{background:#fcfdf9}.data-table .employee-name{font-size:12px;max-width:330px;white-space:normal}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:5px 8px;font-size:10px;background:#f0f3e8;color:#72835f}.badge.green{background:#e6f0da;color:#4d7138}.badge.blue{background:#e8eff7;color:#617d9d}.badge.gold{background:#fff1d7;color:#aa8342}.badge.grey{background:#eff1ed;color:#8e9688}.rating{color:#b79c60;font-size:12px;white-space:nowrap}.empty-state{padding:65px 30px;text-align:center;line-height:1.7;color:var(--muted)}.empty-state h3{color:var(--ink);margin:12px 0}.object-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.object-card{padding:21px;border:1px solid var(--line);background:#fff;border-radius:12px;cursor:pointer;transition:box-shadow .2s,transform .2s}.object-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.object-card h3{line-height:1.5;margin:15px 0 7px;min-height:48px}.object-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:22px;color:var(--muted);font-size:11px}.object-progress{height:4px;background:#f0f3eb;border-radius:5px;margin-top:16px;overflow:hidden}.object-progress i{display:block;height:100%;background:#a0bd79;border-radius:5px}.object-code{font-size:11px;font-weight:700;color:#8c9c73;letter-spacing:.5px}.section-caption{display:flex;justify-content:space-between;align-items:center;margin:24px 0 14px}.body-pad{padding:22px}.availability-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end}.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px;min-width:0}.form-field label{font-size:11px;color:#798875;font-weight:600}.form-field input,.form-field select,.form-field textarea{border:1px solid #dfe6d9;border-radius:8px;padding:11px 12px;width:100%;background:#fff;color:#344c3b;min-height:40px;font-size:13px}.form-field textarea{min-height:74px;resize:vertical}.form-field small{color:var(--muted);line-height:1.5;font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.form-grid .full{grid-column:1/-1}.checks{display:flex;gap:8px;flex-wrap:wrap}.checks label{display:flex;gap:5px;align-items:center;background:#f4f6ed;padding:8px 10px;border-radius:7px;font-size:11px;color:#688051}.checks input{accent-color:var(--green)}.employee-picker{max-height:200px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:6px;margin-bottom:15px}.employee-picker label{display:flex;gap:9px;padding:8px;font-size:12px;border-radius:5px;align-items:center}.employee-picker label:hover{background:#f4f7ec}.employee-picker label span{color:var(--muted);margin-left:auto;font-size:10px}.employee-picker input{accent-color:var(--green)}.shade{position:fixed;inset:0;background:#15302750;backdrop-filter:blur(3px);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.dialog{background:#fff;border-radius:18px;width:570px;max-width:100%;max-height:92vh;overflow:auto;box-shadow:0 35px 90px #142d2d30}.dialog.large{width:760px}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:24px 26px 19px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}.dialog-head h2{font-size:20px}.dialog-body{padding:24px 26px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:17px 26px;border-top:1px solid var(--line)}.form-error{font-size:12px;color:#b65848;background:#fff3ed;padding:10px 12px;border-radius:7px;line-height:1.5;margin:12px 0;display:none}.form-error.visible{display:block}.drawer-shade{justify-content:flex-end;padding:0}.drawer{height:100vh;width:570px;max-width:100%;overflow:auto;background:#fff;box-shadow:-15px 0 80px #15302720}.drawer-head{padding:24px 28px 17px;display:flex;justify-content:space-between;align-items:center;color:#829075;font-size:11px;border-bottom:1px solid var(--line)}.profile-top{padding:28px;display:flex;gap:17px;align-items:center}.profile-name{font-size:21px;line-height:1.35;font-weight:650;letter-spacing:-.5px}.profile-position{color:var(--muted);font-size:12px;margin-top:7px}.profile-tabs{display:flex;gap:19px;padding:0 28px;border-bottom:1px solid var(--line);overflow:auto}.profile-tabs button{padding:15px 0;color:#939f89;background:none;white-space:nowrap;font-size:12px;border-bottom:2px solid transparent}.profile-tabs button.active{color:var(--green);border-color:var(--green);font-weight:650}.profile-body{padding:25px 28px}.profile-section{margin-bottom:28px}.profile-section h3{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.definition-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;border:1px solid var(--line);border-radius:10px;padding:18px}.definition-grid small{color:var(--muted);display:block;font-size:10px;margin-bottom:6px}.definition-grid strong{font-size:13px;font-weight:550;line-height:1.5}.qual-item,.list-item{border-bottom:1px solid var(--line);padding:12px 0;font-size:12px;line-height:1.6}.qual-item small,.list-item small{color:var(--muted);display:block;font-size:11px}.timeline-day{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.timeline-date{color:var(--muted);min-width:85px;font-size:11px}.timeline-name{flex:1}.stars-input{display:flex;gap:8px;margin:18px 0}.stars-input button{font-size:28px;background:transparent;color:#d9dfce}.stars-input button.active{color:#b9a263}.login-screen{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.login-art{background:#184c3b;position:relative;overflow:hidden;color:#fff;padding:60px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.login-art .brand{padding:0;margin:0;color:white}.login-art .brandmark{background:#d9ef8d;color:#184c3b}.login-art h1{font-size:47px;line-height:1.15;font-weight:550;max-width:440px;margin-bottom:25px}.login-art p{font-size:15px;color:#b6cabc;max-width:390px;line-height:1.8}.abstract-schedule{display:grid;gap:12px;transform:rotate(-12deg);width:460px;opacity:.75;margin:42px 0 0 32px}.abstract-row{height:43px;display:flex;gap:10px}.abstract-row i{height:100%;border-radius:9px;background:#2c6049;display:block}.abstract-row:nth-child(2) i{background:#d9ef8d}.abstract-row:nth-child(3) i{background:#799d6f}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:35px}.login-form{max-width:380px;width:100%}.login-form .eyebrow{color:#8fa076;letter-spacing:2px;font-size:10px;font-weight:700;margin-bottom:18px}.login-form h2{font-size:29px;margin-bottom:10px}.login-form .subtitle{margin-bottom:30px}.login-form .btn.primary{width:100%;min-height:45px;margin-top:7px}.login-footer{margin-top:25px;font-size:11px;line-height:1.7;color:var(--muted)}.loading{padding:25vh 20px;text-align:center;color:var(--muted)}#toasts{position:fixed;bottom:25px;right:25px;z-index:100;display:grid;gap:10px}.toast{background:var(--green);color:white;padding:14px 20px;box-shadow:var(--shadow);border-radius:10px;font-size:13px;max-width:380px}.toast.error{background:#a95243}.inline-select{width:100%;margin-bottom:12px}.import-preview{margin-top:20px;border-top:1px solid var(--line);padding-top:20px}.issue{padding:13px 16px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.65}.issue strong{display:block}.issue .actions{margin-top:8px}.source-note{font-size:11px;color:var(--muted);line-height:1.7}.mobile-menu{display:none}.pagination{display:flex;align-items:center;gap:8px}.qual-editor{border:1px solid var(--line);padding:13px;border-radius:9px;margin-bottom:10px}.icon-empty{color:#a6b78c}.source-time{font-size:9px;display:block;color:inherit;opacity:.65}.hint{font-size:11px;color:var(--muted);line-height:1.7;margin-bottom:13px}.history-details{font-family:inherit;white-space:pre-wrap;word-break:break-word;font-size:11px;max-height:260px;overflow:auto;background:#f7f9f2;padding:12px;border-radius:8px}.check-line{display:flex;gap:8px;align-items:center;font-size:12px;margin-bottom:15px}.check-line input{accent-color:var(--green)}.attention{color:#9b6f3d}
@media(min-width:1550px){.main{padding-left:45px;padding-right:45px}.calendar .name-col{min-width:290px;max-width:290px}.calendar th,.calendar td{min-width:70px}}
.cell.empty:focus-visible{opacity:1}
@media(max-width:1150px){.layout{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding-left:12px;padding-right:12px}.brand{font-size:23px}.main{padding:0 22px 25px}.stats{gap:10px}.stat{padding:15px}.availability-form{grid-template-columns:repeat(3,1fr)}.top-right .date-top{display:none}}
@media(max-width:800px){.layout{display:block}.sidebar{position:fixed;left:-250px;z-index:40;width:236px;transition:left .2s}.sidebar.open{left:0;box-shadow:20px 0 50px #17372930}.main{padding:0 15px 20px}.topbar{height:62px;margin-bottom:22px}.mobile-menu{display:flex}.breadcrumbs{gap:7px}.top-right{gap:6px}.top-right .session-label{display:none}.page-heading{align-items:flex-start;flex-wrap:wrap}h1{font-size:25px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat-number{font-size:27px}.stat{padding:14px}.panel-head{padding:15px;flex-wrap:wrap}.toolbar{padding:12px}.search{min-width:180px;flex:1}.filters{width:100%}.filters select{max-width:160px}.calendar .name-col{min-width:205px;max-width:205px}.employee-name{max-width:140px}.employee-position{max-width:140px}.calendar-wrap{max-height:66vh}.calendar th,.calendar td{min-width:57px}.calendar .name-col .avatar{display:none}.panel-foot{padding:13px}.availability-form{grid-template-columns:1fr 1fr}.object-grid{grid-template-columns:1fr}.login-screen{display:block}.login-art{display:none}.login-form-wrap{min-height:100vh;padding:25px}.dialog-body,.dialog-head,.profile-body,.profile-top{padding:21px}.dialog-actions{padding:16px 21px}.shade{padding:10px}.drawer-shade{padding:0}.data-table td,.data-table th{padding:12px}.profile-tabs{padding:0 21px;gap:16px}.form-grid{gap:0 10px}.top-right .btn{min-width:auto;font-size:10px}.availability-form .btn{grid-column:1/-1}.source-note{margin-top:8px}}

[hidden]{display:none!important}

/* ИСК АС • Бригада 0.4. Синяя палитра и информационные панели. */
:root{--ink:#142b4d;--muted:#647f9d;--green:#0a4eaa;--lime:#e6f5ff;--bg:#eaf2fc;--line:#d7e5f7;--shadow:0 12px 40px #133d7a19}
body{background:linear-gradient(115deg,#e5f0fe 0%,#edf5ff 48%,#dcecff 100%);color:var(--ink)}
.sidebar{background:linear-gradient(165deg,#062b66 0%,#0b4b9e 52%,#07346b 100%);border-right:0;color:#fff}
.brand{color:#fff}.brandmark{background:#d8efff;color:#0b4b99}.nav-label{color:#95c5f6}.nav{color:#d5e8ff}.nav:hover{background:#ffffff1c;color:#fff}.nav.active{background:#fff;color:#123f7c;box-shadow:0 9px 18px #031a445e}.nav.active .ico{color:#1369bd}
.sidebar-note{background:#fff2;color:#dfedff}.sidebar-note strong{color:#fff}.user-chip{border-color:#fff3;color:#fff}.user-chip .user-name{color:#fff}.user-chip .user-role{color:#cde4ff}
.topbar{border-bottom-color:#c6dcf8}.panel,.stat,.object-card{border-color:#d4e3f8;box-shadow:0 8px 25px #0d42840b}.stat{background:linear-gradient(160deg,#fff,#f1f7ff)}
.btn.primary,.toast{background:#0a58b8;color:#fff}.btn.primary:hover{background:#074994}.btn.danger{color:#a62f4c}
.badge.blue{background:#dcecff;color:#0a4e9d}.badge.green{background:#dbf1ff;color:#126498}.badge.gold{background:#fff0d1;color:#965d12}
.nav .count{background:#fff2;color:#fff}.sidebar .count{color:#fff}.sidebar .nav.active .count{color:#0c4e9e;background:#deedff}
.login-art{background:linear-gradient(145deg,#04265e 0%,#0c58b1 72%,#1181d8 100%)}.login-art .brandmark{background:#effaff;color:#074e9a}.login-art p{color:#d2e6ff}.abstract-row i{background:#2d76c5}.abstract-row:nth-child(2) i{background:#9ddaff}.abstract-row:nth-child(3) i{background:#3f92dd}
.login-form-wrap{background:#f3f8ff}.login-form .eyebrow{color:#1762b9}.login-form h2{color:#142b4d}
.employee-picker label:hover,.calendar tr:hover .name-col{background:#edf6ff}.checks label{background:#e7f1ff;color:#145397}.checks input,.employee-picker input,.check-line input{accent-color:#095bae}
.form-field input,.form-field select,.form-field textarea{border-color:#c5d9f1;color:#153c67}.form-field label{color:#58789b}.history-details{background:#eef6ff}
.hours-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0 4px}.hours-card{padding:18px;border-radius:13px;background:linear-gradient(155deg,#e7f2ff,#fff);border:1px solid #bcd7f9}.hours-card small{color:#4c77a8;font-weight:600;display:block}.hours-card strong{font-size:31px;display:block;color:#0a4c9c;margin:11px 0}.hours-card span{font-size:11px;color:#507ca9}.picker-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:-5px 0 9px}.history-days{max-height:370px;overflow:auto;padding-right:6px}
@media(max-width:800px){.sidebar{box-shadow:10px 0 45px #07285519}.hours-cards{grid-template-columns:1fr}.hours-card strong{font-size:25px}}

/* v0.5 staffing and approvals */
.staff-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}
.staff-kpi{background:#edf4ff;border:1px solid #bdd2f5;border-radius:14px;padding:16px;display:grid;gap:8px}
.staff-kpi small{font-size:13px;color:#37517b}.staff-kpi strong{font-size:30px;color:#0751a4}
.pending-booking{outline:2px dashed #c48e20;outline-offset:-3px}
@media(max-width:760px){.staff-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.6: полноэкранное синее меню и прокрутка независимо от содержимого. */
@media(min-width:801px){
 .layout{display:block;min-height:100vh}
 .sidebar{position:fixed;z-index:45;top:0;bottom:0;left:0;width:236px;height:100dvh;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#83afd566 transparent}
 .main{margin-left:236px;min-width:0}
}
.sidebar{isolation:isolate;background:linear-gradient(165deg,#062b66 0%,#0b4b9e 52%,#07346b 100%) fixed;color:#fff}
.sidebar .spacer{flex:1 0 18px}
.sidebar .nav{flex-shrink:0;color:#e2efff}
.sidebar .nav-label{flex-shrink:0;color:#aed6ff}
.sidebar .sidebar-note,.sidebar .user-chip{flex-shrink:0}
.sidebar .user-chip{background:#ffffff10;border:1px solid #ffffff26;color:#fff}
.sidebar .nav:not(.active):hover{background:#ffffff25;color:#fff}
@media(max-width:1150px) and (min-width:801px){.sidebar{width:205px}.main{margin-left:205px}}
@media(max-width:800px){.sidebar{height:100dvh;overflow-y:auto;z-index:75;background:linear-gradient(165deg,#062b66,#0b4b9e,#07346b)}.main{margin-left:0}}
.object-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;margin:4px 0 9px}
.object-legend .active{color:#11845a;font-weight:650}.object-legend .finished{color:#a45d14;font-weight:650}
.object-group-active{color:#137a59}.object-group-planned{color:#175ab3}.object-group-finished{color:#995b15}
.finished-check{margin:12px 0;padding:12px;background:#fff1dc;border:1px solid #efc88d;border-radius:9px;color:#874a13}
.login-list{width:100%;height:auto!important;min-height:205px;max-height:235px;overflow-y:auto;padding:6px!important}
.login-list option{padding:9px 10px;border-bottom:1px solid #e6edf6;white-space:normal}
.login-list option:checked{background:#d7eaff;color:#083c78}
.login-form{max-width:455px}.login-form-wrap{overflow-y:auto}

/* Occupational safety panel / 14-day expiry monitoring */
.safety-requirements{padding:15px 16px;background:#eef6ff;border:1px solid #bdd7f9;border-radius:11px;margin:18px 0}
.safety-requirements h3{margin-bottom:8px}
.safety-requirements .checks{display:flex;flex-wrap:wrap;gap:8px}
.safety-requirements .checks label{white-space:normal;padding:9px 11px}
.safety-table{width:100%;min-width:770px}
.safety-table th{white-space:nowrap}
.safety-table td{vertical-align:middle}
.safety-kpis .safety-error{background:#fff1ee;border-color:#efbfb8}
.safety-kpis .safety-error strong{color:#a32b29}
.safety-kpis .safety-warning{background:#fff7df;border-color:#ebd18e}
.safety-kpis .safety-warning strong{color:#9d6a10}
.badge.safety-expired{background:#fee6e2;color:#a42c2b;font-weight:750}
.badge.safety-soon{background:#fff0cc;color:#9d6212;font-weight:700}
.badge.safety-valid{background:#e0f5e9;color:#0c795a}
.badge.safety-unknown,.badge.safety-missing{background:#e9eef5;color:#60748a}
@media(min-width:801px){.sidebar{box-sizing:border-box;bottom:0;overscroll-behavior:contain}}

/* v0.7 · ИСК АС: подрядчики, шильдики, исторические дни и мягкая анимация. */
:root{--ink:#142c4a;--green:#0c4c8e;--lime:#d9edff;--bg:#edf4ff;--line:#d6e4f5}
@keyframes rise07{from{opacity:.6;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes shimmer07{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes pulse07{0%,100%{box-shadow:0 0 0 0 #1a83de19}50%{box-shadow:0 0 0 6px #1a83de09}}
.main{background:linear-gradient(160deg,#e9f2ff 0%,#f6faff 52%,#eef5ff 100%)}
.page-heading h1{color:#092c60}
.page-heading{animation:rise07 .36s ease-out both}
.panel,.object-card,.staff-kpi{animation:rise07 .25s ease both}
.brandmark{background:linear-gradient(145deg,#0c74d3,#083c86);color:#fff;box-shadow:0 6px 22px #053c864a}
.sidebar .brandmark{background:#e9f6ff;color:#095094}
.sidebar .brand{color:#fff}
.sidebar .nav.active{background:linear-gradient(100deg,#ffffffed,#d6ebff);color:#073c87;box-shadow:0 9px 30px #021f5155}
.sidebar .nav.active svg{stroke:#0865b6}
.sidebar .sidebar-note{background:#ffffff12;color:#eef7ff;padding:14px;border:1px solid #ffffff24;border-radius:14px;line-height:1.7}
.sidebar .sidebar-note strong{color:#fff}
.sidebar .nav .count{background:#dceaff;color:#0e478b}
.subcontractor-ribbon{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:22px 0 24px}
.subcontractor-ribbon>div{position:relative;overflow:hidden;border:1px solid #afcaf3;background:linear-gradient(135deg,#ffffff,#e6f1ff);padding:20px;border-radius:18px;min-height:122px;animation:rise07 .36s ease-out both;transition:transform .2s,box-shadow .2s}
.subcontractor-ribbon>div:nth-child(2){animation-delay:.05s}.subcontractor-ribbon>div:nth-child(3){animation-delay:.1s}.subcontractor-ribbon>div:nth-child(4){animation-delay:.15s}
.subcontractor-ribbon>div:hover{transform:translateY(-3px);box-shadow:0 12px 30px #18529417}
.subcontractor-ribbon span{display:block;color:#50709c;font-weight:650;font-size:13px}.subcontractor-ribbon strong{display:block;color:#094b9d;font-size:39px;line-height:1.3;margin-top:12px}
.subcontractor-ribbon>div:before{content:'';position:absolute;right:-25px;top:-25px;width:95px;height:95px;border-radius:50%;background:#b4dcff36}
.contractor-label{display:inline-flex;align-items:center;white-space:nowrap;gap:6px;border-radius:7px;background:#064982;color:#fff;font-size:10px;font-weight:800;letter-spacing:.095em;padding:7px 10px;text-transform:uppercase}
.contractor-alert{padding:15px 17px;margin-bottom:18px;border-radius:12px;border:1px solid #a9c9ef;background:linear-gradient(105deg,#0c59a2,#07519a);color:#fff;font-weight:750;letter-spacing:.04em}
.subcontractor-detail .section-caption{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.subcontractor-detail h3{margin-top:28px;margin-bottom:12px}
.subcontractor-detail .definition-grid{margin:15px 0 20px}
.review-card{border:1px solid #d4e5f7;border-radius:13px;padding:14px 16px;margin-top:10px;background:linear-gradient(120deg,#f7fbff,#eaf3ff)}
.review-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.review-top strong{color:#e49d24;font-size:19px;letter-spacing:2px}.review-top span{color:#6784a7;font-size:12px}.review-card p{white-space:pre-wrap}
.subcontractor-stat-inline{margin-top:18px;padding:14px 16px;background:#e9f3ff;border-radius:11px;display:flex;align-items:center;gap:15px;flex-wrap:wrap;color:#205178}
.historic-cell{background:#e1ebf8!important;color:#24548b!important;border-color:#cbd9ec!important;font-weight:650}
.historic-cell .source-time{color:#346b9d}
.historic-cell:hover{background:#cbe1fc!important}
.cell:not(:disabled):hover,.object-card:hover{animation:pulse07 2s ease-in-out infinite}
@media(max-width:1120px){.subcontractor-ribbon{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.subcontractor-ribbon{grid-template-columns:1fr}.subcontractor-ribbon>div{min-height:90px}.subcontractor-ribbon strong{font-size:32px}}
@media(prefers-reduced-motion:reduce){.panel,.object-card,.page-heading,.staff-kpi,.subcontractor-ribbon>div,.cell:not(:disabled):hover{animation:none!important;transition:none!important}}
.source-future{background:#fdf4df!important;color:#9f6516!important;border:1px dashed #e7bf73!important}
.month-summary{margin:20px 0;padding:18px;border:1px solid #d6e6f7;border-radius:14px;background:linear-gradient(145deg,#f9fcff,#edf5ff)}
.month-summary>h3{margin-bottom:6px}.month-summary>.hint{margin-bottom:12px}
.month-row{display:grid;grid-template-columns:130px minmax(80px,1fr) 80px 115px;gap:10px;align-items:center;margin:9px 0;color:#41648d;font-size:12px}
.month-row>strong{color:#114c90;font-size:13px}
.month-track{height:11px;background:#d8e7fa;border-radius:8px;overflow:hidden}
.month-track>i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#72bbfa,#0c62bb);animation:rise07 .4s ease-out}
@media(max-width:600px){.month-row{grid-template-columns:100px minmax(60px,1fr) 65px;font-size:10px}.month-row small{display:none}}

/* 0.8.7: visual budget breach and daily tabulation */
.over-budget{background:#ffebec!important;border:2px solid #c62828!important;color:#831b1b!important}
.budget-negative{color:#b11616!important;font-weight:800;background:#fff1f1!important;border:1px solid #d12d2d!important;padding:10px!important;border-radius:8px}
tr.over-budget>td{background:#fff0f0!important}
tr.report-pending>td{background:#fff7df}
.report-worker{display:grid;grid-template-columns:1fr 100px 22px;gap:12px;align-items:center;padding:7px 6px;border-bottom:1px solid #d8e4ed}
.report-worker small{display:block;color:#607080;font-size:12px}
.report-worker input{width:98px;box-sizing:border-box;border:1px solid #aac0d4;border-radius:6px;padding:9px;font-size:15px}

/* Бригада 0.8.8 — clean, legible blue planning workspace */
:root{--calendar-blue:#075ab2;--calendar-line:#dfe9f6;--calendar-ink:#17375f}
.calendar-hero{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 18px;padding:23px 27px;border-radius:18px;background:linear-gradient(115deg,#07448b 0%,#0871ca 66%,#2c92e4 100%);box-shadow:0 15px 35px #0d5aa529;color:white;position:relative;overflow:hidden}
.calendar-hero::after{content:'';position:absolute;right:12%;bottom:-64px;width:215px;height:215px;border:1px solid #ffffff29;border-radius:50%;pointer-events:none}
.calendar-hero>div{position:relative;z-index:1}.calendar-hero span{display:block;font-weight:650;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#b9dcff;margin-bottom:10px}.calendar-hero h2{font-size:24px;font-weight:700;letter-spacing:-.35px}.calendar-hero p{font-size:12px;color:#d3e8ff;margin-top:7px}
.calendar-hero-figures{display:flex;gap:10px;flex-wrap:wrap}.calendar-hero-figures>div{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:9px 17px;min-width:116px;min-height:75px;border:1px solid #ffffff38;border-radius:11px;background:#ffffff16;backdrop-filter:blur(8px)}.calendar-hero-figures b{font-size:26px;line-height:1.2}.calendar-hero-figures small{font-size:10px;color:#e2efff;margin-top:4px}
.calendar-panel{overflow:hidden;border-radius:16px;box-shadow:0 14px 36px #0e529810}.calendar-control-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:17px 20px;border-bottom:1px solid #e0eaf8;background:#fff}.calendar-date-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.calendar-date-nav .period-name{font-size:14px;min-width:120px;text-align:center;color:#194d80;font-weight:750}.calendar-date-nav input{padding:7px 10px;color:#35638f;font-size:12px;border-color:#d3e2f5}.calendar-control-panel .segment{padding:3px;background:#eff6ff;border-radius:10px}.calendar-control-panel .segment button.selected{background:#0864b8;color:#fff;box-shadow:0 3px 10px #0b69c030}
.team-department-bar{padding:14px 20px 15px;background:linear-gradient(#f9fcff,#f4f9ff);border-bottom:1px solid #dfebfa}.team-department-title{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:10px}.team-department-title strong{color:#194678;font-size:13px}.team-department-title span{color:#6c88a7;font-size:11px}.department-chips{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.department-chip{min-height:30px;display:flex;gap:7px;align-items:center;color:#345b86;border:1px solid #cedff4;border-radius:8px;background:#fff;padding:6px 12px;font-size:11px;font-weight:650;transition:background .15s,transform .15s}.department-chip:hover{background:#e7f1ff;transform:translateY(-1px)}.department-chip.selected{background:#0b60b4;color:#fff;border-color:#0b60b4;box-shadow:0 3px 9px #0c61b51e}.department-chip span{padding:1px 5px;border-radius:5px;background:#e7f0fb;color:#37648e;font-size:10px}.department-chip.selected span{background:#ffffff24;color:#fff}
.calendar-panel .toolbar{background:#fff;border-bottom:1px solid #dce8f8}.calendar-modern{max-height:64vh;min-height:270px;border-radius:0;scrollbar-color:#b8d0eb #f5f9fe}.calendar-modern .calendar{font-size:11px}.calendar-modern .calendar th,.calendar-modern .calendar td{border-right:1px solid #e2ebf6;border-bottom:1px solid #e8f0fa;min-width:69px;height:60px}.calendar-modern .calendar th{height:88px;background:#f5f9ff;z-index:4;color:#587398}.calendar-modern .calendar th.name-col{z-index:9;min-width:274px;max-width:274px;padding:0 18px;border-right:2px solid #b8d2ed;background:#edf5ff}.calendar-head-name{font-size:11px;font-weight:850;letter-spacing:.065em;display:block;color:#1b5184}.calendar-head-note{display:block;color:#819ab2;font-size:10px;font-weight:500;margin-top:7px}.calendar-modern .calendar .name-col{min-width:274px;max-width:274px;background:#fff;border-right:2px solid #c8dbf1}.calendar-modern .calendar th .calendar-weekday{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#718cb0;font-weight:750;margin:6px 0 4px}.calendar-modern .calendar th .day-number{font-size:21px;line-height:1.1;color:#1c4b83;font-weight:800;margin:0 0 4px}.calendar-day-count{display:block;font-size:9px;color:#6686a7;white-space:nowrap}.calendar-modern .calendar th.today{background:#dbeeff;box-shadow:inset 0 4px #0075d6}.calendar-modern .calendar th.today .day-number{color:#005cb6}.calendar-modern .calendar td.today{background:#edf7ff!important}.calendar-modern .calendar th.weekend{background:#f5f7fc;color:#8b96a8}.calendar-modern .calendar td.weekend{background:#fafcff}.calendar-modern .calendar th.new-month{border-left:3px solid #9fc5f6}.calendar-person-sub{display:block;color:#7b95b4;font-size:10px;margin:2px 0 0 40px}.calendar-modern .employee-name{color:#1f4974;font-size:12px;font-weight:700}.calendar-modern .employee-position{font-size:10px;color:#8298b1}.calendar-modern .avatar{background:#dceaff;color:#124d86}.calendar-modern .calendar-employee-row:hover>td{background:#f1f7ff}.calendar-modern .calendar-employee-row:hover>.name-col{background:#e7f2ff}.calendar-modern .cell{min-width:57px;height:38px;display:flex;align-items:center;justify-content:center;flex-direction:column;margin:5px auto;border:1px solid transparent;border-radius:9px;font-size:11px;font-weight:750;transition:box-shadow .15s,transform .15s,background .15s}.calendar-modern .cell.booked{background:#dfefff;border-color:#b4d4f7;color:#155da7}.calendar-modern .cell.historic-cell{background:#e4ecf7!important;border-color:#d4e2f3!important;color:#30648f!important}.calendar-modern .cell.absent{background:#fff0d7;color:#93600d}.calendar-modern .cell.empty{color:#4b89c6;background:#f4f9ff;opacity:.65;border:1px dashed #c8dcf3;font-size:17px}.calendar-modern tr:hover .cell.empty,.calendar-modern .cell.empty:focus-visible{opacity:1;border-color:#2a83ce}.calendar-modern .cell:hover{box-shadow:0 5px 14px #1061ac20;transform:translateY(-2px)}.calendar-modern .cell .source-time{font-size:9px;margin:0}.calendar-modern .calendar-department-divider td{background:linear-gradient(90deg,#e7f1ff,#f5f9ff)!important;height:31px!important;text-align:left;padding:0 17px;color:#14579b;font-weight:800;font-size:11px;letter-spacing:.085em;border-bottom:1px solid #c3dcfa}.calendar-footer{background:#fbfdff;border-top:1px solid #e1ebfa;flex-wrap:wrap}.calendar-footer .legend{gap:15px;flex-wrap:wrap}.calendar-legend-today{border-left:4px solid #0071d8;padding-left:7px;font-weight:650;color:#155eaa}
/* Archived projects and traffic-light diagnostics. Never imply "fact" when tabulated hours are absent. */
.objects-view-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:6px 0 15px}.objects-view-tabs button{padding:11px 17px;border-radius:11px;border:1px solid #cedef1;background:#fff;color:#315b89;font-size:13px;font-weight:650}.objects-view-tabs button.selected{background:#075bb0;border-color:#075bb0;color:#fff;box-shadow:0 7px 15px #095cb126}.objects-view-tabs b{font-size:11px;padding:4px 7px;margin-left:5px;background:#e6f0fb;color:#0e599f;border-radius:7px}.objects-view-tabs .selected b{background:#ffffff26;color:#fff}.object-toolbar{border:0;padding:2px 0 15px}.object-health-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;font-size:11px;color:#647c99;margin-bottom:17px}.object-health-legend span{display:inline-flex;align-items:center;gap:6px}.health-dot,.health-indicator i{display:inline-block;flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:#a6b8ce}.health-dot.dangerous,.health-danger i{background:#d74444}.health-dot.attention,.health-warning i{background:#e4a52d}.health-dot.success,.health-ok i{background:#29a172}.health-dot.muted,.health-neutral i,.health-archive i{background:#9caab9}
.object-grid-modern{grid-template-columns:repeat(auto-fill,minmax(325px,1fr));gap:17px}.object-status-card{position:relative;overflow:hidden;border-radius:16px!important;border:1px solid #d7e4f2!important;border-left:5px solid #9faec2!important;padding:21px 22px 17px!important;background:linear-gradient(160deg,#fff,#f9fcff)!important;box-shadow:0 7px 24px #0a47940b!important;transition:transform .15s,box-shadow .15s}.object-status-card:hover{box-shadow:0 13px 29px #0a479422!important}.object-status-card.health-danger{border-left-color:#dc3939!important;background:linear-gradient(155deg,#fff,#fff5f5)!important}.object-status-card.health-warning{border-left-color:#e5a321!important;background:linear-gradient(155deg,#fff,#fffaf0)!important}.object-status-card.health-ok{border-left-color:#25a778!important}.object-status-card.health-archive{border-left-color:#a7b2c2!important;background:#f6f8fb!important}.object-card-top,.object-card-foot{display:flex;justify-content:space-between;gap:13px;align-items:center}.object-status-card h3{min-height:0;margin:16px 0 5px;font-size:17px;line-height:1.35;color:#153d6d}.object-location{font-size:11px;color:#8595a7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.object-diagnostics{display:grid;gap:10px;margin:18px 0 15px}.object-diagnostics>div{padding:10px 12px;border-radius:10px;background:#f1f6fc}.object-diagnostics small{display:block;color:#6f8eab;font-size:10px;margin-bottom:5px}.object-diagnostics strong{display:block;color:#1e4c78;font-size:12px;line-height:1.45}.object-card-foot{padding-top:11px;border-top:1px solid #e1e8f2}.health-indicator{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;font-size:11px;font-weight:800;color:#657994;background:#eef3f8}.health-indicator.health-danger{background:#ffebeb;color:#a91d29}.health-indicator.health-warning{background:#fff1d7;color:#986111}.health-indicator.health-ok{background:#e6f6ee;color:#14734c}.health-indicator.health-archive{background:#e8ecf1;color:#536477}.open-object{display:flex;gap:3px;align-items:center;color:#2a68a7;font-size:11px;font-weight:650}.open-object .ico{width:14px;height:14px}.object-health-table tr.health-danger td{background:#fff2f2}.object-health-table tr.health-warning td{background:#fffaf0}.object-health-table tr.health-ok td{background:#f9fefa}.object-health-table tr.health-archive td{background:#f5f7fa}.budget-number-negative{color:#b11b22;font-weight:800}.object-profile-health{padding:16px 17px;border:1px solid #d2e0ef;border-left:5px solid #abbccf;border-radius:12px;background:#f6f9fd}.object-profile-health.health-danger{border-color:#efb7bd;border-left-color:#db414d;background:#fff4f4}.object-profile-health.health-warning{border-left-color:#dfa13b;background:#fffaec}.object-profile-health.health-ok{border-left-color:#2eaf78}.object-profile-health strong{color:#215281}.object-profile-health.health-danger strong{color:#aa252d}.object-profile-health p{margin-top:7px;font-size:12px}.object-profile-health small{display:block;margin-top:10px;color:#6e8194}
@media(max-width:900px){.calendar-hero{padding:20px}.calendar-hero-figures>div{min-width:90px;padding:9px}.calendar-modern .calendar th.name-col,.calendar-modern .calendar .name-col{min-width:215px;max-width:215px}.calendar-person-sub{margin-left:0}.calendar-date-nav{gap:7px}.calendar-modern .calendar th,.calendar-modern .calendar td{min-width:57px}.object-grid-modern{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.calendar-modern .cell:hover,.object-status-card:hover,.department-chip:hover{transform:none}}

/* 0.8.9: desktop roster filters, free-person booking and object plan/fact */
.calendar-availability-filter{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 19px;background:linear-gradient(90deg,#e7f4ff,#f4f9ff);border-bottom:1px solid #d1e3f8;color:#174773}
.calendar-availability-filter .check-line{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:13px;font-weight:800}
.calendar-availability-filter .check-line input{width:17px;height:17px;accent-color:#0a62bb}
.calendar-availability-filter .free-day-label{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;color:#276494}
.calendar-availability-filter input[type=date]{border:1px solid #a9c9e9;border-radius:8px;padding:7px 9px;background:white;color:#124c80;font:inherit}
.calendar-availability-filter small{flex-basis:100%;color:#607e9e;font-size:11px}
.calendar-quick-book{background:#076abc;border-radius:7px;color:#fff;border:0;padding:5px 10px;margin:6px 0 0 40px;font-size:11px;font-weight:750;cursor:pointer}
.calendar-quick-book:hover{background:#004f99}
.object-diagnostics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.object-diagnostics>.object-metric:last-child{grid-column:1/-1}
.object-diagnostics .object-metric{padding:12px;border:1px solid #e1ebf9;background:#f2f7ff;border-radius:10px;min-width:0}
.object-diagnostics .object-metric strong{color:#114c85;font-size:17px;letter-spacing:-.2px}
.object-diagnostics .object-metric small{font-size:11px;line-height:1.4;margin-bottom:5px}
.object-diagnostics .object-metric .object-metric-note{display:block;font-size:12px;font-weight:750;color:#3673a5;margin-top:7px}
.object-diagnostics .object-metric.metric-shortage{background:#fff0ed;border-color:#f5bab2}
.object-diagnostics .object-metric.metric-shortage strong,.object-diagnostics .object-metric.metric-shortage .object-metric-note{color:#ac2533}
.object-card-report-caveat{font-size:11px;color:#9a691a;margin:0 0 11px;font-weight:650}
.object-health-table .metric-shortage{background:#fff0ed!important;color:#a62531;font-weight:750}
.object-health-table td small{display:block;color:#647993;font-size:10px;margin-top:4px}
.object-report-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 17px;border:1px solid #b4d5f4;border-radius:12px;background:#edf7ff;margin:19px 0}
.object-report-inline strong{display:block;font-size:14px;color:#094a8a}
.object-report-inline small{display:block;font-size:11px;color:#6687a7;max-width:350px;margin-top:4px}
.object-report-inline input[type=date]{padding:10px;border:1px solid #a8caeb;border-radius:8px;max-width:190px;color:#21507b;background:#fff}
@media(max-width:500px){.object-diagnostics{grid-template-columns:1fr}.object-diagnostics>.object-metric:last-child{grid-column:auto}.calendar-availability-filter{align-items:flex-start}}

/* 0.8.10 — expanded approval review */
.review-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:#f3f7fd;padding:18px;border-radius:12px;margin-bottom:18px}.review-summary>div{min-width:0}.review-summary small{display:block;color:#657e9e;margin-bottom:4px}.review-summary strong{display:block;overflow-wrap:anywhere;color:#18365c}.review-note{padding:12px 16px;border-left:3px solid #3574c8;background:#f5f8fc;margin-bottom:16px;white-space:pre-wrap}.review-table{margin:12px 0 16px}.review-table td{vertical-align:middle}.review-warning{padding:14px 16px;margin:12px 0;border-radius:9px;background:#fff0e9;color:#a63e2d;line-height:1.5}@media(max-width:650px){.review-summary{grid-template-columns:1fr}}

/* Сводная по охране труда — компактный блок в карточке */
.ot-summary{border:1px solid #dce8f5;border-radius:14px;padding:16px;background:#f8fbff}.ot-summary-top{display:flex;justify-content:space-between;align-items:center;gap:14px}.ot-summary-top strong{display:block;color:#173d6d;font-size:16px}.ot-summary-top small{display:block;color:#66809d;margin-top:5px}.ot-summary .hint{font-size:12px;line-height:1.5}.ot-group{border:1px solid #dfe9f3;border-radius:10px;background:#fff;margin-top:8px;overflow:hidden}.ot-group summary{padding:12px 14px;cursor:pointer;font-weight:650;color:#20456d;display:flex;justify-content:space-between}.ot-count{background:#eaf3ff;border-radius:12px;padding:1px 9px;color:#1e61a5}.ot-items{padding:0 14px 8px}.ot-item{display:flex;justify-content:space-between;gap:18px;border-top:1px solid #edf1f6;padding:10px 0;font-size:13px}.ot-item span{color:#526b86}.ot-item strong{text-align:right;overflow-wrap:anywhere;max-width:50%;color:#173d6d}.ot-empty{padding:12px;border-radius:10px;background:#fff5eb;color:#8b5824}@media(max-width:650px){.ot-item{display:block}.ot-item strong{display:block;max-width:100%;text-align:left;margin-top:5px}}

.safety-unverified{background:#fff3dc!important;color:#885d12!important}.safety-notrequired{background:#edf1f5!important;color:#596b7d!important}

.badge.safety-urgent{background:#fff0d5;color:#9a4900;border:1px solid #ffbb65}.badge.safety-unverified{background:#eef1f6;color:#505e73}.badge.safety-expired{background:#ffe5e7;color:#a31425}

/* OT 0.8.20 */
.ot-stats{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;margin:20px 0}.ot-stat{text-align:left;background:#fff;border:1px solid #d8e5f5;border-radius:14px;padding:15px 17px;cursor:pointer;color:#153b69}.ot-stat small{display:block;font-size:12px;color:#64809e}.ot-stat strong{display:block;font-size:28px;margin-top:9px}.ot-stat.selected{border-color:#1765b6;box-shadow:0 0 0 2px #cfe3ff}.ot-stat.ot-red strong{color:#bb3131}.ot-stat.ot-warn strong{color:#a46710}.ot-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:16px}.ot-tools{display:flex;gap:9px;flex-wrap:wrap}.ot-tools input,.ot-tools select{min-height:42px;border:1px solid #d5e3f3;border-radius:9px;padding:8px 12px;background:white;max-width:100%}.ot-tools input{min-width:260px}.ot-table-wrap{overflow:auto}.ot-main-table td{vertical-align:top}.ot-person{border:0;background:none;color:#135da8;text-align:left;font:inherit;font-weight:700;padding:0;cursor:pointer}.ot-person:hover{text-decoration:underline}.ot-sub{display:block;color:#7891a9;font-size:11px;margin-top:4px}.ot-main-table td:nth-child(2){min-width:260px}@media(max-width:950px){.ot-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Object planning 0.8.21 */

.leader-choice .hint{margin-top:6px;font-size:12px}
.object-plan-hint{margin:18px 0 10px;line-height:1.6}
input[readonly][name="planned_man_hours"]{background:#edf3e7;font-weight:700}

/* Integrated employee combobox, 0.8.22. */
.leader-choice{position:relative;min-width:0}
.leader-combobox{position:relative}
.leader-combobox input{width:100%;padding-right:42px;text-overflow:ellipsis}
.leader-toggle{position:absolute;right:2px;top:2px;bottom:2px;width:38px;background:transparent;color:#315780;font-size:24px;border-radius:8px}
.leader-toggle:hover{background:#edf3f9}
.leader-popup{position:absolute;left:0;right:0;top:calc(100% + 5px);background:#fff;border:1px solid #b6cce3;border-radius:10px;box-shadow:0 10px 28px #164f7830;z-index:20;overflow:hidden}
.leader-popup[hidden]{display:none}
.leader-popup-caption{padding:10px 12px;font-size:11px;font-weight:600;color:#58708d;background:#f3f7fb;border-bottom:1px solid #e1eaf4}
.leader-options{max-height:min(130px,22vh);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.leader-options [role="option"]{padding:11px 13px;cursor:pointer;border-bottom:1px solid #eef3f8}
.leader-options [role="option"]:hover,.leader-options [role="option"].active{background:#e9f2fc}
.leader-options [aria-selected="true"]{background:#edf4e6}
.leader-options strong{display:block;font-size:13px;font-weight:500;overflow-wrap:anywhere}
.leader-options small{display:block;color:#75869b;font-size:11px;margin-top:3px}
.leader-no-results{padding:12px;color:#75869b;font-size:12px;line-height:1.5}

/* Full department names remain readable when the filter wraps. */
.department-chip{max-width:100%;text-align:left;line-height:1.4}.department-chip span{flex-shrink:0}

/* Object diagnostics: labelled headcounts, cumulative hours and delivery date. */
.object-grid-modern{grid-template-columns:repeat(auto-fill,minmax(min(100%,325px),1fr))}
.object-status-card{min-width:0}
.object-status-card h3,.object-status-card .object-code{overflow-wrap:anywhere}
.object-status-card .object-card-top{align-items:flex-start;flex-wrap:wrap;gap:8px}
.object-status-card .object-card-period{margin-top:9px;font-size:10px;line-height:1.5;color:#73859a;overflow-wrap:anywhere}
.object-status-card .object-diagnostics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.object-status-card .object-diagnostics>.object-metric{grid-column:auto;padding:12px;min-width:0;background:#f3f6fa;border:1px solid #dfe7f0;border-radius:10px}
.object-status-card .object-diagnostics>.object-metric-hours,.object-status-card .object-diagnostics>.object-metric-deadline{grid-column:1/-1}
.object-status-card .object-diagnostics>.object-metric-cumulative{grid-column:1/-1}
.object-status-card .object-card-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:15px 0 13px}
.object-status-card .summary-metric{min-width:0;padding:10px 11px;background:#f2f6fb;border:1px solid #dfe7f0;border-radius:9px}
.object-status-card .summary-metric small,.object-status-card .summary-metric span{display:block;font-size:9px;line-height:1.4;color:#6c8095;overflow-wrap:anywhere}
.object-status-card .summary-metric strong{display:block;margin:4px 0;font-size:12px;line-height:1.35;color:#174b7d;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.object-status-card .summary-metric:nth-child(3){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 9px}
.object-status-card .summary-metric:nth-child(3) small,.object-status-card .summary-metric:nth-child(3) span{grid-column:1/-1}
.object-status-card .summary-metric.metric-danger,.object-hours-detail.metric-danger{background:#fff0f1;border-color:#efb7bd}
.object-status-card .summary-metric.metric-warning,.object-hours-detail.metric-warning{background:#fff8e8;border-color:#efd5a3}
.object-status-card .summary-metric.metric-ok,.object-hours-detail.metric-ok{background:#edf8f2;border-color:#c2e3d2}
.object-status-card .summary-metric.metric-danger strong,.object-hours-detail.metric-danger strong,.object-hours-detail.metric-danger .object-detail-variance{color:#ae2736}
.object-status-card .summary-metric.metric-warning strong,.object-hours-detail.metric-warning strong,.object-hours-detail.metric-warning .object-detail-variance{color:#916015}
.object-status-card .summary-metric.metric-ok strong,.object-hours-detail.metric-ok strong,.object-hours-detail.metric-ok .object-detail-variance{color:#21724f}
.object-hours-profile{margin:20px 0 8px;padding:17px;border:1px solid #dce6f0;border-radius:13px;background:#fbfdff}
.object-hours-profile>h3{margin:0 0 5px!important}
.object-hours-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.object-hours-detail{min-width:0;padding:14px;border:1px solid #dfe7f0;border-radius:11px;background:#f3f6fa}
.object-hours-detail h4{margin:0 0 9px;font-size:13px;color:#31506f}
.object-hours-detail>div{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid #dce5ee}
.object-hours-detail>div small{font-size:10px;line-height:1.4;color:#6c8095}
.object-hours-detail>div strong{font-size:15px;white-space:nowrap;color:#174b7d;font-variant-numeric:tabular-nums}
.object-hours-detail p{margin:9px 0 0;font-size:10px;line-height:1.55;color:#65798e}
.object-hours-detail .object-detail-period{display:block;margin:0 0 6px;font-size:10px;line-height:1.5;color:#526e8b}
.object-hours-detail .object-detail-formula{padding:8px 9px;border-radius:7px;background:#fff;font-weight:650;color:#31506f}
.object-hours-detail .object-detail-variance{display:block;margin-top:10px;font-size:12px;color:#31506f}
.object-hours-detail .object-detail-extra{padding:9px;border-radius:7px;background:#fff8e8;color:#76551f}
.object-hours-detail .object-detail-extra strong{font-size:inherit;color:inherit}
.object-hours-profile+.month-summary{margin-top:17px}
@media(max-width:560px){.object-hours-detail-grid{grid-template-columns:1fr}.object-hours-profile{padding:12px}}
.object-status-card .object-metric h4{margin:0 0 10px;font-size:12px;line-height:1.4;font-weight:750;color:#31506f;overflow-wrap:anywhere}
.object-status-card .object-cumulative-period{display:block;margin:-4px 0 10px;font-size:10px;line-height:1.5;color:#6c8095;overflow-wrap:anywhere}
.object-status-card .object-metric-values{display:grid;gap:9px;margin:0;min-width:0}
.object-status-card .object-metric-values>div{min-width:0}
.object-status-card .object-metric-values dt{font-size:10px;line-height:1.4;color:#6c8095;overflow-wrap:anywhere}
.object-status-card .object-metric-values dd{margin:3px 0 0;font-size:19px;line-height:1.3;font-weight:750;color:#174b7d;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.object-status-card .object-metric-values dd span,.object-status-card .object-hours-balance strong span{font-size:11px;font-weight:500}
.object-status-card .object-metric-values dd .metric-value-unknown{font-size:13px;color:#6f8092}
.object-status-card .object-metric-hours .object-metric-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.object-status-card .object-diagnostics .object-metric-note{display:block;margin:10px 0 0;font-size:10px;line-height:1.5;font-weight:600;color:#6a7b8f;overflow-wrap:anywhere}
.object-status-card .object-hours-balance{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:5px 12px;margin-top:11px;padding-top:9px;border-top:1px solid #dbe4ee;font-size:11px;color:#607891}
.object-status-card .object-hours-balance strong{font-size:16px;font-weight:750;line-height:1.4;overflow-wrap:anywhere}
.object-status-card .object-metric-deadline{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:5px 12px}
.object-status-card .object-metric-deadline h4{margin:0}
.object-status-card .object-deadline-date{font-size:16px!important;line-height:1.5;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.object-status-card .object-metric-deadline .object-metric-note{grid-column:1/-1;margin:0}
.object-status-card .object-diagnostics .metric-danger{background:#fff0f1;border-color:#efb7bd}
.object-status-card .object-diagnostics .metric-warning{background:#fff8e8;border-color:#efd5a3}
.object-status-card .object-diagnostics .metric-ok{background:#edf8f2;border-color:#c2e3d2}
.object-status-card .metric-danger .object-metric-note,.object-status-card .metric-danger .object-hours-balance,.object-status-card .metric-danger .object-hours-balance strong,.object-status-card .metric-danger .object-deadline-date{color:#ae2736}
.object-status-card .metric-warning .object-metric-note,.object-status-card .metric-warning .object-hours-balance,.object-status-card .metric-warning .object-hours-balance strong,.object-status-card .metric-warning .object-deadline-date{color:#916015}
.object-status-card .metric-ok .object-metric-note,.object-status-card .metric-ok .object-hours-balance,.object-status-card .metric-ok .object-hours-balance strong{color:#21724f}
.object-status-card .object-card-report-caveat{font-size:10px;line-height:1.5;font-weight:500;overflow-wrap:anywhere}
.object-status-card .object-card-foot{align-items:flex-start;flex-wrap:wrap;gap:8px}
.object-status-card .health-indicator{max-width:100%;line-height:1.5;font-size:10px;overflow-wrap:anywhere}
.object-status-card .open-object{margin-left:auto;flex-shrink:0}
.object-health-table .object-table-staff>span{display:block;margin-bottom:5px;line-height:1.5}
.object-health-table .metric-cell-danger{background:#fff0f1!important;color:#a62531}
.object-health-table .metric-cell-warning{background:#fff8e8!important;color:#916015}
.object-health-table .metric-cell-ok{background:#edf8f2!important;color:#21724f}
.object-health-table .metric-text-danger{color:#ae2736!important}
.object-health-table .metric-text-warning{color:#916015!important}
.object-health-table .metric-text-ok{color:#21724f!important}
@media(max-width:900px){.object-grid-modern{grid-template-columns:1fr}}
@media(max-width:420px){.object-status-card{padding:17px 16px!important}.object-status-card .object-diagnostics{grid-template-columns:1fr}.object-status-card .object-metric-deadline{grid-template-columns:1fr}.object-status-card .object-metric-values{grid-template-columns:repeat(2,minmax(0,1fr))}.object-status-card .object-metric h4{margin-bottom:8px}}
.object-schedule{margin:22px 0 10px;padding:16px;border:1px solid #d8e5f3;border-radius:14px;background:#fbfdff}.object-sheet-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.object-sheet-heading h3{margin:0 0 5px!important}.object-sheet-heading p{margin:0;font-size:11px}.object-sheet-month{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.object-sheet-month>strong{color:#254e77;text-transform:capitalize;font-size:13px}.object-sheet-month input[type=month]{padding:7px 9px;border:1px solid #c7d9eb;border-radius:8px;background:#fff;color:#24527d;font:inherit}.object-sheet-month button{min-height:32px}.object-sheet-legend{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin:14px 0 9px;font-size:10px;color:#617b94}.object-sheet-legend span{display:inline-flex;align-items:center;gap:5px}.object-sheet-legend i{font-style:normal;font-weight:800}.plan-key,.object-sheet-plan{color:#155da7}.fact-key,.object-sheet-fact{color:#19734e}.object-sheet-wrap{max-height:56vh;overflow:auto;border:1px solid #dce6f1;border-radius:9px;background:#fff;scrollbar-color:#b8cce1 #f3f7fb}.object-sheet-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:10px;font-variant-numeric:tabular-nums}.object-sheet-table th,.object-sheet-table td{min-width:49px;padding:5px 4px;text-align:center;border-right:1px solid #e8eef5;border-bottom:1px solid #e8eef5;white-space:nowrap}.object-sheet-table thead th{position:sticky;top:0;z-index:3;height:36px;background:#eff5fc;color:#58728d}.object-sheet-table thead th span,.object-sheet-table thead th b{display:block}.object-sheet-table thead th span{font-size:8px;color:#8296aa}.object-sheet-table thead th b{font-size:11px;color:#315879}.object-sheet-table .weekend{background:#f7f8fb;color:#8995a3}.object-sheet-table .today{box-shadow:inset 0 0 0 2px #5ba3e2;background:#edf6ff}.object-sheet-table .object-sheet-sticky{position:sticky;left:0;z-index:4;min-width:190px;max-width:190px;text-align:left;padding-left:10px;background:#f5f9fe;border-right:2px solid #d4e2f0}.object-sheet-table tbody .object-sheet-person{position:sticky;left:0;z-index:2;min-width:190px;max-width:190px;text-align:left;padding-left:10px;background:#fff;border-right:2px solid #d4e2f0}.object-sheet-person .employee-name,.object-sheet-person strong{font-size:10px}.object-sheet-table .object-sheet-sticky-total,.object-sheet-table tbody .object-sheet-total{position:sticky;right:0;z-index:2;min-width:75px;background:#f4f8fd;border-left:2px solid #d4e2f0}.object-sheet-table thead .object-sheet-sticky-total,.object-sheet-table tfoot .object-sheet-sticky-total{z-index:5}.object-sheet-table tbody tr:hover td{background-color:#f7fbff}.object-sheet-table tbody tr:hover .object-sheet-person{background:#eef6ff}.object-sheet-table .object-sheet-day{background:#fff}.object-sheet-table .object-sheet-day.pending{background:#fff8e9}.object-sheet-table .object-sheet-day.has-fact{background:#eef8f2}.object-sheet-table .object-sheet-plan,.object-sheet-table .object-sheet-fact,.object-sheet-table .object-sheet-total span,.object-sheet-table .object-sheet-total small,.object-sheet-table tfoot small{display:block;line-height:1.35}.object-sheet-table .object-sheet-fact,.object-sheet-table .object-sheet-total small,.object-sheet-table tfoot small{font-size:9px}.object-sheet-table .object-sheet-empty{color:#c0cbd6}.object-sheet-table tfoot th,.object-sheet-table tfoot td{position:sticky;bottom:0;z-index:2;background:#eff5fc;color:#294f73;font-weight:800}.object-sheet-table tfoot .object-sheet-sticky{z-index:4}.object-sheet-table tfoot .object-sheet-sticky-total{z-index:5}.object-sheet-empty-state{height:65px;text-align:center!important;color:#74889d!important;font-size:12px!important}.object-schedule>.hint{margin:10px 0 0;font-size:10px;line-height:1.5}
@media(max-width:600px){.object-schedule{padding:11px}.object-sheet-heading{align-items:flex-start}.object-sheet-month{width:100%}.object-sheet-table .object-sheet-sticky,.object-sheet-table tbody .object-sheet-person{min-width:145px;max-width:145px}.object-sheet-table th,.object-sheet-table td{min-width:43px;padding:4px 3px}}

.object-sheet-table .object-sheet-cell-edit{display:inline-flex;min-height:0;padding:1px 3px;border:0;border-radius:4px;background:transparent;color:#155da7;font-size:9px;line-height:1.35}.object-sheet-table .object-sheet-cell-edit:hover{text-decoration:underline;background:#eaf3fc}.object-sheet-table .object-sheet-cell-edit:focus-visible{outline:2px solid #aac767;outline-offset:1px}

/* Full-screen employee and object cards */
.drawer{width:100vw;max-width:100vw;height:100vh;height:100dvh;border-radius:0;overflow-y:auto}.drawer-head{position:sticky;top:0;z-index:5;background:#fff}.fullscreen-shade{padding:0}.dialog.fullscreen{position:fixed;inset:0;width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:none;border-radius:0;overflow:hidden;display:flex;flex-direction:column}.dialog.fullscreen #modal-form{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden}.dialog.fullscreen .dialog-body{flex:1;min-height:0;overflow:auto}.dialog.fullscreen .dialog-actions{flex-shrink:0}

.calendar-list-count{font-size:11px;color:var(--muted);text-align:right;line-height:1.6}
@media(max-width:760px){.calendar-list-count{text-align:left;width:100%}}

.app-brandmark{font-family:Segoe UI,Arial,sans-serif;font-weight:800;font-size:19px;position:relative;display:inline-flex;align-items:center;justify-content:center}.app-brandmark:after{content:'';position:absolute;width:8px;height:4px;border-left:2px solid #b7dc5b;border-bottom:2px solid #b7dc5b;transform:rotate(-45deg);right:1px;bottom:3px}

.installer-periods{padding:20px;border:1px solid #c9dcf3;border-radius:16px;margin:18px 0;background:#f6faff}.installer-periods .hint{margin:10px 0 16px}.installer-period{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end;margin:12px 0}.installer-period>.btn{margin-bottom:2px}@media(max-width:720px){.installer-period{grid-template-columns:1fr 1fr}.installer-period>.btn{justify-self:start}}
.app-brandmark{padding:0;background:transparent;overflow:hidden}.app-brandmark:after{display:none}.app-brandmark img{width:100%;height:100%;object-fit:contain}.deadline-details h4{margin:20px 0 10px}.deadline-details td small{display:block;margin-top:5px}
