:root{--brand: #2F4858;--brand-ink: #1f3240;--brand-soft: #eef2f4;--brand-hairline: #dde3e6;--bg: #f6f7f8;--surface: #ffffff;--ink: #16222b;--ink-2: #51636d;--ink-3: #8695a0;--line: #e4e8eb;--tone-ok: #2d7a4f;--tone-ok-bg: #e9f3ed;--tone-warn: #8a6b1a;--tone-warn-bg: #f5eedb;--tone-crit: #9a2a2a;--tone-crit-bg: #f4e1e1;--tone-info: #2F4858;--tone-info-bg: #e8eef1}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"palt" 1}h1,h2,h3{margin:0;font-weight:600;letter-spacing:.01em}a{color:inherit;text-decoration:none}button{font-family:inherit}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.app-sidebar{background:var(--brand);color:#eaf0f3;padding:24px 20px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh}.app-brand{display:flex;align-items:center;gap:10px}.app-brand-mark{width:30px;height:30px;border-radius:6px;background:#eaf0f3;color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;letter-spacing:.02em}.app-brand-name{font-size:13px;font-weight:600;letter-spacing:.04em}.app-nav{display:flex;flex-direction:column;gap:2px;margin-top:4px}.app-nav-item{padding:9px 12px;border-radius:6px;font-size:13px;color:#c4d0d6;transition:background .12s ease,color .12s ease}.app-nav-item:hover{background:#ffffff0f;color:#fff}.app-nav-item--active{background:#ffffff1f;color:#fff}.app-sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding-top:14px;font-size:11px;color:#a8b7bf;display:flex;justify-content:space-between;align-items:center}.app-sidebar-foot-value{color:#fff;font-weight:600;letter-spacing:.03em}.app-main{padding:28px 32px 48px;max-width:1280px}.h-page-hdr{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px;gap:16px}.h-page-title{font-size:22px;color:var(--brand-ink)}.h-page-sub{font-size:12px;color:var(--ink-3);margin-top:4px}.h-page-meta{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:10px}.h-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.h-metric{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px 16px}.h-metric-label{font-size:11px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-weight:600}.h-metric-value{font-size:24px;font-weight:700;color:var(--brand-ink);margin-top:6px;line-height:1.2;letter-spacing:-.01em}.h-metric-sub{font-size:11px;color:var(--ink-3);margin-top:4px}.h-metric--warn .h-metric-value{color:var(--tone-warn)}.h-metric--critical .h-metric-value{color:var(--tone-crit)}.h-metric--ok .h-metric-value{color:var(--tone-ok)}.h-section{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:16px}.h-section-hdr{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.h-section-title{font-size:14px;color:var(--brand-ink)}.h-section-sub{font-size:11px;color:var(--ink-3);margin-top:2px}.h-section-body{padding:16px 18px}.h-band-list{display:flex;flex-direction:column;gap:10px}.h-band{border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:#fbfcfc}.h-band-head{display:flex;gap:12px;align-items:center;font-size:12px;margin-bottom:8px}.h-band-id{font-weight:700;color:var(--brand-ink);font-family:SF Mono,Menlo,Consolas,monospace}.h-band-label{color:var(--ink-2);flex:1}.h-band-threshold{color:var(--ink-3);font-family:SF Mono,Menlo,Consolas,monospace}.h-band-track{height:6px;border-radius:3px;background:var(--brand-hairline);overflow:hidden}.h-band-fill{height:100%;background:var(--brand);border-radius:3px}.h-band--watch .h-band-fill{background:var(--tone-info)}.h-band--warn{background:var(--tone-warn-bg)}.h-band--warn .h-band-fill{background:var(--tone-warn)}.h-band--critical{background:var(--tone-crit-bg)}.h-band--critical .h-band-fill{background:var(--tone-crit)}.h-checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.h-check{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fbfcfc;font-size:13px}.h-check--done{background:var(--tone-ok-bg);border-color:#cfe3d6}.h-check-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;background:var(--brand-hairline);color:var(--ink-2);font-size:10px;font-weight:700;letter-spacing:.02em}.h-check--done .h-check-mark{background:var(--tone-ok);color:#fff}.h-check-id{font-family:SF Mono,Menlo,Consolas,monospace;color:var(--ink-3);margin-right:6px}.h-table{width:100%;border-collapse:collapse;font-size:13px}.h-table th,.h-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.h-table th{font-size:11px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-weight:600;background:var(--brand-soft)}.h-table tbody tr:hover{background:#fafbfb}.h-mono{font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;color:var(--ink-2)}.h-sev{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.03em}.h-sev--high{background:var(--tone-crit-bg);color:var(--tone-crit)}.h-sev--medium{background:var(--tone-warn-bg);color:var(--tone-warn)}.h-sev--low{background:var(--tone-info-bg);color:var(--tone-info)}.h-sev--resolved{background:var(--tone-ok-bg);color:var(--tone-ok)}.h-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;background:var(--brand-soft);color:var(--brand)}.h-status--active{background:var(--tone-ok-bg);color:var(--tone-ok)}.h-status--designing{background:var(--tone-info-bg);color:var(--tone-info)}.h-status--cancelled,.h-status--shelved_until_phase4,.h-status--merged_into_llm_saas,.h-status--merged_into_vocational_school{background:#eef0f1;color:var(--ink-3)}.h-status--not_started{background:var(--tone-warn-bg);color:var(--tone-warn)}.h-blocker{color:var(--tone-crit);font-size:12px}.h-progress{position:relative;width:120px;height:14px;background:var(--brand-hairline);border-radius:7px;overflow:hidden}.h-progress-fill{height:100%;background:var(--brand);border-radius:7px}.h-progress-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff;font-weight:600;mix-blend-mode:difference}.h-emp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.h-emp-card{background:#fbfcfc;border:1px solid var(--line);border-radius:6px;padding:12px 14px}.h-emp-name{font-size:13px;font-weight:600;color:var(--brand-ink)}.h-emp-dept{font-size:11px;color:var(--ink-3);margin-top:2px;letter-spacing:.03em;text-transform:uppercase}.h-emp-task{font-size:12px;color:var(--ink-2);margin-top:8px}.h-emp-card--idle{background:var(--brand-soft)}.h-empty{padding:24px;text-align:center;color:var(--ink-3);font-size:13px;border:1px dashed var(--line);border-radius:6px}.h-empty--err{color:var(--tone-crit);border-color:#e5c2c2;background:#fbf2f2}.h-note{font-size:13px;color:var(--ink-2);line-height:1.7}.h-desc{font-size:12px;color:var(--ink-2);max-width:420px}.h-btn{border:1px solid var(--brand);background:var(--surface);color:var(--brand);padding:4px 10px;font-size:12px;border-radius:4px;cursor:pointer;transition:background .12s ease}.h-btn:hover{background:var(--brand-soft)}
