/* Portal Layout — Modern Clean */

body {
    background: #f8f9fb;
    font-family: var(--bs-body-font-family);
    min-height: 100vh;
    color: #1e293b;
}

/* ─── Header ─── */
.portal-header {
    background: #fff;
    border-bottom: 1px solid rgba(0,0,0,.06);
    padding: .75rem 0;
    position: sticky;
    top: 0;
    z-index: 1020;
    backdrop-filter: blur(8px);
}
.portal-header .navbar-brand {
    color: #1e293b;
    font-weight: 650;
    font-size: 1.1rem;
    text-decoration: none;
    letter-spacing: -.01em;
}
.portal-header .navbar-brand i { color: var(--bs-primary); }
.portal-header .nav-pill {
    color: #64748b;
    text-decoration: none;
    padding: .4rem .9rem;
    border-radius: 2rem;
    font-size: .875rem;
    font-weight: 500;
    transition: all .15s ease;
}
.portal-header .nav-pill:hover { color: #1e293b; background: #f1f5f9; }
.portal-header .nav-pill.active { color: #fff; background: var(--bs-primary); }
.portal-header .user-menu { color: #64748b; font-size: .85rem; }
.portal-header .btn-ghost {
    color: #64748b;
    border: none;
    background: none;
    padding: .35rem .5rem;
    border-radius: .5rem;
}
.portal-header .btn-ghost:hover { color: #1e293b; background: #f1f5f9; }

/* ─── Welcome Banner ─── */
.portal-welcome {
    background: #fff;
    border: 1px solid rgba(0,0,0,.05);
    border-radius: .85rem;
    padding: 1.5rem 1.75rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 1px 2px rgba(0,0,0,.02);
}
.portal-welcome-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: .75rem;
    font-size: 1.35rem;
}

/* ─── Cards ─── */
.portal-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.05);
    border-radius: .85rem;
    box-shadow: 0 1px 2px rgba(0,0,0,.02), 0 2px 6px rgba(0,0,0,.03);
    transition: box-shadow .2s ease, border-color .2s ease;
    margin-bottom: 1.25rem;
}
.portal-card:hover { box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.05); }

/* ─── Avatars ─── */
.portal-avatar-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    font-size: 1.4rem;
    font-weight: 650;
    color: #fff;
    background: var(--bs-primary);
    box-shadow: 0 2px 8px rgba(26,86,219,.18);
}

/* ─── Action Buttons ─── */
.portal-actions { display: flex; flex-wrap: wrap; gap: .5rem; }

/* ─── Form Styles ─── */
.portal-form-icon {
    width: 44px; height: 44px;
    border-radius: .75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    background: rgba(26,86,219,.08);
    color: var(--bs-primary);
}
.portal-dropzone {
    border: 2px dashed rgba(0,0,0,.1);
    border-radius: .75rem;
    padding: 1.5rem;
    text-align: center;
    color: #94a3b8;
    transition: border-color .15s ease, background .15s ease;
    cursor: pointer;
}
.portal-dropzone:hover { border-color: var(--bs-primary); background: rgba(26,86,219,.02); }

/* ─── Stat Cards ─── */
.portal-stat-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.05);
    border-radius: .75rem;
    padding: 1.25rem 1.5rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 1rem;
    transition: transform .15s ease, box-shadow .15s ease;
}
.portal-stat-card:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.04); }
.portal-stat-icon {
    width: 44px; height: 44px;
    border-radius: .75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

/* ─── Step Indicator ─── */
.step-indicator { display: flex; gap: 0; overflow-x: auto; padding: .5rem 0; }
.step-item { flex: 0 0 auto; text-align: center; padding: .5rem .75rem; min-width: 100px; }
.step-item .dot { width: 14px; height: 14px; border-radius: 50%; display: inline-block; border: 2px solid rgba(0,0,0,.1); }
.step-item.active .dot { background: var(--bs-primary); border-color: var(--bs-primary); }
.step-item.done .dot { background: var(--bs-success); border-color: var(--bs-success); }
.step-item .label { font-size: .72rem; margin-top: .25rem; color: #94a3b8; }
.step-item.active .label, .step-item.done .label { color: #1e293b; font-weight: 500; }

/* ─── Misc ─── */
.stage-badge { font-size: .78rem; padding: .3em .6em; border-radius: 2rem; }
.document-card {
    padding: .85rem 1rem;
    border: 1px solid rgba(0,0,0,.05);
    border-radius: .65rem;
    transition: box-shadow .15s ease;
}
.document-card:hover { box-shadow: 0 2px 6px rgba(0,0,0,.03); }
.checklist-done { text-decoration: line-through; color: #94a3b8; }

/* ─── Dark Mode ─── */
[data-bs-theme="dark"] body { background: #111118; color: #e2e8f0; }
[data-bs-theme="dark"] .portal-header {
    background: #1a1a24;
    border-color: rgba(255,255,255,.05);
}
[data-bs-theme="dark"] .portal-header .navbar-brand { color: #e2e8f0; }
[data-bs-theme="dark"] .portal-header .nav-pill { color: #94a3b8; }
[data-bs-theme="dark"] .portal-header .nav-pill:hover { color: #e2e8f0; background: #2d2d3d; }
[data-bs-theme="dark"] .portal-welcome { background: #1a1a24; border-color: rgba(255,255,255,.05); }
[data-bs-theme="dark"] .portal-card { background: #1a1a24; border-color: rgba(255,255,255,.05); }
[data-bs-theme="dark"] .portal-card:hover { border-color: rgba(26,86,219,.2); }
[data-bs-theme="dark"] .document-card { background: #1a1a24; border-color: rgba(255,255,255,.05); }
[data-bs-theme="dark"] .portal-stat-card { background: #1a1a24; border-color: rgba(255,255,255,.05); }
[data-bs-theme="dark"] .table-light { --bs-table-bg: #1a1a24; color: #e2e8f0; }
[data-bs-theme="dark"] .portal-dropzone { border-color: #3d3d50; }
[data-bs-theme="dark"] .portal-dropzone:hover { background: rgba(26,86,219,.06); }
