*{box-sizing:border-box}html,body{margin:0}body{font-family:Arial,Helvetica,sans-serif;background:#f4f7fb;color:#10243e}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:linear-gradient(180deg,#071f3c,#0a3159);color:#fff;display:flex;flex-direction:column;z-index:60}.brand{height:64px;padding:0 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-mark{width:38px;height:38px;border-radius:9px;background:#1769e0;display:grid;place-items:center;font-weight:800}.brand-title{font-weight:800}.brand-subtitle{font-size:10px;color:#a9bfd5}.nav{padding:12px 10px;overflow:auto;flex:1}.nav-link{min-height:40px;padding:0 12px;margin:3px 0;border-radius:7px;text-decoration:none;display:flex;align-items:center;gap:12px;color:#cbdbea;font-size:13px}.nav-link:hover,.nav-link.active{background:#1769e0;color:#fff}.icon{width:21px;text-align:center}.badge{margin-left:auto;background:#ef4444;border-radius:99px;padding:3px 7px;font-size:10px}.nav-heading{font-size:9px;letter-spacing:1.2px;color:#718eaa;font-weight:800;margin:18px 12px 7px}.nav-separator{height:1px;background:rgba(255,255,255,.08);margin:10px 8px}.sidebar-footer{padding:10px;border-top:1px solid rgba(255,255,255,.1)}.logout{height:40px;padding:0 12px;display:flex;align-items:center;gap:12px;text-decoration:none;color:#f5b8b8}.topbar{position:fixed;top:0;left:240px;right:0;height:64px;background:#fff;border-bottom:1px solid #dce5ee;z-index:50;display:flex;align-items:center;justify-content:flex-end;padding:0 18px;box-shadow:0 2px 8px rgba(15,39,66,.05)}.topbar-controls{display:flex;align-items:center;gap:8px;white-space:nowrap}.topbar select,.topbar input{height:34px;border:1px solid #ccd7e3;border-radius:6px;background:#fff;padding:0 9px;font-size:12px}.date-group{display:flex;align-items:center;gap:6px;font-size:11px;color:#64748b}.btn{height:34px;border-radius:6px;padding:0 14px;font-size:12px;font-weight:700;cursor:pointer}.secondary{background:#fff;border:1px solid #0b3159;color:#0b3159}.primary{border:1px solid #0b3159;background:#0b3159;color:#fff}.lang-switch{display:flex;align-items:center;gap:4px}.lang{border:0;background:transparent;font-weight:700;color:#64748b;cursor:pointer}.lang.active{color:#1769e0}.main{margin-left:240px;padding-top:64px;min-height:100vh}.content{padding:16px}.panel,.kpi{background:#fff;border:1px solid #dfe7f0;box-shadow:0 3px 12px rgba(15,39,66,.05)}.module-section{padding-bottom:18px}.manufacture-section{border-top:1px solid #dce5ee;padding-top:18px}.module-title{font-size:16px;margin:0 0 10px;display:flex;align-items:center;gap:8px}.module-title span,.panel h2 span{width:4px;height:20px;background:#1769e0;border-radius:3px}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.kpi{height:76px;border-radius:10px;padding:10px 16px;text-align:center;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.kpi:after{content:"";height:3px;position:absolute;bottom:0;left:0;right:0;background:currentColor}.kpi-label{font-size:12px;color:#475569;font-weight:700}.kpi-value{font-size:24px;font-weight:800;line-height:1.05;margin-top:3px}.kpi-sub{font-size:10px;margin-top:2px}.blue{color:#1769e0}.red{color:#ef2b1f}.orange{color:#f58213}.yellow{color:#eeb308}.green{color:#26a34a}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:12px;margin-top:14px}.panel{border-radius:10px;padding:16px;min-width:0}.panel h2{font-size:14px;margin:0 0 12px;display:flex;align-items:center;gap:8px}.chart-box{height:250px;position:relative}.panel-title-row{display:flex;justify-content:space-between;align-items:center}.panel-title-row strong{font-size:11px;color:#64748b}.table-scroll{overflow:auto;max-height:250px}table{width:100%;border-collapse:collapse;min-width:940px}th{font-size:9px;text-align:left;padding:9px 7px;border-bottom:1px solid #cbd5e1;background:#f8fafc;position:sticky;top:0}td{font-size:10px;padding:11px 7px;border-bottom:1px solid #e7edf3;vertical-align:top}.empty{text-align:center;color:#94a3b8;padding:48px 12px!important}.priority{display:inline-block;border-radius:5px;padding:4px 7px;font-size:9px;font-weight:800}.p-red{background:#fee2e2;color:#dc2626}.p-orange{background:#ffedd5;color:#ea580c}.p-yellow{background:#fef3c7;color:#b77900}.p-green{background:#dcfce7;color:#15803d}.p-gray{background:#e2e8f0;color:#475569}.stage{font-weight:700;color:#d75a00}.gap-overdue{color:#dc2626;font-weight:800}.gap-near{color:#ea580c;font-weight:800}.gap-safe{color:#15803d;font-weight:800}@media(max-width:1100px){.sidebar{width:76px}.topbar{left:76px}.main{margin-left:76px}.brand>div:last-child,.nav-link span:not(.icon):not(.badge),.nav-heading,.logout span:not(.icon){display:none}.brand{justify-content:center;padding:0}.nav-link,.logout{justify-content:center;padding:0}.workspace{grid-template-columns:1fr}}@media(max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}.topbar{overflow-x:auto;justify-content:flex-start}.topbar-controls{min-width:max-content}}
/* FIT DASHBOARD V5 */
.content{padding:10px 16px 12px}
.module-section{padding-bottom:10px}
.manufacture-section{padding-top:10px}
.kpis{gap:10px}
.kpi{height:44px;padding:4px 8px;border-radius:9px;display:grid;grid-template-columns:max-content max-content;grid-template-rows:auto auto;justify-content:center;align-content:center;align-items:baseline;column-gap:6px}
.kpi-label{font-size:11px;grid-column:1 / -1}
.kpi-value{font-size:20px;margin-top:1px}
.kpi-sub{font-size:9px;margin-top:0;white-space:nowrap}
.workspace{grid-template-columns:300px minmax(0,1fr);gap:10px;margin-top:8px}
.panel{padding:11px 13px}
.panel h2{font-size:13px;margin:0 0 7px}
.panel h2 span{height:18px}
.chart-box{height:175px}
.table-scroll{max-height:175px}
th{padding:7px 6px;font-size:8px}
td{padding:8px 6px;font-size:9px}
.panel-title-row strong{font-size:10px}
.empty{padding:38px 10px!important}

/* Compact desktop navigation. */
@media(min-width:1101px){
  .sidebar{width:192px}
  .topbar{left:192px}
  .main{margin-left:192px}
  .brand{padding:0 12px;gap:9px}
  .brand-mark{flex-shrink:0}
  .nav-link{padding:0 8px;gap:8px}
}
/* Navy filter bar coordinated with the sidebar. */
.topbar{background:linear-gradient(110deg,#0b2948,#123e68);border-bottom:1px solid #234d73;box-shadow:0 3px 12px rgba(7,31,60,.16);color:#e2e8f0}
.date-group{color:#d7e5f3}
.topbar select,.topbar input{background:#f8fafc;border-color:#b8cce0;color:#10243e;color-scheme:light}
.topbar .secondary{background:transparent;border-color:#a9c5e2;color:#fff}
.topbar .primary{background:#1769e0;border-color:#4388ec;color:#fff}
.topbar .secondary:hover{background:rgba(255,255,255,.12)}
.topbar .primary:hover{background:#125bc5}
.topbar .lang{color:#c2d4e6}
.topbar .lang.active{color:#fff;text-decoration:underline;text-underline-offset:5px}
.topbar :is(select,input,button):focus-visible{outline:2px solid #93c5fd;outline-offset:3px}

/* Fill the available desktop height; scroll rows inside each details panel. */
@media(min-width:1000px) and (min-height:520px){
  .main{height:100dvh;min-height:0}
  .content{height:100%;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;padding:10px 16px}
  .module-section{min-height:0;padding:0;display:grid;grid-template-rows:44px minmax(0,1fr);gap:8px}
  .manufacture-section{border-top:0}
  .workspace{min-height:0;margin-top:0;grid-template-columns:minmax(220px,28%) minmax(0,1fr)}
  .workspace .panel{min-height:0;display:flex;flex-direction:column;padding:10px 12px 6px}
  .panel h2,.panel-title-row{flex-shrink:0}
  .chart-box{height:auto;min-height:0;flex:1}
  .table-scroll{height:0;min-height:0;max-height:none;flex:1;overflow:auto}
  .table-scroll th{z-index:1}
}
@media(min-width:1000px) and (min-height:520px) and (max-height:650px){
  .content{padding:8px 12px;gap:8px}
  .module-section{grid-template-rows:44px minmax(0,1fr);gap:6px}
  .kpi{height:44px}
  .workspace .panel{padding:8px 10px 4px}
  .panel h2{margin-bottom:5px}
  td{padding:5px 6px}
  th{padding:5px 6px}
}
/* On narrow screens, retain normal page scrolling and stack the panels. */
@media(max-width:999px){
  .workspace{grid-template-columns:1fr}
  .topbar{overflow-x:auto;justify-content:flex-start}
  .topbar-controls{min-width:max-content}
}
.sync-summary{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.sync-summary #syncStatus{font-size:9px;color:#64748b;max-width:320px;text-align:right}.sync-summary strong{white-space:nowrap}@media(max-width:650px){.sync-summary{flex-direction:column;align-items:flex-end;gap:2px}.sync-summary #syncStatus{max-width:140px}}
/* Content-sized columns with horizontal scrolling when the panel is narrower. */
.import-pending-table{width:max-content;min-width:1050px;table-layout:auto;border-collapse:separate;border-spacing:0}
.import-pending-table th,.import-pending-table td{padding:7px 7px;line-height:1.4;vertical-align:middle;white-space:nowrap}
.import-pending-table th{font-size:8px}
.import-pending-table td{font-size:8.5px}
.import-pending-table .priority{font-size:8px;padding:4px 5px;line-height:1.3}
.import-pending-table :is(th,td):nth-child(7),.import-pending-table :is(th,td):nth-child(14),.import-pending-table :is(th,td):nth-child(15){white-space:normal;min-width:110px;max-width:190px;overflow-wrap:anywhere}
.import-pending-table :is(th,td):nth-child(3),.import-pending-table :is(th,td):nth-child(4),.import-pending-table :is(th,td):nth-child(5),.import-pending-table :is(th,td):nth-child(6),.import-pending-table :is(th,td):nth-child(8),.import-pending-table :is(th,td):nth-child(9),.import-pending-table :is(th,td):nth-child(10),.import-pending-table :is(th,td):nth-child(11),.import-pending-table :is(th,td):nth-child(12),.import-pending-table :is(th,td):nth-child(13){text-align:center}
.import-pending-table tbody tr:hover{background:#f1f6fd}
/* Keep identifiers and quantities visible while the remaining columns scroll. */
.import-pending-table :is(th,td):nth-child(1){--pin-left:var(--pin-1,0px)}
.import-pending-table :is(th,td):nth-child(2){--pin-left:var(--pin-2)}
.import-pending-table :is(th,td):nth-child(3){--pin-left:var(--pin-3)}
.import-pending-table :is(th,td):nth-child(4){--pin-left:var(--pin-4)}
.import-pending-table :is(th,td):nth-child(5){--pin-left:var(--pin-5)}
.import-pending-table tbody td:nth-child(-n+9):not([colspan]){position:sticky;left:var(--pin-left);z-index:2;background:#fff}
.table-scroll .import-pending-table thead th:nth-child(-n+9){left:var(--pin-left);z-index:3;background:#f8fafc}
.import-pending-table tbody tr:hover td:nth-child(-n+9){background:#f1f6fd}
/* Chart spans both the KPI row and the details panel. */
.status-panel{background:#fff;border-color:#dfe7f0;color:#10243e}
.status-panel h2 span{background:#1769e0}
@media(min-width:1000px){
  .module-section{display:grid;grid-template-columns:minmax(290px,28%) minmax(0,1fr);grid-template-rows:44px minmax(0,1fr);gap:8px 10px}
  .module-section>.kpis{grid-column:2;grid-row:1;min-width:0;gap:6px}
  .module-section>.workspace{display:contents}
  .workspace>.status-panel{grid-column:1;grid-row:1 / 3}
  .workspace>.pending{grid-column:2;grid-row:2}
  .module-section .kpi{padding-left:4px;padding-right:4px}
}
@media(min-width:1000px) and (min-height:520px) and (max-height:650px){
  .module-section{grid-template-rows:44px minmax(0,1fr)}
}
@media(max-width:999px){.status-panel .chart-box{height:240px}}

/* Calendar and browser-local notes. */
[hidden]{display:none!important}
.calendar-view{padding:18px;max-height:calc(100dvh - 64px);overflow:auto}
.calendar-heading,.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.calendar-heading h1{font-size:22px;margin:0}
.calendar-heading p,.calendar-storage{font-size:12px;color:#64748b}
#calendarMessage{font-size:12px;color:#1769e0}
.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:16px;align-items:start}
.calendar-toolbar{margin-bottom:16px}.calendar-toolbar h2{margin:0;font-size:18px}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-weekdays span{text-align:center;padding:8px;font-size:11px;color:#64748b;font-weight:bold}
.calendar-days{gap:4px}
.calendar-day{min-width:0;min-height:65px;text-align:left;border:1px solid #e2e8f0;background:#fff;border-radius:6px;padding:6px;color:#10243e;cursor:pointer}
.calendar-day.outside{background:#f8fafc;color:#94a3b8}.calendar-day.today>span{background:#1769e0;color:white;border-radius:50%;padding:3px}
.calendar-day[aria-pressed="true"]{border:2px solid #1769e0;background:#eff6ff}
.calendar-day small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#e7effb;margin-top:4px;padding:2px;font-size:10px}
.calendar-day small.important{background:#fff0c2;color:#925700}
.calendar-notes h2{font-size:14px}.calendar-notes p{font-size:12px;color:#64748b;white-space:pre-wrap;overflow-wrap:anywhere}
.calendar-notes label{display:block;font-size:12px;margin:10px 0}
.calendar-notes input:not([type="checkbox"]),.calendar-notes textarea{display:block;width:100%;padding:8px;border:1px solid #cbd5e1;border-radius:6px;margin-top:5px;font:inherit}
.calendar-notes textarea{resize:vertical}.calendar-check input{vertical-align:middle}.calendar-actions{display:flex;gap:6px}
.calendar-note{padding:10px 0;border-bottom:1px solid #e2e8f0;overflow-wrap:anywhere}.calendar-note strong{font-size:13px}.calendar-note .btn{height:28px;font-size:11px;margin-right:6px}
.calendar-view button:focus-visible{outline:2px solid #1769e0;outline-offset:2px}
@media(max-width:1000px){.calendar-layout{grid-template-columns:1fr}.calendar-view{padding:12px}.calendar-day{min-height:58px}}

/* User administration draft; no client-side access enforcement. */
.users-view{padding:18px;max-height:calc(100dvh - 64px);overflow:auto}
.users-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.users-heading h1{margin:0;font-size:22px}.users-heading p{font-size:12px;color:#64748b}
.users-draft{background:#fff2cc;color:#855b00;border-radius:20px;padding:6px 10px;font-size:11px;white-space:nowrap}
.users-notice{padding:10px 12px;border:1px solid #f0dfb0;background:#fffbeb;border-radius:6px;color:#785c22;font-size:12px;line-height:1.5}
.users-toolbar{display:flex;gap:10px;margin:16px 0}.users-toolbar input{flex:1;min-width:0;padding:9px 12px;border:1px solid #cbd5e1;border-radius:6px}
#userMessage,#userFormMessage{font-size:12px;color:#b45309}
.users-table-wrap{overflow:auto;padding:0}.users-table{min-width:800px;width:100%}.users-table th{font-size:11px;padding:14px;z-index:1}.users-table td{font-size:12px;padding:16px 14px;vertical-align:middle}.users-table tr:nth-child(even){background:#f8fafc}
.users-table td:nth-child(2),.users-table td:nth-child(3){overflow-wrap:anywhere;max-width:220px}.user-access-summary{min-width:200px;max-width:360px}.user-access-chip{display:inline-block;background:#eaf2ff;color:#24518c;border-radius:4px;margin:2px;padding:4px 6px;font-size:10px}
.user-row-actions{white-space:nowrap}.user-row-actions .btn{height:30px;font-size:11px;margin-right:5px}.user-delete{color:#dc2626;border-color:#fecaca}
.users-legend{font-size:12px;color:#64748b;line-height:1.8}
#userDialog{width:min(690px,calc(100vw - 24px));max-height:90dvh;overflow:auto;border:1px solid #dfe7f0;border-radius:12px;padding:22px;color:#10243e}#userDialog::backdrop{background:rgba(7,31,60,.5)}#userDialog h2{font-size:20px;margin:0}
.user-fields,.user-permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.user-fields label,.user-permissions label{font-size:12px;font-weight:600}.user-fields input,.user-fields select,.user-permissions select{display:block;width:100%;margin-top:6px;padding:8px;border:1px solid #cbd5e1;border-radius:5px;background:white;color:#10243e}
#userDialog fieldset{margin:18px 0;border:1px solid #dfe7f0;border-radius:6px;padding:14px}#userDialog legend{font-size:13px;font-weight:bold}.user-form-actions{display:flex;justify-content:flex-end;gap:8px}
@media(max-width:650px){.users-view{padding:12px}.user-fields,.user-permissions{grid-template-columns:1fr}.users-heading{flex-wrap:wrap}}

/* SAE branding and nested project navigation. */
.brand img.brand-mark{width:44px;height:44px;object-fit:contain;background:transparent;border-radius:0;flex-shrink:0}
.nav-project{padding:8px 12px 4px;color:#fff;font-size:13px;font-weight:700}
.nav-project-children{margin-left:17px;padding-left:7px;border-left:1px solid rgba(169,191,213,.28)}
.nav-project-children .nav-link{font-size:12px;gap:6px;padding-left:6px}
@media(max-width:1100px){.nav-project{text-align:center;padding:8px 0 4px;font-size:10px}.nav-project-children{margin-left:3px;padding-left:0}.nav-project-children .nav-link{padding:0}}

/* Temporary demo sign-in, not an authorization boundary. */
body:not(.signed-in) .app-shell{display:none}
body.signed-in .login-view{display:none}
.login-view{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top,#e6effa,#f3f6fa 65%)}
.login-card{width:min(440px,100%);background:#fff;border:1px solid #dfe7f0;border-radius:20px;padding:28px 32px;box-shadow:0 20px 60px rgba(15,39,66,.12)}
.login-language{display:flex;justify-content:flex-end;gap:7px;margin-bottom:18px}.login-language .btn{height:30px;font-size:11px}
.login-brand{display:flex;align-items:center;gap:16px}.login-brand img{object-fit:contain}.login-brand h1{font-size:28px;margin:0}
.login-subtitle{color:#64748b;font-size:14px;margin:10px 0 24px}
#loginForm label{display:block;font-size:13px;font-weight:600;margin:14px 0 7px}
#loginForm input,#loginForm select{width:100%;height:44px;border:1px solid #cbd5e1;border-radius:7px;padding:0 12px;font:inherit;color:#10243e;background:white}
#loginForm>.btn{width:100%;height:42px;background:#1769e0;border-color:#1769e0;font-size:14px}
#loginError{font-size:12px;color:#b91c1c;min-height:15px;margin:10px 0}
.login-disclaimer{font-size:11px;line-height:1.5;color:#64748b;margin:18px 0 0}
.signed-user{display:inline-block;background:#1769e0;border-radius:12px;color:white;padding:2px 7px;font-size:9px;margin-top:4px}
@media(max-width:1100px){.brand{position:relative}.brand .signed-user{display:block;position:absolute;bottom:0;left:20px;font-size:8px;margin:0;padding:1px 5px}.brand>div:last-child{display:block}.brand-title{display:none}.brand{gap:0}}
@media(max-width:480px){.login-view{padding:14px}.login-card{padding:22px}.login-brand h1{font-size:24px}}
#manufactureSection .pending table{width:1500px;min-width:1500px;table-layout:fixed}
#manufactureSection .pending td,#manufactureSection .pending th{white-space:nowrap}
#manufactureSection .pending td:nth-child(n+11){white-space:normal;overflow-wrap:anywhere}
.sync-summary #mfgSyncStatus{font-size:9px;color:#64748b;max-width:300px;text-align:right}

#manufactureSection .pending table{border-collapse:separate;border-spacing:0}
#manufactureSection .pending :is(th,td){font-size:8.5px;padding:6px 5px;line-height:1.35}
#manufactureSection .pending :is(th,td):nth-child(4){white-space:normal;min-width:0;max-width:100px;overflow-wrap:anywhere}
#manufactureSection .pending td:nth-child(-n+9):not([colspan]){position:sticky;left:var(--mfg-left);z-index:2;background:#fff}
#manufactureSection .pending th:nth-child(-n+9){left:var(--mfg-left);z-index:3;background:#f8fafc}
#manufactureSection .pending :is(th,td):nth-child(9){box-shadow:3px 0 4px -3px #607d9f}
#manufactureSection .pending tbody tr:hover td{background:#f1f6fd}
#manufactureSection .pending :is(th,td):nth-child(1){--mfg-left:var(--mfg-pin-1,0px)}
#manufactureSection .pending :is(th,td):nth-child(2){--mfg-left:var(--mfg-pin-2,0px)}
#manufactureSection .pending :is(th,td):nth-child(3){--mfg-left:var(--mfg-pin-3,0px)}
#manufactureSection .pending :is(th,td):nth-child(4){--mfg-left:var(--mfg-pin-4,0px)}
#manufactureSection .pending :is(th,td):nth-child(5){--mfg-left:var(--mfg-pin-5,0px)}
#manufactureSection .pending :is(th,td):nth-child(6){--mfg-left:var(--mfg-pin-6,0px)}
#manufactureSection .pending :is(th,td):nth-child(7){--mfg-left:var(--mfg-pin-7,0px)}
#manufactureSection .pending :is(th,td):nth-child(8){--mfg-left:var(--mfg-pin-8,0px)}
#manufactureSection .pending :is(th,td):nth-child(9){--mfg-left:var(--mfg-pin-9,0px)}
#manufactureSection .pending :is(th,td):nth-child(10){--mfg-left:var(--mfg-pin-10,0px)}
/* Horizontal control belongs only to the unfrozen Manufacture columns. */
#manufactureSection .table-scroll::-webkit-scrollbar{height:0;width:12px}
#manufactureSection .table-scroll::-webkit-scrollbar-thumb{background:#919191;border-radius:6px;border:2px solid #f8fafc}
#manufactureSection .table-scroll::-webkit-scrollbar-track{background:#f8fafc}
.mfg-horizontal-scroll{height:16px;min-height:16px;flex:none;overflow-x:scroll;overflow-y:hidden;box-sizing:border-box}
.mfg-horizontal-scroll>div{height:1px}
#manufactureSection .pending :is(th,td):nth-child(9){border-right:1px solid #cbd5e1;box-shadow:4px 0 5px -3px #7891ae}
.mfg-horizontal-scroll:focus-visible{outline:2px solid #1769e0;outline-offset:1px}

#manufactureSection .priority{font-size:8px;padding:4px 5px;line-height:1.3}
#manufactureSection .pending :is(th,td):nth-child(6),#manufactureSection .pending :is(th,td):nth-child(7){text-align:center}

.mfg-summary{width:100%;min-width:0;border-collapse:collapse;margin-top:6px;flex:none;table-layout:fixed}
.mfg-summary th,.mfg-summary td{font-size:9px;padding:4px 3px;text-align:center;white-space:nowrap;border-bottom:1px solid #e2e8f0;position:static;background:transparent}
.mfg-summary thead th{background:#f0f5fb;font-size:8px;color:#475569}
.mfg-summary th:first-child{text-align:left}
.mfg-summary tbody tr:last-child{font-weight:bold;background:#f0f5fb}
#manufactureSection .status-panel .chart-box{min-height:90px}
.sheet-editor-view{padding:16px;height:calc(100dvh - 64px);display:flex;flex-direction:column;min-height:0}
.sheet-editor-view h1{font-size:22px;margin:0}.sheet-editor-view .users-toolbar{margin:6px 0}.sheet-editor-view .users-notice{margin:8px 0;font-size:11px}.sheet-editor-view .users-heading p{font-size:12px;margin:5px 0;color:#64748b}
#sheetEditorMessage{font-size:12px;margin:6px 0}.editor-scroll{overflow:auto;flex:1;min-height:120px;border:1px solid #dfe7f0;background:#fff;border-radius:6px}
#sheetEditorTable{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}
#sheetEditorTable th,#sheetEditorTable td{font-size:11px;padding:8px;min-width:85px;max-width:220px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;white-space:pre-wrap;overflow-wrap:anywhere}
#sheetEditorTable th{background:#edf3fa;z-index:2}#sheetEditorTable tr>th:first-child{position:sticky;left:0;min-width:40px;z-index:3}#sheetEditorTable td{cursor:pointer}#sheetEditorTable td:focus{outline:2px solid #1769e0;outline-offset:-2px}
#sheetEditorTable .editor-readonly{background:#f1f5f9;color:#64748b;cursor:default}#sheetEditorTable .editor-changed{background:#fff3bf}
#sheetCellDialog,#sheetReviewDialog{border:1px solid #dfe7f0;border-radius:12px;padding:22px;max-width:90vw;max-height:85dvh;color:#10243e}#sheetCellDialog{width:460px}#sheetReviewDialog{width:850px}
#sheetCellDialog::backdrop,#sheetReviewDialog::backdrop{background:#10243e88}#sheetCellValue{width:100%;padding:10px;margin:8px 0 20px;border:1px solid #cbd5e1;border-radius:5px}.editor-review-scroll{max-height:50dvh;overflow:auto}.editor-review-scroll table{min-width:0;width:100%}.editor-review-scroll td{max-width:250px;overflow-wrap:anywhere}#sheetSaveMessage{color:#b45309;font-size:12px}
@media(max-width:760px){.sheet-editor-view .users-toolbar{flex-wrap:wrap}.sheet-editor-view{padding:10px}}
.sheet-status-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0 2px}
.sheet-status-filters button{display:flex;align-items:center;gap:12px;padding:9px 16px;border:1px solid #cad8e7;border-radius:8px;background:#fff;color:#123454;font:inherit;font-weight:600;cursor:pointer}
.sheet-status-filters button[aria-pressed="true"]{background:#1769e0;border-color:#1769e0;color:#fff}
.sheet-status-filters button:focus-visible{outline:3px solid #86b7ff;outline-offset:2px}
.sheet-status-filters .filter-count{font-size:12px;background:rgba(127,157,190,.18);padding:2px 7px;border-radius:12px}
.sheet-status-filters output{margin-left:auto;color:#637991;font-size:13px}
.users-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}
.users-table-wrap{max-height:65vh}.users-table th{white-space:nowrap;position:sticky;top:0;background:#f4f7fc;z-index:3}
.users-table td{padding:10px;white-space:nowrap}.users-table td:nth-child(2){min-width:150px}.users-table td:nth-child(3){min-width:230px}
.users-table select{min-width:105px;padding:8px;border:1px solid #ccd9e9;border-radius:6px;background:#fff;color:#173754;font:inherit}
.users-table select[data-level="Edit"]{background:#e0f6e9;color:#08793b}.users-table select[data-level="View"]{background:#e7f0ff;color:#175bc5}.users-table select[data-level="Comment"]{background:#fff5d8;color:#875d00}
.users-table th:first-child,.users-table td:first-child{position:sticky;left:0;min-width:95px;background:#f4f7fc;z-index:2}.users-table th:first-child{z-index:4}
.permission-matrix{width:100%;border-collapse:collapse}.permission-matrix th,.permission-matrix td{padding:8px 12px;border-bottom:1px solid #e2eaf3;text-align:center}.permission-matrix th:first-child{text-align:left;width:45%}.permission-matrix thead{background:#eff5fc}.permission-matrix input[type="radio"]{width:18px;height:18px;accent-color:#1769e0;cursor:pointer}.permission-matrix tbody tr:nth-child(even){background:#f8fafc}
.user-notes{display:block;margin:14px 0;font-weight:600}.user-notes textarea{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:10px;border:1px solid #cad7e8;border-radius:8px;font:inherit;resize:vertical}
.permission-matrix{min-width:0!important;table-layout:fixed}.permission-matrix th,.permission-matrix td{min-width:0;white-space:normal;overflow-wrap:anywhere}.permission-matrix th:first-child{width:40%}#userDialog fieldset{min-width:0}.permission-matrix input[type="radio"]{padding:0;margin:0}

#importSection .pending :is(th,td){min-width:0;max-width:none;text-align:left;box-shadow:none}
#importSection .pending table{width:1500px;min-width:1500px;table-layout:fixed}
#importSection .pending td,#importSection .pending th{white-space:nowrap}
#importSection .pending td:nth-child(n+11){white-space:normal;overflow-wrap:anywhere}
.sync-summary #mfgSyncStatus{font-size:9px;color:#64748b;max-width:300px;text-align:right}

#importSection .pending table{border-collapse:separate;border-spacing:0}
#importSection .pending :is(th,td){font-size:8.5px;padding:6px 5px;line-height:1.35}
#importSection .pending :is(th,td):nth-child(4){white-space:normal;min-width:0;max-width:100px;overflow-wrap:anywhere}
#importSection .pending td:nth-child(-n+9):not([colspan]){position:sticky;left:var(--mfg-left);z-index:2;background:#fff}
#importSection .pending th:nth-child(-n+9){left:var(--mfg-left);z-index:3;background:#f8fafc}
#importSection .pending :is(th,td):nth-child(9){box-shadow:3px 0 4px -3px #607d9f}
#importSection .pending tbody tr:hover td{background:#f1f6fd}
#importSection .pending :is(th,td):nth-child(1){--mfg-left:var(--mfg-pin-1,0px)}
#importSection .pending :is(th,td):nth-child(2){--mfg-left:var(--mfg-pin-2,0px)}
#importSection .pending :is(th,td):nth-child(3){--mfg-left:var(--mfg-pin-3,0px)}
#importSection .pending :is(th,td):nth-child(4){--mfg-left:var(--mfg-pin-4,0px)}
#importSection .pending :is(th,td):nth-child(5){--mfg-left:var(--mfg-pin-5,0px)}
#importSection .pending :is(th,td):nth-child(6){--mfg-left:var(--mfg-pin-6,0px)}
#importSection .pending :is(th,td):nth-child(7){--mfg-left:var(--mfg-pin-7,0px)}
#importSection .pending :is(th,td):nth-child(8){--mfg-left:var(--mfg-pin-8,0px)}
#importSection .pending :is(th,td):nth-child(9){--mfg-left:var(--mfg-pin-9,0px)}
#importSection .pending :is(th,td):nth-child(10){--mfg-left:var(--mfg-pin-10,0px)}
/* Horizontal control belongs only to the unfrozen Manufacture columns. */
#importSection .table-scroll::-webkit-scrollbar{height:0;width:12px}
#importSection .table-scroll::-webkit-scrollbar-thumb{background:#919191;border-radius:6px;border:2px solid #f8fafc}
#importSection .table-scroll::-webkit-scrollbar-track{background:#f8fafc}
.mfg-horizontal-scroll{height:16px;min-height:16px;flex:none;overflow-x:scroll;overflow-y:hidden;box-sizing:border-box}
.mfg-horizontal-scroll>div{height:1px}
#importSection .pending :is(th,td):nth-child(9){border-right:1px solid #cbd5e1;box-shadow:4px 0 5px -3px #7891ae}
.mfg-horizontal-scroll:focus-visible{outline:2px solid #1769e0;outline-offset:1px}

#importSection .priority{font-size:8px;padding:4px 5px;line-height:1.3}
#importSection .pending :is(th,td):nth-child(6),#importSection .pending :is(th,td):nth-child(7){text-align:center}


.nav-project{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:none;cursor:pointer;text-align:left}.sae-arrow{width:20px;height:20px;flex:none;transition:transform .18s ease}.nav-project[aria-expanded="true"] .sae-arrow{transform:rotate(180deg)}.nav-project:focus-visible{outline:2px solid #8cc3ff;outline-offset:2px;border-radius:6px}.nav-project-children[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.sae-arrow{transition:none}}
#googleSignIn{width:100%;min-height:44px}.login-card details{margin:18px 0}.login-card summary{cursor:pointer;color:#526b89}.google-access-panel{background:#fff;border:1px solid #d5e1ef;border-radius:12px;padding:18px;margin-bottom:20px}.google-access-panel table{min-width:0;width:100%}.google-access-panel td,.google-access-panel th{padding:10px;text-align:left}.google-access-panel p{font-size:12px;color:#61738c}.signed-user{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}#googleLoginMessage,#googleAccessMessage{color:#b45309;font-size:12px}
.nav-link[hidden]{display:none!important}

/* Compact account list; detailed permissions stay in the account form. */
.users-table{width:100%;min-width:980px}.users-table .user-access-summary{white-space:normal;min-width:180px;max-width:260px;line-height:1.5}.users-table td:first-child{min-width:85px;max-width:110px;white-space:normal;overflow-wrap:anywhere}.users-toolbar{flex-wrap:wrap}.users-toolbar input{min-width:180px;flex:1}.users-table .user-row-actions{min-width:140px}
/* Matching chart/summary blocks and aligned detail identifiers. */
.status-panel{display:flex;flex-direction:column;min-height:0}
.status-panel .chart-box{min-height:90px;flex:1}
.status-panel .mfg-summary{margin-top:8px}
@media(min-width:1000px) and (min-height:520px){
  #dashboardView{grid-template-rows:repeat(2,minmax(0,1fr))}
  #dashboardView .module-section{grid-template-columns:minmax(290px,28%) minmax(0,1fr)}
  #dashboardView .kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(-n+9):not([colspan]){width:var(--detail-width);min-width:var(--detail-width);max-width:var(--detail-width);white-space:normal;overflow-wrap:anywhere}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(1){--detail-width:72px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(2){--detail-width:58px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(3){--detail-width:42px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(4){--detail-width:72px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(5){--detail-width:114px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(6){--detail-width:40px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(7){--detail-width:32px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(8){--detail-width:50px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(9){--detail-width:45px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(n+10):not([colspan]){width:var(--detail-width);min-width:var(--detail-width);max-width:var(--detail-width)}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(10){--detail-width:70px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(11){--detail-width:70px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(12){--detail-width:120px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(13){--detail-width:85px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(14){--detail-width:85px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(15){--detail-width:75px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(16){--detail-width:60px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(17){--detail-width:190px}
:is(#importSection,#manufactureSection) .pending :is(th,td):nth-child(18){--detail-width:220px}
/* Inhouse source summaries retain line breaks and stage-specific source notes. */
#manufactureSection .pending td:nth-child(n+11){white-space:pre-line}
#manufactureSection .pending :is(th,td):nth-child(19){--detail-width:320px}
.mfg-source-details summary{cursor:pointer;color:#155eab;font-weight:600}
.mfg-source-details dl{margin:8px 0;white-space:normal}
.mfg-source-details dl div{padding:6px 0;border-bottom:1px solid #e2e8f0}
.mfg-source-details dt{font-weight:600;font-size:11px;color:#475569}
.mfg-source-details dd{margin:3px 0 0;white-space:pre-line;overflow-wrap:anywhere}
/* Timeline uses its own flow; dashboard .content grid must not resize its filters. */
#timelineView{display:block;height:auto;min-height:100%;padding:18px 16px 24px;overflow:visible}
#timelineView .timeline-heading h1{font-size:23px;line-height:1.3;margin:0;display:flex;gap:10px;align-items:center}
#timelineView .timeline-heading h1 span{font-size:12px;color:#1769e0;background:#e6efff;border-radius:5px;padding:4px 9px}
#timelineView .timeline-heading p{margin:5px 0 0;color:#64748b;font-size:12px;line-height:1.6}
#timelineView .timeline-filters{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin:16px 0 10px;padding:0}
#timelineView .timeline-filters label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;line-height:1.4;color:#475569}
#timelineView .timeline-filters input,#timelineView .timeline-filters select{height:36px;min-width:150px;padding:0 10px;border:1px solid #cbd5e1;border-radius:6px;background:white;color:#10243e}
#timelineView .timeline-search{flex:1;min-width:220px}#timelineMessage{margin:10px 0;font-size:12px;color:#64748b;line-height:1.5}
#timelineView .matrix-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0 16px;font-size:11px;align-items:center;color:#475569}
#timelineView .matrix-legend>span{display:flex;align-items:center;gap:6px;background:transparent;color:#475569}
#timelineView .matrix-legend b{padding:4px 8px;border-radius:4px;min-width:30px;text-align:center;background:#f1f5f9;color:#64748b}
#timelineView .matrix-legend .state-done b{background:#cef0ce;color:#166534}#timelineView .matrix-legend .state-progress b{background:#e5f6d9;color:#365b23}#timelineView .matrix-legend .state-delayed b{background:#ffe0e0;color:#b91c1c}#timelineView .matrix-legend .state-info b,#timelineView .matrix-legend .state-partial b{background:#e7f0ff;color:#245a91}
#timelineView .matrix-scroll{overflow:auto;max-height:calc(100dvh - 210px);min-height:260px;border:1px solid #b7c6d5;border-radius:8px;background:white;isolation:isolate}
#timelineMatrix{table-layout:fixed;border-collapse:separate;border-spacing:0;width:1694px;min-width:0;color:#16314e}
#timelineMatrix .matrix-no-col{width:46px}#timelineMatrix .matrix-identity-col{width:232px}#timelineMatrix .matrix-stage-col{width:44px}#timelineMatrix .matrix-remarks-col{width:240px}
#timelineMatrix th,#timelineMatrix td{border-right:1px solid #bfcbd7;border-bottom:1px solid #bfcbd7;position:static;vertical-align:middle;padding:0;font-size:12px;line-height:1.45}
#timelineMatrix thead th{position:sticky;top:0;z-index:4;background:#d7e7f5;height:115px;overflow:hidden;vertical-align:middle;padding-bottom:0;font-size:12px;font-weight:700;text-align:center}
#timelineMatrix thead .matrix-stage{padding:0;vertical-align:bottom;overflow:visible;background:transparent!important;z-index:5;border-right:0}
#timelineMatrix thead .matrix-stage>div{height:115px;position:relative;width:100%;text-align:center;line-height:1.4}
#timelineMatrix thead .matrix-stage>div:before{content:'';position:absolute;inset:0;background:var(--stage-color);border-left:1px solid #aebfd0;border-right:1px solid #aebfd0;transform:skewX(-50deg);transform-origin:bottom left}
#timelineMatrix thead .matrix-stage>div>span:last-child{position:absolute;top:50%;left:calc(50% + 68.526px);width:max-content;transform:translate(-50%,-50%) rotate(-40deg);transform-origin:center;font-size:12px;line-height:1.15;text-align:left;white-space:nowrap}
#timelineMatrix .matrix-stage-number{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);font-size:9px;font-weight:400;opacity:.65;letter-spacing:1px}
#timelineMatrix thead .group-design{--stage-color:#d7e8f5}#timelineMatrix thead .group-material{--stage-color:#d8edcd}#timelineMatrix thead .group-manufacture{--stage-color:#fff0c3}#timelineMatrix thead .group-system{--stage-color:#ece4c9}#timelineMatrix thead .group-assembly{--stage-color:#fce0c8}#timelineMatrix thead .group-quality{--stage-color:#f9d4d8}#timelineMatrix thead .group-shipment{--stage-color:#e3d9ef}
#timelineMatrix .matrix-no{position:sticky;left:0;z-index:2;background:white;text-align:center}
#timelineMatrix .matrix-identity{position:sticky;left:46px;z-index:2;background:white;text-align:left;padding:10px 12px;box-shadow:2px 0 2px rgba(38,65,94,.1)}
#timelineMatrix thead .matrix-no,#timelineMatrix thead .matrix-identity{z-index:6;background:#d7e7f5;padding-bottom:0;vertical-align:middle}
#timelineMatrix tbody tr{height:64px}#timelineMatrix .matrix-identity strong{font-size:12px;display:block}#timelineMatrix .matrix-identity span{font-size:11px;font-weight:500;display:block;overflow-wrap:anywhere;margin-top:2px}#timelineMatrix .matrix-identity small{font-size:10px;display:block;font-weight:400;color:#64748b;margin-top:2px;line-height:1.5}
#timelineMatrix .matrix-remarks{padding:10px 14px;white-space:pre-line;overflow-wrap:anywhere;text-align:left;background:#fff;font-size:11px}#timelineMatrix .matrix-remarks div+div{margin-top:5px}
#timelineMatrix .matrix-cell{text-align:center;background:#f8fafc;color:#8a98a8}
#timelineMatrix .matrix-cell button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-height:64px;padding:8px 2px;background:transparent;color:inherit;border:0;cursor:pointer;font-size:14px;font-weight:700;font-family:inherit;line-height:1.3}
#timelineMatrix .matrix-cell button:focus-visible{outline:2px solid #1769e0;outline-offset:-3px}#timelineMatrix .matrix-cell button:hover{box-shadow:inset 0 0 0 2px #548acb}
#timelineMatrix .matrix-cell button{scroll-margin-top:125px;scroll-margin-left:290px}
#timelineMatrix .matrix-cell button small{font-size:10px;font-weight:400}
#timelineMatrix .state-done{background:#cfefce;color:#176332}#timelineMatrix .state-done button{font-size:23px}
#timelineMatrix .state-progress{background:#e1f2d5;color:#385d27}#timelineMatrix .state-delayed{background:#ffdada;color:#b91c1c}
#timelineMatrix .state-not-started{background:#f0f0f0;color:#56606b}#timelineMatrix .state-info,#timelineMatrix .state-partial{background:#edf3fa;color:#41638b}#timelineMatrix .state-info button,#timelineMatrix .state-partial button{font-size:11px;font-weight:600}
#timelineMatrix .state-na{background:#f1f1f1;color:#738091}#timelineMatrix .state-na button,#timelineMatrix .state-planned button{font-size:11px;font-weight:500}#timelineMatrix .state-planned{background:#f0eaf7;color:#61467f}
#timelineMatrix .matrix-empty{padding:40px 20px;text-align:left;color:#64748b;background:white}
#timelineView .matrix-help{font-size:11px;color:#64748b;line-height:1.7;margin:12px 0}
#timelineView .matrix-detail{margin-top:14px;padding:16px 18px;background:#fff;border:1px solid #cad8e6;border-radius:8px}
#timelineView .matrix-detail>div{display:flex;justify-content:space-between;align-items:start;gap:12px}#timelineView .matrix-detail h2{font-size:14px;line-height:1.6;margin:0}#timelineView .matrix-detail p{font-size:12px;line-height:1.7;color:#475569}
#timelineView .matrix-detail dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:12px 0 0}#timelineView .matrix-detail dt{font-size:11px;color:#64748b}#timelineView .matrix-detail dd{margin:5px 0 0;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){#timelineView{padding:14px 10px}#timelineView .matrix-scroll{max-height:65dvh}#timelineMatrix .matrix-identity-col{width:180px}#timelineMatrix{width:1642px}#timelineMatrix .matrix-identity{padding:8px}#timelineView .timeline-filters input,#timelineView .timeline-filters select{min-width:130px}#timelineView .matrix-detail dl{grid-template-columns:1fr}}

#timelineMatrix .matrix-value{display:block;padding:12px 4px;font-weight:600;overflow-wrap:anywhere;white-space:normal;font-size:11px;color:#16314e}
#timelineMatrix .matrix-positive .matrix-value{color:#dc2626}

#timelineMatrix thead .matrix-remarks{vertical-align:bottom;padding:0 14px 12px;text-align:center}
#timelineMatrix tbody .matrix-remarks{vertical-align:middle;text-align:center}

/* Only equipment rows scroll vertically; headers stay outside that viewport. */
#timelineView .matrix-scroll{max-height:none;overflow-x:auto;overflow-y:hidden}
#timelineMatrix{display:block}
#timelineMatrix colgroup{display:none}
#timelineMatrix thead,#timelineMatrix tbody tr{display:table;table-layout:fixed;width:100%}
#timelineMatrix tbody{display:block;max-height:calc(100dvh - 330px);min-height:140px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}
#timelineMatrix thead{padding-right:17px;box-sizing:border-box}
#timelineMatrix tr>:first-child{width:46px}
#timelineMatrix tr>:nth-child(2){width:232px;box-sizing:border-box}
#timelineMatrix tr>:nth-child(n+3):nth-child(-n+26){width:44px;box-sizing:border-box}
#timelineMatrix tr>:last-child{width:auto;box-sizing:border-box}
#timelineMatrix thead th{position:relative}
@media(max-width:700px){#timelineMatrix tr>:nth-child(2){width:180px}#timelineMatrix tbody{max-height:55dvh}}

/* Projects, date filters and language controls share a single row. */
.topbar{height:64px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:14px;padding:0 16px;overflow-x:auto}
.project-nav{display:flex;align-items:center;gap:6px;flex-shrink:0}
.project-button{flex:0 0 54px;width:54px;height:34px;padding:0 6px;border:1px solid #397293;border-radius:6px;background:transparent;color:#fff;font:700 12px Arial,Helvetica,sans-serif;cursor:pointer}
.project-button:hover{background:#174a72;border-color:#5e9bbc}
.project-button[aria-pressed="true"]{background:#1769e0;border-color:#4388ec}
.project-button:disabled{opacity:.45;cursor:not-allowed;background:transparent;border-color:#397293;box-shadow:none}
.topbar-controls{min-width:max-content;flex-shrink:0;gap:6px;border:0}
.topbar select{padding:0 5px}.topbar input[type="date"]{width:116px;padding:0 5px}.topbar .btn{padding:0 9px}
.main{padding-top:64px}
@media(max-width:1100px){.topbar{padding:0 10px;gap:10px}.project-nav{gap:4px}.project-button{flex-basis:46px;width:46px}}

.topbar{overflow:visible}.project-menu{position:relative}.project-menu .nav-project-children{position:absolute;top:42px;left:0;width:150px;margin:0;padding:6px;border:1px solid #397293;border-radius:7px;background:#0b2948;box-shadow:0 8px 20px #071f3c40}.project-menu .nav-link{padding:0 10px;justify-content:flex-start}.project-menu .nav-link span{display:inline!important}.project-menu .nav-project-children[hidden]{display:none}

/* De-emphasize timeline stages that do not apply. */
#timelineMatrix .matrix-cell.matrix-na{background:#edf0f3;color:#9aa3ad}
#timelineMatrix .matrix-na .matrix-value{color:#9aa3ad;font-weight:400}

/* Start the horizontal scrollbar after the two frozen identity columns. */
#timelineView .matrix-scroll::-webkit-scrollbar{height:14px}
#timelineView .matrix-scroll::-webkit-scrollbar-track:horizontal{margin-left:278px;background:#f1f3f5;border-radius:7px}
#timelineView .matrix-scroll::-webkit-scrollbar-thumb:horizontal{background:#929aa3;border:3px solid #f1f3f5;border-radius:7px}
#timelineView .matrix-scroll::-webkit-scrollbar-thumb:horizontal:hover{background:#717b86}
#timelineView .matrix-scroll::-webkit-scrollbar-button:horizontal{display:none}
@media(max-width:700px){#timelineView .matrix-scroll::-webkit-scrollbar-track:horizontal{margin-left:226px}}

#timelineMatrix tbody .matrix-no,#timelineMatrix tbody .matrix-identity{position:relative;left:auto;top:auto;transform:translateX(var(--timeline-scroll-x,0px));z-index:3}
/* Management review and evidence panels. */
.management-panel{background:#fff;border:1px solid #d7e2ee;border-radius:10px;padding:18px;margin-bottom:20px}.management-panel h2{font-size:20px;margin:0 0 8px}.management-panel h3{font-size:15px;margin:18px 0 6px}.management-panel p,.quantity-summary,.management-toolbar{font-size:12px;color:#52677c;line-height:1.6}.management-note{max-width:1050px}.management-panel select{padding:8px;border:1px solid #c5d5e5;border-radius:5px}.management-module{font-size:16px;margin:14px 0 4px}.quantity-summary{margin:0 0 10px}.management-table{overflow:auto;max-height:440px;border:1px solid #dce5ee;border-radius:7px}.management-table table{min-width:1000px}.management-table th{background:#edf3f9;font-size:11px;padding:10px;z-index:1}.management-table td{font-size:12px;padding:12px;vertical-align:top}.management-table small{display:block;font-size:11px;font-weight:400;line-height:1.5;color:#697e92;margin-top:5px}.management-link{background:none;border:0;color:#165fc1;padding:0;cursor:pointer;text-align:left;font:600 12px Arial;text-decoration:underline;text-underline-offset:3px}.attention-red{color:#c33535!important}.management-toolbar{display:flex;align-items:center;gap:12px;margin:12px 0}.stage-pill{min-width:96px;padding:9px 7px;border:1px solid #cfdae6;border-radius:6px;background:#f1f4f7;color:#546779;cursor:pointer;font-size:11px}.stage-pill.state-done{background:#d8efdd;color:#256638}.stage-pill.state-progress{background:#e2efff;color:#205f9e}.stage-pill.state-delayed{background:#ffe2e2;color:#a12929}.stage-pill.state-partial{background:#fff1cc;color:#87631f}.stage-pill.state-na{background:#edf0f3;color:#9aa3ad}#timelineOverview[hidden],#timelineView .matrix-scroll[hidden]{display:none}#timelineOverview th:first-child{min-width:200px}#managementDetail{width:min(900px,92vw);max-height:85vh;overflow:auto;border:1px solid #b9cde0;border-radius:12px;padding:24px;color:#18334d}#managementDetail::backdrop{background:#071f3c88}#managementClose{float:right}#managementDetail p,#managementDetail dd,#managementDetail dt{font-size:12px;line-height:1.6}#managementDetail dl{display:grid;grid-template-columns:minmax(140px,1fr) 2fr;gap:6px}#managementDetail dd{margin:0;white-space:pre-wrap}.evidence-card{padding:12px;margin:10px 0;border:1px solid #dce5ee;border-radius:7px;background:#f8fafc}#timelineMatrix td[role="button"]{cursor:pointer}#timelineMatrix td[role="button"]:focus-visible{outline:2px solid #1769e0;outline-offset:-2px}
#timelineMatrix .state-progress{background:#e2efff;color:#205f9e}

#dashboardView[hidden]{display:none}#timelineOverview td:nth-child(2){min-width:130px}#timelineOverview th:first-child{position:sticky;left:0;z-index:2;background:#edf3f9}#timelineOverview table{min-width:1200px}
.equipment-track{border:0;background:none;padding:0;color:#1765b9;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:600 11px Arial;text-align:left;overflow-wrap:anywhere}.equipment-track:hover{color:#0b4380}.equipment-track:focus-visible{outline:2px solid #1769e0;outline-offset:2px}
#equipmentTracking{width:min(760px,94vw);max-height:88dvh;padding:0;border:1px solid #ccdbea;border-radius:14px;color:#18334d;background:#fff;overflow:auto}#equipmentTracking::backdrop{background:#071f3c99}.tracking-header{display:flex;justify-content:space-between;align-items:center;gap:15px;position:sticky;top:0;z-index:3;background:#0b2948;color:white;padding:18px 24px}.tracking-header small{font-size:10px;letter-spacing:1px;color:#abc9e6}.tracking-header h2{margin:5px 0 0;font-size:20px}.tracking-header .btn{color:white;border-color:#9ebbd8;background:transparent}#trackingBody{padding:22px 26px}.tracking-summary{padding:18px;background:#f0f5fb;border:1px solid #dce7f2;border-radius:10px}.tracking-source{font-weight:700;color:#2265a9;font-size:13px}.tracking-summary p{font-size:12px;margin:8px 0 16px}.tracking-facts{display:grid;grid-template-columns:2fr 1.3fr 1fr 1.5fr;gap:12px}.tracking-facts small{display:block;color:#6f8294;font-size:11px;margin-bottom:5px}.tracking-facts strong{font-size:12px;overflow-wrap:anywhere}.tracking-caption{font-size:12px;color:#657b90;line-height:1.6}.tracking-journey{list-style:none;margin:24px 0 0;padding:0}.tracking-step{display:flex;gap:16px;position:relative;padding-bottom:24px}.tracking-step:not(:last-child):before{content:'';position:absolute;left:15px;top:30px;bottom:0;border-left:2px solid #dce5ee}.tracking-dot{width:32px;height:32px;flex:none;border:2px solid #c7d5e3;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:#fff;color:#7c8c9b;z-index:1}.tracking-done .tracking-dot{background:#228352;border-color:#228352;color:white}.tracking-recorded .tracking-dot,.tracking-progress .tracking-dot{border-color:#287ac8;color:#287ac8}.tracking-delayed .tracking-dot{border-color:#c64747;color:#c64747}.tracking-na{opacity:.5}.tracking-step-body{flex:1;min-width:0;border:1px solid #e1e8ef;border-radius:8px;padding:12px 15px}.tracking-step-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.tracking-step-title h4{font-size:13px;margin:0}.tracking-step-title>span{font-size:10px;color:#74869a;white-space:nowrap}.tracking-done .tracking-step-title>span{color:#228352}.tracking-date{font-size:11px;color:#53718a;margin:9px 0}.tracking-step details{margin-top:10px;font-size:11px;color:#526c83;line-height:1.6}.tracking-step summary{cursor:pointer;color:#2369a9}.tracking-step dl{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tracking-step dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.tracking-review .tracking-step-body{border-color:#9bbde0}.tracking-remark{font-size:12px;line-height:1.6;padding:16px;background:#f8fafc;border-radius:8px}@media(max-width:600px){.tracking-facts{grid-template-columns:1fr 1fr}.tracking-step-title{display:block}.tracking-step-title>span{display:block;margin-top:6px}#trackingBody{padding:16px}}
/* Tracking: date | numbered spine | full milestone detail. */
#equipmentTracking{width:min(520px,94vw)}.tracking-header{display:grid;grid-template-columns:1fr auto;gap:8px 18px;padding:18px 24px}.tracking-header h2{margin:0}#trackingHeaderInfo{grid-column:1/-1}.tracking-header .tracking-summary{background:transparent;border:0;padding:0;border-radius:0}.tracking-header .tracking-source{color:#d5e9ff}.tracking-header .tracking-summary p{margin:6px 0 12px;color:#d7e7f5}.tracking-header .tracking-facts{grid-template-columns:2fr 1.3fr 1fr 1.5fr}.tracking-header .tracking-facts small{color:#acc9e5}.tracking-header .tracking-facts strong{color:white}.tracking-journey{margin-top:18px}.tracking-step{display:grid;grid-template-columns:140px 36px minmax(0,1fr);gap:16px;padding-bottom:20px}.tracking-step:not(:last-child):before{left:173px;top:34px;border-color:#d4dde6}.tracking-dot{width:36px;height:36px;background:#ffedb0;border-color:#d9a316;color:#7f5b00}.tracking-date-column{text-align:right;padding-top:4px;font-size:12px;line-height:1.6}.tracking-date-column small{display:block;color:#7b8b9b;font-size:10px;margin:3px 0 10px}.tracking-step-body{background:#fafbfd;border-color:#e1e7ed}.tracking-done .tracking-dot{background:#228352;color:white;border-color:#228352}.tracking-unknown .tracking-step-title>span,.tracking-planned .tracking-step-title>span,.tracking-info .tracking-step-title>span,.tracking-partial .tracking-step-title>span,.tracking-progress .tracking-step-title>span{color:#916a00}.tracking-recorded .tracking-dot,.tracking-progress .tracking-dot,.tracking-delayed .tracking-dot{background:#ffedb0;border-color:#d9a316;color:#7f5b00}.tracking-na .tracking-dot{background:#edf0f3;border-color:#c7ced6;color:#8b95a0}.tracking-review .tracking-step-body{border-color:#e3c569}.tracking-step details{font-size:12px}.tracking-step details>p{margin:7px 0;color:#748598}.tracking-step dl{grid-template-columns:minmax(120px,1fr) 1.5fr}.tracking-step dd{color:#203c58;font-weight:500}@media(max-width:600px){.tracking-header{padding:14px}.tracking-header .tracking-facts{grid-template-columns:1fr 1fr}.tracking-step{grid-template-columns:85px 30px minmax(0,1fr);gap:8px}.tracking-dot{width:30px;height:30px}.tracking-step:not(:last-child):before{left:107px;top:28px}.tracking-date-column{font-size:10px}.tracking-step-body{padding:9px}.tracking-step dl{display:block}.tracking-step dd{margin-bottom:8px}}
/* Compact tracking summary and one-line milestone cards. */
.tracking-header{padding:16px 22px;gap:12px}.tracking-header .tracking-facts{grid-template-columns:minmax(180px,2fr) minmax(75px,.7fr) minmax(120px,1fr);gap:18px}#trackingBody{padding:18px 22px}#trackingBody>h3{margin:0 0 20px;font-size:17px}.tracking-step{grid-template-columns:85px 36px minmax(0,1fr);gap:14px;padding-bottom:14px;align-items:start}.tracking-step:not(:last-child):before{left:116px}.tracking-date-column{padding-top:9px}.tracking-date-column strong{display:block}.tracking-step-body{min-height:40px;padding:11px 14px}.tracking-step-title{align-items:center}.tracking-step-title>span{flex-shrink:0}@media(max-width:600px){.tracking-header .tracking-facts{grid-template-columns:1.6fr .6fr 1fr;gap:10px}.tracking-step{grid-template-columns:48px 30px minmax(0,1fr);gap:8px}.tracking-step:not(:last-child):before{left:70px}.tracking-step-title{display:flex;align-items:flex-start}.tracking-step-title>span{white-space:normal;text-align:right;max-width:75px;margin:0}.tracking-header{padding:14px}}

.tracking-comment{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:10px 0 0;font-size:11px;line-height:1.5}.tracking-comment dt{color:#657b90}.tracking-comment dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}#timelineMessage:empty{display:none}#timelineMode{height:36px;white-space:nowrap}#timelineReviewFilter{max-width:190px}

/* Schedule colors shared by Inhouse tracking and Heatmap. */
.tracking-planned .tracking-dot,.tracking-unknown .tracking-dot{background:#fff;border-color:#c7d5e3;color:#74869a}
.tracking-planned .tracking-step-title>span,.tracking-unknown .tracking-step-title>span{color:#74869a}
.tracking-progress .tracking-dot{background:#ffedb0;border-color:#d9a316;color:#7f5b00}
.tracking-delayed .tracking-dot{background:#dc3545;border-color:#dc3545;color:#fff}
.tracking-delayed .tracking-step-title>span{color:#c33535}
#timelineMatrix .state-planned,#timelineMatrix .state-unknown{background:#f8fafc;color:#18334d}
#timelineMatrix .state-progress{background:#fff0b3;color:#805b00}

.nav-image-icon{width:30px;height:30px;object-fit:contain;border-radius:6px;flex-shrink:0}#timelineMatrix .matrix-risk-col{width:120px}#timelineMatrix .matrix-risk{padding:10px;text-align:center;white-space:pre-line;overflow-wrap:anywhere}#timelineMatrix thead .matrix-risk{vertical-align:bottom;padding-bottom:12px}
#timelineMatrix tr>:nth-child(27){width:120px;box-sizing:border-box}
/* One native scroll viewport keeps header and identity columns pinned together. */
body:has(#timelineView:not([hidden])){overflow:hidden}
.main:has(#timelineView:not([hidden])){height:100dvh;min-height:0;overflow:hidden}
#timelineView:not([hidden]){display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;padding:12px 16px}
#timelineView .timeline-filters{flex:none;margin:0 0 10px}
#timelineView .matrix-scroll{flex:1;min-height:0;max-height:none;overflow:auto}
#timelineOverview{flex:1;min-height:0;max-height:none}
#timelineView .matrix-help{flex:none;margin:8px 0 0}
#timelineMatrix{display:table;width:1712px}
#timelineMatrix colgroup{display:table-column-group}
#timelineMatrix thead{display:table-header-group;padding:0}
#timelineMatrix tbody{display:table-row-group;overflow:visible;max-height:none;min-height:0}
#timelineMatrix tbody tr{display:table-row}
#timelineMatrix thead th{position:sticky;top:0}
#timelineMatrix tbody .matrix-no,#timelineMatrix tbody .matrix-identity{position:sticky;transform:none;top:auto}
#timelineMatrix .matrix-no{left:0}
#timelineMatrix .matrix-identity{left:46px}
#timelineMatrix .matrix-risk-col,#timelineMatrix tr>:nth-child(27){width:138px}
#timelineMatrix .risk-low{background:#16a34a;color:#fff;font-weight:700}
#timelineMatrix .risk-medium{background:#facc15;color:#422006;font-weight:700}
#timelineMatrix .risk-high{background:#ef4444;color:#fff;font-weight:700}
@media(max-width:700px){#timelineMatrix{width:1660px}}
#timelineMatrix tbody .matrix-no{left:0}
#timelineMatrix tbody .matrix-identity{left:46px}

#manufactureSection .pending :is(th,td):nth-child(16){--detail-width:220px}
