:root {
    --brand: #1463df;
    --brand-dark: #0a3d91;
    --ink: #15223b;
    --muted: #64748b;
    --line: #e4ebf5;
    --surface: #f5f8fc;
}

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

.brand-mark {
    align-items: center;
    background: linear-gradient(135deg, var(--brand), #52a8ff);
    border-radius: 8px;
    color: #fff;
    display: inline-grid;
    font-weight: 800;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.main-shell {
    min-height: calc(100vh - 65px);
}

.sidebar {
    background: #fff;
    border-right: 1px solid var(--line);
    min-height: calc(100vh - 65px);
    width: 255px;
}

.sidebar .nav-link {
    border-radius: 8px;
    color: #526179;
    margin-bottom: .2rem;
    padding: .7rem .9rem;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active {
    background: var(--brand);
    color: #fff;
}

.card {
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 4px 18px rgba(25, 48, 89, .04);
}

.stat-icon {
    align-items: center;
    border-radius: 8px;
    display: grid;
    height: 46px;
    justify-content: center;
    width: 46px;
}

.table > :not(caption) > * > * {
    padding: .85rem;
}

.table thead th {
    color: #718096;
    font-size: .75rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.btn,
.form-control,
.form-select {
    border-radius: 8px;
}

.form-control,
.form-select {
    padding: .68rem .8rem;
}

.auth-page {
    background:
        radial-gradient(circle at top right, #d8eaff, transparent 38%),
        #f5f8fc;
    min-height: 100vh;
}

.auth-card {
    max-width: 470px;
}

.doc-preview {
    background: #eef3fa;
    height: 180px;
    object-fit: cover;
    width: 100%;
}

.doc-placeholder {
    align-items: center;
    background: #eef3fa;
    color: var(--muted);
    display: grid;
    height: 180px;
    justify-content: center;
}

.status-dot {
    border-radius: 50%;
    display: inline-block;
    height: 9px;
    width: 9px;
}

.timeline {
    border-left: 2px solid #dce6f5;
    padding-left: 1rem;
}

.breadcrumb {
    font-size: .875rem;
}

.empty-state {
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    padding: 2rem;
    text-align: center;
}

.metadata-cell {
    max-width: 360px;
    white-space: normal;
}

@media (max-width: 991.98px) {
    .main-shell {
        display: block !important;
    }

    .sidebar {
        border-right: 0;
        min-height: auto;
        width: 100%;
    }

    .sidebar .nav {
        display: flex;
        flex-wrap: nowrap;
        overflow: auto;
    }

    .sidebar .nav-link {
        white-space: nowrap;
    }
}
