@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root{
  --bg: #f3f5f9;
  --panel: #ffffff;
  --text: #1f2937;
  --muted: #6b7280;
  --border: rgba(17,24,39,.08);

  --nav-bg: #0b1220;
  --nav-bg2:#0f1c33;
  --nav-text: rgba(255,255,255,.82);
  --nav-text-dim: rgba(255,255,255,.55);
  --nav-active: rgba(59,130,246,.22);

  --primary:#2563eb;
  --teal:#14b8a6;
  --amber:#f59e0b;
  --rose:#ef4444;
  --green:#22c55e;

  --shadow: 0 16px 40px rgba(10, 18, 40, .08);
  --shadow-soft: 0 10px 25px rgba(10, 18, 40, .06);
  --radius: 18px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background: var(--bg);
  color: var(--text);
}

/* Layout */
.app-shell{min-height:100vh; display:flex;}
.sidebar{
  width: 270px;
  background: radial-gradient(1200px 420px at 30% 0%, rgba(59,130,246,.22), transparent 55%),
              linear-gradient(180deg, var(--nav-bg), var(--nav-bg2));
  color: var(--nav-text);
  padding: 18px 14px;
  position: sticky;
  top:0;
  height:100vh;
  transition: left .22s ease, transform .22s ease;
  z-index: 1040;
}
.sidebar .brand{
  display:flex;
  align-items:center;
  gap:10px;
  padding: 10px 10px 18px 10px;
}
.brand .logo{
  width:38px;height:38px; border-radius:12px;
  background: rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  box-shadow: 0 10px 24px rgba(0,0,0,.25);
}
.brand .logo img{max-width:26px; max-height:26px; display:block;}
.brand .title{line-height:1.05}
.brand .title .name{font-weight:700; letter-spacing:.2px}
.brand .title .sub{font-size:12px; color: var(--nav-text-dim)}

.nav-group{margin-top:10px;}
.nav-item{
  display:flex; align-items:center; gap:10px;
  padding: 10px 12px;
  border-radius: 14px;
  color: var(--nav-text);
  text-decoration:none;
  font-weight: 500;
}
.nav-item i{width:18px; text-align:center; color: var(--nav-text-dim)}
.nav-item:hover{background: rgba(255,255,255,.06)}
.nav-item.active{background: var(--nav-active)}
.nav-item.active i{color: rgba(255,255,255,.9)}
.nav-sep{height:1px; background: rgba(255,255,255,.08); margin: 10px 10px;}

.main{flex:1; padding: 18px 22px 28px 22px;}
.topbar{
  background: rgba(255,255,255,.65);
  border: 1px solid var(--border);
  backdrop-filter: blur(10px);
  border-radius: var(--radius);
  padding: 12px 16px;
  box-shadow: var(--shadow-soft);
  display:flex; align-items:center; justify-content:space-between;
  gap: 14px;
}
.page-title{font-size:18px; font-weight:700; margin:0;}
.topbar .meta{display:flex; align-items:center; gap:14px; color: var(--muted); font-size: 13px;}
.topbar .meta .pill{
  display:flex; align-items:center; gap:8px;
  background: rgba(17,24,39,.04);
  border: 1px solid var(--border);
  padding: 8px 10px;
  border-radius: 999px;
}

.content{margin-top: 16px;}

