:root{--navy:#0a1a8f;--bg:#f3f4f7;--text:#1d1f27;--muted:#555a6a;--line:#d9dce6}
*{box-sizing:border-box}
body{margin:0;font-family:Montserrat,system-ui,sans-serif;background:var(--bg);color:var(--text)}
header{background:var(--navy);color:#fff;padding:18px 24px;display:flex;justify-content:space-between;align-items:center}
header b{letter-spacing:.06em}header a{color:#fff}
main{max-width:980px;margin:24px auto;padding:0 16px;display:grid;gap:20px}
.card{background:#fff;border:1px solid var(--line);padding:20px}
h2{margin:0 0 12px;font-size:18px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.full{grid-column:1/-1}
label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}
input,textarea{width:100%;padding:10px;border:1px solid var(--line);font:inherit;font-size:14px;background:#fff;color:var(--text)}
textarea{min-height:84px;resize:vertical}
button{font:inherit;font-weight:600;padding:10px 18px;border:0;background:var(--navy);color:#fff;cursor:pointer}
button.sec{background:#fff;color:var(--navy);border:1px solid var(--navy)}
button.del{background:#fff;color:#b00020;border:1px solid #b00020}
button:disabled{opacity:.5;cursor:wait}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
#status{font-size:14px}.ok{color:#0a7a2f}.err{color:#b00020}
.preview{width:140px;height:112px;object-fit:cover;border:1px solid var(--line);display:none;margin-top:8px}
.item{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.item img{width:56px;height:56px;object-fit:cover}
.item span{flex:1;font-size:14px}
.hint{font-size:13px;color:var(--muted);margin:0 0 12px}
@media(max-width:640px){.grid{grid-template-columns:1fr}}

main[hidden],.gate[hidden]{display:none}
#boot .hint{margin:0}
header .hr{display:flex;gap:16px;align-items:center}
header button.sec{padding:6px 14px;font-size:13px}
.gate{max-width:420px;margin:48px auto;padding:0 16px}
.gate#setup{max-width:560px}
.gate .sp{margin-top:12px}
.gate .row{margin-top:18px}
#lmsg,#smsg{font-size:13px}
#scode{font-family:ui-monospace,Consolas,monospace;font-size:12px;word-break:break-all}

/* ---------- tabs & CMS panes ---------- */
.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:2px solid var(--line)}
.tab{background:transparent;color:var(--muted);border:0;border-bottom:3px solid transparent;margin-bottom:-2px;padding:10px 16px}
.tab.on{color:var(--navy);border-bottom-color:var(--navy)}
.pane{display:grid;gap:20px}.pane[hidden]{display:none}
.chk{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--text);margin:0 0 14px}.chk input{width:auto}
select{width:100%;padding:10px;border:1px solid var(--line);font:inherit;font-size:14px;background:#fff}
.btnlink{color:var(--navy);font-weight:600;font-size:14px}
.row.tight{margin-top:0;margin-bottom:12px}
.srch{margin-bottom:8px}
.tot{align-self:end;margin:0 0 10px}
.record{border-top:1px solid var(--line);padding:12px 0;display:grid;gap:4px}
.record .meta{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:14px}
.record .meta b{font-weight:700}.record .when{color:var(--muted);font-size:12px;margin-left:auto}
.record p{margin:4px 0 0;font-size:14px;white-space:pre-wrap;word-break:break-word}
.record .act{display:flex;gap:8px;margin-top:6px}
.record button,.erow button{padding:6px 12px;font-size:13px}
.erow{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding:12px 0}
.erow .fields{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.erow.reg{grid-template-columns:1fr 160px auto}
.erow .btns{display:flex;gap:6px;flex-wrap:wrap}
.av{width:56px;height:56px;border-radius:50%;object-fit:cover;background:#dfe3fa;display:block}
.filebtn{display:inline-block;padding:10px 18px;border:1px solid var(--navy);color:var(--navy);font-weight:600;cursor:pointer;background:#fff}
.filebtn.sm{padding:5px 10px;font-size:12px}
.thumbs{display:flex;flex-wrap:wrap;gap:10px}
.thumb{position:relative}.thumb .av{width:52px;height:52px}
.thumb button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;padding:0;border-radius:50%;background:#b00020;font-size:13px;line-height:1}
.savebar{position:sticky;bottom:0;background:var(--bg);padding:12px 0;margin-top:0}
.empty{color:var(--muted);font-size:14px;padding:8px 0}
@media(max-width:720px){.erow{grid-template-columns:56px 1fr}.erow .btns{grid-column:1/-1}.erow .fields{grid-template-columns:1fr 1fr}.erow.reg{grid-template-columns:1fr}}
