/* =============================
   APP SHELL
============================= */
#app{display:none;height:100vh;overflow:hidden}
#app.visible{display:flex}
#sidebar-backdrop{display:none}
.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;transition:width 0.25s ease,left 0.3s ease;z-index:100;overflow:hidden}
/* Desktop collapsed state (icon-only rail) */
body.sidebar-collapsed .sidebar{width:64px}
body.sidebar-collapsed .sidebar-logo-text,
body.sidebar-collapsed .sidebar-logo-icon,
body.sidebar-collapsed .nav-section-label,
body.sidebar-collapsed .nav-item .nav-label,
body.sidebar-collapsed .nav-item .nav-badge,
body.sidebar-collapsed .user-info,
body.sidebar-collapsed .sidebar-user .settings-gear{display:none}
body.sidebar-collapsed .nav-item{justify-content:center;padding:9px 0}
body.sidebar-collapsed .sidebar-logo{justify-content:center}
body.sidebar-collapsed .sidebar-user{justify-content:center}
body.sidebar-collapsed .nav-item.active::before{left:0}
body.sidebar-collapsed .sidebar-top{padding:18px 10px;justify-content:center}
body.sidebar-collapsed #app-status-bar{left:64px}
#app-status-bar{left:var(--sidebar-width);transition:left 0.25s ease}
@media(max-width:640px){#app-status-bar{left:0!important}}
.sidebar-top{padding:18px 16px;border-bottom:1px solid var(--border)}
.sidebar-logo{display:flex;align-items:center;gap:10px}
.sidebar-logo-icon{width:32px;height:32px;background:none;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:0.9rem;flex-shrink:0}
.sidebar-logo-text{font-family:var(--font-display);font-size:1.15rem;font-weight:700}
.sidebar-logo-text span{color:var(--accent)}
.hamburger-btn{width:30px;height:30px;border-radius:var(--radius-sm);background:none;border:1.5px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:0.95rem;transition:var(--transition);flex-shrink:0}
.hamburger-btn:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--border-bright)}
.sidebar-nav{flex:1;overflow-y:auto;padding:10px 8px}
.nav-section-label{font-size:0.68rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.08em;padding:14px 10px 6px}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);position:relative;color:var(--text-secondary);font-size:0.875rem;font-weight:500;margin-bottom:2px}
.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}
.nav-item.active{background:rgba(79,124,255,0.12);color:var(--accent);font-weight:600}
.nav-item.active::before{content:'';position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--accent);border-radius:0 2px 2px 0}
.nav-icon{font-size:1rem;width:20px;text-align:center;flex-shrink:0}
.nav-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:0.68rem;font-weight:700;padding:2px 6px;border-radius:20px;min-width:18px;text-align:center}
.sidebar-bottom{padding:12px 8px;border-top:1px solid var(--border)}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}
.sidebar-user:hover{background:var(--bg-hover)}
.user-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-size:0.85rem;font-weight:700;color:#fff;flex-shrink:0}
.user-info{flex:1;min-width:0}
.user-name{font-size:0.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-role{font-size:0.72rem;color:var(--text-muted)}
.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}
.topbar{display:flex;align-items:center;gap:12px;padding:0 20px;height:56px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}
.topbar-left{flex:1;display:flex;align-items:center;gap:12px}
.topbar-title{font-size:1rem;font-weight:700}
.search-wrap{display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:7px 13px;flex:1;max-width:320px;transition:var(--transition)}
.search-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,124,255,0.1)}
.search-wrap input{background:none;border:none;outline:none;color:var(--text-primary);font-size:0.85rem;flex:1;min-width:0}
.search-wrap input::placeholder{color:var(--text-muted)}
.topbar-actions{display:flex;align-items:center;gap:8px}
.topbar-btn{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--bg-card);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);color:var(--text-secondary);font-size:0.9rem}
.topbar-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-bright)}
/* Quick-add + button: accent coloured to stand out as the primary action */
.quick-add-btn{background:rgba(79,124,255,0.15)!important;border-color:var(--accent)!important;color:var(--accent)!important}
.quick-add-btn:hover{background:rgba(79,124,255,0.28)!important}
/* Quick-add dropdown menu items */
.qam-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:0.85rem;font-weight:500;color:var(--text-primary);transition:var(--transition)}
.qam-item:hover{background:var(--bg-hover);color:var(--accent)}
.qam-item span{flex:1}
.topbar-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-bright)}
.content-area{flex:1;overflow-y:auto;padding:20px}

/* =============================
   VIEWS
============================= */
.view{display:none;animation:viewIn 0.25s ease;max-width:1600px;margin:0 auto}
.view.active{display:block}
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

