:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f0f2f5;--border: #dfe3e8;--text: #1b1f24;--muted: #646d78;--accent: #2563eb;--accent-soft: #e3ecfd;--free: #15803d;--free-soft: #dcf3e3;--partial: #b45309;--partial-soft: #fcefd9;--used: #b91c1c;--used-soft: #fbe1e1;--reserved: #6d28d9;--reserved-soft: #ece4fb;--shadow: 0 1px 2px rgb(0 0 0 / .06), 0 4px 16px rgb(0 0 0 / .06);--radius: 10px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0f1216;--surface: #171b21;--surface-2: #1f242c;--border: #2c333d;--text: #e6e9ed;--muted: #959fab;--accent: #6b9bff;--accent-soft: #1d2a45;--free: #4ade80;--free-soft: #133122;--partial: #fbbf24;--partial-soft: #3a2c0d;--used: #f87171;--used-soft: #3d1717;--reserved: #b79cff;--reserved-soft: #2a2145;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 4px 16px rgb(0 0 0 / .3);color-scheme:dark}}:root[data-theme=dark]{--bg: #0f1216;--surface: #171b21;--surface-2: #1f242c;--border: #2c333d;--text: #e6e9ed;--muted: #959fab;--accent: #6b9bff;--accent-soft: #1d2a45;--free: #4ade80;--free-soft: #133122;--partial: #fbbf24;--partial-soft: #3a2c0d;--used: #f87171;--used-soft: #3d1717;--reserved: #b79cff;--reserved-soft: #2a2145;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 4px 16px rgb(0 0 0 / .3);color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}.muted{color:var(--muted)}h1{font-size:18px;margin:0}h2{font-size:16px;margin:0 0 8px}h3{font-size:13px;margin:18px 0 6px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.top{display:flex;align-items:center;gap:16px;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.brand{display:flex;flex-direction:column;min-width:0}.brand .muted{font-size:12px}.search{flex:1;max-width:560px;margin-left:auto}.search input{width:100%;padding:9px 12px;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.search input:focus{outline:2px solid var(--accent);outline-offset:-1px}.tabs{display:flex;gap:4px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto}.tabs a{padding:10px 14px;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap}.tabs a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}main{padding:20px 24px 48px;max-width:1400px;margin:0 auto}.btn{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 12px;cursor:pointer}.btn:hover{background:var(--surface-2)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08);background:var(--accent)}.btn.danger{color:var(--used);border-color:var(--used);background:transparent}.btn.danger:hover{background:var(--used-soft)}.btn:disabled{opacity:.55;cursor:default}.actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;cursor:pointer;text-align:left;font:inherit;color:inherit}.stat:hover{border-color:var(--accent)}.stat .v{font-size:24px;font-weight:650;font-variant-numeric:tabular-nums}.stat .l{color:var(--muted);font-size:12px}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px}.filters label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.filters select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:5px 8px;max-width:180px}.spacer{flex:1}.cols-wrap{position:relative}.cols-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:10;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px}.cols-menu .item{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;cursor:grab;-webkit-user-select:none;user-select:none}.cols-menu .item:hover{background:var(--surface-2)}.cols-menu .item .grip{color:var(--muted);margin-left:auto}.cols-menu .item.drag-over{outline:2px dashed var(--accent)}.cols-menu .foot{border-top:1px solid var(--border);margin-top:6px;padding-top:6px;display:flex;justify-content:space-between}.cols-menu .hint{font-size:12px;color:var(--muted);padding:2px 6px 6px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--surface-2);font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0}th[draggable=true]{cursor:grab}th.drag-over{box-shadow:inset 3px 0 0 var(--accent)}th .arrow{color:var(--accent);margin-left:4px}tbody tr{cursor:pointer}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.name{font-weight:550}td.notes{color:var(--muted);max-width:320px}.empty{padding:32px;text-align:center;color:var(--muted)}.count{color:var(--muted);font-size:12px;margin:8px 2px}.table-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:550;white-space:nowrap}.badge.free{color:var(--free);background:var(--free-soft)}.badge.partial{color:var(--partial);background:var(--partial-soft)}.badge.in-use{color:var(--used);background:var(--used-soft)}.badge.reserved{color:var(--reserved);background:var(--reserved-soft)}.badge.active{color:var(--free);background:var(--free-soft)}.badge.planned{color:var(--reserved);background:var(--reserved-soft)}.badge.archived{color:var(--muted);background:var(--surface-2)}.chip{display:inline-block;padding:1px 7px;margin:1px 2px 1px 0;border-radius:6px;font-size:12px;background:var(--surface-2);border:1px solid var(--border)}a.chip{color:var(--text);text-decoration:none}a.chip:hover{border-color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:8px;cursor:pointer}.card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.card .row{display:flex;justify-content:space-between;align-items:start;gap:8px}.card .title{font-weight:600}.card .desc{color:var(--muted);font-size:13px}.card .meta{font-size:12px;color:var(--muted);margin-top:auto}.project{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px}.project .head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.project p{color:var(--muted);margin:6px 0 10px}.project ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px}.project li{padding:6px 10px;background:var(--surface-2);border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;gap:8px}.project li:hover{outline:1px solid var(--accent)}.insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.bar-row{display:grid;grid-template-columns:140px 1fr 40px;gap:10px;align-items:center;margin:6px 0;font-size:13px;cursor:pointer}.bar-row:hover .lbl{color:var(--accent)}.bar{height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden;display:flex}.bar span{display:block;height:100%}.bar .f{background:var(--free)}.bar .p{background:var(--partial)}.bar .u{background:var(--used)}.bar .r{background:var(--reserved)}.bar .a{background:var(--accent)}.bar-row .n{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:8px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}.drawer{position:fixed;inset:0 0 0 auto;width:min(520px,100%);z-index:20;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow);overflow-y:auto}.drawer-inner{padding:22px;position:relative}.drawer .close{position:absolute;top:14px;right:14px}.drawer h2{font-size:20px;padding-right:40px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:15}.kv{width:100%;border-collapse:collapse}.kv th,.kv td{font-size:13px;padding:6px 8px;border-bottom:1px solid var(--border);position:static}.kv th{width:38%;background:transparent;cursor:default;white-space:normal}.qty-row{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.qty-row div{background:var(--surface-2);border-radius:8px;padding:8px 12px;min-width:80px}.qty-row b{display:block;font-size:18px}.qty-row span{font-size:12px;color:var(--muted)}.links a{display:block;margin:4px 0}.idline{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--muted)}.error{color:var(--used);background:var(--used-soft);border-radius:8px;padding:8px 10px;margin:8px 0;font-size:13px}.small{font-size:12px;margin:-4px 0 4px}.field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.field input,.field select,.field textarea,.pair input,.pair select,.link-row input,.link-row select{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:7px 10px}.field textarea{resize:vertical}.form{display:flex;flex-direction:column;gap:12px}.form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-foot{display:flex;gap:8px;align-items:center;margin-top:4px}.pair{display:flex;gap:6px;align-items:center;color:var(--text)}.pair input{flex:1;min-width:0}.pair input[type=number],.link-row input[type=number]{flex:0 0 76px;width:76px}.pair .grow{flex:1;min-width:0}.link-row{display:flex;gap:8px;align-items:center;margin:6px 0}.link-row select{flex:1;min-width:0}.modal-scrim{z-index:25}.modal{position:fixed;z-index:30;top:50%;left:50%;transform:translate(-50%,-50%);width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.modal-head h2{margin:0}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:min(380px,100%);display:flex;flex-direction:column;gap:12px}.login-card h1{font-size:20px}@media (max-width: 720px){.top{flex-wrap:wrap;padding:12px 16px;gap:10px}.search{order:3;flex-basis:100%;max-width:none}.actions{margin-left:auto}.tabs{padding:0 8px}main{padding:16px 16px 40px}.filters label{flex:1 1 45%;justify-content:space-between}.filters select{max-width:none;flex:1}.bar-row{grid-template-columns:100px 1fr 32px}.insights,.form .two{grid-template-columns:1fr}}
