
:root{
  --bg:#02030a;--bg2:#07091a;--panel:rgba(10,13,35,.82);--panel2:rgba(22,15,53,.76);
  --text:#f7f8ff;--muted:#91a0c5;--line:rgba(255,255,255,.085);
  --blue:#377dff;--purple:#7d50ff;--purple2:#aa6cff;--green:#4ce0a5;--red:#ff7487;--yellow:#ffc46f;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{
 margin:0;min-height:100vh;color:var(--text);
 font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
 background:
 radial-gradient(circle at 10% -10%,rgba(55,125,255,.23),transparent 28%),
 radial-gradient(circle at 88% -5%,rgba(125,80,255,.26),transparent 31%),
 linear-gradient(145deg,var(--bg),var(--bg2) 55%,#100923);
 overflow-x:hidden
}
body:before,body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2}
body:before{
 background-image:
 radial-gradient(circle,rgba(255,255,255,.96) 0 1px,transparent 1.7px),
 radial-gradient(circle,rgba(255,255,255,.55) 0 .9px,transparent 1.6px),
 radial-gradient(circle,rgba(194,211,255,.72) 0 1px,transparent 1.7px);
 background-size:91px 91px,149px 149px,217px 217px;background-position:11px 14px,47px 73px,119px 33px;
 opacity:.52;animation:drift 28s linear infinite
}
body:after{
 background:
 radial-gradient(circle at 9% 19%,#fff 0 1.5px,transparent 2.5px),
 radial-gradient(circle at 32% 67%,#fff 0 1.4px,transparent 2.4px),
 radial-gradient(circle at 63% 17%,#e4dcff 0 1.5px,transparent 2.5px),
 radial-gradient(circle at 87% 58%,#fff 0 1.5px,transparent 2.5px);
 filter:drop-shadow(0 0 7px #fff);animation:twinkle 3.6s ease-in-out infinite alternate
}
@keyframes drift{to{transform:translate(-42px,22px)}} @keyframes twinkle{from{opacity:.22}to{opacity:.92}}
@keyframes enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
button,input,select,textarea{font:inherit} button{color:inherit} a{color:inherit;text-decoration:none}
.hidden{display:none!important}
.glass{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);backdrop-filter:blur(20px);box-shadow:0 28px 90px rgba(0,0,0,.42)}
.btn{min-height:42px;border-radius:13px;border:1px solid transparent;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:10.5px;font-weight:850;cursor:pointer;transition:.2s ease}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(135deg,var(--blue),var(--purple));box-shadow:0 12px 32px rgba(91,74,255,.26)}
.btn-ghost{background:rgba(255,255,255,.03);border-color:var(--line)}
.btn-danger{background:rgba(255,116,135,.08);border-color:rgba(255,116,135,.15);color:#ffc3cb}
.btn-success{background:rgba(76,224,165,.08);border-color:rgba(76,224,165,.15);color:#b8f4d7}
.btn-sm{min-height:31px;border-radius:10px;padding:0 9px;font-size:9px}
.badge{display:inline-flex;padding:6px 9px;border-radius:999px;background:rgba(125,80,255,.1);border:1px solid rgba(170,108,255,.17);color:#d9caff;font-size:8.5px;font-weight:900;letter-spacing:.65px;text-transform:uppercase}
.chip{display:inline-flex;padding:5px 7px;border-radius:999px;font-size:8px;font-weight:900;text-transform:uppercase}
.chip.on{background:rgba(76,224,165,.08);border:1px solid rgba(76,224,165,.14);color:#aff1d1}
.chip.off{background:rgba(255,116,135,.07);border:1px solid rgba(255,116,135,.13);color:#ffc1c9}
.chip.wait{background:rgba(255,196,111,.07);border:1px solid rgba(255,196,111,.13);color:#ffe0b1}
.chip.info{background:rgba(86,169,255,.07);border:1px solid rgba(86,169,255,.13);color:#c3e5ff}
.muted{color:var(--muted)}
.row{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}
.login{min-height:100vh;display:grid;place-items:center;padding:22px}
.login-card{width:min(455px,100%);padding:29px;border-radius:29px;animation:enter .5s ease both}
.logo{width:58px;height:58px;border-radius:18px;margin:0 auto 17px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--purple) 64%,var(--purple2));box-shadow:0 0 38px rgba(125,80,255,.34)}
.logo:before{content:"✦";font-size:28px;text-shadow:0 0 13px white}
.login h1{text-align:center;font-size:34px;letter-spacing:-1.5px;margin:12px 0 7px}.login p{text-align:center;color:var(--muted);font-size:11px;line-height:1.6;margin:0}
.login .badge{display:flex;width:max-content;margin:auto}
.form{display:grid;gap:12px;margin-top:21px}label{font-size:9px;color:#aab4d2;font-weight:850}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.032);color:white;outline:none;padding:10px 12px}
input,select{min-height:43px}textarea{min-height:90px;resize:vertical}select option{color:#111}
input:focus,select:focus,textarea:focus{border-color:rgba(150,105,255,.52);box-shadow:0 0 0 4px rgba(125,80,255,.07)}
.notice{padding:11px 12px;border-radius:12px;background:rgba(66,104,255,.065);border:1px solid rgba(102,139,255,.12);color:#cad5ff;font-size:9.5px;line-height:1.55}
.notice.warn{background:rgba(255,196,111,.055);border-color:rgba(255,196,111,.11);color:#ffe0b4}
.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;padding:15px 13px;border-right:1px solid var(--line);background:rgba(3,5,16,.74);backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:10px;padding:4px 5px 17px;font-weight:900}.brand-mark{width:39px;height:39px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--purple));box-shadow:0 0 24px rgba(125,80,255,.22)}.brand-mark:before{content:"✦";font-size:19px}.brand small{display:block;color:var(--muted);font-size:8.5px;font-weight:600;margin-top:3px}
.nav-label{padding:9px 9px 6px;color:#596487;font-size:7.5px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}
.nav-btn{width:100%;min-height:42px;border-radius:12px;border:1px solid transparent;background:transparent;display:flex;align-items:center;gap:10px;padding:0 10px;color:#99a5c7;font-size:10px;font-weight:800;cursor:pointer}
.nav-btn:hover{background:rgba(255,255,255,.03);color:white}.nav-btn.active{color:white;background:linear-gradient(90deg,rgba(55,125,255,.15),rgba(125,80,255,.12));border-color:rgba(132,96,255,.16)}
.nav-icon{width:27px;height:27px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.05)}
.sidebar-bottom{position:absolute;left:13px;right:13px;bottom:13px;display:grid;gap:8px}.userbox{padding:9px;border-radius:12px;background:rgba(255,255,255,.024);border:1px solid rgba(255,255,255,.055);font-size:9px}.userbox small{display:block;color:var(--muted);font-size:7.8px;margin-top:2px}
.main{min-width:0}.topbar{position:sticky;top:0;z-index:20;min-height:66px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);background:rgba(3,5,16,.64);backdrop-filter:blur(18px)}
.mobile-menu{display:none}.breadcrumb{font-size:9px;color:var(--muted)}.breadcrumb strong{color:#ecf0ff}
.content{padding:23px 20px 52px;max-width:1480px;margin:auto}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;flex-wrap:wrap;animation:enter .3s ease both}.head h1{font-size:clamp(30px,4vw,45px);letter-spacing:-1.8px;margin:6px 0 0}.head p{margin:7px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.head-actions{display:flex;gap:7px;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:16px 0}.kpi{padding:16px;border-radius:18px}.kpi small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.6px;font-weight:850}.kpi strong{display:block;font-size:27px;letter-spacing:-1px;margin-top:9px}.kpi span{display:block;color:#6f7ba0;font-size:8px;margin-top:7px}
.card{padding:19px;border-radius:21px}.card h2{font-size:16px;margin:0}.card p.sub{font-size:9px;color:var(--muted);line-height:1.5;margin:5px 0 0}
.grid2{display:grid;grid-template-columns:390px 1fr;gap:13px;align-items:start}.grid2eq{display:grid;grid-template-columns:1fr 1fr;gap:13px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.list{display:grid;gap:8px}.item{padding:11px 12px;border-radius:13px;background:rgba(255,255,255,.022);border:1px solid rgba(255,255,255,.055);display:flex;align-items:center;justify-content:space-between;gap:10px}.item strong{font-size:10px}.item small{display:block;color:var(--muted);font-size:8px;margin-top:3px}
.avatar{width:33px;height:33px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(135deg,rgba(55,125,255,.18),rgba(125,80,255,.22));border:1px solid rgba(160,120,255,.13);font-weight:900}
.tablewrap{overflow:auto;border-radius:14px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:10px 8px;text-align:left;border-bottom:1px solid rgba(255,255,255,.055);font-size:9.5px}th{font-size:7.5px;color:#7380a6;text-transform:uppercase;letter-spacing:.7px}tbody tr:hover{background:rgba(255,255,255,.018)}
.actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.search{max-width:250px}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:13px}.quick button{min-height:80px;border-radius:15px;border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.02);padding:11px;color:white;text-align:left;cursor:pointer}.quick button:hover{background:rgba(125,80,255,.05);transform:translateY(-2px)}.quick b{display:block;font-size:9.5px;margin-top:7px}.quick span{display:block;color:var(--muted);font-size:7.8px;margin-top:3px}
.progress{height:7px;border-radius:999px;background:rgba(255,255,255,.045);overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--purple));border-radius:999px}
.empty{padding:24px;text-align:center;color:var(--muted);border:1px dashed rgba(255,255,255,.08);border-radius:15px}.empty b{display:block;color:#dbe1f7;font-size:11px;margin-bottom:4px}
@media(max-width:1040px){.app{grid-template-columns:76px 1fr}.sidebar{padding:13px 9px}.brand{justify-content:center}.brand>span:last-child,.nav-label,.nav-btn span:last-child,.userbox{display:none}.nav-btn{justify-content:center;padding:0}.sidebar-bottom .btn span:last-child{display:none}.kpis{grid-template-columns:1fr 1fr}.grid2,.grid2eq{grid-template-columns:1fr}.quick{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.app{display:block}.sidebar{position:fixed;left:-260px;width:245px;z-index:50;transition:left .22s ease}.sidebar.open{left:0}.brand{justify-content:flex-start}.brand>span:last-child,.nav-label,.nav-btn span:last-child,.userbox{display:block}.nav-btn{justify-content:flex-start;padding:0 10px}.mobile-menu{display:inline-flex}.topbar{padding:0 11px}.breadcrumb{display:none}.content{padding:17px 11px 42px}.kpis,.grid3,.quick,.formgrid{grid-template-columns:1fr}.head-actions{width:100%}.head-actions .btn{flex:1}.login-card{padding:23px 18px}.login h1{font-size:29px}.search{max-width:none;width:100%}}

/* V10 */
.field-help{margin-top:6px;color:#6f7ba0;font-size:8px;line-height:1.45}
button:disabled{opacity:.42;cursor:not-allowed;transform:none!important}
@media(max-width:700px){
  .content{padding:14px 10px 38px}
  .head h1{font-size:31px;letter-spacing:-1.3px}
  .card{padding:15px;border-radius:18px}
  .btn{min-height:44px;font-size:10px}
  .btn-sm{min-height:37px}
  .tablewrap{margin-left:-5px;margin-right:-5px;padding:0 5px}
  table{min-width:720px}
  th,td{padding:10px 7px}
  .actions{gap:5px}
  input,select{min-height:46px;font-size:16px}
  label{font-size:9.5px}
  .kpi strong{font-size:24px}
}
