:root{
  --night:#1c2070;--night-deep:#12153f;--indigo:#2d3090;--sky:#3b5bb5;--moon:#f7e75b;--magenta:#d742a8;--lotus:#6bbf4e;
  --bg:#f6f6fc;--bg-2:#fff;--bg-3:#ecedf9;--line:#d9dbf0;--text:#1b1f5e;--muted:#5a5f8f;--accent:#2d3090;--accent-ink:#fff;
  --card:#fff;--shadow:0 8px 28px rgba(45,48,144,.10);--chip:#eef0fb;--chip-ink:#2d3090;--free:#e6f6e0;--free-ink:#2b6b1f;--warn:#fff3d6;--warn-ink:#7a4d00;--bad:#fde4ec;--bad-ink:#8a1c4a;
  --display:"Baloo 2","Be Vietnam Pro","Noto Sans SC",system-ui,sans-serif;--body:"Be Vietnam Pro","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme:dark){:root{--bg:#12153f;--bg-2:#1a1e58;--bg-3:#222767;--line:#343a86;--text:#eef0ff;--muted:#aeb4e6;--accent:#f7e75b;--accent-ink:#1c2070;--card:#1a1e58;--shadow:0 8px 28px rgba(0,0,0,.35);--chip:#2a2f78;--chip-ink:#f2f3ff;--free:#1f3d22;--free-ink:#b9f0a8;--warn:#4a3a10;--warn-ink:#ffe1a1;--bad:#4a1830;--bad-ink:#ffb8d1}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
h1,h2,h3,h4{font-family:var(--display);line-height:1.15;margin:0}
h1{font-size:1.6rem;font-weight:800}h2{font-size:1.3rem;font-weight:800}h3{font-size:1.05rem;font-weight:700}
p{margin:0}
.wrap{max-width:1180px;margin:0 auto;padding-inline:18px}
.nav{background:var(--night);color:#fff;position:sticky;top:0;z-index:20}
.nav .wrap{display:flex;align-items:center;gap:14px;min-height:60px}
.nav .brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;color:#fff;text-decoration:none}
.nav .brand img{height:34px}
.nav .sp{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.9rem}
.nav a.lnk{color:#e8e9ff;text-decoration:none;padding:6px 10px;border-radius:999px}
.nav a.lnk:hover{background:rgba(255,255,255,.12)}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.76rem;font-weight:700;letter-spacing:.04em;background:var(--chip);color:var(--chip-ink);white-space:nowrap}
.pill.ok{background:var(--free);color:var(--free-ink)}.pill.warn{background:var(--warn);color:var(--warn-ink)}.pill.bad{background:var(--bad);color:var(--bad-ink)}.pill.moon{background:var(--moon);color:var(--night)}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:9px 18px;font-family:var(--display);font-weight:700;font-size:.95rem;cursor:pointer;border:2px solid transparent;text-decoration:none;background:var(--accent);color:var(--accent-ink)}
.btn.pink{background:var(--magenta);color:#fff}.btn.line{background:transparent;color:var(--text);border-color:var(--line)}.btn.sm{padding:6px 12px;font-size:.85rem}.btn:disabled{opacity:.6;cursor:default}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}
.f{display:grid;gap:5px}
.f label{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
input,select,textarea{font:inherit;padding:9px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);color:var(--text);width:100%}
textarea{min-height:90px}
.row{display:grid;gap:12px}
.row.c2{grid-template-columns:1fr 1fr}.row.c3{grid-template-columns:repeat(3,1fr)}
@media (max-width:640px){.row.c2,.row.c3{grid-template-columns:1fr}}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
.tabs button{border:0;background:var(--bg-3);font:inherit;font-family:var(--display);font-weight:700;padding:8px 16px;border-radius:999px;cursor:pointer;color:var(--text)}
.tabs button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink)}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
tr.click{cursor:pointer}tr.click:hover td{background:var(--bg-3)}
.tbl{overflow-x:auto}
.stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0}
.stat .card{padding:14px}
.stat b{display:block;font-family:var(--display);font-size:1.7rem;font-weight:800;color:var(--accent);line-height:1}
.stat span{font-size:.8rem;color:var(--muted)}
.chat{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto;padding:10px;background:var(--bg-3);border-radius:12px}
.msg{max-width:78%;padding:8px 12px;border-radius:14px;background:var(--card);border:1px solid var(--line);font-size:.92rem}
.msg.me{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-color:transparent}
.msg small{display:block;font-size:.72rem;opacity:.7;margin-top:3px}
.chatbox{display:flex;gap:8px;margin-top:8px}
.chatbox input{flex:1}
.muted{color:var(--muted);font-size:.9rem}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--night);color:#fff;padding:10px 18px;border-radius:999px;font-weight:600;z-index:200;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.toast[hidden]{display:none}
[hidden]{display:none!important}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
@media (max-width:900px){.grid2{grid-template-columns:1fr}}
.list{display:grid;gap:8px}
.item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer}
.item:hover{border-color:var(--magenta)}
.item.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--magenta);margin-left:6px}
.login{max-width:420px;margin:60px auto}
.login .card{padding:26px}
.err{color:var(--bad-ink);background:var(--bad);padding:8px 12px;border-radius:10px;font-size:.9rem}

/* CMS */
.upwrap{display:flex;gap:10px;align-items:center;margin-top:6px;flex-wrap:wrap}
.imgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:8px}
.imt{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--bg-3,#ecedf9);border:1px solid var(--line)}
.imt img{width:100%;height:100%;object-fit:cover;display:block}
.imb{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;background:rgba(0,0,0,.45)}
.imb button{border:0;background:transparent;color:#fff;cursor:pointer;padding:4px 6px;font-size:.8rem}
.imb button:hover{background:rgba(255,255,255,.2)}
.setprev{max-height:90px;width:auto;margin-top:6px;border-radius:8px;border:1px solid var(--line);background:#fff}
.cms-h{margin:18px 0 6px;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cms-f{margin-top:10px}
.cms-f code{font-size:.72rem}
.cms-act{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap}
.sch-it{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:var(--bg-2,#fff)}
.cms-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:.9rem}
.cms-inline label{display:flex;gap:4px;align-items:center}
