:root{
  --ink-950:#0B0F1E; --ink-900:#0F1629;
  --canvas:#F5F6FB; --surface:#FFFFFF; --surface-muted:#F0F1F8;
  --border:#E7E9F3; --border-soft:#EEF0F8;
  --text-900:#101322; --text-700:#3B3F58; --text-500:#6B7090; --text-400:#9498B3;
  --primary:#4F46E5; --primary-600:#4338CA; --primary-100:#EEEDFD;
  --accent-grad: linear-gradient(135deg,#4F46E5 0%, #7C3AED 55%, #A855F7 100%);
  --success:#0EA872; --success-100:#E4F8F0;
  --warning:#F59E0B; --warning-100:#FEF3DC;
  --danger:#EF4444; --danger-100:#FDECEC;
  --info:#0EA5E9; --info-100:#E4F5FD;
  --radius-sm:8px; --radius:14px; --radius-lg:20px;
  --shadow-sm: 0 1px 2px rgba(16,19,34,.04);
  --shadow: 0 8px 24px -8px rgba(16,19,34,.10);
  --shadow-lg: 0 20px 48px -12px rgba(16,19,34,.18);
  --sidebar-w: 250px; --topbar-h: 68px;
}
*{box-sizing:border-box;}
body{background:var(--canvas); color:var(--text-900); font-family:'Inter',system-ui,sans-serif; font-size:14.5px;}
h1,h2,h3,h4,h5,h6{font-family:'Sora',sans-serif; color:var(--text-900); letter-spacing:-0.01em;}
a{color:var(--primary); text-decoration:none;}
a.link{color:var(--primary); font-weight:600;}
small,.small{color:var(--text-500);}

/* AUTH */
.auth-body{background:var(--ink-950); min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px;}
.auth-card{width:100%; max-width:400px; background:var(--surface); border-radius:var(--radius-lg); padding:40px 34px; box-shadow:var(--shadow-lg);}
.brand-mark{display:inline-flex; align-items:center; gap:10px; font-family:'Sora',sans-serif; font-weight:700; font-size:1.2rem;}
.brand-dot{width:36px; height:36px; border-radius:10px; background:var(--accent-grad); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800;}
.input-icon{position:relative;}
.input-icon i{position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--text-400);}
.input-icon .form-control{padding-left:38px;}
.auth-demo-hint{margin-top:20px; background:var(--primary-100); color:var(--primary-600); border-radius:var(--radius-sm); padding:10px 14px; font-size:.8rem;}

