:root{color:#17325c;font-synthesis:none;text-rendering:optimizelegibility;--navy:#102c56;--blue:#0f56d9;--blue-hover:#0b47b8;--line:#d7e0ed;--line-strong:#c8d4e4;--muted:#70829d;--even:#eaf0f6;--weekend:#f2dcdb;--row-height:44px;--header-top:40px;--day-column-width:24px;--c1:54px;--c2:82px;--c3:82px;--c4:330px;--c5:96px;--c6:92px;--c7:76px;--c8:96px;--c9:88px;--c10:104px;--c11:92px;background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:#fff;min-width:320px;min-height:100%;margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{color:inherit}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{background:#fff;flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.app-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:68px;padding:10px 24px;display:flex}.brand-block{align-items:center;gap:14px;min-width:0;display:flex}.brand-mark{color:#fff;background:var(--blue);border-radius:9px;place-items:center;width:40px;height:40px;font-size:20px;font-weight:800;display:grid;box-shadow:0 5px 14px #0f56d929}.brand-copy{min-width:0}.company-name{color:var(--blue);letter-spacing:.04em;margin-bottom:2px;font-size:12px;font-weight:800;display:block}.brand-block h1{color:var(--navy);letter-spacing:-.03em;margin:0;font-size:clamp(20px,1.7vw,26px);line-height:1.08}.object-name{color:var(--muted);margin:3px 0 0;font-size:12px;line-height:1.2}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.updated-label{color:var(--muted);margin-right:4px;font-size:12px}.button,.icon-button{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:42px;font-size:14px;font-weight:650;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s;display:inline-flex}.button{padding:0 16px}.button svg,.icon-button svg{width:19px;height:19px}.button.primary{background:var(--blue);color:#fff;box-shadow:0 5px 14px #0f56d926}.button.primary:hover:not(:disabled){background:var(--blue-hover);transform:translateY(-1px)}.button.secondary{color:#17325c;border-color:var(--line-strong);background:#fff}.button.secondary:hover{background:#f5f8fc;border-color:#aebdd1}.button.ghost{color:#5f718d;background:0 0}.button.ghost:hover{background:#eef3f9}.button:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}.button.full{width:100%}.icon-button{border-color:var(--line);background:#fff;width:42px;padding:0}.icon-button:hover{background:#f5f8fc}main{flex:1;min-width:0;min-height:0}.filter-bar{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:70px;padding:14px 26px;display:flex}.search-control,.select-control{border:1px solid var(--line-strong);background:#fff;border-radius:7px;align-items:center;height:40px;transition:border-color .15s,box-shadow .15s;display:flex}.search-control:focus-within,.select-control:focus-within{border-color:#7ca4e8;box-shadow:0 0 0 3px #0f56d914}.search-control{gap:8px;width:min(270px,28vw);padding:0 12px}.search-control svg{color:#71839f;width:18px}.search-control input,.select-control select{color:#17325c;background:0 0;border:0;outline:0;width:100%;font-size:13px}.search-control input::placeholder{color:#8c9cb3}.select-control{min-width:160px;padding:0 6px 0 11px}.multi-select-control{padding:0;position:relative}.multi-select-control summary{color:#17325c;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;align-items:center;height:100%;padding:0 26px 0 11px;font-size:13px;list-style:none;display:flex;overflow:hidden}.multi-select-control summary::-webkit-details-marker{display:none}.multi-select-control summary:after{content:"";border-bottom:1px solid #667892;border-right:1px solid #667892;width:7px;height:7px;position:absolute;top:50%;right:11px;transform:translateY(-65%)rotate(45deg)}.multi-select-options{z-index:40;border:1px solid var(--line-strong);background:#fff;border-radius:7px;min-width:210px;max-height:260px;padding:7px;position:absolute;top:calc(100% + 5px);left:0;overflow:auto;box-shadow:0 14px 32px #102c562e}.multi-select-options label{color:#17325c;cursor:pointer;border-radius:5px;align-items:center;gap:7px;padding:6px;font-size:12px;display:flex}.multi-select-options label:hover{background:#eef4fb}.multi-select-options input{accent-color:var(--blue)}.filter-hint{color:#91a0b6;white-space:nowrap;margin-left:auto;font-size:12px}.legend-row{min-height:50px;color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding:8px 26px;font-size:12px;display:flex}.assignee-panel{gap:12px;display:grid}.assignee-free-date{color:#526985;align-items:center;gap:8px;font-size:12px;font-weight:650;display:flex}.assignee-free-date input{border:1px solid var(--line-strong);color:#17325c;border-radius:6px;height:34px;padding:0 8px}.assignee-legend{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:13px;display:flex}.legend-item{color:#415777;align-items:center;gap:6px;font-weight:650;display:inline-flex}.legend-item small{color:#71839f;font-size:11px;font-weight:650}.legend-item i{border-radius:2px;width:10px;height:10px;box-shadow:inset 0 0 0 1px #102c5614}.progress-overview{border:1px solid var(--line);background:#f8fafd;border-radius:9px;gap:14px;margin:0 24px 16px;padding:16px;display:grid}.progress-overview.empty{color:var(--muted)}.progress-overview h2,.progress-overview h3,.progress-overview p{margin:0}.progress-overview h2{color:var(--navy);font-size:17px}.progress-overview h3{color:var(--navy);font-size:13px}.progress-overview span,.progress-overview p{color:var(--muted);font-size:11px}.progress-heading-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-heading-row>div{gap:4px;display:grid}.overall-progress{gap:9px;display:grid}.overall-progress strong{color:var(--blue);font-size:24px}.progress-overview progress,.sheet-progress progress{width:100%;accent-color:var(--blue);background:#dce5f1;border:0;border-radius:999px;overflow:hidden}.progress-overview progress{height:8px}.progress-overview progress::-webkit-progress-bar{background:#dce5f1;border-radius:999px}.sheet-progress progress::-webkit-progress-bar{background:#dce5f1;border-radius:999px}.progress-overview progress::-webkit-progress-value{background:var(--blue);border-radius:999px}.sheet-progress progress::-webkit-progress-value{background:var(--blue);border-radius:999px}.progress-overview progress::-moz-progress-bar{background:var(--blue);border-radius:999px}.sheet-progress progress::-moz-progress-bar{background:var(--blue);border-radius:999px}.section-progress-grid{grid-auto-columns:minmax(190px,1fr);grid-auto-flow:column;gap:9px;padding-bottom:2px;display:grid;overflow-x:auto}.section-progress-card{border:1px solid var(--line);background:#fff;border-radius:7px;gap:7px;min-width:0;padding:11px;display:grid}.section-progress-card strong{color:#315f9f;font-size:13px}.edit-actions{background:#f4f8ff;border:1px solid #b8ccec;border-radius:9px;align-items:center;gap:10px;min-height:64px;margin:0 26px 12px;padding:11px 12px 11px 16px;display:flex}.edit-actions>div{gap:3px;margin-right:auto;display:grid}.edit-actions strong{color:var(--navy);font-size:14px}.edit-actions span{color:#6d7f98;font-size:12px}.schedule-frame{border:1px solid var(--line-strong);border-radius:9px;min-height:0;margin:0 14px 12px;overflow:hidden;box-shadow:0 8px 24px #203d6712}.schedule-scroller{scrollbar-color:#adb9c8 #eff3f7;scrollbar-width:thin;height:100%;min-height:0;max-height:none;overflow:auto}.schedule-canvas{width:max-content;min-width:100%;position:relative}.schedule-table{border-collapse:separate;border-spacing:0;table-layout:fixed;color:#17325c;width:max-content;font-size:12px}.schedule-table th,.schedule-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);height:var(--row-height);vertical-align:middle;background:#fff;padding:3px 9px}.schedule-table th{z-index:7;height:var(--header-top);color:#17325c;text-align:center;white-space:nowrap;background:#f9fbfd;font-size:11px;font-weight:750;position:sticky;top:0}.schedule-table thead tr:nth-child(2) th{top:var(--header-top)}.schedule-table tbody tr:nth-child(2n) td{background:var(--even)}.schedule-table tbody tr:hover td{background:#f3f7fc}.schedule-table tbody tr:nth-child(2n):hover td{background:#e2ebf5}.schedule-table thead tr:first-child>th:first-child,.schedule-table tbody td:first-child{width:var(--c1);min-width:var(--c1);max-width:var(--c1);text-align:center}.schedule-table thead tr:first-child>th:nth-child(2),.schedule-table tbody td:nth-child(2){width:var(--c2);min-width:var(--c2);max-width:var(--c2);text-align:center}.schedule-table thead tr:first-child>th:nth-child(3),.schedule-table tbody td:nth-child(3){width:var(--c3);min-width:var(--c3);max-width:var(--c3);text-align:center}.schedule-table thead tr:first-child>th:nth-child(4),.schedule-table tbody td:nth-child(4){width:var(--c4);min-width:var(--c4);max-width:var(--c4)}.schedule-table thead tr:first-child>th:nth-child(5),.schedule-table tbody td:nth-child(5){width:var(--c5);min-width:var(--c5);max-width:var(--c5);text-align:center}.schedule-table thead tr:first-child>th:nth-child(6),.schedule-table tbody td:nth-child(6){width:var(--c6);min-width:var(--c6);max-width:var(--c6);text-align:center}.schedule-table thead tr:first-child>th:nth-child(7),.schedule-table tbody td:nth-child(7){width:var(--c7);min-width:var(--c7);max-width:var(--c7);text-align:center}.schedule-table thead tr:first-child>th:nth-child(8),.schedule-table tbody td:nth-child(8){width:var(--c8);min-width:var(--c8);max-width:var(--c8);text-align:center}.schedule-table thead tr:first-child>th:nth-child(9),.schedule-table tbody td:nth-child(9){width:var(--c9);min-width:var(--c9);max-width:var(--c9);text-align:center}.schedule-table thead tr:first-child>th:nth-child(10),.schedule-table tbody td:nth-child(10){width:var(--c10);min-width:var(--c10);max-width:var(--c10);text-align:center}.schedule-table thead tr:first-child>th:nth-child(11),.schedule-table tbody td:nth-child(11){width:var(--c11);min-width:var(--c11);max-width:var(--c11);text-align:center}.schedule-table thead tr:first-child>th:nth-child(n+5):nth-child(-n+11),.schedule-table tbody td:nth-child(n+5):nth-child(-n+11){padding-inline:6px}.schedule-table .sticky-col{z-index:4;position:sticky}.schedule-table thead .sticky-col{z-index:10;background:#f9fbfd}.schedule-table .col-number{left:0}.schedule-table .col-section{left:var(--c1)}.schedule-table .col-sheet{left:calc(var(--c1) + var(--c2))}.schedule-table .col-title{left:calc(var(--c1) + var(--c2) + var(--c3))}.schedule-table .sticky-col.col-progress{box-shadow:5px 0 8px -8px #163056a6}.schedule-table tbody tr:nth-child(2n) .sticky-col{background:var(--even)}.schedule-table tbody tr:hover .sticky-col{background:#f3f7fc}.pinnable-header{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;display:grid}.pinnable-header span{text-overflow:ellipsis;overflow:hidden}.pinnable-header input{width:13px;height:13px;accent-color:var(--blue);cursor:pointer;margin:0}.sortable-header{grid-template-columns:minmax(0,1fr) 21px;align-items:center;gap:4px;min-width:0;display:grid}.sortable-header>span{text-overflow:ellipsis;overflow:hidden}.sort-button{border:1px solid var(--line);color:#627791;cursor:pointer;background:#fff;border-radius:4px;place-items:center;width:21px;height:21px;display:grid}.sort-button:hover,.sort-button.active{color:var(--blue);background:#eef4ff;border-color:#9bb7e6}.sort-button svg{width:13px;height:13px}.section-badge,.status-badge{white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;font-weight:750;display:inline-flex}.section-badge{color:#fff;min-width:46px;padding:5px 7px}.section-badge.concrete{background:#8064a2}.section-badge.metal{background:#ed7d31}.status-badge{padding:6px 8px;font-size:11px}.status-badge.planned{color:#285887;background:#dceaf7}.status-badge.in_progress{color:#7b5600;background:#fff0bf}.status-badge.completed{color:#27653b;background:#d5efd6}.completed-row td{color:#748197}.completed-row .col-title span{-webkit-text-decoration:line-through #b4bdca;text-decoration:line-through #b4bdca}.schedule-table tbody tr.row-partial td{color:#52627a}.schedule-table tbody tr.row-empty td{color:#7f8da0}.schedule-table tbody tr.row-partial td:not(.dependency-cell)>*{opacity:.72}.schedule-table tbody tr.row-empty td:not(.dependency-cell)>*{opacity:.5}.row-partial .row-number,.row-empty .row-number{font-weight:650}.overdue-row .row-number{color:#a21e1e;font-weight:800;box-shadow:inset 3px 0 #d93636}.title-cell{align-items:center;gap:8px;min-width:0;line-height:1.35;display:flex}.title-cell>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.analysis-button{border:1px solid var(--line);color:#5c7190;cursor:pointer;background:#fff;border-radius:5px;flex:0 0 27px;height:27px}.analysis-button:hover{color:var(--blue);background:#edf4ff;border-color:#91add7}.dependency-editor{text-align:left;gap:5px;display:grid;position:relative}.dependency-picker summary{color:#45617f;cursor:pointer;background:#fff;border:1px solid #bdcbe0;border-radius:5px;padding:5px 7px;list-style-position:inside}.schedule-table tbody td.dependency-cell{overflow:visible}.dependency-options{z-index:60;border:1px solid var(--line-strong);background:#fff;border-radius:7px;gap:6px;width:300px;padding:7px;display:grid;position:absolute;top:58px;left:0;box-shadow:0 12px 28px #102c562e}.dependency-option-list{max-height:188px;overflow:auto}.dependency-options label{cursor:pointer;border-radius:4px;align-items:flex-start;gap:7px;padding:6px;display:flex}.dependency-options label:hover{background:#eef4fb}.dependency-options span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dependency-done{width:100%;height:34px;margin-top:5px;font-size:12px}.dependency-chips,.dependency-summary{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.dependency-chip{color:#285887;background:#edf4ff;border:1px solid #9db4d5;border-radius:999px;align-items:center;min-height:24px;padding:2px 7px;font-size:10px;font-weight:750;display:inline-flex}button.dependency-chip{cursor:pointer}.dependency-error{color:#a83232;font-size:10px;line-height:1.25}.start-mode-label{color:#667b98;font-size:11px}.schedule-modes{border:1px solid var(--line);color:#526985;background:#fafcff;border-radius:8px;align-items:center;gap:12px;min-height:46px;margin:0 26px 12px;padding:7px 10px 7px 14px;font-size:12px;display:flex}.schedule-modes strong{color:var(--navy)}.analysis-key{align-items:center;gap:5px;display:inline-flex}.analysis-key:before{content:"";border:2px solid;border-radius:3px;width:11px;height:11px}.predecessor-key{color:#8064a2}.selected-key{color:#0f56d9}.successor-key{color:#d8651f}.hidden-dependency-key{color:#6c7d94;font-size:11px}.schedule-modes .button{height:32px;margin-left:auto}.dependency-selected{outline-offset:-2px;outline:2px solid #0f56d9}.dependency-predecessor .row-number{box-shadow:inset 4px 0 #8064a2}.dependency-successor .row-number{box-shadow:inset 4px 0 #ed7d31}.dependency-unrelated{opacity:.38}.dependency-arrow-overlay{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:visible}.dependency-arrow{fill:none;stroke-width:2px;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.dependency-arrow.predecessor{stroke:#8064a2}.dependency-arrow.successor{stroke:#d8651f}.dependency-arrowhead.predecessor{fill:#8064a2}.dependency-arrowhead.successor{fill:#d8651f}.dependency-arrow-label{paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-size:11px;font-weight:800}.dependency-arrow-label.predecessor{fill:#8064a2}.dependency-arrow-label.successor{fill:#d8651f}.comparison-toolbar{flex-wrap:wrap}.comparison-toolbar>.button:first-child{margin-left:0}.comparison-select{align-items:center;gap:7px;display:flex}.comparison-select span{color:#526985;font-size:11px}.comparison-select select{border:1px solid var(--line-strong);color:#17325c;background:#fff;border-radius:6px;max-width:250px;height:32px}.comparison-added .row-number{box-shadow:inset 4px 0 #2f8a46}.removed-items td,.removed-items .sticky-col{color:#8f3030;background:#fff1f1!important}.status-badge.removed{color:#902e2e;background:#ffdada}.changed-cell{position:relative}.changed-cell:after{content:"";border:4px solid #d58a00;border-color:#d58a00 #d58a00 #0000 #0000;position:absolute;top:2px;right:2px}.assignee-code{letter-spacing:.02em;font-weight:750}.month-header{text-transform:capitalize;min-width:32px;height:var(--header-top)!important;background:#f7f9fc!important}.timeline-day-column,.day-header,.timeline-cell{width:var(--day-column-width);min-width:var(--day-column-width);max-width:var(--day-column-width)}.day-header{height:46px!important;top:var(--header-top)!important;padding:4px 0!important}.day-header span,.day-header small{line-height:1.35;display:block}.day-header small{color:#75869f;font-size:9px;font-weight:600}.day-header.weekend,.timeline-cell.weekend{background:var(--weekend)!important}.day-header.past,.timeline-cell.past{color:#8b95a3;background:#f0f2f5!important}.day-header.today,.timeline-cell.today{position:relative}.day-header.today:after,.timeline-cell.today:after{content:"";z-index:4;pointer-events:none;background:#d93636;width:2px;position:absolute;top:0;bottom:0;right:-1px}.day-header.today:after{top:calc(-1 * var(--header-top))}.timeline-cell{position:relative;padding:0!important}.gantt-bar{z-index:1;white-space:nowrap;align-items:center;height:27px;padding:0 7px;font-size:10px;font-weight:750;display:flex;position:absolute;top:9px;left:0;right:0;overflow:visible;box-shadow:inset 0 0 0 1px #0e2a4e0f}.gantt-bar.past-bar{filter:saturate(0)}.historical-bar{z-index:0;height:37px;box-shadow:none;pointer-events:none;background:#ffffff7a;border:2px dashed #5f6f84;top:4px}.gantt-bar.first{border-radius:5px 0 0 5px}.gantt-bar.last{border-radius:0 5px 5px 0}.gantt-bar.first.last{border-radius:5px}.empty-timeline-header,.empty-timeline-cell{background-image:linear-gradient(90deg,#0000 33px,#d7e0edad 34px),linear-gradient(#0000 56px,#d7e0ed61 57px);background-size:34px 100%,100% 58px;width:420px;min-width:420px}.empty-timeline-cell{color:#8797ad;text-align:center;font-size:12px}.empty-timeline-cell span{border:1px solid var(--line);background:#ffffffd9;border-radius:6px;padding:7px 12px;display:inline-flex}.cell-input{color:#17325c;background:#fff;border:1px solid #bdcbe0;border-radius:5px;outline:none;width:100%;min-width:0;padding:6px 7px;font-size:11px}.cell-input:focus{border-color:#5f8edc;box-shadow:0 0 0 2px #0f56d91a}.cell-input.numeric{text-align:center;padding-inline:3px}.cell-input.date{min-width:0;padding-inline:4px}.title-input{resize:vertical;min-height:42px;max-height:72px;line-height:1.3}.delete-row,.drag-handle,.row-move-buttons button{cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.delete-row{color:#bb3b3b;flex:0 0 28px;height:28px}.delete-row:hover{background:#ffe7e7}.delete-row svg,.drag-handle svg{width:17px;height:17px}.row-number{position:relative}.drag-handle{color:#7789a3;touch-action:none;width:20px;height:20px;position:absolute;top:12px;left:2px}.is-editing .row-number>span{margin-left:13px}.status-edit-wrap{grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:3px;display:grid}.sheet-progress{grid-template-columns:minmax(35px,1fr) auto;align-items:center;gap:6px;min-width:76px;display:grid}.sheet-progress progress{height:6px}.sheet-progress span{color:#315f9f;text-align:right;min-width:34px;font-size:10px;font-weight:750}.progress-unavailable{color:var(--muted)}.row-move-buttons{gap:2px;display:grid}.row-move-buttons button{color:#667892;background:#eef3f9;width:22px;height:18px}.row-move-buttons button:disabled{opacity:.3;cursor:not-allowed}.row-move-buttons svg{width:14px;height:14px}.dragging{opacity:.75;box-shadow:0 10px 30px #102c562e}.loading-state,.error-state{border:1px solid var(--line);min-height:340px;color:var(--muted);border-radius:9px;align-content:center;place-items:center;gap:12px;margin:0 24px 24px;display:grid}.loading-state span{border:3px solid #dbe4ef;border-top-color:var(--blue);border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}.error-state strong{color:var(--navy);font-size:18px}.error-state p{margin:0 0 8px}@keyframes spin{to{transform:rotate(360deg)}}.app-footer{border-top:1px solid var(--line);color:#8494ab;justify-content:space-between;align-items:center;gap:16px;min-height:50px;padding:0 26px;font-size:11px;display:flex}.login-dialog{color:#17325c;border:0;border-radius:12px;width:min(410px,100vw - 32px);padding:30px;box-shadow:0 24px 70px #102c563d}.login-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c1e3973}.dialog-close{cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:12px;right:12px}.dialog-close:hover{background:#eef3f9}.dialog-close svg{width:18px}.dialog-icon{width:42px;height:42px;color:var(--blue);background:#e9f0ff;border-radius:9px;place-items:center;display:grid}.dialog-icon svg{width:22px}.login-dialog h2{color:var(--navy);margin:18px 0 6px;font-size:22px}.login-dialog>p{color:var(--muted);margin:0 0 22px;font-size:13px}.login-dialog form{gap:14px;display:grid}.login-dialog label{gap:6px;font-size:12px;font-weight:700;display:grid}.login-dialog input{border:1px solid var(--line-strong);border-radius:7px;outline:none;height:42px;padding:0 11px}.login-dialog input:focus{border-color:#6f98df;box-shadow:0 0 0 3px #0f56d917}.form-error{color:#9a2626;background:#ffe9e9;border-radius:6px;padding:9px 11px;font-size:12px}.assignee-dialog{color:#17325c;border:0;border-radius:14px;width:min(820px,100vw - 32px);max-height:min(760px,100vh - 32px);padding:28px;box-shadow:0 24px 70px #102c563d}.assignee-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#102c5652}.assignee-dialog-heading{justify-content:space-between;align-items:flex-start;gap:18px;padding-right:32px;display:flex}.assignee-dialog-heading h2{color:var(--navy);margin:0;font-size:23px}.assignee-dialog-heading p{color:var(--muted);margin:7px 0 0;font-size:13px}.assignee-editor-list{gap:9px;max-height:min(480px,100vh - 250px);margin:22px 0 16px;padding-right:4px;display:grid;overflow:auto}.assignee-editor-row{border:1px solid var(--line);background:#f8fafd;border-radius:9px;grid-template-columns:30px minmax(150px,1fr) 170px minmax(130px,auto) 42px;align-items:end;gap:10px;padding:11px;display:grid}.assignee-order{color:#8494aa;text-align:center;align-self:center;font-size:12px}.assignee-name-control,.color-control{color:#61738f;gap:5px;font-size:11px;font-weight:650;display:grid}.assignee-name-control input{border:1px solid var(--line-strong);width:100%;height:38px;color:var(--navy);background:#fff;border-radius:6px;outline:none;padding:0 10px}.assignee-name-control input:focus{border-color:#6f98df;box-shadow:0 0 0 3px #0f56d914}.color-input-wrap{border:1px solid var(--line-strong);background:#fff;border-radius:6px;align-items:center;gap:8px;height:38px;padding:4px 8px 4px 5px;display:flex}.color-input-wrap input{cursor:pointer;background:0 0;border:0;border-radius:4px;width:38px;height:28px;padding:0}.color-input-wrap code{color:#405777;font-size:11px}.usage-note{color:#7a899f;align-self:center;font-size:11px}.usage-note.used{color:#8b6412;font-weight:650}.assignee-delete{color:#b23b3b}.assignee-empty{border:1px dashed var(--line-strong);color:var(--muted);text-align:center;border-radius:9px;padding:28px}.assignee-dialog-actions{justify-content:flex-end;gap:9px;margin-top:16px;display:flex}.toast{z-index:50;color:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;min-width:280px;max-width:min(420px,100vw - 44px);padding:13px 10px 13px 15px;font-size:13px;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 15px 40px #102c5633}.toast.success{background:#27653b}.toast.error{background:#a83232}.toast button{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:5px;place-items:center;width:28px;height:28px;display:grid}.toast svg{width:16px}.workspace-main{grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid;overflow:hidden}.workspace-controls{z-index:20;min-width:0;max-width:100%;position:relative}.workspace-toolbar{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:8px;min-height:58px;padding:9px 14px;display:flex}.workspace-toolbar .search-control{flex:240px;width:auto;min-width:180px}.workspace-toolbar .select-control{flex:0 150px;min-width:112px}.workspace-toolbar .status-control{flex-basis:132px}.workspace-count{color:var(--muted);white-space:nowrap;flex:none;font-size:11px}.workspace-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.view-switch{border:1px solid var(--line-strong);background:#f5f8fc;border-radius:8px;align-items:center;gap:2px;height:36px;padding:3px;display:inline-flex}.view-switch button{color:#526985;cursor:pointer;background:0 0;border:0;border-radius:6px;height:28px;padding:0 10px;font-size:12px;font-weight:750}.view-switch button.active{color:#fff;background:var(--blue);box-shadow:0 4px 10px #0f56d92e}.view-switch button:not(.active):hover{color:var(--navy);background:#fff}.compact-action{height:36px;padding-inline:11px;font-size:12px}.progress-action{gap:7px;min-width:142px}.toolbar-progress-meter{background:#dce5f1;border-radius:999px;width:42px;height:6px;overflow:hidden}.toolbar-progress-fill{border-radius:inherit;background:var(--blue);height:100%;display:block}.toolbar-progress-value{min-width:38px;color:var(--blue);text-align:right;font-size:11px;font-weight:800}.workspace-content{flex-direction:column;min-width:0;min-height:0;padding-top:10px;display:flex;overflow:hidden}.workspace-content>.schedule-frame{flex:auto}.workspace-popover{z-index:30;border:1px solid var(--line-strong);background:#fff;border-radius:10px;max-height:min(420px,100dvh - 150px);position:absolute;top:calc(100% + 6px);left:14px;right:14px;overflow:auto;box-shadow:0 18px 45px #102c5633}.workspace-popover .progress-overview{border:0;border-radius:10px;margin:0}.assignees-popover{width:min(620px,100vw - 28px);padding:18px;left:auto}.assignees-popover .assignee-legend{justify-content:flex-start}.workspace-content .edit-actions,.workspace-content .schedule-modes{flex:none;margin:0 14px 8px}.workspace-content .loading-state,.workspace-content .error-state{flex:1;min-height:0;margin:0 14px 12px}.workload-page{flex:auto;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;min-height:0;margin:0 14px 12px;display:grid;overflow:hidden}.workload-heading{border:1px solid var(--line);background:linear-gradient(135deg,#f8fbff 0%,#eef5ff 100%);border-radius:9px;justify-content:space-between;align-items:end;gap:18px;padding:16px 18px;display:flex}.workload-heading h2,.workload-heading p,.workload-stats,.workload-stats dd{margin:0}.workload-heading h2{color:var(--navy);font-size:20px;line-height:1.1}.workload-heading p{color:var(--muted);margin-top:5px;font-size:12px}.workload-stats{align-items:center;gap:10px;display:flex}.workload-stats div{background:#ffffffc7;border:1px solid #c7d4e7e6;border-radius:8px;min-width:94px;padding:9px 11px}.workload-stats dt{color:#70829d;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:750}.workload-stats dd{color:var(--navy);margin-top:3px;font-size:22px;font-weight:850}.workload-board{--workload-sidebar-width:260px;--workload-day-width:30px;grid-template-columns:var(--workload-sidebar-width) max-content;border:1px solid var(--line-strong);background:#fff;border-radius:9px;align-content:start;min-height:0;display:grid;overflow:auto;box-shadow:0 8px 24px #203d6712}.workload-sidebar,.workload-day-header{z-index:5;border-bottom:1px solid var(--line);background:#f9fbfd;position:sticky;top:0}.workload-sidebar{z-index:6;left:0}.workload-header-cell{min-height:42px;color:var(--navy);text-transform:uppercase;letter-spacing:.04em;padding:13px 14px;font-size:11px;font-weight:800}.workload-day-header{min-height:42px;display:grid}.workload-day-header span{border-left:1px solid var(--line);color:#687994;place-items:center;font-size:10px;font-weight:750;display:grid}.workload-day-header span.today{color:#d93636;background:#fff5f5}.workload-row{display:contents}.workload-person{z-index:4;border-bottom:1px solid var(--line);background:#fff;grid-template-columns:10px minmax(0,1fr);align-items:start;gap:10px;min-height:72px;padding:12px 14px;display:grid;position:sticky;left:0;box-shadow:5px 0 8px -8px #163056a6}.workload-color{border-radius:3px;width:10px;height:100%;min-height:46px;box-shadow:inset 0 0 0 1px #102c561f}.workload-person strong,.workload-person span,.workload-person small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.workload-person strong{color:var(--navy);font-size:13px}.workload-person span{color:#425a78;margin-top:4px;font-size:11px;font-weight:750}.workload-person small{color:var(--muted);margin-top:3px;font-size:10px;font-weight:650}.workload-timeline{border-bottom:1px solid var(--line);background:#fff;align-content:center;min-height:72px;padding:12px 0;display:grid;position:relative}.workload-load-cell{background:0 0;border-left:1px solid #edf2f8;min-height:100%}.workload-load-cell.busy{background:#0f56d90a}.workload-load-cell.overloaded{background:repeating-linear-gradient(135deg,#d8651f2e 0 6px,#d8651f14 6px 12px)}.workload-load-cell.today{box-shadow:inset 2px 0 #d93636}.workload-bar{color:#fff;z-index:2;border-radius:6px;align-items:center;gap:6px;min-width:24px;height:24px;margin:2px 3px;padding:0 8px;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff3d,0 6px 14px #102c5624}.workload-bar.completed{filter:saturate(.25);opacity:.58}.workload-bar span{flex:none;font-size:10px;font-weight:850}.workload-bar small{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;font-weight:700;overflow:hidden}.workload-note{color:var(--muted);margin:0;font-size:11px}@media (width<=980px){.app-header{align-items:flex-start}.updated-label,.filter-hint{display:none}.filter-bar,.workspace-toolbar{flex-wrap:wrap}.workspace-toolbar .search-control{flex-basis:calc(100% - 330px)}.workspace-count{order:4}.workspace-actions{order:5}.view-switch{order:1}.search-control{width:100%}.select-control{flex:150px}.legend-row{align-items:flex-start}.assignee-legend{max-width:65%}:root{--c4:260px}}@media (width<=680px){.app-header{min-height:58px;padding:8px 12px}.brand-block{gap:9px}.brand-mark{width:36px;height:36px}.company-name,.object-name{font-size:10px}.brand-block h1{font-size:18px}.header-actions{gap:6px}.button{padding:0 11px;font-size:12px}.header-actions .button.secondary{width:42px;font-size:0}.workspace-toolbar{gap:6px;min-height:104px;padding:8px 10px}.workspace-toolbar .search-control{flex:100%;order:1;min-width:0}.workspace-toolbar .select-control{flex:30%;order:4;min-width:96px}.workspace-toolbar .status-control{display:none}.workspace-count{order:2;font-size:10px}.workspace-actions{flex-wrap:wrap;order:3;justify-content:flex-start;width:100%;margin-left:0}.view-switch{order:1;width:100%}.view-switch button{flex:1}.compact-action{height:34px;padding-inline:8px;font-size:11px}.progress-action{gap:5px;min-width:128px}.toolbar-progress-meter{width:30px}.toolbar-progress-value{min-width:34px;font-size:10px}.workspace-content{padding-top:8px}.workload-heading{align-items:stretch;display:grid}.workload-stats{overflow-x:auto}.workload-board{--workload-sidebar-width:210px;--workload-day-width:28px}.filter-bar{padding:12px 16px}.legend-row{padding-inline:16px}.assignee-legend{display:none}.edit-actions{flex-wrap:wrap;margin-inline:16px}.edit-actions>div{width:100%}.schedule-frame{margin-inline:12px}.schedule-scroller{max-height:none}.progress-overview{margin-inline:12px}.section-progress-card{min-width:190px}.app-footer{padding-inline:16px}.app-footer span:last-child{display:none}.assignee-dialog{padding:22px 16px 16px}.assignee-dialog-heading{padding-right:28px;display:grid}.assignee-dialog-heading .button{width:max-content}.assignee-editor-row{grid-template-columns:24px minmax(0,1fr) 42px;align-items:center}.color-control,.usage-note{grid-column:2}.assignee-delete{grid-area:1/3/span 3}:root{--c1:46px;--c2:72px;--c3:68px;--c4:230px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.project-status-page{color:#172b4d;background:linear-gradient(135deg,#0f56d90e,#0000 42%),#f4f7fb;width:100%;min-height:100dvh;padding:clamp(24px,5vw,72px);overflow:auto}.status-sheet{background:#fff;border:1px solid #d7e0ed;border-radius:4px;flex-direction:column;width:min(980px,100%);min-height:min(690px,100dvh - clamp(48px,10vw,144px));margin:0 auto;padding:clamp(26px,5vw,64px);display:flex;box-shadow:0 24px 70px #102c561a}.status-header{align-items:center;gap:18px;display:flex}.status-brand{color:#fff;background:#0f56d9;border-radius:8px;flex:none;place-items:center;width:48px;height:48px;font-size:24px;font-weight:850;display:grid}.status-company{color:#637895;letter-spacing:.04em;font-size:12px;font-weight:750}.status-header h1{color:#102c56;letter-spacing:-.045em;margin:5px 0 0;font-size:clamp(27px,4vw,46px);line-height:1.05}.status-date{color:#526985;margin:9px 0 0;font-size:13px;font-weight:650}.overall-status-block{border-left:5px solid #0f56d9;margin:clamp(48px,8vw,92px) 0 clamp(42px,7vw,76px);padding-left:clamp(18px,3vw,32px)}.overall-status-block span{color:#637895;letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:800}.overall-status-block p{color:#102c56;letter-spacing:-.035em;max-width:820px;margin:12px 0 0;font-size:clamp(23px,3.4vw,40px);font-weight:720;line-height:1.25}.discipline-statuses{border-top:1px solid #d7e0ed;border-bottom:1px solid #d7e0ed;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.discipline-status{padding:28px 28px 30px 0;position:relative}.discipline-status+.discipline-status{border-left:1px solid #d7e0ed;padding-left:28px}.discipline-status:before{content:"";width:76px;height:5px;position:absolute;top:-3px;left:0}.kb-status:before{background:#8064a2}.km-status:before{background:#ed7d31;left:28px}.discipline-heading{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.discipline-heading h2{color:#102c56;letter-spacing:-.03em;margin:0;font-size:28px}.discipline-heading strong{color:#315f9f;font-size:18px}.discipline-status p{color:#526985;margin:18px 0 0;font-size:15px;line-height:1.65}.status-footer{color:#7b8ba2;justify-content:space-between;gap:18px;margin-top:auto;padding-top:30px;font-size:11px;display:flex}.status-route-message{color:#526985;place-items:center;font-size:16px;font-weight:650;display:grid}@media (width<=640px){.project-status-page{background:#fff;padding:0}.status-sheet{min-height:100dvh;box-shadow:none;border:0;padding:24px 20px}.status-header{align-items:flex-start;gap:12px}.status-brand{width:40px;height:40px;font-size:20px}.status-company{font-size:10px}.overall-status-block{margin-block:52px 46px}.discipline-statuses{grid-template-columns:1fr}.discipline-status,.discipline-status+.discipline-status{border-left:0;padding:24px 0}.discipline-status+.discipline-status{border-top:1px solid #d7e0ed}.km-status:before{left:0}.status-footer{flex-direction:column}}
