/* ═══════════════════════════════════════════
   layout.css — App shell, sidebar, topbar
   FleetOS v4
═══════════════════════════════════════════ */

/* ── LOGIN ───────────────────────────── */
#login-screen {
  position:fixed; inset:0; z-index:9000;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg);
}
[data-theme="dark"] #login-screen {
  background-image:
    radial-gradient(ellipse 700px 500px at 20% -5%, rgba(99,102,241,0.1) 0%, transparent 60%),
    radial-gradient(ellipse 500px 400px at 85% 105%, rgba(16,185,129,0.07) 0%, transparent 55%);
}
.login-card {
  width:400px;
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  padding:42px 36px 36px;
  box-shadow:var(--shadow);
}
.login-logo {
  font-family:var(--font-display); font-size:32px; font-weight:600;
  letter-spacing:-1px; text-align:center; margin-bottom:6px;
}
.login-logo span { color:var(--primary); }
.login-tagline { text-align:center; font-size:12px; color:var(--muted); margin-bottom:30px; }
.login-error {
  color:var(--danger); font-size:12px; padding:10px 13px;
  background:var(--danger-bg); border:1px solid var(--danger-bd);
  border-radius:var(--radius-sm); margin-bottom:12px;
}
.login-links { text-align:center; margin-top:16px; font-size:12px; color:var(--muted); }
.login-links a { color:var(--primary); }

/* ── APP SHELL ───────────────────────── */
.app-layout {
  display:grid;
  grid-template-columns:var(--sidebar-w) 1fr;
  grid-template-rows:var(--topbar-h) 1fr;
  height:100vh; overflow:hidden;
}

/* ── TOPBAR ──────────────────────────── */
.topbar {
  grid-column:1 / -1;
  display:flex; align-items:center;
  background:var(--bg2);
  border-bottom:1px solid var(--border-s);
  padding:0 20px 0 0;
  position:relative; z-index:200;
  height:var(--topbar-h);
}
.topbar-brand {
  width:var(--sidebar-w);
  display:flex; align-items:center; gap:10px;
  padding:0 20px;
  border-right:1px solid var(--border-s);
  height:100%; flex-shrink:0;
}
.topbar-brand-icon {
  width:34px; height:34px; border-radius:10px; flex-shrink:0;
  background:linear-gradient(135deg, var(--primary), #818cf8);
  display:flex; align-items:center; justify-content:center;
  font-size:16px; font-weight:900; color:#fff;
  font-family:var(--font-display);
  box-shadow:0 0 14px rgba(99,102,241,0.35);
}
.topbar-brand-name {
  font-family:var(--font-display); font-size:18px; font-weight:600;
  letter-spacing:-0.5px; color:var(--text);
}
.topbar-brand-name span { color:var(--primary); }

.topbar-left {
  display:flex; align-items:center; gap:14px;
  padding:0 20px; flex:1;
}
.topbar-hamburger {
  width:32px; height:32px; border-radius:var(--radius-sm);
  background:transparent; border:none;
  color:var(--muted); cursor:pointer; font-size:16px;
  display:flex; align-items:center; justify-content:center;
  transition:all var(--transition);
}
.topbar-hamburger:hover { background:var(--glass); color:var(--text); }

.topbar-page-info {}
.topbar-page-title { font-size:14px; font-weight:600; color:var(--text); line-height:1.2; }
.topbar-breadcrumb { font-size:11px; color:var(--muted); display:flex; align-items:center; gap:5px; margin-top:1px; }
.topbar-breadcrumb span { color:var(--text-2); }
.topbar-breadcrumb .sep { opacity:0.4; }

.topbar-right {
  display:flex; align-items:center; gap:8px;
  padding-left:16px;
}
.topbar-search {
  position:relative;
}
.topbar-search input {
  width:240px; padding:8px 14px 8px 36px;
  background:var(--bg3); border-color:var(--border-s);
  font-size:13px; border-radius:var(--radius-sm);
}
.topbar-search input:focus { border-color:var(--border-m); }
.topbar-search-icon {
  position:absolute; left:11px; top:50%; transform:translateY(-50%);
  color:var(--muted); font-size:14px; pointer-events:none;
}
.topbar-icon-btn {
  width:34px; height:34px; border-radius:var(--radius-sm);
  background:transparent; border:1px solid transparent;
  color:var(--muted); cursor:pointer; font-size:16px;
  display:flex; align-items:center; justify-content:center;
  transition:all var(--transition); position:relative;
}
.topbar-icon-btn:hover { background:var(--glass); color:var(--text); border-color:var(--border-s); }
.topbar-icon-btn .dot {
  position:absolute; top:4px; right:4px;
  width:14px; height:14px; border-radius:50%;
  background:var(--danger); color:#fff;
  font-size:8px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  border:2px solid var(--bg2);
}

/* ── SIDEBAR ─────────────────────────── */
.sidebar {
  display:flex; flex-direction:column;
  background:var(--bg2);
  border-right:1px solid var(--border-s);
  overflow:hidden; z-index:100;
}

.sidebar-nav {
  flex:1; padding:10px 12px; overflow-y:auto;
  display:flex; flex-direction:column; gap:1px;
}
.nav-group-label {
  font-size:10px; font-weight:600;
  letter-spacing:1.3px; text-transform:uppercase;
  color:var(--muted2); padding:14px 8px 5px;
}
.nav-group-label:first-child { padding-top:8px; }

.nav-btn {
  display:flex; align-items:center; gap:10px;
  width:100%; padding:9px 10px;
  border:none; border-radius:var(--radius-sm);
  background:transparent; color:var(--muted);
  cursor:pointer; font-family:var(--font-sans); font-size:13.5px; font-weight:400;
  transition:all var(--transition); text-align:left; position:relative;
}
.nav-btn:hover { background:var(--bg-hover); color:var(--text-2); }
.nav-btn.active {
  background:var(--primary-l);
  color:var(--primary);
  font-weight:500;
}
.nav-btn.active::before {
  content:'';
  position:absolute; left:0; top:18%; bottom:18%;
  width:3px; background:var(--primary);
  border-radius:0 3px 3px 0;
}
.nav-icon { font-size:16px; flex-shrink:0; width:20px; text-align:center; line-height:1; }
.nav-label { flex:1; line-height:1.2; }
.nav-badge {
  background:var(--danger); color:#fff;
  font-size:10px; font-weight:700;
  min-width:18px; height:18px; border-radius:9px;
  display:inline-flex; align-items:center; justify-content:center;
  padding:0 5px;
}

/* ── Sidebar footer ─────────────────── */
.sidebar-footer {
  border-top:1px solid var(--border-s);
  padding:8px 12px 10px;
  display:flex; flex-direction:column; gap:2px;
}
.user-chip {
  display:flex; align-items:center; gap:10px;
  padding:9px 10px; border-radius:var(--radius-sm);
  cursor:pointer; transition:background var(--transition);
  margin-top:4px;
}
.user-chip:hover { background:var(--bg-hover); }
.user-avatar {
  width:34px; height:34px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:12.5px; font-weight:600;
  color:#fff;
}
.user-name { font-size:13px; font-weight:600; color:var(--text); }
.user-role { font-size:11px; color:var(--muted); }

/* ── MAIN AREA ───────────────────────── */
.main-area {
  position:relative; overflow:hidden;
  background:var(--bg);
}
.view { display:none; height:100%; overflow:hidden; }
.view.active { display:flex; flex-direction:column; }