/* Footer */
.app-footer{
  margin-top: 18px;
  background: rgba(255,255,255,.65);
  border: 1px solid var(--border);
  backdrop-filter: blur(10px);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
}
.footer-inner{
  padding: 12px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.footer-brand{font-weight:800; letter-spacing:.2px;}
.footer-muted{color: var(--muted); font-size: 12px; font-weight: 600;}
.footer-sep{color: rgba(107,114,128,.6); margin: 0 6px;}

.auth-footer{padding: 14px 18px; text-align:center;}
.auth-footer-inner{max-width: 980px; margin: 0 auto;}

/* Mobile sidebar toggle + backdrop */
.sidebar-toggle{
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: rgba(17,24,39,.04);
  color: var(--text);
  align-items:center;
  justify-content:center;
}
.sidebar-toggle:active{transform: translateY(1px)}

.sidebar-backdrop{
  display:none;
  position: fixed;
  inset: 0;
  background: rgba(2,6,23,.42);
  backdrop-filter: blur(2px);
  z-index: 1030;
}
body.sidebar-open .sidebar-backdrop{display:block;}


/* Cards */
.kpi-grid{display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px;}
@media (max-width: 1100px){
  .kpi-grid{grid-template-columns: repeat(2, minmax(0,1fr));}
  .sidebar{position:fixed; left: 10px; transform: translateX(-110%); height: calc(100vh - 20px); top: 10px; border-radius: 22px; box-shadow: 0 24px 60px rgba(0,0,0,.35);}
  body.sidebar-open .sidebar{transform: translateX(0);}
  .main{padding: 14px 14px 22px 14px;}
  .topbar{gap: 10px;}
  .topbar .meta{gap: 10px; flex-wrap: wrap; justify-content:flex-end;}
}
@media (max-width: 640px){.kpi-grid{grid-template-columns: 1fr;}}

/* Tables: allow horizontal scroll on small screens */
@media (max-width: 768px){
  .panel-body{overflow-x:auto; -webkit-overflow-scrolling: touch;}
  .table-zrs{min-width: 760px;}
}

.kpi{
  border-radius: var(--radius);
  color:#fff;
  padding: 16px 16px;
  box-shadow: var(--shadow);
  position:relative;
  overflow:hidden;
}
.kpi:before{
  content:"";
  position:absolute;
  inset:-40px -60px auto auto;
  width: 200px;
  height: 200px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  transform: rotate(20deg);
}
.kpi .label{font-size:12px; opacity:.9; font-weight:600}
.kpi .value{font-size:28px; font-weight:800; margin-top:6px; letter-spacing:.2px}
.kpi .hint{font-size:12px; opacity:.85; margin-top: 4px}
.kpi.blue{background: linear-gradient(135deg, #2563eb, #60a5fa)}
.kpi.orange{background: linear-gradient(135deg, #f59e0b, #fb7185)}
.kpi.teal{background: linear-gradient(135deg, #14b8a6, #22c55e)}
.kpi.green{background: linear-gradient(135deg, #22c55e, #84cc16)}

.panel{
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
}
.panel-header{
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between;
}
.panel-title{font-weight:700; margin:0; font-size: 15px;}
.panel-body{padding: 14px 16px;}

/* Tables */
.table-zrs{width:100%; border-collapse: separate; border-spacing: 0 10px;}
.table-zrs thead th{font-size:12px; color: var(--muted); font-weight:700; padding: 0 12px 8px 12px;}
.table-zrs tbody tr{background:#fff; box-shadow: 0 10px 24px rgba(10,18,40,.05);}
.table-zrs tbody td{padding: 12px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); font-size: 13px;}
.table-zrs tbody td:first-child{border-left:1px solid var(--border); border-top-left-radius: 14px; border-bottom-left-radius:14px; font-weight:700;}
.table-zrs tbody td:last-child{border-right:1px solid var(--border); border-top-right-radius: 14px; border-bottom-right-radius:14px;}

.badge-pill{display:inline-flex; align-items:center; gap:6px; padding: 6px 10px; border-radius: 999px; font-size:12px; font-weight:700; border:1px solid transparent;}
.badge-blue{background: rgba(37,99,235,.12); color: var(--primary); border-color: rgba(37,99,235,.18)}
.badge-teal{background: rgba(20,184,166,.12); color: var(--teal); border-color: rgba(20,184,166,.18)}
.badge-amber{background: rgba(245,158,11,.14); color: #b45309; border-color: rgba(245,158,11,.22)}
.badge-rose{background: rgba(239,68,68,.12); color: var(--rose); border-color: rgba(239,68,68,.18)}
.badge-green{background: rgba(34,197,94,.12); color: var(--green); border-color: rgba(34,197,94,.18)}

.btn-zrs{border:none; border-radius: 12px; padding: 8px 12px; font-weight:700; font-size:12px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:8px;}
.btn-primary-zrs{background: var(--primary); color:#fff;}
.btn-ghost-zrs{background: rgba(17,24,39,.05); color: var(--text); border:1px solid var(--border)}
.btn-success-zrs{background: var(--green); color:#fff;}
.btn-danger-zrs{background: var(--rose); color:#fff;}

/* Forms */
.form-zrs label{font-size:12px; font-weight:700; color: var(--muted)}
.form-zrs input,.form-zrs select,.form-zrs textarea{
  width:100%;
  border-radius: 14px;
  border:1px solid var(--border);
  padding: 10px 12px;
  outline:none;
  background:#fff;
}
.form-zrs input:focus,.form-zrs select:focus,.form-zrs textarea:focus{border-color: rgba(37,99,235,.35); box-shadow: 0 0 0 4px rgba(37,99,235,.10)}

/* Login */
.auth-shell{min-height:100vh; display:flex; align-items:center; justify-content:center; padding: 26px; background: radial-gradient(1200px 600px at 20% 0%, rgba(59,130,246,.18), transparent 55%), var(--bg)}
.auth-card{width:min(980px, 100%); display:grid; grid-template-columns: 1.15fr .85fr; border-radius: 26px; overflow:hidden; box-shadow: var(--shadow); border:1px solid var(--border); background:#fff;}
.auth-left{background: radial-gradient(900px 400px at 20% 0%, rgba(59,130,246,.20), transparent 55%), linear-gradient(180deg, var(--nav-bg), var(--nav-bg2)); color:#fff; padding: 34px; display:flex; flex-direction:column; justify-content:space-between;}
.auth-left h1{font-size:34px; margin:0; letter-spacing:.2px}
.auth-left p{color: rgba(255,255,255,.75); margin-top:10px}
.auth-right{padding: 34px;}
@media (max-width: 900px){.auth-card{grid-template-columns: 1fr;} .auth-left{display:none;}}
