:root { --brand-primary:#2c5aa0; --sidebar-width:250px; }
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
.app-shell { min-height:100vh; }
.sidebar { width:var(--sidebar-width); background:#0f1824; color:#fff; }
.sidebar a { color:#c9d1d9; text-decoration:none; display:flex; align-items:center; gap:.6rem; padding:.55rem .95rem; border-radius:.375rem; font-size:.925rem; }
.sidebar a.active, .sidebar a:hover { background:#1d2a3a; color:#fff; }
.sidebar .nav-section { font-size:.65rem; text-transform:uppercase; letter-spacing:.05em; opacity:.6; padding:1rem .95rem .35rem; }
.brand { font-weight:600; font-size:1.05rem; padding:1rem .95rem; display:flex; align-items:center; gap:.65rem; border-bottom:1px solid rgba(255,255,255,.08); }
.brand i { color: var(--brand-primary); }
.content-wrapper { flex:1; display:flex; flex-direction:column; min-width:0; }
header.app-header { background:#ffffff; border-bottom:1px solid #e5e7eb; padding:.65rem 1rem; display:flex; align-items:center; justify-content:space-between; }
header .page-title { margin:0; font-size:1rem; font-weight:600; color:#1f2937; }
.main-scroll { flex:1; padding:1.25rem 1.5rem 2.5rem; background:#f5f7fa; }
footer.app-footer { font-size:.75rem; color:#6b7280; padding:.75rem 1rem; text-align:center; background:#ffffff; border-top:1px solid #e5e7eb; }
.copy-badge { font-size:.65rem; background:#e2e8f0; border-radius:999px; padding:.15rem .6rem; margin-left:.35rem; }
@media (max-width: 992px) { .sidebar { position:fixed; z-index:1030; left:0; top:0; bottom:0; transform:translateX(-100%); transition:transform .25s ease; } .sidebar.open { transform:translateX(0); } .sidebar-toggle-btn { display:inline-flex; } }
@media (min-width: 993px) { .sidebar-toggle-btn { display:none; } }
