@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_e896d9{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_e896d9{--font-mono-google:"JetBrains Mono","JetBrains Mono Fallback"}

/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */:root{--ink:#1a1814;--ink-soft:#4a4538;--ink-mute:#8a8478;--paper:#f7f3eb;--paper-2:#faf7f0;--paper-d:#efe9dc;--paper-dd:#e4dcc8;--rule:#d8cfb8;--accent:#b54734;--accent-d:#8e3526;--gold:#a8862a;--olive:#6b6a3d;--leaf:#4a6541;--sky:#486284;--plum:#6f3d5f;--shadow:0 1px 0 #1a18140f,0 4px 14px #1a18140a;--shadow-lg:0 1px 0 #1a181414,0 12px 32px #1a181414;--font-display:"Cormorant Garamond","Noto Serif SC",serif;--font-body:"Noto Serif SC","Cormorant Garamond",serif;--font-mono:"JetBrains Mono",ui-monospace,monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.55}.app,body{min-height:100vh}.app{grid-template-columns:240px 1fr;display:grid}.sidebar{background:var(--paper-2);border-right:1px solid var(--rule);flex-direction:column;height:100vh;padding:28px 0 32px;display:flex;position:sticky;top:0;overflow-y:auto}.sb-brand{margin-bottom:16px;padding:0 24px 22px}.sb-brand,.sb-loc-switch{border-bottom:1px solid var(--rule)}.sb-loc-switch{margin-bottom:18px;padding:0 18px 18px}.sb-loc-label{font-family:var(--font-mono);letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase;margin-bottom:8px;font-size:9px}.sb-loc-btns{border:1px solid var(--rule);background:var(--paper);gap:0;display:flex}.sb-loc-btn{font-family:var(--font-mono);letter-spacing:.05em;cursor:pointer;color:var(--ink-soft);border:none;border-right:1px solid var(--rule);background:0 0;flex:1;padding:7px 4px;font-size:10px;transition:all .15s}.sb-loc-btn:last-child{border-right:none}.sb-loc-btn:hover{color:var(--ink);background:var(--paper-2)}.sb-loc-btn.active{background:var(--ink);color:var(--paper)}.sb-brand .title{font-family:var(--font-display);letter-spacing:-.01em;font-size:26px;font-style:italic;font-weight:500;line-height:1.05}.sb-brand .title .ampersand{color:var(--accent)}.sb-brand .sub{font-family:var(--font-mono);letter-spacing:.18em;color:var(--ink-mute);text-transform:uppercase;margin-top:8px;font-size:9px}.sb-group{margin-bottom:18px;padding:0 12px}.sb-group-label{font-family:var(--font-mono);letter-spacing:.2em;color:var(--ink-mute);text-transform:uppercase;padding:0 12px 8px;font-size:9px}.sb-item{font-family:var(--font-display);color:var(--ink-soft);cursor:pointer;letter-spacing:-.005em;border-left:2px solid #0000;align-items:baseline;gap:10px;padding:9px 12px;font-size:15px;transition:all .15s;display:flex}.sb-item.active,.sb-item:hover{color:var(--ink);background:var(--paper)}.sb-item.active{border-left-color:var(--accent);font-weight:600}.sb-item .num{font-family:var(--font-mono);color:var(--ink-mute);letter-spacing:.05em;min-width:18px;font-size:9px}.sb-item.active .num{color:var(--accent)}.sb-item .badge-pending{border:1px solid var(--rule);text-transform:uppercase;margin-left:auto;padding:2px 5px;font-size:8px}.sb-footer,.sb-item .badge-pending{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-mute)}.sb-footer{border-top:1px solid var(--rule);margin-top:auto;padding:18px 24px 0;font-size:9px;line-height:1.7}.sb-footer .row{justify-content:space-between;display:flex}.topbar{border-bottom:1px solid var(--rule);background:var(--paper);flex-wrap:wrap;align-items:center;gap:24px;padding:22px 36px 18px;display:flex}.topbar .crumb{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:22px;font-style:italic}.topbar .crumb .crumb-num{color:var(--accent);font-style:normal;font-family:var(--font-mono);letter-spacing:.1em;margin-right:8px;font-size:11px}.meta-strip{font-family:var(--font-mono);color:var(--ink-soft);letter-spacing:.05em;gap:24px;margin-left:auto;font-size:10px;display:flex}.meta-strip .key{color:var(--ink-mute);margin-right:6px}.meta-strip .val{color:var(--ink);font-weight:500}.mode-bar{background:var(--paper-2);border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:18px;padding:12px 36px;display:flex}.mode-switch{border:1px solid var(--rule);font-family:var(--font-mono);letter-spacing:.1em;background:var(--paper);align-items:center;gap:8px;padding:3px 3px 3px 10px;font-size:10px;display:inline-flex}.mode-switch .ms-label{color:var(--ink-mute);text-transform:uppercase;border-right:1px solid var(--rule);padding-right:8px}.mode-switch .ms-btn{font:inherit;cursor:pointer;color:var(--ink-soft);letter-spacing:.08em;background:0 0;border:none;padding:5px 10px}.mode-switch .ms-btn.active{background:var(--ink);color:var(--paper)}.mode-switch .ms-btn:not(.active):hover{background:var(--paper-2);color:var(--ink)}.mode-hint{font-family:var(--font-mono);color:var(--ink-mute);letter-spacing:.06em;max-width:600px;font-size:10px;line-height:1.5}main{max-width:1400px;padding:32px 36px 80px}.view{display:none}.view.active{animation:fade .25s;display:block}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.provider-tabs{border-bottom:1px solid var(--rule);gap:0;margin-bottom:22px;display:flex}.prov-tab{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--ink-mute);border-bottom:2px solid #0000;align-items:center;gap:8px;padding:11px 18px;font-size:11px;transition:all .15s;display:flex}.prov-tab:hover{color:var(--ink)}.prov-tab.active{color:var(--ink);border-bottom-color:var(--accent)}.prov-status{font-size:12px;line-height:1}.prov-status.ok{color:#4a6541}.prov-status.pending{color:var(--ink-mute);opacity:.5}.prov-panel.hidden{display:none}.prod-group{margin-bottom:28px}.prod-group-head{border-bottom:1px solid var(--rule);align-items:baseline;gap:14px;margin-bottom:14px;padding-bottom:10px;display:flex}.prod-group-head .title{font-family:var(--font-display);letter-spacing:-.01em;font-size:22px;font-style:italic;font-weight:500}.prod-group-head .meta{font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-mute);text-transform:uppercase;font-size:10px}.prod-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.prod-card{border:1px solid var(--rule);background:var(--paper);padding:14px 16px;transition:all .15s}.prod-card:hover{border-color:var(--ink);box-shadow:0 1px 0 var(--ink)}.prod-card .app-name{font-family:var(--font-display);letter-spacing:-.005em;word-break:break-word;margin-bottom:4px;font-size:15px;font-weight:500}.prod-card .core{font-family:var(--font-mono);color:var(--ink-mute);letter-spacing:.04em;margin-bottom:8px;font-size:10px}.prod-card .core.diff{color:var(--accent)}.prod-card .tags{flex-wrap:wrap;gap:6px;display:flex}.prod-card .tag{font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-mute);border:1px solid var(--rule);text-transform:uppercase;padding:2px 6px;font-size:9px}.prod-card .tag.team{color:var(--accent);border-color:var(--accent)}.placeholder-card{border:1px dashed var(--rule);text-align:center;background:var(--paper-2);margin-top:20px;padding:60px 40px}.placeholder-card h3{font-family:var(--font-display);margin-bottom:12px;font-size:24px;font-style:italic;font-weight:500}.placeholder-card p{font-family:var(--font-mono);letter-spacing:.05em;color:var(--ink-mute);max-width:520px;margin:0 auto 16px;font-size:11px;line-height:1.8}.placeholder-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:32px;display:grid}.placeholder-stat{border:1px solid var(--rule);background:var(--paper);text-align:left;padding:18px}.placeholder-stat .lbl{font-family:var(--font-mono);letter-spacing:.15em;color:var(--ink-mute);text-transform:uppercase;margin-bottom:8px;font-size:9px}.placeholder-stat .val{font-family:var(--font-display);color:var(--ink-mute);font-size:28px;font-style:italic}.placeholder-stat .val.dash:after{content:"—"}.section-head{border-bottom:1px solid var(--rule);align-items:baseline;gap:18px;margin-bottom:18px;padding-bottom:10px;display:flex}.section-head h2{font-family:var(--font-display);letter-spacing:-.01em;font-size:28px;font-style:italic;font-weight:500}.section-head .crumb{font-family:var(--font-mono);letter-spacing:.15em;color:var(--ink-mute);text-transform:uppercase;font-size:10px}.section-head .actions{align-items:center;gap:10px;margin-left:auto;display:flex}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:32px;display:grid}.kpi{background:var(--paper-d);border:1px solid var(--rule);padding:18px 20px 20px;position:relative}.kpi:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;top:8px;right:8px}.kpi .label{font-family:var(--font-mono);letter-spacing:.15em;color:var(--ink-mute);text-transform:uppercase;margin-bottom:8px;font-size:10px}.kpi .value{font-family:var(--font-display);letter-spacing:-.02em;font-size:42px;font-weight:500;line-height:1}.kpi .sub{font-family:var(--font-mono);color:var(--ink-soft);margin-top:6px;font-size:10px}.filter-bar{background:var(--paper-d);border:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding:14px 18px;display:flex}.filter-bar label{font-family:var(--font-mono);letter-spacing:.15em;color:var(--ink-mute);text-transform:uppercase;margin-right:6px;font-size:10px}.filter-bar input[type=text],.filter-bar select{font-family:var(--font-mono);border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:0;outline:none;padding:6px 10px;font-size:12px;transition:border-color .15s}.filter-bar input:focus,.filter-bar select:focus{border-color:var(--accent)}.filter-bar .sep{background:var(--rule);width:1px;height:18px}.btn{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--paper);cursor:pointer;border:none;padding:7px 14px;font-size:10px;transition:background .15s}.btn:hover{background:var(--accent)}.btn.ghost{color:var(--ink);border:1px solid var(--ink);background:0 0}.btn.ghost:hover{background:var(--ink);color:var(--paper)}.btn.accent{background:var(--accent)}.btn.accent:hover{background:var(--accent-d)}.btn-tiny{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--rule);cursor:pointer;background:0 0;padding:4px 8px;font-size:9px;transition:all .15s}.btn-tiny:hover{color:var(--paper);background:var(--ink);border-color:var(--ink)}.badge{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border:1px solid;padding:3px 7px;font-size:9px;display:inline-block}.badge-fulltime{color:#4a6541}.badge-contractor{color:#a8862a}.badge-intern{color:#486284}.badge-empty,.badge-left{color:var(--ink-mute)}.badge-empty{opacity:.6;border-style:dashed}.roster-summary{border-bottom:1px solid var(--rule);gap:0;display:flex}.ros-summary-item{border-right:1px solid var(--rule);flex:1;align-items:baseline;gap:10px;padding:16px 18px;display:flex}.ros-summary-item:last-child{border-right:none}.ros-summary-key{font-family:var(--font-mono);color:var(--ink-mute);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.ros-summary-val{font-family:var(--font-display);color:var(--ink);font-size:24px;font-style:italic;font-weight:500}.ros-summary-pct{font-family:var(--font-mono);color:var(--ink-soft);font-size:10px}.table-wrap{background:var(--paper);border:1px solid var(--rule);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{background:var(--paper-dd);border-bottom:1px solid var(--ink);text-align:left;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;z-index:1;padding:12px 14px;font-size:10px;position:sticky;top:0}tbody td.num,thead th.num{text-align:right;font-variant-numeric:tabular-nums}tbody td{border-bottom:1px solid var(--paper-dd);vertical-align:top;padding:10px 14px}tbody tr:hover{background:var(--paper-d)}tbody td.mono{font-size:12px}tbody td.mono,td.heat{font-family:var(--font-mono)}td.heat{text-align:right;font-variant-numeric:tabular-nums;border-left:1px solid var(--paper-d);padding:8px 10px;font-size:11px}td.heat.h0{color:var(--ink-mute);opacity:.4}td.heat .bar{background:var(--accent);height:2px;margin-top:3px;display:block}.pill{font-family:var(--font-mono);letter-spacing:.05em;border-radius:2px;padding:2px 8px;font-size:10px;display:inline-block}.pill.ontime{color:var(--leaf);background:#4a654126}.pill.late{color:var(--accent);background:#b547341f}.pill.dept{background:var(--paper-dd);color:var(--ink-soft)}.two-col{grid-template-columns:2fr 1fr;gap:24px;display:grid}@media (max-width:1100px){.two-col{grid-template-columns:1fr}}.panel{background:var(--paper);border:1px solid var(--rule);margin-bottom:22px;padding:22px 24px}.panel h3{font-family:var(--font-display);border-bottom:1px dashed var(--rule);margin-bottom:14px;padding-bottom:8px;font-size:20px;font-style:italic;font-weight:500}.chart{background:var(--paper);border:1px solid var(--rule);width:100%;margin-bottom:24px;padding:18px 22px 12px}.chart-title{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.chart-title h3{font-family:var(--font-display);font-size:22px;font-style:italic;font-weight:500}.chart-title .note{color:var(--ink-mute);letter-spacing:.1em}.chart-title .note,svg.bars{font-family:var(--font-mono);font-size:10px}svg.bars{width:100%;height:auto;display:block}svg.bars .bar-rect{transition:fill .15s}svg.bars .bar-rect:hover{fill:var(--accent-d)}svg.bars text{fill:var(--ink-soft)}svg.bars text.value{fill:var(--ink);font-weight:500}svg.bars line.axis{stroke:var(--rule);stroke-width:1px}.legend{font-family:var(--font-mono);color:var(--ink-soft);flex-wrap:wrap;gap:12px 18px;margin-top:14px;font-size:10px;display:flex}.legend .item{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.legend .item .sw{width:10px;height:10px}.legend .item.dim{opacity:.3}.person-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.person-card{border:1px solid var(--rule);background:var(--paper);cursor:pointer;padding:14px 16px;transition:all .15s;position:relative}.person-card:hover{border-color:var(--ink);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.person-card .name{font-family:var(--font-display);font-size:22px;font-weight:500}.person-card .dept{font-family:var(--font-mono);color:var(--ink-mute);letter-spacing:.1em;text-transform:uppercase;margin-top:2px;font-size:10px}.person-card .stats{border-top:1px dashed var(--rule);font-family:var(--font-mono);gap:14px;margin-top:10px;padding-top:10px;font-size:11px;display:flex}.person-card .stats .s{flex-direction:column;display:flex}.person-card .stats .s .n{color:var(--ink);font-size:16px;font-weight:500}.person-card .stats .s .l{color:var(--ink-mute);letter-spacing:.1em;font-size:9px}.modal-bg{z-index:100;background:#1a181480;justify-content:center;align-items:flex-start;padding:60px 20px;display:none;position:fixed;inset:0;overflow-y:auto}.modal-bg.open{display:flex}.modal{background:var(--paper);border:1px solid var(--ink);width:100%;max-width:980px;box-shadow:var(--shadow-lg);padding:32px 40px;position:relative}.modal h2{font-family:var(--font-display);font-size:36px;font-style:italic;font-weight:500}.modal .close{cursor:pointer;color:var(--ink-mute);font-size:24px;font-family:var(--font-mono);background:0 0;border:none;position:absolute;top:18px;right:22px}.modal .close:hover{color:var(--accent)}.editor textarea{width:100%;min-height:80px;font-family:var(--font-mono);border:1px solid var(--rule);background:var(--paper);color:var(--ink);resize:vertical;outline:none;padding:10px;font-size:12px}.editor textarea:focus{border-color:var(--accent)}.editor .form-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px;display:grid}.editor .form-row.single{grid-template-columns:1fr}.editor label.field{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:4px;font-size:10px;display:block}.editor input[type=text],.editor select{width:100%;font-family:var(--font-mono);border:1px solid var(--rule);background:var(--paper);outline:none;padding:7px 10px;font-size:12px}.editor input[type=text]:focus,.editor select:focus{border-color:var(--accent)}.parsed-list{background:var(--paper-d);border:1px dashed var(--rule);font-family:var(--font-mono);margin-top:10px;padding:10px 12px;font-size:11px}.parsed-list .row{justify-content:space-between;padding:2px 0;display:flex}.parsed-list .row.unmatched{color:var(--accent)}.parsed-list .total{border-top:1px solid var(--rule);margin-top:6px;padding-top:6px;font-weight:600}footer{border-top:2px solid var(--ink);letter-spacing:.1em;color:var(--ink-mute);text-transform:uppercase;justify-content:space-between;align-items:center;padding:20px 36px;font-size:10px;display:flex}.txt-mono,footer{font-family:var(--font-mono)}.txt-accent{color:var(--accent)}.txt-mute{color:var(--ink-mute)}.hide{display:none!important}.spacer{flex:1}.heatmap-wrap{overflow-x:auto}.heatmap-wrap table{min-width:1200px}.heatmap-wrap thead th.week{text-align:center;min-width:28px;padding:8px 4px;font-size:9px}.heatmap-wrap tbody td.heat{text-align:center;min-width:28px;padding:4px}.heatmap-wrap tbody td.heat.submitted{background:var(--ink);color:var(--paper)}.heatmap-wrap tbody td.heat.late{background:var(--accent);color:var(--paper)}.heatmap-wrap tbody td.heat.miss{background:var(--paper-dd);color:var(--ink-mute)}.banner{background:var(--accent);color:var(--paper);font-family:var(--font-mono);letter-spacing:.1em;align-items:center;gap:14px;margin-bottom:16px;padding:10px 18px;font-size:11px;display:none}.banner.show{display:flex}.banner button{background:var(--paper);color:var(--accent);font-family:var(--font-mono);cursor:pointer;border:none;padding:4px 10px;font-size:10px}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.kpi-grid{grid-template-columns:repeat(2,1fr)}}.login-page{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.login-card{background:var(--paper);border:1px solid var(--rule);width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:36px 32px 32px}.login-brand{border-bottom:1px solid var(--rule);margin-bottom:28px;padding-bottom:20px}.login-brand .title{font-family:var(--font-display);font-size:28px;font-style:italic;font-weight:500;line-height:1.05}.login-brand .title .ampersand{color:var(--accent)}.login-brand .sub{font-family:var(--font-mono);letter-spacing:.18em;color:var(--ink-mute);text-transform:uppercase;margin-top:8px;font-size:9px}.login-card h1{font-family:var(--font-display);margin-bottom:6px;font-size:24px;font-style:italic;font-weight:500}.login-hint{letter-spacing:.05em;margin-bottom:24px;font-size:11px}.login-card label.field,.login-hint{font-family:var(--font-mono);color:var(--ink-mute)}.login-card label.field{letter-spacing:.12em;text-transform:uppercase;margin-top:14px;margin-bottom:6px;font-size:10px;display:block}.login-card input[type=email],.login-card input[type=password],.settings-form input[type=password]{width:100%;font-family:var(--font-mono);border:1px solid var(--rule);background:var(--paper);outline:none;padding:10px 12px;font-size:13px}.login-card input:focus,.settings-form input:focus{border-color:var(--accent)}.login-error{color:var(--accent)}.login-error,.login-success{font-family:var(--font-mono);margin-top:14px;font-size:11px}.login-success{color:var(--leaf)}.login-btn{width:100%;margin-top:22px;padding:11px}.settings-form label.field{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin-top:14px;margin-bottom:6px;font-size:10px;display:block}.settings-form input[type=password]{max-width:360px}@media (max-width:768px){.app{grid-template-columns:1fr}.sidebar{z-index:100;transition:left .2s;position:fixed;left:-260px}.sidebar.open{left:0}.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.kpi-grid{grid-template-columns:1fr}main{padding:20px 16px 60px}.topbar{padding:16px 20px}}