:root{--bg: #000000;--surface: #000000;--surface-2: #0b0b0b;--text: #e8e8e8;--strong: #ffffff;--muted: #8c8c8c;--border: #262626;--rule: #161616;--accent: #ffffff;--accent-hover: #ffffff;--accent-soft: #141414;--accent-text: #e8e8e8;--accent-ink: #000000;--focus: #9ec1ff;--grid: #161616;--series-1: #d4d4d4;--series-2: #8c8c8c;--series-3: #4a4a4a;--series-total: #ffffff;--h-green: #3f9a63;--h-yellow: #c79a2e;--h-red: #c2453d;--h-nodata: #5a6068;--h-green-dim: #2b6b45;--h-red-dim: #7d2f2a;--h-green-soft: transparent;--h-yellow-soft: transparent;--h-red-soft: transparent;--h-nodata-soft: transparent;--pos: #4fb37a;--neg: #e0584e;--radius: 0;--shadow: none;--side-bg: #000000;--side-text: #c8c8c8;color-scheme:dark}:root[data-theme=light]{--bg: #f7f7f4;--surface: #fdfdfb;--surface-2: #f0f0ec;--text: #111111;--strong: #000000;--muted: #5e5e5e;--border: #d4d4cf;--rule: #e6e6e1;--accent: #000000;--accent-hover: #000000;--accent-soft: #ebebe6;--accent-text: #111111;--accent-ink: #ffffff;--focus: #1f5fd1;--grid: #e6e6e1;--series-1: #3a3f45;--series-2: #7a8088;--series-3: #b4b9bf;--series-total: #15171a;--h-green: #2e7d4f;--h-yellow: #a77c12;--h-red: #b3362e;--h-nodata: #9aa0a7;--h-green-dim: #8cc2a2;--h-red-dim: #dfa29d;--pos: #2e7d4f;--neg: #b3362e;--side-bg: #fdfdfb;--side-text: #111111;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter Tight,Helvetica Neue,Arial,sans-serif;font-size:13px;line-height:1.35;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.2;color:var(--strong)}button,input,select{font:inherit;color:inherit}a{color:var(--accent-text)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-999px;top:8px;z-index:100;background:var(--surface);padding:6px 10px;border-radius:0}.skip-link:focus{left:8px}.app{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100%}.app.with-profile{grid-template-columns:224px minmax(0,1fr) 400px}.main{padding:18px 22px 40px;min-width:0}.sidebar{background:var(--side-bg);color:var(--side-text);border-right:1px solid var(--border);padding:18px 12px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;flex-direction:column;gap:4px;padding:0 8px}.brand-name{font-size:15px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--strong)}.brand-name span{color:var(--muted)}.brand-sub{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}.demo-badge{align-self:flex-start;margin-top:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;background:transparent;color:#c79a2e;border:1px solid #c79a2e;padding:1px 6px;border-radius:0}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;justify-content:space-between;align-items:center;color:var(--muted);text-decoration:none;padding:7px 10px 7px 12px;border-left:2px solid transparent;font-weight:500;text-transform:uppercase;letter-spacing:.8px;font-size:11.5px}.nav a:hover{background:var(--accent-soft);color:var(--strong)}.nav a.active{background:var(--accent-soft);color:var(--strong);border-left-color:var(--strong)}.nav .count{font-size:11px;font-family:JetBrains Mono,ui-monospace,monospace;color:var(--muted);min-width:28px;text-align:right;letter-spacing:0}.nav-sep{height:1px;background:var(--border);margin:6px 0}.side-foot{margin-top:auto;font-size:11px;color:var(--muted);padding:0 8px;display:flex;flex-direction:column;gap:6px}.side-foot strong{color:var(--text);font-weight:600}.side-link{color:var(--text)}.theme-btn{align-self:flex-start;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:0;padding:3px 10px;cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:.6px}.theme-btn:hover{border-color:var(--strong);color:var(--strong)}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:6px}.page-head h1{font-size:15px;text-transform:uppercase;letter-spacing:1.6px}.headline{font-size:13px;margin:2px 0 12px;padding:8px 0;color:var(--muted);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.filterbar{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin-bottom:10px;position:sticky;top:0;z-index:5}.field{display:flex;flex-direction:column;gap:2px}.field label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px}.field input,.field select{height:30px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:0 8px;min-width:120px}.field input[type=search]{min-width:220px}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;height:30px}.seg button{border:0;background:var(--surface);padding:0 12px;cursor:pointer;border-right:1px solid var(--border)}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.seg button:hover:not([aria-pressed=true]){background:var(--surface-2)}.btn{height:30px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:hover{background:var(--accent-hover)}.btn.link{border:0;background:none;color:var(--accent-text);padding:0 4px;height:auto;text-decoration:underline}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;align-items:center;font-size:12px}.chip{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:0;padding:1px 2px 1px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.4px}.chip button{border:0;background:transparent;cursor:pointer;padding:0 6px;font-size:13px;line-height:1;border-radius:0;color:var(--muted)}.chip button:hover{color:var(--strong)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;margin-bottom:14px;border:1px solid var(--border);background:var(--surface)}.tile{background:transparent;border-right:1px solid var(--border);padding:10px 14px 12px}.tile:last-child{border-right:0}.tile-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--muted);display:flex;gap:4px;align-items:center}.tile-value{font-size:24px;font-weight:500;margin-top:4px;color:var(--strong);font-family:JetBrains Mono,ui-monospace,monospace;letter-spacing:-.5px}.tile-sub{font-size:12px;color:var(--muted);margin-top:2px}.tile-foot{font-size:11px;color:var(--muted);margin-top:6px;border-top:1px solid var(--rule);padding-top:4px}.pos{color:var(--pos)}.neg{color:var(--neg)}.grid{display:grid;gap:12px;margin-bottom:12px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.card-head h2{font-size:11.5px;text-transform:uppercase;letter-spacing:1.2px;display:flex;align-items:center;gap:6px}.card-sub{font-size:12px;color:var(--muted)}.chart-hint{font-size:11px;color:var(--muted);margin-top:2px}.metrics-row{display:flex;flex-wrap:wrap;gap:18px;margin:2px 0 8px;font-size:13px}.metrics-row div span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600}.metrics-row div strong{font-size:16px;font-weight:500;font-family:JetBrains Mono,ui-monospace,monospace;color:var(--strong)}.recharts-wrapper{cursor:default}.clickable .recharts-bar-rectangle{cursor:pointer}.recharts-cartesian-axis-tick text{fill:var(--muted);font-size:11px}.recharts-default-tooltip{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius);color:var(--text)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted);margin-top:4px}.legend i{display:inline-block;width:10px;height:10px;border-radius:0;margin-right:4px;vertical-align:-1px}.chart-keys{position:relative}.chart-keys .keys{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.chart-keys .keys:focus-within{position:static;width:auto;height:auto;clip:auto;overflow:visible;display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.chart-keys .keys button{font-size:11px;border:1px solid var(--border);background:var(--surface-2);border-radius:0;padding:2px 6px;cursor:pointer}.chart-keys .keys button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}table.data td{padding:5px 8px;border-bottom:1px solid var(--rule);vertical-align:middle}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.data tbody tr.row-link{cursor:pointer}table.data tbody tr.row-link:hover,table.data tbody tr.row-link:focus-visible{background:var(--surface-2)}table.data tbody tr.selected{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}table.data td.num{font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px}.muted{color:var(--muted)}.small{font-size:12px}.tag-past{color:var(--neg);font-weight:600}.list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:10px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}.ccard{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow);width:100%}.ccard:hover{border-color:var(--series-2)}.ccard.selected{border-color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.ccard-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.ccard-name{font-weight:600;font-size:13px;line-height:1.25;color:var(--strong)}.ccard-id{font-size:11px;color:var(--muted);font-family:JetBrains Mono,ui-monospace,monospace}.ccard-meta{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 10px}.ccard-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.ccard-nums span{display:block;font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.4px;font-weight:600}.ccard-nums strong{font-size:14px;font-weight:500;font-family:JetBrains Mono,ui-monospace,monospace}.ccard-foot{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;border-top:1px solid var(--rule);padding-top:5px}.show-more{display:flex;justify-content:center;margin-top:12px;gap:8px;align-items:center}.mini{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;align-items:end;height:46px}.mini .col{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;height:100%}.mini .bar{background:var(--series-3);border-radius:0;min-height:1px}.mini .bar.live{background:var(--series-1)}.mini .bar.backlog{background:var(--series-2)}.mini .bar.carr{background:var(--series-total)}.mini-labels{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;font-size:9px;color:var(--muted);text-align:center}.hchip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;border-radius:0;padding:0;white-space:nowrap}.hchip .dot{width:8px;height:8px;border-radius:0}.hchip.Green{background:var(--h-green-soft)}.hchip.Green .dot{background:var(--h-green)}.hchip.Yellow{background:var(--h-yellow-soft)}.hchip.Yellow .dot{background:var(--h-yellow)}.hchip.Red{background:var(--h-red-soft)}.hchip.Red .dot{background:var(--h-red)}.hchip.nodata{background:var(--h-nodata-soft)}.hchip.nodata .dot{background:var(--h-nodata)}.ow{font-size:10px;text-transform:uppercase;letter-spacing:.6px;border:1px solid currentColor;border-radius:0;padding:0 4px;margin-left:2px}.profile{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--surface);border-left:1px solid var(--border);padding:16px 18px 40px;display:flex;flex-direction:column;gap:14px}.profile-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.profile-head h2{font-size:16px}.close-btn{border:1px solid var(--border);background:var(--surface);border-radius:0;width:30px;height:30px;cursor:pointer;font-size:16px;flex:none}.close-btn:hover{background:var(--surface-2)}.tags{display:flex;flex-wrap:wrap;gap:5px}.tags .tag{font-size:10.5px;background:transparent;border-radius:0;padding:1px 6px;border:1px solid var(--border);text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.tags a.tag{text-decoration:none;color:var(--accent-text)}.pnums{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pnums div{background:transparent;border:1px solid var(--border);border-radius:0;padding:8px 10px}.pnums span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600}.pnums strong{font-size:18px;font-weight:500;font-family:JetBrains Mono,ui-monospace,monospace;color:var(--strong)}.pnums small{display:block;font-size:12px;color:var(--muted)}.section-title{font-size:10.5px;text-transform:uppercase;letter-spacing:1.2px;border-bottom:1px solid var(--border);padding-bottom:4px;color:var(--muted);font-weight:700;margin-bottom:6px}dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;font-size:13px}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0}.prod-list{display:flex;flex-wrap:wrap;gap:4px;font-size:12px}.prod-list span{border-radius:0;padding:1px 6px;border:1px solid var(--border)}.prod-list.owned span{border-color:var(--h-green-dim);color:var(--text)}.prod-list.not span{color:var(--muted);border-style:dashed}.prod-list.addon span{color:var(--text)}.why{font-size:12px;color:var(--muted)}.info{position:relative;display:inline-flex}.info button{width:15px;height:15px;border-radius:0;border:1px solid var(--muted);background:transparent;color:var(--muted);font-size:10px;line-height:1;cursor:help;padding:0;font-weight:700}.info [role=tooltip]{display:none;position:absolute;top:20px;left:-8px;z-index:30;width:300px;background:var(--surface);color:var(--text);border:1px solid var(--strong);font-size:12px;font-weight:400;text-transform:none;letter-spacing:0;padding:8px 10px;border-radius:var(--radius);line-height:1.45;box-shadow:none}.info:hover [role=tooltip],.info:focus-within [role=tooltip]{display:block}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:12px;padding:24px;text-align:center}.spinner{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.error-box{max-width:520px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--neg);border-radius:var(--radius);padding:16px 18px;text-align:left}.ok{color:var(--pos);font-weight:600}.bad{color:var(--neg);font-weight:600}.idlist{display:flex;flex-wrap:wrap;gap:4px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.idlist span{background:transparent;border:1px solid var(--border);border-radius:0;padding:1px 6px}.fresh{display:flex;flex-wrap:wrap;row-gap:2px;margin:-2px 0 8px;font-size:11.5px;color:var(--muted)}.fresh span{padding-right:10px;margin-right:10px;border-right:1px solid var(--border)}.fresh span:last-child{border-right:0;margin-right:0;padding-right:0}.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px}.warn{color:var(--h-yellow);font-weight:600}.notice{background:var(--surface);border:1px solid var(--border);border-left:2px solid var(--muted);padding:10px 12px;display:flex;flex-direction:column;gap:4px}.notice code{font-family:JetBrains Mono,ui-monospace,monospace;color:var(--strong)}.btn:disabled{opacity:.4;cursor:default}.btn:disabled:hover{background:var(--surface)}.btn.primary:disabled:hover{background:var(--accent)}.btn.sm{height:24px;padding:0 8px;font-size:12px}.actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}table.data .actions{flex-wrap:nowrap;gap:4px}table.data.edit td{padding:3px 6px}table.data .cell{width:100%;min-width:90px;height:26px;border:1px solid var(--border);border-radius:0;background:var(--surface);padding:0 6px}table.data .cell+.cell{margin-top:3px}table.data .cell.wide{min-width:200px}table.data input[type=checkbox],.check input{width:14px;height:14px;margin:0;accent-color:var(--strong);vertical-align:middle}.check{display:inline-flex;gap:6px;align-items:center;cursor:pointer}table.data tr.due td:first-child{box-shadow:inset 2px 0 0 var(--neg)}.savebar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.savebar .spacer{flex:1}.errlist{margin:8px 0 0;padding:4px 10px 4px 26px;border-left:2px solid var(--neg);color:var(--neg);font-size:12px}.warnlist{margin:0;padding-left:18px;color:var(--h-yellow)}.dirty{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--h-yellow);border:1px solid currentColor;padding:0 6px}.unsaved{position:sticky;bottom:0;z-index:6;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:space-between;margin-top:12px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--h-yellow)}.pending{border:1px solid var(--border);padding:10px 12px;margin-top:8px}.pending-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:8px}details.history{margin-top:12px}details.history summary{cursor:pointer;font-size:10.5px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);font-weight:700;padding:4px 0;border-bottom:1px solid var(--border)}.pager{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin-top:8px}.idlist.pos span{color:var(--pos)}.idlist.neg span{color:var(--neg)}.idlist.warn span{color:var(--h-yellow);border-color:currentColor}.field input[type=file]{height:auto;border:0;padding:4px 0;min-width:0;background:transparent}.field input[type=file]::file-selector-button{height:26px;margin-right:8px;padding:0 10px;border:1px solid var(--border);border-radius:0;background:var(--surface);color:var(--text);cursor:pointer;font:inherit}.field input[type=file]::file-selector-button:hover{background:var(--surface-2)}@media(max-width:1360px){.app.with-profile{grid-template-columns:224px minmax(0,1fr)}.profile{position:fixed;right:0;top:0;width:min(420px,92vw);z-index:40;box-shadow:none;border-left:1px solid var(--border)}}@media(max-width:1100px){.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.app,.app.with-profile{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}.filterbar{position:static}}.splash{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.splash-logo{width:min(320px,70vw);height:auto;filter:invert(1);animation:c360-float 3.2s ease-in-out infinite}:root[data-theme=light] .splash-logo{filter:none}@keyframes c360-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media(prefers-reduced-motion:reduce){.splash-logo{animation:none}}:root[data-density=compact] table.data td{padding:2px 6px}:root[data-density=compact] table.data th{padding:4px 6px}.notice-banner{border:1px solid var(--border);border-left:3px solid var(--accent);padding:8px 12px;margin-bottom:12px;font-size:13px}.settings-form{display:grid;gap:14px;max-width:760px}.settings-form fieldset{border:1px solid var(--border);padding:12px 14px;margin:0}.settings-form legend{font-size:11px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);padding:0 6px}.settings-form label.row{display:flex;gap:8px;align-items:center;margin:6px 0;font-size:13px}.settings-form textarea{width:100%;min-height:64px;background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;font-size:13px;padding:6px}.side-actions{display:flex;gap:6px;margin-top:8px}
