:root{--bg:#f6f8fb;--surface:#ffffff;--surface-soft:#eef3f8;--border:#d8e0ea;--border-strong:#b6c3d2;--text:#142033;--muted:#5c6b7d;--muted-2:#8390a0;--primary:#176b87;--primary-strong:#0f5269;--primary-soft:#dff1f5;--danger:#c73e4a;--danger-soft:#f9e3e6;--success:#1f8f63;--success-soft:#dff5ea;--warning:#b7791f;--warning-soft:#fff1d6;--shadow:0 8px 24px rgba(20,32,51,0.08)}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(1500px,calc(100% - 32px));margin:0 auto;padding:24px 0 36px}.topbar{display:flex;gap:18px;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.eyebrow{color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.08em;margin:0 0 8px;text-transform:uppercase}h1{font-size:30px;letter-spacing:0;line-height:1.15;margin:0}.subtitle{color:var(--muted);margin:10px 0 0}.actions{align-items:flex-end;display:flex;flex-direction:column;gap:8px}.notification-button{align-items:center;background:#ffffff;border:1px solid var(--border);border-radius:999px;color:var(--text);display:inline-flex;height:40px;justify-content:center;position:relative;width:40px}.notification-button span{align-items:center;background:var(--danger);border:2px solid #ffffff;border-radius:999px;color:#ffffff;display:flex;font-size:11px;font-weight:800;height:20px;justify-content:center;min-width:20px;position:absolute;right:-5px;top:-5px}.admin-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr 280px 1.4fr;margin-bottom:14px;padding:14px 16px}.admin-digest{align-items:flex-start;display:flex;flex-direction:column;gap:12px}.admin-metrics{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.metric{background:var(--surface-soft);border:1px solid var(--border);border-radius:7px;padding:10px}.metric strong{display:block;font-size:22px;line-height:1}.metric span{color:var(--muted);display:block;font-size:12px;margin-top:6px}.admin-alert-list{display:grid;grid-gap:8px;gap:8px}.admin-alert-row,.drawer-alert-main{align-items:flex-start;background:#ffffff;border:1px solid var(--border);border-radius:7px;color:var(--text);display:flex;gap:9px;padding:10px;text-align:left;width:100%}.admin-alert-row strong,.drawer-alert-main strong{display:block;font-size:13px;line-height:1.3}.admin-alert-row span:not(.alert-dot),.drawer-alert-main span:not(.alert-dot){color:var(--muted);display:block;font-size:12px;line-height:1.4;margin-top:3px}.drawer-alert-main small{color:var(--muted-2);display:block;font-size:11px;margin-top:6px}.alert-dot{border-radius:999px;flex:0 0 auto;height:10px;margin-top:3px;width:10px}.alert-critical{background:var(--danger)}.alert-warning{background:var(--warning)}.alert-info{background:var(--primary)}.empty-inline{color:var(--muted);font-size:13px;padding:10px 0}.view-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 14px}.view-chip{align-items:center;background:#ffffff;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 14px rgba(20,32,51,.05);color:var(--text);display:inline-flex;gap:8px;min-height:42px;padding:0 12px}.view-chip.active{background:var(--primary);border-color:var(--primary);color:#ffffff}.view-chip strong{background:rgba(20,32,51,.08);border-radius:999px;font-size:12px;min-width:28px;padding:3px 7px;text-align:center}.view-chip.active strong{background:rgba(255,255,255,.2)}.overview-mode .dashboard-grid,.overview-mode .kpi-grid{display:none}.project-overview-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.project-overview-title{align-items:center;background:#c6e0b8;border-bottom:1px solid #8cb27c;color:#000000;display:flex;font-size:26px;gap:10px;justify-content:center;letter-spacing:0;min-height:58px;text-align:center}.project-overview-title svg,.project-total svg{color:#176b87}.project-total{align-items:center;display:flex;flex-direction:column;gap:2px;justify-content:center;padding:4px 16px 10px}.project-total div{align-items:center;color:#0b57d0;display:flex;font-size:26px;font-weight:900;gap:9px}.project-total b{color:#ff0000;font-size:28px;line-height:1}.project-service-table-wrap{overflow-x:auto;padding:0 22px 18px}.project-service-table{border-collapse:separate;border-spacing:0;margin:0 auto;min-width:1120px;width:min(100%,1320px)}.project-service-table td,.project-service-table th{border:0;font-size:18px;padding:4px 10px;text-align:center;vertical-align:middle}.project-service-table thead th{background:#ffffff;color:#143d7a;font-size:20px;font-weight:900;position:static}.project-service-table thead th:first-child{width:120px}.project-service-table thead th.service-primary{background:#ff0000;color:#ffffff}.project-service-table button{background:transparent;border:0;color:inherit;font-weight:900;padding:0}.project-service-table button:hover{text-decoration:underline}.project-service-table tbody th{background:#ffffff;color:#0050a4;font-size:16px;font-weight:900;text-align:right;white-space:nowrap}.project-service-table tbody td{color:#ff6d00;font-weight:900}.project-service-table tbody td.hot{color:#ff0000}.project-service-table .completed-row td,.project-service-table .completed-row th{background:#d9d9d9;color:#005bd3}.project-summary-boxes{display:grid;grid-gap:clamp(32px,12vw,220px);gap:clamp(32px,12vw,220px);grid-template-columns:repeat(2,minmax(260px,320px));justify-content:center;min-height:250px;padding:64px 22px 76px}.project-progress-box{background:#ffffff;border:3px solid #143d63;min-height:146px}.project-progress-line{border-color:#c69700}.project-progress-title{border-bottom:3px solid;color:#000000;font-size:19px;font-weight:900;padding:4px 10px;text-align:center}.project-progress-rows{display:grid;grid-gap:7px;gap:7px;padding:20px 26px 16px}.project-progress-row{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:18px 1fr auto}.project-progress-row strong{color:#000000;font-size:16px}.project-progress-row b{color:#005bd3;font-size:16px}.project-progress-row:nth-child(2) b{color:#ff0000}.project-dot{border-radius:999px;display:inline-block;height:16px;width:16px}.project-dot-yellow{background:linear-gradient(135deg,#ffe891,#d89b22)}.project-dot-red{background:linear-gradient(135deg,#f58da0,#cf243f)}.project-dot-orange{background:linear-gradient(135deg,#ffb36b,#e15b2c);border-radius:3px}.project-dot-green{background:#23845b}.project-overview-executive{background:transparent;border:0;box-shadow:none;display:grid;grid-gap:14px;gap:14px;overflow:visible}.project-overview-executive .project-overview-hero{align-items:center;background:linear-gradient(135deg,#ffffff,#edf7fa);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);display:flex;gap:18px;justify-content:space-between;padding:18px 20px}.project-overview-executive .project-overview-title{background:transparent;border:0;color:var(--text);font-size:22px;justify-content:flex-start;min-height:0;text-align:left;text-transform:uppercase}.project-overview-hero p{color:var(--muted);line-height:1.45;margin:8px 0 0;max-width:760px}.project-overview-rate{background:#ffffff;border:1px solid var(--border);border-radius:8px;min-width:180px;padding:14px 16px;text-align:right}.project-kpi-card span,.project-overview-rate span{color:var(--muted);display:block;font-size:12px;font-weight:800}.project-overview-rate strong{color:var(--primary);display:block;font-size:32px;line-height:1;margin-top:6px}.project-kpi-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr))}.project-kpi-card,.project-overview-card{background:#ffffff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.project-kpi-card{border-left:4px solid var(--primary);padding:13px 14px}.project-kpi-card strong{color:var(--text);display:block;font-size:28px;line-height:1;margin-top:8px}.project-kpi-card small{color:var(--muted-2);display:block;font-size:12px;margin-top:8px}.project-kpi-success{border-left-color:var(--success)}.project-kpi-neutral{border-left-color:var(--border-strong)}.project-kpi-danger{border-left-color:var(--danger)}.project-kpi-warning{border-left-color:var(--warning)}.project-overview-main{display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,1fr) 340px}.project-card-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:14px 16px}.project-bars{padding:14px 16px 16px}.project-bar-row,.project-bars{display:grid;grid-gap:10px;gap:10px}.project-bar-row{align-items:center;background:transparent;border:0;color:var(--text);grid-template-columns:94px minmax(0,1fr) 72px;padding:3px 0;text-align:left}.project-bar-row:hover .project-bar-total{background:var(--primary-strong)}.project-bar-label{color:#143d7a;font-size:13px;font-weight:900;white-space:nowrap}.project-bar-track{background:var(--surface-soft);height:18px}.project-bar-total,.project-bar-track{border-radius:999px;overflow:hidden;position:relative}.project-bar-total{background:var(--primary);display:block;height:100%;min-width:8px;transition:background .15s ease}.project-bar-completed{background:var(--success);display:block;height:100%;min-width:0}.project-bar-value{display:grid;justify-items:end}.project-bar-value strong{font-size:14px;line-height:1}.project-bar-value small{color:var(--muted);font-size:11px;margin-top:3px}.project-ops-column{display:grid;grid-gap:14px;gap:14px}.project-overview-executive .project-progress-box{border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:8px;box-shadow:none;min-height:0}.project-overview-executive .project-progress-line{border-color:var(--border);border-left-color:var(--warning)}.project-overview-executive .project-progress-title{border-bottom:1px solid var(--border);color:var(--text);font-size:15px;padding:11px 14px;text-align:left}.project-overview-executive .project-progress-rows{gap:9px;padding:13px 14px 14px}.project-overview-executive .project-progress-row{grid-template-columns:14px 1fr auto}.project-overview-executive .project-progress-row strong{color:var(--text);font-size:13px}.project-overview-executive .project-progress-row b{color:var(--primary);font-size:16px}.project-overview-executive .project-progress-row:nth-child(2) b{color:var(--danger)}.project-overview-executive .project-dot{height:12px;width:12px}.project-detail-table-wrap{overflow-x:auto}.project-detail-table{min-width:640px;width:100%}.project-detail-table td,.project-detail-table th{padding:10px 14px}.project-detail-table thead th{background:#f9fbfd;color:var(--muted);font-size:12px}.project-detail-table tbody th{font-size:13px;width:30%}.project-detail-table button{background:transparent;border:0;color:#005bd3;font-weight:900;padding:0;text-align:left}.project-detail-table button:hover{text-decoration:underline}.project-detail-table td{color:var(--text);font-weight:800}.project-detail-mobile-list{display:none}.quality-view{display:grid;grid-gap:14px;gap:14px}.quality-kpis{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.quality-panel{min-width:0}.quality-filters{border-bottom:1px solid var(--border);display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(260px,2fr) minmax(180px,1fr);padding:12px 16px}.quality-table-wrap{max-height:620px;overflow:auto}.quality-table{min-width:920px;width:100%}.quality-table td,.quality-table th{border-bottom:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:top}.quality-table thead th{background:#f9fbfd;color:var(--muted);font-size:12px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.quality-table tbody td{font-size:13px;line-height:1.45}.quality-table tbody td:nth-child(2){color:var(--muted);width:72px}.quality-table tbody td:nth-child(3){width:240px}.quality-table tbody td:nth-child(3) span,.quality-table tbody td:nth-child(3) strong{display:block}.quality-table tbody td:nth-child(3) span{color:var(--muted);margin-top:3px}.quality-severity{border-radius:999px;display:inline-flex;font-size:11px;font-weight:900;padding:4px 8px;white-space:nowrap}.quality-critical{background:#fff0f2;color:#b4233c}.quality-warning{background:#fff7e6;color:#925c00}.quality-info{background:#edf7fa;color:#176b87}.quality-mobile-list{display:none}.sync-meta{color:var(--muted);font-size:13px;text-align:right}.button{align-items:center;background:var(--primary);border:1px solid var(--primary);border-radius:7px;color:#ffffff;display:inline-flex;font-weight:700;gap:8px;min-height:40px;padding:0 14px;transition:background .15s ease,border-color .15s ease,transform .15s ease}.button:hover{background:var(--primary-strong);border-color:var(--primary-strong)}.button:active{transform:translateY(1px)}.button.secondary{background:#ffffff;border-color:var(--border);color:var(--text)}.button.secondary:hover{background:var(--surface-soft);border-color:var(--border-strong)}.button:disabled{cursor:not-allowed;opacity:.65}.icon-button{align-items:center;background:#ffffff;border:1px solid var(--border);border-radius:7px;color:var(--text);display:inline-flex;height:36px;justify-content:center;width:36px}.kpi-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px}.kpi-card,.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.kpi-card{padding:15px}.kpi-label{color:var(--muted);font-size:13px;margin-bottom:8px}.kpi-value{font-size:28px;font-weight:800;line-height:1}.kpi-note{color:var(--muted-2);font-size:12px;margin-top:8px}.dashboard-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,1fr) 360px}.panel{min-width:0;overflow:hidden}.panel-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:14px 16px}.panel-title{font-size:16px;font-weight:800}.panel-subtitle{color:var(--muted);font-size:13px;margin-top:3px}.filters{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1.4fr repeat(4,minmax(130px,1fr));padding:0 16px 14px}.quick-filters{align-items:center;display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px 10px}.quick-filter-label{color:var(--muted);font-weight:800;gap:6px;margin-right:2px}.quick-filter,.quick-filter-label{align-items:center;display:inline-flex;font-size:12px}.quick-filter{background:#ffffff;border:1px solid var(--border);border-radius:999px;color:var(--text);font-weight:700;gap:7px;min-height:30px;padding:0 10px}.quick-filter strong{background:var(--surface-soft);border-radius:999px;font-size:11px;min-width:22px;padding:2px 6px;text-align:center}.quick-filter.active{background:var(--primary);border-color:var(--primary);color:#ffffff}.quick-filter.active strong{background:rgba(255,255,255,.22)}.field{min-width:0}.field label{color:var(--muted);display:block;font-size:12px;font-weight:700;margin-bottom:6px}.field input,.field select{background:#ffffff;border:1px solid var(--border);border-radius:7px;color:var(--text);height:38px;outline:none;padding:0 10px;width:100%}.field input:focus,.field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.search-wrap{align-items:center;display:flex;gap:8px;position:relative}.search-wrap svg{color:var(--muted-2);left:10px;position:absolute}.search-wrap input{padding-left:32px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.table-wrap{overflow:auto}.mobile-task-cards{display:none}table{border-collapse:collapse;min-width:1120px;width:100%}td,th{border-bottom:1px solid var(--border);font-size:13px;line-height:1.35;padding:9px 10px;text-align:left;vertical-align:top}th{background:#f9fbfd;color:var(--muted);font-size:12px;font-weight:800;position:-webkit-sticky;position:sticky;top:0;z-index:1}tbody tr:hover{background:#f8fbfd}.task-row{cursor:pointer}.task-row:focus{outline:2px solid var(--primary);outline-offset:-2px}.customer{color:#005bd3;font-weight:800}.muted,.small{color:var(--muted)}.small{font-size:12px;line-height:1.45}.status-pill{gap:6px;max-width:220px}.pipeline-pill,.risk-pill,.status-pill{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;padding:5px 8px;white-space:nowrap}.pipeline-pill,.risk-pill{max-width:240px}.status-overdue{background:var(--danger-soft);color:var(--danger)}.status-accepted{background:var(--success-soft);color:var(--success)}.status-survey{background:#e9f5fb;color:#0d6487}.status-pending{background:var(--warning-soft);color:var(--warning)}.risk-high{background:var(--danger-soft);color:var(--danger)}.risk-medium{background:var(--warning-soft);color:var(--warning)}.risk-normal{background:var(--success-soft);color:var(--success)}.mobile-task-card{background:#ffffff;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 14px rgba(20,32,51,.05);color:var(--text);display:grid;grid-gap:10px;gap:10px;padding:12px;text-align:left;width:100%}.mobile-task-card:focus{outline:2px solid var(--primary);outline-offset:2px}.mobile-task-card-top{align-items:flex-start;display:flex;gap:8px;justify-content:space-between}.mobile-task-source{background:var(--surface-soft);border:1px solid var(--border);border-radius:999px;color:var(--muted);flex:0 0 auto;font-size:11px;font-weight:800;padding:4px 7px}.mobile-task-title{color:#005bd3;display:block;font-size:15px;font-weight:900;line-height:1.25;overflow-wrap:anywhere}.mobile-task-subtitle{color:var(--muted);display:block;font-size:12px;line-height:1.35;margin-top:-4px}.mobile-task-facts{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-task-facts>span,.mobile-task-progress{background:#f9fbfd;border:1px solid var(--border);border-radius:7px;display:block;min-width:0;padding:8px}.mobile-task-facts small,.mobile-task-progress small{color:var(--muted);display:block;font-size:11px;font-weight:800;margin-bottom:4px}.mobile-task-facts strong,.mobile-task-progress strong{display:block;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.tag{background:var(--surface-soft);border:1px solid var(--border);border-radius:999px;display:inline-flex;font-size:12px;font-weight:700;padding:5px 8px}.side-content{display:grid;grid-gap:14px;gap:14px}.chart-box{height:245px;padding:12px 10px 8px}.summary-list{display:grid;grid-gap:10px;gap:10px;padding:14px 16px 16px}.summary-row{align-items:center;border:1px solid var(--border);border-radius:7px;display:flex;justify-content:space-between;padding:10px}.summary-row strong{display:block;font-size:14px}.summary-row span{color:var(--muted);display:block;font-size:12px;margin-top:2px}.empty-state{color:var(--muted);padding:42px 20px;text-align:center}.toast{background:#142033;border-radius:7px;bottom:18px;color:#ffffff;font-size:13px;left:50%;padding:10px 14px;position:fixed;transform:translateX(-50%);z-index:20}.drawer-backdrop{background:rgba(20,32,51,.35);inset:0;position:fixed;z-index:50}.alert-drawer{background:var(--surface);border-left:1px solid var(--border);box-shadow:-12px 0 32px rgba(20,32,51,.18);display:flex;flex-direction:column;height:100%;margin-left:auto;max-width:min(520px,100%);width:520px}.drawer-header{align-items:flex-start;justify-content:space-between;padding:16px}.alert-filters,.drawer-header{border-bottom:1px solid var(--border);display:flex}.alert-filters{gap:8px;overflow-x:auto;padding:12px 16px}.alert-filter{background:#ffffff;border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:12px;font-weight:700;padding:7px 10px;white-space:nowrap}.alert-filter.active{background:var(--primary);border-color:var(--primary);color:#ffffff}.drawer-digest{background:var(--surface-soft);border-bottom:1px solid var(--border);color:var(--muted);font-size:12px;line-height:1.45;padding:12px 16px}.drawer-digest strong{color:var(--text);margin-right:4px}.drawer-alert-list{display:grid;grid-gap:10px;gap:10px;overflow-y:auto;padding:14px 16px 20px}.drawer-alert{border:1px solid var(--border);border-radius:8px;overflow:hidden}.drawer-alert.read{opacity:.78}.drawer-alert.dismissed{opacity:.55}.drawer-alert-main{border:0;border-radius:0}.drawer-alert-actions{background:#f9fbfd;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;padding:8px 10px}.drawer-alert-actions button{align-items:center;background:#ffffff;border:1px solid var(--border);border-radius:7px;color:var(--text);display:inline-flex;font-size:12px;font-weight:700;gap:5px;padding:6px 8px}.detail-backdrop{z-index:60}.task-detail-drawer{background:var(--surface);border-left:1px solid var(--border);box-shadow:-12px 0 32px rgba(20,32,51,.18);display:flex;flex-direction:column;height:100%;margin-left:auto;max-width:min(680px,100%);width:680px}.task-detail-header{align-items:flex-start}.detail-title-line{align-items:center;color:var(--primary);display:flex;font-size:12px;font-weight:800;gap:7px;margin-bottom:6px;text-transform:uppercase}.task-detail-body{display:grid;grid-gap:12px;gap:12px;overflow-y:auto;padding:14px 16px 22px}.detail-loading{background:var(--primary-soft);border:1px solid #b7dce4;border-radius:7px;color:var(--primary-strong);font-size:13px;font-weight:700;padding:9px 10px}.detail-section{border:1px solid var(--border);border-radius:8px;padding:12px}.detail-section-title{align-items:center;display:flex;font-size:14px;font-weight:800;gap:7px;margin-bottom:10px}.detail-status-line,.tracking-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.detail-grid{display:grid;grid-gap:9px;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-item{background:#f9fbfd;border:1px solid var(--border);border-radius:7px;min-width:0;padding:9px}.detail-item span,.note-form label,.tracking-form label{color:var(--muted);display:block;font-size:12px;font-weight:800}.detail-item strong{font-size:13px}.detail-item small,.detail-item strong{display:block;margin-top:4px;overflow-wrap:anywhere}.detail-item small{color:var(--muted);font-size:12px;line-height:1.35}.detail-content{background:#ffffff;border-left:3px solid var(--primary);color:var(--muted);font-size:13px;line-height:1.5;margin-top:10px;padding:8px 10px}.tracking-form{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.note-form textarea,.tracking-form input,.tracking-form select,.tracking-form textarea{background:#ffffff;border:1px solid var(--border);border-radius:7px;color:var(--text);margin-top:6px;outline:none;padding:9px 10px;width:100%}.tracking-form input,.tracking-form select{height:38px}.note-form textarea,.tracking-form textarea{line-height:1.45;resize:vertical}.tracking-full,.tracking-save{grid-column:1/-1}.tracking-save{justify-content:center}.tracking-meta{color:var(--muted);font-size:12px;margin:10px 0 0}.priority-pill{border-radius:999px;display:inline-flex;font-weight:800;padding:5px 8px}.priority-high,.priority-urgent{background:var(--danger-soft);color:var(--danger)}.priority-normal{background:var(--primary-soft);color:var(--primary-strong)}.priority-low{background:var(--surface-soft);color:var(--muted)}.note-form{display:grid;grid-gap:8px;gap:8px}.note-form .button{justify-content:center}.note-list{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.note-item{background:#f9fbfd;border:1px solid var(--border);border-radius:7px;color:var(--text);font-size:13px;line-height:1.45;padding:10px}.note-item span{color:var(--muted);display:block;font-size:12px;margin-top:6px}.detail-source{background:#fbfcfe}@media (max-width:1180px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-panel,.dashboard-grid{grid-template-columns:1fr}.project-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-overview-main{grid-template-columns:1fr}.quality-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:860px){.app-shell{width:min(100% - 20px,1500px);padding-top:16px}.topbar{flex-direction:column}.actions{align-items:stretch;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.actions .button{justify-content:center;width:100%}.sync-meta{grid-column:1/-1;text-align:left}.detail-grid,.filters,.kpi-grid,.tracking-form{grid-template-columns:1fr}.view-tabs{flex-wrap:nowrap;margin-inline:-10px;overflow-x:auto;padding-inline:10px;scrollbar-width:thin}.view-chip{flex:0 0 auto;justify-content:center;min-width:max-content;white-space:nowrap}.quick-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.quick-filter,.quick-filter-label{flex:0 0 auto;white-space:nowrap}.project-overview-title{font-size:20px;min-height:50px;padding:0 12px}.project-overview-executive .project-overview-hero{align-items:stretch;flex-direction:column}.project-overview-executive .project-overview-title{font-size:18px;padding:0}.project-overview-rate{text-align:left}.project-kpi-grid{grid-template-columns:1fr}.quality-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.project-bar-row{grid-template-columns:76px minmax(0,1fr) 58px}.project-bar-label{font-size:12px}.project-total div{font-size:22px}.project-service-table-wrap{padding-inline:10px}.project-service-table td,.project-service-table th{font-size:15px;padding-inline:8px}.project-service-table thead th{font-size:16px}.project-summary-boxes{gap:18px;grid-template-columns:1fr;min-height:0;padding:28px 12px 34px}h1{font-size:24px}}@media (max-width:640px){.app-shell{padding:12px 0 28px;width:min(100% - 16px,1500px)}.topbar{gap:12px;margin-bottom:12px}.subtitle{font-size:13px;line-height:1.45}.button{min-height:40px;padding-inline:10px}.view-tabs{gap:8px;margin-bottom:12px}.view-chip{min-height:38px;padding-inline:10px}.project-overview-executive{gap:10px}.project-overview-executive .project-overview-hero{gap:12px;padding:14px}.project-overview-executive .project-overview-title{font-size:16px;line-height:1.3}.project-overview-hero p{font-size:13px;margin-top:6px}.project-overview-rate{align-items:flex-end;display:flex;justify-content:space-between;min-width:0;padding:12px;text-align:left;width:100%}.project-overview-rate strong{font-size:28px}.kpi-grid,.project-kpi-grid,.quality-kpis{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-card,.project-kpi-card{padding:10px}.kpi-value,.project-kpi-card strong{font-size:23px}.kpi-note,.project-kpi-card small{font-size:11px;line-height:1.35}.quality-filters{gap:8px;grid-template-columns:1fr;padding:10px 12px 12px}.quality-table-wrap{display:none}.quality-mobile-list{background:#f9fbfd;display:grid;grid-gap:10px;gap:10px;padding:12px}.quality-mobile-card{background:#ffffff;border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:7px;gap:7px;padding:11px}.quality-mobile-card>div{align-items:center;display:flex;justify-content:space-between}.quality-mobile-card small,.quality-mobile-card>span{color:var(--muted);font-size:12px}.quality-mobile-card p{font-size:13px;line-height:1.45;margin:0}.project-overview-main{gap:10px}.panel-header,.project-card-header{align-items:flex-start;flex-direction:column;padding:12px}.project-bars{gap:0;padding:6px 12px 12px}.project-bar-row{border-bottom:1px solid var(--border);gap:7px 10px;grid-template-columns:minmax(0,1fr) auto;padding:10px 0}.project-bar-row:last-child{border-bottom:0}.project-bar-label{font-size:13px;white-space:normal}.project-bar-track{grid-column:1/-1;height:14px;order:2}.project-bar-value{align-self:start}.project-ops-column{gap:10px}.project-overview-executive .project-progress-title{font-size:14px;padding:10px 12px}.project-overview-executive .project-progress-rows{padding:12px}.project-overview-executive .project-progress-row strong{font-size:12px}.project-detail-table-wrap{display:none}.project-detail-mobile-list{display:grid;grid-gap:8px;gap:8px;padding:12px}.project-detail-mobile-card{align-items:start;background:#ffffff;border:1px solid var(--border);border-radius:8px;color:var(--text);display:grid;grid-gap:4px 10px;gap:4px 10px;grid-template-columns:minmax(0,1fr) auto;padding:10px;text-align:left}.project-detail-mobile-card span{color:#005bd3;font-size:13px;font-weight:900;overflow-wrap:anywhere}.project-detail-mobile-card strong{font-size:18px;line-height:1}.project-detail-mobile-card small{color:var(--muted);font-size:12px;grid-column:1/-1}.filter-stack{border-bottom:0}.filters{gap:8px;padding:0 12px 12px}.quick-filters{padding:10px 12px 8px}.field input,.field select{height:40px}.table-wrap{display:none}.mobile-task-cards{background:#f9fbfd;display:grid;grid-gap:10px;gap:10px;padding:12px}.mobile-task-card .pipeline-pill,.mobile-task-card .risk-pill,.mobile-task-card .status-pill{line-height:1.25;max-width:100%;white-space:normal}.side-content{gap:10px}.chart-box{height:220px;padding:8px 6px 6px}.summary-list{gap:8px;padding:12px}.summary-row{align-items:flex-start;gap:10px}.alert-drawer,.task-detail-drawer{border-left:0;box-shadow:none;max-width:100%;width:100%}.task-detail-header{background:var(--surface);position:-webkit-sticky;position:sticky;top:0;z-index:2}.drawer-header{padding:12px}.task-detail-body{gap:10px;padding:10px 10px 18px}.detail-section{padding:10px}.note-form .button,.tracking-save{width:100%}.toast{bottom:10px;text-align:center;width:calc(100% - 20px)}}@media (max-width:380px){.app-shell{padding-bottom:24px;width:min(100% - 12px,1500px)}h1{font-size:20px}.actions,.kpi-grid,.mobile-task-facts,.project-kpi-grid,.quality-kpis{grid-template-columns:1fr}.kpi-card,.mobile-task-card,.project-kpi-card,.project-overview-executive .project-overview-hero{padding:10px}.project-overview-rate{align-items:flex-start;flex-direction:column;gap:4px}.project-detail-mobile-card{grid-template-columns:1fr}.mobile-task-card-top{align-items:flex-start;flex-direction:column}.mobile-task-source{width:max-content}}.analysis-loading,.view-load-state{align-items:center;color:var(--muted);display:flex;gap:10px;justify-content:center;min-height:88px;padding:20px}.view-load-error{background:#fff7f7;border:1px solid #f2c6c6;color:#a72f36;justify-content:space-between;min-height:52px}.view-load-error button{background:#fff;border:1px solid;border-radius:6px;color:inherit;min-height:40px;padding:0 14px}.view-load-spinner{animation:dashboard-loading-spin .75s linear infinite;border-radius:50%;border:2px solid #cbd5e1;border-top:2px solid var(--primary);flex:0 0 auto;height:18px;width:18px}@keyframes dashboard-loading-spin{to{transform:rotate(1turn)}}.completion-workspace{background:#ffffff;border:1px solid var(--border);border-radius:8px;min-width:0;overflow:hidden}.customer-revenue-summary{border-bottom:1px solid var(--border);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--border)}.customer-revenue-summary>div{background:#ffffff;display:grid;grid-gap:3px;gap:3px;padding:12px 14px}.customer-revenue-summary span{color:var(--muted);font-size:11px;font-weight:700}.customer-revenue-summary strong{font-size:16px}.customer-revenue-summary .has-warning strong{color:var(--warning-text)}.public-financial-value{display:grid;grid-gap:3px;gap:3px}.public-financial-value strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.public-financial-value small{color:var(--warning-text);font-size:10px}.completion-toolbar{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.completion-search{align-items:center;background:#ffffff;border:1px solid var(--border-strong);border-radius:7px;display:flex;flex:1 1 360px;gap:8px;max-width:520px;min-height:42px;padding:0 11px}.completion-search svg{color:var(--muted);flex:0 0 auto}.completion-search input{background:transparent;border:0;color:var(--text);font:inherit;min-width:0;outline:0;width:100%}.completion-team-filter{display:flex;gap:7px;overflow-x:auto}.completion-chip{align-items:center;background:#ffffff;border:1px solid var(--border);border-radius:7px;color:var(--text);display:inline-flex;font-size:12px;font-weight:800;gap:7px;min-height:38px;padding:7px 10px;white-space:nowrap}.completion-chip strong{background:#eef3f7;border-radius:999px;min-width:23px;padding:2px 6px;text-align:center}.completion-chip.active{background:var(--success-soft);border-color:#69ad8b;color:#176846}.completion-badges{align-items:flex-start;display:flex;flex-wrap:wrap;gap:5px}.completion-badge{align-items:center;background:var(--success-soft);border:1px solid #78b997;border-radius:999px;color:#176846;display:inline-flex;font-size:11px;font-weight:850;gap:5px;min-height:28px;padding:4px 8px;white-space:nowrap}.completion-badge.support{background:#f0edff;border-color:#9b87e5;color:#5d42bd}.completion-badge.cancelled{background:#fff1f2;border-color:#e6a2aa;color:#a52d3d}.completion-badge.requote{background:#fff7e8;border-color:#e4b35d;color:#875a08}.cancelled-card{border-left:3px solid #c95a68}.requote-card{border-left:3px solid #d59a32}.mobile-completion-list{display:none}.completed-card{background:#ffffff;border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:9px;gap:9px;min-width:0;padding:11px}.completed-card-title{font-size:15px;line-height:1.35}.completed-card-subtitle{color:var(--muted);font-size:12px}.completed-card-facts{display:grid;grid-gap:7px;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.completed-card-facts>span,.completed-card-progress{background:#f7f9fb;border:1px solid var(--border);border-radius:6px;display:grid;grid-gap:3px;gap:3px;min-width:0;padding:8px}.completed-card-facts small,.completed-card-progress small{color:var(--muted);font-size:10px}.completed-card-facts strong,.completed-card-progress strong{font-size:12px;line-height:1.35;overflow-wrap:anywhere}@media (max-width:767px){.customer-revenue-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.completion-toolbar{align-items:stretch;flex-direction:column;gap:8px;padding:10px}.completion-search{flex-basis:auto;max-width:none;min-height:44px}.completion-team-filter{margin:0 -10px;padding:0 10px 2px;scrollbar-width:none}.completion-team-filter::-webkit-scrollbar{display:none}.completion-chip{min-height:42px}.desktop-completion-table{display:none}.mobile-completion-list{display:grid;grid-gap:8px;gap:8px;padding:10px}}@media (max-width:380px){.completed-card-facts{grid-template-columns:1fr}}.order-workspace{display:grid;grid-gap:0;gap:0}.order-kpi-grid{background:#eef2f6;display:grid;grid-gap:1px;gap:1px;grid-template-columns:repeat(4,minmax(0,1fr))}.order-kpi{align-items:center;background:#ffffff;border:0;color:var(--text);cursor:pointer;display:flex;gap:10px;min-height:72px;padding:12px 14px;text-align:left}.order-kpi>span{align-items:center;background:#edf4f8;border-radius:7px;color:var(--primary);display:inline-flex;height:34px;justify-content:center;width:34px}.order-kpi>div{display:grid;grid-gap:2px;gap:2px}.order-kpi strong{font-size:19px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.order-kpi small{color:var(--muted);font-size:11px;font-weight:750}.order-kpi.active{box-shadow:inset 0 -3px 0 var(--primary)}.order-kpi.overdue.active,.order-kpi.overdue>span{color:var(--danger)}.order-kpi.overdue>span{background:#fff0f1}.order-kpi.today.active,.order-kpi.today>span{color:#176846}.order-kpi.today>span{background:var(--success-soft)}.order-toolbar{align-items:center}.order-filter-rail{display:flex;gap:6px;max-width:100%;overflow-x:auto;scrollbar-width:thin}.order-filter-rail button{background:#ffffff;border:1px solid var(--border);border-radius:999px;color:var(--muted);cursor:pointer;font:inherit;font-size:11px;font-weight:750;min-height:36px;padding:6px 10px;white-space:nowrap}.order-filter-rail button strong{color:var(--text);margin-left:3px}.order-filter-rail button.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.order-filter-rail button:disabled{cursor:default;opacity:.45}.delivery-badge{align-items:center;background:#f0f3f6;border:1px solid var(--border);border-radius:999px;color:#425466;display:inline-flex;font-size:11px;font-weight:800;gap:5px;max-width:max-content;min-height:28px;padding:4px 8px;white-space:nowrap}.delivery-badge.overdue{background:#fff0f1;border-color:#edabb2;color:var(--danger)}.delivery-badge.today{background:var(--success-soft);border-color:#8cc5a8;color:#176846}.delivery-badge.missing{background:#fff8e8;border-color:#e4c67f;color:#79530b}.delivery-badge.soon{background:#edf5fb;border-color:#9bc3d8;color:#176b87}.order-date{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.order-card.overdue{border-left:3px solid var(--danger)}.order-card.today{border-left:3px solid var(--success)}@media (max-width:767px){.order-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.order-kpi{min-height:68px;padding:10px}.order-filter-rail{margin-inline:-10px;padding:0 10px 2px;scrollbar-width:none}.order-filter-rail::-webkit-scrollbar{display:none}.order-filter-rail button{min-height:44px}}@media (max-width:380px){.order-kpi-grid{grid-template-columns:1fr}}body,html{overflow-x:hidden}.app-shell{width:min(1680px,calc(100% - 24px))}.topbar{align-items:center;margin-bottom:14px}.topbar-copy{min-width:0}.topbar-copy h1{font-size:28px}.topbar-copy .subtitle{margin-top:6px}.actions{align-items:center;flex-direction:row;flex-wrap:wrap;justify-content:flex-end}.sync-status{border:1px solid var(--border);border-left:3px solid var(--success);border-radius:7px;display:grid;min-height:40px;padding:6px 10px}.sync-status span{font-size:12px;font-weight:900}.sync-status small{color:var(--muted);font-size:10px;margin-top:2px}.sync-partial,.sync-running{border-left-color:var(--warning)}.sync-failed{border-left-color:var(--danger)}.sync-empty{border-left-color:var(--border-strong)}.health-banner{align-items:flex-start;background:#fff8e8;border:1px solid #ecd59b;border-radius:7px;color:#744b00;display:flex;gap:10px;margin-bottom:12px;padding:10px 12px}.health-banner svg{flex:0 0 auto;margin-top:1px}.health-banner span,.health-banner strong{display:block}.health-banner strong{font-size:13px}.health-banner span{font-size:12px;line-height:1.4;margin-top:2px}.view-tabs{background:rgba(246,248,251,.96);padding-block:6px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.view-chip{box-shadow:none;scroll-snap-align:center}.button:focus-visible,.icon-button:focus-visible,.project-bar-row:focus-visible,.project-progress-box:focus-visible,.quick-filter:focus-visible,.view-chip:focus-visible{outline:3px solid var(--primary-soft);outline-offset:2px}.kpi-card,.panel,.project-kpi-card,.project-overview-card{box-shadow:0 2px 8px rgba(20,32,51,.05)}.kpi-grid,.project-kpi-grid,.quality-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.project-overview-executive .project-overview-hero{background:#ffffff}.project-source-strip{background:#ffffff;border:1px solid var(--border);border-radius:7px;display:grid;grid-gap:0;gap:0;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden}.project-source-strip span{color:var(--muted);font-size:12px;padding:10px 12px}.project-source-strip span+span{border-left:1px solid var(--border)}.project-source-strip strong{color:var(--text);margin-right:4px}.project-finance-strip{background:#ffffff;border:1px solid var(--border);border-left:4px solid #16805a;border-radius:7px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(280px,1.4fr);overflow:hidden}.project-finance-strip>div{display:grid;grid-gap:2px;gap:2px;padding:12px 14px}.project-finance-strip>div+div{border-left:1px solid var(--border)}.project-finance-strip p,.project-finance-strip small,.project-finance-strip span{color:var(--muted);font-size:12px}.project-finance-strip strong{color:var(--text);font-size:20px}.project-finance-strip p{align-self:center;margin:0;padding:12px 14px;border-left:1px solid var(--border)}.project-progress-box{color:var(--text);cursor:pointer;font:inherit;padding:0;text-align:left;width:100%}.project-progress-box:hover{border-color:var(--primary);background:#fbfdfe}.project-detail-card>summary{cursor:pointer;list-style:none}.analysis-section>summary::-webkit-details-marker,.column-menu>summary::-webkit-details-marker,.project-detail-card>summary::-webkit-details-marker{display:none}.analysis-section[open]>summary svg,.project-detail-card[open]>summary svg{transform:rotate(180deg)}.analysis-section summary svg,.project-detail-card summary svg{transition:transform .18s ease}.task-workspace{overflow:visible}.filter-stack,.workspace-header{background:#ffffff}.filter-stack{border-bottom:1px solid var(--border)}.filter-primary-row{align-items:end;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(280px,1fr) auto auto;padding:12px 16px 0}.filter-search-field{max-width:620px}.filter-toggle.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-strong)}.filter-toggle strong{align-items:center;background:var(--primary);border-radius:999px;color:#ffffff;display:inline-flex;font-size:11px;height:20px;justify-content:center;min-width:20px;padding-inline:5px}.clear-filter-button{align-items:center;background:transparent;border:0;color:var(--muted);display:inline-flex;gap:5px;min-height:40px;padding:0 6px}.clear-filter-button:hover{color:var(--danger)}.quick-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.quick-filter,.quick-filter-label{flex:0 0 auto;white-space:nowrap}.advanced-filter-layer{display:none}.advanced-filter-layer.open{display:block}.advanced-filter-header{display:none}.advanced-filter-sheet .filters{border-top:1px solid var(--border);grid-template-columns:repeat(4,minmax(150px,1fr));padding-top:12px}.desktop-task-table,.quality-desktop-table{display:block}.operational-table{background:#ffffff;min-width:0}.table-commandbar{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;min-height:52px;padding:8px 12px}.table-result-summary{align-items:baseline;display:flex;flex-wrap:wrap;gap:5px 10px;min-width:0}.table-result-summary strong{font-size:13px}.table-result-summary small,.table-result-summary span{color:var(--muted);font-size:12px}.table-command-actions{align-items:center;display:flex;gap:8px}.scroll-buttons{display:flex;gap:4px}.icon-button:disabled{cursor:default;opacity:.35}.column-menu{position:relative}.column-menu>summary{cursor:pointer;list-style:none}.column-menu-popover{background:#ffffff;border:1px solid var(--border);border-radius:7px;box-shadow:0 14px 30px rgba(20,32,51,.18);display:grid;grid-gap:3px;gap:3px;min-width:230px;padding:8px;position:absolute;right:0;top:calc(100% + 6px);z-index:30}.column-menu-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;margin-bottom:4px;padding:4px 4px 8px}.column-menu-header button{align-items:center;background:transparent;border:0;color:var(--primary);display:inline-flex;font-size:11px;gap:4px}.column-menu-popover label{align-items:center;border-radius:5px;display:flex;font-size:12px;gap:8px;min-height:32px;padding:4px 6px}.column-menu-popover label:hover{background:var(--surface-soft)}.column-menu-popover label.locked{color:var(--muted)}.table-top-scroll{background:#f8fafc;border-bottom:1px solid var(--border);height:14px;overflow-x:auto;overflow-y:hidden;scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}.table-top-scroll>div{height:1px}.table-top-scroll.hidden{height:0;overflow:hidden}.table-viewport-shell{position:relative}.table-viewport-shell:after,.table-viewport-shell:before{bottom:0;content:"";opacity:0;pointer-events:none;position:absolute;top:0;transition:opacity .15s ease;width:22px;z-index:10}.table-viewport-shell:before{background:linear-gradient(90deg,rgba(20,32,51,.13),transparent);left:0}.table-viewport-shell:after{background:linear-gradient(270deg,rgba(20,32,51,.13),transparent);right:0}.table-viewport-shell.can-left:before,.table-viewport-shell.can-right:after{opacity:1}.table-viewport{height:clamp(420px,58dvh,720px);overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--border-strong) var(--surface-soft);scrollbar-gutter:stable}.data-grid-table{border-collapse:separate;border-spacing:0;table-layout:fixed}.data-grid-table td,.data-grid-table th{background:#ffffff;border-bottom:1px solid #e5eaf0;border-right:1px solid #edf0f4;overflow:hidden;padding:8px 10px;text-overflow:ellipsis;vertical-align:top}.data-grid-table th{background:#f5f8fb;color:#48586b;top:0}.data-grid-table td[data-pinned=left],.data-grid-table th[data-pinned=left]{box-shadow:inset -1px 0 0 var(--border)}.data-grid-table tbody tr:nth-child(2n) td{background:#fbfcfd}.data-grid-table tbody tr:focus td,.data-grid-table tbody tr:hover td{background:#edf7fa}.data-grid-table tbody tr:focus{outline:2px solid var(--primary);outline-offset:-2px}.interactive-row{cursor:pointer}.sortable-header{align-items:center;background:transparent;border:0;color:inherit;display:flex;font-size:12px;font-weight:800;gap:5px;justify-content:space-between;padding:0;text-align:left;width:100%}.sortable-header svg{flex:0 0 auto;opacity:.55}.sortable-header .sort-asc{transform:rotate(180deg)}.cell-stack{display:grid;grid-gap:3px;gap:3px;min-width:0}.cell-stack>span,.cell-stack>strong{font-size:12px}.cell-stack small{color:var(--muted);font-size:11px;line-height:1.35}.cell-clamp{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.operational-table .pipeline-pill,.operational-table .risk-pill,.operational-table .status-pill{font-size:11px;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis}.operational-table .status-pill{display:-webkit-box;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.table-empty{color:var(--muted);padding:48px 20px;text-align:center}.table-footer{align-items:center;border-top:1px solid var(--border);display:flex;justify-content:space-between;min-height:50px;padding:7px 12px}.pagination-actions,.table-footer label{align-items:center;display:flex;gap:8px}.pagination-actions span,.table-footer label span{color:var(--muted);font-size:12px}.table-footer select{background:#ffffff;border:1px solid var(--border);border-radius:6px;height:34px;padding-inline:8px}.analysis-section{margin-top:14px;overflow:visible}.analysis-section>summary{align-items:center;cursor:pointer;display:flex;justify-content:space-between;list-style:none;padding:14px 16px}.analysis-section>summary span,.analysis-section>summary strong{display:block}.analysis-section>summary span{color:var(--muted);font-size:12px;margin-top:3px}.analysis-grid{border-top:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)}.analysis-block+.analysis-block{border-left:1px solid var(--border)}.mobile-load-more{justify-content:center;width:100%}.ownership-filter-bar{align-items:center;background:#f8fafc;border-bottom:1px solid var(--border);display:flex;min-width:0}.ownership-filter-rail{align-items:center;display:flex;flex:1 1 auto;gap:8px;min-height:50px;min-width:0;overflow-x:auto;padding:8px 0 8px 16px;scrollbar-width:thin}.ownership-filter-rail>span{color:var(--muted);flex:0 0 auto;font-size:12px;font-weight:800;margin-right:3px}.ownership-filter-chip{align-items:center;background:#ffffff;border:1px solid var(--border);border-radius:7px;color:var(--text);display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:800;gap:8px;min-height:34px;padding:0 10px}.ownership-filter-chip strong{background:var(--surface-soft);border-radius:999px;min-width:23px;padding:2px 6px}.ownership-filter-site_gp.active{background:#e9f5fb;border-color:#2685aa;color:#0d6487}.ownership-filter-support_team.active{background:#f0edff;border-color:#7357d7;color:#5d42bd}.ownership-filter-all.active{background:#eaf0f5;border-color:#6b7c8e}.ownership-context-filters{align-items:center;display:flex;flex:0 0 auto;gap:8px;padding:8px 16px 8px 10px}.gp-step-filter{flex:0 0 auto;position:relative}.gp-step-trigger{align-items:center;background:#ffffff;border:1px solid var(--border);border-radius:7px;color:var(--text);display:inline-flex;gap:7px;min-height:36px;padding:0 10px;white-space:nowrap}.gp-step-trigger span{color:var(--muted);font-size:11px;font-weight:700}.gp-step-trigger strong{font-size:12px}.gp-step-trigger.active{background:#e9f5fb;border-color:#2685aa;color:#0d6487}.gp-step-backdrop{background:rgba(20,32,51,.2);border:0;cursor:default;inset:0;padding:0;position:fixed;z-index:90}.gp-step-popover{background:#ffffff;border:1px solid var(--border);bottom:calc(100% + 7px);border-radius:8px;box-shadow:0 18px 48px rgba(20,32,51,.22);max-height:calc(100dvh - 110px);overflow-y:auto;position:absolute;right:0;top:auto;width:min(380px,calc(100vw - 32px));z-index:91}.gp-step-header{align-items:center;background:#ffffff;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:13px 14px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.gp-step-header span,.gp-step-header strong,.gp-step-option-copy small,.gp-step-option-copy strong{display:block}.gp-step-header strong{font-size:14px}.gp-step-header span,.gp-step-option-copy small{color:var(--muted);font-size:11px;margin-top:2px}.gp-step-options{display:grid;grid-gap:4px;gap:4px;padding:8px}.gp-step-option{align-items:center;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--text);display:grid;grid-gap:9px;gap:9px;grid-template-columns:34px minmax(0,1fr) auto 18px;min-height:52px;padding:7px 9px;text-align:left;width:100%}.gp-step-option.active,.gp-step-option:hover:not(:disabled){background:#eef7fb;border-color:#b9dce9}.gp-step-option:disabled{cursor:not-allowed;opacity:.45}.gp-step-code{align-items:center;background:#e9f5fb;border-radius:6px;color:#0d6487;display:inline-flex;font-size:10px;font-weight:900;height:30px;justify-content:center;width:34px}.gp-step-option-copy{min-width:0}.gp-step-option-copy strong{font-size:12px}.gp-step-option-count{align-items:center;background:var(--surface-soft);border-radius:999px;display:inline-flex;font-size:11px;font-weight:800;justify-content:center;min-width:28px;padding:3px 7px}.gp-step-check{color:#0d6487}.task-date-filter{flex:0 0 auto}.date-range-trigger{align-items:center;background:#ffffff;border:1px solid var(--border);border-radius:7px;color:var(--text);display:inline-flex;gap:7px;min-height:36px;padding:0 10px;white-space:nowrap}.date-range-trigger span{color:var(--muted);font-size:11px;font-weight:700}.date-range-trigger strong{font-size:12px}.date-range-trigger.active{background:#eef6ff;border-color:#3f83c4;color:#135d91}.date-filter-backdrop{background:rgba(20,32,51,.25);border:0;cursor:default;inset:0;padding:0;position:fixed;z-index:90}.date-filter-popover{background:#ffffff;border:1px solid var(--border);border-radius:8px;box-shadow:0 18px 48px rgba(20,32,51,.22);max-height:calc(100dvh - 110px);overflow-y:auto;position:fixed;right:max(24px,calc((100vw - 1680px) / 2));top:150px;width:min(570px,calc(100vw - 32px));z-index:91}.date-filter-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:14px 16px;position:-webkit-sticky;position:sticky;top:0;background:#ffffff;z-index:2}.date-filter-header span,.date-filter-header strong{display:block}.date-filter-header strong{font-size:15px}.date-filter-header span{color:var(--muted);font-size:11px;margin-top:2px}.date-filter-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.date-preset-list{border-right:1px solid var(--border);display:grid;padding:8px}.date-preset-option{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--text);display:flex;font-size:12px;font-weight:700;justify-content:space-between;min-height:40px;padding:0 10px;text-align:left}.date-preset-option.active,.date-preset-option:hover{background:#eef6ff;color:#135d91}.date-custom-range{display:grid;grid-gap:11px;gap:11px;padding:16px}.date-custom-range>strong{font-size:13px}.date-custom-range label{color:var(--muted);display:grid;font-size:11px;font-weight:700;grid-gap:5px;gap:5px}.date-custom-range input{background:#ffffff;border:1px solid var(--border);border-radius:6px;color:var(--text);font:inherit;min-height:42px;padding:0 10px;width:100%}.date-custom-range .button{justify-content:center;margin-top:3px;width:100%}.ownership-badge{align-items:center;border:1px solid;border-radius:7px;display:inline-grid;font-size:11px;font-weight:900;gap:1px 6px;grid-template-columns:auto 1fr;min-height:38px;padding:5px 8px;text-align:left;white-space:nowrap}button.ownership-badge{cursor:pointer}.ownership-badge small{font-size:9px;grid-column:2;letter-spacing:.03em;opacity:.78}.ownership-badge.compact{display:inline-flex;min-height:30px;padding:4px 7px}.ownership-dot{background:currentColor;border-radius:50%;height:7px;width:7px}.ownership-site_gp{background:#e9f5fb;color:#0d6487}.ownership-support_team{background:#f0edff;color:#5d42bd}.task-stepper{align-items:stretch;display:grid;grid-gap:5px;gap:5px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-width:0;width:100%}.task-stepper-arrow{align-self:center;color:#8a98a8}.task-stage{background:#f7f9fb;border:1px solid var(--border);border-radius:6px;color:var(--muted);display:block;min-width:0;padding:6px 7px;text-align:left}button.task-stage{cursor:pointer}.task-stage-heading{align-items:center;display:flex;font-size:9px;font-weight:900;gap:3px;letter-spacing:.03em}.task-stage small,.task-stage strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-stage strong{font-size:10px;margin-top:2px}.task-stage small{font-size:10px;margin-top:3px;opacity:.82}.task-stage-site_gp.is-active,.task-stage-site_gp.is-complete{background:#e9f5fb;border-color:#6bb1cc;color:#0d6487}.task-stage-support_team.is-active{background:#f0edff;border-color:#9b87e5;color:#5d42bd}.task-stage.is-waiting{background:#f6f7f9;color:#758292}.task-stepper.compact .task-stage{padding:6px}.progress-cell-editor{display:grid;grid-gap:7px;gap:7px;min-width:0}.progress-edit-trigger{align-items:center;align-self:flex-start;background:#ffffff;border:1px solid #aebdcb;border-radius:6px;color:var(--primary-strong);display:inline-flex;font-size:11px;font-weight:800;gap:5px;justify-content:space-between;min-height:30px;padding:5px 8px}.progress-edit-trigger:hover{background:var(--primary-soft);border-color:var(--primary)}.progress-edit-trigger.locked{background:#f4f6f8;border-color:#cbd4dc;border-style:dashed;color:#667785}.progress-edit-trigger.locked:hover{background:#edf1f4;border-color:#aebbc6}.progress-edit-trigger.compact{min-height:44px;width:100%}.progress-dialog-backdrop{align-items:center;background:rgba(20,32,51,.48);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:110}.progress-dialog{background:#ffffff;border:1px solid var(--border);border-radius:8px;box-shadow:0 22px 60px rgba(20,32,51,.26);max-height:calc(100dvh - 40px);overflow:hidden;width:min(640px,100%)}.progress-dialog-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:15px 18px}.progress-dialog-header span{color:var(--primary);display:block;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.progress-dialog-header h2{font-size:19px;letter-spacing:0;margin:3px 0 0}.progress-dialog-body{display:grid;grid-gap:14px;gap:14px;max-height:calc(100dvh - 112px);overflow-y:auto;padding:16px 18px 18px}.progress-project-summary{background:#f6f9fc;border:1px solid var(--border);border-radius:7px;display:grid;grid-gap:3px;gap:3px;padding:11px 12px}.progress-project-summary strong{font-size:14px}.progress-change-grid>div>span,.progress-date-grid>div>span,.progress-project-summary span{color:var(--muted);font-size:12px}.progress-dialog-loading{align-items:center;color:var(--muted);display:flex;gap:8px;justify-content:center;min-height:170px}.project-update-section{border:1px solid var(--border);border-radius:8px;display:grid;grid-gap:12px;gap:12px;padding:12px}.project-update-section>header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding-bottom:9px}.project-update-section>header div{display:grid;grid-gap:2px;gap:2px}.project-update-section>header strong{font-size:14px}.project-update-section>header span{color:var(--muted);font-size:11px}.progress-change-grid,.progress-date-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.progress-change-grid>div,.progress-change-grid>label,.progress-date-grid>div,.progress-date-grid>label{border:1px solid var(--border);border-radius:7px;display:grid;grid-gap:7px;gap:7px;min-width:0;padding:10px}.progress-change-grid>div>strong,.progress-date-grid>div>strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}.progress-actor-field,.progress-change-grid label,.progress-date-grid label{color:var(--text);font-size:12px;font-weight:800}.progress-actor-field input,.progress-change-grid select,.progress-date-grid input{background:#ffffff;border:1px solid var(--border-strong);border-radius:6px;color:var(--text);min-height:42px;padding:8px 10px;width:100%}.progress-date-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;min-height:24px}.progress-date-actions button{background:transparent;border:0;color:var(--primary);font-size:11px;font-weight:800;padding:3px 0}.progress-date-actions button:first-child{color:var(--danger)}.progress-date-actions button.neutral-action{color:var(--primary)}.progress-confirm-note,.progress-dialog-error,.progress-warning{align-items:flex-start;border-radius:7px;display:flex;font-size:12px;gap:8px;line-height:1.45;padding:10px 11px}.progress-warning{background:var(--warning-soft);border:1px solid #e0b55e;color:#80530e}.progress-warning div,.progress-warning span,.progress-warning strong{display:block}.progress-risk-confirm{align-items:center;color:var(--text);display:flex;font-weight:800;gap:8px;margin-top:9px}.progress-risk-confirm input{flex:0 0 auto;height:18px;margin:0;width:18px}.progress-confirm-note{background:var(--success-soft);border:1px solid #8ecbab;color:#176846}.progress-dialog-error{background:var(--danger-soft);border:1px solid #e7a6ad;color:var(--danger)}.progress-actor-field{display:grid;grid-gap:6px;gap:6px}.progress-actor-field small{color:var(--muted);font-size:11px;font-weight:500;line-height:1.4}.turnstile-block{display:grid;grid-gap:8px;gap:8px}.turnstile-block>span{align-items:center;color:var(--muted);display:flex;font-size:12px;font-weight:800;gap:5px}.turnstile-widget{min-height:0;overflow:hidden;width:100%}.progress-dialog-actions{align-items:center;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;margin:2px -18px -18px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));position:-webkit-sticky;position:sticky;bottom:-18px;background:#ffffff}.task-deadline{align-items:flex-start;background:#f6f8fa;border:1px solid var(--border);border-radius:7px;color:var(--text);display:flex;gap:7px;min-width:0;padding:7px 8px}.task-deadline svg{color:#5d42bd;flex:0 0 auto;margin-top:1px}.task-deadline small,.task-deadline span,.task-deadline strong{display:block;min-width:0}.task-deadline strong{font-size:11px;line-height:1.3}.task-deadline small{color:var(--muted);font-size:10px;margin-top:2px}.task-deadline.is-overdue{background:var(--danger-soft);border-color:#e5a6ad;color:var(--danger)}.task-deadline.is-overdue small,.task-deadline.is-overdue svg{color:var(--danger)}.ownership-banner{border:1px solid;border-radius:8px;display:grid;grid-gap:12px;gap:12px;padding:12px}.ownership-banner-site_gp{background:#f3fafd;border-color:#96c8dc}.ownership-banner-support_team{background:#f7f5ff;border-color:#b5a7eb}.ownership-banner-heading{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.ownership-banner-heading small,.ownership-banner-heading span,.ownership-banner-heading strong{display:block}.ownership-banner-heading span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.ownership-banner-heading strong{font-size:16px;margin-top:3px}.ownership-banner-heading small{color:var(--muted);font-size:12px;margin-top:4px}@media (max-width:1180px){.app-shell{width:min(100% - 20px,1680px)}.kpi-grid,.project-kpi-grid,.project-source-strip,.quality-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.project-source-strip span:nth-child(3){border-left:0;border-top:1px solid var(--border)}.project-source-strip span:nth-child(4){border-top:1px solid var(--border)}.analysis-grid{grid-template-columns:1fr}.analysis-block+.analysis-block{border-left:0;border-top:1px solid var(--border)}.ownership-filter-bar{align-items:stretch;flex-wrap:wrap}.ownership-filter-rail{border-bottom:1px solid var(--border);flex-basis:100%;padding-right:16px}.ownership-context-filters{justify-content:flex-end;padding-left:16px;width:100%}}@media (max-width:860px){.topbar{align-items:stretch}.actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto}.sync-status{min-width:0}.advanced-filter-sheet .filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.app-shell{padding:10px 0 calc(24px + env(safe-area-inset-bottom));width:min(100% - 14px,1680px)}.topbar{gap:10px;margin-bottom:8px}.topbar-copy h1{font-size:22px}.eyebrow{margin-bottom:4px}.subtitle{font-size:12px;line-height:1.4}.actions{gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.sync-status{grid-column:1/-1;min-height:38px}.actions .button{min-height:42px}.health-banner{margin-bottom:8px}.view-tabs{gap:7px;margin:0 -7px 10px;overflow-x:auto;padding:6px 7px 8px;scroll-snap-type:x proximity;scrollbar-width:none}.quick-filters::-webkit-scrollbar,.view-tabs::-webkit-scrollbar{display:none}.view-chip{flex:0 0 auto;min-height:42px;white-space:nowrap}.kpi-grid,.project-kpi-grid,.quality-kpis{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-source-strip{grid-template-columns:1fr}.project-source-strip span+span,.project-source-strip span:nth-child(3),.project-source-strip span:nth-child(4){border-left:0;border-top:1px solid var(--border)}.project-finance-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.project-finance-strip p{grid-column:1/-1;border-left:0;border-top:1px solid var(--border)}.project-overview-main{grid-template-columns:minmax(0,1fr)}.project-bar-row,.project-overview-card,.project-progress-box{max-width:100%;min-width:0}.workspace-header{align-items:flex-start;flex-direction:column}.filter-primary-row{background:#ffffff;grid-template-columns:minmax(0,1fr) auto;padding:10px 10px 4px;position:-webkit-sticky;position:sticky;top:54px;z-index:16}.filter-search-field{max-width:none}.filter-primary-row .field label{display:none}.filter-toggle{min-height:40px}.clear-filter-button{grid-column:1/-1;justify-self:end;min-height:28px}.quick-filters{gap:7px;padding:8px 10px 10px;position:relative}.quick-filter-label{display:none}.quick-filter{min-height:34px}.advanced-filter-layer{align-items:flex-end;background:rgba(20,32,51,.42);display:none;inset:0;padding-top:54px;position:fixed;z-index:80}.advanced-filter-layer.open{display:flex}.advanced-filter-sheet{background:#ffffff;border-radius:8px 8px 0 0;box-shadow:0 -14px 36px rgba(20,32,51,.2);max-height:calc(100dvh - 54px);overflow-y:auto;padding-bottom:env(safe-area-inset-bottom);width:100%}.advanced-filter-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:12px;position:-webkit-sticky;position:sticky;top:0;background:#ffffff;z-index:2}.advanced-filter-header span,.advanced-filter-header strong{display:block}.advanced-filter-header span{color:var(--muted);font-size:11px;margin-top:2px}.advanced-filter-sheet .filters{border-top:0;grid-template-columns:1fr;padding:12px}.desktop-task-table,.quality-desktop-table{display:none}.mobile-task-cards,.quality-mobile-list{display:grid}.mobile-task-cards{padding:10px}.mobile-task-card{box-shadow:none;min-height:44px}.ownership-filter-rail{min-height:48px;padding:7px 10px}.ownership-filter-rail>span{display:none}.ownership-filter-chip{min-height:38px}.ownership-context-filters{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 10px 8px}.ownership-context-filters.with-gp-step .gp-step-filter{grid-column:1/-1}.date-range-trigger,.gp-step-filter,.gp-step-trigger,.task-date-filter{min-width:0;width:100%}.date-range-trigger,.gp-step-trigger{justify-content:flex-start;min-height:44px;overflow:hidden}.date-range-trigger strong,.gp-step-trigger strong{margin-left:auto;overflow:hidden;text-overflow:ellipsis}.date-range-trigger>svg:last-child,.gp-step-trigger>svg:last-child{flex:0 0 auto}.task-date-filter{margin-left:0}.date-range-trigger{min-height:40px}.date-filter-popover{max-height:min(82dvh,680px)}.date-filter-popover,.gp-step-popover{border:0;border-radius:8px 8px 0 0;bottom:0;left:0;right:0;top:auto;width:100%}.gp-step-popover{max-height:min(82dvh,620px);padding-bottom:env(safe-area-inset-bottom);position:fixed}.gp-step-header{padding:12px}.gp-step-options{padding:8px 10px 10px}.gp-step-option{min-height:58px}.date-filter-header{padding:12px}.date-filter-body{grid-template-columns:1fr;padding-bottom:env(safe-area-inset-bottom)}.date-preset-list{border-bottom:1px solid var(--border);border-right:0;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr))}.date-custom-range .button,.date-custom-range input,.date-preset-option{min-height:44px}.mobile-task-card-top{align-items:center;flex-wrap:wrap;justify-content:flex-start}.mobile-task-card-top .pipeline-pill,.mobile-task-card-top .risk-pill,.mobile-task-card-top .status-pill{margin-left:auto;max-width:min(100%,220px);overflow:hidden;text-overflow:ellipsis}.mobile-task-card-top .status-pill{display:inline-flex;max-width:calc(100% - 92px);overflow:visible;text-overflow:clip;white-space:normal}.mobile-task-card .task-stepper{margin-top:1px}.mobile-task-card .task-stage{min-height:60px}.mobile-task-card .task-deadline{width:100%}.progress-dialog-backdrop{align-items:flex-end;padding:0}.progress-dialog{border-bottom:0;border-left:0;border-radius:8px 8px 0 0;border-right:0;max-height:94dvh;width:100%}.progress-dialog-header{padding:12px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.progress-dialog-body{gap:12px;max-height:calc(94dvh - 65px);padding:12px}.progress-change-grid,.progress-date-grid{grid-template-columns:1fr}.progress-actor-field input,.progress-change-grid select,.progress-date-grid input{min-height:44px}.progress-dialog-actions{margin:0 -12px -12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.progress-dialog-actions .button{min-height:44px}.ownership-banner-heading{align-items:stretch;flex-direction:column}.ownership-banner-heading .ownership-badge{align-self:flex-start}.mobile-task-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-task-progress{background:#f7fafc}.analysis-section{margin-top:10px}.analysis-section>summary{min-height:48px;padding:12px}.chart-box{height:220px}.task-detail-drawer{border-left:0;max-width:100%;width:100%}.task-detail-header{padding-top:max(12px,env(safe-area-inset-top))}.task-detail-body{padding-bottom:calc(82px + env(safe-area-inset-bottom))}.tracking-save{bottom:0;box-shadow:0 -8px 20px rgba(20,32,51,.12);margin:0 -10px -10px;min-height:52px;position:-webkit-sticky;position:sticky;width:calc(100% + 20px);z-index:3}}@media (max-width:380px){.project-finance-strip{grid-template-columns:1fr}.project-finance-strip>div+div{border-left:0;border-top:1px solid var(--border)}.project-finance-strip p{grid-column:auto}.kpi-grid,.project-kpi-grid,.quality-kpis{grid-template-columns:1fr}.filter-primary-row{gap:6px}.filter-toggle{font-size:0;padding-inline:11px}.filter-toggle strong,.filter-toggle svg{font-size:medium}.ownership-context-filters{grid-template-columns:1fr}.ownership-context-filters.with-gp-step .gp-step-filter{grid-column:1}}