:root {
    --navy: #102a43;
    --blue: #2f6fed;
    --blue-soft: #edf3ff;
    --bg: #f4f7fb;
    --card: #ffffff;
    --muted: #66788a;
    --success: #1f9d55;
    --warning: #d49b0b;
    --danger: #d64545;
    --radius: 18px;
}

body {
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--bg);
    color: var(--navy);
}

.text-navy { color: var(--navy); }
.app-shell { display: flex; min-height: 100vh; }
.app-sidebar { width: 280px; background: #fff; border-right: 1px solid #e5ebf2; position: sticky; top: 0; height: 100vh; }
.app-main { flex: 1; min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 1020; }
.brand-mark { font-weight: 800; letter-spacing: .02em; color: var(--navy); }
.sidebar-link { color: var(--navy); border-radius: 14px; padding: .8rem 1rem; font-weight: 500; }
.sidebar-link:hover, .sidebar-link.active { background: var(--blue-soft); color: var(--blue); }
.card { border-radius: var(--radius); }
.auth-card { overflow: hidden; }
.avatar-circle { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--blue-soft); color: var(--blue); font-weight: 700; }
.btn-primary { background: var(--blue); border-color: var(--blue); }
.btn-primary:hover { filter: brightness(.96); }
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator, .htmx-indicator.htmx-request { display: flex; align-items: center; }
.min-vh-75 { min-height: calc(100vh - 120px); }

@media (max-width: 991.98px) {
    .app-shell { display: block; }
    .topbar { top: 0; }
}
