/* admin.css — 1254.info admin · v2 "warm black" design system */
[data-theme="light"]{--bg:#fafafa;--surf:#ffffff;--surf2:#f0f0f0;--sunk:#f4f4f4;--b:rgba(0,0,0,.08);--bh:rgba(0,0,0,.17);--t1:#191919;--t2:#6b6b6b;--t3:#b3b3b3;--acc:#c05d1e;--acc2:#d97a3d;--acc-bg:rgba(192,93,30,.08);--acc-b:rgba(192,93,30,.26);--acc-ink:#fff;--blue:#2563eb;--blue-bg:rgba(37,99,235,.08);--blue-b:rgba(37,99,235,.2);--red:#dc2626;--red-bg:rgba(220,38,38,.07);--red-b:rgba(220,38,38,.2);--am:#b45309;--am-bg:rgba(180,83,9,.09);--am-b:rgba(180,83,9,.24);--grn:#15803d;--grn-bg:rgba(21,128,61,.08);--grn-b:rgba(21,128,61,.22);--sh:0 1px 2px rgba(0,0,0,.05),0 8px 28px rgba(0,0,0,.06);--sh2:0 2px 6px rgba(0,0,0,.07),0 24px 60px rgba(0,0,0,.12);color-scheme:light;}
[data-theme="dark"]{--bg:#171717;--surf:#1f1f1f;--surf2:#292929;--sunk:#121212;--b:rgba(255,255,255,.07);--bh:rgba(255,255,255,.16);--t1:#ededed;--t2:#9b9b9b;--t3:#525252;--acc:#e8935a;--acc2:#f2b183;--acc-bg:rgba(232,147,90,.1);--acc-b:rgba(232,147,90,.3);--acc-ink:#141414;--blue:#7aa5f8;--blue-bg:rgba(122,165,248,.1);--blue-b:rgba(122,165,248,.25);--red:#f38080;--red-bg:rgba(243,128,128,.1);--red-b:rgba(243,128,128,.25);--am:#e5b567;--am-bg:rgba(229,181,103,.1);--am-b:rgba(229,181,103,.26);--grn:#7fce8f;--grn-bg:rgba(127,206,143,.1);--grn-b:rgba(127,206,143,.25);--sh:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.35);--sh2:0 2px 8px rgba(0,0,0,.5),0 28px 70px rgba(0,0,0,.55);color-scheme:dark;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:var(--bg);color:var(--t1);min-height:100dvh;font-size:15px;}
.serif{font-family:'Instrument Serif',Georgia,serif;font-weight:400;letter-spacing:-.01em;}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001s!important;transition-duration:.001s!important}}

/* ── Shell ── */
.shell{display:flex;min-height:100dvh;}
.sidebar{width:244px;flex-shrink:0;background:var(--surf);border-right:1px solid var(--b);display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;z-index:60;}
.sb-logo{padding:22px 24px 16px;font-size:23px;font-weight:800;letter-spacing:-.05em;}
.sb-logo span{color:var(--acc);}
.sb-logo small{display:block;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--t3);font-weight:500;margin-top:3px;}
.sb-sec{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--t3);padding:18px 24px 8px;}
.sb-item{display:flex;align-items:center;gap:12px;margin:1px 10px;padding:11px 14px;font-size:14px;font-weight:650;color:var(--t2);text-decoration:none;border-radius:12px;transition:all .15s;}
.sb-item svg{width:19px;height:19px;fill:currentColor;flex-shrink:0;}
.sb-item:hover{color:var(--t1);background:var(--surf2);}
.sb-item.active{color:var(--acc);background:var(--acc-bg);}
.sb-item .chip{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:.1em;border:1px dashed var(--b);border-radius:100px;padding:2px 8px;color:var(--t3);}
.sb-spacer{flex:1;}
.sb-scope{margin:0 10px 8px;padding:10px 14px;border:1px dashed var(--b);border-radius:12px;font-size:11.5px;color:var(--t2);}
.sb-scope b{color:var(--t1);}
.sb-user{padding:16px 20px;border-top:1px solid var(--b);display:flex;align-items:center;gap:11px;}
.sb-avatar{width:36px;height:36px;border-radius:11px;background:var(--acc-bg);color:var(--acc);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0;}
.sb-uinfo{min-width:0;flex:1;}
.sb-uname{font-size:13.5px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-urole{font-family:'JetBrains Mono',monospace;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);margin-top:1px;}
.sb-out{background:none;border:none;color:var(--t3);cursor:pointer;padding:7px;border-radius:9px;transition:all .15s;}
.sb-out:hover{color:var(--red);background:var(--red-bg);}
.sb-out svg{width:17px;height:17px;fill:currentColor;display:block;}

