:root{--surface: #fafaf8;--card: #ffffff;--ink: #1a1a1e;--ink-2: #44444c;--muted: #71717a;--hairline: #e4e4e7;--accent: #7c3aed;--accent-ink: #ffffff;--error-bg: #fef2f2;--error-ink: #b91c1c;--scrim: rgb(23 23 26 / .4);--shadow-card: 0 1px 2px rgb(23 23 26 / .05), 0 4px 12px rgb(23 23 26 / .07);--hairline-soft: color-mix(in srgb, var(--hairline) 55%, transparent);color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--surface: #121215;--card: #1b1b1f;--ink: #ededf0;--ink-2: #c2c2c9;--muted: #8b8b94;--hairline: #2e2e34;--accent: #a78bfa;--accent-ink: #1a1033;--error-bg: #3a1414;--error-ink: #fca5a5;--scrim: rgb(0 0 0 / .55);--shadow-card: 0 1px 2px rgb(0 0 0 / .3), 0 4px 14px rgb(0 0 0 / .45)}}:root[data-theme=dark]{--surface: #121215;--card: #1b1b1f;--ink: #ededf0;--ink-2: #c2c2c9;--muted: #8b8b94;--hairline: #2e2e34;--accent: #a78bfa;--accent-ink: #1a1033;--error-bg: #3a1414;--error-ink: #fca5a5;--scrim: rgb(0 0 0 / .55);--shadow-card: 0 1px 2px rgb(0 0 0 / .3), 0 4px 14px rgb(0 0 0 / .45);color-scheme:dark}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--surface);color:var(--ink);font:14px/1.45 system-ui,Segoe UI,sans-serif}h1{font-size:17px;margin:0}.muted{color:var(--muted)}.grow{flex:1}.error{background:var(--error-bg);color:var(--error-ink);border-radius:8px;padding:10px 14px;margin-bottom:10px}.footnote{font-size:12px;margin-top:10px}.shell{width:100%;height:100dvh;display:flex;flex-direction:column;padding:16px 20px}.body{flex:1;min-height:0;display:flex;align-items:stretch;gap:16px}.content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}@media(max-width:900px),(max-height:480px){.shell{height:auto}}.topbar{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding-bottom:14px}.brand{flex:1;min-width:220px}.tabs{display:flex;gap:4px;background:var(--card);border:1px solid var(--hairline);border-radius:8px;padding:3px}.tab{border:0;background:transparent;color:var(--ink-2);padding:6px 14px;border-radius:6px;cursor:pointer;font:inherit}.tab.active{background:var(--accent);color:var(--accent-ink)}.page{flex:1;min-height:0;display:flex;flex-direction:column;transition:opacity .12s}.page.dim{opacity:.55}.pagebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.field{display:flex;flex-direction:column;gap:4px}.field>span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}select,input[type=date],input[type=search],input[type=email],input[type=password]{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--hairline);border-radius:6px;padding:6px 8px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font:inherit;font-size:13px;padding:5px 10px;border-radius:999px;border:1px solid var(--hairline);background:var(--surface);color:var(--muted);cursor:pointer}.chip.on{border-color:var(--accent);color:var(--ink)}.chip.clear{border-style:dashed}.search{min-width:240px}.ghost{font:inherit;background:transparent;border:1px solid var(--hairline);color:var(--ink-2);border-radius:6px;padding:6px 12px;cursor:pointer}.ghost:hover:not(:disabled){border-color:var(--accent)}.ghost:disabled{opacity:.4;cursor:default}.sidebar{flex:none;width:240px;display:flex;flex-direction:column;gap:16px;align-self:flex-start;max-height:100%;overflow-y:auto}.sidebar-card{background:var(--card);border:1px solid var(--hairline);border-radius:10px;box-shadow:var(--shadow-card);padding:14px;display:flex;flex-direction:column;gap:16px}.sidebar-card .field select,.sidebar-card .field input{width:100%}.sidebar-actions{gap:8px}.sidebar-actions .ghost{width:100%;text-align:left}.sidebar-head{display:flex;align-items:center;justify-content:space-between}.sidebar-head h2{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.sidebar-head .close,.menu-toggle,.scrim{display:none}@media(max-width:900px){.menu-toggle{display:inline-block}.sidebar{display:none}.sidebar.open{display:flex;position:fixed;top:0;bottom:0;left:0;width:min(300px,85vw);padding:14px;background:var(--surface);overflow-y:auto;z-index:20}.sidebar.open .close{display:inline-block}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:19}}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px;transition:opacity .12s}.cards.dim{opacity:.55}.card{background:var(--card);border:1px solid var(--hairline);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-card)}.card-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.card-value{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.card-value.small{font-size:15px}.card-sub{font-size:12px;color:var(--muted)}.tablewrap{flex:1;min-height:0;overflow:auto;background:var(--card);border:1px solid var(--hairline);border-radius:10px}table{width:100%;border-collapse:separate;border-spacing:0;white-space:nowrap}th,td{padding:8px 12px;border-bottom:1px solid var(--hairline);text-align:left}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}thead th{position:sticky;top:0;background:var(--card);font-size:12px;color:var(--muted);z-index:1}.th{all:unset;cursor:pointer;color:inherit;font:inherit}.th:hover{color:var(--ink)}tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}tr.clickable{cursor:pointer}tfoot td{position:sticky;bottom:0;background:var(--card);font-weight:600;border-bottom:0;border-top:2px solid var(--hairline)}.empty{padding:32px;text-align:center;color:var(--muted)}.pagination{flex:none;display:flex;align-items:center;gap:10px;margin-top:10px}.rows-per{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.pagination select{padding:4px 6px}.pagination .ghost{padding:4px 10px}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:30;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:min(560px,100%);max-height:min(680px,90dvh);display:flex;flex-direction:column;gap:12px;background:var(--card);border:1px solid var(--hairline);border-radius:10px;padding:16px}.modal-wide{width:min(1080px,100%);height:min(90dvh,820px);max-height:90dvh}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h2{margin:0;font-size:15px}.modal-add{display:flex;gap:8px}.modal-add .search{flex:1;min-width:0}.modal-suggestions{display:flex;flex-direction:column;gap:4px}.modal .suggestion{text-align:left}.modal-list{overflow-y:auto;display:flex;flex-direction:column;gap:6px}.modal-rule{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--hairline);border-radius:8px}.badge{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border:1px solid var(--hairline);border-radius:999px;padding:2px 8px}.drill-detail>td{padding:0 12px 10px 28px;background:color-mix(in srgb,var(--accent) 4%,transparent)}.drill-receipt{width:100%}.drill-receipt td{padding:4px 10px;border-bottom:1px solid var(--hairline-soft);font-size:13px}.drill-receipt tr:last-child td{border-bottom:0}.drill-receipt .qtycol{width:72px}.drill-receipt tr.muted td{color:var(--muted)}.compare-row{flex:1;min-height:0;display:flex;gap:12px;overflow:auto}.compare-col{flex:1;min-width:190px}.compare-col h3{margin:0 0 6px}.compare-col ul{list-style:none;margin:0;padding:0}.compare-col li{display:flex;align-items:baseline;gap:8px;padding:5px 6px;border-radius:6px;border-bottom:1px solid var(--hairline-soft);font-size:13px}.compare-col li:last-child{border-bottom:0}.compare-col li.hl{background:color-mix(in srgb,var(--accent) 12%,transparent)}.compare-rank{color:var(--muted);font-variant-numeric:tabular-nums;min-width:18px;text-align:right}.compare-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-val{font-variant-numeric:tabular-nums;white-space:nowrap}.compare-col .empty{padding:16px 0}.scatter{position:relative;margin-bottom:12px;padding:8px 10px}.scatter svg{display:block}.dot{fill:var(--accent);fill-opacity:.12;cursor:pointer;transition:fill-opacity .12s}.dot.on{fill-opacity:.5}.dot.hot{fill-opacity:.85;stroke:var(--ink);stroke-width:1.25;pointer-events:none}.scatter-gem,.scatter-vol{fill:color-mix(in srgb,var(--accent) 6%,transparent)}.scatter-gem.on,.scatter-vol.on{fill:color-mix(in srgb,var(--accent) 15%,transparent)}.scatter-split{stroke:var(--accent);stroke-opacity:.5;stroke-dasharray:4 4}.scatter-grid{stroke:var(--hairline-soft)}.scatter-axis{fill:var(--muted);font-size:10px}.scatter-corner{fill:var(--muted);font-size:10px;opacity:.85}.scatter-tip{position:absolute;transform:translate(-50%,-100%);background:var(--card);border:1px solid var(--hairline);border-radius:8px;padding:6px 9px;pointer-events:none;white-space:nowrap;display:flex;flex-direction:column;gap:1px;font-size:12px;box-shadow:0 4px 14px var(--scrim);z-index:2}.scatter-tip.below{transform:translate(-50%)}.login{min-height:100dvh;display:grid;place-items:center;padding:20px}.login form{width:min(360px,100%);background:var(--card);border:1px solid var(--hairline);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:14px}.login label{display:flex;flex-direction:column;gap:4px;color:var(--ink-2);font-size:13px}.login button{font:inherit;background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:10px;cursor:pointer}.login button:disabled{opacity:.6}
