/* Shield Control v2 – global visual layer. The existing PHP logic stays untouched. */
:root,html[data-theme="dark"]{
  --bg:#070b12;--bg2:#0b111b;--bg3:#101824;--bg4:#151f2d;
  --inp:#0a111b;--th:#f2f7fb;--tx:#dce5ee;--ts:#c8d3df;--tm:#8291a3;--bd:#1f2c3b;--bdl:#2a3a4c;
  --pr:#11c5b4;--prl:#52e0d2;--prg:linear-gradient(135deg,#18d3bf,#099b92);--prgl:rgba(17,197,180,.12);
  --gr:#30d79b;--rd:#ff5f70;--yw:#f5c451;--or:#ff9f57;--pu:#a78bfa;
  --sh:0 18px 50px rgba(0,0,0,.24);--rl:16px;--r:11px;--tr:.18s ease;
}
*{scrollbar-color:#29394a transparent;scrollbar-width:thin}
html{background:var(--bg)}
body{background:
  radial-gradient(circle at 72% -10%,rgba(17,197,180,.09),transparent 28rem),
  radial-gradient(circle at 100% 75%,rgba(55,102,255,.06),transparent 32rem),var(--bg);
  color:var(--ts);font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;letter-spacing:-.005em}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,#000,transparent 78%)}
a{transition:color var(--tr),border-color var(--tr),background var(--tr),transform var(--tr)}
.sb{width:258px;background:rgba(7,11,18,.94);border-right:1px solid var(--bd);box-shadow:12px 0 45px rgba(0,0,0,.16);backdrop-filter:blur(18px)}
.sb-brand{height:82px;padding:18px 20px;border-bottom:1px solid var(--bd);gap:12px}
.sb-logo{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#23d9c6,#079b91);color:#04110f;box-shadow:0 9px 28px rgba(17,197,180,.24);display:grid;place-items:center;flex:0 0 auto}
.sb-name{font-size:15px;font-weight:750;color:var(--th);letter-spacing:-.02em}
.sb-sub{margin-top:3px;font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--tm);max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-nav{padding:13px 11px 170px}
.sb-sect{padding:16px 11px 7px;color:#5f7084;font-size:9px;font-weight:750;letter-spacing:.16em}
.sb-a{min-height:39px;margin:2px 0;padding:9px 11px;border:1px solid transparent;border-radius:10px;color:#96a5b6;font-size:12.5px;font-weight:550;gap:10px}
.sb-a .ic{width:20px;color:#617387;font-size:14px;text-align:center;transition:color var(--tr)}
.sb-a:hover{color:var(--th);background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.04);transform:translateX(2px)}
.sb-a:hover .ic{color:var(--prl)}
.sb-a.on{background:linear-gradient(90deg,rgba(17,197,180,.15),rgba(17,197,180,.05));border-color:rgba(17,197,180,.22);color:#eafffc;box-shadow:inset 3px 0 var(--pr)}
.sb-a.on .ic{color:var(--prl)}
.sb-badge{margin-left:auto;background:rgba(255,95,112,.14);border:1px solid rgba(255,95,112,.34);color:#ff8996;box-shadow:none}
.sb-foot{left:0;width:257px;padding:16px 16px 14px;background:linear-gradient(0deg,#080d14 70%,rgba(8,13,20,.9));border-top:1px solid var(--bd)}
.sb-uname{color:var(--th);font-weight:650}.sb-email{color:var(--tm)}
.main{margin-left:258px;min-height:100vh}
.topbar{height:67px;padding:0 27px;border-bottom:1px solid var(--bd);background:rgba(7,11,18,.72);backdrop-filter:blur(18px);position:sticky;top:0;z-index:50}
.tb-l{color:var(--th);font-size:14px;font-weight:700;letter-spacing:-.01em}
.tb-r{gap:9px}
.page{max-width:1540px;margin:0 auto;padding:27px}
.api-pill{border:1px solid rgba(48,215,155,.19);background:rgba(48,215,155,.075);color:#a9e9d0;border-radius:999px;padding:7px 11px;font-size:10px}
.api-dot,.bdot{box-shadow:0 0 0 4px rgba(48,215,155,.08)}
.dot-ok{background:var(--gr)}.dot-err{background:var(--rd);box-shadow:0 0 0 4px rgba(255,95,112,.08)}
.card,.sc,.ipc,.set-box,.mp,.mo-box{background:linear-gradient(145deg,rgba(16,24,36,.97),rgba(11,17,27,.96));border:1px solid var(--bd);box-shadow:0 15px 38px rgba(0,0,0,.14);border-radius:var(--rl)}
.card:hover,.sc:hover{border-color:#2a3a4c}
.ch{padding:15px 18px;border-bottom:1px solid var(--bd);background:rgba(255,255,255,.01)}
.cb{padding:18px}.ct{font-size:12.5px;color:var(--th);font-weight:700;letter-spacing:.005em}
.sg{gap:11px;margin-bottom:18px;grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}
.sc{position:relative;overflow:hidden;padding:17px 17px 15px;min-height:96px}
.sc:after{content:"";position:absolute;inset:auto -25px -50px auto;width:90px;height:90px;border-radius:50%;background:var(--prgl);filter:blur(4px);opacity:.45}
.sv{font-size:25px;font-weight:760;letter-spacing:-.045em}.sl{margin-top:6px;color:var(--tm);font-size:9.5px;font-weight:650;letter-spacing:.1em}
.btn{border-radius:9px;font-weight:650;letter-spacing:.005em;box-shadow:none;transition:transform var(--tr),filter var(--tr),border-color var(--tr),background var(--tr)}
.btn:hover{transform:translateY(-1px);filter:brightness(1.07)}
.btn-pr{background:linear-gradient(135deg,#18d3bf,#099b92);border-color:#20d7c4;color:#031513;box-shadow:0 8px 22px rgba(17,197,180,.14)}
.btn-pr:hover{color:#031513}.btn-gr{background:rgba(48,215,155,.12);border-color:rgba(48,215,155,.35);color:#75e8bc}.btn-rd{background:rgba(255,95,112,.1);border-color:rgba(255,95,112,.32);color:#ff8f9b}
.btn-gy{background:rgba(255,255,255,.035);border-color:var(--bd);color:#aebaca}.btn-or{background:rgba(255,159,87,.1);border-color:rgba(255,159,87,.32);color:#ffb67f}
input,select,textarea,.sel{background:#0a111b!important;border:1px solid #243345!important;border-radius:9px!important;color:var(--th)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.015)!important}
input::placeholder,textarea::placeholder{color:#506175!important}
input:focus,select:focus,textarea:focus{border-color:rgba(17,197,180,.7)!important;box-shadow:0 0 0 3px rgba(17,197,180,.1)!important;outline:none!important}
.lbl{color:#a8b5c4;font-size:10.5px;font-weight:650;letter-spacing:.025em}
.dt{border-collapse:separate;border-spacing:0}.dt th{background:#0d1520;color:#697b8f;font-size:9px;letter-spacing:.1em;border-color:var(--bd)}
.dt td{border-color:var(--bd);color:#b6c2cf}.dt tbody tr{transition:background var(--tr)}.dt tbody tr:hover{background:rgba(17,197,180,.025)}
.tw{border:1px solid var(--bd);border-radius:11px;overflow:auto}
.b,.role-pill{border-radius:999px;font-weight:700;letter-spacing:.03em}
.b-gr{background:rgba(48,215,155,.09);border-color:rgba(48,215,155,.25);color:#70e3b5}.b-rd{background:rgba(255,95,112,.09);border-color:rgba(255,95,112,.26);color:#ff8794}.b-bl{background:rgba(77,148,255,.1);border-color:rgba(77,148,255,.28);color:#78adff}.b-yw,.b-or{background:rgba(245,196,81,.09);border-color:rgba(245,196,81,.28);color:#f7cf72}.b-gy{background:rgba(255,255,255,.04);border-color:var(--bd);color:#9aa8b8}.b-pu{background:rgba(167,139,250,.1);border-color:rgba(167,139,250,.28);color:#bda8ff}
.al{border-radius:12px;border-width:1px;padding:13px 15px}.al-er{background:rgba(255,95,112,.07);border-color:rgba(255,95,112,.28);color:#ff9ba5}.al-ok{background:rgba(48,215,155,.07);border-color:rgba(48,215,155,.25);color:#8be9c4}.al-wa{background:rgba(245,196,81,.07);border-color:rgba(245,196,81,.25);color:#f6d780}.al-in{background:rgba(77,148,255,.07);border-color:rgba(77,148,255,.24);color:#91b9f7}
.tabs{border-bottom-color:var(--bd)}.tab{color:#77889c}.tab.on{color:var(--prl);border-bottom-color:var(--pr)}
.lp{position:relative;isolation:isolate;background:radial-gradient(circle at 50% 0,rgba(17,197,180,.15),transparent 26rem),radial-gradient(circle at 110% 100%,rgba(65,105,225,.09),transparent 30rem),#060a10}
.lp:before{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle at 50% 45%,#000,transparent 70%)}
.lc{width:min(420px,calc(100vw - 32px));padding:36px 34px;background:rgba(12,18,28,.9);border:1px solid #263548;border-radius:22px;box-shadow:0 34px 90px rgba(0,0,0,.45);backdrop-filter:blur(20px)}
.l-ico{width:58px;height:58px;margin-bottom:18px;border-radius:17px;background:linear-gradient(145deg,#23d9c6,#079b91);color:#04110f;box-shadow:0 14px 38px rgba(17,197,180,.22)}
.l-title{color:var(--th);font-size:23px;font-weight:760;letter-spacing:-.04em}.l-sub{color:var(--tm)}
.theme-toggle{border-color:var(--bd)!important;background:#0c131e!important;color:#9eacbc!important}.theme-menu{background:#0b121c!important;border-color:var(--bd)!important;box-shadow:var(--sh)!important}
.mobile-nav-toggle,.mobile-nav-backdrop{display:none}
@media(max-width:1100px){.page{padding:22px}.sg{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){
  body.nav-open{overflow:hidden}.main{margin-left:0}.topbar{height:61px;padding:0 17px 0 67px}.page{padding:18px}
  .sb{position:fixed;z-index:1002;left:0;top:0;bottom:0;transform:translateX(-105%);transition:transform .24s ease;box-shadow:25px 0 70px rgba(0,0,0,.5)}
  .sb.mobile-open{transform:translateX(0)}
  .mobile-nav-toggle{display:flex;position:fixed;z-index:1004;left:16px;top:14px;width:36px;height:34px;padding:8px;border:1px solid var(--bd);border-radius:9px;background:#0d1520;flex-direction:column;justify-content:space-between}
  .mobile-nav-toggle span{display:block;width:100%;height:2px;border-radius:2px;background:#b9c5d1;transition:transform .2s ease,opacity .2s ease}
  .mobile-nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.mobile-nav-toggle.open span:nth-child(2){opacity:0}.mobile-nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .mobile-nav-backdrop{position:fixed;z-index:1001;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(3px)}.mobile-nav-backdrop.show{display:block}
  .sg{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .page{padding:14px}.tb-r .api-pill{display:none}.tb-l{font-size:13px}.sg{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sc{padding:14px;min-height:84px}.sv{font-size:21px}.card{border-radius:13px}.ch{padding:13px 14px}.cb{padding:14px}.lc{padding:29px 23px}.theme-switch{display:none!important}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
