:root{--bg:#0d0b09;--panel:#1c1712;--panel2:#241c15;--line:rgba(232,191,92,.2);--gold:#e0b34d;--text:#f4ebdc;--muted:#aa9e8e;--red:#d65e58;--green:#54b873;--purple:#a45fe0;--blue:#4da4dc}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 15% 0,rgba(188,123,35,.14),transparent 30%),var(--bg);color:var(--text);font:14px/1.45 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.admin-topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:rgba(12,10,8,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.admin-brand{display:flex;align-items:center;gap:10px}.admin-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:linear-gradient(135deg,#f2d074,#a76b13);color:#281800;font-weight:900}.admin-brand div{display:grid}.admin-brand small{color:var(--muted)}.top-actions{display:flex;gap:8px;align-items:center}.top-actions a,.ghost,.btn{border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--text);background:rgba(255,255,255,.03);text-decoration:none;cursor:pointer}.btn{background:linear-gradient(135deg,#eed078,#a97520);color:#241600;font-weight:800}.danger{background:rgba(202,69,60,.12);color:#ffb9b4;border-color:rgba(214,82,73,.35)}.hidden{display:none!important}main{width:min(1450px,calc(100% - 28px));margin:0 auto;padding:28px 0 70px}.login-wrap{min-height:70vh;display:grid;place-items:center}.login-card{width:min(520px,100%);padding:28px;border-radius:20px;border:1px solid var(--line);background:linear-gradient(160deg,#2a2017,#17130f);box-shadow:0 24px 70px rgba(0,0,0,.4)}h1,h2,h3,p{margin-top:0}.muted{color:var(--muted)}.field{display:grid;gap:6px;margin:12px 0}.field input,.field select{width:100%;padding:11px 12px;border-radius:9px;border:1px solid var(--line);background:#100d0a;color:var(--text)}.wide{width:100%}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat{padding:18px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}.stat b{display:block;font-size:27px;color:#f0ca70}.stat span{color:var(--muted)}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tab{border:1px solid var(--line);background:transparent;color:var(--muted);padding:9px 12px;border-radius:9px;cursor:pointer}.tab.active{background:rgba(210,158,53,.12);color:#f2cf79}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.panel+.panel{margin-top:14px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.section-head h2{margin:0}.album-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.album-row{display:grid;grid-template-columns:190px 1fr;gap:14px;padding:14px;border-radius:14px;background:var(--panel2);border:1px solid rgba(255,255,255,.05)}.cover{width:100%;aspect-ratio:2.33/1;background:#0b0907 center/cover no-repeat;border-radius:10px;border:1px solid rgba(255,255,255,.08);position:relative}.rarity{position:absolute;left:8px;top:8px;padding:4px 7px;border-radius:999px;font-size:11px;font-weight:800}.rarity.gold{background:#8f6318}.rarity.purple{background:#68379a}.rarity.blue{background:#236b98}.album-form{display:grid;grid-template-columns:1fr 1fr;gap:9px}.album-form label{display:grid;gap:4px;color:var(--muted);font-size:12px}.album-form input,.album-form select{padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:#120f0c;color:var(--text)}.span2{grid-column:1/-1}.checkline{display:flex!important;align-items:center;gap:8px}.checkline input{width:auto}.row-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.mini{padding:7px 9px;font-size:12px}.fragment-tools{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07)}.frag-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:8px}.frag{aspect-ratio:4/3;background:#0c0a08 center/cover no-repeat;border:1px solid rgba(255,255,255,.08);border-radius:6px;position:relative;overflow:hidden;cursor:pointer}.frag span{position:absolute;left:3px;top:3px;background:rgba(0,0,0,.68);padding:1px 4px;border-radius:4px;font-size:10px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;white-space:nowrap}.table th{color:var(--muted);font-weight:600}.status{padding:4px 7px;border-radius:999px;font-size:11px}.status.active,.status.approved{background:rgba(73,174,104,.14);color:#9ce5b2}.status.blocked,.status.rejected{background:rgba(210,79,71,.14);color:#ffb3ae}.status.pending{background:rgba(224,179,77,.14);color:#f2cf7d}.toast{position:fixed;right:18px;bottom:18px;background:#231a12;border:1px solid var(--line);padding:11px 14px;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}.loading{padding:50px;text-align:center;color:var(--muted)}.note{padding:10px 12px;border-radius:10px;background:rgba(224,179,77,.07);border:1px solid rgba(224,179,77,.18);color:#d9c8a7}.create-form{display:grid;grid-template-columns:2fr 1.2fr .7fr .8fr auto;gap:8px;align-items:end}.create-form input,.create-form select{padding:9px;border:1px solid var(--line);background:#100d0a;color:var(--text);border-radius:8px}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.album-admin-grid{grid-template-columns:1fr}.create-form{grid-template-columns:1fr 1fr}.create-form .btn{grid-column:1/-1}}@media(max-width:650px){.stats{grid-template-columns:1fr}.album-row{grid-template-columns:1fr}.album-form{grid-template-columns:1fr}.span2{grid-column:auto}.frag-grid{grid-template-columns:repeat(4,1fr)}}

/* v9: support tickets and plan controls */
.ticket-admin-list{display:grid;gap:14px}.ticket-admin-card{border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:15px;background:rgba(255,255,255,.025)}.ticket-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ticket-body{white-space:pre-wrap;margin:12px 0;line-height:1.5}.ticket-existing-reply{padding:10px 12px;border-left:3px solid #d3a64c;background:rgba(211,166,76,.08);margin:10px 0;border-radius:8px}.ticket-reply-form textarea{width:100%;min-height:74px;resize:vertical;margin:8px 0}.danger-text{color:#ff8d83}.row-actions{display:flex;gap:8px;flex-wrap:wrap}

/* v10: unified controls, filters, admin roles and character clan tools */
button,input,select,textarea{font:inherit}
.field input,.field select,.field textarea,
.album-form input,.album-form select,
.create-form input,.create-form select,
.ticket-reply-form textarea,
.filter-bar input,.filter-bar select,
.character-admin-actions select,
.admin-add-form select{
  border:1px solid rgba(232,191,92,.2);
  background:#100d0a;
  color:var(--text);
  border-radius:9px;
  outline:none;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.field textarea,.ticket-reply-form textarea{padding:11px 12px;resize:vertical;line-height:1.45}
.ticket-reply-form textarea{min-height:92px;margin:8px 0;background:#100d0a;color:var(--text)}
.field input:focus,.field select:focus,.field textarea:focus,
.album-form input:focus,.album-form select:focus,.create-form input:focus,.create-form select:focus,
.ticket-reply-form textarea:focus,.filter-bar input:focus,.filter-bar select:focus,.character-admin-actions select:focus,.admin-add-form select:focus{
  border-color:rgba(224,179,74,.62);box-shadow:0 0 0 3px rgba(224,179,74,.08)
}
textarea::placeholder,input::placeholder{color:#756b5f}
select option{background:#15110d;color:var(--text)}
.center-link{display:block;text-align:center}
.admin-context{display:flex;gap:9px;align-items:center;justify-content:flex-end;margin-bottom:12px}
.stats{grid-template-columns:repeat(7,minmax(130px,1fr))}
.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:10px;border:1px solid rgba(232,191,92,.12);border-radius:12px;background:rgba(0,0,0,.13)}
.filter-search{display:flex;align-items:center;gap:7px;min-width:min(340px,100%);flex:1;border:1px solid rgba(232,191,92,.2);border-radius:9px;background:#100d0a;padding-left:10px}
.filter-search input{border:0!important;box-shadow:none!important;flex:1;padding:9px 10px 9px 0;background:transparent}
.filter-bar>select{padding:9px 10px;min-width:150px}
.filter-count{margin-left:auto;color:var(--muted);font-size:12px;white-space:nowrap}
.filtered-out{display:none!important}
.character-admin-actions{display:grid;grid-template-columns:minmax(190px,1fr) auto auto;gap:6px;min-width:430px}
.character-admin-actions select{grid-column:1/2;padding:7px 8px;min-width:210px}
.character-admin-actions .danger:last-child{grid-column:auto}
.admin-add-form{display:grid;grid-template-columns:minmax(260px,2fr) minmax(180px,1fr) auto;gap:10px;align-items:end}
.admin-add-form label{display:grid;gap:6px;color:var(--muted);font-size:12px}.admin-add-form select{padding:10px}
.file-label{cursor:pointer;display:inline-block}
@media(max-width:1250px){.stats{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}.character-admin-actions{min-width:360px;grid-template-columns:1fr 1fr}.character-admin-actions select{grid-column:1/-1}.admin-add-form{grid-template-columns:1fr 1fr}.admin-add-form .btn{grid-column:1/-1}}
@media(max-width:650px){.filter-bar{align-items:stretch}.filter-bar>*{width:100%;margin-left:0}.filter-search{min-width:0}.admin-add-form{grid-template-columns:1fr}}
