:root{color-scheme:dark;--bg: #111318;--panel: #1a1d24;--line: #2b3040;--text: #e8eaf0;--muted: #8b93a7;--accent: #5b8def;--pass: #2f9e6b;--fail: #c44b4b;--warn: #d4a017;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:var(--text);background:#12151c;border:1px solid var(--line);border-radius:6px;padding:8px 10px}button{cursor:pointer;background:#243049}button.primary{background:var(--accent);border-color:transparent;color:#fff}button.danger{background:var(--fail);border-color:transparent}button.ghost{background:transparent}.shell{display:flex;min-height:100vh}nav.side{width:220px;background:var(--panel);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:8px}nav.side h1{font-size:16px;margin:0 0 12px}nav.side a,nav.side button{display:block;width:100%;text-align:left;padding:8px 10px}nav.side a.active{background:#243049}main{flex:1;padding:20px;overflow:auto}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px}.card .label{color:var(--muted);font-size:12px}.card .value{font-size:28px;font-weight:700;margin-top:4px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px;align-items:center}table{width:100%;border-collapse:collapse;background:var(--panel)}th,td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;font-size:13px;vertical-align:top}th{color:var(--muted);font-weight:600;white-space:nowrap}th.sortable{padding:0}button.sort-btn{background:transparent;border:0;border-radius:0;color:var(--muted);font-size:13px;font-weight:600;padding:8px 10px;width:100%;text-align:left;display:inline-flex;align-items:center;gap:6px}button.sort-btn:hover,th[aria-sort=ascending] button.sort-btn,th[aria-sort=descending] button.sort-btn{color:var(--text)}button.sort-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sort-mark{font-size:9px;line-height:1;opacity:.8}.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.row.cols-3{grid-template-columns:1fr 1fr 1fr}.muted{color:var(--muted)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#243049;font-size:12px}.badge.Quarantine,.badge.Scrap{background:#4a2222}.badge.Stock{background:#243049}.badge.Installed{background:#1d3d2d}.badge.Bench{background:#3d3420}.badge.Deleted,tr.deleted{opacity:.7}tr.selected td{background:#243049}th.col-check,td.col-check{width:36px;padding-right:0}input.check{width:16px;height:16px;padding:0;margin:0;accent-color:var(--accent)}.bulk{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px;margin:0 0 14px;display:grid;gap:10px}.bulk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.bulk label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.bulk .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}form.stack,.stack{display:flex;flex-direction:column;gap:8px}form.stack label{font-size:12px;color:var(--muted)}.error{color:#f0a0a0}@media(max-width:800px){.shell{flex-direction:column}nav.side{width:auto;flex-direction:row;flex-wrap:wrap}.row,.row.cols-3{grid-template-columns:1fr}}
