:root{--bg:#0e1513;--surface:#16201e;--border:#26322f;--text:#e9f1ef;--muted:#93a5a1;--accent:#00c0ac;--accent-d:#00a896;--good:#34d399;--warn:#fbbf24;--block:#f87171}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent)}.wrap{max-width:1200px;margin:0 auto;padding:1.5rem}.row{align-items:center;gap:1rem;display:flex}.between{justify-content:space-between}h1{margin:0;font-size:1.4rem}.muted{color:var(--muted)}.btn{cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#04211d;border-radius:10px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent-d)}.btn.ghost{color:var(--text);border-color:var(--border);background:0 0;font-weight:500}.btn.ghost:hover{border-color:var(--muted)}.tabs{gap:.5rem;margin:1rem 0;display:flex}.tab{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.4rem .9rem;font-size:.85rem;text-decoration:none}.tab.active{background:var(--surface);color:var(--text);border-color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:900px;font-size:.85rem}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.6rem .8rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600}td.wrap-cell{white-space:normal;max-width:260px}.chip{border-radius:999px;padding:.12rem .5rem;font-size:.72rem;font-weight:600}.chip.ok{color:var(--good);background:color-mix(in srgb, var(--good) 15%, transparent)}.chip.pend{color:var(--warn);background:color-mix(in srgb, var(--warn) 15%, transparent)}.center{justify-content:center;align-items:center;min-height:100vh;display:flex}.login{width:340px}input,.input{border:1px solid var(--border);width:100%;color:var(--text);background:#0c1211;border-radius:10px;margin-top:.5rem;padding:.6rem .8rem;font-size:.95rem}.err{color:var(--block);margin-top:.5rem;font-size:.85rem}.ok{color:var(--good);margin-top:.5rem;font-size:.85rem}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.8rem 1.5rem;display:flex;position:sticky;top:0}.brand{letter-spacing:.01em;font-size:1.05rem;font-weight:800}.brand:before{content:"📦 "}.mainnav{flex-wrap:wrap;flex:1;gap:.3rem;display:flex}.navlink{color:var(--muted);border-radius:9px;padding:.45rem .8rem;font-size:.88rem;font-weight:500;text-decoration:none}.navlink:hover{color:var(--text);background:color-mix(in srgb, var(--accent) 10%, transparent)}.navlink.active{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.link-btn{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace}dialog{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:14px;width:min(440px,92vw);padding:1.3rem 1.5rem}dialog::backdrop{background:#0000008c}dialog h3{margin:0 0 1rem;font-size:1.1rem}dialog label{color:var(--muted);margin-top:.8rem;font-size:.78rem;display:block}.field{flex-direction:column;display:flex}.dialog-actions{justify-content:flex-end;gap:.6rem;margin-top:1.3rem;display:flex}.file-form{flex-direction:column;gap:.8rem;max-width:480px;display:flex}input[type=checkbox]{width:auto;accent-color:var(--accent);cursor:pointer;margin:0}th.sticky-actions,td.sticky-actions{z-index:1;background:color-mix(in srgb, var(--accent) 12%, var(--surface));border-left:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));position:sticky;right:0;box-shadow:-12px 0 14px -8px #000000b3}th.sticky-actions{background:color-mix(in srgb, var(--accent) 18%, var(--surface))}
