:root{--p:#6A1B9A;--p2:#F1E6F7;--gold:#C9A25E;--ink:#1D1B20;--mute:#79747E;--line:#ECE7EE;--bg:#F8F7F9;--card:#fff;--err:#B3261E}
*{box-sizing:border-box}body{margin:0;font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--p);text-decoration:none}.muted{color:var(--mute)}.center{text-align:center}.mono{font-family:ui-monospace,Consolas,monospace}
.shell{display:flex;min-height:100vh}aside{width:250px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);padding:20px 12px;position:sticky;top:0;height:100vh;overflow:auto}
aside a{display:block;padding:7px 12px;border-radius:999px;color:var(--ink)}aside a:hover{background:var(--bg)}aside a.act{background:var(--p2);color:var(--p);font-weight:600}
.brand{font:700 22px Georgia,serif;margin-bottom:12px}.over{display:block;font:600 11px system-ui;letter-spacing:.18em;color:var(--gold)}
.grp{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin:16px 12px 4px}.logout{margin-top:20px;color:var(--err)!important}
main{flex:1;padding:28px;min-width:0}.bar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
h1{font:600 26px Georgia,serif;margin:0;flex:1}h1 small{font:500 13px system-ui;color:var(--mute);margin-left:6px}
.btn,button.btn{background:var(--p);color:#fff;border:0;border-radius:999px;padding:10px 20px;font-weight:600;cursor:pointer}.btn.ghost{background:#fff;color:var(--p);border:1px solid var(--line)}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:6px;overflow:auto}
table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:12px;color:var(--mute);font-weight:600}
tr:last-child td{border-bottom:0}td.act{white-space:nowrap;text-align:right}td.act a,td.act form{display:inline;margin-left:10px}
.link{background:none;border:0;color:var(--p);cursor:pointer;font:inherit;padding:0}.danger{color:var(--err)}
.thumb{width:44px;height:44px;object-fit:cover;border-radius:10px}.pill{padding:2px 10px;border-radius:999px;background:var(--bg);font-size:12px}.pill.on{background:#E3F4EA;color:#1E7B45}
.search input{border:1px solid var(--line);border-radius:999px;padding:9px 16px;min-width:240px;background:#fff}
.pager{margin-top:14px;display:flex;gap:6px;flex-wrap:wrap}.pager a{padding:6px 12px;border-radius:999px;background:#fff;border:1px solid var(--line)}.pager a.act{background:var(--p);color:#fff}
.form{padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}.f{display:flex;flex-direction:column;gap:6px}.f>span{font-size:12px;font-weight:600;color:var(--mute)}
.f-textarea,.f-longtext,.f-json,.f-image,.f-audio,.f-video{grid-column:1/-1}.f-bool{flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:10px}
input[type=text],input[type=number],input[type=date],select,textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;background:#fff;width:100%}
textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--p2);border-color:var(--p)}
.media{display:flex;flex-direction:column;gap:8px}.preview{max-width:220px;max-height:160px;border-radius:14px;object-fit:cover}
.actions{grid-column:1/-1;display:flex;justify-content:flex-end}.flash{background:#E3F4EA;color:#1E7B45;padding:10px 16px;border-radius:14px;margin-bottom:14px}.flash.err,.err{background:#FBE9E7;color:var(--err)}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.stat span{color:var(--mute);font-size:12px}.stat b{display:block;font:600 28px Georgia,serif;color:var(--p)}
.login{max-width:360px;margin:12vh auto;background:#fff;border-radius:28px;padding:32px;border:1px solid var(--line)}.login h1{margin-bottom:0}.login form{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.login input{border:1px solid var(--line);border-radius:999px;padding:12px 18px;font:inherit}.login button{background:var(--p);color:#fff;border:0;border-radius:999px;padding:12px;font-weight:600;cursor:pointer}.login .err{padding:8px 14px;border-radius:12px}
@media(max-width:800px){.shell{flex-direction:column}aside{width:auto;height:auto;position:static}.form{grid-template-columns:1fr}main{padding:16px}}
