:root{--ground:#EAEEEF;--surface:#fff;--surface-2:#F3F6F6;--ink:#0F1719;--ink-2:#314247;--muted:#5F7278;--line:#CFD9DB;--accent:#00897C;--accent-ink:#00655B;--accent-soft:#DCEDEA;--ref:#4A3AA7;--flag:#A33A28;--bs-body-bg:var(--ground);--bs-body-color:var(--ink);--bs-border-color:var(--line);--bs-secondary-color:var(--muted);--text:var(--ink);--card-bg:var(--surface);--border:var(--line);--radius:14px}
:root[data-theme=dark]{color-scheme:dark;--ground:#0D1416;--surface:#141F22;--surface-2:#1B282B;--ink:#E4EDEE;--ink-2:#B4C7CB;--muted:#8CA0A5;--line:#2A3A3E;--accent:#0E9A85;--accent-ink:#56D9C4;--accent-soft:#15322F;--ref:#8E82F0;--flag:#E89279}
*{box-sizing:border-box}body{background:var(--ground);color:var(--ink);font-family:Inter,'Segoe UI',system-ui,sans-serif;font-size:14px;line-height:1.55}a{color:var(--accent-ink)}button,input,select,textarea{font:inherit}a,button{transition:background .15s,border-color .15s}h1,h2,h3,h4{letter-spacing:-.035em;color:var(--ink);font-weight:650}h1{font-size:32px}h2{font-size:25px}h3{font-size:18px}.eyebrow{font:600 10px ui-monospace,monospace;letter-spacing:.16em;color:var(--accent-ink);display:block;margin-bottom:10px}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:236px;flex:none;padding:28px 16px 16px;background:var(--surface);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:0 12px;text-decoration:none;color:var(--ink);font-size:24px;font-weight:800;letter-spacing:.08em}.brand small{display:block;font:9px ui-monospace;letter-spacing:.07em;color:var(--muted)}.brand-symbol{width:37px;height:38px;display:grid;place-items:center;background:var(--accent);color:white;font-size:24px;border-radius:9px 2px 9px 2px}.workspace-name{font-size:10px;margin:28px 9px 20px;color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:8px}.app-sidebar nav{display:flex;flex-direction:column;gap:3px}.app-sidebar nav a{display:flex;gap:12px;align-items:center;padding:9px 12px;border-radius:7px;color:var(--ink-2);text-decoration:none;font-size:12px;font-weight:550}.app-sidebar nav a:hover{background:var(--surface-2)}.app-sidebar nav a.active{background:var(--accent-soft);color:var(--accent-ink)}.nav-mark{width:6px;height:6px;border:1px solid var(--muted);border-radius:2px}.active .nav-mark{background:var(--accent);border-color:var(--accent)}.nav-section{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:22px 12px 8px}.sidebar-foot{margin-top:auto;padding:28px 12px 0;font-size:11px;color:var(--ink-2)}.sidebar-foot span{display:block;font-size:9px;color:var(--muted)}.app-content{min-width:0;flex:1}.app-topbar{height:86px;border-bottom:1px solid var(--line);padding:18px 36px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface)}.app-topbar .eyebrow{font-size:9px;margin-bottom:2px;color:var(--muted)}.app-topbar strong{font-size:14px;letter-spacing:-.02em}.topbar-actions{display:flex;align-items:center;gap:15px}.user-chip{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink)}.user-chip>span{width:30px;height:30px;background:var(--accent-soft);border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--accent-ink)}.user-chip b{font-size:11px;font-weight:600}.user-chip small{display:block;font-size:8px;color:var(--muted);letter-spacing:.05em}.app-main{padding:32px 36px 60px;max-width:1900px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px}.page-heading p{color:var(--muted);margin-bottom:0;font-size:13px;max-width:65ch}.pill{display:inline-flex;gap:6px;align-items:center;font-size:10px;border:1px solid var(--line);border-radius:100px;padding:4px 9px;background:var(--surface-2);color:var(--ink-2)}.pill.teal{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}.card,.modal-content{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:var(--radius);box-shadow:0 3px 12px -10px #0f171955}.card-header,.card-footer{background:var(--surface-2);border-color:var(--line);color:var(--ink)}.card-header{padding:15px 20px}.card-body{padding:22px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat{padding:20px 22px;position:relative;overflow:hidden}.stat:after{content:'';height:2px;width:38px;position:absolute;top:0;background:var(--accent)}.stat-label{font-size:11px;color:var(--muted)}.stat-value{font-size:34px;font-weight:650;letter-spacing:-.06em;line-height:1.4}.stat-sub{font-size:10px;color:var(--muted)}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.chart-card{padding:22px;min-width:0}.chart-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.chart-title h3{font-size:14px;margin:0}.chart-wrap{height:245px;position:relative}.table{--bs-table-color:var(--ink);--bs-table-bg:var(--surface);--bs-table-border-color:var(--line);--bs-table-striped-bg:var(--surface-2);--bs-table-hover-bg:var(--surface-2);font-size:12px;margin-bottom:0}.table>:not(caption)>*>*{padding:12px 14px}.table thead th{text-transform:uppercase;letter-spacing:.06em;font-size:9px;color:var(--muted);font-weight:600;background:var(--surface-2);white-space:nowrap}.table td{vertical-align:middle}.table-responsive{border-radius:12px}.btn{font-size:12px;font-weight:550;border-radius:7px;padding:9px 14px}.btn-sm{font-size:10px;padding:5px 9px}.btn-primary{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-hover-bg:var(--accent-ink);--bs-btn-hover-border-color:var(--accent-ink);--bs-btn-active-bg:var(--accent)}.btn-outline-primary{--bs-btn-color:var(--accent-ink);--bs-btn-border-color:var(--accent);--bs-btn-hover-bg:var(--accent);--bs-btn-hover-border-color:var(--accent)}.form-control,.form-select{background-color:var(--surface);color:var(--ink);border-color:var(--line);font-size:12px;min-height:37px}.form-control:focus,.form-select:focus{background:var(--surface);color:var(--ink);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-label{font-size:11px;color:var(--ink-2);font-weight:600;margin-top:7px}.text-muted,.small-help{color:var(--muted)!important}.small-help{font-size:11px}.bg-light{background:var(--surface-2)!important}.empty-state{padding:48px 24px;text-align:center;color:var(--muted)}.empty-state strong{display:block;color:var(--ink-2);font-size:16px;margin:10px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.toolbar .form-control,.toolbar .form-select{width:auto;min-width:140px}.module-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:12px}.module-tabs a{padding:7px 14px;text-decoration:none;font-size:12px;border-radius:6px;color:var(--muted)}.module-tabs a.active{background:var(--accent-soft);color:var(--accent-ink)}.progress{--bs-progress-bg:var(--surface-2);height:6px}.progress-bar{background:var(--accent)}.panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.track-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.track-card{padding:22px}.track-card h3{margin-top:10px}.track-card li{font-size:12px;margin-bottom:8px}.track-card ul{padding-left:18px}.readable{max-width:1050px}.axis-card{padding:20px;margin-bottom:14px}.axis-card details summary{font-size:12px;color:var(--accent-ink);cursor:pointer}.axis-card p,.axis-card li{font-size:12px;color:var(--muted)}.radar-wrap{max-width:480px;margin:auto;height:350px}.resource-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.resource-form .full{grid-column:1/-1}.resource-form textarea{min-height:95px}.notification{position:fixed;bottom:25px;right:25px;background:var(--ink);color:var(--surface);padding:14px 20px;border-radius:10px;z-index:9999;max-width:550px}.danger-text{color:var(--flag)}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr;padding:6vw;gap:7vw;align-items:center;background:radial-gradient(at 10% 5%,var(--accent-soft),transparent 60%)}.login-story h1{font-size:clamp(32px,4vw,59px);line-height:1.05;margin:25px 0;max-width:13ch}.login-story p{max-width:47ch;color:var(--muted);font-size:15px}.login-story small{font:9px ui-monospace;letter-spacing:.15em;color:var(--muted)}.login-form{padding:40px;max-width:440px;width:100%;margin:auto}.login-form h2{font-size:27px}.orbit{height:140px;width:200px;position:relative;display:grid;place-items:center;margin:25px 0}.orbit i{position:absolute;width:180px;height:90px;border:1px solid var(--line);border-radius:50%;transform:rotate(35deg)}.orbit i:nth-child(2){transform:rotate(-35deg)}.orbit i:nth-child(3){width:100px;height:100px}.orbit strong{font-size:42px;color:var(--accent)}.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;margin:20px 0}.divider:before,.divider:after{content:'';height:1px;background:var(--line);flex:1}.auth-main{min-height:100vh}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.kanban-column{background:var(--surface-2);padding:12px;border:1px solid var(--line);border-radius:12px}.kanban-column h3{font-size:12px}.kanban-item{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px;margin-top:10px;font-size:12px}.capacity-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.capacity-row .progress{flex:1;min-width:60px}.form-check-input:checked{background-color:var(--accent);border-color:var(--accent)}pre{color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);padding:18px;border-radius:8px;max-height:450px;overflow:auto}.header-rule{border-bottom:2px solid var(--ink);padding-bottom:20px;margin-bottom:28px}
@media(max-width:1100px){.app-sidebar{width:205px}.app-main{padding:25px 22px}.topbar-actions{gap:7px}.user-chip b{display:none}.track-grid{grid-template-columns:1fr 1fr}.stat-grid{gap:12px}.app-topbar{padding:18px 22px}}@media(max-width:760px){.app-shell{display:block}.app-sidebar{position:relative;height:auto;width:100%;padding:15px}.app-sidebar nav{flex-direction:row;overflow:auto;margin-top:15px}.app-sidebar nav a{white-space:nowrap}.nav-section,.sidebar-foot,.workspace-name{display:none}.app-topbar{height:auto;align-items:flex-start}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.app-main{padding:22px 16px}.stat-grid{grid-template-columns:1fr 1fr}.chart-grid,.panel-grid,.track-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start;flex-direction:column}h1{font-size:27px}.login-shell{grid-template-columns:1fr;padding:30px 18px}.login-story{display:none}.resource-form{grid-template-columns:1fr}.kanban{grid-template-columns:1fr 1fr}.login-form{padding:28px}}
@media print{.app-sidebar,.app-topbar,.btn,.toolbar,.module-tabs{display:none!important}.app-shell{display:block}.app-main{padding:0}body{background:white;color:black}.card{break-inside:avoid}.track-grid{grid-template-columns:1fr 1fr}.chart-grid{display:block}.chart-card{break-inside:avoid;margin:20px 0}.app-content{width:100%}}
/* Unified controls, including legacy views and Bootstrap overlays. */
:root{--bg:var(--ground);--card:var(--surface);--bs-tertiary-bg:var(--surface-2);--bs-secondary-bg:var(--surface-2)}
.modal-content,.modal-header,.modal-body,.modal-footer,.dropdown-menu,.list-group-item{background:var(--surface)!important;color:var(--ink);border-color:var(--line)}
.modal-backdrop{--bs-backdrop-bg:#000;--bs-backdrop-opacity:.65}.modal{background:transparent!important}.modal-content{max-height:90vh;overflow:auto}
.form-control::file-selector-button{background:var(--surface-2);color:var(--ink-2);border-color:var(--line)}
.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background:var(--accent-soft);color:var(--accent-ink)}
:root[data-theme=dark] .btn-close{filter:invert(1) grayscale(100%) brightness(180%)}
.btn-secondary,.btn-outline-secondary{--bs-btn-color:var(--ink-2);--bs-btn-border-color:var(--line);--bs-btn-bg:var(--surface-2);--bs-btn-hover-color:var(--ink);--bs-btn-hover-bg:var(--accent-soft);--bs-btn-hover-border-color:var(--accent)}
.btn-success,.btn-info{background:var(--accent);border-color:var(--accent);color:#fff}.alert-info{background:var(--accent-soft)!important;color:var(--ink-2)!important;border-color:var(--line)}
.form-control:disabled,.form-control[readonly],.form-select:disabled{background:var(--surface-2);color:var(--muted)}
.brand-logo{width:46px;height:42px;object-fit:contain;flex:none}.brand{font-size:21px;gap:9px;padding:0 8px}
.nav-group summary{padding:10px 12px;font-size:12px;font-weight:600;border-radius:7px;color:var(--ink-2);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:8px}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:after{content:'';width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(-45deg);margin-top:5px}.nav-group[open] summary:after{transform:rotate(45deg)}.nav-group[open] summary{color:var(--accent-ink)}.nav-group .nav-children{border-left:1px solid var(--line);margin:3px 0 8px 17px;padding-left:5px}.app-sidebar nav a.active{font-weight:700;box-shadow:inset 3px 0 var(--accent)}.app-sidebar nav a{gap:0}.nav-group summary:hover{background:var(--surface-2)}
.detail-text{white-space:pre-wrap;overflow-wrap:anywhere}.detail-list{display:grid;grid-template-columns:150px 1fr;gap:10px;font-size:12px}.detail-list dt{color:var(--muted);font-weight:500}.detail-list dd{margin:0;overflow-wrap:anywhere}.resource-form .section-label{grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:8px;margin-top:15px;font-size:12px;font-weight:650}.solution-options{display:grid;grid-template-columns:1fr 1fr;gap:6px}.solution-options label{font-size:12px}.allocation-help{font-size:11px;color:var(--muted);margin-top:7px}.table .actions{display:flex;gap:6px;flex-wrap:wrap}
.wheel-stage{position:relative;max-width:450px;margin:25px auto}.wheel-stage:before{content:'';position:absolute;z-index:2;top:-9px;left:calc(50% - 11px);border-left:11px solid transparent;border-right:11px solid transparent;border-top:25px solid var(--ink)}.wheel-stage canvas{display:block;width:100%;height:auto;border:9px solid var(--surface-2);border-radius:50%;box-shadow:0 0 0 1px var(--line)}.wheel-center{position:absolute;inset:calc(50% - 31px);width:62px;height:62px;border-radius:50%;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center}.wheel-center img{width:48px;height:48px;object-fit:contain}.draw-result{text-align:center;min-height:70px}.draw-result strong{display:block;font-size:22px;color:var(--accent-ink)}
@media(max-width:760px){.app-sidebar nav{display:block;max-height:250px;overflow:auto}.nav-group .nav-children{display:grid;grid-template-columns:1fr 1fr}.app-sidebar>nav>a{display:inline-flex}.detail-list{grid-template-columns:1fr}.detail-list dd{margin-bottom:9px}.solution-options{grid-template-columns:1fr}.brand-logo{width:39px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
:root{--bs-primary:#00897c;--bs-primary-rgb:0,137,124;--bs-link-color:var(--accent-ink);--bs-link-hover-color:var(--accent);--bs-success-rgb:0,137,124}
.text-primary{color:var(--accent-ink)!important}.bg-primary,.text-bg-primary{background-color:var(--accent)!important}.btn-outline-info{--bs-btn-color:var(--accent-ink);--bs-btn-border-color:var(--line);--bs-btn-hover-bg:var(--accent-soft);--bs-btn-hover-color:var(--ink)}
.modal-content{overflow:hidden}.modal-content>form{display:flex;flex-direction:column;min-height:0}.modal-body{overflow-y:auto;overscroll-behavior:contain}.modal-header,.modal-footer{flex-shrink:0}
.btn-primary{--bs-btn-hover-bg:#00796f;--bs-btn-hover-border-color:#00796f;--bs-btn-active-bg:#00695f;--bs-btn-active-border-color:#00695f}
