:root{--ink:#17202a;--mut:#6b7785;--line:#e3e7ec;--bg:#f6f8fa;--acc:#0f766e;--red:#b42318}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}
header{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--line)}
h1{font-size:1.1rem;margin:0;letter-spacing:.1em;color:var(--acc)}
#status{font-size:.8rem;color:var(--mut)}
#bar{display:flex;gap:.5rem;margin-left:auto;flex-wrap:wrap}
main{max-width:1100px;margin:1rem auto;padding:0 1rem}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
th,td{padding:.65rem .8rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);background:#fbfcfd}
tr:last-child td{border-bottom:0}
.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.act{white-space:nowrap;text-align:right}
#empty{text-align:center;color:var(--mut)}
button{font:inherit;padding:.45rem .85rem;border:1px solid var(--acc);border-radius:6px;background:var(--acc);color:#fff;cursor:pointer}
button.ghost{background:#fff;color:var(--acc)}
button.danger{background:var(--red);border-color:var(--red);color:#fff}
button.ghost.danger{background:#fff;color:var(--red)}
td button{padding:.25rem .6rem;font-size:.85rem;margin-left:.3rem}
dialog{border:0;border-radius:10px;padding:1.25rem;width:min(92vw,420px);box-shadow:0 10px 40px #0004}
dialog::backdrop{background:#0006}
h2{margin:0 0 .5rem;font-size:1.05rem}
label{display:block;margin:.6rem 0;font-size:.85rem;color:var(--mut)}
input,textarea{display:block;width:100%;margin-top:.2rem;padding:.5rem;font:inherit;border:1px solid var(--line);border-radius:6px;color:var(--ink)}
menu{display:flex;justify-content:flex-end;gap:.5rem;padding:0;margin:1rem 0 0}
#toast{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:.5rem 1rem;border-radius:6px;z-index:9}
@media(max-width:700px){
thead{display:none}table,tbody,tr,td{display:block;width:100%}
tr{padding:.6rem .8rem;border-bottom:1px solid var(--line)}
td{display:flex;justify-content:space-between;gap:1rem;border:0;padding:.2rem 0;text-align:right}
td::before{content:attr(data-label);color:var(--mut);font-size:.8rem;text-align:left}
td.act{justify-content:flex-end}td.act::before{content:none}}
