:root{
--bg:#07111f;
--panel:#0c192a;
--panel2:#112138;
--border:#1f3652;
--text:#edf5ff;
--muted:#8fa6c2;
--blue:#4fa3ff;
--purple:#826dff;
--green:#30d49b;
--red:#ff6678;
--yellow:#ffc85b;
--shadow:0 18px 48px rgba(0,0,0,.28);
--radius:17px;
}

*{box-sizing:border-box}

html,body{
margin:0;
min-height:100%;
background:
radial-gradient(900px 450px at 10% -5%,#15345b 0,transparent 62%),
var(--bg);
color:var(--text);
font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{text-decoration:none;color:inherit}

.shell{
display:grid;
grid-template-columns:255px 1fr;
min-height:100vh;
}

.sidebar{
position:sticky;
top:0;
height:100vh;
padding:18px 14px;
overflow:auto;
background:rgba(7,17,31,.91);
backdrop-filter:blur(18px);
border-right:1px solid var(--border);
}

.brand{
display:flex;
align-items:center;
gap:11px;
padding:8px 10px 22px;
font-size:21px;
font-weight:800;
}

.logo{
width:37px;
height:37px;
display:grid;
place-items:center;
border-radius:11px;
background:linear-gradient(135deg,var(--blue),var(--purple));
box-shadow:0 8px 24px rgba(79,163,255,.28);
}

.nav-title{
font-size:10px;
text-transform:uppercase;
letter-spacing:1.4px;
color:var(--muted);
padding:13px 11px 7px;
}

.nav a{
display:flex;
align-items:center;
gap:11px;
padding:11px 12px;
border-radius:12px;
margin:3px 0;
color:#b8c9dc;
}

.nav a:hover,
.nav a.active{
background:linear-gradient(90deg,rgba(79,163,255,.16),rgba(130,109,255,.08));
color:#fff;
}

.main{min-width:0}

.topbar{
height:70px;
position:sticky;
top:0;
z-index:10;
display:flex;
align-items:center;
justify-content:space-between;
padding:0 26px;
border-bottom:1px solid var(--border);
background:rgba(7,17,31,.78);
backdrop-filter:blur(15px);
}

.top-right{
display:flex;
align-items:center;
gap:9px;
}

.content{
padding:26px;
max-width:1580px;
margin:auto;
}

h1{
margin:0 0 6px;
font-size:28px;
}

h2{
font-size:18px;
margin:0 0 14px;
}

.sub{
color:var(--muted);
margin-bottom:22px;
}

.grid{
display:grid;
grid-template-columns:repeat(12,1fr);
gap:15px;
}

.card{
background:
linear-gradient(
180deg,
rgba(17,33,56,.95),
rgba(12,25,42,.94)
);
border:1px solid var(--border);
border-radius:var(--radius);
padding:18px;
box-shadow:var(--shadow);
overflow:hidden;
}

.kpi{grid-column:span 3}
.span4{grid-column:span 4}
.span6{grid-column:span 6}
.span8{grid-column:span 8}
.span12{grid-column:span 12}

.kpi-label{
font-size:13px;
color:var(--muted);
}

.kpi-value{
font-size:27px;
font-weight:800;
margin-top:8px;
}

.pill{
display:inline-flex;
align-items:center;
gap:7px;
font-size:12px;
color:#a8bed7;
border:1px solid var(--border);
padding:6px 10px;
border-radius:999px;
}

.dot{
width:8px;
height:8px;
border-radius:50%;
background:var(--green);
}

.btn{
border:1px solid var(--border);
background:#132743;
color:#fff;
border-radius:11px;
padding:10px 14px;
}

.btn:hover{
border-color:#39648f;
}

.btn.primary{
border:0;
background:linear-gradient(135deg,#2185ef,#7565ef);
}

.input{
width:100%;
background:#081523;
border:1px solid var(--border);
color:#fff;
padding:11px 12px;
border-radius:11px;
outline:none;
}

.input:focus{border-color:#3f79b4}

.form{
display:grid;
gap:12px;
}

.form label{
font-size:12px;
color:var(--muted);
}

.table-wrap{
overflow:auto;
border:1px solid var(--border);
border-radius:13px;
}

table{
width:100%;
min-width:760px;
border-collapse:collapse;
}

th,td{
padding:12px 14px;
font-size:13px;
text-align:left;
border-bottom:1px solid var(--border);
}

th{
background:#0b1829;
color:#aec2d9;
font-weight:600;
}

tr:hover td{
background:rgba(79,163,255,.035);
}

.empty{
padding:34px;
text-align:center;
color:var(--muted);
}

.notice{
padding:12px 14px;
border:1px solid var(--border);
border-radius:12px;
background:#0a1728;
color:#c7d7e8;
}

.notice.good{
border-color:#23604e;
color:#aaf0d8;
}

.notice.warn{
border-color:#725c2b;
color:#ffe1a0;
}

.notice.bad{
border-color:#722d3a;
color:#ffc0ca;
}

.login{
min-height:100vh;
display:grid;
place-items:center;
padding:22px;
}

.login-box{
width:min(460px,100%);
padding:28px;
}

.login-box .brand{
padding:0 0 22px;
}

pre{
white-space:pre-wrap;
overflow:auto;
font-size:12px;
color:#aec0d5;
}

.mobile{
display:none;
}

@media(max-width:1050px){
.shell{grid-template-columns:78px 1fr}
.sidebar{padding:17px 9px}
.brand span,.nav a span,.nav-title{display:none}
.nav a{justify-content:center}
.kpi{grid-column:span 6}
.span4,.span6,.span8{grid-column:span 12}
}

@media(max-width:720px){
.shell{display:block}
.sidebar{
display:none;
position:fixed;
left:0;
top:0;
width:255px;
z-index:30;
}
.sidebar.open{display:block}
.mobile{display:inline-block}
.content{padding:17px}
.topbar{padding:0 15px}
.kpi{grid-column:span 12}
.hide-mobile{display:none}
}
