/* ── Base Reset ─────────────────────────────────────────────────────────────── */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}

/* ── Shell ──────────────────────────────────────────────────────────────────── */
.shell{display:flex;height:100vh;overflow:hidden}
.sidebar{width:230px;background:#1e293b;display:flex;flex-direction:column;flex-shrink:0;transition:width .22s ease}
.sidebar-logo{padding:14px 14px 12px;font-weight:800;font-size:15px;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;gap:6px;overflow:hidden}
.sidebar-logo-full{white-space:nowrap;overflow:hidden}
.sidebar-logo-full span{color:#60a5fa}
.sidebar-logo-short{display:none;font-size:16px;font-weight:800;color:#60a5fa;white-space:nowrap}
.sidebar-toggle{background:none;border:1px solid rgba(255,255,255,.15);color:#94a3b8;cursor:pointer;font-size:12px;padding:3px 6px;border-radius:4px;transition:all .15s;flex-shrink:0;line-height:1}
.sidebar-toggle:hover{background:rgba(255,255,255,.12);color:#fff}
.sidebar-user{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:10px;overflow:hidden;transition:padding .22s}
.user-avatar{width:34px;height:34px;border-radius:50%;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
.user-info{min-width:0;transition:opacity .15s,width .22s;overflow:hidden}
.user-name{font-size:13px;font-weight:600;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}
.sidebar-nav{flex:1;padding:8px 0;overflow-y:auto;overflow-x:hidden}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 18px;cursor:pointer;color:#94a3b8;font-size:13px;font-weight:500;border-left:3px solid transparent;transition:all .15s;user-select:none;position:relative;overflow:hidden;white-space:nowrap}
.nav-item:hover{background:rgba(255,255,255,.06);color:#e2e8f0}
.nav-item.active{background:rgba(37,99,235,.25);color:#93c5fd;border-left-color:#3b82f6}
.nav-item.hidden{display:none}
.nav-label{transition:opacity .15s}
.nav-group{padding:14px 18px 5px 21px;font-size:10px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.13em;white-space:nowrap;overflow:hidden}
.nav-sep{height:1px;background:rgba(255,255,255,.08);margin:6px 18px;transition:margin .22s}
.nav-icon{font-size:15px;width:18px;text-align:center;flex-shrink:0}
.sidebar-footer{padding:12px 14px;border-top:1px solid rgba(255,255,255,.1);overflow:hidden}
.logout-btn{width:100%;padding:8px 10px;background:rgba(255,255,255,.07);color:#94a3b8;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);cursor:pointer;font-size:13px;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;overflow:hidden}
.logout-btn:hover{background:rgba(255,255,255,.13);color:#e2e8f0}

/* ── Collapsed Sidebar ──────────────────────────────────────────────────────── */
.sidebar.collapsed{width:60px}
.sidebar.collapsed .sidebar-logo-full{display:none}
.sidebar.collapsed .sidebar-logo-short{display:block}
.sidebar.collapsed .user-info{opacity:0;width:0;overflow:hidden}
.sidebar.collapsed .sidebar-user{justify-content:center;padding:10px 0}
.sidebar.collapsed .nav-item{justify-content:center;padding:10px 0;border-left-color:transparent}
.sidebar.collapsed .nav-item.active{border-left-color:transparent;background:rgba(37,99,235,.35)}
.sidebar.collapsed .nav-label{display:none}
.sidebar.collapsed .nav-group{display:none}
.sidebar.collapsed .nav-sep{margin:6px 10px}
.sidebar.collapsed .logout-btn .nav-label{display:none}
.sidebar.collapsed .logout-btn{padding:8px 0}
/* Tooltip on hover in collapsed mode */
.sidebar.collapsed .nav-item::after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#334155;color:#f1f5f9;padding:5px 10px;border-radius:6px;font-size:12px;white-space:nowrap;z-index:1000;pointer-events:none;opacity:0;transition:opacity .15s;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.sidebar.collapsed .nav-item:hover::after{opacity:1}

/* ── Main ───────────────────────────────────────────────────────────────────── */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.topbar-left{display:flex;flex-direction:column;gap:2px;min-width:0}
.topbar-title{font-size:16px;font-weight:700;line-height:1.2}
.topbar-subtitle{font-size:11px;color:var(--muted);line-height:1;display:none}
.topbar-subtitle:not(:empty){display:block}
.topbar-right{display:flex;gap:8px;align-items:center}
.content{flex:1;overflow-y:auto;padding:24px}

/* ── Hamburger (hidden on desktop) ──────────────────────────────────────────── */
#hamburger{display:none;align-items:center;justify-content:center;padding:6px 8px;font-size:20px;color:var(--text);border-radius:var(--radius);transition:background .15s;flex-shrink:0}
#hamburger:hover{background:var(--hover)}
#sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:299;cursor:pointer}

/* ── Mobile sidebar (≤768px) ─────────────────────────────────────────────── */
@media (max-width:768px){
  #hamburger{display:flex}
  .sidebar{position:fixed;left:0;top:0;height:100%;z-index:300;transform:translateX(-100%);transition:transform .25s ease;width:230px!important}
  .shell.sidebar-open .sidebar{transform:translateX(0);box-shadow:4px 0 24px rgba(0,0,0,.4)}
  .shell.sidebar-open #sidebar-backdrop{display:block}
  /* Reset collapsed overrides so mobile drawer is always full-width */
  .sidebar.collapsed .sidebar-logo-full{display:block}
  .sidebar.collapsed .sidebar-logo-short{display:none}
  .sidebar.collapsed .user-info{opacity:1;width:auto;overflow:visible}
  .sidebar.collapsed .sidebar-user{justify-content:flex-start;padding:10px 14px}
  .sidebar.collapsed .nav-item{justify-content:flex-start;padding:9px 18px}
  .sidebar.collapsed .nav-item.active{border-left-color:#3b82f6}
  .sidebar.collapsed .nav-label{display:inline}
  .sidebar.collapsed .nav-group{display:block}
  .sidebar.collapsed .nav-sep{margin:6px 18px}
  .sidebar.collapsed .logout-btn .nav-label{display:inline}
  .sidebar.collapsed .logout-btn{padding:8px 10px}
  .sidebar.collapsed .nav-item::after{display:none}
  #sidebar-toggle{display:none}
  .topbar{padding:12px 16px}
  .content{padding:16px}
}
