:root{
    --primary:#2563eb;
    --primary-dark:#1d4ed8;
    --sidebar-bg:#0f172a;
    --sidebar-hover:#1e293b;
    --sidebar-group:#94a3b8;
    --body-bg:#f8fafc;
    --card-bg:#fff;
    --text-dark:#0f172a;
    --text-muted:#64748b;
    --border-color:#e2e8f0;
    --sidebar-width:280px;
}
body{background:var(--body-bg);color:var(--text-dark);font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;margin:0}
.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--sidebar-bg);color:#fff;padding:20px 0;overflow-y:auto;z-index:1000}
.sidebar-brand{padding:0 20px 20px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:16px}.sidebar-brand h4{font-weight:700}.sidebar-brand small{color:rgba(255,255,255,.72)}.sidebar-logo{width:48px;height:48px;border-radius:16px;object-fit:cover;box-shadow:0 8px 20px rgba(15,23,42,.28)}
.sidebar-group{padding:0 14px 12px}.sidebar-group-last{padding-bottom:20px}.sidebar-group-title{display:flex;align-items:center;gap:10px;color:var(--sidebar-group);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.sidebar-group-title i{font-size:.92rem;color:#bfdbfe}.sidebar-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:0;background:transparent;color:inherit;border-radius:12px}.sidebar-group-toggle:hover{background:rgba(255,255,255,.04)}.sidebar-chevron{color:#94a3b8;transition:transform .2s ease}.sidebar-group-toggle[aria-expanded="false"] .sidebar-chevron{transform:rotate(-90deg)}
.sidebar-submenu{list-style:none;margin:0;padding:0 0 0 6px}.sidebar-submenu:not(.is-open){display:none}.sidebar-submenu li+li{margin-top:4px}.sidebar-submenu li a{display:flex;align-items:center;gap:10px;color:#e2e8f0;text-decoration:none;padding:10px 12px;border-radius:12px;transition:.2s}.sidebar-submenu li a:hover,.sidebar-submenu li a.active{background:var(--sidebar-hover);color:#fff}.submenu-dot{font-size:.5rem;color:#93c5fd;flex:0 0 auto}
.main-content{margin-left:var(--sidebar-width);min-height:100vh}.topbar{background:#fff;border-bottom:1px solid var(--border-color);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:900}.content-wrapper{padding:24px}.page-title{font-size:1.5rem;font-weight:700;margin-bottom:20px}
.app-card,.stat-card,.table-card{background:#fff;border:1px solid var(--border-color);border-radius:16px;box-shadow:0 6px 20px rgba(15,23,42,.04)}.app-card,.stat-card{padding:20px}.table-card{overflow:hidden}.table-card .table{margin:0}
.form-control,.form-select,textarea.form-control{border-radius:10px;border:1px solid #cbd5e1;padding:10px 12px;box-shadow:none}.form-control:focus,.form-select:focus,textarea.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(37,99,235,.12)}
.btn-primary{background:var(--primary);border-color:var(--primary);border-radius:10px;padding:10px 16px;font-weight:600}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-outline-primary,.btn-outline-secondary,.btn-outline-danger,.btn-outline-success,.btn-secondary,.btn-danger{border-radius:10px;font-weight:600}.alert{border-radius:12px}
.login-page{min-height:100vh;display:flex;justify-content:center;align-items:center;background:radial-gradient(circle at top left,#dbeafe 0,#eff6ff 28%,#f8fafc 70%)}
.login-card-compact{max-width:420px;width:100%;padding:34px 30px;border-radius:24px}.login-logo-small{width:84px;height:84px;object-fit:contain}.login-heading{font-size:1.75rem;font-weight:800;color:#0f172a}
.login-shell{width:100%;max-width:1100px;background:#fff;border:1px solid var(--border-color);border-radius:28px;box-shadow:0 18px 50px rgba(15,23,42,.12)}
.login-brand-panel{background:linear-gradient(160deg,#eff6ff 0,#dbeafe 40%,#bfdbfe 100%);border-right:1px solid var(--border-color);min-height:100%}.login-brand-inner{padding:42px 36px;display:flex;flex-direction:column;justify-content:center;height:100%}.login-logo{width:132px;height:132px;object-fit:contain}.login-logo-mobile{width:88px;height:88px;object-fit:contain}.login-badge{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.login-title{font-size:2rem;font-weight:800;color:#0f172a}.login-copy{color:#334155;font-size:1rem;line-height:1.65}.login-feature-list{display:grid;gap:12px;color:#0f172a;font-weight:600}.login-feature-list i{margin-right:10px;color:#2563eb}
.login-card{width:100%;max-width:420px;background:#fff;border-radius:18px;padding:30px;box-shadow:0 12px 35px rgba(15,23,42,.08);border:1px solid var(--border-color)}.login-card-wide{max-width:none;border:0;box-shadow:none;border-radius:28px;padding:42px 38px;min-height:100%}.login-links-panel{padding-top:10px;border-top:1px solid var(--border-color)}.quick-link-btn{justify-content:flex-start;padding:10px 14px}
.kiosk-shell{min-height:100vh;background:linear-gradient(135deg,#eef4ff,#f8fafc)}.kiosk-card{padding:28px}.kiosk-rfid-input{font-size:1.4rem;padding:16px 18px}.kiosk-link-input{min-width:320px}
@media (max-width:991px){.sidebar{transform:translateX(-100%);transition:transform .3s}.sidebar.show{transform:translateX(0)}.main-content{margin-left:0}.login-shell{max-width:520px}.login-card-wide{padding:30px 24px}}
@media (max-width:767px){.kiosk-link-input{min-width:220px}.login-page{padding-top:24px;padding-bottom:24px}.login-card-compact{padding:28px 22px}}
