:root{
  --bg:#f5f7f9;
  --surface:#ffffff;
  --surface-soft:#f8fafb;
  --sidebar:#171b22;
  --sidebar-hover:#222833;
  --sidebar-line:#2a313d;
  --text:#1f2937;
  --text-2:#475467;
  --muted:#7b8494;
  --border:#e4e8ee;
  --border-2:#d7dde5;
  --green:#18a66a;
  --green-dark:#128456;
  --green-soft:#eaf8f2;
  --blue:#3563e9;
  --blue-soft:#edf2ff;
  --red:#dc4b4b;
  --red-soft:#fff0f0;
  --amber:#d28a18;
  --amber-soft:#fff7e8;
  --violet:#7455d9;
  --violet-soft:#f2efff;
  --cyan:#1594ae;
  --shadow:0 10px 28px rgba(21,31,50,.055);
  --shadow-sm:0 3px 10px rgba(21,31,50,.035);
  --radius:12px;
  --radius-lg:16px;
  --sidebar-w:258px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
body{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:14px;line-height:1.45
}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
::selection{background:#cfeee0;color:#143527}

.layout{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}

.sidebar{
  position:sticky;top:0;height:100vh;overflow:auto;
  background:linear-gradient(180deg,#161a21,#1a1f28);
  color:#fff;padding:18px 14px;
  border-right:1px solid rgba(255,255,255,.04)
}
.brand{
  display:flex;align-items:center;gap:11px;
  padding:6px 9px 18px;margin-bottom:8px;
  border-bottom:1px solid rgba(255,255,255,.07)
}
.brand-mark{
  width:40px;height:40px;border-radius:11px;display:grid;place-items:center;
  background:linear-gradient(145deg,#25bf7b,#15965f);
  color:#fff;font-weight:950;letter-spacing:-.04em;
  box-shadow:0 8px 20px rgba(24,166,106,.20)
}
.brand-title{font-size:15px;font-weight:900;letter-spacing:-.02em}
.brand-sub{font-size:9px;color:#8a94a7;text-transform:uppercase;letter-spacing:.14em;font-weight:800;margin-top:2px}

.nav-section{
  font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:#667286;
  font-weight:900;padding:15px 11px 6px
}
.nav a{
  display:flex;align-items:center;gap:10px;
  min-height:42px;padding:8px 10px;margin:3px 0;
  border-radius:9px;color:#c4cad4;font-weight:700;transition:.14s
}
.nav a:hover{background:var(--sidebar-hover);color:#fff}
.nav-icon{
  width:26px;height:26px;border-radius:7px;display:grid;place-items:center;
  background:rgba(255,255,255,.05);color:#49d597;
  font-size:11px;font-weight:900;flex:0 0 auto
}
.sidebar-footer{
  margin:22px 8px 0;padding-top:14px;border-top:1px solid rgba(255,255,255,.07);
  color:#667286;font-size:10px
}

.content{padding:23px 28px 42px;min-width:0}

.top{
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  margin-bottom:18px
}
.page-kicker{
  color:var(--green-dark);font-size:9px;text-transform:uppercase;
  letter-spacing:.15em;font-weight:950;margin-bottom:4px
}
.top h2{margin:0;font-size:25px;font-weight:900;letter-spacing:-.04em}
.top-sub{margin-top:4px;color:var(--muted);font-size:12px}
.user-chip{
  display:flex;align-items:center;gap:9px;background:#fff;
  border:1px solid var(--border);border-radius:11px;padding:7px 10px;
  box-shadow:var(--shadow-sm)
}
.user-avatar{
  width:32px;height:32px;border-radius:9px;display:grid;place-items:center;
  background:var(--green-soft);color:var(--green-dark);font-weight:950
}
.user-name{font-size:12px;font-weight:900}
.user-role{font-size:10px;color:var(--muted);text-transform:capitalize}

.quick-strip{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin-bottom:14px;padding-bottom:15px;border-bottom:1px solid var(--border)
}
.quick-pill{
  display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);
  padding:7px 10px;border-radius:999px;color:var(--text-2);font-size:11px;font-weight:750
}
.quick-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
.quick-dot.red{background:var(--red)}
.quick-dot.blue{background:var(--blue)}

.cards{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px
}
.card,.panel{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)
}
.card{
  padding:16px 17px;min-height:116px;position:relative;overflow:hidden
}
.card::after{
  content:"";position:absolute;width:64px;height:64px;border-radius:50%;
  right:-24px;top:-24px;background:rgba(53,99,233,.045)
}
.card.green::after{background:rgba(24,166,106,.06)}
.card.red::after{background:rgba(220,75,75,.055)}
.card.violet::after{background:rgba(116,85,217,.055)}
.metric-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.metric-label{
  color:var(--muted);font-size:9.5px;text-transform:uppercase;
  letter-spacing:.08em;font-weight:900
}
.metric-icon{
  width:31px;height:31px;border-radius:9px;display:grid;place-items:center;
  background:var(--blue-soft);color:var(--blue);font-weight:900;font-size:12px
}
.metric-icon.green{background:var(--green-soft);color:var(--green-dark)}
.metric-icon.red{background:var(--red-soft);color:var(--red)}
.metric-icon.violet{background:var(--violet-soft);color:var(--violet)}
.metric{
  font-size:28px;font-weight:950;letter-spacing:-.045em;margin-top:8px;color:#182233
}
.metric-note{font-size:10.5px;color:var(--muted);margin-top:5px}
.metric-note.good{color:var(--green-dark);font-weight:800}

.panel{padding:17px}
.grid2{
  display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);
  gap:14px;margin-top:14px
}
.grid2.equal{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.section-title{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px
}
.section-title h3,.panel h3{margin:0;font-size:14px;font-weight:900;letter-spacing:-.02em}
.subtle,.muted{color:var(--muted);font-size:11.5px}

.chart-box{
  position:relative;height:230px;border-top:1px solid var(--border);
  padding-top:15px;display:flex;align-items:flex-end;gap:9px
}
.chart-axis{
  position:absolute;left:0;right:0;height:1px;background:#eef1f5
}
.chart-axis.a1{bottom:25%}.chart-axis.a2{bottom:50%}.chart-axis.a3{bottom:75%}
.chart-column{
  flex:1;display:flex;align-items:flex-end;justify-content:center;height:100%;
  position:relative;z-index:1
}
.chart-bar{
  width:min(22px,70%);min-height:10px;border-radius:6px 6px 2px 2px;
  background:linear-gradient(180deg,#38c789,#18a66a)
}
.chart-bar.blue{background:linear-gradient(180deg,#6384f2,#3563e9)}
.chart-label{
  position:absolute;bottom:-3px;transform:translateY(100%);
  font-size:9px;color:var(--muted)
}
.chart-legend{display:flex;gap:16px;align-items:center;margin-top:21px;font-size:10px;color:var(--muted)}
.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px;background:var(--green)}
.legend-dot.blue{background:var(--blue)}

.progress-list{display:grid;gap:12px}
.progress-row{display:grid;gap:6px}
.progress-top{display:flex;justify-content:space-between;gap:12px;font-size:11px}
.progress-top b{font-weight:850}.progress-track{height:8px;background:#edf0f4;border-radius:999px;overflow:hidden}
.progress-fill{height:100%;background:var(--green);border-radius:999px}
.progress-fill.blue{background:var(--blue)}
.progress-fill.violet{background:var(--violet)}
.progress-fill.amber{background:var(--amber)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:36px;padding:8px 12px;border-radius:9px;border:1px solid transparent;
  background:var(--green);color:#fff;font-size:11.5px;font-weight:900;cursor:pointer;transition:.14s
}
.btn:hover{background:var(--green-dark)}
.btn.secondary{background:#fff;color:#344054;border-color:var(--border-2)}
.btn.secondary:hover{background:#f8fafc}
.btn.danger{background:var(--red)}
.actions{display:flex;gap:7px;flex-wrap:wrap}

table{width:100%;border-collapse:separate;border-spacing:0}
th,td{
  padding:10px 9px;text-align:left;border-bottom:1px solid #edf0f4;vertical-align:middle
}
th{
  background:#fafbfc;color:#7b8495;font-size:8.5px;text-transform:uppercase;
  letter-spacing:.09em;font-weight:950
}
td{font-size:12px}
tbody tr:hover{background:#fbfcfd}
tbody tr:last-child td{border-bottom:0}

input,select,textarea{
  width:100%;border:1px solid var(--border-2);background:#fff;color:var(--text);
  border-radius:9px;padding:9px 10px;outline:none
}
input:focus,select:focus,textarea:focus{
  border-color:#73c9a2;box-shadow:0 0 0 3px rgba(24,166,106,.10)
}
label{
  display:block;font-size:10.5px;font-weight:900;color:#566075;margin:10px 0 5px
}
.formgrid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 16px
}
.form-section{
  background:var(--surface-soft);border:1px solid var(--border);
  border-radius:11px;padding:13px;margin-top:12px
}

.flash{
  padding:11px 13px;border-radius:9px;margin-bottom:14px;
  border:1px solid transparent;font-size:11.5px;font-weight:800
}
.flash.ok{background:var(--green-soft);color:#0d6d4d}
.flash.error{background:var(--red-soft);color:#aa3535}

.badge{
  display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;
  background:#f1f3f6;color:#596273;font-size:9.5px;font-weight:900
}
.badge.ok{background:var(--green-soft);color:#0f7250}
.badge.bad{background:var(--red-soft);color:#ad3535}
.badge.info{background:var(--blue-soft);color:var(--blue)}
.badge.warn{background:var(--amber-soft);color:var(--amber)}

.summary-bar{
  display:flex;align-items:center;gap:24px;flex-wrap:wrap;background:var(--surface);
  border:1px solid var(--border);border-radius:12px;padding:11px 14px;margin-bottom:14px
}
.s-label{
  display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);font-weight:900
}
.s-value{display:block;font-size:14px;font-weight:950;margin-top:2px}
.empty-state{padding:26px 14px;text-align:center;color:var(--muted)}

/* Login */
.login-page{
  min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 470px;background:#f3f6f5
}
.login-visual{
  background:linear-gradient(145deg,#151a20,#1b2423);
  color:#fff;padding:52px;display:flex;flex-direction:column;justify-content:space-between;
  position:relative;overflow:hidden
}
.login-visual::after{
  content:"";position:absolute;width:540px;height:540px;border-radius:50%;
  right:-210px;bottom:-230px;border:95px solid rgba(33,178,111,.10)
}
.login-logo{display:flex;align-items:center;gap:11px;font-size:17px;font-weight:900;z-index:1}
.login-logo-mark{
  width:40px;height:40px;border-radius:11px;background:var(--green);
  color:#fff;display:grid;place-items:center;font-weight:950
}
.login-copy{max-width:620px;z-index:1}
.login-copy h1{font-size:44px;line-height:1.05;letter-spacing:-.055em;margin:0 0 16px}
.login-copy p{color:#aab6b0;font-size:15px;max-width:540px}
.login-pills{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}
.login-pill{
  border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:7px 10px;
  color:#b6c2bd;font-size:10.5px
}
.login-side{display:flex;align-items:center;justify-content:center;padding:38px}
.login-card{width:min(390px,100%)}
.login-card h2{font-size:26px;margin:0 0 5px;letter-spacing:-.04em}
.login-card .btn{width:100%;min-height:42px;margin-top:10px}
.login-foot{font-size:10px;color:#9aa2b1;text-align:center;margin-top:18px}

@media(max-width:1180px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid2{grid-template-columns:1fr}
}
@media(max-width:940px){
  .layout{grid-template-columns:1fr}.sidebar{display:none}.content{padding:18px}
  .formgrid{grid-template-columns:1fr}.login-page{grid-template-columns:1fr}.login-visual{display:none}
}
@media(max-width:580px){
  .cards{grid-template-columns:1fr}.user-chip{display:none}.content{padding:14px}.panel{overflow:auto}
}
