:root{--bg:#f4f2ee;--panel:#fff;--ink:#1c1b19;--muted:#6b675f;--line:#e2ded6;--accent:#2f6f4f;--accent-ink:#fff;--accent-soft:#e4efe8;--warn:#9a5b00;--warn-soft:#fbf0dc;--bad:#a3322b;--bad-soft:#f8e3e1;--radius:10px;--mono:"JetBrains Mono", ui-monospace, monospace}@media (prefers-color-scheme:dark){:root{--bg:#141412;--panel:#1d1c1a;--ink:#ecebe7;--muted:#a19d94;--line:#34322e;--accent:#6fbf94;--accent-ink:#0f1a14;--accent-soft:#1f2e26;--warn:#e0a64a;--warn-soft:#2f2516;--bad:#e57d74;--bad-soft:#321b19}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Inter Tight,system-ui,sans-serif;font-size:14px;line-height:1.45}button,input,textarea,select{font:inherit;color:inherit}.topbar{border-bottom:1px solid var(--line);background:var(--panel);z-index:10;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0}.brand{align-items:baseline;gap:10px;display:flex}.brand b{letter-spacing:-.01em;font-size:18px}.brand span{color:var(--muted);font-size:13px}.access{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.access input{width:140px}.layout{grid-template-columns:320px 1fr;align-items:start;gap:20px;padding:20px 24px 60px;display:grid}@media (max-width:900px){.layout{grid-template-columns:1fr;padding:16px}}.side{flex-direction:column;gap:16px;display:flex;position:sticky;top:76px}@media (max-width:900px){.side{position:static}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-size:13px;font-weight:600}.field{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;display:flex}input[type=text],input[type=password],textarea,select{background:var(--bg);border:1px solid var(--line);border-radius:8px;width:100%;padding:7px 9px}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}.seg{border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.seg button{cursor:pointer;text-align:left;background:0 0;border:0;padding:8px}.seg button small{color:var(--muted);font-size:11px;display:block}.seg button.on{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:disabled{opacity:.5;cursor:default}.btn.small{padding:4px 8px;font-size:12px}.btn.block{width:100%}.btn-col{flex-direction:column;gap:6px;display:flex}.drop{border:1.5px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--muted);background:var(--panel);cursor:pointer;padding:28px;transition:border-color .15s,background .15s}.drop.over{border-color:var(--accent);background:var(--accent-soft)}.drop b{color:var(--ink);margin-bottom:4px;font-size:16px;display:block}.drop.compact{padding:14px;font-size:12px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;display:flex}.toolbar .stat{color:var(--muted);font-size:12px}.spacer{flex:1}.grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px;display:grid}@media (max-width:520px){.grid{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.card .head{grid-template-columns:132px 1fr;gap:12px;padding:12px;display:grid}.thumb{background:var(--bg) center/cover no-repeat;border-radius:6px;width:132px;height:96px;position:relative}.thumb .badge{position:absolute;top:6px;left:6px}.fname{font-family:var(--mono);word-break:break-all;font-size:12px}.meta-line{color:var(--muted);margin-top:2px;font-size:12px}.badge{background:var(--bg);border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:2px 7px;font-size:11px;display:inline-block}.badge.ok{background:var(--accent-soft);color:var(--accent);border-color:#0000}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.badge.bad{background:var(--bad-soft);color:var(--bad);border-color:#0000}.badges{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.body{flex-direction:column;gap:8px;padding:0 12px 12px;display:flex}.count{float:right;font-family:var(--mono);font-size:11px}.count.over{color:var(--bad)}.row2{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.warns{flex-direction:column;gap:4px;display:flex}.warns div{background:var(--warn-soft);color:var(--warn);border-radius:6px;padding:6px 8px;font-size:12px}.warns div.bad{background:var(--bad-soft);color:var(--bad)}.note{color:var(--muted);font-size:12px}.rel-list{flex-direction:column;gap:6px;max-height:320px;display:flex;overflow:auto}.rel{border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr auto;gap:4px 8px;padding:8px;font-size:12px;display:grid}.rel input{padding:4px 6px;font-size:12px}.rel .d{color:var(--muted);font-family:var(--mono)}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;background:var(--bg);border-radius:99px;padding:3px 8px;font-size:11px}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.chip.match{border-style:dashed;border-color:var(--accent)}.foot{border-top:1px solid var(--line);align-items:center;gap:8px;margin-top:auto;padding:10px 12px;display:flex}.check{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:inline-flex}.empty{text-align:center;color:var(--muted);padding:48px 16px}.toast{background:var(--ink);color:var(--bg);z-index:50;border-radius:8px;max-width:420px;padding:10px 14px;font-size:13px;position:fixed;bottom:20px;right:20px}.spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite s;display:inline-block}@keyframes s{to{transform:rotate(360deg)}}.rel{grid-template-columns:40px 1fr;align-items:start}.rel-face{background:var(--bg) center/cover no-repeat;border:1px solid var(--line);border-radius:6px;width:40px;height:48px}.face-chip{align-items:center;gap:5px;display:inline-flex}.face-chip i{background:50%/cover no-repeat;border-radius:50%;width:18px;height:18px;display:inline-block}.btn:disabled{opacity:.55;cursor:default}details summary{cursor:pointer}
