:root{color-scheme:light;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;--bg: #f5f7fb;--surface: #ffffff;--surface-2: #f8fafc;--text: #0f172a;--muted: #64748b;--border: #e2e8f0;--accent: #4f46e5;--accent-2: #7c3aed;--accent-soft: rgba(79, 70, 229, .12);--danger: #ef4444;--shadow: 0 18px 45px rgba(15, 23, 42, .08)}:root[data-theme=dark]{color-scheme:dark;--bg: #0b1020;--surface: #111827;--surface-2: #0f172a;--text: #e2e8f0;--muted: #94a3b8;--border: #1f2937;--accent: #6366f1;--accent-2: #a855f7;--accent-soft: rgba(99, 102, 241, .22);--danger: #f87171;--shadow: 0 20px 55px rgba(2, 6, 23, .55)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,rgba(79,70,229,.08),transparent 45%),var(--bg);color:var(--text)}button,input,select{font:inherit;transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.page{min-height:100vh;padding:32px 24px 64px}.container{max-width:1100px;margin:0 auto}.hero{background:radial-gradient(circle at top left,rgba(124,58,237,.25),transparent 45%),linear-gradient(135deg,rgba(79,70,229,.2),transparent 60%);border:1px solid var(--border);border-radius:24px;padding:24px;box-shadow:var(--shadow);transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .2s ease}.card.subtle{background:var(--surface-2);box-shadow:none}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row-between{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.title{font-size:30px;font-weight:700;margin:0;letter-spacing:-.02em}.subtitle{color:var(--muted);font-size:14px}.section-title{font-size:18px;font-weight:600;margin:0 0 8px}.input,.select{padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);min-width:180px;transition:border-color .2s ease,box-shadow .2s ease}.input:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.button{padding:10px 16px;border-radius:12px;border:1px solid transparent;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 12px 24px #4f46e533}.button.secondary{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:none}.button.danger{background:#ef4444;border-color:#fecaca;box-shadow:none}.button:disabled{opacity:.6;cursor:not-allowed}.button:hover:not(:disabled){transform:translateY(-1px)}.button.ghost{background:transparent;color:var(--text);border-color:var(--border);box-shadow:none}.pill{padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.error{color:#b91c1c;background:#ef44441f;border:1px solid rgba(239,68,68,.3);padding:10px 12px;border-radius:12px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;align-items:stretch}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));position:relative}.kpi-slot{min-height:260px;display:flex;align-items:stretch;border-radius:16px;transition:border-color .2s ease,background-color .2s ease}.kpi-slot.empty{visibility:hidden}.kpi-grid.placement-mode .kpi-slot{border:1px dashed rgba(148,163,184,.55);background:#94a3b814}.kpi-grid.placement-mode .kpi-slot.empty{visibility:visible}.kpi-grid.placement-mode .kpi-slot.drag-over{border-color:#6366f1bf;background:#6366f11f}.kpi-grid.placement-mode .kpi-card{cursor:grab}.kpi-grid.placement-mode .kpi-card:active{cursor:grabbing}.kpi-grid.placement-mode .kpi-card input{pointer-events:none}.kpi-grid.placement-mode .kpi-card{animation:kpi-wiggle .6s ease-in-out infinite}.kpi-card.pending{animation:none;box-shadow:0 0 0 2px #6366f159}.kpi-move-actions{display:flex;gap:8px;margin:8px 0}.kpi-move-btn{width:28px;height:28px;border-radius:999px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;color:#fff}.kpi-move-btn.confirm{background:#16a34a;border-color:#16a34a80}.kpi-move-btn.cancel{background:#dc2626;border-color:#dc262680}@keyframes kpi-wiggle{0%{transform:rotate(-.4deg)}50%{transform:rotate(.4deg)}to{transform:rotate(-.4deg)}}.kpi-card{border:1px solid var(--border);border-radius:16px;padding:16px;background:var(--card);display:flex;flex-direction:column;height:100%;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.kpi-card-title{font-size:15px;font-weight:700;color:var(--text)}.kpi-card .subtitle{color:var(--muted);font-size:12px}.kpi-card-description{margin-top:6px;min-height:18px}.kpi-card-current{margin-top:6px;font-size:13px;color:var(--text)}.kpi-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;margin-top:12px;align-content:start}.kpi-values.yearly{grid-template-columns:1fr}.kpi-values .subtitle{text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--muted)}.kpi-values .stack{min-width:0}.kpi-quarter{display:grid;grid-template-rows:auto auto auto;gap:6px;align-items:start}.kpi-card .input{width:100%;min-width:0;font-size:15px;height:44px;background:var(--surface);border-color:#94a3b840}.kpi-input{appearance:textfield}.kpi-input::-webkit-outer-spin-button,.kpi-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.kpi-card .button.ghost{width:100%;padding:8px 10px;line-height:1.2;min-width:0}.kpi-input.dirty{background:linear-gradient(120deg,#6366f133,#10b9812e),var(--surface);border-color:#6366f180}@media(max-width:1200px){.kpi-values{grid-template-columns:repeat(2,minmax(160px,1fr))}}@media(max-width:720px){.kpi-values{grid-template-columns:1fr}}@media(min-width:1600px){.kpi-values{grid-template-columns:repeat(4,minmax(0,1fr))}}.table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.4}.admin-table-wrap{width:100%;overflow-x:auto}.admin-table{min-width:900px}.admin-table .input,.admin-table .select{min-width:0;width:100%}.table th,.table td{border-bottom:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:middle;color:var(--text);white-space:nowrap}.row-dirty{background:#6366f114}.table th{color:var(--muted);font-weight:600;background:var(--surface-2);position:sticky;top:0;z-index:1}.table tr:hover td{background:#6366f10f;transition:background-color .2s ease}.table tr:nth-child(2n) td{background:#94a3b80d}.table td:nth-child(2),.table th:nth-child(2){white-space:normal;min-width:260px}.tracker-table-toolbar{display:flex;justify-content:space-between;align-items:center;padding:6px 2px 10px}.tracker-controls{border:1px solid var(--border);border-radius:16px;padding:16px;background:var(--surface-2);display:flex;flex-direction:column;gap:12px}.tracker-controls-title{font-weight:700;margin-bottom:12px}.tracker-columns{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:12px;background:var(--surface);border:1px solid var(--border)}.tracker-column-buttons{display:inline-flex;gap:6px}.tracker-column-button.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-color:transparent}.tracker-layout{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}.tracker-sidebar{position:sticky;top:18px;height:fit-content}@media(max-width:1200px){.tracker-layout{grid-template-columns:1fr}.tracker-sidebar{position:static}}.tracker-filter-group{display:flex;flex-direction:column;gap:6px;min-width:200px;font-weight:600;color:var(--text)}.tracker-controls .tracker-filter-group+.tracker-filter-group{margin-top:0}.tracker-filter-group .select,.tracker-filter-group .input{font-size:13px}.tracker-filter-header{text-transform:uppercase;letter-spacing:.03em;font-size:11px;color:var(--muted)}.tracker-filter-header{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.tracker-facet{border:1px solid var(--border);border-radius:12px;padding:8px;background:var(--surface)}.tracker-facet-list{max-height:200px;overflow:auto;display:flex;flex-direction:column;gap:4px;padding-right:6px}.tracker-facet-item{display:flex;align-items:center;gap:6px;font-weight:500;font-size:13px;line-height:1.2}.tracker-facet-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.tracker-facet-item input[type=checkbox]{width:14px;height:14px}.tracker-controls .mini-button{padding:4px 8px;font-size:11px}.tracker-filter-group .select,.tracker-filter-group .input{font-weight:500}.tracker-filter-group .select[multiple]{min-height:160px;padding:10px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:inset 0 0 0 1px transparent}.tracker-filter-group .select[multiple]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.tracker-filter-actions{display:flex;justify-content:flex-end}.tracker-filter-group .mini-button{align-self:flex-end}select[multiple] option{padding:4px 6px}select[multiple] option:checked{background:var(--accent-soft);color:var(--text)}.tracker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;grid-auto-flow:row dense}@media(max-width:1200px){.tracker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.tracker-grid{grid-template-columns:minmax(0,1fr)}}.tracker-slot{min-height:260px;display:flex;align-items:stretch;border-radius:16px;transition:border-color .2s ease,background-color .2s ease;min-width:0}.tracker-slot.collapsed{min-height:72px}.tracker-slot>.tracker-block{flex:1}.tracker-slot.span-1{grid-column:span 1}.tracker-slot.span-2{grid-column:span 2}.tracker-slot.span-3{grid-column:1 / -1}@media(max-width:900px){.tracker-slot.span-2,.tracker-slot.span-3{grid-column:1 / -1}}.tracker-slot.empty{visibility:hidden;min-height:56px;max-height:56px}.tracker-grid.placement-mode .tracker-slot{border:1px dashed rgba(148,163,184,.55);background:#94a3b814}.tracker-grid.placement-mode .tracker-slot.empty{visibility:visible;min-height:56px;max-height:56px}.tracker-grid.placement-mode .tracker-slot.drop-target{border-color:#6366f1bf;background:#6366f11f}.tracker-grid.placement-mode .tracker-block{cursor:grab;animation:kpi-wiggle .6s ease-in-out infinite}.tracker-grid.placement-mode .tracker-block:active{cursor:grabbing}.tracker-block{border:1px solid var(--border);border-radius:16px;background:var(--surface);padding:12px;box-shadow:var(--shadow);transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .2s ease;min-width:0}.tracker-block.collapsed{padding:10px 12px}.tracker-block-header{cursor:grab}.tracker-block-header:active{cursor:grabbing}.tracker-block.drop-target{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.tracker-block.pending{animation:none;box-shadow:0 0 0 2px #6366f159}.tracker-block.full{grid-column:1 / -1}.tracker-block-header{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:600;margin-bottom:8px;transition:color .2s ease}.tracker-block.collapsed .tracker-block-header{margin-bottom:0}.tracker-drag-handle{cursor:grab;-webkit-user-select:none;user-select:none}.tracker-block-body{border-top:1px solid var(--border);padding-top:12px;transition:border-color .2s ease;min-width:0}.tracker-plot{width:100%;min-height:420px;transition:background-color .2s ease}.tracker-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.tracker-kpi{background:var(--surface-2);border-radius:12px;padding:12px;border:1px solid var(--border);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.tracker-kpi-value{font-size:18px;font-weight:700}.tracker-table-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.tracker-filter-panel{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;transition:border-color .2s ease,box-shadow .2s ease}.tracker-filter-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.tracker-filter-list{display:flex;flex-direction:column;gap:6px;max-height:150px;overflow:auto;padding-right:4px}.tracker-filter-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}.tracker-filter-item input[type=checkbox]{width:14px;height:14px}.tracker-filter-actions{display:flex;justify-content:flex-end;gap:8px}.tracker-table-wrap{max-height:520px;overflow:auto;overflow-x:auto;min-width:0;max-width:100%;width:100%;border:1px solid var(--border);border-radius:12px;transition:border-color .2s ease,box-shadow .2s ease}.mini-button{padding:6px 10px;font-size:12px;line-height:1}select[multiple]{min-width:160px;min-height:110px}.header-actions{flex-wrap:nowrap}.header-search{min-width:260px}.settings-wrap{position:relative}.gear-button{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:18px}.settings-menu{position:absolute;right:0;top:46px;width:260px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:10px;z-index:40;transition:opacity .2s ease,transform .2s ease}.settings-user{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--border)}.settings-section,.settings-list{display:flex;flex-direction:column;gap:6px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.settings-row-actions{display:flex;gap:6px}.settings-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}.tracker-block-actions{display:inline-flex;gap:6px}.tracker-span-controls{display:inline-flex;gap:4px;align-items:center}.tracker-span-actions{display:inline-flex;gap:6px;align-items:center}.tracker-span-button.active{background:var(--accent);color:#fff;border-color:transparent;box-shadow:none}.plot-variant-select{height:30px;padding:4px 10px;font-size:12px;min-width:90px}.upload-progress{display:grid;gap:6px;margin-top:10px}.progress-bar{height:8px;border-radius:999px;background:var(--border);overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary);transition:width .2s ease}.admin-tabs{display:flex;flex-wrap:wrap;gap:8px}.admin-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.header-left{display:inline-flex;align-items:center;gap:10px}.section-menu-wrap{position:relative;display:inline-flex;align-items:center}.section-menu-button{padding:8px 10px;min-width:40px;justify-content:center}.section-menu-icon{display:inline-grid;gap:4px}.section-menu-icon span{width:18px;height:2px;border-radius:999px;background:currentColor;display:block}.section-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;padding:8px;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:0 12px 24px #0000001f;display:grid;gap:6px;z-index:25}.section-menu-item{border:1px solid transparent;background:transparent;color:var(--text);font-size:13px;text-align:left;padding:8px 10px;border-radius:10px;cursor:pointer}.section-menu-item:hover{background:var(--card)}.section-menu-item.active{border-color:var(--primary);color:var(--primary)}.tracker-menu-wrap{position:relative;display:inline-flex;align-items:center}.tracker-menu-button{display:inline-flex;align-items:center;gap:8px}.tracker-menu-caret{font-size:12px;opacity:.7}.tracker-menu{position:absolute;right:0;top:44px;width:340px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:12px;z-index:40;transition:opacity .2s ease,transform .2s ease}.tracker-menu-section{display:flex;flex-direction:column;gap:8px}.tracker-menu-title{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.tracker-menu-list{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}.tracker-menu-item{text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;padding:8px 10px;color:var(--text);cursor:pointer;transition:background .2s ease,border-color .2s ease}.tracker-menu-item:hover{background:var(--surface-2);border-color:var(--border)}.tracker-menu-item.active{background:var(--surface-2);border-color:var(--accent)}.tracker-menu-actions{display:flex;flex-wrap:wrap;gap:8px}.tracker-team-flag{display:inline-flex;width:16px;justify-content:center;color:transparent;font-weight:700}.tracker-team-flag.missing{color:var(--danger)}.tracker-team-name{margin-left:4px}.modal-backdrop{position:fixed;inset:0;background:#02061799;display:flex;align-items:center;justify-content:center;z-index:50;transition:background-color .2s ease}.modal{width:min(720px,90vw);max-height:80vh;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-close{border:none;background:transparent;color:var(--text);font-size:20px;cursor:pointer;transition:color .2s ease,transform .2s ease}.modal-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.modal-body{overflow:auto;padding-right:6px}.row-active{background:var(--accent-soft)}.divider{height:1px;background:var(--border);margin:8px 0}.theme-toggle{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--text);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.tag{padding:4px 8px;border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:12px;border:1px solid var(--border);transition:background-color .2s ease,border-color .2s ease,color .2s ease}.muted{color:var(--muted)}