.content{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{height:62px;background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--b);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:50;}
.tb-title{font-size:16px;font-weight:800;letter-spacing:-.02em;}
.tb-right{display:flex;align-items:center;gap:10px;}
.t-toggle{display:flex;background:var(--surf);border:1px solid var(--b);border-radius:10px;padding:3px;gap:2px;}
.t-btn{width:32px;height:27px;border-radius:7px;border:none;background:transparent;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:background .15s;color:var(--t1);}
.t-btn.act{background:var(--surf2);box-shadow:0 1px 3px rgba(0,0,0,.12);}
.page{flex:1;padding:28px 26px 70px;max-width:1240px;width:100%;margin:0 auto;animation:pageIn .35s cubic-bezier(.22,1,.36,1) both;}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.page-h{margin-bottom:22px;}
.page-h h1{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:32px;letter-spacing:-.01em;}
.page-h p{font-size:14px;color:var(--t2);margin-top:5px;}

.burger{display:none;background:none;border:1px solid var(--b);border-radius:10px;width:38px;height:34px;cursor:pointer;color:var(--t1);align-items:center;justify-content:center;}
.burger svg{width:18px;height:18px;fill:currentColor;}
@media(max-width:880px){
  .sidebar{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .25s cubic-bezier(.22,1,.36,1);box-shadow:0 0 70px rgba(0,0,0,.45);}
  .sidebar.open{transform:none;}
  .burger{display:flex;}
  .sb-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:55;}
  .sb-backdrop.show{display:block;}
  .page{padding:20px 16px 60px;}
}

/* ── Components ── */
.grid-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:24px;}
.stat{background:var(--surf);border:1px solid var(--b);border-radius:18px;padding:20px 22px;box-shadow:var(--sh);}
.stat-val{font-size:2rem;font-weight:800;letter-spacing:-.04em;line-height:1;}
.stat-lbl{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);margin-top:9px;}
.stat.hot{border-color:var(--acc-b);}
.stat.hot .stat-val{color:var(--acc);}

.card{background:var(--surf);border:1px solid var(--b);border-radius:20px;box-shadow:var(--sh);}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--b);}
.card-title{font-size:15px;font-weight:800;letter-spacing:-.02em;}
.card-body{padding:22px;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:13px;padding:12px 22px;font:inherit;font-size:14px;font-weight:750;cursor:pointer;transition:transform .12s,filter .15s,background .15s,border-color .15s;text-decoration:none;white-space:nowrap;}
.btn:active{transform:scale(.97);}
.btn svg{width:16px;height:16px;fill:currentColor;}
.btn-acc{background:var(--acc);color:var(--acc-ink);box-shadow:0 6px 20px -6px var(--acc-b);}
.btn-acc:hover{filter:brightness(1.07);}
.btn-ghost{background:transparent;border:1px solid var(--b);color:var(--t2);}
.btn-ghost:hover{border-color:var(--bh);color:var(--t1);background:var(--surf2);}
.btn-red{background:var(--red-bg);border:1px solid var(--red-b);color:var(--red);}
.btn-red:hover{filter:brightness(1.1);}
.btn-sm{padding:8px 15px;font-size:12.5px;border-radius:11px;}
.btn-sm svg{width:14px;height:14px;}
.btn-lg{padding:15px 28px;font-size:15px;border-radius:15px;}
.btn:disabled{opacity:.55;cursor:default;}

.input,.select,.textarea{width:100%;background:var(--sunk);border:1px solid var(--b);border-radius:13px;padding:13px 16px;font:inherit;font-size:14.5px;color:var(--t1);transition:border-color .15s,box-shadow .15s,background .15s;}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3.5px var(--acc-bg);background:var(--surf);}
.textarea{resize:vertical;min-height:82px;}
.flabel{display:block;font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--t2);margin-bottom:8px;}
.fhint{font-size:11.5px;color:var(--t3);margin-top:6px;line-height:1.5;}

.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.03em;border-radius:100px;padding:5px 13px;text-transform:capitalize;}
.badge::before{content:'';width:5.5px;height:5.5px;border-radius:50%;background:currentColor;}
.badge.draft{background:var(--surf2);color:var(--t2);border:1px solid var(--b);}
.badge.open{background:var(--grn-bg);color:var(--grn);border:1px solid var(--grn-b);}
.badge.closed{background:var(--red-bg);color:var(--red);border:1px solid var(--red-b);}
.badge.new{background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-b);}
.badge.reviewed{background:var(--am-bg);color:var(--am);border:1px solid var(--am-b);}
.badge.accepted{background:var(--grn-bg);color:var(--grn);border:1px solid var(--grn-b);}
.badge.rejected{background:var(--red-bg);color:var(--red);border:1px solid var(--red-b);}
.badge.global{background:var(--acc-bg);color:var(--acc);border:1px solid var(--acc-b);text-transform:uppercase;font-size:9.5px;letter-spacing:.08em;}

