:root{--bg: #f4f6f8;--panel: #ffffff;--ink: #182230;--muted: #667085;--line: #d9e0e8;--sidebar: #e6e9ee;--sidebar-deep: #d8dde4;--accent: #10367d;--accent-light: #6f8bc2;--blue: #2d6cdf;--progress-dark: #26313f;--green: #1f8f5f;--amber: #b7791f;--shadow: 0 8px 22px rgba(16, 24, 40, .06);--card-padding: 16px;--nav-item-height: 42px;--nav-spacing: 6px;--chart-label-size: 12px;--dashboard-card-padding: 16px;--table-header-font-size: 12px;--table-row-height: 76px;--table-cell-padding: 10px;--column-spacing: 0px;--checkbox-size: 16px;--sticky-header-height: 58px;--sticky-header-font-size: 16px;--dropdown-height: 38px;--input-height: 38px;--input-font-size: 14px;--button-font-size: 14px;--button-padding: 13px;--badge-font-size: 12px;--badge-padding: 9px;--progress-dropdown-width: 120px;--progress-bar-height: 11px;--progress-bar-width: 120px;--pending-button-size: 54px;--report-card-padding: 24px;--report-title-font-size: 24px;--report-body-font-size: 14px;--report-chart-size: 178px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Segoe UI,Arial,sans-serif;font-size:13px}button,input,select,textarea{font:inherit}.readonly-cell{min-height:38px;padding:9px 10px;border:1px solid transparent;color:var(--ink);white-space:nowrap;display:flex;align-items:center}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--sidebar),var(--sidebar-deep));color:var(--ink);overflow:hidden;border-right:1px solid #cbd2dc}.sidebar-inner{width:248px;padding:10px 12px 24px;min-height:100vh;display:flex;flex-direction:column;gap:12px}.brand{display:grid;align-items:start;min-height:0;margin:4px 0 2px;line-height:1;gap:4px}.brand-word{display:none;width:100%;color:var(--accent);font-family:Century Gothic,Aptos Display,Trebuchet MS,Arial,sans-serif;font-size:38px;font-weight:800;letter-spacing:0;text-transform:lowercase}.brand-subtitle{color:var(--accent);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:0}.field{display:grid;gap:7px}.field span{color:var(--muted);font-size:12px;font-weight:700}.sidebar .field span{color:#4b5563}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);min-height:var(--input-height);padding:8px 10px;font-size:var(--input-font-size)}select{min-height:var(--dropdown-height);font-size:var(--dropdown-font-size)}textarea{min-height:78px;resize:vertical}.nav{display:grid;gap:var(--nav-spacing)}.nav button{border:0;border-left:3px solid transparent;background:transparent;color:#344054;text-align:left;border-radius:6px;min-height:var(--nav-item-height);padding:0 12px;font-weight:750;font-size:13px}.nav button.active,.nav button:hover{color:var(--ink);background:#ffffffbd;border-left-color:var(--accent)}.sidebar-text-size{margin-top:auto;display:grid;gap:8px;padding:12px;border-top:1px solid #cbd2dc}.sidebar-text-size-head{display:flex;justify-content:space-between;gap:10px;color:#344054;font-size:12px;font-weight:850}.sidebar-text-size-head strong{color:var(--accent)}.sidebar-text-size input{width:100%;min-height:24px;padding:0;accent-color:var(--accent)}.sidebar-user{display:grid;gap:3px;padding:10px 12px;border:1px solid #cbd2dc;border-radius:6px;background:#ffffff73;color:#344054;line-height:1.25}.sidebar-user strong{color:var(--ink);font-size:12px}.sidebar-user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700}.sidebar-logout{width:100%}.main{min-width:0;padding:26px}.top-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;color:var(--ink);min-height:36px;padding:8px var(--button-padding);border-radius:6px;font-weight:750;font-size:var(--button-font-size);transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform 80ms ease,box-shadow 80ms ease}.button:active,button:active{transform:translateY(1px);box-shadow:inset 0 2px 6px #1018282e}.button:active{background:#e7ecf2;border-color:#b8c2cf}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:active,.control-action:active{background:#0b275c;border-color:#0b275c;color:#fff}.button.danger{color:#b42318}.button.danger:active,.control-action.danger:active{background:#8f1d14;border-color:#8f1d14;color:#fff}.button.compact{min-height:32px;padding:6px 10px}.hidden-file-input{display:none}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,rgba(16,54,125,.08),transparent 34%),var(--bg)}.login-card{width:min(420px,100%);display:grid;gap:16px;padding:30px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.login-card h1{margin:8px 0 0;font-size:24px}.login-brand{margin:0 0 8px}.error-notice{border-color:#fecaca;background:#fff1f2;color:#b42318}.icon-button{width:34px;height:34px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:850}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.panel,.metric{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.panel{overflow:visible}.panel-head{min-height:var(--sticky-header-height);padding:14px var(--card-padding);display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);background:var(--panel)}.panel-head h2{margin:0;font-size:var(--sticky-header-font-size)}.panel-body{padding:var(--card-padding)}.metric{padding:18px}.metric span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.metric strong{display:block;margin-top:8px;font-size:28px}.table-wrap{overflow:auto}.table-action-row{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff}table{width:100%;border-collapse:separate;border-spacing:0;min-width:980px}th{background:#f8fafc;color:var(--muted);text-align:left;font-size:12px;font-weight:850;padding:11px 10px;border-bottom:1px solid var(--line)}.registry-grid{--registry-sticky-top: 0px}.registry-table-panel{--registry-table-columns: 42px minmax(118px, .72fr) minmax(210px, 1.55fr) 82px 190px 178px 164px 136px 140px 112px 92px 96px}.registry-table-shell{overflow:visible}.registry-table-sticky{position:sticky;top:var(--registry-sticky-top);z-index:9;background:var(--panel);border-radius:8px 8px 0 0;box-shadow:0 8px 16px #1018280d;outline:12px solid var(--bg);outline-offset:0}.registry-table-title{position:relative;z-index:2}.registry-title-stack{display:flex;align-items:flex-end;gap:14px;width:100%}.discipline-schedule-select{display:block}.discipline-schedule-select select{min-width:260px;min-height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:16px;font-weight:850;padding:6px 34px 6px 10px}.registry-title-actions,.group-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.registry-view-toggle{margin-left:auto;min-height:38px;display:inline-flex;align-items:center;border:0;background:transparent;color:var(--accent);padding:0;font-size:12px;font-weight:850;cursor:pointer;text-transform:uppercase}.registry-view-toggle:hover{color:#0b275c;text-decoration:underline;text-underline-offset:3px}.registry-view-toggle:active{transform:translateY(1px)}.registry-table-controls{position:relative;margin-left:auto;display:flex;align-items:center;gap:14px}.registry-table-controls .registry-view-toggle{margin-left:0}.column-selector{position:relative}.column-selector>summary{min-height:34px;display:inline-flex;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--accent);font-size:12px;font-weight:850;text-transform:uppercase;list-style:none;cursor:pointer}.column-selector>summary::-webkit-details-marker{display:none}.column-selector>summary:after{content:"v";margin-left:7px;color:var(--muted);font-size:10px}.column-selector-menu{position:absolute;z-index:90;top:calc(100% + 5px);right:0;width:220px;display:grid;gap:3px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 14px 34px #1018282e}.column-selector-menu label{min-height:30px;display:flex;align-items:center;gap:9px;padding:4px 6px;border-radius:5px;color:var(--ink);font-size:12px;font-weight:750}.column-selector-menu label:hover{background:#f4f6f8}.column-selector-menu input{width:16px;min-height:16px;margin:0;accent-color:var(--accent)}.column-selector-menu button{margin-top:5px;min-height:30px;border:1px solid var(--line);border-radius:5px;background:#f8fafc;color:var(--accent);font-size:11px;font-weight:850;text-transform:uppercase}.registry-row{display:grid;grid-template-columns:var(--registry-table-columns);column-gap:var(--column-spacing);min-width:var(--registry-table-min-width, 1452px);align-items:center}.registry-header-row{background:#f8fafc;color:var(--muted);font-size:var(--table-header-font-size);font-weight:850;border-bottom:1px solid var(--line);text-align:left}.registry-cell{min-height:45px;display:flex;align-items:center;padding:11px var(--table-cell-padding);min-width:0}.package-header-cell{padding-left:calc(var(--table-cell-padding) + 31px)}.registry-data-row{min-height:var(--table-row-height);background:#fff;border-bottom:1px solid #edf1f5;font-size:var(--registry-table-text-size)}.registry-data-row:nth-child(2n){background:#fcfdff}.registry-data-row:hover{background:#f7fafc}.assignment-row{background:#f8fafc;border-left:3px solid var(--accent)}.assignment-row:hover{background:#f3f6fa}.center-cell{justify-content:center;text-align:center}.action-cell{justify-content:flex-end}td{padding:9px 10px;border-bottom:1px solid #edf1f5;vertical-align:middle}td input,td select{min-width:0}.select-cell{width:42px;min-width:42px;justify-content:center;text-align:center}.select-cell input[type=checkbox]{width:var(--checkbox-size);min-height:var(--checkbox-size);accent-color:var(--accent)}.code-cell{width:100%;font-weight:800;white-space:nowrap}.title-cell{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}.title-cell[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;z-index:80;left:0;top:50%;transform:translateY(-50%);max-width:520px;min-width:min(420px,70vw);min-height:38px;display:flex;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:#182230;color:#fff;box-shadow:var(--shadow);white-space:normal;line-height:1.35;font-size:13px;font-weight:750;pointer-events:none;animation:tooltip-delay 1s linear both}.title-cell[data-tooltip]:hover{overflow:visible;z-index:20}@keyframes tooltip-delay{0%,99%{opacity:0}to{opacity:1}}.revision-cell,.revision-date-cell,.days-cell{width:100%;justify-content:center;text-align:center}.muted{color:var(--muted)}.progress-cell{display:grid;grid-template-columns:1fr;gap:7px;width:var(--progress-bar-width);min-width:var(--progress-bar-width)}.package-picker-cell{gap:7px}.expand-button{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--accent);font-weight:900;flex:0 0 auto}.expand-button:disabled{opacity:.25;cursor:default}.package-multi-select{position:relative;width:148px}.package-multi-select summary{min-height:var(--dropdown-height);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:var(--registry-table-text-size);list-style:none;cursor:pointer}.package-multi-select summary::-webkit-details-marker{display:none}.package-multi-select summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.package-multi-select summary:after{content:"v";color:var(--muted);font-size:11px;font-weight:850}.package-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;width:210px;max-height:260px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.package-option{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;min-height:30px;padding:4px 6px;border-radius:6px;font-weight:750}.package-option:hover{background:#f8fafc}.package-option input{width:var(--checkbox-size);min-height:var(--checkbox-size);accent-color:var(--accent);margin-top:2px}.package-option-text{display:grid;gap:2px;min-width:0}.package-option-text strong{font-size:12px;line-height:1.2}.package-option-text small{color:var(--muted);font-size:10px;line-height:1.25;overflow-wrap:anywhere}.greyed-cell{color:var(--muted);background:#f1f4f7}.greyed-cell .readonly-cell{color:var(--muted)}.package-child-name .readonly-cell{font-weight:850;color:var(--accent)}progress{width:100%;height:var(--progress-bar-height);accent-color:var(--accent)}.registry-cell select{width:146px;min-height:var(--dropdown-height);font-size:var(--registry-table-text-size)}.progress-cell select{width:var(--progress-dropdown-width)}.pending-cell .button{width:var(--pending-button-size);justify-content:center;font-size:var(--registry-table-text-size)}.action-cell .button{width:62px;justify-content:center;font-size:var(--registry-table-text-size)}.pill{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px var(--badge-padding);font-size:var(--badge-font-size);font-weight:800;background:#eef2f6;color:var(--muted)}.pill.completed{background:#e4f5ec;color:var(--green)}td:nth-child(1){min-width:42px}td:nth-child(2){min-width:150px}td:nth-child(3){min-width:230px}td:nth-child(4){min-width:110px}td:nth-child(5){min-width:140px}td:nth-child(6){min-width:140px}td:nth-child(7){min-width:130px}td:nth-child(8){min-width:150px}td:nth-child(9){min-width:150px}td:nth-child(10){min-width:130px}td:nth-child(11){min-width:110px}td:nth-child(12){min-width:96px}.procore-match{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:4px var(--badge-padding);font-size:var(--registry-table-text-size);font-weight:850;white-space:nowrap;background:#eef2f6;color:var(--muted)}.procore-match.matched{background:#e4f5ec;color:var(--green)}.procore-match.revision_mismatch{background:#fff4df;color:var(--amber)}.procore-match.not_found{background:#fee4e2;color:#b42318}.procore-match.not_synced,.procore-match.not_checked{background:#eef2f6;color:var(--muted)}.days-badge{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:4px var(--badge-padding);font-size:var(--registry-table-text-size);font-weight:850;white-space:nowrap;background:#eef2f6;color:var(--muted)}.days-badge.delivered{background:#e4f5ec;color:var(--green)}.days-badge.urgent{background:#fee4e2;color:#b42318}.hidden-clue{color:var(--accent);font-size:12px;font-weight:850;text-transform:uppercase}.hidden-panel{border-style:dashed}.grouped-registry{display:grid;gap:10px}.grouped-table-head{border-radius:8px}.group-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.drawing-group-section{border:1px solid var(--line);border-radius:8px;overflow:visible;background:#fff}.drawing-group-row{width:100%;min-height:54px;display:grid;grid-template-columns:34px minmax(240px,1fr) 100px 120px;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--line);background:#f8fafc;color:var(--ink);padding:10px 14px;text-align:left;font-weight:850}.drawing-group-row span:not(.group-expand){color:var(--muted);font-size:12px;text-transform:uppercase}.group-expand{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--accent);font-weight:900}.dashboard-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-cards:not(.control-cards){position:sticky;top:0;z-index:10;padding-bottom:12px;background:var(--bg)}.dashboard-card{min-height:176px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:var(--dashboard-card-padding);font-size:var(--card-content-font-size)}.summary-card{display:grid;gap:12px}.summary-card.embedded{gap:8px}.summary-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.summary-line span{color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase}.summary-line strong{font-size:15px;line-height:1}.summary-line.status-row span{position:relative;padding-left:16px}.summary-line.status-row span:before{content:"";position:absolute;left:0;top:50%;width:8px;height:8px;border-radius:50%;transform:translateY(-50%)}.summary-line.completed span,.summary-line.completed strong{color:var(--accent)}.summary-line.completed span:before{background:var(--accent)}.summary-line.ninety-progress span,.summary-line.ninety-progress strong{color:var(--accent)}.summary-line.ninety-progress span:before{background:var(--accent-light)}.summary-line.in-progress span,.summary-line.in-progress strong{color:var(--progress-dark)}.summary-line.in-progress span:before{background:var(--progress-dark)}.summary-line.not-started span,.summary-line.not-started strong{color:#64748b}.summary-line.not-started span:before{background:#cbd5e1}.summary-line.overall{padding-top:10px;border-top:1px solid var(--line)}.summary-line.overall span,.summary-line.overall strong{color:var(--accent)}.summary-line.overall strong{font-size:36px}.filter-card{display:grid;align-content:start;gap:10px}.compact-field{max-width:220px}.project-select{margin-bottom:2px}.filter-menu{border:1px solid var(--line);border-radius:6px;background:#fff}.filter-menu summary{min-height:38px;display:flex;align-items:center;padding:8px 10px;color:var(--ink);font-weight:800;cursor:pointer}.filter-list{display:grid;gap:8px;padding:10px;border-top:1px solid var(--line)}.filter-option{display:grid;grid-template-columns:104px 1fr;gap:8px;align-items:center}.filter-toggle{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:850}.filter-toggle input{width:15px;min-height:15px;accent-color:var(--accent)}.filter-option.active .filter-toggle{color:var(--ink)}.filter-control{opacity:.48}.filter-option.active .filter-control{opacity:1}.placeholder-card{background:#ffffffad}.control-page{display:grid;gap:18px}.control-tabbar{display:flex;gap:8px;align-items:center;overflow-x:auto;padding:4px;background:#e6eaee;border:1px solid var(--line);border-radius:8px}.control-tabbar button{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:6px;padding:11px 16px;font-size:13px;font-weight:850;cursor:pointer;white-space:nowrap}.control-tabbar button:hover{background:#ffffff9e;color:var(--ink)}.control-tabbar button.active{background:#fff;border-color:var(--line);color:var(--ink);box-shadow:0 6px 16px #0f172a14}.control-tabbar button:active{transform:translateY(1px);box-shadow:inset 0 2px 5px #0f172a29}.control-card{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:var(--card-padding)}.control-tab-panel{padding:0}.control-top-card{display:block}.control-project-block{display:grid;gap:10px}.control-project-block h2{margin:0;font-size:18px}.expandable-control-card{padding:0}.expandable-control-summary{cursor:pointer;list-style:none;padding:var(--card-padding);border-bottom:0}.expandable-control-summary::-webkit-details-marker{display:none}.expandable-control-summary span{color:var(--accent);font-size:12px;font-weight:850;text-transform:uppercase}.expandable-control-card[open] .expandable-control-summary{border-bottom:1px solid var(--line)}.expandable-control-card[open] .expandable-control-summary span{color:var(--muted)}.expandable-control-card[open] .expandable-control-summary span:before{content:"Close "}.expandable-control-body{padding:0 var(--card-padding) var(--card-padding)}.control-top-card .expandable-control-body{padding-top:var(--card-padding)}.control-card-head{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.control-tab-panel>.control-card-head{padding:var(--card-padding);padding-bottom:14px}.control-card-head h2{margin:0;font-size:18px}.data-actions-card{padding:0}.data-actions-summary{cursor:pointer;list-style:none;padding:var(--card-padding);border-bottom:0}.data-actions-summary::-webkit-details-marker{display:none}.data-actions-summary span{color:var(--accent);font-size:12px;font-weight:850;text-transform:uppercase}.data-actions-card[open] .data-actions-summary{border-bottom:1px solid var(--line)}.data-actions-card[open] .data-actions-summary span{color:var(--muted)}.data-actions-card[open] .data-actions-summary span:before{content:"Close "}.data-action-list{display:grid;gap:0}.control-tab-body{padding:0 var(--card-padding) var(--card-padding)}.control-setting-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,360px);align-items:end;gap:16px;margin-top:var(--card-padding);padding:14px;border:1px solid var(--line);border-radius:8px;background:#f7f9fb}.control-setting-card h3{margin:0 0 4px;font-size:14px}.control-setting-card p{margin:0;color:var(--muted);font-size:12px;font-weight:700}.data-action-row{display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:16px;padding:12px var(--card-padding);border-bottom:1px solid #edf1f5}.data-action-row:last-child{border-bottom:0}.data-action-row>div{display:grid;gap:3px}.data-action-row strong{font-size:13px}.data-action-row span{color:var(--muted);font-size:12px;font-weight:650}.data-action-row .button{width:100%}.control-card-subtitle{margin:6px 0 0;color:var(--muted);font-weight:750}.control-action{background:var(--accent);border-color:var(--accent);color:#fff}.control-action.danger{background:#b42318;border-color:#b42318;color:#fff}.control-action:disabled{opacity:.65;cursor:not-allowed}.management-form-area{padding:16px 0}.management-card .table-wrap{overflow-x:auto;border-top:1px solid var(--line)}.management-card table{min-width:720px}.management-card th,.management-card td{padding:12px 14px}.management-card td input{min-width:160px}.management-card td:last-child,.management-card th:last-child{width:110px;text-align:right}.control-page .form-grid{grid-template-columns:repeat(4,minmax(160px,1fr)) auto;align-items:end}.control-page .actions{justify-content:flex-end}.autodesk-browser-body{display:grid;gap:14px;padding-top:16px}.autodesk-selectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.autodesk-browser-grid{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(320px,1.25fr);gap:14px}.autodesk-list{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;display:grid;align-content:start;gap:8px;min-height:220px}.autodesk-row{width:100%;border:1px solid var(--line);border-radius:6px;background:#fbfcfe;color:var(--ink);padding:10px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:12px}.autodesk-row span{font-weight:800;overflow-wrap:anywhere}.autodesk-row small{color:var(--muted);white-space:nowrap}.autodesk-row:hover,.autodesk-row.active{border-color:var(--accent)}.autodesk-row.revit{background:#eef4ff;border-color:#9ab0dd}.autodesk-row.revit small{color:var(--accent);font-weight:850}.pie-card{display:flex;align-items:center}.pie-layout{display:grid;grid-template-columns:minmax(140px,188px) 1fr;gap:24px;align-items:center;width:100%}.pie{width:170px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center}.pie-wrap{position:relative;width:188px;min-height:188px;display:grid;place-items:center}.pie div{width:82px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--ink);font-weight:850}.pie-label{position:absolute;min-width:34px;padding:3px 6px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:var(--chart-label-size);font-weight:850;text-align:center;box-shadow:0 4px 12px #10182814;transform:translate(-50%,-50%)}.pie-label-completed{color:var(--accent)}.pie-label-progress{color:var(--progress-dark)}.pie-label-started{color:#64748b}.pie-side{display:grid;grid-template-columns:1fr;gap:0;align-items:center}.modal-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a6b}.modal{width:min(680px,100%);max-height:min(720px,calc(100vh - 48px));overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px #1018283d;display:grid;grid-template-rows:auto auto auto 1fr}.modal-head{padding:18px 18px 14px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal-head h2{margin:0;font-size:18px}.modal-head p{margin:5px 0 0;color:var(--muted)}.checklist-add{padding:14px 18px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:10px}.rfi-linker{padding:12px 18px;border-bottom:1px solid var(--line);display:grid;gap:10px}.rfi-linker>.button{width:100%}.rfi-linker>.button,.rfi-linker>.reference-attach{min-height:38px;border-color:var(--accent);background:#eef4ff;color:var(--accent);font-size:14px;font-weight:850}.rfi-linker-panel{display:grid;gap:10px}.rfi-linker-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px}.rfi-results{display:grid;gap:7px;max-height:190px;overflow:auto}.rfi-option{width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:9px 10px;text-align:left;display:grid;gap:4px}.rfi-option:hover{border-color:var(--accent)}.rfi-option strong{font-size:13px}.rfi-option span{color:var(--muted);font-size:12px}.checklist-list{overflow:auto;padding:14px 18px 22px;display:grid;gap:18px}.checklist-row{display:grid;gap:10px;border:1px solid #dfe6ee;border-radius:8px;padding:14px;background:#fff;box-shadow:0 3px 10px #1018280a}.checklist-main{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,260px) auto;align-items:center;gap:12px}.checklist-main label{display:flex;align-items:center;gap:10px;min-width:0}.checklist-row input[type=checkbox]{width:16px;min-height:16px}.checklist-row span{overflow-wrap:anywhere}.pending-title{color:var(--ink);font-size:14px;font-weight:750;line-height:1.25}.checklist-note{min-height:34px}.checklist-row.done span{color:var(--muted);text-decoration:line-through}.pending-link{border:0;background:transparent;color:var(--blue);padding:0;text-align:left;font-weight:800}.pending-link:hover{text-decoration:underline}.checklist-row.done .pending-link{color:var(--muted);text-decoration:line-through}.reference-panel{display:grid;gap:8px;margin-left:30px;padding-left:12px;border-left:2px solid #e5ebf2}.reference-input{display:none}.reference-attach{width:100%;display:inline-flex;align-items:center;justify-content:center}.reference-attach.secondary{min-height:28px;padding:4px 9px;background:#f8fafc;color:var(--muted);font-size:12px;font-weight:750}.reference-list{display:grid;gap:5px}.reference-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fbfcfe}.reference-row strong{display:block;overflow-wrap:anywhere;font-size:12px;line-height:1.2}.reference-row span{display:block;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.2}.reference-row .button{min-height:28px;padding:4px 8px;font-size:12px}.compact-empty{padding:12px}.pill.progress{background:#e8f0ff;color:var(--blue)}.pill.not-started{background:#fff4df;color:var(--amber)}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}.empty{padding:34px;color:var(--muted);text-align:center}.notice{min-height:38px;padding:10px 12px;border-radius:6px;background:#eef4ff;color:#1d4b8f;font-weight:700}.bars{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:180px 1fr 58px;gap:12px;align-items:center}.comparison-list{display:grid;gap:8px;padding-top:4px}.comparison-title{color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase}.comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.comparison-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fff;display:grid;gap:12px}.comparison-card>strong{color:var(--ink);font-size:15px}.comparison-progress{display:grid;grid-template-columns:1fr 48px;gap:10px;align-items:center}.comparison-progress span{color:var(--accent);font-weight:850}.comparison-stats{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px;font-weight:750}.report-controls{grid-template-columns:minmax(320px,1fr) minmax(320px,1fr)}.report-filter-card,.report-export-card{min-height:160px}.report-export-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.report-export-card span{color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase}.report-export-card strong{display:block;margin-top:8px;font-size:36px;color:var(--accent)}.report-export-card p{margin:6px 0 0;color:var(--muted)}.report-print-area{display:grid;gap:18px;font-size:var(--report-body-font-size)}.report-print-header{display:none}.project-report-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden;page-break-inside:avoid}.project-report-main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:26px;padding:var(--report-card-padding)}.project-report-info{display:grid;gap:18px}.report-kicker{color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase}.project-report-info h2{margin:-8px 0 0;font-size:var(--report-title-font-size)}.report-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:stretch}.report-metric{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfe;display:grid;grid-template-columns:minmax(0,1fr) minmax(104px,auto);grid-template-rows:36px 1fr;column-gap:10px;min-width:0;min-height:96px}.report-metric-main{display:contents;min-width:0}.report-metric-breakdown{display:grid;gap:4px;min-width:92px}.report-metric-breakdown div{display:grid;grid-template-columns:1fr 28px;align-items:center;gap:8px}.report-metric-breakdown span{color:var(--muted);font-size:8px;font-weight:400;text-transform:uppercase;text-align:left}.report-metric-breakdown strong{margin:0;font-size:10px;font-weight:400;color:var(--muted);text-align:right}.report-metric .report-metric-breakdown span,.report-metric .report-metric-breakdown strong{color:var(--muted);font-weight:400}.report-metric .report-metric-breakdown span{font-size:8px}.report-metric .report-metric-breakdown strong{font-size:10px}.report-metric span,.report-progress span{color:var(--muted);font-size:var(--report-body-font-size);font-weight:850;text-transform:uppercase}.report-metric-main>span{display:flex;align-items:flex-start;grid-column:1 / -1;grid-row:1;line-height:1.12}.report-metric strong{display:block;grid-column:1;grid-row:2;align-self:end;margin-top:0;font-size:24px;line-height:1}.report-metric .report-metric-breakdown{display:grid;gap:2px;grid-column:2;grid-row:2;align-self:end;justify-self:end;min-width:104px;margin-left:0;padding-bottom:1px}.report-metric .report-metric-breakdown div{display:flex;align-items:center;justify-content:flex-end;gap:5px;line-height:1;white-space:nowrap}.report-metric .report-metric-breakdown span{color:var(--muted);font-size:8px;font-weight:400;line-height:1;text-align:right;white-space:nowrap;text-transform:uppercase}.report-metric .report-metric-breakdown strong{display:inline;margin:0;color:var(--muted);font-size:10px;font-weight:400;line-height:1;text-align:right}.report-progress{display:grid;gap:8px}.report-progress div{display:flex;justify-content:space-between;align-items:baseline}.report-progress strong{color:var(--accent);font-size:24px}.project-pie-panel{display:grid;grid-template-columns:var(--report-chart-size) 1fr;gap:20px;align-items:center}.project-pie{width:var(--report-chart-size);aspect-ratio:1;border-radius:50%;display:grid;place-items:center}.project-pie div{width:78px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:18px;font-weight:850}.project-pie-legend{display:grid;gap:8px}.cc-package-report{border-top:1px solid var(--line);padding:18px var(--report-card-padding) var(--report-card-padding);display:grid;gap:12px}.cc-package-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.cc-package-head h3{margin:0;font-size:18px}.cc-package-head span{color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase}.cc-package-table-wrap{overflow:auto}.cc-package-table{min-width:980px}.cc-package-table td,.cc-package-table th{white-space:nowrap}.cc-package-table .overdue{color:#b42318;font-weight:850}.cc-package-table .delivered{color:var(--green);font-weight:850}.pending-count-button{border:0;background:transparent;color:var(--accent);padding:0;font:inherit;font-weight:850;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.pending-count-button:hover{color:#0b275c}.pending-report-card{border-top:1px solid var(--line);padding:18px var(--report-card-padding) var(--report-card-padding);display:grid;gap:12px;background:#fbfcfe}.pending-report-head{display:flex;align-items:end;justify-content:space-between;gap:16px}.pending-report-head h3{margin:0;font-size:18px}.pending-report-head span{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase}.pending-report-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;justify-content:flex-end}.pending-report-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.pending-report-table{min-width:1120px}.pending-report-table th,.pending-report-table td{vertical-align:top}.pending-report-table td:nth-child(2),.pending-report-table td:nth-child(4),.pending-report-table td:nth-child(5){white-space:normal;min-width:180px}.pending-status-pill{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:850}.pending-status-pill.open{background:#eef4ff;color:var(--accent)}.pending-status-pill.done{background:#e8f6ee;color:var(--green)}.inline-link{border:0;background:transparent;color:var(--accent);padding:0;font:inherit;font-weight:800;cursor:pointer;text-align:left}.inline-link:hover{color:#0b275c;text-decoration:underline;text-underline-offset:3px}.settings-empty,.settings-page-simple{min-height:calc(100vh - 56px)}.settings-access-card{display:grid;gap:16px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.access-form{display:grid;grid-template-columns:minmax(160px,1fr) minmax(220px,1.4fr) minmax(160px,1fr) auto auto auto;gap:10px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}.access-check{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:#344054;font-weight:750}.access-check input,.access-table input[type=checkbox]{width:16px;min-height:16px;accent-color:var(--accent)}.access-table{min-width:620px}.access-table th,.access-table td{padding:10px;vertical-align:middle}.access-table th:nth-child(3),.access-table th:nth-child(4),.access-table td:nth-child(3),.access-table td:nth-child(4){width:90px;text-align:center}.time-page{display:grid;gap:18px}.time-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.time-summary-card,.time-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.time-summary-card{padding:18px}.time-summary-card span{display:block;color:var(--muted);font-size:12px;font-weight:850;text-transform:uppercase}.time-summary-card strong{display:block;margin-top:8px;color:var(--accent);font-size:30px}.time-card{overflow:hidden}.time-card-head{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-bottom:1px solid var(--line)}.time-card-head h2{margin:0;font-size:18px}.time-card-head p{margin:6px 0 0;color:var(--muted);font-weight:700}.time-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.time-progress-toggle{min-height:36px;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#344054;font-weight:850;white-space:nowrap}.time-progress-toggle input{width:16px;height:16px;min-height:16px;padding:0;accent-color:var(--accent)}.time-table-wrap{overflow-x:auto}.time-table{width:100%;min-width:1040px;table-layout:fixed}.time-table th,.time-table td{padding:10px 12px;vertical-align:middle}.time-col-show{width:56px}.time-col-expand{width:48px}.time-col-code{width:86px}.time-col-name{width:310px}.time-col-task{width:330px}.time-col-count,.time-col-total{width:102px}.time-col-number{width:132px}.time-col-action{width:108px}.time-col-notes{width:auto}.time-checkbox-cell,.time-expand-cell,.time-code-cell,.time-table th:nth-child(1),.time-table th:nth-child(2),.time-table th:nth-child(3),.time-table th:nth-child(5),.time-table td:nth-child(5),.time-table th:nth-child(8),.time-table td:nth-child(8){text-align:center}.time-checkbox-cell{padding-left:0;padding-right:0}.time-row-checkbox{width:17px;height:17px;min-height:17px;padding:0;margin:0 auto;display:block;accent-color:var(--accent)}.time-table input{min-height:34px}.time-number-input{max-width:108px;margin-left:auto;margin-right:auto;text-align:right}.time-row-note{display:block;margin-top:4px;color:var(--amber);font-size:12px;font-weight:800}.time-expand-button{width:26px;min-height:26px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-weight:900}.time-child-row{background:#f8fafc;color:var(--muted);font-size:12px}.time-child-row td{padding-top:8px;padding-bottom:8px}.muted-row{background:#fffaf0}.empty-cell{color:var(--muted);text-align:center;padding:28px}.time-add-row{display:grid;grid-template-columns:minmax(280px,1fr) 140px minmax(260px,1.4fr) auto;gap:12px;align-items:end;padding:16px;border-bottom:1px solid var(--line)}.time-project-select{padding:16px;max-width:520px}.variation-page{display:grid;gap:18px}.variation-register-panel,.variation-detail-panel,.variation-report-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.variation-table{min-width:1120px}.variation-table tbody tr{cursor:pointer}.variation-table tbody tr:hover,.variation-table .selected-row{background:#eef4ff}.variation-status{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 9px;background:#eef2f6;color:var(--muted);font-size:12px;font-weight:850;white-space:nowrap}.variation-status.status-open{background:#eef4ff;color:var(--accent)}.variation-status.status-implemented,.variation-status.status-closed{background:#e4f5ec;color:var(--green)}.variation-detail-body{display:grid;gap:18px;padding:16px}.variation-form-grid{display:grid;grid-template-columns:180px minmax(260px,1fr) 170px 170px;gap:12px;align-items:end}.variation-title-field{grid-column:span 1}.variation-wide-field{grid-column:span 2}.variation-wide-field textarea{min-height:112px}.variation-impact-section,.variation-attachments{display:grid;gap:12px}.variation-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.variation-section-head h3{margin:0;font-size:16px}.variation-section-head strong{color:var(--accent);font-size:20px}.variation-impact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.variation-impact-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,220px);gap:8px;align-items:center;min-height:42px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fbfcfe}.variation-impact-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:12px;font-weight:750}.variation-impact-control{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center}.variation-impact-control input{width:100%;min-height:24px;padding:0;accent-color:var(--accent)}.variation-impact-control strong{color:var(--accent);font-size:12px;font-weight:850;text-align:right}.disabled-button{opacity:.55;cursor:not-allowed}.variation-report-card{border-top:1px solid var(--line);padding:18px var(--report-card-padding) var(--report-card-padding);display:grid;gap:12px}.variation-report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff}body *{visibility:hidden}.report-print-area,.report-print-area *{visibility:visible}.report-print-area{position:absolute;inset:0;display:block}.report-print-header{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:12px}.report-print-header h1{margin:0;font-size:22px}.report-print-header span{color:#475467;font-size:12px;font-weight:700}.project-report-card{margin-bottom:14px;box-shadow:none;break-inside:avoid}.project-report-main{grid-template-columns:1.25fr .75fr;padding:16px}.cc-package-report{padding:14px 16px 16px}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main{padding:18px}.grid.two,.grid.three,.grid.four,.dashboard-cards,.form-grid,.rfi-linker-controls,.reference-row,.report-controls,.project-report-main,.report-metrics,.project-pie-panel,.autodesk-selectors,.autodesk-browser-grid,.control-top-card,.control-page .form-grid,.time-summary-grid,.time-add-row,.access-form,.variation-form-grid,.variation-impact-grid,.variation-report-metrics{grid-template-columns:1fr}.top-row{align-items:flex-start}}
