@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&family=Syne:wght@600;700;800&display=swap";:root,[data-theme=light]{--bg:#fff;--bg-elevated:#fff;--bg-panel:#f4f6f8;--ink:#0f172a;--ink-muted:#64748b;--border:#e2e8f0;--amber:#0f766e;--amber-dim:#0f766e1f;--accent:#0f766e;--accent-strong:#115e59;--teal:#0f766e;--teal-dim:#0f766e1a;--warn:#dc2626;--good:#059669;--sidebar-bg:#fff;--sidebar-text:#0f172a;--sidebar-muted:#64748b;--sidebar-border:#e2e8f0;--sidebar-hover:#0f172a0d;--hex-locked:#cbd5e1;--hex-not-started:#94a3b8;--hex-in-progress:#c2410c;--hex-done:#0f766e;--shadow:0 1px 2px #0f172a0a, 0 8px 24px #0f172a0d;--shadow-hover:0 6px 20px #0f172a14;--ease:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--font-display:"Syne", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", monospace}[data-theme=dark]{--bg:#0a0e14;--bg-elevated:#121820;--bg-panel:#151c26;--ink:#e8edf2;--ink-muted:#8b95a3;--border:#243040;--amber:#f59e0b;--amber-dim:#f59e0b24;--teal:#2dd4bf;--teal-dim:#2dd4bf1f;--warn:#f87171;--good:#34d399;--sidebar-bg:#060a0f;--sidebar-text:#e8edf2;--sidebar-muted:#6b7785;--sidebar-border:#1a2330;--sidebar-hover:#ffffff0f;--hex-locked:#2a3544;--hex-not-started:#3d4f63;--hex-in-progress:#f59e0b;--hex-done:#2dd4bf;--shadow:0 8px 32px #0006;--shadow-hover:0 12px 40px #00000080;--ease:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);min-height:100vh;transition:background-color .35s var(--ease), color .35s var(--ease);margin:0;line-height:1.55}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-display);margin:0 0 .5rem;font-weight:700;line-height:1.2}h1{font-size:1.75rem}h2{font-size:1.25rem}h3{font-size:1rem}p{margin:0 0 .75rem}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono);background:var(--bg-panel);border-radius:4px;padding:.15em .4em;font-size:.9em}.app-shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar-bg);color:var(--sidebar-text);border-right:1px solid var(--sidebar-border,var(--border));height:100vh;transition:background-color .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease);flex-direction:column;padding:1.5rem 1rem;display:flex;position:sticky;top:0}.sidebar__brand{align-items:center;gap:.75rem;margin-bottom:2rem;display:flex}.sidebar__logo{color:var(--amber);font-size:1.5rem}.sidebar__tag{color:var(--sidebar-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;display:block}.sidebar__nav{flex-direction:column;flex:1;gap:.25rem;display:flex}.nav-link{color:var(--sidebar-muted);font-family:var(--font-body);text-align:left;cursor:pointer;transition:background-color .22s var(--ease), color .22s var(--ease), transform .22s var(--ease), box-shadow .22s var(--ease);background:0 0;border:none;border-radius:10px;padding:.65rem .8rem;font-size:.9rem}.nav-link:hover{background:var(--sidebar-hover);color:var(--sidebar-text);transform:translate(2px)}.nav-link:active{transform:translate(1px)scale(.99)}.nav-link--active{background:var(--amber-dim);color:var(--amber);box-shadow:inset 3px 0 0 var(--amber);font-weight:600}.sidebar__footer{color:var(--sidebar-muted);border-top:1px solid var(--sidebar-border,var(--border));padding-top:1rem;font-size:.75rem}.main-content{max-width:1200px;padding:2rem 2.5rem 4rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-subtitle{color:var(--ink-muted);font-size:.95rem}.panel{background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow);transition:transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease), background-color .35s var(--ease);border-radius:14px;margin-bottom:1rem;padding:1.25rem 1.5rem}.panel:hover{box-shadow:var(--shadow-hover)}.panel--accent{border-color:var(--amber);background:linear-gradient(135deg, var(--bg-elevated), var(--amber-dim))}.panel--warn{border-color:var(--warn)}.panel--muted{opacity:.95}.panel__header{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.muted{color:var(--ink-muted);font-size:.9rem}.lead{font-size:1.05rem}.text-warn{color:var(--warn)}.text-good{color:var(--good)}.kpi-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin-bottom:.2rem;font-size:.7rem;display:block}.kpi-value{font-family:var(--font-display);color:var(--amber);font-size:1.75rem;font-weight:700}.kpi-value--xl{font-size:2.5rem}.kpi-value--sm{font-size:1.1rem}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;display:grid}.cockpit__grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.cockpit__overall{text-align:right}.streak-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;grid-row:span 2;padding:1.5rem;position:relative;overflow:hidden}.streak-panel__glow{background:radial-gradient(circle, var(--amber-dim), transparent 70%);pointer-events:none;width:200px;height:200px;position:absolute;top:-40%;right:-20%}.streak-panel[data-tone=good]{border-color:var(--good)}.streak-panel[data-tone=warn]{border-color:var(--amber)}.streak-panel[data-tone=bad]{border-color:var(--warn)}.streak-panel__label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);font-size:.75rem}.streak-panel__count{font-family:var(--font-display);color:var(--amber);margin:.25rem 0;font-size:4rem;font-weight:800;line-height:1}.streak-panel__status{margin-bottom:.5rem;font-weight:600}.streak-panel__detail{color:var(--ink-muted);font-size:.9rem}.streak-panel__rules{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.25rem;font-size:.85rem;display:grid}.streak-panel__rules dt{color:var(--teal);font-weight:600}.streak-panel__rules dd{color:var(--ink-muted);margin:0}.spark-chart{align-items:flex-end;gap:.5rem;height:100px;margin-top:.5rem;display:flex}.spark-chart__col{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.spark-chart__bar{background:linear-gradient(to top, var(--teal), var(--amber));border-radius:4px 4px 0 0;width:100%;max-width:32px;min-height:4px;margin-top:auto}.spark-chart__label{color:var(--ink-muted);margin-top:.25rem;font-size:.65rem}.pace-slider{margin-top:1rem;font-size:.85rem;display:block}.pace-slider input[type=range]{width:100%;accent-color:var(--amber);margin:.5rem 0}.pace-slider__value{color:var(--amber);font-weight:600}.hex-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.hex{aspect-ratio:1;clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%);cursor:pointer;font-family:var(--font-body);color:#fff;background:var(--hex-not-started);border:none;flex-direction:column;justify-content:center;align-items:center;padding:1rem .5rem;transition:transform .15s,filter .15s;display:flex}.hex--locked{background:var(--hex-locked);color:var(--ink-muted)}.hex--not_started{background:var(--hex-not-started)}.hex--in_progress{background:var(--hex-in-progress)}.hex--done{background:var(--hex-done)}.hex__num{font-family:var(--font-display);font-size:1.25rem;font-weight:800}.hex__title{text-align:center;margin:.2rem 0;font-size:.65rem;line-height:1.2}.hex__metric{font-family:var(--font-mono);opacity:.9;font-size:.7rem}.hex__pct{opacity:.8;font-size:.6rem}.hex-summary{margin-top:0}.summary-dl{grid-template-columns:auto 1fr;gap:.25rem 1rem;font-size:.9rem;display:grid}.summary-dl dt{color:var(--ink-muted);font-weight:500}.summary-dl dd{margin:0}.kanban{grid-template-columns:repeat(4,1fr);gap:.75rem;min-height:320px;margin-bottom:1.5rem;display:grid}.kanban__col{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:.75rem}.kanban__col-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin-bottom:.75rem;font-size:.75rem}.kanban__cards{flex-direction:column;gap:.5rem;display:flex}.topic-card{background:var(--bg-elevated);border:1px solid var(--border);text-align:left;cursor:pointer;font-family:var(--font-body);color:var(--ink);border-radius:8px;padding:.6rem .75rem;transition:border-color .15s}.topic-card:hover{border-color:var(--teal)}.topic-card__title{font-size:.85rem;font-weight:500;display:block}.topic-card__notes{color:var(--ink-muted);margin:.35rem 0 0;font-size:.75rem}.badge{text-transform:uppercase;letter-spacing:.04em;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;padding:.2em .5em;font-size:.65rem;font-weight:600;display:inline-block}.badge--teal{background:var(--teal-dim);color:var(--teal);border-color:var(--teal)}.badge--warn{color:var(--warn);border-color:var(--warn);background:#fef2f2}[data-theme=dark] .badge--warn{background:#450a0a44}.badge--role{margin-left:.5rem}.badge--primary{color:var(--teal)}.badge--secondary{color:var(--ink-muted)}.badge--reference{color:var(--amber)}.btn{font-family:var(--font-body);cursor:pointer;border:1px solid #0000;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:filter .15s}.btn:hover{filter:brightness(1.08)}.btn--primary{background:var(--amber);color:#0a0e14;border-color:var(--amber)}.btn--secondary{background:var(--teal-dim);color:var(--teal);border-color:var(--teal)}.btn--ghost{color:var(--ink-muted);border-color:var(--border);background:0 0}.btn--warn{background:var(--warn);color:#fff}.btn-icon{cursor:pointer;color:var(--ink-muted);background:0 0;border:none;font-size:1.5rem;line-height:1}.toggle-group{flex-wrap:wrap;gap:.25rem;display:flex}.toggle-btn{font-family:var(--font-body);border:1px solid var(--border);background:var(--bg-panel);color:var(--ink-muted);cursor:pointer;border-radius:6px;padding:.4rem .75rem;font-size:.85rem}.toggle-btn--active{background:var(--amber-dim);color:var(--amber);border-color:var(--amber);font-weight:600}label{margin-bottom:.75rem;font-size:.85rem;display:block}input[type=text],input[type=number],input[type=date],select,textarea{width:100%;font-family:var(--font-body);background:var(--bg);border:1px solid var(--border);color:var(--ink);border-radius:6px;margin-top:.35rem;padding:.5rem .65rem;font-size:.9rem;display:block}.form-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:1rem;display:grid}.form-error{color:var(--warn);font-size:.85rem}.form-hint{color:var(--ink-muted);font-size:.8rem}.phase-select{max-width:240px}.action-row{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.modal-backdrop{z-index:100;background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elevated);border:1px solid var(--border);width:100%;max-width:480px;box-shadow:var(--shadow);border-radius:12px}.modal__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal__body{padding:1.25rem}.modal__footer{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.phase-detail__badges{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.content-list{margin:0;padding-left:1.25rem}.content-list li{margin-bottom:.35rem}.resource-list{margin:0;padding:0;list-style:none}.resource-list li{border-bottom:1px solid var(--border);padding:.5rem 0}.project-block{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1rem}.project-block__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.checklist{margin:0;padding:0;list-style:none}.checklist label{cursor:pointer;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.checklist input{margin-top:.25rem}.data-table{border-collapse:collapse;width:100%;margin-bottom:1rem;font-size:.85rem}.data-table th,.data-table td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.5rem .65rem}.data-table th{background:var(--bg-panel);font-weight:600}.meta-dl{grid-template-columns:140px 1fr;gap:.5rem 1rem;display:grid}.meta-dl dt{color:var(--teal);font-weight:600}.meta-dl dd{margin:0}.two-col{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.arch-list{font-family:var(--font-mono);padding:0;font-size:.85rem;list-style:none}.arch-list li{background:var(--bg-panel);border-left:3px solid var(--teal);border-radius:0 6px 6px 0;margin-bottom:.35rem;padding:.5rem .75rem}.resource-library{gap:.75rem;padding:0;list-style:none;display:grid}.resource-library a{font-weight:600}.version-note{color:var(--ink-muted);font-size:.85rem;line-height:1.6}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;gap:.5rem;height:auto;position:static}.sidebar__nav{flex-flow:wrap;flex:unset}.sidebar__footer{display:none}.cockpit__grid{grid-template-columns:1fr}.streak-panel{grid-row:auto}.kanban{grid-template-columns:1fr 1fr}.two-col,.meta-dl{grid-template-columns:1fr}}@media (width<=600px){.main-content{padding:1rem}.kanban{grid-template-columns:1fr}}@keyframes view-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.view-enter{animation:view-enter .38s var(--ease-out) both}.panel,.streak-panel,.kanban__col,.topic-card,.hex,.btn,.toggle-btn,.nav-link,.modal,input,select,textarea,.pace-slider input[type=range]{transition:background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .28s var(--ease), transform .28s var(--ease), filter .25s var(--ease), opacity .25s var(--ease)}.panel:hover,.streak-panel:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.nav-link:hover{color:var(--sidebar-text);transform:translate(2px);background:var(--sidebar-hover)!important}.nav-link--active{box-shadow:inset 3px 0 0 var(--amber)}.btn:hover{filter:brightness(1.06);box-shadow:var(--shadow);transform:translateY(-1px)}.btn:active{filter:brightness(.98);transform:translateY(0)scale(.98)}.btn--primary{box-shadow:inset 0 1px #fff3}.toggle-btn:hover{border-color:var(--amber);color:var(--ink);transform:translateY(-1px)}.topic-card:hover{border-color:var(--teal);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.hex:hover{filter:brightness(1.08);transform:scale(1.06)translateY(-2px)}.hex--selected{outline:3px solid var(--teal);outline-offset:3px}.spark-chart__bar{transition:height .45s var(--ease-out), background .3s var(--ease)}.pace-slider input[type=range]{accent-color:var(--amber);cursor:pointer}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:.2s both backdrop-in}.modal{animation:modal-in .3s var(--ease-out) both}.kanban__col{transition:border-color .25s var(--ease), box-shadow .25s var(--ease)}.kanban__col:hover{border-color:color-mix(in srgb, var(--teal) 35%, var(--border))}.sidebar{border-right-color:var(--sidebar-border,var(--border))}.sidebar__footer{border-top-color:var(--sidebar-border,var(--border))!important}.cockpit__grid>*,.kanban__col,.hex-grid .hex{animation:fade-up .4s var(--ease-out) both}.cockpit__grid>:first-child{animation-delay:20ms}.cockpit__grid>:nth-child(2){animation-delay:60ms}.cockpit__grid>:nth-child(3){animation-delay:.1s}.cockpit__grid>:nth-child(4){animation-delay:.14s}.kanban__col:first-child{animation-delay:30ms}.kanban__col:nth-child(2){animation-delay:70ms}.kanban__col:nth-child(3){animation-delay:.11s}.kanban__col:nth-child(4){animation-delay:.15s}[data-theme=light] .panel--accent{background:#fff;border-color:#cbd5e1}[data-theme=light] body{background:#fff}.app-shell{transition:background-color .35s var(--ease)}.main-content{animation:none}.btn{transition:transform .22s var(--ease), filter .22s var(--ease), box-shadow .22s var(--ease), background-color .22s var(--ease), border-color .22s var(--ease)!important}.btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn:active{transform:translateY(0)scale(.985)}.toggle-btn{transition:transform .2s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease)!important}.toggle-btn:hover{border-color:var(--amber);transform:translateY(-1px)}.topic-card,.kanban__card{transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease)!important}.topic-card:hover,.kanban__card:hover{border-color:var(--teal);box-shadow:var(--shadow-hover);transform:translateY(-2px)}.hex{transition:transform .28s var(--ease), filter .28s var(--ease)!important}.hex:hover{transform:scale(1.06)translateY(-2px)}.panel,.streak-panel{transition:transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease), background-color .35s var(--ease)!important}.nav-link{transition:background-color .22s var(--ease), color .22s var(--ease), transform .22s var(--ease), box-shadow .22s var(--ease)!important}.nav-link:hover{transform:translate(2px);background:var(--sidebar-hover)!important}.modal-backdrop,.modal__backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:.2s both backdrop-in}.modal,.modal__dialog{animation:modal-in .3s var(--ease-out) both}.spark-chart__bar{transform-origin:bottom;transition:height .45s var(--ease-out)!important}input[type=range]{accent-color:var(--amber);transition:filter .2s var(--ease)}input[type=range]:hover{filter:brightness(1.05)}input[type=text],input[type=number],input[type=date],select,textarea{transition:border-color .2s var(--ease), box-shadow .2s var(--ease), background-color .25s var(--ease)!important}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-dim);outline:none}[data-theme=light] .btn--primary,[data-theme=light] .btn-primary{background:var(--accent-strong,#115e59);border-color:var(--accent-strong,#115e59);color:#fff}[data-theme=light] .nav-link--active{color:#0f766e;background:#0f766e1a;box-shadow:inset 3px 0 #0f766e}[data-theme=light] .toggle-btn--active{color:#0f766e;background:#0f766e1a;border-color:#0f766e}[data-theme=light] .kpi-value,[data-theme=light] .streak-panel__count,[data-theme=light] .sidebar__logo{color:#0f766e}[data-theme=light] input[type=range]{accent-color:#0f766e}[data-theme=light] .panel{background:#fff;border-color:#e2e8f0}[data-theme=light] .main-content,[data-theme=light] .app-shell{background:#fff}