.empty{text-align:center;padding:52px 24px;color:var(--t3);}
.empty svg{width:42px;height:42px;fill:var(--t3);opacity:.55;margin-bottom:14px;}
.empty-title{font-size:15.5px;font-weight:800;color:var(--t2);margin-bottom:6px;}
.empty-sub{font-size:13px;line-height:1.65;max-width:340px;margin:0 auto;}

.toast-wrap{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:400;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;}
.toast{background:var(--surf);border:1px solid var(--bh);color:var(--t1);border-radius:14px;padding:13px 22px;font-size:14px;font-weight:650;box-shadow:var(--sh2);animation:toastIn .3s cubic-bezier(.22,1,.36,1) both;display:flex;align-items:center;gap:10px;}
.toast.ok{border-color:var(--grn-b);}
.toast.ok::before{content:'✓';color:var(--grn);font-weight:900;}
.toast.bad{border-color:var(--red-b);}
.toast.bad::before{content:'✕';color:var(--red);font-weight:900;}
@keyframes toastIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.toast.out{animation:toastOut .25s both;}
@keyframes toastOut{to{opacity:0;transform:translateY(10px)}}

.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);z-index:300;display:none;align-items:center;justify-content:center;padding:20px;}
.modal-bg.show{display:flex;}
.modal{background:var(--surf);border:1px solid var(--b);border-radius:22px;width:100%;max-width:480px;padding:28px;box-shadow:var(--sh2);animation:pop .3s cubic-bezier(.22,1,.36,1) both;max-height:88dvh;overflow:auto;}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.modal-title{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:24px;margin-bottom:16px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;}

.skel{border-radius:12px;background:linear-gradient(90deg,var(--surf2) 25%,var(--surf) 50%,var(--surf2) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;}
@keyframes shimmer{to{background-position:-200% 0}}

/* tabs */
.tabs{display:flex;gap:4px;background:var(--surf);border:1px solid var(--b);border-radius:14px;padding:5px;width:fit-content;margin-bottom:22px;max-width:100%;overflow-x:auto;}
.tab{border:none;background:transparent;font:inherit;font-size:13.5px;font-weight:750;color:var(--t2);padding:10px 22px;border-radius:10px;cursor:pointer;transition:all .15s;white-space:nowrap;}
.tab.act{background:var(--acc-bg);color:var(--acc);}

/* filter chips */
.fchip{font:inherit;font-size:12.5px;font-weight:700;background:var(--surf);border:1px solid var(--b);border-radius:100px;padding:8px 16px;color:var(--t2);cursor:pointer;transition:all .13s;}
.fchip.act{background:var(--acc-bg);color:var(--acc);border-color:var(--acc-b);}

/* data table */
.dtable{width:100%;border-collapse:collapse;}
.dtable th{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);text-align:left;padding:12px 16px;border-bottom:1px solid var(--b);}
.dtable td{padding:14px 16px;font-size:14px;border-bottom:1px solid var(--b);}
.dtable tr:last-child td{border-bottom:none;}
.dtable tbody tr{transition:background .12s;}
.dtable tbody tr.click{cursor:pointer;}
.dtable tbody tr:hover{background:var(--surf2);}

/* bars */
.sbar-row{display:flex;align-items:center;gap:11px;margin-bottom:7px;}
.sbar-lbl{font-size:12.5px;color:var(--t2);width:130px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;font-weight:600;}
.sbar-track{flex:1;height:11px;background:var(--surf2);border-radius:100px;overflow:hidden;}
.sbar-fill{height:100%;background:var(--acc);border-radius:100px;transition:width .7s cubic-bezier(.22,1,.36,1);}
.sbar-n{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--t3);width:40px;flex-shrink:0;}

/* drawer */
.drawer-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);z-index:200;opacity:0;pointer-events:none;transition:opacity .2s;}
.drawer-bg.show{opacity:1;pointer-events:auto;}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,100vw);background:var(--surf);border-left:1px solid var(--b);z-index:210;transform:translateX(100%);transition:transform .28s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;}
.drawer.show{transform:none;}
.drawer-head{padding:20px 24px;border-bottom:1px solid var(--b);display:flex;align-items:center;justify-content:space-between;gap:10px;}
.drawer-title{font-size:16px;font-weight:800;}
.drawer-close{background:none;border:none;color:var(--t3);cursor:pointer;font-size:22px;padding:4px 10px;border-radius:9px;}
.drawer-close:hover{color:var(--t1);background:var(--surf2);}
.drawer-body{flex:1;overflow-y:auto;padding:22px 24px;}
.drawer-foot{padding:16px 24px;border-top:1px solid var(--b);display:flex;flex-direction:column;gap:12px;}