/* SHELL */
.app-shell{display:flex; min-height:100vh;}
.sidebar{width:var(--sidebar-w); flex-shrink:0; background:var(--ink-950); color:#fff; position:fixed; top:0; bottom:0; left:0; z-index:1030; display:flex; flex-direction:column; transition:transform .2s;}
.sidebar-brand{display:flex; align-items:center; gap:10px; padding:20px; height:var(--topbar-h); border-bottom:1px solid rgba(255,255,255,.07);}
.sidebar-brand .brand-text{font-family:'Sora',sans-serif; font-weight:700; font-size:1rem; color:#fff;}
.sidebar-brand .brand-text small{display:block; font-family:'Inter',sans-serif; font-size:.66rem; color:rgba(255,255,255,.4); text-transform:uppercase;}
.sidebar-nav{flex:1; padding:16px 12px; overflow-y:auto;}
.nav-item-link{display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:10px; color:rgba(255,255,255,.7); font-size:.9rem; font-weight:500; margin-bottom:3px; position:relative;}
.nav-item-link i{font-size:1.1rem; width:20px; text-align:center;}
.nav-item-link:hover{background:rgba(255,255,255,.06); color:#fff;}
.nav-item-link.active{background:linear-gradient(90deg, rgba(79,70,229,.35), rgba(124,58,237,.1)); color:#fff;}
.nav-item-link .badge-count{margin-left:auto; background:var(--danger); font-size:.65rem; padding:2px 6px; border-radius:20px;}
.sidebar-footer{padding:14px; border-top:1px solid rgba(255,255,255,.07);}
.sidebar-user{display:flex; align-items:center; gap:10px; padding:8px; border-radius:10px;}
.sidebar-user:hover{background:rgba(255,255,255,.06);}
.avatar-circle{width:34px; height:34px; border-radius:50%; background:var(--accent-grad); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.8rem; color:#fff; flex-shrink:0;}
.sidebar-user .u-name{font-size:.83rem; font-weight:600; color:#fff;}

.main-wrap{flex:1; margin-left:var(--sidebar-w); display:flex; flex-direction:column; min-width:0;}
.topbar{height:var(--topbar-h); background:rgba(245,246,251,.9); backdrop-filter:blur(8px); position:sticky; top:0; z-index:1020; display:flex; align-items:center; gap:14px; padding:0 24px; border-bottom:1px solid var(--border);}
.sidebar-toggle{width:38px; height:38px; border-radius:10px; border:1px solid var(--border); background:var(--surface); display:none; align-items:center; justify-content:center; color:var(--text-700);}
.page-body{padding:24px 26px 56px;}
.page-header{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:20px;}
.page-header h1{font-size:1.45rem; margin:0 0 4px;}
.breadcrumb-mini{font-size:.78rem; color:var(--text-500); margin:0;}
.breadcrumb-mini a{color:var(--text-500);}

/* CARDS */
.card{border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-sm);}
.card-header{background:transparent; border-bottom:1px solid var(--border-soft); font-family:'Sora',sans-serif; font-weight:600; padding:16px 18px;}
.card-body{padding:18px;}
.stat-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:18px 20px; display:flex; align-items:flex-start; justify-content:space-between; box-shadow:var(--shadow-sm);}
.stat-card .stat-icon{width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.15rem; color:#fff; flex-shrink:0;}
.stat-card .stat-label{font-size:.76rem; color:var(--text-500); font-weight:600; text-transform:uppercase; letter-spacing:.03em; margin-bottom:6px;}
.stat-card .stat-value{font-family:'Sora',sans-serif; font-size:1.55rem; font-weight:700; line-height:1;}
.bg-icon-indigo{background:linear-gradient(135deg,#4F46E5,#7C3AED);}
.bg-icon-teal{background:linear-gradient(135deg,#0EA872,#14B8A6);}
.bg-icon-amber{background:linear-gradient(135deg,#F59E0B,#F97316);}
.bg-icon-sky{background:linear-gradient(135deg,#0EA5E9,#3B82F6);}
.bg-icon-rose{background:linear-gradient(135deg,#F43F5E,#EF4444);}

.alert-strip{border-radius:var(--radius); border:1px solid; padding:13px 18px; display:flex; align-items:center; gap:12px; font-size:.87rem;}
.alert-strip.danger{background:var(--danger-100); border-color:#FBD5D5; color:#991B1B;}
.alert-strip.warning{background:var(--warning-100); border-color:#FCE7BE; color:#92400E;}

/* BADGES */
.badge{font-weight:600; font-size:.72rem; padding:5px 10px; border-radius:20px;}
.badge.bg-success{background:var(--success-100) !important; color:var(--success) !important;}
.badge.bg-warning{background:var(--warning-100) !important; color:#92400E !important;}
.badge.bg-danger{background:var(--danger-100) !important; color:#B91C1C !important;}
.badge.bg-info{background:var(--info-100) !important; color:#0369A1 !important;}
.badge.bg-primary{background:var(--primary-100) !important; color:var(--primary-600) !important;}
.badge.bg-secondary{background:var(--surface-muted) !important; color:var(--text-500) !important;}

/* TABLES */
.table-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm);}
.table{margin-bottom:0;}
.table thead th{background:var(--surface-muted); font-size:.71rem; text-transform:uppercase; letter-spacing:.04em; color:var(--text-500); font-weight:700; border-bottom:none; padding:12px 16px; white-space:nowrap;}
.table tbody td{padding:13px 16px; vertical-align:middle; border-bottom:1px solid var(--border-soft); font-size:.86rem; color:var(--text-700);}
.table tbody tr:last-child td{border-bottom:none;}
.table tbody tr:hover{background:#FBFBFE;}
.cell-strong{color:var(--text-900); font-weight:600;}
.table-toolbar{display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:14px 16px; border-bottom:1px solid var(--border-soft);}

/* FORMS & BUTTONS */
.btn{border-radius:10px; font-weight:600; font-size:.86rem; padding:9px 18px;}
.btn-sm{padding:6px 12px; font-size:.78rem; border-radius:8px;}
.btn-primary{background:var(--primary); border-color:var(--primary);}
.btn-primary:hover{background:var(--primary-600); border-color:var(--primary-600);}
.btn-light-soft{background:var(--surface-muted); border:1px solid var(--border); color:var(--text-700);}
.btn-light-soft:hover{background:var(--border);}
.btn-icon-only{width:34px; height:34px; padding:0; display:inline-flex; align-items:center; justify-content:center; border-radius:8px;}
.form-label{font-weight:600; font-size:.82rem; color:var(--text-700); margin-bottom:6px;}
.form-control,.form-select{border-radius:10px; border:1px solid var(--border); padding:9px 14px; font-size:.87rem;}
.form-control:focus,.form-select:focus{border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-100);}
textarea.form-control{min-height:80px;}
.section-title{font-family:'Sora',sans-serif; font-weight:700; font-size:.95rem; margin-bottom:14px; display:flex; align-items:center; gap:8px;}
.section-title i{color:var(--primary);}

.empty-state{text-align:center; padding:50px 20px; color:var(--text-500);}
.empty-state i{font-size:2.2rem; color:var(--border); margin-bottom:12px; display:block;}
.progress{height:8px; border-radius:20px; background:var(--surface-muted);}
.progress-bar{border-radius:20px;}

@media (max-width: 991.98px){
  .sidebar{transform:translateX(-100%);}
  .app-shell.sidebar-open .sidebar{transform:translateX(0);}
  .main-wrap{margin-left:0;}
  .sidebar-toggle{display:flex;}
  .sidebar-backdrop{display:none; position:fixed; inset:0; background:rgba(11,15,30,.5); z-index:1025;}
  .app-shell.sidebar-open .sidebar-backdrop{display:block;}
}
