:root{--ink:#1b2430;--muted:#667085;--line:#e1e5ea;--bg:#f2f4f7;--acc:#1f3a8a;--ok:#12805c;--warn:#b54708;--bad:#c0262d}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
[hidden]{display:none!important}
h1{font-size:1.3rem;margin:.2rem 0 .8rem}
p{margin:.4rem 0}
img{max-width:100%}
a{color:var(--acc)}

.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;padding:10px 14px;background:#111827;color:#fff}
.top img{border-radius:6px}
.top strong{flex:1}
#who{font-size:.8rem;color:#c9d1dc;max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
main{max-width:980px;margin:0 auto;padding:12px}
.panel{max-width:380px;margin:30px auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}

label{display:block;margin:0 0 12px;font-size:.88rem;font-weight:600}
label.inline{display:flex;align-items:center;gap:6px;margin:0;font-weight:500;white-space:nowrap}
label.inline input{width:auto;margin:0}
input,select,textarea{display:block;width:100%;margin-top:4px;padding:10px 12px;border:1px solid #cdd3db;border-radius:8px;background:#fff;color:var(--ink);font:inherit}
input:focus,select:focus{outline:2px solid var(--acc);border-color:var(--acc)}
.btn{display:inline-block;padding:9px 14px;border:1px solid #cdd3db;border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-align:center}
.btn:disabled{opacity:.55;cursor:default}
.btn.primary{background:var(--acc);border-color:var(--acc);color:#fff}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.danger{background:#fff;color:var(--bad);border-color:#efb3b6}
.btn.small{padding:5px 10px;font-size:.82rem}
.btn.block{display:block;width:100%;margin:10px 0}
.msg{color:var(--bad);min-height:1.2em}
.hint{color:var(--muted);font-size:.85rem}

.tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:10px}
.tabs button{flex:1 0 auto;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}
.tabs button.on{background:var(--acc);border-color:var(--acc);color:#fff}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.toolbar select,.toolbar input[type=search]{width:auto;flex:1 1 180px;margin:0}