:root{
  --bg:#0b0816;--bg2:#120d22;--card:rgba(255,255,255,.045);--card2:rgba(255,255,255,.07);
  --line:rgba(255,255,255,.09);--text:#f4f1fb;--mute:#a59fbb;
  --pink:#ff2e93;--purple:#8b5cf6;--orange:#ff8a3d;--yellow:#ffd23f;--cyan:#22d3ee;--green:#22c55e;--red:#ef4444;
  --grad:linear-gradient(120deg,#ffd23f 0%,#ff8a3d 22%,#ff2e93 55%,#8b5cf6 100%);
  --radius:16px;--shadow:0 20px 60px -20px rgba(0,0,0,.6);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;min-height:100vh;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.w100{width:100%}
/* background orbs */
.bg-orbs{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.bg-orbs span{position:absolute;width:520px;height:520px;border-radius:50%;filter:blur(110px);opacity:.28;animation:float 18s ease-in-out infinite}
.bg-orbs span:nth-child(1){background:#ff2e93;top:-160px;left:-120px}
.bg-orbs span:nth-child(2){background:#8b5cf6;bottom:-200px;right:-120px;animation-delay:-6s}
.bg-orbs span:nth-child(3){background:#ff8a3d;top:40%;left:45%;width:360px;height:360px;opacity:.16;animation-delay:-12s}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(60px,-40px) scale(1.1)}66%{transform:translate(-40px,50px) scale(.95)}}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:12px;font-weight:700;font-size:14px;border:1px solid var(--line);background:var(--card2);color:var(--text);cursor:pointer;transition:.25s;font-family:inherit;white-space:nowrap}
.btn:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.25)}
.btn-grad{background:var(--grad);border:0;color:#fff;background-size:200% 200%;animation:gradmove 6s ease infinite;box-shadow:0 10px 30px -10px rgba(255,46,147,.7)}
@keyframes gradmove{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.btn-ghost{background:transparent}
.btn-sm{padding:7px 13px;font-size:12.5px;border-radius:10px}
.btn-xs{padding:5px 9px;font-size:11.5px;border-radius:8px}
.btn-danger{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.4);color:#fca5a5}
.btn-ok{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.4);color:#86efac}
.btn-warn{background:rgba(255,138,61,.15);border-color:rgba(255,138,61,.4);color:#fdba74}
/* forms */
label{display:block;font-size:12.5px;font-weight:600;color:var(--mute);margin-bottom:6px}
input,select,textarea{width:100%;padding:11px 14px;border-radius:11px;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--text);font:inherit;font-size:14px;outline:none;transition:.2s}
input:focus,select:focus,textarea:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,46,147,.18)}
select option{background:#1a1330}
textarea{min-height:100px;resize:vertical}
.field{margin-bottom:14px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.g2,.g3,.g4{grid-template-columns:1fr}}
.check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text)}
.check input{width:auto}
/* switch */
.switch{position:relative;width:44px;height:24px;display:inline-block}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:#3a3350;border-radius:30px;transition:.3s;cursor:pointer}
.switch span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.3s}
.switch input:checked+span{background:var(--pink)}
.switch input:checked+span:before{transform:translateX(20px)}
/* ===== Panel layout ===== */
.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:rgba(14,10,28,.85);backdrop-filter:blur(18px);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;z-index:50;transition:.3s}
.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 20px}
.brand b{display:block;font-size:15px}
.brand small{color:var(--mute);font-size:11.5px}
.logo-mark{width:42px;height:42px;border-radius:12px;background:var(--grad);display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:.5px;box-shadow:0 8px 24px -6px rgba(255,46,147,.7);animation:gradmove 6s ease infinite;background-size:200% 200%}
.sidebar nav{flex:1;overflow:auto;display:flex;flex-direction:column;gap:3px}
.sidebar nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;font-size:14px;font-weight:500;color:var(--mute);transition:.2s}
.sidebar nav a:hover{background:var(--card);color:var(--text)}
.sidebar nav a.active{background:linear-gradient(90deg,rgba(255,46,147,.22),rgba(139,92,246,.12));color:#fff;box-shadow:inset 3px 0 0 var(--pink)}
.ico{width:22px;text-align:center;font-size:16px}
.side-cta{margin-top:14px;padding:14px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.side-cta p{font-size:12px;color:var(--mute);margin-bottom:8px}
.main{margin-left:250px;min-height:100vh;display:flex;flex-direction:column}
.contact-strip{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;justify-content:center;padding:8px 20px;font-size:12.5px;background:linear-gradient(90deg,rgba(255,46,147,.14),rgba(139,92,246,.14));border-bottom:1px solid var(--line);color:#e9e3f7}
.contact-strip a:hover{color:#fff;text-decoration:underline}
.strip-cta{background:var(--grad);padding:3px 11px;border-radius:30px;font-weight:700;color:#fff}
.topbar{display:flex;align-items:center;gap:14px;padding:18px 28px}
.topbar h1{font-size:22px;font-weight:800;flex:1}
.top-right{display:flex;align-items:center;gap:10px}
.role-pill{font-size:11.5px;padding:4px 10px;border-radius:30px;border:1px solid var(--line);color:var(--mute)}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--grad);display:grid;place-items:center;font-weight:800}
.menu-btn{display:none;background:var(--card2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:7px 11px;font-size:18px;cursor:pointer}
.content{padding:0 28px 30px;flex:1;animation:fadeUp .5s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.pfoot{padding:18px 28px;border-top:1px solid var(--line);font-size:12.5px;color:var(--mute);text-align:center}
.pfoot a{color:#e9e3f7}
@media(max-width:960px){
  .sidebar{transform:translateX(-100%)}
  body.nav-open .sidebar{transform:none}
  .main{margin-left:0}.menu-btn{display:block}
  .topbar{padding:14px 16px}.content{padding:0 16px 24px}.topbar h1{font-size:18px}
  .role-pill{display:none}
}
/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;backdrop-filter:blur(10px);margin-bottom:18px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.card-head h3{font-size:16px}
.card-head p{font-size:12.5px;color:var(--mute)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:18px}
.stat{display:flex;gap:14px;align-items:center;padding:18px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);position:relative;overflow:hidden;transition:.3s}
.stat:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.2)}
.stat:after{content:"";position:absolute;right:-30px;top:-30px;width:100px;height:100px;border-radius:50%;opacity:.18;filter:blur(20px)}
.stat small{display:block;color:var(--mute);font-size:12.5px}
.stat b{font-size:24px;font-weight:800}
.stat em{display:block;font-style:normal;font-size:11.5px;color:var(--mute)}
.stat-ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:22px;flex-shrink:0}
.tone-pink .stat-ico{background:rgba(255,46,147,.16)}.tone-pink:after{background:var(--pink)}
.tone-purple .stat-ico{background:rgba(139,92,246,.18)}.tone-purple:after{background:var(--purple)}
.tone-orange .stat-ico{background:rgba(255,138,61,.16)}.tone-orange:after{background:var(--orange)}
.tone-green .stat-ico{background:rgba(34,197,94,.16)}.tone-green:after{background:var(--green)}
.tone-cyan .stat-ico{background:rgba(34,211,238,.16)}.tone-cyan:after{background:var(--cyan)}
.tone-red .stat-ico{background:rgba(239,68,68,.16)}.tone-red:after{background:var(--red)}
/* tables */
.table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}
th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--mute);padding:12px 14px;background:rgba(255,255,255,.03);font-weight:700}
td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:middle}
tr:hover td{background:rgba(255,255,255,.02)}
.mono{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;letter-spacing:.3px}
.muted{color:var(--mute);font-size:12.5px}
.actions{display:flex;flex-wrap:wrap;gap:5px}
.actions form{display:inline}
.badge{display:inline-block;padding:3px 10px;border-radius:30px;font-size:11.5px;font-weight:700}
.b-ok{background:rgba(34,197,94,.15);color:#86efac}.b-bad{background:rgba(239,68,68,.15);color:#fca5a5}
.b-info{background:rgba(34,211,238,.14);color:#67e8f9}.b-warn{background:rgba(255,138,61,.15);color:#fdba74}.b-mute{background:rgba(255,255,255,.08);color:var(--mute)}
.alert{margin:0 28px 16px;padding:13px 16px;border-radius:12px;font-size:14px;animation:fadeUp .4s}
.alert-success{background:rgba(34,197,94,.13);border:1px solid rgba(34,197,94,.35)}
.alert-error{background:rgba(239,68,68,.13);border:1px solid rgba(239,68,68,.35)}
.alert-info{background:rgba(34,211,238,.1);border:1px solid rgba(34,211,238,.3)}
@media(max-width:960px){.alert{margin:0 16px 14px}}
.empty{text-align:center;padding:40px 10px;color:var(--mute)}
.empty div{font-size:40px;margin-bottom:8px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.toolbar input,.toolbar select{width:auto;min-width:160px}
.pill{display:inline-block;padding:3px 9px;border-radius:8px;background:var(--card2);font-size:12px;margin:2px}
/* modal */
.modal{position:fixed;inset:0;background:rgba(5,3,12,.7);backdrop-filter:blur(6px);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:40px 14px;overflow:auto}
.modal.open{display:flex;animation:fadeUp .25s}
.modal-box{width:100%;max-width:560px;background:#16102a;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow)}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.modal .x{background:none;border:0;color:var(--mute);font-size:26px;cursor:pointer}
/* misc */
.wa-float{position:fixed;right:20px;bottom:20px;width:54px;height:54px;border-radius:50%;background:#25d366;display:grid;place-items:center;font-size:26px;box-shadow:0 10px 30px -6px rgba(37,211,102,.7);z-index:90;animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.6)}70%{box-shadow:0 0 0 18px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
.progress{height:8px;background:rgba(255,255,255,.08);border-radius:10px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--grad);border-radius:10px}
.lic-card{padding:22px;border-radius:20px;background:linear-gradient(135deg,rgba(255,46,147,.22),rgba(139,92,246,.22));border:1px solid rgba(255,255,255,.15);position:relative;overflow:hidden}
.lic-card:before{content:"";position:absolute;inset:-50%;background:conic-gradient(from 0deg,transparent,rgba(255,255,255,.08),transparent 30%);animation:spin 8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.lic-card>*{position:relative}
.post-thumb{width:52px;height:52px;border-radius:10px;object-fit:cover;background:var(--card2)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal .d{min-height:90px;border:1px solid var(--line);border-radius:10px;padding:6px;font-size:12px;background:var(--card)}
.cal .d.today{border-color:var(--pink)}
.cal .d.other{opacity:.35}
.cal .h{text-align:center;font-size:11.5px;color:var(--mute);font-weight:700}
.cal .ev{display:block;margin-top:4px;padding:2px 6px;border-radius:6px;background:rgba(255,46,147,.2);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal .ev.published{background:rgba(34,197,94,.2)}.cal .ev.failed{background:rgba(239,68,68,.25)}
@media(max-width:700px){.cal .d{min-height:60px}.cal .ev{font-size:0;height:6px;padding:0}}
.chat{display:flex;flex-direction:column;gap:10px}
.bubble{max-width:80%;padding:10px 14px;border-radius:14px;font-size:13.5px}
.bubble.in{background:var(--card2);align-self:flex-start;border-bottom-left-radius:4px}
.bubble.out{background:linear-gradient(120deg,rgba(255,46,147,.35),rgba(139,92,246,.35));align-self:flex-end;border-bottom-right-radius:4px}
.ai-box{border:1px dashed rgba(255,46,147,.5);border-radius:14px;padding:14px;background:rgba(255,46,147,.05)}
.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}
.tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:8px 14px;border-radius:10px;border:1px solid var(--line);font-size:13px;color:var(--mute)}
.tabs a.on{background:var(--grad);color:#fff;border:0}
/* auth pages */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:30px 16px}
.auth-card{width:100%;max-width:440px;background:rgba(22,16,42,.8);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow);animation:fadeUp .6s}
.auth-card h2{font-size:24px;margin-bottom:4px}
.auth-card .sub{color:var(--mute);font-size:14px;margin-bottom:24px}
.auth-foot{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px;color:var(--mute);text-align:center;line-height:1.9}
.auth-foot a{color:#fff}
