:root{--color-paper: #f4f0e4;--color-paper-2: #e8e2d0;--color-mint: #d7efe4;--color-ink: #142019;--color-ink-soft: #2c3a32;--color-muted: #546058;--color-faint: #7a867e;--color-rule: #cfc7b4;--color-accent: #3aac75;--color-accent-deep: #1b6b48;--color-info: #3d7cc9;--color-info-soft: #eaf2fb;--color-warn: #c9863d;--color-warn-bg: #f8efdf;--color-late: #c45c4a;--color-late-bg: #f3ddd7;--color-focus: #1b6b48;--color-busy: #3aac75;--color-idle: #7a867e;--color-rail: #13281e;--color-rail-ink: #d7efe4;--color-strip: #fffdf6;--font-display: "Songti SC", "STSong", "SimSun", "PingFang SC", serif;--font-body: "PingFang SC", "HarmonyOS Sans SC", "Noto Sans SC", "Segoe UI", system-ui, sans-serif;--font-mono: "SF Mono", "Menlo", "Consolas", ui-monospace, monospace;--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .14s;--dur-med: .22s;--shadow-sheet: none;--rail-w: 208px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;overflow-x:clip;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:16px;line-height:1.5}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);font-style:normal;font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--color-info)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(280px,42%) 1fr}.login-aside{background:var(--color-rail);color:var(--color-rail-ink);padding:48px 40px;display:flex;flex-direction:column;justify-content:space-between}.login-seats{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:32px}.login-seat{height:36px;border:1px solid rgb(215 239 228 / .35);background:transparent}.login-aside .sub{color:#d7efe4c7;margin-top:8px;font-size:.9rem}.brand-dot{width:8px;height:8px;background:var(--color-accent);display:inline-block;margin-right:8px}.login-aside h1{font-size:2rem}.login-facts{list-style:none;padding:0;margin:32px 0 0;color:var(--color-ink-soft)}.login-facts li{margin:10px 0;padding-left:14px;border-left:2px solid var(--color-accent)}.login-main{display:grid;place-items:center;padding:40px 24px}.login-card{width:min(400px,100%)}.login-card h2{font-size:1.5rem;margin-bottom:8px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field span{font-size:.875rem;color:var(--color-muted)}.field input,.field select,.field textarea,.input,.select,.textarea{width:100%;border:1px solid var(--color-rule);background:var(--color-paper);border-radius:var(--radius-sm);padding:10px 12px}.field-error{color:var(--color-late);font-size:.8rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-sm);border:1px solid var(--color-accent-deep);background:var(--color-accent-deep);color:#fff;padding:10px 16px;min-height:40px}.btn:hover:not(:disabled){filter:brightness(1.05)}.btn-ghost{background:var(--color-strip);color:var(--color-ink);border-color:var(--color-rule)}.btn-danger{background:transparent;color:var(--color-late);border-color:var(--color-late)}.btn-block{width:100%}.alert{display:flex;gap:8px;background:var(--color-late-bg);border-left:3px solid var(--color-late);padding:10px 12px;margin-bottom:16px;color:var(--color-late);font-size:.875rem}.shell{min-height:100vh;display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr)}.rail{border-right:0;padding:24px 14px;display:flex;flex-direction:column;gap:16px;background:var(--color-rail);color:var(--color-rail-ink);position:sticky;top:0;height:100vh}.brand-mark{font-family:var(--font-display);font-size:1.85rem;font-weight:600;display:flex;align-items:center;letter-spacing:-.03em}.brand-pulse{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:#d7efe4b3;margin-top:4px}.brand-sub{color:var(--color-faint);font-size:.75rem;margin-top:4px}.nav-group{color:#d7efe4d1;font-size:.7rem;letter-spacing:.14em;margin:10px 8px 4px}.nav-list{display:flex;flex-direction:column;gap:2px;width:100%;min-width:0;flex:1;overflow-y:auto}.nav-cluster{display:flex;flex-direction:column;width:100%;min-width:0}.nav-item{display:block;width:100%;box-sizing:border-box;border:0;background:transparent;text-align:left;padding:6px 12px;border-radius:0;color:#d7efe4d1;font-size:.88rem}.nav-item:hover{background:#ffffff0f}.nav-item.is-active{background:var(--color-accent);color:#fff}.rail .btn{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.rail .btn-ghost{background:transparent;color:var(--color-rail-ink);border-color:#d7efe459}.rail .who{color:#d7efe4e6}.rail-foot{margin-top:10px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.who{font-size:.85rem;color:var(--color-muted);padding:0 4px}.main{min-width:0;padding:16px 28px 48px;background:var(--color-paper)}.mast{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:2px solid var(--color-ink);padding-bottom:8px;margin-bottom:14px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;color:var(--color-muted)}.context-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}.chip{border:1px solid var(--color-rule);background:var(--color-strip);border-radius:999px;padding:5px 12px;font-size:.8rem}.chip.is-active{background:var(--color-mint);border-color:var(--color-accent);color:var(--color-ink)}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;flex-wrap:wrap}.page-head h1{font-family:var(--font-display);font-size:2.15rem;font-weight:600;overflow-wrap:anywhere;min-width:0}.page-head .lede{margin:6px 0 0;color:var(--color-muted);max-width:46rem}.stat-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.stat-card{background:var(--color-strip);border:1px solid var(--color-rule);border-radius:var(--radius-md);padding:12px 14px;min-width:0}.stat-card.is-hot{cursor:pointer}.stat-card.is-hot:hover,.stat-card.is-on{border-color:var(--color-accent);background:var(--color-mint)}.stat-card .label{color:var(--color-muted);font-size:.75rem}.stat-card .value{font-family:var(--font-mono);font-size:1.5rem;font-variant-numeric:tabular-nums;margin-top:4px}.clocks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.clock{display:block;width:100%;text-align:left;border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-strip);padding:14px 16px;color:inherit}button.clock:hover{border-color:var(--color-accent)}.clock-kicker{color:var(--color-muted);font-size:.75rem}.clock-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.clock-num{font-family:var(--font-mono);font-size:2.75rem;font-variant-numeric:tabular-nums;line-height:1.05;letter-spacing:-.04em;margin-top:2px}.clock-num.late{color:var(--color-late)}.clock-sub{margin-top:10px;color:var(--color-muted);font-size:.8rem}.stats-split{display:grid;grid-template-columns:1fr 1fr;gap:12px}td.num,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}td.num.late{color:var(--color-late)}.seg-bar{display:flex;align-items:center;gap:8px;min-width:88px;height:10px}.seg-bar span{display:block;height:8px;min-width:4px}.seg-bar span:first-of-type{border-radius:99px 0 0 99px}.seg-bar span:last-of-type{border-radius:0 99px 99px 0}.seg-bar em{font-style:normal;font-family:var(--font-mono);font-size:.75rem;color:var(--color-muted)}.detail-toggle{margin:14px 0 10px;border:0;background:transparent;color:var(--color-muted);padding:0;font-size:.85rem}.detail-toggle:hover{color:var(--color-ink)}.grid-2{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.panel{background:var(--color-strip);border:1px solid var(--color-rule);border-radius:var(--radius-md);padding:14px;min-width:0}.panel h2{font-size:1.05rem;margin-bottom:10px}.seat-list{display:flex;flex-direction:column;gap:8px}.seat{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--color-rule);border-radius:var(--radius-md);padding:10px 12px}.seat.is-busy{background:var(--color-mint)}.seat-name{font-size:1.05rem;font-weight:600}.seat-meta{color:var(--color-muted);font-size:.8rem}.bar{height:8px;background:var(--color-mint);border-radius:99px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--color-accent)}.pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 8px;font-size:.72rem;border:1px solid var(--color-rule);background:var(--color-strip);white-space:nowrap}.pill.busy{background:var(--color-mint);border-color:var(--color-accent)}.pill.idle{background:#f3f3f3;color:var(--color-muted)}.pill.review{background:#f3f0ea;border-color:#c4b39a;color:#6b5a3f}.pill.scheduled{background:#eef4fb;border-color:var(--color-info);color:var(--color-info)}.pill.launch{background:#e8f3ee;border-color:var(--color-accent-deep);color:var(--color-accent-deep)}.pill.rework{background:var(--color-warn-bg);border-color:var(--color-warn);color:var(--color-warn)}.pill.done{background:var(--color-info-soft);border-color:var(--color-info);color:var(--color-info)}.pill.late{background:var(--color-late-bg);border-color:var(--color-late);color:var(--color-late)}.pill.muted{background:#f3f3f3;color:var(--color-muted)}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.filters input,.filters select{border:1px solid var(--color-rule);background:var(--color-strip);border-radius:var(--radius-sm);padding:7px 10px}.tabs{display:flex;gap:4px;margin-bottom:12px}.tab{border:1px solid var(--color-rule);background:var(--color-strip);padding:6px 12px;border-radius:999px}.tab.is-active{background:var(--color-mint);color:var(--color-ink);border-color:var(--color-accent)}.card{display:block;width:100%;text-align:left;border:1px solid var(--color-rule);border-radius:8px;padding:16px;margin-bottom:8px;background:var(--color-strip)}.card.is-busy{background:var(--color-mint)}.card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.card:hover{border-color:var(--color-accent)}h2{font-size:.95rem;margin:16px 0 8px;font-weight:600}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.82rem;font-variant-numeric:tabular-nums}table.data th,table.data td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--color-rule);vertical-align:top}table.data th{color:var(--color-muted);font-weight:600;font-size:.75rem}table.data tr.clickable{cursor:pointer}table.data tr.clickable:hover{background:var(--color-paper-2)}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-head{font-size:.75rem;color:var(--color-muted);padding:4px}.cal-cell{min-height:92px;border:1px solid var(--color-rule);border-radius:6px;padding:6px;background:var(--color-strip);text-align:left}.cal-cell.load-1,.cal-cell.load-2,.cal-cell.load-3{background:var(--color-mint)}.cal-cell.is-today .d{color:var(--color-accent-deep);font-weight:700}.cal-cell .d{font-family:var(--font-mono);font-size:.8rem}.cal-cell .n{font-size:.7rem;color:var(--color-muted)}.cal-event{font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%;text-align:left;border:0;background:transparent;padding:0}.today-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.today-lane{border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2);min-width:0;padding:8px;min-height:280px}.today-lane header{display:flex;justify-content:space-between;margin-bottom:8px}.today-card{display:block;width:100%;text-align:left;border:1px solid var(--color-rule);background:var(--color-strip);border-radius:8px;padding:8px;margin-bottom:6px}.today-card.is-late{border-color:#e7c6c0}.today-empty{padding:12px 4px}.today-side{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.today-person{display:flex;justify-content:space-between;width:100%;border:0;background:transparent;padding:8px 0;border-bottom:1px solid var(--color-rule)}.palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c2b2447;z-index:30;display:grid;place-items:start center;padding-top:12vh}.palette{width:min(560px,92vw);background:var(--color-strip);border:1px solid var(--color-rule);border-radius:12px;overflow:hidden}.palette input{width:100%;border:0;border-bottom:1px solid var(--color-rule);padding:14px 16px}.palette ul{list-style:none;margin:0;padding:6px 0;max-height:360px;overflow:auto}.palette li button{width:100%;border:0;background:transparent;text-align:left;padding:8px 16px;display:flex;gap:10px;align-items:center}.palette li button:hover{background:var(--color-paper-2)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c2b2447;z-index:20}table.data.compact th,table.data.compact td{padding:8px 10px}.inline-bar{display:inline-block;width:64px;height:6px;background:var(--color-mint);border-radius:99px;overflow:hidden;vertical-align:middle;margin-right:6px}.inline-bar>span{display:block;height:100%;background:var(--color-accent)}.linkish{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:2px 0;min-height:0;margin-right:10px}.gantt{display:flex;flex-direction:column;gap:6px}.gantt-row{display:grid;grid-template-columns:180px minmax(0,1fr) 72px;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid var(--color-rule);border-radius:8px;padding:8px 10px;background:var(--color-strip)}.gantt-name{min-width:0}.gantt-track{position:relative;height:16px;background:#f4f4f4;border-radius:99px}.gantt-bar{position:absolute;top:3px;height:10px;border-radius:99px;background:var(--color-accent)}.gantt-bar.review{background:#c4b39a}.gantt-bar.scheduled{background:var(--color-info)}.gantt-bar.developing{background:var(--color-accent)}.gantt-bar.launching{background:var(--color-accent-deep)}.gantt-bar.rework{background:var(--color-warn)}.gantt-bar.done{background:var(--color-info)}.gantt-bar.closed{background:#b3b9b6}.gantt-bar.late{background:var(--color-late)}.gantt.compact{gap:4px}.gantt.compact .gantt-row{grid-template-columns:148px minmax(0,1fr) 68px;padding:4px 8px;border-radius:6px}.gantt.compact .gantt-track{height:12px}.gantt.compact .gantt-bar{top:2px;height:8px}.gantt.compact .gantt-mark{height:12px}.gantt.compact .gantt-name{font-size:.8rem}.gantt-axis{display:grid;grid-template-columns:148px minmax(0,1fr) 68px;gap:10px;align-items:start;padding:6px 8px 0}.gantt-track.axis-track{height:28px;background:transparent;overflow:visible}.gantt-tick{position:absolute;top:0;transform:translate(-50%);font-family:var(--font-mono);font-size:.68rem;color:var(--color-muted);white-space:nowrap}.desk-pulse{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}.desk-pulse-line{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:var(--text-sm);color:var(--color-ink-soft)}.desk-pulse-line b{font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-ink)}.desk-pulse-line .is-late b{color:var(--color-late)}.desk-pulse-line .is-faint{color:var(--color-faint)}.desk-pulse-chips{display:flex;flex-wrap:wrap;gap:8px}.desk-body{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);align-items:start}.desk-body.is-inspecting{grid-template-columns:minmax(0,1fr) 340px}.desk-floor{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:var(--space-sm);align-content:start;min-width:0}.seat-desk{display:flex;flex-direction:column;min-width:0;border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-strip)}.seat-desk.has-late{background:var(--color-late-bg)}.seat-desk.is-idle{background:var(--color-paper-2)}.seat-desk.is-selected{background:var(--color-strip);border-color:var(--color-accent);box-shadow:inset 3px 0 0 var(--color-accent)}.seat-desk.has-late.is-selected{border-color:var(--color-late);box-shadow:inset 3px 0 0 var(--color-late)}.seat-desk.is-dim{opacity:.28}.seat-desk-select{display:grid;grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"face text late" "meter meter meter";gap:6px 8px;align-items:center;width:100%;border:0;background:transparent;padding:12px 12px 8px;text-align:left;min-width:0}.seat-desk-select:hover{background:var(--color-paper-2)}.desk-face{grid-area:face;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e6e6e6;color:var(--color-ink-soft);font-size:.8rem;font-weight:600}.desk-face.busy{background:var(--color-mint);color:var(--color-accent-deep)}.desk-face.late{background:var(--color-late-bg);color:var(--color-late)}.seat-desk-text{grid-area:text;display:flex;flex-direction:column;min-width:0}.seat-desk-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-desk-select .pill{grid-area:late}.load-meter{grid-area:meter;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;height:6px}.load-cell{background:#ececec;border-radius:99px}.load-cell.is-on{background:var(--color-accent)}.load-cell.is-hot{background:var(--color-warn)}.seat-jobs{display:flex;flex-direction:column;padding:0 8px 10px}.seat-job{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:baseline;width:100%;border:0;background:transparent;padding:6px 4px;text-align:left;min-width:0}.seat-job:hover{background:var(--color-paper-2);border-radius:var(--radius-sm)}.seat-job-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm)}.seat-job-when{font-family:var(--font-mono);font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--color-ink-soft);white-space:nowrap}.seat-job.is-late .seat-job-when{color:var(--color-late)}.seat-job-more{padding:2px 4px 0;font-size:var(--text-xs);color:var(--color-muted)}.seat-empty{padding:4px 12px 12px;color:var(--color-faint);font-size:var(--text-sm)}.seat-inspector{border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-strip);min-width:0;padding:14px;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 180px);overflow:auto;animation:desk-in var(--dur-med) var(--ease-out)}.seat-inspector-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.seat-inspector-head h2{font-size:var(--text-lg)}.seat-inspector-head .linkish{margin-right:0}.seat-inspector-note{margin:0;font-size:var(--text-sm);color:var(--color-ink-soft)}.job-group{display:flex;flex-direction:column;gap:8px}.job-group h3{font-size:var(--text-xs);font-weight:600;color:var(--color-muted)}.job-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-strip);padding:10px 12px;text-align:left;min-width:0}.job-card.has-late{background:var(--color-late-bg)}.job-card:hover{background:var(--color-paper-2)}.job-card-title{overflow:hidden;text-overflow:ellipsis;max-width:100%}.job-card-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--color-ink-soft);font-size:var(--text-sm)}.job-card-date{font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--color-ink-soft)}.job-card-date.is-late{color:var(--color-late)}.desk-empty{padding:28px 12px;color:var(--color-muted);text-align:center}@keyframes desk-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.brief-grid{display:grid;grid-template-columns:1.1fr 1fr .9fr;gap:12px;align-items:start}.brief-col{border:0;border-left:2px solid var(--color-ink);border-radius:0;background:transparent;padding:0 0 0 12px;display:flex;flex-direction:column;gap:8px;min-width:0}.brief-col.is-hot{background:transparent;border-left-color:var(--color-late)}.brief-col header{display:flex;justify-content:space-between}.scan-row{display:grid;grid-template-columns:22px minmax(0,1fr) 48px 18px;gap:8px;align-items:baseline;width:100%;border:0;background:transparent;text-align:left;padding:6px 0;border-bottom:1px solid var(--color-rule);min-height:32px}.scan-row.is-late{color:var(--color-late)}.scan-who{font-family:var(--font-mono);font-size:.75rem}.scan-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scan-age,.scan-st{font-family:var(--font-mono);font-size:.72rem;color:var(--color-muted)}.scan-row.is-late .scan-age{color:var(--color-late)}.mast-telemetry{font-family:var(--font-mono);letter-spacing:.04em}.risk-wall{display:flex;flex-direction:column;gap:8px}.risk-slab{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;width:100%;border:1px solid var(--color-rule);background:var(--color-strip);text-align:left;padding:12px;border-radius:var(--radius-md)}.risk-slab.is-thick{padding:16px}.risk-slab.is-hot .risk-score{color:var(--color-late)}.risk-score{font-family:var(--font-mono);font-size:2.4rem;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.risk-body{display:flex;flex-direction:column;gap:4px;min-width:0}.risk-why{color:var(--color-ink-soft);font-size:var(--text-sm)}.cal-cell{position:relative;border:0}.cal-cell.is-picked{box-shadow:inset 0 0 0 2px var(--color-accent)}.cal-late-dot{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:99px;background:var(--color-late)}.cal-day{margin-top:16px;display:flex;flex-direction:column;gap:8px}.cal-board{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:18px;align-items:start}.cal-dossier{border:1px solid var(--color-rule);background:var(--color-strip);padding:20px 20px 24px;min-height:420px}.cal-dossier .eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;color:var(--color-muted);margin:0 0 6px}.cal-dossier h2{font-family:var(--font-display);font-size:2rem;margin:0 0 6px}.cal-tickets{display:flex;flex-direction:column;gap:10px;margin-top:14px}.cal-ticket{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;border:1px solid var(--color-rule);background:var(--color-paper);padding:14px 16px}.cal-ticket strong{font-size:1.05rem}.cal-ticket span{color:var(--color-ink-soft);font-size:.9rem}.cal-ticket.is-late{background:var(--color-late-bg)}.handoff-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.handoff-steps section{border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-strip);padding:12px;display:flex;flex-direction:column;gap:8px}.attend-list,.load-wall{display:flex;flex-direction:column;gap:8px}.attend-row{display:grid;grid-template-columns:88px minmax(0,1fr) 64px 48px;gap:10px;align-items:center;width:100%;border:1px solid var(--color-rule);background:var(--color-strip);text-align:left;padding:10px 12px;border-radius:var(--radius-sm)}.attend-bar{height:8px;background:#ececec;border-radius:99px;overflow:hidden}.attend-bar>span{display:block;height:100%;background:var(--color-accent)}.load-card{border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-strip);padding:12px}.load-card.is-hot{background:var(--color-warn-bg)}.load-card-head{display:flex;justify-content:space-between;width:100%;border:0;background:transparent;padding:0 0 8px}.review-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}.review-out{display:flex;flex-direction:column;gap:16px}.review-out pre{white-space:pre-wrap;font-family:var(--font-body);margin:0;padding:12px 0;border-top:1px solid var(--color-rule)}.llm-form{max-width:36rem}.ops-page{min-width:0}.demand-form{display:grid;grid-template-columns:minmax(0,1.4fr) 140px 120px auto;gap:8px;margin-bottom:16px}.demand-lanes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.demand-lane,.issue-card,.retro-card,.demand-card{border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-strip);min-width:0}.demand-lane{padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--color-paper-2)}.demand-lane header,.today-lane header{display:flex;justify-content:space-between}.demand-card,.issue-card,.retro-card{padding:10px 12px;background:var(--color-strip)}.demand-launch{margin-top:16px}.issue-wall,.retro-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:10px}.issue-card{display:flex;flex-direction:column;gap:8px}.issue-card-main{border:0;background:transparent;text-align:left;padding:0}.issue-card-main p{margin:6px 0 0;color:var(--color-ink-soft);font-size:var(--text-sm)}.ledger{display:flex;flex-direction:column}.ledger-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;width:100%;border:0;border-top:1px solid var(--color-rule);background:var(--color-strip);text-align:left;padding:12px 4px}.ledger-row:hover{background:var(--color-paper-2)}.ledger-when{font-family:var(--font-mono);color:var(--color-muted)}.ledger-body{display:flex;flex-direction:column;gap:2px;min-width:0}.retro-card{text-align:left}.retro-card.is-ok{box-shadow:inset 3px 0 0 var(--color-accent)}.retro-card.is-late{background:var(--color-late-bg)}.retro-facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:var(--text-sm)}.retro-split{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}.retro-roster{display:flex;flex-direction:column;gap:8px}.retro-card.is-selected{box-shadow:inset 3px 0 0 var(--color-accent)}.retro-sheet{border:1px solid var(--color-rule);background:var(--color-strip);padding:18px 20px 24px}.retro-form textarea{width:100%;min-height:84px;resize:vertical;font:inherit;padding:8px 10px;border:1px solid var(--color-rule);background:var(--color-paper)}.slot-desk{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;align-items:start}.slot-legend{display:flex;flex-wrap:wrap;gap:12px 18px;margin:0 0 12px;color:var(--color-ink-soft);font-size:.86rem}.slot-legend .swatch{display:inline-block;width:12px;height:12px;margin-right:6px;border:1px solid var(--color-rule);background:var(--color-strip);vertical-align:-1px}.slot-legend .swatch.heat-1{background:var(--color-mint)}.slot-legend .swatch.heat-2{background:#c8edd9}.slot-legend .swatch.late{background:var(--color-late-bg)}.slot-inspect{border:1px solid var(--color-rule);background:var(--color-strip);padding:16px;min-height:240px}.slot-inspect h2{font-family:var(--font-display);font-size:1.4rem;margin:0 0 4px}.slot-titles{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;font-style:normal}.slot-titles em{font-style:normal;font-size:.74rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-empty{color:var(--color-faint);font-size:.78rem}.slot-cell.is-picked{box-shadow:inset 0 0 0 2px var(--color-accent)}.slot-table{border:1px solid var(--color-rule);border-radius:var(--radius-md);overflow:auto;background:var(--color-strip)}.slot-head,.slot-row{display:grid;grid-template-columns:88px repeat(7,minmax(96px,1fr));min-width:760px}.slot-head{background:var(--color-paper-2);color:var(--color-muted);font-size:var(--text-xs);font-weight:600}.slot-head span,.slot-cell,.slot-name{padding:8px;border-bottom:1px solid var(--color-rule);border-right:1px solid var(--color-rule);min-width:0}.slot-name{border:0;border-bottom:1px solid var(--color-rule);border-right:1px solid var(--color-rule);background:var(--color-strip);text-align:left;display:flex;flex-direction:column}.slot-cell{display:flex;align-items:flex-start;min-height:64px;border:0;border-bottom:1px solid var(--color-rule);border-right:1px solid var(--color-rule)}.slot-count{font-family:var(--font-mono);font-size:1rem}.slot-cell.heat-1{background:var(--color-mint)}.slot-cell.heat-2{background:#c8edd9}.slot-cell.heat-3{background:#f8efdf}.slot-cell.is-late{background:var(--color-late-bg)}.slot-chip{border:0;background:var(--color-strip);border-radius:var(--radius-sm);padding:4px 6px;text-align:left;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.people-split{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:start}.people-roster{display:flex;flex-direction:column;gap:4px}.people-seat{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;border:1px solid var(--color-rule);background:var(--color-strip);text-align:left;padding:8px 10px;border-radius:var(--radius-sm)}.people-seat.is-selected{box-shadow:inset 3px 0 0 var(--color-accent)}.people-seat.has-late.is-selected{box-shadow:inset 3px 0 0 var(--color-late)}.people-dossier{min-width:0}.kanban-shop{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:10px;align-items:stretch}.kanban-live{grid-template-columns:repeat(4,minmax(160px,1fr))}.kanban-well{display:flex;flex-direction:column;gap:10px}.kanban-card.is-archive{opacity:.78}.product-board{display:flex;flex-direction:column;gap:10px}.product-col{display:grid;grid-template-columns:160px minmax(0,1fr)}.product-pipe{display:flex;flex-wrap:wrap;gap:8px;padding:10px}.pipe-ticket{display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:1px solid var(--color-rule);background:var(--color-strip);border-radius:var(--radius-sm);padding:8px 10px;text-align:left;min-width:140px;max-width:220px}.pipe-ticket.is-late{background:var(--color-late-bg)}.gantt-lane{margin-bottom:10px}.gantt-lane-name{display:flex;justify-content:space-between;font-weight:600;padding:4px 8px 6px}.gantt-empty-lane{padding:4px 8px 10px}.product-col{border:1px solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-paper-2);min-width:0;display:grid;grid-template-columns:160px minmax(0,1fr)}.product-col header{padding:12px 14px 8px;border-right:1px solid var(--color-rule)}.kanban-page{min-width:0}.kanban{display:grid;grid-template-columns:repeat(6,minmax(180px,1fr));gap:10px;align-items:stretch;min-height:calc(100vh - 168px);overflow-x:auto}.kanban-col{min-width:180px;background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:var(--radius-md);padding:8px;display:flex;flex-direction:column;min-height:calc(100vh - 168px)}.kanban-col.is-over{border-color:var(--color-accent);background:var(--color-mint)}.kanban-col header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:2px 4px}.kanban-list{display:flex;flex-direction:column;gap:8px;flex:1}.kanban-card{background:var(--color-strip);border:1px solid var(--color-rule);border-radius:8px;padding:10px;cursor:grab}.kanban-card.is-late{border-color:#e7c6c0}.kanban-card.is-busy{opacity:.6}.kanban-title{display:block;width:100%;text-align:left;border:0;background:transparent;padding:0;font-weight:600}.proj-chips{display:flex;flex-wrap:wrap;gap:6px}.proj-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-accent);background:var(--color-mint);border-radius:8px;padding:4px 8px;min-height:28px;font-size:.8rem;text-align:left}.proj-chip:hover{filter:brightness(.97)}.proj-chip.is-late{border-color:var(--color-late);background:var(--color-late-bg)}.flow-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;list-style:none;padding:0;margin:0 0 14px}.flow-steps button{width:100%;border:1px solid var(--color-rule);background:var(--color-strip);border-radius:999px;padding:6px 4px;font-size:.75rem}.flow-steps .done button{background:var(--color-mint);border-color:var(--color-accent)}.flow-steps .current button{background:var(--color-accent-deep);color:#fff;border-color:var(--color-accent-deep)}.flow-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px}.flow-facts div{border:1px solid var(--color-rule);border-radius:8px;padding:8px 10px}.flow-facts span{display:block;color:var(--color-muted);font-size:.75rem}.trail{display:flex;flex-direction:column;gap:0}.trail-lede{margin:0 0 14px}.node-trail{list-style:none;margin:0;padding:0}.node-trail li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:10px;padding:0 0 16px;position:relative}.node-trail li:not(:last-child):before{content:"";position:absolute;left:4px;top:16px;bottom:0;width:2px;background:var(--color-rule)}.node-dot{width:10px;height:10px;margin-top:5px;border-radius:99px;background:var(--color-rule);position:relative;z-index:1}.node-trail .is-done .node-dot{background:var(--color-accent)}.node-trail .is-current .node-dot{background:var(--color-accent-deep);box-shadow:0 0 0 4px var(--color-mint)}.node-trail .is-pending{color:var(--color-faint)}.node-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.node-date{font-family:var(--font-mono);font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}.node-note{margin-top:4px;font-size:.8rem;color:var(--color-warn)}.gantt-mark{position:absolute;top:0;width:2px;height:16px;background:var(--color-info)}.drawer{position:fixed;top:0;right:0;height:100vh;width:min(560px,100vw);background:var(--color-strip);border-left:1px solid var(--color-rule);z-index:21;overflow:auto;padding:24px;box-shadow:var(--shadow-sheet)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .span-2{grid-column:1 / -1}.flow-block{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-rule)}.flow-block h3{font-size:.9rem;margin:0 0 10px}.flow-block .field{margin-bottom:10px}.flow-inline{display:flex;align-items:flex-end;gap:8px}.flow-inline .field{flex:1;margin-bottom:0}.issue-add{display:flex;gap:8px;align-items:center}.issue-add input{flex:1;min-width:0;border:1px solid var(--color-rule);background:var(--color-strip);border-radius:var(--radius-sm);padding:10px 12px}.issue-add .btn{flex-shrink:0}.issue-list{list-style:none;margin:4px 0 0;padding:0}.issue-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--color-rule);padding:10px 0}.issue-title{min-width:0;font-weight:600;line-height:1.4}.issue-item.is-done .issue-title{color:var(--color-muted);font-weight:400}.issue-item .btn{flex-shrink:0;min-height:32px;padding:4px 10px}.note-item{border-top:1px solid var(--color-rule);padding:10px 0}.chart-box{height:300px;min-width:0}.chart-tip{background:var(--color-strip);border:1px solid var(--color-rule);border-radius:8px;padding:8px 10px;min-width:128px;box-shadow:0 8px 24px #1c2b2414;font-size:.8rem}.chart-tip-label{color:var(--color-muted);margin-bottom:6px}.chart-tip-row{display:flex;align-items:center;gap:6px;margin-top:4px}.chart-tip-row i{width:8px;height:8px;border-radius:99px;display:inline-block}.chart-tip-row span{color:var(--color-muted)}.chart-tip-row strong{margin-left:auto;font-variant-numeric:tabular-nums}.muted{color:var(--color-muted)}.empty{padding:32px;text-align:center;color:var(--color-muted)}.actions{display:flex;flex-wrap:wrap;gap:8px}.queue{border:1px solid var(--color-rule);border-radius:8px;padding:12px 14px;margin-bottom:8px;background:var(--color-strip)}.slip-list{display:flex;flex-direction:column;gap:10px}.slip-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(140px,1fr) 48px;gap:10px;align-items:center}.slip-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slip-track{position:relative;height:8px;background:#f3f3f3;border-radius:99px}.slip-mid{position:absolute;left:50%;top:-3px;width:1px;height:14px;background:var(--color-rule)}.slip-bar{position:absolute;top:0;height:100%;border-radius:99px}.slip-bar.late{background:var(--color-late)}.slip-bar.early{background:var(--color-accent)}.slip-num{font-family:var(--font-mono);font-size:.85rem;text-align:right}.slip-num.late{color:var(--color-late)}.slip-num.early{color:var(--color-accent-deep)}@media (max-width: 1080px){.login-page,.shell,.grid-2,.stat-strip,.form-grid,.flow-facts,.flow-steps{grid-template-columns:1fr}.rail{position:static;height:auto}.nav-list{flex-direction:row;flex-wrap:wrap}.kanban{grid-template-columns:repeat(2,minmax(180px,1fr))}.board-cols{grid-template-columns:minmax(140px,1fr) 88px 148px 96px;gap:0 8px;padding-left:12px;padding-right:12px}.clocks,.stats-split,.today-grid,.today-side,.demand-lanes,.people-split,.kanban-shop,.product-col,.brief-grid,.handoff-steps,.review-split,.cal-board,.slot-desk,.retro-split{grid-template-columns:1fr}.kanban-live{grid-template-columns:repeat(2,minmax(160px,1fr))}.demand-form{grid-template-columns:1fr}}@media (max-width: 1279px){.desk-body.is-inspecting{grid-template-columns:minmax(0,1fr)}}@media (max-width: 720px){.main{padding:14px}.cal{grid-template-columns:repeat(2,minmax(0,1fr))}.seat-job{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
