:root{--bg:#0d1117;--panel:#161b22;--panel2:#21262d;--line:#30363d;--line2:#484f58;--tx:#e6edf3;--mut:#8b949e;--dim:#6e7681;--accent:#58a6ff;--ok:#3fb950;--err:#f85149;--warn:#d29922;--info:#58a6ff;--off:#8b949e}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--tx);font:14px/1.45 Inter Tight,system-ui,sans-serif}button{font:inherit;cursor:pointer}input{font:inherit}.hide{display:none!important}a{color:var(--accent);text-decoration:none}#app{display:flex;min-height:100vh}#side{width:300px;flex:0 0 300px;border-right:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:14px}#main{flex:1;padding:24px;max-width:1140px}.brand{font-size:17px;font-weight:700}.brand small{display:block;color:var(--mut);font-size:11px;font-weight:400;letter-spacing:.04em;text-transform:uppercase}.search{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--tx);padding:7px 10px;width:100%;font-size:12px}.search::placeholder{color:var(--dim)}.sec{color:var(--dim);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin:4px 0 -6px}.ksk{display:flex;gap:8px;align-items:baseline;padding:7px 8px;border-radius:6px;cursor:pointer}.ksk:hover{background:var(--panel)}.ksk.sel{background:var(--panel2);outline:1px solid var(--line2)}.ksk b{font-weight:600;font-size:13px}.ksk .sub{color:var(--mut);font-size:11px;margin-left:auto;white-space:nowrap}.dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;align-self:center}.navlinks{margin-top:auto;display:flex;flex-direction:column;gap:8px;font-size:13px}.navlinks a{color:var(--mut);padding:6px 8px;border-radius:6px;cursor:pointer}.navlinks a:hover,.navlinks a.on{background:var(--panel);color:var(--tx)}.head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.head h1{font-size:22px;font-weight:700}.chip{border:1px solid var(--line2);color:var(--mut);border-radius:20px;padding:2px 10px;font-size:11px;font-weight:600;white-space:nowrap}.chip.err{border-color:var(--err);color:var(--err);background:#f851491f}.chip.ok{border-color:var(--ok);color:var(--ok)}.chip.warn{border-color:var(--warn);color:var(--warn)}.chip.info{border-color:var(--accent);color:var(--accent)}.spacer{flex:1}.live{color:var(--mut);font-size:11px;display:flex;align-items:center;gap:6px}.live .dot{background:var(--ok)}.live.bad .dot{background:var(--warn)}.btn{background:var(--panel2);border:1px solid var(--mut);color:var(--tx);border-radius:6px;padding:6px 14px;font-size:12px;font-weight:600}.btn:disabled{opacity:.5;cursor:default;border-color:var(--line);color:var(--dim)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#0d1117}.btn.ghost{border-color:var(--line);color:var(--mut)}.banner{border:1px solid #f8514966;background:#f8514914;border-radius:8px;padding:10px 14px;margin-bottom:16px;display:flex;gap:10px;align-items:flex-start}.banner .ic{color:var(--err);font-size:16px;line-height:1}.banner b{color:var(--err)}.banner .sub{color:var(--mut);font-size:12px}.grid{display:grid;grid-template-columns:minmax(0,700px) minmax(0,1fr);gap:18px;align-items:start}.col{display:flex;flex-direction:column;gap:16px;min-width:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}.card h3{font-size:14px;font-weight:600;margin-bottom:12px;display:flex;gap:10px;align-items:baseline}.card h3 .mut{margin-left:auto}.mut{color:var(--mut);font-weight:400;font-size:11px}.rowline{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mut);margin-top:6px}.rowline b{color:var(--tx);font-weight:600}.rowline .spacer{border-bottom:1px dashed var(--line);flex:1;height:0}.state{display:flex;gap:14px;align-items:center;border-radius:8px;padding:14px 18px;border:1px solid var(--line)}.state .big{font-size:26px;font-weight:700}.state .sub{font-size:11px;color:var(--mut)}.mtx{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.mchip{border:1px solid var(--line);background:var(--panel2);color:var(--dim);border-radius:4px;font-size:10px;padding:2px 8px}.mchip.on{border-color:var(--err);background:#f8514926;color:var(--err);font-weight:600}.mchip.ok{border-color:var(--accent);background:#58a6ff26;color:var(--accent);font-weight:600}.mchip.violet{border-color:#bc8cff;background:#bc8cff26;color:#bc8cff}.reasons{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.gauge{height:8px;border-radius:4px;background:var(--panel2);overflow:hidden;margin-top:4px}.gauge i{display:block;height:100%;background:var(--ok)}.gauge i.low{background:var(--warn)}.gauge i.empty{background:var(--err)}table{width:100%;border-collapse:collapse;font-size:12px}th{color:var(--dim);font-weight:500;text-align:left;padding:4px 8px 4px 0;border-bottom:1px solid var(--line)}td{padding:5px 8px 5px 0;border-bottom:1px solid var(--line);color:var(--tx)}td.mut{color:var(--mut)}.ok{color:var(--ok)}.er{color:var(--err)}.wr{color:var(--warn)}.seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg div{flex:1;text-align:center;padding:8px 6px;font-size:12px;cursor:pointer;color:var(--mut);background:var(--panel)}.seg div.on{background:var(--accent);color:#0d1117;font-weight:600}.seg small{display:block;font-size:10px;font-weight:400;opacity:.8}.tiles{display:flex;gap:6px;align-items:center}.tile{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:8px 10px;cursor:pointer;font-size:10px;font-weight:600;color:var(--mut)}.tile.on{border-color:var(--accent);color:var(--tx)}.tile .dg{display:grid;gap:1px}.tile .dg span{background:var(--line2);border-radius:1px;display:block}.tile.on .dg span{background:var(--accent)}.slots{display:flex;gap:10px;margin:10px 0}.slot{position:relative;width:84px;height:56px;border-radius:6px;border:1px dashed var(--line2);background:#0d1117;display:flex;align-items:center;justify-content:center;color:var(--mut);cursor:pointer;overflow:hidden}.slot.full{border-style:solid;border-color:var(--line)}.slot img{position:absolute;top:9px;right:12px;bottom:9px;left:12px;width:calc(100% - 24px);height:calc(100% - 18px);object-fit:cover;border-radius:3px}.slot .x{position:absolute;top:4px;right:4px;width:16px;height:16px;border-radius:50%;background:#0d1117d9;color:var(--tx);font-size:10px;display:flex;align-items:center;justify-content:center;z-index:2}img.mini{width:30px;height:20px;object-fit:cover;border-radius:4px;border:1px solid var(--line);vertical-align:middle;margin:1px}.slot .hint{font-size:8px;color:var(--dim);position:absolute;bottom:4px}.warn{color:var(--warn);font-size:11px;margin:4px 0 10px}.link{color:var(--warn);font-size:12px;cursor:pointer;background:none;border:none;font-weight:600}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1117cc;display:flex;align-items:center;justify-content:center;z-index:50}.modalbox{background:var(--panel);border:1px solid var(--line2);border-radius:10px;padding:18px;min-width:420px;max-width:70vw;max-height:70vh;overflow:auto}.modalbox h3{margin-bottom:12px}.picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.pick{border:1px solid var(--line);border-radius:6px;overflow:hidden;cursor:pointer;background:var(--panel2)}.pick img{width:100%;height:72px;object-fit:cover;display:block}.pick div{font-size:10px;color:var(--mut);padding:4px 6px}.lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.libcard{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}.libcard img{width:100%;height:96px;object-fit:cover;display:block}.libcard .meta{display:flex;font-size:11px;color:var(--mut);padding:6px 8px;align-items:center}.libcard .meta .spacer{flex:1}.drop{border:1px dashed var(--line2);border-radius:10px;padding:22px;text-align:center;color:var(--mut);margin-bottom:16px}.drop.on{border-color:var(--accent);color:var(--accent)}@media (max-width:1100px){.grid{grid-template-columns:1fr}}.userchip{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mut)}.userchip b{color:var(--tx);font-weight:600}.startwrap{display:flex;min-height:100vh;align-items:center;justify-content:center}.startcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:34px 44px;max-width:540px;text-align:center}.startcard h1{font-size:21px;margin:0 0 10px}.startcard p{color:var(--mut);margin:0 0 24px;font-size:13px}.startcard .sbtn{display:inline-block;background:var(--accent);color:#0d1117;border-radius:8px;padding:10px 26px;font-weight:600;text-decoration:none;margin:0 8px}.startcard .salt{display:block;color:var(--mut);font-size:12px;margin-top:18px}
