/* ============================================================
   SOC UI Foundation v1 — Phase 11A
   Visual language aligned with PANSEK, adapted for back-office UI.
   ============================================================ */

:root {
    --soc-primary: #041E41;
    --soc-dark: #19233E;
    --soc-accent: #BC6D24;
    --soc-soft: #E5AE8D;
    --soc-bg: #F7F8FA;
    --soc-surface: #FFFFFF;
    --soc-text: #1C2433;
    --soc-muted: #6B7280;
    --soc-border: #E8E8E8;
    --soc-success: #16A34A;
    --soc-warning: #F59E0B;
    --soc-danger: #DC2626;
    --soc-info: #2563EB;
    --soc-radius-sm: 8px;
    --soc-radius: 12px;
    --soc-radius-lg: 16px;
    --soc-shadow-sm: 0 1px 2px rgba(4, 30, 65, .05), 0 4px 14px rgba(4, 30, 65, .05);
    --soc-shadow: 0 8px 28px rgba(4, 30, 65, .08);
    --soc-focus: 0 0 0 .2rem rgba(37, 99, 235, .15);
}

body.soc-app {
    background: var(--soc-bg);
    color: var(--soc-text);
    font-family: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
}

body.soc-app #content-wrapper,
body.soc-app #content {
    background: var(--soc-bg);
}

body.soc-app .container-fluid {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

/* Typography */
body.soc-app h1,
body.soc-app h2,
body.soc-app h3,
body.soc-app h4,
body.soc-app h5,
body.soc-app h6 {
    color: var(--soc-dark);
    letter-spacing: -.01em;
}

body.soc-app .text-gray-800 { color: var(--soc-dark) !important; }
body.soc-app .text-muted { color: var(--soc-muted) !important; }

/* Cards */
body.soc-app .card {
    border: 1px solid var(--soc-border);
    border-radius: var(--soc-radius);
    box-shadow: var(--soc-shadow-sm) !important;
    overflow: hidden;
}

body.soc-app .card-header {
    border-bottom: 1px solid var(--soc-border);
    background: var(--soc-surface);
    color: var(--soc-dark);
}

body.soc-app .card-footer {
    border-top: 1px solid var(--soc-border);
    background: #FBFCFE;
}

/* Buttons */
body.soc-app .btn {
    border-radius: var(--soc-radius-sm);
    font-weight: 700;
    box-shadow: none;
}

body.soc-app .btn-primary {
    background: var(--soc-primary);
    border-color: var(--soc-primary);
}
body.soc-app .btn-primary:hover,
body.soc-app .btn-primary:focus {
    background: var(--soc-dark);
    border-color: var(--soc-dark);
}
body.soc-app .btn-outline-primary {
    color: var(--soc-primary);
    border-color: var(--soc-primary);
}
body.soc-app .btn-outline-primary:hover {
    background: var(--soc-primary);
    border-color: var(--soc-primary);
}
body.soc-app .btn-success { background: var(--soc-success); border-color: var(--soc-success); }
body.soc-app .btn-warning { background: var(--soc-warning); border-color: var(--soc-warning); }
body.soc-app .btn-danger { background: var(--soc-danger); border-color: var(--soc-danger); }
body.soc-app .btn-info { background: var(--soc-info); border-color: var(--soc-info); }

/* Forms */
body.soc-app .form-control,
body.soc-app .custom-select,
body.soc-app .select2-container--bootstrap-5 .select2-selection {
    border-color: #D9DEE7;
    border-radius: var(--soc-radius-sm);
    min-height: 40px;
    color: var(--soc-text);
}
body.soc-app .form-control:focus,
body.soc-app .custom-select:focus,
body.soc-app .select2-container--bootstrap-5.select2-container--focus .select2-selection {
    border-color: var(--soc-info);
    box-shadow: var(--soc-focus);
}
body.soc-app label {
    color: var(--soc-dark);
    font-weight: 700;
}

/* Tables */
body.soc-app .table {
    color: var(--soc-text);
}
body.soc-app .table thead th,
body.soc-app .thead-light th {
    background: #F2F5F9;
    color: var(--soc-dark);
    border-bottom: 1px solid var(--soc-border);
    font-weight: 800;
}
body.soc-app .table td,
body.soc-app .table th {
    border-color: var(--soc-border);
}
body.soc-app .table-hover tbody tr:hover {
    background: #F8FAFD;
}

/* Badges */
body.soc-app .badge {
    border-radius: 999px;
    font-weight: 800;
    padding: .38em .65em;
}
body.soc-app .badge-success { background: var(--soc-success); }
body.soc-app .badge-warning { background: var(--soc-warning); color: #fff; }
body.soc-app .badge-danger { background: var(--soc-danger); }
body.soc-app .badge-info { background: var(--soc-info); }
body.soc-app .badge-primary { background: var(--soc-primary); }

/* Unified flash alerts */
body.soc-app .soc-flash {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    border: 1px solid transparent;
    border-radius: var(--soc-radius);
    padding: .9rem 1rem;
    box-shadow: var(--soc-shadow-sm);
}
body.soc-app .soc-flash__icon {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
body.soc-app .soc-flash__title { font-weight: 800; margin-bottom: .1rem; }
body.soc-app .soc-flash__message { line-height: 1.45; }
body.soc-app .soc-flash--success { background: #F0FDF4; border-color: #BBF7D0; color: #166534; }
body.soc-app .soc-flash--success .soc-flash__icon { background: #DCFCE7; }
body.soc-app .soc-flash--danger { background: #FEF2F2; border-color: #FECACA; color: #991B1B; }
body.soc-app .soc-flash--danger .soc-flash__icon { background: #FEE2E2; }
body.soc-app .soc-flash--warning { background: #FFFBEB; border-color: #FDE68A; color: #92400E; }
body.soc-app .soc-flash--warning .soc-flash__icon { background: #FEF3C7; }
body.soc-app .soc-flash--info { background: #EFF6FF; border-color: #BFDBFE; color: #1E40AF; }
body.soc-app .soc-flash--info .soc-flash__icon { background: #DBEAFE; }

/* Reusable page primitives for gradual migration */
.soc-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.soc-page-header__title { margin: 0 0 .25rem; font-size: 1.7rem; font-weight: 800; }
.soc-page-header__subtitle { margin: 0; color: var(--soc-muted); }
.soc-section-title {
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--soc-primary);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: .78rem;
}
.soc-kpi {
    border-left: 4px solid var(--soc-primary) !important;
}
.soc-kpi--accent { border-left-color: var(--soc-accent) !important; }
.soc-kpi--success { border-left-color: var(--soc-success) !important; }
.soc-kpi--warning { border-left-color: var(--soc-warning) !important; }
.soc-kpi--danger { border-left-color: var(--soc-danger) !important; }

/* Topbar refinement */
body.soc-app .topbar {
    border-bottom: 1px solid var(--soc-border);
    box-shadow: 0 2px 12px rgba(4, 30, 65, .04) !important;
}

/* Responsive */
@media (max-width: 767.98px) {
    body.soc-app .container-fluid { padding-left: 1rem; padding-right: 1rem; }
    .soc-page-header { flex-direction: column; }
    body.soc-app .card-body { padding: 1rem; }
}


/* ==========================================================
   SOC UI — Phase 11B Members & Profile
   ========================================================== */

.soc-page-head {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.soc-page-head__title {
    margin: 0;
    color: var(--soc-color-dark, #19233E);
    font-weight: 700;
    letter-spacing: -.02em;
}

.soc-page-head__subtitle {
    margin: .35rem 0 0;
    color: #6c757d;
    font-size: .92rem;
}

.soc-panel {
    border: 1px solid var(--soc-color-border, #E8E8E8);
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(4, 30, 65, .06);
    background: #fff;
    overflow: hidden;
}

.soc-panel__header {
    padding: 1rem 1.25rem;
    background: #fff;
    border-bottom: 1px solid var(--soc-color-border, #E8E8E8);
}

.soc-panel__title {
    margin: 0;
    color: var(--soc-color-primary, #041E41);
    font-weight: 700;
}

.soc-section-label {
    color: var(--soc-color-accent, #BC6D24);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.soc-form-section {
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #eef0f3;
}

.soc-form-section:last-child {
    border-bottom: 0;
}

.soc-tabs {
    background: #fff;
    border: 1px solid var(--soc-color-border, #E8E8E8);
    border-radius: 12px 12px 0 0;
    padding: .5rem .6rem 0;
}

.soc-tabs .nav-link {
    border: 0;
    color: #596274;
    font-weight: 600;
    border-bottom: 3px solid transparent;
    border-radius: 8px 8px 0 0;
}

.soc-tabs .nav-link.active {
    color: var(--soc-color-primary, #041E41);
    background: #f7f8fa;
    border-bottom-color: var(--soc-color-accent, #BC6D24);
}

.soc-member-summary {
    border-left: 4px solid var(--soc-color-accent, #BC6D24);
}

.soc-member-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.25rem;
    font-size: .9rem;
    color: #697386;
}

.soc-status-dot {
    width: .55rem;
    height: .55rem;
    border-radius: 999px;
    display: inline-block;
    margin-right: .35rem;
}

.soc-status-dot--active { background: #16A34A; }
.soc-status-dot--inactive { background: #DC2626; }

.soc-table thead th {
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #5c667a;
    border-top: 0;
}

.soc-table tbody tr:hover {
    background: #fafbfc;
}

.soc-action-group {
    display: inline-flex;
    gap: .3rem;
    align-items: center;
}

.soc-action-group .btn {
    min-width: 34px;
}

.soc-kpi {
    border: 1px solid var(--soc-color-border, #E8E8E8);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(4, 30, 65, .05);
    height: 100%;
}

.soc-kpi__label {
    color: #70798b;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.soc-kpi__value {
    color: var(--soc-color-primary, #041E41);
    font-size: 1.35rem;
    font-weight: 800;
}

.soc-modal .modal-content {
    border: 0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(4, 30, 65, .18);
}

.soc-modal .modal-header {
    background: var(--soc-color-primary, #041E41) !important;
    border-bottom: 3px solid var(--soc-color-accent, #BC6D24);
}

.soc-modal .nav-tabs .nav-link.active {
    color: var(--soc-color-primary, #041E41);
    font-weight: 700;
    border-bottom-color: var(--soc-color-accent, #BC6D24);
}

@media (max-width: 767.98px) {
    .soc-page-head {
        align-items: stretch;
    }

    .soc-page-head > * {
        width: 100%;
    }
}


/* ==========================================================
   SOC UI — Phase 11C Governance
   ========================================================== */

.soc-governance-page .card,
.soc-governance-page .soc-panel {
    border-radius: 14px;
}

.soc-governance-filter {
    border: 1px solid var(--soc-color-border, #E8E8E8);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(4, 30, 65, .05);
}

.soc-governance-status {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .6rem;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 700;
}

.soc-governance-status--pending {
    background: rgba(245, 158, 11, .12);
    color: #9A6700;
}

.soc-governance-status--approved {
    background: rgba(22, 163, 74, .12);
    color: #147A3A;
}

.soc-governance-status--rejected,
.soc-governance-status--cancelled {
    background: rgba(220, 38, 38, .10);
    color: #B91C1C;
}

.soc-governance-detail {
    border: 1px solid var(--soc-color-border, #E8E8E8);
    border-radius: 12px;
    overflow: hidden;
}

.soc-governance-detail .card-header {
    background: #fff;
    color: var(--soc-color-primary, #041E41);
    border-bottom: 1px solid #EEF0F3;
}

.soc-governance-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.soc-board-note {
    border-left: 4px solid var(--soc-color-accent, #BC6D24);
    background: #FFFDF9;
}

.soc-board-note__title {
    color: var(--soc-color-primary, #041E41);
    font-weight: 700;
}

.soc-notification-item {
    border-radius: 10px;
    transition: background-color .15s ease, transform .15s ease;
}

.soc-notification-item:hover {
    background: #F7F8FA;
    transform: translateY(-1px);
}

.soc-praktiko-form .tox-tinymce,
.soc-praktiko-form .form-control,
.soc-praktiko-form .select2-container--bootstrap-5 .select2-selection {
    border-radius: 8px;
}

.soc-praktiko-form .form-group > div {
    margin-bottom: .35rem;
}

.soc-authority-card {
    border-left: 4px solid var(--soc-color-primary, #041E41);
}

@media (max-width: 767.98px) {
    .soc-governance-actions .btn {
        flex: 1 1 auto;
    }
}


/* ==========================================================
   SOC UI — Phase 11D Finance
   ========================================================== */

.soc-finance-page {
    color: var(--soc-color-text, #1C2433);
}

.soc-finance-page .card {
    border-color: var(--soc-color-border, #E8E8E8);
}

.soc-finance-page .card.shadow,
.soc-finance-page .card.shadow-sm {
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(4, 30, 65, .06) !important;
}

.soc-finance-page .card-header {
    background: #fff;
    border-bottom: 1px solid var(--soc-color-border, #E8E8E8);
}

.soc-finance-page .card-header strong,
.soc-finance-page .card-header h5,
.soc-finance-page .card-header h6 {
    color: var(--soc-color-primary, #041E41);
}

.soc-finance-page .border-left-primary,
.soc-finance-page .border-left-success,
.soc-finance-page .border-left-warning,
.soc-finance-page .border-left-danger,
.soc-finance-page .border-left-info {
    border-left-width: 4px !important;
}

.soc-finance-kpi {
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.soc-finance-kpi .card-body {
    padding: 1rem 1.1rem;
}

.soc-finance-kpi .text-xs,
.soc-finance-kpi .text-sm {
    letter-spacing: .025em;
}

.soc-finance-filter {
    border: 1px solid var(--soc-color-border, #E8E8E8);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 5px 16px rgba(4, 30, 65, .04);
}

.soc-finance-section-title {
    color: var(--soc-color-primary, #041E41);
    font-weight: 800;
}

.soc-finance-page .table {
    margin-bottom: 0;
}

.soc-finance-page .table thead th {
    border-top: 0;
    background: #F7F8FA;
    color: #5A6475;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
    vertical-align: middle;
}

.soc-finance-page .table tbody td {
    vertical-align: middle;
}

.soc-finance-page .table-hover tbody tr:hover {
    background: #FAFBFC;
}

.soc-finance-page .form-control,
.soc-finance-page .custom-select,
.soc-finance-page .select2-container--bootstrap-5 .select2-selection {
    border-color: #DDE2E8;
    border-radius: 8px;
}

.soc-finance-page .form-control:focus,
.soc-finance-page .custom-select:focus {
    border-color: var(--soc-color-primary, #041E41);
    box-shadow: 0 0 0 .15rem rgba(4, 30, 65, .10);
}

.soc-finance-page .alert {
    border: 0;
    border-radius: 10px;
}

.soc-finance-page .badge {
    border-radius: 999px;
    padding: .35em .65em;
}

.soc-finance-page .btn {
    border-radius: 8px;
}

.soc-finance-page .compact-actions .btn {
    min-width: 32px;
}

.soc-finance-summary {
    border-left: 4px solid var(--soc-color-accent, #BC6D24);
    background: #fff;
}

.soc-finance-operational {
    border-top: 3px solid var(--soc-color-primary, #041E41);
}

.soc-finance-technical {
    border-left: 4px solid #6C757D;
    background: #FAFBFC;
}

.soc-finance-page .nav-tabs .nav-link.active {
    color: var(--soc-color-primary, #041E41);
    border-bottom-color: var(--soc-color-accent, #BC6D24);
    font-weight: 700;
}

.soc-finance-page .pagination {
    margin-bottom: 0;
}

.soc-finance-page .page-item.active .page-link {
    background: var(--soc-color-primary, #041E41);
    border-color: var(--soc-color-primary, #041E41);
}

.soc-finance-page .page-link {
    color: var(--soc-color-primary, #041E41);
}

@media (max-width: 767.98px) {
    .soc-finance-page .card-body {
        padding: 1rem;
    }

    .soc-finance-page .btn-toolbar,
    .soc-finance-page .d-flex.flex-wrap {
        gap: .35rem;
    }
}


/* ==========================================================
   SOC UI — Phase 11D.3
   Button hover/focus contrast normalization
   ========================================================== */

/*
 * Bootstrap / SB Admin παλαιά rules μπορούσαν να αλλάξουν μόνο
 * background/border στο hover, αφήνοντας το text/icon σε χρώμα
 * που δεν έχει αρκετό contrast.
 *
 * Τα παρακάτω είναι intentionally scoped στο SOC content layer.
 */

.soc-finance-page .btn-primary,
.soc-members-page .btn-primary,
.soc-governance-page .btn-primary {
    background-color: var(--soc-color-primary, #041E41);
    border-color: var(--soc-color-primary, #041E41);
    color: #FFFFFF !important;
}

.soc-finance-page .btn-primary:hover,
.soc-finance-page .btn-primary:focus,
.soc-finance-page .btn-primary:active,
.soc-members-page .btn-primary:hover,
.soc-members-page .btn-primary:focus,
.soc-members-page .btn-primary:active,
.soc-governance-page .btn-primary:hover,
.soc-governance-page .btn-primary:focus,
.soc-governance-page .btn-primary:active {
    background-color: var(--soc-color-dark, #19233E);
    border-color: var(--soc-color-dark, #19233E);
    color: #FFFFFF !important;
}

.soc-finance-page .btn-primary i,
.soc-members-page .btn-primary i,
.soc-governance-page .btn-primary i,
.soc-finance-page .btn-primary:hover i,
.soc-members-page .btn-primary:hover i,
.soc-governance-page .btn-primary:hover i {
    color: currentColor !important;
}

/* Outline primary: light state -> filled navy hover */
.soc-finance-page .btn-outline-primary,
.soc-members-page .btn-outline-primary,
.soc-governance-page .btn-outline-primary {
    background-color: transparent;
    border-color: var(--soc-color-primary, #041E41);
    color: var(--soc-color-primary, #041E41) !important;
}

.soc-finance-page .btn-outline-primary:hover,
.soc-finance-page .btn-outline-primary:focus,
.soc-finance-page .btn-outline-primary:active,
.soc-members-page .btn-outline-primary:hover,
.soc-members-page .btn-outline-primary:focus,
.soc-members-page .btn-outline-primary:active,
.soc-governance-page .btn-outline-primary:hover,
.soc-governance-page .btn-outline-primary:focus,
.soc-governance-page .btn-outline-primary:active {
    background-color: var(--soc-color-primary, #041E41);
    border-color: var(--soc-color-primary, #041E41);
    color: #FFFFFF !important;
}

.soc-finance-page .btn-outline-primary i,
.soc-members-page .btn-outline-primary i,
.soc-governance-page .btn-outline-primary i {
    color: currentColor !important;
}

/* Secondary / back actions */
.soc-finance-page .btn-secondary,
.soc-members-page .btn-secondary,
.soc-governance-page .btn-secondary {
    color: #FFFFFF !important;
}

.soc-finance-page .btn-secondary:hover,
.soc-finance-page .btn-secondary:focus,
.soc-members-page .btn-secondary:hover,
.soc-members-page .btn-secondary:focus,
.soc-governance-page .btn-secondary:hover,
.soc-governance-page .btn-secondary:focus {
    color: #FFFFFF !important;
}

/* Success / danger action labels should never inherit link colors */
.soc-finance-page .btn-success,
.soc-finance-page .btn-danger,
.soc-members-page .btn-success,
.soc-members-page .btn-danger,
.soc-governance-page .btn-success,
.soc-governance-page .btn-danger {
    color: #FFFFFF !important;
}

.soc-finance-page .btn-success:hover,
.soc-finance-page .btn-success:focus,
.soc-finance-page .btn-danger:hover,
.soc-finance-page .btn-danger:focus,
.soc-members-page .btn-success:hover,
.soc-members-page .btn-success:focus,
.soc-members-page .btn-danger:hover,
.soc-members-page .btn-danger:focus,
.soc-governance-page .btn-success:hover,
.soc-governance-page .btn-success:focus,
.soc-governance-page .btn-danger:hover,
.soc-governance-page .btn-danger:focus {
    color: #FFFFFF !important;
}

/* Focus visibility for keyboard navigation */
.soc-finance-page .btn:focus,
.soc-members-page .btn:focus,
.soc-governance-page .btn:focus {
    box-shadow: 0 0 0 .18rem rgba(4, 30, 65, .18);
}

/*
 * Some legacy buttons include utility classes such as text-white-50
 * on icons. On hover we want the icon fully legible.
 */
.soc-finance-page .btn:hover .text-white-50,
.soc-members-page .btn:hover .text-white-50,
.soc-governance-page .btn:hover .text-white-50 {
    color: currentColor !important;
}


/* ==========================================================
   SOC UI — Phase 11D.5 Reports action buttons
   ========================================================== */

.soc-finance-page .soc-report-pdf-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 36px;
    padding: .45rem .8rem;
    background-color: var(--soc-color-danger, #DC2626);
    border-color: var(--soc-color-danger, #DC2626);
    color: #FFFFFF !important;
    white-space: nowrap;
}

.soc-finance-page .soc-report-pdf-button:hover,
.soc-finance-page .soc-report-pdf-button:focus,
.soc-finance-page .soc-report-pdf-button:active {
    background-color: #B91C1C;
    border-color: #B91C1C;
    color: #FFFFFF !important;
}

.soc-finance-page .soc-report-pdf-button i,
.soc-finance-page .soc-report-pdf-button span,
.soc-finance-page .soc-report-pdf-button:hover i,
.soc-finance-page .soc-report-pdf-button:hover span {
    color: #FFFFFF !important;
    opacity: 1 !important;
    visibility: visible !important;
}

@media (max-width: 575.98px) {
    .soc-finance-page .soc-report-pdf-button span {
        display: none;
    }

    .soc-finance-page .soc-report-pdf-button {
        min-width: 36px;
        padding-left: .55rem;
        padding-right: .55rem;
    }
}


/* ==========================================================
   SOC UI — Phase 11D.6
   Global button state normalization
   ========================================================== */

/*
 * Global fix under body.soc-app.
 * This intentionally does NOT depend on .soc-finance-page,
 * because several legacy views use container-fluid with extra
 * utility classes and therefore do not receive that wrapper.
 */

/* Primary */
body.soc-app .btn-primary {
    background-color: var(--soc-primary);
    border-color: var(--soc-primary);
    color: #FFFFFF !important;
}

body.soc-app .btn-primary:hover,
body.soc-app .btn-primary:focus,
body.soc-app .btn-primary:active,
body.soc-app .btn-primary:not(:disabled):not(.disabled):active {
    background-color: var(--soc-dark);
    border-color: var(--soc-dark);
    color: #FFFFFF !important;
}

/* Outline primary */
body.soc-app .btn-outline-primary {
    background-color: transparent;
    border-color: var(--soc-primary);
    color: var(--soc-primary) !important;
}

body.soc-app .btn-outline-primary:hover,
body.soc-app .btn-outline-primary:focus,
body.soc-app .btn-outline-primary:active,
body.soc-app .btn-outline-primary:not(:disabled):not(.disabled):active {
    background-color: var(--soc-primary);
    border-color: var(--soc-primary);
    color: #FFFFFF !important;
}

/* Ensure nested icons/text follow button foreground */
body.soc-app .btn-primary i,
body.soc-app .btn-primary span,
body.soc-app .btn-outline-primary i,
body.soc-app .btn-outline-primary span {
    color: currentColor !important;
}

body.soc-app .btn-primary:hover i,
body.soc-app .btn-primary:hover span,
body.soc-app .btn-outline-primary:hover i,
body.soc-app .btn-outline-primary:hover span {
    color: #FFFFFF !important;
}

/* Success / danger / info */
body.soc-app .btn-success,
body.soc-app .btn-danger,
body.soc-app .btn-info {
    color: #FFFFFF !important;
}

body.soc-app .btn-success:hover,
body.soc-app .btn-success:focus,
body.soc-app .btn-danger:hover,
body.soc-app .btn-danger:focus,
body.soc-app .btn-info:hover,
body.soc-app .btn-info:focus {
    color: #FFFFFF !important;
}

/* Keyboard focus */
body.soc-app .btn:focus {
    box-shadow: 0 0 0 .18rem rgba(4, 30, 65, .18);
}


/* ==========================================================
   SOC UI — Phase 11E Admin & Settings
   ========================================================== */

.soc-admin-page .card {
    border-color: var(--soc-border, #E8E8E8);
}

.soc-admin-page .card.shadow,
.soc-admin-page .card.shadow-sm {
    border-radius: var(--soc-radius-lg, 14px);
    box-shadow: 0 8px 24px rgba(4, 30, 65, .06) !important;
}

.soc-admin-page .card-header {
    background: #FFFFFF;
    border-bottom: 1px solid var(--soc-border, #E8E8E8);
}

.soc-admin-page .card-header h5,
.soc-admin-page .card-header h6,
.soc-admin-page .card-header strong {
    color: var(--soc-primary, #041E41);
}

.soc-admin-page .table thead th {
    background: #F7F8FA;
    border-top: 0;
    color: #5A6475;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
    vertical-align: middle;
}

.soc-admin-page .table tbody td {
    vertical-align: middle;
}

.soc-admin-page .form-control,
.soc-admin-page .custom-select {
    border-color: #DDE2E8;
    border-radius: var(--soc-radius-sm, 8px);
}

.soc-admin-page .form-control:focus,
.soc-admin-page .custom-select:focus {
    border-color: var(--soc-primary, #041E41);
    box-shadow: 0 0 0 .15rem rgba(4, 30, 65, .10);
}

.soc-admin-setting-card {
    border-left: 4px solid var(--soc-accent, #BC6D24);
}

.soc-admin-note {
    border-left: 4px solid var(--soc-info, #2563EB);
    background: #F7FAFF;
}

.soc-role-permission-group {
    border: 1px solid var(--soc-border, #E8E8E8);
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 1rem;
}

.soc-role-permission-group__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .8rem 1rem;
    background: #F7F8FA;
    border-bottom: 1px solid var(--soc-border, #E8E8E8);
    color: var(--soc-primary, #041E41);
    font-weight: 700;
}

.soc-role-permission-group__body {
    padding: 1rem;
    background: #fff;
}

.soc-activity-event {
    display: inline-flex;
    align-items: center;
    padding: .28rem .55rem;
    border-radius: 999px;
    background: #F1F4F8;
    color: #445064;
    font-size: .76rem;
    font-weight: 700;
}

.soc-admin-page .btn-group .btn,
.soc-admin-page .soc-action-group .btn {
    min-width: 34px;
}

.soc-admin-page .pagination {
    margin-bottom: 0;
}

.soc-admin-page .page-item.active .page-link {
    background: var(--soc-primary, #041E41);
    border-color: var(--soc-primary, #041E41);
}

.soc-admin-page .page-link {
    color: var(--soc-primary, #041E41);
}


/* ==========================================================
   SOC UI — Phase 11E.1
   Modal header contrast + role method hotfix
   ========================================================== */

/* Member / SOC modal navy header must always use white foreground */
body.soc-app .soc-modal .modal-header,
body.soc-app #userModal .modal-header {
    background-color: var(--soc-primary, #041E41) !important;
    border-bottom: 3px solid var(--soc-accent, #BC6D24) !important;
    color: #FFFFFF !important;
}

body.soc-app .soc-modal .modal-header .modal-title,
body.soc-app .soc-modal .modal-header .modal-title *,
body.soc-app #userModal .modal-header .modal-title,
body.soc-app #userModal .modal-header .modal-title * {
    color: #FFFFFF !important;
}

body.soc-app .soc-modal .modal-header .btn-close,
body.soc-app #userModal .modal-header .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
    opacity: .9;
}

body.soc-app .soc-modal .modal-header .btn-close:hover,
body.soc-app #userModal .modal-header .btn-close:hover {
    opacity: 1;
}


/* ==========================================================
   SOC UI — Phase 11F.1 Login / Authentication
   ========================================================== */

body.soc-auth-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at top right, rgba(188, 109, 36, .10), transparent 34%),
        linear-gradient(135deg, #F7F8FA 0%, #EEF2F7 100%);
    color: var(--soc-text, #1C2433);
}

body.soc-auth-page #wrapper {
    display: block;
    padding: 0;
}

.soc-auth-container {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.soc-auth-brand {
    margin-bottom: 1.5rem;
}

.soc-auth-logo {
    display: block;
    width: 118px;
    height: auto;
    margin: 0 auto 1rem;
}

.soc-auth-brand__name {
    color: var(--soc-primary, #041E41);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
}

.soc-auth-brand__subtitle {
    margin-top: .25rem;
    color: #6B7280;
    font-size: .82rem;
}

.soc-auth-card {
    overflow: hidden;
    border: 1px solid var(--soc-border, #E8E8E8) !important;
    border-top: 4px solid var(--soc-accent, #BC6D24) !important;
    border-radius: 16px !important;
    background: #FFFFFF !important;
    box-shadow: 0 18px 45px rgba(4, 30, 65, .10) !important;
}

.soc-auth-title {
    margin: 0 0 .4rem;
    color: var(--soc-primary, #041E41);
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.soc-auth-text {
    color: #6B7280;
    font-size: .92rem;
}

.soc-auth-label {
    margin-bottom: .45rem;
    color: var(--soc-dark, #19233E);
    font-size: .86rem;
    font-weight: 700;
}

.soc-auth-input-wrap {
    position: relative;
}

.soc-auth-input-wrap > i {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: .95rem;
    color: #7A8491;
    transform: translateY(-50%);
    pointer-events: none;
}

.soc-auth-input-wrap .form-control {
    min-height: 46px;
    padding-left: 2.65rem;
    border: 1px solid #D9DFE7;
    border-radius: 10px;
    background: #FFFFFF;
    color: var(--soc-text, #1C2433);
}

.soc-auth-input-wrap .form-control:focus {
    border-color: var(--soc-primary, #041E41);
    box-shadow: 0 0 0 .18rem rgba(4, 30, 65, .10);
}

.soc-auth-link {
    color: var(--soc-primary, #041E41);
    font-size: .84rem;
    font-weight: 700;
}

.soc-auth-link:hover,
.soc-auth-link:focus {
    color: var(--soc-accent, #BC6D24);
    text-decoration: none;
}

body.soc-app .soc-auth-submit {
    min-height: 46px;
    border-radius: 10px;
    font-weight: 800;
}

.soc-auth-help {
    margin-top: 1.25rem;
    color: #7A8491;
    font-size: .78rem;
}

.soc-auth-footer {
    border-top: 1px solid rgba(4, 30, 65, .08);
    background: rgba(255, 255, 255, .72);
    color: #70798B;
    backdrop-filter: blur(8px);
}

body.soc-auth-page .custom-control-label {
    color: #535D6F;
    font-size: .84rem;
}

body.soc-auth-page .custom-control-input:checked ~ .custom-control-label::before {
    border-color: var(--soc-primary, #041E41);
    background-color: var(--soc-primary, #041E41);
}

@media (max-width: 575.98px) {
    .soc-auth-container {
        padding-top: 1.5rem;
        padding-bottom: 2rem;
    }

    .soc-auth-logo {
        width: 96px;
    }

    .soc-auth-card .card-body {
        padding: 1.5rem !important;
    }

    .soc-auth-title {
        font-size: 1.35rem;
    }
}


/* ==========================================================
   SOC UI — Phase 11F.2 Login password visibility toggle
   ========================================================== */

.soc-auth-input-wrap--password .form-control {
    padding-right: 3rem;
}

.soc-auth-password-toggle {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: .75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #6B7280;
    transform: translateY(-50%);
    cursor: pointer;
}

.soc-auth-password-toggle:hover,
.soc-auth-password-toggle:focus {
    background: rgba(4, 30, 65, .08);
    color: var(--soc-primary, #041E41);
    outline: none;
}

.soc-auth-password-toggle:focus-visible {
    box-shadow: 0 0 0 .16rem rgba(4, 30, 65, .16);
}

.soc-auth-password-toggle i {
    color: currentColor !important;
    font-size: .95rem;
}


/* ==========================================================
   SOC UI — Phase 11F.3
   Password eye SVG rendering fix
   ========================================================== */

body.soc-auth-page .soc-auth-password-toggle {
    right: .55rem;
    width: 2.25rem;
    height: 2.25rem;
    background: transparent !important;
    color: var(--soc-primary, #041E41) !important;
    opacity: 1 !important;
}

body.soc-auth-page .soc-auth-password-toggle:hover {
    background: rgba(4, 30, 65, .07) !important;
    color: var(--soc-primary, #041E41) !important;
}

body.soc-auth-page .soc-auth-password-toggle:focus,
body.soc-auth-page .soc-auth-password-toggle:active {
    background: rgba(4, 30, 65, .09) !important;
    color: var(--soc-primary, #041E41) !important;
}

body.soc-auth-page .soc-auth-eye {
    display: block;
    width: 1.2rem;
    height: 1.2rem;
    color: currentColor;
    pointer-events: none;
}

body.soc-auth-page .soc-auth-eye.d-none {
    display: none !important;
}

body.soc-auth-page .soc-auth-input-wrap--password .form-control {
    padding-right: 3.35rem;
}

/* Prevent old Font Awesome-specific styling from affecting SVG toggle */
body.soc-auth-page .soc-auth-password-toggle i {
    display: none !important;
}


/* ==========================================================
   SOC UI — Phase 12A Member Dashboard Foundation
   ========================================================== */

.soc-dashboard-page {
    padding-top: 1.35rem;
    padding-bottom: 2rem;
}

.soc-dashboard-welcome {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.soc-dashboard-eyebrow {
    margin-bottom: .35rem;
    color: var(--soc-accent, #BC6D24);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.soc-dashboard-title {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.75rem;
    font-weight: 800;
    letter-spacing: -.025em;
}

.soc-dashboard-title span {
    color: var(--soc-dark, #19233E);
}

.soc-dashboard-subtitle {
    margin: .35rem 0 0;
    color: #6F7888;
    font-size: .92rem;
}

.soc-dashboard-welcome__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.soc-dashboard-kpis {
    margin-bottom: .35rem;
}

.soc-dashboard-kpi {
    display: flex;
    align-items: center;
    gap: 1rem;
    height: 100%;
    min-height: 108px;
    padding: 1rem 1.15rem;
    border: 1px solid var(--soc-border, #E8E8E8);
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: 0 7px 22px rgba(4, 30, 65, .055);
}

.soc-dashboard-kpi__icon {
    display: inline-flex;
    flex: 0 0 48px;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    font-size: 1.1rem;
}

.soc-dashboard-kpi__icon.is-primary {
    background: rgba(4, 30, 65, .09);
    color: var(--soc-primary, #041E41);
}

.soc-dashboard-kpi__icon.is-success {
    background: rgba(22, 163, 74, .11);
    color: #15803D;
}

.soc-dashboard-kpi__icon.is-info {
    background: rgba(37, 99, 235, .10);
    color: #2563EB;
}

.soc-dashboard-kpi__icon.is-accent {
    background: rgba(188, 109, 36, .12);
    color: var(--soc-accent, #BC6D24);
}

.soc-dashboard-kpi__label {
    color: #626C7C;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.soc-dashboard-kpi__value {
    margin-top: .12rem;
    color: var(--soc-primary, #041E41);
    font-size: 1.22rem;
    font-weight: 800;
    line-height: 1.2;
}

.soc-dashboard-kpi__meta {
    margin-top: .2rem;
    color: #8A92A0;
    font-size: .74rem;
}

.soc-dashboard-role-slot:empty {
    display: none;
}

.soc-dashboard-card {
    overflow: hidden;
    border: 1px solid var(--soc-border, #E8E8E8);
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: 0 7px 22px rgba(4, 30, 65, .05);
}

.soc-dashboard-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid #EEF0F3;
}

.soc-dashboard-card__heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}

.soc-dashboard-card__icon {
    display: inline-flex;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: rgba(4, 30, 65, .08);
    color: var(--soc-primary, #041E41);
}

.soc-dashboard-card__heading h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .98rem;
    font-weight: 800;
}

.soc-dashboard-card__heading p {
    margin: .12rem 0 0;
    color: #8A92A0;
    font-size: .73rem;
}

.soc-dashboard-card__body {
    padding: 1.1rem;
}

.soc-dashboard-news {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto 18px;
    gap: .7rem;
    align-items: center;
    padding: .9rem 1.1rem;
    border-bottom: 1px solid #F0F2F5;
    color: inherit;
    transition:
        background-color .15s ease,
        transform .15s ease;
}

.soc-dashboard-news:last-child {
    border-bottom: 0;
}

.soc-dashboard-news:hover,
.soc-dashboard-news:focus {
    background: #FAFBFC;
    color: inherit;
    text-decoration: none;
}

.soc-dashboard-news__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #F3F6FA;
    color: var(--soc-primary, #041E41);
}

.soc-dashboard-news__content {
    min-width: 0;
}

.soc-dashboard-news__content strong,
.soc-dashboard-news__content span {
    display: block;
}

.soc-dashboard-news__content strong {
    overflow: hidden;
    color: var(--soc-primary, #041E41);
    font-size: .82rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.soc-dashboard-news__content span {
    overflow: hidden;
    margin-top: .18rem;
    color: #697386;
    font-size: .74rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.soc-dashboard-news__date {
    color: #7A8492;
    font-size: .73rem;
    white-space: nowrap;
}

.soc-dashboard-news__arrow {
    color: #A0A7B2;
    font-size: .7rem;
}

.soc-dashboard-knowledge {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 185px;
    gap: 1rem;
    min-height: 278px;
}

.soc-dashboard-knowledge__list {
    border: 1px solid #EEF0F3;
    border-radius: 10px;
    overflow: hidden;
}

.soc-dashboard-knowledge__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    min-height: 43px;
    padding: .55rem .7rem;
    border-bottom: 1px solid #EEF0F3;
    color: #354055;
    font-size: .76rem;
}

.soc-dashboard-knowledge__row:last-child {
    border-bottom: 0;
}

.soc-dashboard-knowledge__row:hover {
    background: #FAFBFC;
    color: var(--soc-primary, #041E41);
    text-decoration: none;
}

.soc-dashboard-knowledge__row strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 24px;
    border-radius: 999px;
    background: #F1F4F8;
    color: var(--soc-primary, #041E41);
    font-size: .72rem;
}

.soc-dashboard-knowledge__cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: .8rem;
    text-align: center;
}

.soc-dashboard-knowledge__art {
    position: relative;
    width: 84px;
    height: 72px;
    margin-bottom: .65rem;
    color: #B5BDC8;
}

.soc-dashboard-knowledge__art .fa-file-alt {
    position: absolute;
    top: 5px;
    left: 17px;
    font-size: 3.4rem;
}

.soc-dashboard-knowledge__art .fa-search {
    position: absolute;
    z-index: 2;
    right: 5px;
    bottom: 2px;
    font-size: 2rem;
    color: #8E98A7;
}

.soc-dashboard-knowledge__cta p {
    margin: 0 0 .8rem;
    color: #657084;
    font-size: .76rem;
}

.soc-dashboard-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 150px;
    padding: 1.25rem;
    color: #7A8492;
    text-align: center;
}

.soc-dashboard-empty i {
    color: #B6BDC8;
    font-size: 1.8rem;
}

.soc-dashboard-empty.compact {
    min-height: 90px;
    font-size: .8rem;
}

.soc-dashboard-obligation-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 155px;
    text-align: center;
}

.soc-dashboard-obligation-state > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: .75rem;
    border-radius: 50%;
    font-size: 1.2rem;
}

.soc-dashboard-obligation-state.is-ok > span {
    background: rgba(22, 163, 74, .10);
    color: #15803D;
}

.soc-dashboard-obligation-state.is-warning > span {
    background: rgba(245, 158, 11, .13);
    color: #B06B00;
}

.soc-dashboard-obligation-state.is-info > span {
    background: rgba(37, 99, 235, .10);
    color: #2563EB;
}

.soc-dashboard-obligation-state strong {
    color: var(--soc-primary, #041E41);
    font-size: .96rem;
}

.soc-dashboard-obligation-state p {
    margin: .3rem 0 0;
    color: #6F7888;
    font-size: .78rem;
}

.soc-dashboard-obligation-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 1rem -1.1rem -1.1rem;
    border-top: 1px solid #EEF0F3;
}

.soc-dashboard-obligation-stats > div {
    padding: .8rem;
    border-right: 1px solid #EEF0F3;
    text-align: center;
}

.soc-dashboard-obligation-stats > div:last-child {
    border-right: 0;
}

.soc-dashboard-obligation-stats span,
.soc-dashboard-obligation-stats strong {
    display: block;
}

.soc-dashboard-obligation-stats span {
    color: #8992A1;
    font-size: .68rem;
}

.soc-dashboard-obligation-stats strong {
    margin-top: .2rem;
    color: var(--soc-primary, #041E41);
    font-size: .8rem;
}

.soc-dashboard-payment-copy {
    margin-bottom: 1rem;
    color: #586376;
    font-size: .8rem;
    line-height: 1.6;
}

.soc-dashboard-bank {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .85rem;
    border: 1px solid #E5E9EF;
    border-radius: 10px;
    background: #FAFBFC;
}

.soc-dashboard-bank__icon {
    display: inline-flex;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--soc-primary, #041E41);
    color: #FFFFFF;
}

.soc-dashboard-bank__content {
    min-width: 0;
    flex: 1;
}

.soc-dashboard-bank__content span,
.soc-dashboard-bank__content strong {
    display: block;
}

.soc-dashboard-bank__content span {
    color: #7B8493;
    font-size: .67rem;
    font-weight: 700;
}

.soc-dashboard-bank__content strong {
    margin-top: .18rem;
    color: var(--soc-primary, #041E41);
    font-size: .82rem;
    word-break: break-word;
}

.soc-dashboard-copy {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #E0E5EB;
    border-radius: 9px;
    color: var(--soc-primary, #041E41);
}

.soc-dashboard-copy:hover {
    background: var(--soc-primary, #041E41);
    color: #FFFFFF;
}

.soc-dashboard-copy-feedback {
    min-height: 17px;
    margin: .35rem .1rem 0;
    color: #15803D;
    font-size: .7rem;
    font-weight: 700;
}

.soc-dashboard-payment-note {
    display: flex;
    gap: .6rem;
    align-items: flex-start;
    margin-top: .75rem;
    padding: .75rem;
    border-radius: 9px;
    background: #F3F7FC;
    color: #566174;
    font-size: .74rem;
}

.soc-dashboard-payment-note i {
    margin-top: .12rem;
    color: #2563EB;
}

@media (max-width: 1199.98px) {
    .soc-dashboard-knowledge {
        grid-template-columns: 1fr;
    }

    .soc-dashboard-knowledge__cta {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .soc-dashboard-welcome {
        flex-direction: column;
    }

    .soc-dashboard-welcome__actions {
        width: 100%;
        justify-content: flex-start;
    }

    .soc-dashboard-news {
        grid-template-columns: 34px minmax(0, 1fr) 14px;
    }

    .soc-dashboard-news__date {
        display: none;
    }

    .soc-dashboard-card__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .soc-dashboard-obligation-stats {
        grid-template-columns: 1fr;
    }

    .soc-dashboard-obligation-stats > div {
        border-right: 0;
        border-bottom: 1px solid #EEF0F3;
    }

    .soc-dashboard-obligation-stats > div:last-child {
        border-bottom: 0;
    }
}

@media (max-width: 575.98px) {
    .soc-dashboard-title {
        font-size: 1.4rem;
    }

    .soc-dashboard-welcome__actions .btn {
        flex: 1 1 100%;
    }

    .soc-dashboard-bank {
        align-items: flex-start;
    }
}


/* ==========================================================
   SOC UI — Phase 12B Role-Based Dashboard Widgets
   ========================================================== */

.soc-role-dashboard {
    margin: .5rem 0 1.25rem;
    padding-top: .25rem;
}

.soc-role-dashboard__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.soc-role-dashboard__head h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.15rem;
    font-weight: 800;
}

.soc-role-dashboard__head p {
    margin: .25rem 0 0;
    color: #7A8492;
    font-size: .78rem;
}

.soc-role-dashboard__roles {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .4rem;
}

.soc-role-dashboard__roles span {
    display: inline-flex;
    align-items: center;
    padding: .38rem .65rem;
    border: 1px solid rgba(188, 109, 36, .30);
    border-radius: 999px;
    background: rgba(188, 109, 36, .08);
    color: #9A581C;
    font-size: .7rem;
    font-weight: 750;
}

.soc-role-card {
    overflow: hidden;
    border: 1px solid var(--soc-border, #E8E8E8);
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: 0 7px 22px rgba(4, 30, 65, .05);
}

.soc-role-card--president {
    border-top: 3px solid var(--soc-accent, #BC6D24);
}

.soc-role-card--treasurer {
    border-top: 3px solid #15803D;
}

.soc-role-card--secretariat {
    border-top: 3px solid #2563EB;
}

.soc-role-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid #EEF0F3;
}

.soc-role-card__kicker {
    display: block;
    margin-bottom: .18rem;
    color: #8B94A2;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.soc-role-card__header h3 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .96rem;
    font-weight: 800;
}

.soc-role-card__body {
    padding: 1rem;
}

.soc-role-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .65rem;
}

.soc-role-metrics--four {
    grid-template-columns: repeat(4, 1fr);
}

.soc-role-metrics > div {
    padding: .75rem;
    border: 1px solid #EEF0F3;
    border-radius: 10px;
    background: #FAFBFC;
}

.soc-role-metrics span,
.soc-role-metrics strong {
    display: block;
}

.soc-role-metrics span {
    color: #7A8492;
    font-size: .67rem;
}

.soc-role-metrics strong {
    margin-top: .18rem;
    color: var(--soc-primary, #041E41);
    font-size: 1.15rem;
    font-weight: 800;
}

.soc-role-list {
    border: 1px solid #EEF0F3;
    border-radius: 10px;
    overflow: hidden;
}

.soc-role-list__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .65rem .75rem;
    border-bottom: 1px solid #EEF0F3;
    color: inherit;
}

.soc-role-list__row:last-child {
    border-bottom: 0;
}

.soc-role-list__row:hover {
    background: #F8FAFC;
    color: inherit;
    text-decoration: none;
}

.soc-role-list__row strong,
.soc-role-list__row small {
    display: block;
}

.soc-role-list__row strong {
    color: var(--soc-primary, #041E41);
    font-size: .75rem;
}

.soc-role-list__row small {
    margin-top: .12rem;
    color: #87909E;
    font-size: .67rem;
}

.soc-role-list__row > i {
    color: #A0A8B4;
    font-size: .68rem;
}

.soc-role-empty {
    padding: .8rem;
    border-radius: 9px;
    background: rgba(22, 163, 74, .07);
    color: #37614A;
    font-size: .74rem;
}

.soc-role-empty i {
    margin-right: .4rem;
    color: #15803D;
}

.soc-role-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: 1rem;
    padding-top: .8rem;
    border-top: 1px solid #EEF0F3;
}

.soc-role-actions .btn-light {
    border-color: #E5E9EF;
    background: #FFFFFF;
    color: var(--soc-primary, #041E41);
}

.soc-role-actions .btn-light:hover {
    background: #F3F6FA;
}

.soc-role-finance-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .65rem;
}

.soc-role-finance-grid > div {
    padding: .75rem;
    border: 1px solid #EEF0F3;
    border-radius: 10px;
    background: #FAFBFC;
}

.soc-role-finance-grid span,
.soc-role-finance-grid strong,
.soc-role-finance-grid small {
    display: block;
}

.soc-role-finance-grid span {
    color: #7A8492;
    font-size: .67rem;
}

.soc-role-finance-grid strong {
    margin-top: .15rem;
    color: var(--soc-primary, #041E41);
    font-size: .98rem;
    font-weight: 800;
}

.soc-role-finance-grid small {
    margin-top: .15rem;
    color: #8A92A0;
    font-size: .62rem;
}

.soc-role-finance-grid .is-income {
    border-left: 3px solid #16A34A;
}

.soc-role-finance-grid .is-expense {
    border-left: 3px solid #DC2626;
}

.soc-role-finance-grid .is-net {
    border-left: 3px solid #2563EB;
}

.soc-role-finance-grid .is-receivable {
    border-left: 3px solid var(--soc-accent, #BC6D24);
}

.soc-role-finance-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .75rem;
    padding: .7rem .8rem;
    border-radius: 10px;
    background: #F7F8FA;
}

.soc-role-finance-note span,
.soc-role-finance-note strong,
.soc-role-finance-note small {
    display: block;
}

.soc-role-finance-note span {
    color: #7A8492;
    font-size: .65rem;
}

.soc-role-finance-note strong {
    color: var(--soc-primary, #041E41);
    font-size: .9rem;
}

.soc-role-finance-note small {
    color: #8A92A0;
    font-size: .62rem;
}

.soc-role-finance-note__warning {
    max-width: 210px;
    padding: .5rem .6rem;
    border-radius: 8px;
    background: rgba(245, 158, 11, .12);
    color: #8A5900;
    font-size: .68rem;
    font-weight: 700;
}

.soc-role-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .65rem;
}

.soc-role-quick-grid > a {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .75rem;
    border: 1px solid #E8EBF0;
    border-radius: 10px;
    color: inherit;
    transition:
        transform .15s ease,
        border-color .15s ease,
        background-color .15s ease;
}

.soc-role-quick-grid > a:hover {
    transform: translateY(-1px);
    border-color: rgba(4, 30, 65, .18);
    background: #FAFBFC;
    color: inherit;
    text-decoration: none;
}

.soc-role-quick-grid > a > span {
    display: inline-flex;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(37, 99, 235, .08);
    color: #2563EB;
}

.soc-role-quick-grid strong,
.soc-role-quick-grid small {
    display: block;
}

.soc-role-quick-grid strong {
    color: var(--soc-primary, #041E41);
    font-size: .76rem;
}

.soc-role-quick-grid small {
    margin-top: .1rem;
    color: #8A92A0;
    font-size: .64rem;
}

.soc-role-alert {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .8rem 1rem;
    border: 1px solid rgba(188, 109, 36, .22);
    border-radius: 12px;
    background: #FFFCF8;
}

.soc-role-alert__icon {
    display: inline-flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(188, 109, 36, .11);
    color: var(--soc-accent, #BC6D24);
}

.soc-role-alert__content {
    min-width: 0;
    flex: 1;
}

.soc-role-alert__content strong,
.soc-role-alert__content span {
    display: block;
}

.soc-role-alert__content strong {
    color: var(--soc-primary, #041E41);
    font-size: .8rem;
}

.soc-role-alert__content span {
    margin-top: .12rem;
    color: #727C8B;
    font-size: .7rem;
}

@media (max-width: 991.98px) {
    .soc-role-dashboard__head {
        align-items: flex-start;
        flex-direction: column;
    }

    .soc-role-dashboard__roles {
        justify-content: flex-start;
    }

    .soc-role-metrics--four {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575.98px) {
    .soc-role-card__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .soc-role-metrics,
    .soc-role-metrics--four,
    .soc-role-finance-grid,
    .soc-role-quick-grid {
        grid-template-columns: 1fr;
    }

    .soc-role-finance-note,
    .soc-role-alert {
        align-items: flex-start;
        flex-direction: column;
    }

    .soc-role-alert .btn {
        width: 100%;
    }
}


/* ==========================================================
   SOC UI — Phase 12D Member Profile Redesign
   ========================================================== */

.soc-profile-page {
    padding-top: 1.25rem;
    padding-bottom: 2.5rem;
}

.soc-profile-heading {
    margin-bottom: 1.15rem;
}

.soc-profile-eyebrow {
    margin-bottom: .28rem;
    color: var(--soc-accent, #BC6D24);
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.soc-profile-heading h1 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -.025em;
}

.soc-profile-heading p {
    margin: .3rem 0 0;
    color: #778191;
    font-size: .82rem;
}

/* Summary */
.soc-profile-summary {
    position: sticky;
    top: 92px;
    overflow: hidden;
    padding: 1.25rem;
    border: 1px solid #E6EAF0;
    border-radius: 15px;
    background: #FFFFFF;
    box-shadow: 0 8px 24px rgba(4, 30, 65, .055);
    text-align: center;
}

.soc-profile-summary__visual {
    display: flex;
    justify-content: center;
    margin-bottom: .85rem;
}

.soc-profile-summary__avatar,
.soc-profile-summary__fallback {
    width: 104px;
    height: 104px;
    border: 5px solid #F4F6F9;
    border-radius: 24px;
    background: #F4F6F9;
    object-fit: cover;
}

.soc-profile-summary__fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #A0A8B5;
    font-size: 2.2rem;
}

.soc-profile-summary h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .96rem;
    font-weight: 800;
    line-height: 1.35;
}

.soc-profile-summary__role {
    margin-top: .35rem;
    color: #7F8897;
    font-size: .7rem;
}

.soc-profile-summary__email {
    display: block;
    overflow: hidden;
    margin-top: .3rem;
    color: #677285;
    font-size: .7rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.soc-profile-summary__meta {
    margin-top: 1rem;
    padding-top: .85rem;
    border-top: 1px solid #EEF1F4;
    text-align: left;
}

.soc-profile-summary__meta > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .38rem 0;
}

.soc-profile-summary__meta span {
    color: #929AA7;
    font-size: .64rem;
}

.soc-profile-summary__meta strong {
    color: var(--soc-primary, #041E41);
    font-size: .68rem;
    font-weight: 750;
    text-align: right;
}

.soc-profile-summary__meta strong.is-active {
    color: #15803D;
}

.soc-profile-summary__meta strong.is-inactive {
    color: #B42318;
}

.soc-profile-summary__meta strong i {
    margin-right: .25rem;
    font-size: .43rem;
}

.soc-profile-summary__signature {
    margin-top: .8rem;
    padding-top: .85rem;
    border-top: 1px solid #EEF1F4;
    text-align: left;
}

.soc-profile-summary__signature > span {
    display: block;
    margin-bottom: .45rem;
    color: #929AA7;
    font-size: .64rem;
}

.soc-profile-summary__signature-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 62px;
    padding: .5rem;
    border: 1px solid #E9EDF2;
    border-radius: 9px;
    background: #FBFCFD;
}

.soc-profile-summary__signature-preview img {
    max-width: 100%;
    max-height: 58px;
    object-fit: contain;
}

.soc-profile-summary__signature-empty {
    padding: .65rem;
    border-radius: 8px;
    background: #F7F8FA;
    color: #858E9C;
    font-size: .65rem;
    text-align: center;
}

.soc-profile-summary__signature-empty i {
    margin-right: .25rem;
}

/* Workspace/tabs */
.soc-profile-workspace {
    overflow: hidden;
    border: 1px solid #E6EAF0;
    border-radius: 15px;
    background: #F8F9FB;
    box-shadow: 0 8px 24px rgba(4, 30, 65, .04);
}

.soc-profile-tabs-wrap {
    padding: .65rem .75rem 0;
    border-bottom: 1px solid #E7EAF0;
    background: #FFFFFF;
}

.soc-profile-tabs {
    gap: .35rem;
    border-bottom: 0 !important;
}

.soc-profile-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin: 0;
    padding: .65rem .8rem;
    border: 0 !important;
    border-bottom: 3px solid transparent !important;
    border-radius: 8px 8px 0 0 !important;
    background: transparent !important;
    color: #7A8493;
    font-size: .72rem;
    font-weight: 700;
}

.soc-profile-tabs .nav-link:hover {
    color: var(--soc-primary, #041E41);
    background: #F8F9FB !important;
}

.soc-profile-tabs .nav-link.active {
    border-bottom-color: var(--soc-accent, #BC6D24) !important;
    background: rgba(188, 109, 36, .055) !important;
    color: var(--soc-primary, #041E41) !important;
}

.soc-profile-tab-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: #F0F3F7;
    color: #778191;
    font-size: .62rem;
}

.soc-profile-tabs .nav-link.active .soc-profile-tab-icon {
    background: rgba(188, 109, 36, .14);
    color: var(--soc-accent, #BC6D24);
}

.soc-profile-tab-content {
    padding: 1rem;
}

/* Cards */
.soc-profile-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.soc-profile-card {
    overflow: hidden;
    border: 1px solid #E6EAF0;
    border-radius: 12px;
    background: #FFFFFF;
}

.soc-profile-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid #EEF1F4;
}

.soc-profile-card__kicker {
    display: block;
    margin-bottom: .18rem;
    color: var(--soc-accent, #BC6D24);
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.soc-profile-card__header h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .94rem;
    font-weight: 800;
}

.soc-profile-card__header p {
    margin: .18rem 0 0;
    color: #8A93A0;
    font-size: .68rem;
}

.soc-profile-card__body {
    padding: 1rem;
}

.soc-profile-card__footer {
    display: flex;
    justify-content: flex-end;
    padding: .8rem 1rem;
    border-top: 1px solid #EEF1F4;
    background: #FBFCFD;
}

.soc-field-label {
    display: block;
    margin-bottom: .38rem;
    color: #364153;
    font-size: .68rem;
    font-weight: 750;
}

.soc-profile-card .form-control {
    min-height: 39px;
    border-color: #DAE0E8;
    border-radius: 8px;
    color: #253047;
    font-size: .74rem;
}

.soc-profile-card .form-control:focus {
    border-color: var(--soc-primary, #041E41);
    box-shadow: 0 0 0 .15rem rgba(4, 30, 65, .08);
}

.soc-readonly-field,
.soc-readonly-field:disabled {
    border-color: #E4E8EE !important;
    background: #F3F5F8 !important;
    color: #606B7D !important;
    opacity: 1 !important;
    cursor: not-allowed;
}

.soc-profile-readonly-badge,
.soc-profile-editable-badge {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .3rem;
    padding: .32rem .52rem;
    border-radius: 999px;
    font-size: .59rem;
    font-weight: 750;
}

.soc-profile-readonly-badge {
    background: #F1F3F6;
    color: #737D8C;
}

.soc-profile-editable-badge {
    background: rgba(22, 163, 74, .08);
    color: #15803D;
}

/* Upload */
.soc-profile-upload {
    display: grid;
    grid-template-columns: 42px minmax(140px, 1fr) minmax(180px, 1.3fr) auto;
    gap: .75rem;
    align-items: center;
    padding: .8rem;
    border: 1px dashed #D9DEE6;
    border-radius: 10px;
    background: #FBFCFD;
}

.soc-profile-upload__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: rgba(4, 30, 65, .07);
    color: var(--soc-primary, #041E41);
}

.soc-profile-upload__copy strong,
.soc-profile-upload__copy span {
    display: block;
}

.soc-profile-upload__copy strong {
    color: #344055;
    font-size: .72rem;
}

.soc-profile-upload__copy span {
    margin-top: .1rem;
    color: #8B94A2;
    font-size: .62rem;
}

.soc-profile-upload .form-control-file {
    max-width: 100%;
    color: #667085;
    font-size: .68rem;
}

/* Password */
.soc-profile-password {
    position: relative;
}

.soc-profile-password .form-control {
    padding-right: 2.7rem;
}

.soc-profile-password-toggle {
    position: absolute;
    top: 50%;
    right: .4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #7A8493;
    transform: translateY(-50%);
    cursor: pointer;
}

.soc-profile-password-toggle:hover,
.soc-profile-password-toggle:focus {
    background: #F0F3F7;
    color: var(--soc-primary, #041E41);
    outline: none;
}

@media (max-width: 1199.98px) {
    .soc-profile-summary {
        position: static;
    }

    .soc-profile-upload {
        grid-template-columns: 42px 1fr;
    }

    .soc-profile-upload .form-control-file,
    .soc-profile-upload .btn {
        grid-column: 2;
    }
}

@media (max-width: 767.98px) {
    .soc-profile-heading h1 {
        font-size: 1.35rem;
    }

    .soc-profile-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
    }

    .soc-profile-tabs .nav-link {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .soc-profile-card__header {
        flex-direction: column;
    }

    .soc-profile-upload {
        grid-template-columns: 1fr;
    }

    .soc-profile-upload__icon {
        margin-bottom: .1rem;
    }

    .soc-profile-upload .form-control-file,
    .soc-profile-upload .btn {
        grid-column: 1;
    }

    .soc-profile-card__footer .btn {
        width: 100%;
    }
}


/* ==========================================================
   SOC UI — Phase 12E News & Announcements
   ========================================================== */

.soc-news-page {
    padding-top: 1.2rem;
    padding-bottom: 2.5rem;
}

.soc-news-page-header,
.soc-news-show-topbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.soc-news-eyebrow {
    margin-bottom: .25rem;
    color: var(--soc-accent, #BC6D24);
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.soc-news-page-header h1 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.soc-news-page-header p {
    margin: .3rem 0 0;
    color: #7B8594;
    font-size: .78rem;
}

.soc-news-backlink {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .55rem;
    color: #687386;
    font-size: .7rem;
    font-weight: 700;
}

.soc-news-backlink:hover {
    color: var(--soc-primary, #041E41);
    text-decoration: none;
}

.soc-news-filter-card,
.soc-news-list-card,
.soc-news-editor-card,
.soc-news-article {
    border: 1px solid #E6EAF0;
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: 0 7px 22px rgba(4, 30, 65, .045);
}

.soc-news-filter-card {
    margin-bottom: 1rem;
    padding: .9rem 1rem .2rem;
}

.soc-news-filter-card__title {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .75rem;
    color: var(--soc-primary, #041E41);
    font-size: .78rem;
    font-weight: 800;
}

.soc-news-filter-card__title i {
    color: var(--soc-accent, #BC6D24);
}

.soc-news-filter-card .form-control {
    min-height: 38px;
    border-color: #DDE3EA;
    border-radius: 8px;
    font-size: .72rem;
}

.soc-news-filter-actions {
    display: flex;
    gap: .45rem;
}

.soc-news-list-card {
    overflow: hidden;
}

.soc-news-list-card__header {
    display: flex;
    justify-content: space-between;
    padding: .9rem 1rem;
    border-bottom: 1px solid #EDF0F4;
}

.soc-news-list-card__header h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .88rem;
    font-weight: 800;
}

.soc-news-list-card__header p {
    margin: .15rem 0 0;
    color: #8B94A1;
    font-size: .64rem;
}

.soc-news-table {
    table-layout: fixed;
}

.soc-news-table thead th {
    padding: .7rem .8rem;
    border-top: 0;
    border-bottom: 1px solid #E4E8EE;
    background: #F5F7FA;
    color: #4C576A;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.soc-news-table th:nth-child(1) { width: 53%; }
.soc-news-table th:nth-child(2) { width: 20%; }
.soc-news-table th:nth-child(3) { width: 12%; }
.soc-news-table th:nth-child(4) { width: 15%; }

.soc-news-table td {
    padding: .8rem;
    border-top: 1px solid #EEF1F4;
    vertical-align: middle;
}

.soc-news-title-link {
    display: block;
    color: var(--soc-primary, #041E41);
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.35;
}

.soc-news-title-link:hover {
    color: var(--soc-accent, #BC6D24);
    text-decoration: none;
}

.soc-news-excerpt {
    display: -webkit-box;
    overflow: hidden;
    margin-top: .25rem;
    color: #7A8492;
    font-size: .67rem;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.soc-news-table__author strong,
.soc-news-table__author span,
.soc-news-table__date strong,
.soc-news-table__date span {
    display: block;
}

.soc-news-table__author strong {
    color: #354055;
    font-size: .69rem;
}

.soc-news-table__author span,
.soc-news-table__date span {
    margin-top: .12rem;
    color: #9199A5;
    font-size: .62rem;
}

.soc-news-table__date strong {
    color: #4A5567;
    font-size: .67rem;
}

.soc-news-table__actions {
    text-align: right;
}

.soc-news-actions {
    display: flex;
    justify-content: flex-end;
    gap: .3rem;
    flex-wrap: nowrap;
}

.soc-news-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
    padding: 0;
    border-radius: 8px;
}

.soc-news-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    padding: 2.4rem 1rem;
    color: #8B94A1;
    text-align: center;
}

.soc-news-empty i {
    color: #B2BAC5;
    font-size: 1.8rem;
}

.soc-news-empty strong {
    color: #4E596A;
    font-size: .78rem;
}

.soc-news-empty span {
    font-size: .68rem;
}

.soc-news-list-card__footer {
    padding: .8rem 1rem;
    border-top: 1px solid #EEF1F4;
    background: #FBFCFD;
}

/* Editor */
.soc-news-editor-card {
    overflow: hidden;
}

.soc-news-editor-card__header {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid #EEF1F4;
}

.soc-news-editor-card__icon {
    display: inline-flex;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(188, 109, 36, .10);
    color: var(--soc-accent, #BC6D24);
}

.soc-news-editor-card__header h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .9rem;
    font-weight: 800;
}

.soc-news-editor-card__header p {
    margin: .15rem 0 0;
    color: #8A93A1;
    font-size: .66rem;
}

.soc-news-editor-card__body {
    padding: 1rem;
}

.soc-news-editor-card__body .form-control {
    border-color: #DDE3EA;
    border-radius: 8px;
    font-size: .74rem;
}

.soc-news-editor-card__footer {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    padding: .8rem 1rem;
    border-top: 1px solid #EEF1F4;
    background: #FBFCFD;
}

.soc-news-status-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .4rem .65rem;
    border-radius: 999px;
    background: rgba(22, 163, 74, .09);
    color: #15803D;
    font-size: .64rem;
    font-weight: 800;
}

.soc-news-edit-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .65rem;
    margin-bottom: 1rem;
}

.soc-news-edit-summary > div {
    padding: .65rem .75rem;
    border: 1px solid #E6EAF0;
    border-radius: 10px;
    background: #FFFFFF;
}

.soc-news-edit-summary span,
.soc-news-edit-summary strong {
    display: block;
}

.soc-news-edit-summary span {
    color: #929AA7;
    font-size: .59rem;
}

.soc-news-edit-summary strong {
    margin-top: .12rem;
    color: #3C475A;
    font-size: .68rem;
}

/* Show */
.soc-news-show-topbar {
    align-items: center;
}

.soc-news-show-topbar .soc-news-backlink {
    margin-bottom: 0;
}

.soc-news-article {
    max-width: 1050px;
    margin: 0 auto;
    overflow: hidden;
}

.soc-news-article__header {
    padding: 1.5rem 1.65rem 1.2rem;
    border-bottom: 1px solid #EEF1F4;
}

.soc-news-article__header h1 {
    max-width: 900px;
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -.02em;
}

.soc-news-article__meta {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-top: .9rem;
}

.soc-news-article__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(4, 30, 65, .08);
    color: var(--soc-primary, #041E41);
    font-size: .7rem;
    font-weight: 850;
}

.soc-news-article__meta strong,
.soc-news-article__meta span {
    display: block;
}

.soc-news-article__meta strong {
    color: #3A4558;
    font-size: .7rem;
}

.soc-news-article__meta span {
    margin-top: .08rem;
    color: #8B94A1;
    font-size: .62rem;
}

.soc-news-meta-dot {
    display: inline !important;
    margin: 0 .25rem;
}

.soc-news-article__content {
    max-width: 880px;
    margin: 0 auto;
    padding: 1.7rem 1.7rem 2.2rem;
    color: #303A4A;
    font-size: .82rem;
    line-height: 1.75;
}

.soc-news-article__content p {
    margin-bottom: 1rem;
}

.soc-news-article__content img {
    max-width: 100%;
    height: auto;
}

.soc-news-article__content table {
    max-width: 100%;
}

@media (max-width: 991.98px) {
    .soc-news-table th:nth-child(1) { width: 48%; }
    .soc-news-table th:nth-child(2) { width: 22%; }
    .soc-news-table th:nth-child(3) { width: 13%; }
    .soc-news-table th:nth-child(4) { width: 17%; }
}

@media (max-width: 767.98px) {
    .soc-news-page-header {
        flex-direction: column;
    }

    .soc-news-page-header .btn {
        width: 100%;
    }

    .soc-news-edit-summary {
        grid-template-columns: 1fr;
    }

    .soc-news-editor-card__footer {
        flex-direction: column-reverse;
    }

    .soc-news-editor-card__footer .btn {
        width: 100%;
    }

    .soc-news-article__header {
        padding: 1.15rem;
    }

    .soc-news-article__header h1 {
        font-size: 1.25rem;
    }

    .soc-news-article__content {
        padding: 1.2rem;
    }
}


/* ==========================================================
   SOC UI — Phase 12F Knowledge Base
   ========================================================== */

.soc-knowledge-page {
    padding-top: 1.2rem;
    padding-bottom: 2.5rem;
}

.soc-knowledge-page-header,
.soc-knowledge-show-topbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.soc-knowledge-eyebrow,
.soc-knowledge-card-kicker {
    display: block;
    margin-bottom: .25rem;
    color: var(--soc-accent, #BC6D24);
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.soc-knowledge-page-header h1 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.soc-knowledge-page-header p {
    margin: .3rem 0 0;
    color: #7B8594;
    font-size: .78rem;
}

.soc-knowledge-backlink {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .55rem;
    color: #687386;
    font-size: .7rem;
    font-weight: 700;
}

.soc-knowledge-backlink:hover {
    color: var(--soc-primary, #041E41);
    text-decoration: none;
}

.soc-knowledge-filter-card,
.soc-knowledge-list-card,
.soc-knowledge-editor-card,
.soc-knowledge-article {
    border: 1px solid #E6EAF0;
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: 0 7px 22px rgba(4, 30, 65, .045);
}

.soc-knowledge-filter-card {
    margin-bottom: 1rem;
    padding: .9rem 1rem .2rem;
}

.soc-knowledge-filter-card__title {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .75rem;
    color: var(--soc-primary, #041E41);
    font-size: .78rem;
    font-weight: 800;
}

.soc-knowledge-filter-card__title i {
    color: var(--soc-accent, #BC6D24);
}

.soc-knowledge-filter-card .form-control,
.soc-knowledge-editor-card .form-control {
    min-height: 38px;
    border-color: #DDE3EA;
    border-radius: 8px;
    font-size: .72rem;
}

.soc-knowledge-filter-actions {
    display: flex;
    gap: .45rem;
}

.soc-knowledge-list-card {
    overflow: hidden;
}

.soc-knowledge-list-card__header {
    padding: .9rem 1rem;
    border-bottom: 1px solid #EDF0F4;
}

.soc-knowledge-list-card__header h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .88rem;
    font-weight: 800;
}

.soc-knowledge-list-card__header p {
    margin: .15rem 0 0;
    color: #8B94A1;
    font-size: .64rem;
}

.soc-knowledge-table {
    table-layout: fixed;
}

.soc-knowledge-table thead th {
    padding: .7rem .8rem;
    border-top: 0;
    border-bottom: 1px solid #E4E8EE;
    background: #F5F7FA;
    color: #4C576A;
    font-size: .64rem;
    font-weight: 800;
}

.soc-knowledge-table th:nth-child(1) { width: 56%; }
.soc-knowledge-table th:nth-child(2) { width: 22%; }
.soc-knowledge-table th:nth-child(3) { width: 9%; }
.soc-knowledge-table th:nth-child(4) { width: 13%; }

.soc-knowledge-table td {
    padding: .8rem;
    border-top: 1px solid #EEF1F4;
    vertical-align: middle;
}

.soc-knowledge-title-link {
    display: block;
    color: var(--soc-primary, #041E41);
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.35;
}

.soc-knowledge-title-link:hover {
    color: var(--soc-accent, #BC6D24);
    text-decoration: none;
}

.soc-knowledge-excerpt {
    display: -webkit-box;
    overflow: hidden;
    margin-top: .25rem;
    color: #7A8492;
    font-size: .67rem;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.soc-knowledge-category-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    max-width: 100%;
    padding: .33rem .5rem;
    border-radius: 999px;
    background: #F2F4F7;
    color: #586375;
    font-size: .63rem;
    font-weight: 700;
}

.soc-knowledge-file-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    min-width: 33px;
    padding: .32rem .45rem;
    border-radius: 999px;
    background: rgba(4, 30, 65, .07);
    color: var(--soc-primary, #041E41);
    font-size: .63rem;
    font-weight: 800;
}

.soc-knowledge-no-files {
    color: #A1A9B5;
}

.soc-knowledge-table__actions {
    text-align: right;
}

.soc-knowledge-actions {
    display: flex;
    justify-content: flex-end;
    gap: .3rem;
}

.soc-knowledge-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 33px;
    height: 33px;
    padding: 0;
    border-radius: 8px;
}

.soc-knowledge-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    padding: 2.4rem 1rem;
    color: #8B94A1;
    text-align: center;
}

.soc-knowledge-empty i {
    color: #B2BAC5;
    font-size: 1.8rem;
}

.soc-knowledge-empty strong {
    color: #4E596A;
    font-size: .78rem;
}

.soc-knowledge-empty span {
    font-size: .68rem;
}

.soc-knowledge-list-card__footer {
    padding: .8rem 1rem;
    border-top: 1px solid #EEF1F4;
    background: #FBFCFD;
}

/* Editor */
.soc-knowledge-editor-card {
    overflow: hidden;
    margin-bottom: 1rem;
}

.soc-knowledge-editor-card__header {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid #EEF1F4;
}

.soc-knowledge-editor-card__icon {
    display: inline-flex;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(188, 109, 36, .10);
    color: var(--soc-accent, #BC6D24);
}

.soc-knowledge-editor-card__header h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .9rem;
    font-weight: 800;
}

.soc-knowledge-editor-card__header p {
    margin: .15rem 0 0;
    color: #8A93A1;
    font-size: .66rem;
}

.soc-knowledge-editor-card__body {
    padding: 1rem;
}

.soc-knowledge-editor-card__footer {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    padding: .8rem 1rem;
    border-top: 1px solid #EEF1F4;
    background: #FBFCFD;
}

.soc-knowledge-label-row {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .38rem;
}

.soc-knowledge-label-row > span {
    color: #8B94A1;
    font-size: .62rem;
}

.soc-knowledge-upload {
    display: grid;
    grid-template-columns: 42px minmax(180px, 1fr) minmax(220px, 1fr);
    align-items: center;
    gap: .75rem;
    padding: .8rem;
    border: 1px dashed #D9DEE6;
    border-radius: 10px;
    background: #FBFCFD;
}

.soc-knowledge-upload__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: rgba(220, 38, 38, .08);
    color: #DC2626;
}

.soc-knowledge-upload__copy strong,
.soc-knowledge-upload__copy span {
    display: block;
}

.soc-knowledge-upload__copy strong {
    color: #344055;
    font-size: .72rem;
}

.soc-knowledge-upload__copy span {
    margin-top: .1rem;
    color: #8B94A2;
    font-size: .62rem;
}

.soc-knowledge-upload .form-control-file {
    max-width: 100%;
    color: #667085;
    font-size: .68rem;
}

.soc-knowledge-status-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .4rem .65rem;
    border-radius: 999px;
    background: rgba(22, 163, 74, .09);
    color: #15803D;
    font-size: .64rem;
    font-weight: 800;
}

.soc-knowledge-existing-files__label {
    margin-bottom: .45rem;
    color: #697487;
    font-size: .65rem;
    font-weight: 800;
}

.soc-knowledge-existing-file {
    display: grid;
    grid-template-columns: 38px minmax(180px, 1fr) auto;
    align-items: center;
    gap: .65rem;
    padding: .65rem;
    border: 1px solid #E7EBF0;
    border-radius: 9px;
    background: #FCFDFE;
}

.soc-knowledge-existing-file + .soc-knowledge-existing-file {
    margin-top: .45rem;
}

.soc-knowledge-existing-file__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 9px;
    background: rgba(220, 38, 38, .08);
    color: #DC2626;
}

.soc-knowledge-existing-file__copy strong,
.soc-knowledge-existing-file__copy a {
    display: block;
}

.soc-knowledge-existing-file__copy strong {
    overflow: hidden;
    color: #394456;
    font-size: .69rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.soc-knowledge-existing-file__copy a {
    margin-top: .08rem;
    color: var(--soc-primary, #041E41);
    font-size: .61rem;
}

.soc-knowledge-file-delete {
    margin: 0;
    cursor: pointer;
}

.soc-knowledge-file-delete input {
    position: absolute;
    opacity: 0;
}

.soc-knowledge-file-delete span {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .4rem .55rem;
    border: 1px solid #F0C4C4;
    border-radius: 8px;
    color: #B42318;
    font-size: .61rem;
    font-weight: 700;
}

.soc-knowledge-file-delete input:checked + span {
    border-color: #DC2626;
    background: #FEF2F2;
    color: #DC2626;
}

.soc-knowledge-no-attachments {
    padding: .8rem;
    border-radius: 8px;
    background: #F6F7F9;
    color: #858E9C;
    font-size: .67rem;
}

/* Show */
.soc-knowledge-show-topbar {
    align-items: center;
}

.soc-knowledge-show-topbar .soc-knowledge-backlink {
    margin-bottom: 0;
}

.soc-knowledge-article {
    max-width: 1050px;
    margin: 0 auto;
    overflow: hidden;
}

.soc-knowledge-article__header {
    padding: 1.5rem 1.65rem 1.2rem;
    border-bottom: 1px solid #EEF1F4;
}

.soc-knowledge-article__category {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .7rem;
    padding: .34rem .55rem;
    border-radius: 999px;
    background: rgba(4, 30, 65, .06);
    color: #596577;
    font-size: .63rem;
    font-weight: 700;
}

.soc-knowledge-article__header h1 {
    max-width: 900px;
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1.25;
}

.soc-knowledge-article__lead {
    max-width: 850px;
    margin: .75rem 0 0;
    color: #697487;
    font-size: .78rem;
    line-height: 1.6;
}

.soc-knowledge-article__content {
    max-width: 880px;
    margin: 0 auto;
    padding: 1.7rem;
    color: #303A4A;
    font-size: .82rem;
    line-height: 1.75;
}

.soc-knowledge-article__content img {
    max-width: 100%;
    height: auto;
}

.soc-knowledge-article__attachments {
    padding: 1rem 1.65rem 1.4rem;
    border-top: 1px solid #EEF1F4;
    background: #FBFCFD;
}

.soc-knowledge-attachments-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .7rem;
}

.soc-knowledge-attachments-heading h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .85rem;
    font-weight: 800;
}

.soc-knowledge-attachment-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.soc-knowledge-attachment {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: .6rem;
    padding: .65rem;
    border: 1px solid #E3E7ED;
    border-radius: 9px;
    background: #FFFFFF;
    color: inherit;
}

.soc-knowledge-attachment:hover {
    border-color: #CBD3DE;
    text-decoration: none;
}

.soc-knowledge-attachment__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 9px;
    background: rgba(220, 38, 38, .08);
    color: #DC2626;
}

.soc-knowledge-attachment__copy {
    min-width: 0;
}

.soc-knowledge-attachment__copy strong,
.soc-knowledge-attachment__copy small {
    display: block;
}

.soc-knowledge-attachment__copy strong {
    overflow: hidden;
    color: #394456;
    font-size: .68rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.soc-knowledge-attachment__copy small {
    margin-top: .08rem;
    color: #8C95A2;
    font-size: .59rem;
}

.soc-knowledge-attachment__download {
    color: #7B8594;
}

@media (max-width: 991.98px) {
    .soc-knowledge-upload {
        grid-template-columns: 42px 1fr;
    }

    .soc-knowledge-upload .form-control-file {
        grid-column: 2;
    }

    .soc-knowledge-attachment-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .soc-knowledge-page-header {
        flex-direction: column;
    }

    .soc-knowledge-page-header .btn {
        width: 100%;
    }

    .soc-knowledge-editor-card__footer {
        flex-direction: column-reverse;
    }

    .soc-knowledge-editor-card__footer .btn {
        width: 100%;
    }

    .soc-knowledge-existing-file {
        grid-template-columns: 38px 1fr;
    }

    .soc-knowledge-file-delete {
        grid-column: 2;
    }

    .soc-knowledge-upload {
        grid-template-columns: 1fr;
    }

    .soc-knowledge-upload .form-control-file {
        grid-column: 1;
    }

    .soc-knowledge-article__header,
    .soc-knowledge-article__content,
    .soc-knowledge-article__attachments {
        padding-left: 1.15rem;
        padding-right: 1.15rem;
    }

    .soc-knowledge-article__header h1 {
        font-size: 1.25rem;
    }
}


/* ==========================================================
   SOC UI — Phase 12G Member Directory
   ========================================================== */

.soc-directory-page {
    padding-top: 1.2rem;
    padding-bottom: 2.5rem;
}

.soc-directory-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.soc-directory-eyebrow {
    margin-bottom: .25rem;
    color: var(--soc-accent, #BC6D24);
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.soc-directory-header h1 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.soc-directory-header p {
    max-width: 700px;
    margin: .3rem 0 0;
    color: #7B8594;
    font-size: .78rem;
}

.soc-directory-count-badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .48rem .7rem;
    border: 1px solid #DDE3EA;
    border-radius: 999px;
    background: #FFFFFF;
    color: var(--soc-primary, #041E41);
    font-size: .66rem;
    font-weight: 800;
}

.soc-directory-filter-card,
.soc-directory-card {
    border: 1px solid #E6EAF0;
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: 0 7px 22px rgba(4, 30, 65, .045);
}

.soc-directory-filter-card {
    margin-bottom: 1rem;
    padding: .9rem 1rem .2rem;
}

.soc-directory-filter-title {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .75rem;
    color: var(--soc-primary, #041E41);
    font-size: .78rem;
    font-weight: 800;
}

.soc-directory-filter-title i {
    color: var(--soc-accent, #BC6D24);
}

.soc-directory-filter-card .form-control {
    min-height: 38px;
    border-color: #DDE3EA;
    border-radius: 8px;
    font-size: .72rem;
}

.soc-directory-filter-actions {
    display: flex;
    gap: .45rem;
}

.soc-directory-card {
    overflow: hidden;
}

.soc-directory-card__header {
    padding: .9rem 1rem;
    border-bottom: 1px solid #EDF0F4;
}

.soc-directory-card__header h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .88rem;
    font-weight: 800;
}

.soc-directory-card__header p {
    margin: .15rem 0 0;
    color: #8B94A1;
    font-size: .64rem;
}

.soc-directory-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    padding: 1rem;
    background: #F8F9FB;
}

.soc-directory-member-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #E4E8EE;
    border-radius: 12px;
    background: #FFFFFF;
}

.soc-directory-member-card__top {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .9rem;
    border-bottom: 1px solid #EEF1F4;
}

.soc-directory-avatar {
    display: inline-flex;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 11px;
    background: rgba(188, 109, 36, .11);
    color: var(--soc-accent, #BC6D24);
    font-size: .9rem;
    font-weight: 850;
}

.soc-directory-member-card__identity {
    min-width: 0;
}

.soc-directory-member-card__identity h3 {
    overflow: hidden;
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.35;
    text-overflow: ellipsis;
}

.soc-directory-member-card__identity p {
    display: -webkit-box;
    overflow: hidden;
    margin: .18rem 0 0;
    color: #8A93A1;
    font-size: .62rem;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.soc-directory-member-card__details {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: .55rem;
    padding: .85rem .9rem;
}

.soc-directory-detail {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: .55rem;
    align-items: flex-start;
}

.soc-directory-detail__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: #F1F4F8;
    color: #667389;
    font-size: .62rem;
}

.soc-directory-detail div {
    min-width: 0;
}

.soc-directory-detail small,
.soc-directory-detail strong,
.soc-directory-detail a {
    display: block;
}

.soc-directory-detail small {
    margin-bottom: .05rem;
    color: #99A1AD;
    font-size: .56rem;
}

.soc-directory-detail strong,
.soc-directory-detail a {
    overflow-wrap: anywhere;
    color: #485365;
    font-size: .65rem;
    font-weight: 650;
    line-height: 1.35;
}

.soc-directory-detail a:hover {
    color: var(--soc-accent, #BC6D24);
    text-decoration: none;
}

.soc-directory-member-card__footer {
    display: flex;
    gap: .4rem;
    padding: .7rem .9rem;
    border-top: 1px solid #EEF1F4;
    background: #FBFCFD;
}

.soc-directory-member-card__footer .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.soc-directory-empty {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    padding: 2.8rem 1rem;
    color: #8B94A1;
    text-align: center;
}

.soc-directory-empty i {
    color: #B2BAC5;
    font-size: 1.9rem;
}

.soc-directory-empty strong {
    color: #4E596A;
    font-size: .78rem;
}

.soc-directory-empty span {
    font-size: .67rem;
}

.soc-directory-pagination {
    padding: .8rem 1rem;
    border-top: 1px solid #EEF1F4;
    background: #FFFFFF;
}

@media (max-width: 1199.98px) {
    .soc-directory-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .soc-directory-header {
        flex-direction: column;
    }

    .soc-directory-grid {
        grid-template-columns: 1fr;
    }

    .soc-directory-filter-actions {
        flex-direction: column;
    }

    .soc-directory-filter-actions .btn {
        width: 100%;
    }
}


/* ==========================================================
   SOC UI — Phase 12H Member Finance + Board Contact
   ========================================================== */

/* ---------- Member finance ---------- */

.soc-member-finance-page,
.soc-board-contact-page {
    padding-top: 1.2rem;
    padding-bottom: 2.5rem;
}

.soc-member-finance-header,
.soc-board-contact-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.soc-member-finance-eyebrow,
.soc-board-contact-eyebrow,
.soc-member-finance-card__kicker {
    display: block;
    margin-bottom: .25rem;
    color: var(--soc-accent, #BC6D24);
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.soc-member-finance-header h1,
.soc-board-contact-header h1 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.soc-member-finance-header p,
.soc-board-contact-header p {
    margin: .3rem 0 0;
    color: #7B8594;
    font-size: .78rem;
}

.soc-member-finance-identity {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: .8rem;
    margin-bottom: .8rem;
    padding: .85rem 1rem;
    border: 1px solid #E4E8EE;
    border-radius: 13px;
    background: #FFFFFF;
    box-shadow: 0 6px 18px rgba(4, 30, 65, .035);
}

.soc-member-finance-identity__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: rgba(4, 30, 65, .07);
    color: var(--soc-primary, #041E41);
    font-size: 1rem;
}

.soc-member-finance-identity__copy span,
.soc-member-finance-identity__updated span {
    display: block;
    color: #949CA8;
    font-size: .58rem;
    font-weight: 700;
}

.soc-member-finance-identity__copy h2 {
    margin: .08rem 0 0;
    color: var(--soc-primary, #041E41);
    font-size: .9rem;
    font-weight: 800;
}

.soc-member-finance-identity__copy p {
    margin: .08rem 0 0;
    color: #7C8695;
    font-size: .64rem;
}

.soc-member-finance-identity__updated {
    text-align: right;
}

.soc-member-finance-identity__updated strong {
    color: #505B6D;
    font-size: .65rem;
}

.soc-member-finance-position {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    margin-bottom: 1rem;
    padding: .72rem .85rem;
    border: 1px solid;
    border-radius: 11px;
}

.soc-member-finance-position__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background: rgba(255,255,255,.62);
}

.soc-member-finance-position strong {
    display: block;
    font-size: .7rem;
}

.soc-member-finance-position p {
    margin: .08rem 0 0;
    font-size: .63rem;
}

.soc-member-finance-position--success {
    border-color: #BDE5CB;
    background: #EFF9F3;
    color: #16743E;
}

.soc-member-finance-position--danger {
    border-color: #F0C7C3;
    background: #FFF3F2;
    color: #9E2F25;
}

.soc-member-finance-position--info {
    border-color: #C8DCF6;
    background: #EFF6FF;
    color: #225D99;
}

.soc-member-finance-position--warning {
    border-color: #EEDDAE;
    background: #FFF9E9;
    color: #7B5A0A;
}

.soc-member-finance-kpi {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 92px;
    padding: .8rem;
    border: 1px solid #E6EAF0;
    border-radius: 12px;
    background: #FFFFFF;
    box-shadow: 0 5px 16px rgba(4, 30, 65, .035);
}

.soc-member-finance-kpi__icon {
    display: inline-flex;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 11px;
    background: rgba(4, 30, 65, .07);
    color: var(--soc-primary, #041E41);
}

.soc-member-finance-kpi__icon--danger {
    background: rgba(220, 38, 38, .08);
    color: #DC2626;
}

.soc-member-finance-kpi__icon--info {
    background: rgba(37, 99, 235, .08);
    color: #2563EB;
}

.soc-member-finance-kpi__icon--warning {
    background: rgba(245, 158, 11, .10);
    color: #B66F00;
}

.soc-member-finance-kpi div > span,
.soc-member-finance-kpi small,
.soc-member-finance-kpi strong {
    display: block;
}

.soc-member-finance-kpi div > span {
    color: #778191;
    font-size: .59rem;
    font-weight: 750;
    text-transform: uppercase;
}

.soc-member-finance-kpi strong {
    margin-top: .1rem;
    color: var(--soc-primary, #041E41);
    font-size: 1rem;
    font-weight: 850;
}

.soc-member-finance-kpi small {
    margin-top: .08rem;
    color: #959DA9;
    font-size: .57rem;
}

.soc-member-finance-card {
    overflow: hidden;
    margin-bottom: 1rem;
    border: 1px solid #E6EAF0;
    border-radius: 13px;
    background: #FFFFFF;
    box-shadow: 0 6px 18px rgba(4, 30, 65, .04);
}

.soc-member-finance-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    padding: .85rem 1rem;
    border-bottom: 1px solid #EDF0F4;
}

.soc-member-finance-card__header h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .86rem;
    font-weight: 800;
}

.soc-member-finance-card__header p {
    margin: .12rem 0 0;
    color: #8A93A1;
    font-size: .63rem;
}

.soc-member-finance-count {
    flex: 0 0 auto;
    padding: .3rem .5rem;
    border-radius: 999px;
    background: #F2F4F7;
    color: #697487;
    font-size: .59rem;
    font-weight: 750;
}

.soc-member-finance-table thead th {
    padding: .65rem .7rem;
    border-top: 0;
    background: #F5F7FA;
    color: #536074;
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    white-space: nowrap;
}

.soc-member-finance-table td {
    padding: .68rem .7rem;
    border-top: 1px solid #EEF1F4;
    color: #424D60;
    font-size: .66rem;
    vertical-align: middle;
}

.soc-member-finance-money {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.soc-member-finance-obligation strong {
    color: var(--soc-primary, #041E41);
    font-size: .67rem;
}

.soc-member-finance-obligation .progress {
    width: 90px;
    height: 4px;
    margin-top: .35rem;
    border-radius: 999px;
    background: #EDF0F4;
}

.soc-member-finance-mobile-label {
    display: none;
}

.soc-member-finance-empty {
    padding: 2.2rem 1rem;
    color: #858E9B;
    text-align: center;
}

.soc-member-finance-empty i {
    display: block;
    margin-bottom: .45rem;
    color: #B5BDC8;
    font-size: 1.6rem;
}

.soc-member-finance-empty strong {
    font-size: .7rem;
}

.soc-member-finance-help {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    padding: .8rem .9rem;
    border: 1px solid #DDE3EA;
    border-radius: 11px;
    background: #F8FAFC;
}

.soc-member-finance-help__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 9px;
    background: #FFFFFF;
    color: var(--soc-primary, #041E41);
}

.soc-member-finance-help strong {
    color: #3F4A5D;
    font-size: .68rem;
}

.soc-member-finance-help p {
    margin: .08rem 0 0;
    color: #7D8795;
    font-size: .61rem;
}

/* ---------- Board contact ---------- */

.soc-board-contact-summary,
.soc-board-contact-card {
    border: 1px solid #E6EAF0;
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: 0 7px 22px rgba(4, 30, 65, .045);
}

.soc-board-contact-summary {
    padding: 1.1rem;
}

.soc-board-contact-summary__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: .75rem;
    border-radius: 12px;
    background: rgba(188, 109, 36, .11);
    color: var(--soc-accent, #BC6D24);
    font-size: 1rem;
}

.soc-board-contact-summary h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .9rem;
    font-weight: 800;
}

.soc-board-contact-summary > p {
    margin: .3rem 0 .9rem;
    color: #7C8695;
    font-size: .67rem;
    line-height: 1.5;
}

.soc-board-contact-summary__rows {
    border-top: 1px solid #EEF1F4;
    border-bottom: 1px solid #EEF1F4;
    padding: .5rem 0;
}

.soc-board-contact-summary__rows > div {
    padding: .35rem 0;
}

.soc-board-contact-summary__rows span,
.soc-board-contact-summary__rows strong {
    display: block;
}

.soc-board-contact-summary__rows span {
    color: #9AA2AE;
    font-size: .56rem;
}

.soc-board-contact-summary__rows strong {
    margin-top: .05rem;
    overflow-wrap: anywhere;
    color: #465164;
    font-size: .65rem;
}

.soc-board-contact-summary__notice {
    margin-top: .75rem;
    padding: .65rem;
    border-radius: 9px;
    background: #F4F7FA;
    color: #737E8E;
    font-size: .61rem;
    line-height: 1.45;
}

.soc-board-contact-summary__notice i {
    margin-right: .25rem;
    color: var(--soc-primary, #041E41);
}

.soc-board-contact-card {
    overflow: hidden;
}

.soc-board-contact-card__header {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid #EEF1F4;
}

.soc-board-contact-card__header-icon {
    display: inline-flex;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(4, 30, 65, .07);
    color: var(--soc-primary, #041E41);
}

.soc-board-contact-card__header h2 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: .9rem;
    font-weight: 800;
}

.soc-board-contact-card__header p {
    margin: .12rem 0 0;
    color: #8A93A1;
    font-size: .64rem;
}

.soc-board-contact-card__body {
    padding: 1rem;
}

.soc-board-contact-card .form-control {
    min-height: 39px;
    border-color: #DDE3EA;
    border-radius: 8px;
    font-size: .72rem;
}

.soc-board-contact-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .38rem;
}

.soc-board-contact-label-row > span {
    color: #8B94A1;
    font-size: .59rem;
}

.soc-board-contact-card__footer {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    padding: .8rem 1rem;
    border-top: 1px solid #EEF1F4;
    background: #FBFCFD;
}

@media (max-width: 991.98px) {
    .soc-member-finance-position,
    .soc-member-finance-help {
        grid-template-columns: 36px 1fr;
    }

    .soc-member-finance-position .btn,
    .soc-member-finance-help .btn {
        grid-column: 2;
        justify-self: start;
    }
}

@media (max-width: 767.98px) {
    .soc-member-finance-header,
    .soc-board-contact-header {
        flex-direction: column;
    }

    .soc-member-finance-header .btn,
    .soc-board-contact-header .btn {
        width: 100%;
    }

    .soc-member-finance-identity {
        grid-template-columns: 48px 1fr;
    }

    .soc-member-finance-identity__updated {
        grid-column: 2;
        text-align: left;
    }

    .soc-member-finance-table thead {
        display: none;
    }

    .soc-member-finance-table,
    .soc-member-finance-table tbody,
    .soc-member-finance-table tr,
    .soc-member-finance-table td {
        display: block;
        width: 100%;
    }

    .soc-member-finance-table tr {
        padding: .55rem 0;
        border-bottom: 1px solid #EEF1F4;
    }

    .soc-member-finance-table td {
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        padding: .35rem .8rem;
        border: 0;
        text-align: right !important;
    }

    .soc-member-finance-mobile-label {
        display: inline;
        color: #8A93A1;
        font-weight: 700;
        text-align: left;
    }

    .soc-board-contact-card__footer {
        flex-direction: column-reverse;
    }

    .soc-board-contact-card__footer .btn {
        width: 100%;
    }

    .soc-board-contact-label-row {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ==========================================================
   SOC UI — Phase 12I Approvals & Workflow
   ========================================================== */
.soc-approval-page{padding-top:1.2rem;padding-bottom:2.5rem}
.soc-approval-page-header,.soc-approval-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.soc-approval-eyebrow,.soc-approval-card-kicker{display:block;margin-bottom:.22rem;color:var(--soc-accent,#BC6D24);font-size:.62rem;font-weight:850;letter-spacing:.09em}
.soc-approval-page-header h1,.soc-approval-detail-header h1{margin:0;color:var(--soc-primary,#041E41);font-size:1.55rem;font-weight:800;letter-spacing:-.02em}
.soc-approval-page-header p{margin:.3rem 0 0;color:#7B8594;font-size:.78rem}
.soc-approval-backlink{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.55rem;color:#687386;font-size:.68rem;font-weight:700}
.soc-approval-backlink:hover{color:var(--soc-primary,#041E41);text-decoration:none}
.soc-approval-detail-meta{display:flex;flex-wrap:wrap;gap:.7rem 1rem;margin-top:.55rem;color:#7E8896;font-size:.63rem}
.soc-approval-detail-meta span{display:inline-flex;align-items:center;gap:.3rem}
.soc-approval-detail-meta i{color:#9CA4B0}
.soc-approval-kpi{display:flex;align-items:center;gap:.7rem;min-height:86px;padding:.75rem;border:1px solid #E6EAF0;border-radius:12px;background:#fff;box-shadow:0 5px 16px rgba(4,30,65,.035)}
.soc-approval-kpi__icon{display:inline-flex;flex:0 0 40px;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:rgba(4,30,65,.07);color:var(--soc-primary,#041E41)}
.soc-approval-kpi--warning .soc-approval-kpi__icon{background:rgba(245,158,11,.10);color:#B66F00}
.soc-approval-kpi--success .soc-approval-kpi__icon{background:rgba(22,163,74,.09);color:#15803D}
.soc-approval-kpi--danger .soc-approval-kpi__icon{background:rgba(220,38,38,.08);color:#DC2626}
.soc-approval-kpi div>span,.soc-approval-kpi strong,.soc-approval-kpi small{display:block}
.soc-approval-kpi div>span{color:#7A8493;font-size:.58rem;font-weight:750;text-transform:uppercase}
.soc-approval-kpi strong{margin-top:.08rem;color:var(--soc-primary,#041E41);font-size:1.05rem;font-weight:850}
.soc-approval-kpi small{color:#969EAA;font-size:.56rem}
.soc-approval-filter-card,.soc-approval-list-card,.soc-approval-detail-card{border:1px solid #E6EAF0!important;border-radius:13px!important;background:#fff;box-shadow:0 6px 18px rgba(4,30,65,.04)!important}
.soc-approval-filter-card{margin-bottom:1rem;padding:.9rem 1rem .2rem}
.soc-approval-filter-title{display:flex;align-items:center;gap:.4rem;margin-bottom:.7rem;color:var(--soc-primary,#041E41);font-size:.76rem;font-weight:800}
.soc-approval-filter-title i{color:var(--soc-accent,#BC6D24)}
.soc-approval-filter-card .form-control{min-height:38px;border-color:#DDE3EA;border-radius:8px;font-size:.7rem}
.soc-approval-filter-actions{display:flex;gap:.45rem}
.soc-approval-list-card{overflow:hidden}
.soc-approval-list-card__header{padding:.85rem 1rem;border-bottom:1px solid #EDF0F4}
.soc-approval-list-card__header h2{margin:0;color:var(--soc-primary,#041E41);font-size:.86rem;font-weight:800}
.soc-approval-list-card__header p{margin:.12rem 0 0;color:#8B94A1;font-size:.62rem}
.soc-approval-table thead th{padding:.65rem .75rem;border-top:0;border-bottom:1px solid #E4E8EE;background:#F5F7FA;color:#536074;font-size:.59rem;font-weight:800;text-transform:uppercase;white-space:nowrap}
.soc-approval-table td{padding:.72rem .75rem;border-top:1px solid #EEF1F4;color:#465164;font-size:.66rem;vertical-align:middle}
.soc-approval-row--attention{background:rgba(245,158,11,.025)}
.soc-approval-row--attention td:first-child{border-left:3px solid #D98A13}
.soc-approval-request-cell{display:flex;align-items:flex-start;gap:.55rem}
.soc-approval-request-id{flex:0 0 auto;padding:.22rem .38rem;border-radius:6px;background:#F1F3F6;color:#788292;font-size:.56rem;font-weight:800}
.soc-approval-request-title,.soc-approval-request-reason{display:block}
.soc-approval-request-title{color:var(--soc-primary,#041E41);font-size:.68rem;font-weight:800}
.soc-approval-request-title:hover{color:var(--soc-accent,#BC6D24);text-decoration:none}
.soc-approval-request-reason{margin-top:.1rem;color:#8992A0;font-size:.59rem}
.soc-approval-status{display:inline-flex;align-items:center;padding:.3rem .5rem;border-radius:999px;font-size:.58rem;font-weight:800;white-space:nowrap}
.soc-approval-status--large{padding:.42rem .7rem;font-size:.65rem}
.soc-approval-status--success{background:#ECF8F0;color:#16743E}.soc-approval-status--danger{background:#FFF0EF;color:#B42318}.soc-approval-status--warning{background:#FFF7E5;color:#91630A}.soc-approval-status--info{background:#EEF5FF;color:#215F9B}.soc-approval-status--secondary{background:#F1F3F6;color:#697487}
.soc-approval-date strong,.soc-approval-date span{display:block}.soc-approval-date strong{font-size:.65rem}.soc-approval-date span{margin-top:.05rem;color:#929AA6;font-size:.57rem}
.soc-approval-list-card__footer{padding:.75rem 1rem;border-top:1px solid #EEF1F4;background:#FBFCFD}
.soc-approval-empty{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:2.5rem 1rem;color:#8B94A1;text-align:center}.soc-approval-empty i{color:#B4BCC7;font-size:1.7rem}.soc-approval-empty strong{color:#4C576A;font-size:.72rem}.soc-approval-empty span{font-size:.62rem}
.soc-approval-detail-card{overflow:hidden}.soc-approval-detail-card>.card-header{padding:.72rem .85rem;border-bottom:1px solid #EDF0F4;background:#fff!important;color:var(--soc-primary,#041E41);font-size:.7rem}.soc-approval-detail-card>.card-header strong{display:block;font-size:.72rem}.soc-approval-detail-card>.card-body{padding:.85rem}
.soc-approval-detail-card dt{padding-top:.23rem;padding-bottom:.23rem;color:#7A8492;font-size:.61rem;font-weight:700}.soc-approval-detail-card dd{padding-top:.23rem;padding-bottom:.23rem;color:#3F4A5C;font-size:.64rem}.soc-approval-detail-card textarea.form-control{border-color:#DDE3EA;border-radius:8px;font-size:.68rem}.soc-approval-detail-card .btn-block{border-radius:8px}
.soc-approval-timeline{position:relative;padding-left:1.15rem!important}.soc-approval-timeline:before{content:"";position:absolute;top:1rem;bottom:1rem;left:1.15rem;width:1px;background:#E1E6ED}
.soc-approval-timeline__item{position:relative;margin-left:.65rem;padding:.1rem 0 .85rem 1rem;border-bottom:1px solid #F0F2F5;color:#4A5567;font-size:.64rem}.soc-approval-timeline__item:last-child{padding-bottom:.1rem;border-bottom:0}.soc-approval-timeline__item:before{content:"";position:absolute;top:.34rem;left:-.84rem;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:var(--soc-accent,#BC6D24);box-shadow:0 0 0 1px #D8DEE6}
.soc-approval-completed{display:flex;align-items:center;gap:.6rem;padding:.75rem;border:1px solid #CBE8D5;border-radius:10px;background:#F0F9F3;color:#176B3A}.soc-approval-completed>i{font-size:1rem}.soc-approval-completed strong,.soc-approval-completed span{display:block}.soc-approval-completed strong{font-size:.67rem}.soc-approval-completed span{margin-top:.05rem;font-size:.59rem}
@media(max-width:767.98px){.soc-approval-page-header,.soc-approval-detail-header{flex-direction:column}.soc-approval-filter-actions{flex-direction:column}.soc-approval-filter-actions .btn{width:100%}.soc-approval-detail-meta{flex-direction:column;gap:.3rem}.soc-approval-status--large{align-self:flex-start}}


/* ==========================================================
   SOC UI — Phase 12J Financial Dashboard
   ========================================================== */

.soc-financial-dashboard,
.soc-financial-reconciliation {
    padding-top: 1.2rem;
    padding-bottom: 2.5rem;
}

.soc-financial-dashboard__header,
.soc-financial-reconciliation__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.soc-financial-dashboard__eyebrow {
    margin-bottom: .22rem;
    color: var(--soc-accent, #BC6D24);
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.soc-financial-dashboard__header h1,
.soc-financial-reconciliation__header h1 {
    margin: 0;
    color: var(--soc-primary, #041E41);
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.soc-financial-dashboard__header p,
.soc-financial-reconciliation__header p {
    margin: .28rem 0 0;
    color: #7B8594;
    font-size: .76rem;
}

.soc-financial-dashboard__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .4rem;
    flex-wrap: wrap;
}

.soc-financial-dashboard__actions .btn {
    border-radius: 8px;
}

.soc-financial-backlink {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .55rem;
    color: #687386;
    font-size: .68rem;
    font-weight: 700;
}

.soc-financial-backlink:hover {
    color: var(--soc-primary, #041E41);
    text-decoration: none;
}

/* Filter */
.soc-financial-filter-card {
    margin-bottom: 1rem !important;
    border: 1px solid #E6EAF0 !important;
    border-radius: 13px !important;
    background: #FFFFFF;
    box-shadow: 0 6px 18px rgba(4,30,65,.04) !important;
}

.soc-financial-filter-card .card-body {
    padding: .9rem 1rem .25rem;
}

.soc-financial-filter-card__title {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: .8rem;
}

.soc-financial-filter-card__title > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: rgba(188,109,36,.10);
    color: var(--soc-accent,#BC6D24);
}

.soc-financial-filter-card__title strong,
.soc-financial-filter-card__title span {
    display: block;
}

.soc-financial-filter-card__title strong {
    color: var(--soc-primary,#041E41);
    font-size: .72rem;
}

.soc-financial-filter-card__title span {
    margin-top: .05rem;
    color: #8B94A1;
    font-size: .6rem;
}

.soc-financial-filter-card label {
    margin-bottom: .3rem;
    color: #667085;
    font-size: .58rem !important;
    font-weight: 800 !important;
    letter-spacing: .025em;
}

.soc-financial-filter-card .form-control {
    min-height: 38px;
    border-color: #DDE3EA;
    border-radius: 8px;
    font-size: .7rem;
}

/* Primary KPI cards */
.soc-financial-kpi {
    overflow: hidden;
    border: 1px solid #E6EAF0 !important;
    border-left-width: 3px !important;
    border-radius: 12px !important;
    background: #FFFFFF;
    box-shadow: 0 5px 16px rgba(4,30,65,.035) !important;
}

.soc-financial-kpi--income { border-left-color: #16A34A !important; }
.soc-financial-kpi--expense { border-left-color: #DC2626 !important; }
.soc-financial-kpi--result,
.soc-financial-kpi--cash { border-left-color: #2563EB !important; }
.soc-financial-kpi--period { border-left-color: #0891B2 !important; }
.soc-financial-kpi--warning { border-left-color: #F59E0B !important; }

.soc-financial-kpi .card-body {
    padding: .85rem;
}

.soc-financial-kpi .text-xs {
    font-size: .57rem !important;
    letter-spacing: .03em;
}

.soc-financial-kpi .h5 {
    margin-top: .08rem;
    color: var(--soc-primary,#041E41) !important;
    font-size: 1rem;
    font-weight: 850 !important;
}

.soc-financial-kpi .fa-2x {
    font-size: 1.5rem;
    opacity: .5;
}

/* Secondary financial cards */
.soc-financial-balance-card,
.soc-financial-secondary-card,
.soc-financial-data-card,
.soc-financial-check-card {
    border: 1px solid #E6EAF0 !important;
    border-radius: 12px !important;
    background: #FFFFFF;
    box-shadow: 0 5px 16px rgba(4,30,65,.035) !important;
}

.soc-financial-balance-card {
    border-left: 3px solid #344054 !important;
}

.soc-financial-balance-card .card-body,
.soc-financial-secondary-card .card-body {
    padding: .85rem;
}

.soc-financial-secondary-card .card-header,
.soc-financial-data-card .card-header,
.soc-financial-check-card .card-header {
    padding: .7rem .85rem !important;
    border-bottom: 1px solid #EDF0F4;
    background: #FFFFFF;
}

.soc-financial-data-card .card-header h6,
.soc-financial-secondary-card .card-header h6 {
    font-size: .7rem;
    font-weight: 800 !important;
}

.soc-financial-data-card .table thead th,
.soc-financial-check-card .table thead th {
    padding: .58rem .65rem;
    border-top: 0;
    background: #F5F7FA;
    color: #596577;
    font-size: .56rem;
    font-weight: 800;
    text-transform: uppercase;
}

.soc-financial-data-card .table td,
.soc-financial-check-card .table td {
    padding: .62rem .65rem;
    border-top-color: #EEF1F4;
    font-size: .64rem;
    vertical-align: middle;
}

.soc-financial-data-card .table tfoot td {
    background: #FAFBFC;
    color: var(--soc-primary,#041E41);
    font-size: .63rem;
}

/* Reconciliation */
.soc-financial-reconciliation__header {
    margin-bottom: 1rem;
}

.soc-financial-check-card--info {
    border-left: 3px solid #2563EB !important;
}

.soc-financial-check-card > .card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--soc-primary,#041E41);
    font-size: .67rem;
    font-weight: 800;
}

.soc-financial-check-card > .card-body {
    padding: .75rem .85rem;
    font-size: .64rem;
}

.soc-financial-reconciliation > .alert {
    border: 0;
    border-radius: 10px;
    box-shadow: none !important;
    font-size: .65rem;
}

.soc-financial-diagnostic-note {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .75rem .85rem;
    border: 1px solid #CFE1F5;
    border-radius: 10px;
    background: #F4F8FD;
    color: #566377;
    font-size: .62rem;
    line-height: 1.5;
}

.soc-financial-diagnostic-note > i {
    margin-top: .08rem;
    color: #2563EB;
}

.soc-financial-diagnostic-note strong {
    color: #315A83;
}

/* Empty states */
.soc-financial-data-card td.text-muted.py-4 {
    color: #98A1AE !important;
    font-size: .63rem;
}

/* Informational methodology note */
.soc-financial-dashboard > .alert-info:last-of-type {
    border: 1px solid #CFE1F5;
    border-radius: 10px;
    background: #F4F8FD;
    color: #596679;
    box-shadow: none !important;
    font-size: .62rem;
    line-height: 1.5;
}

@media (max-width: 991.98px) {
    .soc-financial-dashboard__header,
    .soc-financial-reconciliation__header {
        flex-direction: column;
    }

    .soc-financial-dashboard__actions {
        justify-content: flex-start;
    }
}

@media (max-width: 767.98px) {
    .soc-financial-dashboard__actions {
        width: 100%;
    }

    .soc-financial-dashboard__actions > .btn,
    .soc-financial-dashboard__actions > .btn-group {
        flex: 1 1 auto;
    }

    .soc-financial-dashboard__actions > .btn {
        justify-content: center;
    }

    .soc-financial-dashboard__actions .btn-group .btn {
        flex: 1;
    }
}


/* ==========================================================
   SOC UI — Phase 12K Income transactions
   ========================================================== */

.soc-income-page {
    padding-top: 1.2rem;
    padding-bottom: 2.5rem;
}

.soc-income-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.soc-income-eyebrow,
.soc-income-card-kicker {
    display: block;
    margin-bottom: .22rem;
    color: var(--soc-accent,#BC6D24);
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .09em;
}

.soc-income-header h1 {
    margin: 0;
    color: var(--soc-primary,#041E41);
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.soc-income-header p {
    margin: .28rem 0 0;
    color: #7B8594;
    font-size: .76rem;
}

.soc-income-header__actions {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
}

.soc-income-filter-card,
.soc-income-list-card,
.soc-income-form-card,
.soc-income-detail-card,
.soc-income-hero-card {
    border: 1px solid #E6EAF0 !important;
    border-radius: 13px !important;
    background: #FFFFFF;
    box-shadow: 0 6px 18px rgba(4,30,65,.04) !important;
}

.soc-income-filter-card {
    margin-bottom: 1rem;
    padding: .9rem 1rem .2rem;
}

.soc-income-filter-card__title {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: .75rem;
}

.soc-income-filter-card__title > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: rgba(188,109,36,.10);
    color: var(--soc-accent,#BC6D24);
}

.soc-income-filter-card__title strong,
.soc-income-filter-card__title span {
    display: block;
}

.soc-income-filter-card__title strong {
    color: var(--soc-primary,#041E41);
    font-size: .72rem;
}

.soc-income-filter-card__title span {
    color: #8B94A1;
    font-size: .59rem;
}

.soc-income-filter-card .form-control,
.soc-income-form-card .form-control,
.soc-income-form-card .custom-select {
    min-height: 38px;
    border-color: #DDE3EA;
    border-radius: 8px;
    font-size: .7rem;
}

.soc-income-list-card {
    overflow: hidden;
}

.soc-income-list-card > .card-header,
.soc-income-form-card > .card-header,
.soc-income-detail-card > .card-header {
    padding: .78rem .9rem;
    border-bottom: 1px solid #EDF0F4;
    background: #FFFFFF;
}

.soc-income-list-card > .card-header h2,
.soc-income-form-card > .card-header h2,
.soc-income-detail-card > .card-header h2 {
    margin: 0;
    color: var(--soc-primary,#041E41);
    font-size: .82rem;
    font-weight: 800;
}

.soc-income-list-card > .card-header p,
.soc-income-form-card > .card-header p {
    margin: .12rem 0 0;
    color: #8B94A1;
    font-size: .6rem;
}

.soc-income-list-card .soc-table {
    margin-bottom: 0;
    table-layout: fixed;
    font-size: .66rem;
}

.soc-income-list-card .soc-table thead th {
    padding: .62rem .65rem;
    border-top: 0;
    background: #F5F7FA;
    color: #536074;
    font-size: .57rem;
    font-weight: 800;
    text-transform: uppercase;
}

.soc-income-list-card .soc-table td {
    padding: .62rem .65rem;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

.soc-income-list-card .soc-table th:nth-child(1){width:23%}
.soc-income-list-card .soc-table th:nth-child(2){width:15%}
.soc-income-list-card .soc-table th:nth-child(3){width:23%}
.soc-income-list-card .soc-table th:nth-child(4){width:20%}
.soc-income-list-card .soc-table th:nth-child(5){width:10%}
.soc-income-list-card .soc-table th:nth-child(6){width:9%}

.soc-income-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0 !important;
    border-radius: 8px !important;
}

.soc-income-pagination {
    padding: .75rem .9rem;
    border-top: 1px solid #EEF1F4;
    background: #FBFCFD;
}

.soc-income-workflow-note {
    display: flex;
    gap: .65rem;
    margin-bottom: 1rem;
    padding: .75rem .85rem;
    border: 1px solid #CFE4E8;
    border-radius: 11px;
    background: #EFF9FA;
    color: #416775;
}

.soc-income-workflow-note > span {
    display: inline-flex;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: #FFFFFF;
    color: #16859A;
}

.soc-income-workflow-note strong {
    display: block;
    color: #2D6070;
    font-size: .67rem;
}

.soc-income-workflow-note p {
    margin: .08rem 0 0;
    font-size: .61rem;
}

.soc-income-form-card {
    overflow: hidden;
}

.soc-income-form-card > .card-body {
    padding: 1rem;
}

.soc-income-type-picker {
    margin: 0 0 .8rem;
    padding: .7rem;
    border: 1px solid #EEF1F4;
    border-radius: 10px;
    background: #FAFBFC;
}

.soc-income-form-card .badge-light {
    display: block;
    width: 100%;
    padding: .45rem .55rem;
    border-radius: 8px;
    background: #F5F7FA;
    color: #3F4B5E;
    font-size: .68rem;
}

.soc-income-form-card .small.font-weight-bold.text-primary,
.soc-income-form-card .small.font-weight-bold.text-secondary {
    margin-top: .2rem;
    margin-bottom: .35rem;
    color: var(--soc-primary,#041E41) !important;
    font-size: .6rem;
    letter-spacing: .04em;
}

.soc-income-form-card .alert {
    border: 0;
    border-radius: 10px;
    box-shadow: none !important;
    font-size: .64rem;
}

.soc-income-hero-card {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 0;
    margin-bottom: 1rem;
    overflow: hidden;
}

.soc-income-hero-card > div {
    padding: .8rem .9rem;
    border-right: 1px solid #EEF1F4;
}

.soc-income-hero-card > div:last-child {
    border-right: 0;
}

.soc-income-hero-card span,
.soc-income-hero-card strong {
    display: block;
}

.soc-income-hero-card span {
    color: #8A93A1;
    font-size: .57rem;
    text-transform: uppercase;
    font-weight: 750;
}

.soc-income-hero-card strong {
    margin-top: .13rem;
    color: var(--soc-primary,#041E41);
    font-size: .8rem;
}

.soc-income-detail-card {
    overflow: hidden;
}

.soc-income-detail-card .card-body {
    padding: .85rem .9rem;
}

.soc-income-detail-card dl {
    display: grid;
    grid-template-columns: 45% 55%;
    margin: 0;
}

.soc-income-detail-card dt,
.soc-income-detail-card dd {
    margin: 0;
    padding: .3rem 0;
    border-bottom: 1px solid #F0F2F5;
    font-size: .64rem;
}

.soc-income-detail-card dt {
    color: #7C8695;
    font-weight: 700;
}

.soc-income-detail-card dd {
    color: #3F4A5D;
}

.soc-income-party-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: .8rem;
}

.soc-income-party-grid > div {
    min-width: 0;
}

.soc-income-party-grid span,
.soc-income-party-grid strong {
    display: block;
}

.soc-income-party-grid span {
    margin-bottom: .12rem;
    color: #8B94A1;
    font-size: .58rem;
}

.soc-income-party-grid strong {
    overflow-wrap: anywhere;
    color: #3E4A5D;
    font-size: .66rem;
}

.soc-income-party-grid__wide {
    grid-column: span 2;
}

@media(max-width:991.98px){
    .soc-income-header{flex-direction:column}
    .soc-income-header__actions{width:100%}
    .soc-income-hero-card{grid-template-columns:repeat(2,minmax(0,1fr))}
    .soc-income-list-card .soc-table{min-width:920px}
    .soc-income-party-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:575.98px){
    .soc-income-hero-card{grid-template-columns:1fr}
    .soc-income-hero-card>div{border-right:0;border-bottom:1px solid #EEF1F4}
    .soc-income-party-grid{grid-template-columns:1fr}
    .soc-income-party-grid__wide{grid-column:auto}
}


/* ==========================================================
   SOC UI — Phase 12L Expense transactions
   ========================================================== */
.soc-expense-page{padding-top:1.2rem;padding-bottom:2.5rem}
.soc-expense-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.soc-expense-eyebrow,.soc-expense-card-kicker{display:block;margin-bottom:.22rem;color:var(--soc-accent,#BC6D24);font-size:.62rem;font-weight:850;letter-spacing:.09em}
.soc-expense-header h1{margin:0;color:var(--soc-primary,#041E41);font-size:1.55rem;font-weight:800;letter-spacing:-.02em}
.soc-expense-header p{margin:.28rem 0 0;color:#7B8594;font-size:.76rem}
.soc-expense-header__actions{display:flex;gap:.4rem;flex-wrap:wrap}

.soc-expense-filter-card,.soc-expense-list-card,.soc-expense-form-card,.soc-expense-detail-card,.soc-expense-payments-card,.soc-expense-hero-card{border:1px solid #E6EAF0!important;border-radius:13px!important;background:#fff;box-shadow:0 6px 18px rgba(4,30,65,.04)!important}
.soc-expense-filter-card .card-body{padding:.9rem 1rem .25rem}
.soc-expense-filter-card__title{display:flex;align-items:center;gap:.55rem;margin-bottom:.8rem}
.soc-expense-filter-card__title>i{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:rgba(188,109,36,.10);color:var(--soc-accent,#BC6D24)}
.soc-expense-filter-card__title strong,.soc-expense-filter-card__title span{display:block}
.soc-expense-filter-card__title strong{color:var(--soc-primary,#041E41);font-size:.72rem}
.soc-expense-filter-card__title span{color:#8B94A1;font-size:.59rem}
.soc-expense-filter-card label{margin-bottom:.3rem;color:#667085;font-size:.58rem!important;font-weight:800!important}
.soc-expense-filter-card .form-control{min-height:38px;border-color:#DDE3EA;border-radius:8px;font-size:.68rem}

.soc-expense-list-card{overflow:hidden}
.soc-expense-list-card>.card-header,.soc-expense-form-card>.card-header,.soc-expense-detail-card>.card-header,.soc-expense-payments-card>.card-header{padding:.78rem .9rem;border-bottom:1px solid #EDF0F4;background:#fff}
.soc-expense-list-card>.card-header h2,.soc-expense-form-card>.card-header h2,.soc-expense-detail-card>.card-header h2,.soc-expense-payments-card>.card-header h2{margin:0;color:var(--soc-primary,#041E41);font-size:.82rem;font-weight:800}
.soc-expense-list-card>.card-header p,.soc-expense-form-card>.card-header p{margin:.12rem 0 0;color:#8B94A1;font-size:.6rem}
.soc-expense-list-card .soc-table{margin-bottom:0;table-layout:fixed;font-size:.65rem}
.soc-expense-list-card .soc-table thead th{padding:.6rem .62rem;border-top:0;background:#F5F7FA;color:#536074;font-size:.56rem;font-weight:800;text-transform:uppercase}
.soc-expense-list-card .soc-table td{padding:.58rem .62rem;vertical-align:middle;overflow-wrap:anywhere}
.soc-expense-list-card .soc-table th:nth-child(1){width:22%}.soc-expense-list-card .soc-table th:nth-child(2){width:20%}.soc-expense-list-card .soc-table th:nth-child(3){width:23%}.soc-expense-list-card .soc-table th:nth-child(4){width:12%}.soc-expense-list-card .soc-table th:nth-child(5){width:12%}.soc-expense-list-card .soc-table th:nth-child(6){width:11%}
.soc-expense-action{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 .45rem!important;border-radius:8px!important}
.soc-expense-action--payment{min-width:auto;padding:0 .55rem!important}

.soc-expense-form-card{overflow:hidden}
.soc-expense-form-card>.card-body{padding:1rem}
.soc-expense-form-card .form-control,.soc-expense-form-card .custom-select{min-height:38px;border-color:#DDE3EA;border-radius:8px;font-size:.7rem}
.soc-expense-workflow-note{display:flex;gap:.65rem;margin-bottom:1rem;padding:.75rem .85rem;border:1px solid #CFE4E8;border-radius:11px;background:#EFF9FA;color:#416775;font-size:.62rem}
.soc-expense-workflow-note>span{display:inline-flex;flex:0 0 34px;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:#fff;color:#16859A}
.soc-expense-workflow-note strong{display:block;color:#2D6070;font-size:.67rem}
.soc-expense-workflow-note p{margin:.08rem 0 0}
.soc-expense-payment-card{border:1px solid #CFE1F5!important;border-radius:11px!important;box-shadow:none!important}
.soc-expense-payment-card>.card-header{padding:.7rem .85rem;border-bottom:1px solid #E6EDF5;background:#F7FAFD!important;color:var(--soc-primary,#041E41);font-size:.7rem}
.soc-expense-payment-card>.card-body{padding:.85rem}

.soc-expense-hero-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1rem;overflow:hidden}
.soc-expense-hero-card>div{padding:.8rem .9rem;border-right:1px solid #EEF1F4}
.soc-expense-hero-card>div:last-child{border-right:0}
.soc-expense-hero-card span,.soc-expense-hero-card strong{display:block}
.soc-expense-hero-card span{color:#8A93A1;font-size:.57rem;text-transform:uppercase;font-weight:750}
.soc-expense-hero-card strong{margin-top:.13rem;color:var(--soc-primary,#041E41);font-size:.8rem}

.soc-expense-detail-card{overflow:hidden}
.soc-expense-detail-card .card-body{padding:.85rem .9rem}
.soc-expense-detail-card dl{display:grid;grid-template-columns:45% 55%;margin:0}
.soc-expense-detail-card dt,.soc-expense-detail-card dd{margin:0;padding:.3rem 0;border-bottom:1px solid #F0F2F5;font-size:.64rem}
.soc-expense-detail-card dt{color:#7C8695;font-weight:700}.soc-expense-detail-card dd{color:#3F4A5D}
.soc-expense-supplier strong,.soc-expense-supplier span{display:block}.soc-expense-supplier strong{margin-bottom:.25rem;color:var(--soc-primary,#041E41);font-size:.7rem}.soc-expense-supplier span{margin-bottom:.16rem;color:#596579;font-size:.63rem}.soc-expense-supplier hr{margin:.55rem 0;border-color:#EEF1F4}

.soc-expense-payments-card{overflow:hidden}
.soc-expense-payments-card>.card-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem}
.soc-expense-payments-card>.card-body{padding:.9rem}
.soc-expense-payment-callout{margin-bottom:.75rem;padding:.7rem .8rem;border:1px solid #CBE8D5;border-radius:10px;background:#F0F9F3;color:#176B3A;font-size:.64rem}
.soc-expense-new-payment-form{padding:.8rem;border:1px solid #E5EAF0;border-radius:10px;background:#FAFBFC}
.soc-expense-new-payment-form label{color:#667085;font-size:.59rem;font-weight:750}
.soc-expense-new-payment-form .form-control{min-height:38px;border-color:#DDE3EA;border-radius:8px;font-size:.68rem}
.soc-expense-payments-card .table thead th{padding:.58rem .62rem;border-top:0;background:#F5F7FA;color:#596577;font-size:.55rem;font-weight:800;text-transform:uppercase}
.soc-expense-payments-card .table td{padding:.6rem .62rem;border-top-color:#EEF1F4;font-size:.63rem;vertical-align:middle}

.soc-expense-modal-content{overflow:hidden;border:0!important;border-radius:14px!important;box-shadow:0 18px 55px rgba(4,30,65,.18)!important}
.soc-expense-modal-content .modal-header{align-items:flex-start;padding:.85rem 1rem;border-bottom:1px solid #EDF0F4}
.soc-expense-modal-content .modal-title{color:var(--soc-primary,#041E41);font-size:.9rem;font-weight:800}
.soc-expense-modal-subtitle{margin-top:.1rem;color:#8B94A1;font-size:.6rem}
.soc-expense-modal-content .modal-body{padding:1rem}
.soc-expense-modal-content .modal-footer{padding:.75rem 1rem;border-top:1px solid #EDF0F4;background:#FBFCFD}
.soc-expense-modal-content .form-control,.soc-expense-modal-content .custom-select{min-height:38px;border-color:#DDE3EA;border-radius:8px;font-size:.68rem}

@media(max-width:991.98px){
  .soc-expense-header{flex-direction:column}
  .soc-expense-list-card .soc-table{min-width:960px}
  .soc-expense-hero-card{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:575.98px){
  .soc-expense-header__actions{width:100%}
  .soc-expense-hero-card{grid-template-columns:1fr}
  .soc-expense-hero-card>div{border-right:0;border-bottom:1px solid #EEF1F4}
}


/* ==========================================================
   SOC UI — Phase 12M Shared Pagination
   /news + /users/members
   ========================================================== */

.soc-pagination-bar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 58px;
    padding: .75rem 1rem !important;
    border-top: 1px solid #E8ECF1 !important;
    background: #FBFCFD !important;
}

.soc-pagination-bar nav {
    display: flex;
    align-items: center;
    width: 100%;
}

.soc-pagination-bar .pagination {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    margin: 0 !important;
    padding: .28rem;
    border: 1px solid #E2E7ED;
    border-radius: 11px;
    background: #FFFFFF;
    box-shadow: 0 2px 7px rgba(4, 30, 65, .035);
}

.soc-pagination-bar .page-item {
    margin: 0 !important;
}

.soc-pagination-bar .page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    margin: 0 !important;
    padding: 0 .55rem;
    border: 1px solid transparent !important;
    border-radius: 8px !important;
    background: transparent;
    color: #697588;
    font-size: .68rem;
    font-weight: 750;
    line-height: 1;
    box-shadow: none !important;
    transition:
        color .15s ease,
        background-color .15s ease,
        border-color .15s ease,
        transform .15s ease;
}

.soc-pagination-bar .page-link:hover {
    border-color: #E3E8EE !important;
    background: #F3F5F8;
    color: var(--soc-primary, #041E41);
    text-decoration: none;
}

.soc-pagination-bar .page-link:focus {
    border-color: rgba(188, 109, 36, .45) !important;
    box-shadow: 0 0 0 3px rgba(188, 109, 36, .10) !important;
    color: var(--soc-primary, #041E41);
}

.soc-pagination-bar .page-item.active .page-link {
    border-color: var(--soc-accent, #BC6D24) !important;
    background: var(--soc-accent, #BC6D24) !important;
    color: #FFFFFF !important;
    box-shadow: 0 3px 8px rgba(188, 109, 36, .18) !important;
}

.soc-pagination-bar .page-item.active .page-link:hover {
    background: #A95F1E !important;
    border-color: #A95F1E !important;
    color: #FFFFFF !important;
}

.soc-pagination-bar .page-item.disabled .page-link {
    border-color: transparent !important;
    background: transparent !important;
    color: #C1C7D0 !important;
    cursor: default;
    opacity: 1;
}

.soc-pagination-bar .page-item:first-child .page-link,
.soc-pagination-bar .page-item:last-child .page-link {
    min-width: 36px;
    color: var(--soc-primary, #041E41);
    font-size: .78rem;
}

.soc-pagination-bar .page-item.disabled:first-child .page-link,
.soc-pagination-bar .page-item.disabled:last-child .page-link {
    color: #C1C7D0 !important;
}

/*
 * Laravel pagination views may render a small result summary.
 * Keep it visually secondary when present.
 */
.soc-pagination-bar nav > div:first-child:not(:last-child),
.soc-pagination-bar .small.text-muted {
    color: #8B94A1 !important;
    font-size: .61rem;
}

/* Bootstrap/Laravel responsive pagination wrapper */
.soc-pagination-bar nav > div:last-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
}

.soc-pagination-bar nav > div:last-child > div:last-child {
    margin-left: auto;
}

@media (max-width: 767.98px) {
    .soc-pagination-bar {
        min-height: 54px;
        padding: .65rem .75rem !important;
        overflow-x: auto;
    }

    .soc-pagination-bar nav,
    .soc-pagination-bar nav > div:last-child {
        min-width: max-content;
    }

    .soc-pagination-bar .pagination {
        gap: .2rem;
        padding: .22rem;
    }

    .soc-pagination-bar .page-link {
        min-width: 31px;
        height: 31px;
        padding: 0 .42rem;
        font-size: .64rem;
    }
}


/* ==========================================================
   SOC UI — Phase 12M.1 Financial list pagination
   /transactions_in + /transactions_out
   ========================================================== */

.soc-income-pagination.soc-pagination-bar,
.soc-expense-pagination.soc-pagination-bar {
    justify-content: space-between;
    gap: 1rem;
    margin: 0;
    min-height: 60px;
    padding: .72rem .9rem !important;
}

.soc-pagination-summary {
    flex: 0 0 auto;
    color: #7F8998;
    font-size: .62rem;
    line-height: 1.35;
    white-space: nowrap;
}

.soc-pagination-links {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
}

.soc-pagination-links nav {
    width: auto;
}

.soc-pagination-links nav > div {
    width: auto !important;
}

.soc-pagination-links nav > div:first-child:not(:last-child) {
    display: none;
}

.soc-pagination-links nav > div:last-child {
    width: auto !important;
}

.soc-pagination-links nav > div:last-child > div:first-child {
    display: none;
}

.soc-pagination-links nav > div:last-child > div:last-child {
    margin-left: 0 !important;
}

.soc-income-pagination {
    border-top: 1px solid #E8ECF1;
}

.soc-expense-pagination {
    margin-top: 0 !important;
    border-top: 1px solid #E8ECF1 !important;
}

.soc-expense-list-card .card-body > .table-responsive + .soc-expense-pagination {
    margin-top: 0 !important;
}

.soc-pagination-bar--single {
    justify-content: flex-start !important;
}

@media (max-width: 767.98px) {
    .soc-income-pagination.soc-pagination-bar,
    .soc-expense-pagination.soc-pagination-bar {
        align-items: flex-start;
        flex-direction: column;
        gap: .55rem;
    }

    .soc-pagination-links {
        justify-content: flex-start;
        width: 100%;
        margin-left: 0;
        overflow-x: auto;
        padding-bottom: .1rem;
    }

    .soc-pagination-summary {
        white-space: normal;
    }
}


/* ==========================================================
   SOC UI — Phase 12N Member Obligations
   ========================================================== */

.soc-obligations-page,.soc-obligation-audit-page{padding-top:1.2rem;padding-bottom:2.5rem}
.soc-obligations-header,.soc-obligation-audit-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.8rem}
.soc-obligations-eyebrow{margin-bottom:.22rem;color:var(--soc-accent,#BC6D24);font-size:.62rem;font-weight:850;letter-spacing:.09em}
.soc-obligations-header h1,.soc-obligation-audit-header h1{margin:0;color:var(--soc-primary,#041E41);font-size:1.55rem;font-weight:800;letter-spacing:-.02em}
.soc-obligations-header p,.soc-obligation-audit-header p{margin:.28rem 0 0;color:#7B8594;font-size:.76rem}
.soc-obligations-header__actions{display:flex;gap:.4rem;flex-wrap:wrap}
.soc-obligations-default-note{display:flex;align-items:center;gap:.45rem;margin-bottom:1rem;color:#718094;font-size:.62rem}.soc-obligations-default-note i{color:var(--soc-accent,#BC6D24)}

.soc-obligations-filter-card,.soc-obligations-list-card,.soc-obligation-kpi,.soc-obligation-audit-kpi,.soc-obligation-findings-card{border:1px solid #E6EAF0!important;border-radius:13px!important;background:#fff;box-shadow:0 6px 18px rgba(4,30,65,.04)!important}
.soc-obligations-filter-card>.card-header{padding:.75rem .9rem;border-bottom:1px solid #EDF0F4;background:#fff}.soc-obligations-filter-card>.card-body{padding:.9rem}
.soc-obligations-filter-title{display:flex;align-items:center;gap:.55rem}.soc-obligations-filter-title>i{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:rgba(188,109,36,.10);color:var(--soc-accent,#BC6D24)}
.soc-obligations-filter-title strong,.soc-obligations-filter-title span{display:block}.soc-obligations-filter-title strong{color:var(--soc-primary,#041E41);font-size:.72rem}.soc-obligations-filter-title span{margin-top:.05rem;color:#8B94A1;font-size:.59rem}
.soc-obligations-filter-card label{margin-bottom:.28rem;color:#667085;font-size:.58rem;font-weight:800}.soc-obligations-filter-card .form-control{min-height:38px;border-color:#DDE3EA;border-radius:8px;font-size:.68rem}

.soc-obligation-kpi{min-height:86px;overflow:hidden;border-left-width:3px!important}.soc-obligation-kpi--count{border-left-color:#2563EB!important}.soc-obligation-kpi--charge{border-left-color:#041E41!important}.soc-obligation-kpi--settled{border-left-color:#16A34A!important}.soc-obligation-kpi--remaining{border-left-color:#DC2626!important}
.soc-obligation-kpi .card-body{padding:.8rem .9rem!important}.soc-obligation-kpi .small{color:#7A8493!important;font-size:.59rem!important;font-weight:750}.soc-obligation-kpi .h5{margin-top:.14rem;color:var(--soc-primary,#041E41);font-size:1rem;font-weight:850}

.soc-obligations-list-card{overflow:hidden}.soc-obligations-table{min-width:1120px}.soc-obligations-table thead th{padding:.58rem .62rem;border-top:0;background:#F5F7FA;color:#536074;font-size:.55rem;font-weight:800;text-transform:uppercase;white-space:nowrap}.soc-obligations-table td{padding:.58rem .62rem;border-top-color:#EEF1F4;color:#465164;font-size:.62rem;vertical-align:middle}
.soc-obligation-status{display:inline-flex;align-items:center;padding:.28rem .48rem;border-radius:999px;font-size:.56rem;font-weight:800;white-space:nowrap}.soc-obligation-status--success{background:#ECF8F0;color:#16743E}.soc-obligation-status--danger{background:#FFF0EF;color:#B42318}.soc-obligation-status--warning{background:#FFF7E5;color:#91630A}.soc-obligation-status--info{background:#EEF5FF;color:#215F9B}.soc-obligation-status--secondary{background:#F1F3F6;color:#697487}.soc-obligation-view-btn{border-radius:8px!important}

.soc-obligations-pagination{margin-top:0!important;border:1px solid #E6EAF0;border-top:0!important;border-radius:0 0 13px 13px;background:#FBFCFD!important}

.soc-obligation-audit-intro{display:flex;align-items:flex-start;gap:.7rem;padding:.85rem 1rem;border:1px solid #CFE4E8;border-radius:11px;background:#EFF9FA;color:#416775;font-size:.63rem;line-height:1.48}.soc-obligation-audit-intro .fa-info-circle{margin-top:.1rem;color:#16859A}.soc-obligation-audit-intro__title{display:block;margin-bottom:.15rem;color:#2D6070;font-size:.7rem;font-weight:800}.soc-obligation-audit-intro p{margin-bottom:.45rem!important}.soc-obligation-audit-intro ul{margin-bottom:.25rem!important}
.soc-obligation-audit-kpi{min-height:94px;border-left-width:3px!important}.soc-obligation-audit-kpi--warning{border-left-color:#F59E0B!important}.soc-obligation-audit-kpi--danger{border-left-color:#DC2626!important}.soc-obligation-audit-kpi--info{border-left-color:#0891B2!important}.soc-obligation-audit-kpi .card-body{padding:.85rem .9rem}.soc-obligation-audit-kpi .text-xs{font-size:.56rem!important;letter-spacing:.025em}.soc-obligation-audit-kpi .h4{color:var(--soc-primary,#041E41);font-size:1rem;font-weight:850}.soc-obligation-audit-kpi .small{color:#8B94A1!important;font-size:.57rem}
.soc-obligation-findings-card{overflow:hidden}.soc-obligation-findings-card>.card-header{padding:.72rem .85rem;border-bottom:1px solid #EDF0F4;background:#fff!important;color:var(--soc-primary,#041E41);font-size:.68rem}.soc-obligation-findings-card .table thead th{padding:.58rem .62rem;border-top:0;background:#F5F7FA;color:#596577;font-size:.55rem;font-weight:800;text-transform:uppercase}.soc-obligation-findings-card .table td{padding:.6rem .62rem;border-top-color:#EEF1F4;font-size:.63rem;vertical-align:middle}
.soc-obligation-clean-state{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem;padding:.75rem .85rem;border:1px solid #CBE8D5;border-radius:10px;background:#F0F9F3;color:#176B3A}.soc-obligation-clean-state>i{font-size:1rem}.soc-obligation-clean-state strong,.soc-obligation-clean-state span{display:block}.soc-obligation-clean-state strong{font-size:.67rem}.soc-obligation-clean-state span{margin-top:.04rem;font-size:.59rem}
.soc-obligation-audit-note{padding:.65rem .8rem;border:1px solid #E5E9EE;border-radius:9px;background:#FAFBFC;color:#778191;font-size:.58rem}

@media(max-width:991.98px){.soc-obligations-header,.soc-obligation-audit-header{flex-direction:column}.soc-obligations-header__actions{width:100%}}


/* ==========================================================
   SOC UI — Phase 12O Financial Periods
   ========================================================== */
.soc-period-page{
    padding-top:1.15rem;
    padding-bottom:2.5rem;
}
.soc-period-page .soc-page-head__title,
.soc-period-page h1.h3,
.soc-period-page h1.h4{
    color:var(--soc-primary,#041E41)!important;
    font-weight:800!important;
    letter-spacing:-.02em;
}
.soc-period-page .soc-page-head__title{
    font-size:1.5rem!important;
}
.soc-period-eyebrow{
    margin-bottom:.22rem;
    color:var(--soc-accent,#BC6D24);
    font-size:.61rem;
    font-weight:850;
    letter-spacing:.09em;
}
.soc-period-page .text-muted{
    color:#7C8797!important;
}
.soc-period-page > .d-flex:first-of-type{
    gap:1rem;
}

/* shared surfaces */
.soc-period-page .soc-period-panel,
.soc-period-page .soc-period-component,
.soc-period-page .card{
    border-color:#E5EAF0;
    border-radius:12px;
}
.soc-period-page .soc-period-panel,
.soc-period-page .soc-period-kpi{
    box-shadow:0 6px 18px rgba(4,30,65,.04)!important;
}
.soc-period-page .soc-period-card-header,
.soc-period-page .card > .card-header{
    padding:.72rem .85rem;
    border-bottom:1px solid #EBEFF3;
    background:#FFF!important;
    color:var(--soc-primary,#041E41);
    font-size:.68rem;
    font-weight:800;
}
.soc-period-page .card-body{
    color:#465164;
}
.soc-period-page .card-body label{
    color:#657184;
    font-size:.61rem;
    font-weight:750;
}
.soc-period-page .form-control,
.soc-period-page .custom-select{
    min-height:37px;
    border-color:#DDE3EA;
    border-radius:8px;
    font-size:.67rem;
}
.soc-period-page textarea.form-control{
    min-height:auto;
}

/* KPI cards */
.soc-period-page .soc-period-kpi,
.soc-period-page .row > [class*="col-"] > .card.h-100{
    min-height:88px;
    overflow:hidden;
    border:1px solid #E6EAF0!important;
    border-left-width:3px!important;
    background:#FFF;
}
.soc-period-page .soc-period-kpi--primary{border-left-color:#2563EB!important}
.soc-period-page .soc-period-kpi--success{border-left-color:#16A34A!important}
.soc-period-page .soc-period-kpi--danger{border-left-color:#DC2626!important}
.soc-period-page .soc-period-kpi--warning{border-left-color:#F59E0B!important}
.soc-period-page .soc-period-kpi--info{border-left-color:#0891B2!important}
.soc-period-page .soc-period-kpi--neutral{border-left-color:#64748B!important}
.soc-period-page .soc-period-kpi .card-body,
.soc-period-page .row > [class*="col-"] > .card.h-100 .card-body{
    padding:.78rem .88rem;
}
.soc-period-page .soc-period-kpi .small,
.soc-period-page .row > [class*="col-"] > .card.h-100 .small{
    color:#7E8897!important;
    font-size:.57rem!important;
    font-weight:750;
}
.soc-period-page .soc-period-kpi .h4,
.soc-period-page .soc-period-kpi .h5,
.soc-period-page .row > [class*="col-"] > .card.h-100 .h4,
.soc-period-page .row > [class*="col-"] > .card.h-100 .h5{
    margin-top:.12rem;
    color:var(--soc-primary,#041E41);
    font-size:.98rem;
    font-weight:850;
}

/* alerts */
.soc-period-page .soc-period-alert,
.soc-period-page .alert{
    border-radius:10px;
    border-width:1px;
    box-shadow:none!important;
    font-size:.63rem;
    line-height:1.45;
}
.soc-period-page .alert-info{
    border-color:#CFE4E8;
    background:#EFF9FA;
    color:#416775;
}
.soc-period-page .alert-success{
    border-color:#CBE8D5;
    background:#F0F9F3;
    color:#176B3A;
}
.soc-period-page .alert-warning{
    border-color:#F5DFA5;
    background:#FFF8E8;
    color:#7D5B0B;
}
.soc-period-page .alert-danger{
    border-color:#F1CBC8;
    background:#FFF1F0;
    color:#9F332B;
}

/* period cards */
.soc-period-page .border-success{border-color:#A9DDBB!important}
.soc-period-page .border-danger{border-color:#EAB9B5!important}
.soc-period-page .border-warning{border-color:#EED18A!important}
.soc-period-page .badge{
    padding:.3rem .48rem;
    border-radius:999px;
    font-size:.52rem;
    font-weight:800;
}
.soc-period-page .btn{
    border-radius:8px;
    font-size:.62rem;
    font-weight:750;
}
.soc-period-page .btn-sm{
    min-height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}

/* tables */
.soc-period-page .table-responsive{
    border-radius:0 0 12px 12px;
}
.soc-period-page .soc-period-table,
.soc-period-page .soc-table{
    margin-bottom:0;
    color:#465164;
    font-size:.61rem;
}
.soc-period-page .soc-period-table thead th,
.soc-period-page .soc-table thead th{
    padding:.58rem .62rem;
    border-top:0;
    border-bottom:1px solid #E4E9EF;
    background:#F5F7FA!important;
    color:#536074;
    font-size:.54rem;
    font-weight:800;
    text-transform:uppercase;
    vertical-align:middle;
}
.soc-period-page .soc-period-table tbody td,
.soc-period-page .soc-table tbody td{
    padding:.57rem .62rem;
    border-top-color:#EEF1F4;
    vertical-align:middle;
}
.soc-period-page .soc-period-table tbody tr:hover,
.soc-period-page .soc-table tbody tr:hover{
    background:#FAFBFC;
}

/* main index: annual/month cards and activity panel */
.soc-period-page .row .card.border-success,
.soc-period-page .row .card.border-danger{
    box-shadow:0 3px 12px rgba(4,30,65,.035);
}
.soc-period-page .card.border-success .card-body,
.soc-period-page .card.border-danger .card-body{
    padding:.8rem .9rem;
}
.soc-period-page .card.border-success:hover,
.soc-period-page .card.border-danger:hover{
    transform:translateY(-1px);
    transition:transform .15s ease,box-shadow .15s ease;
    box-shadow:0 7px 18px rgba(4,30,65,.055);
}

/* technical/admin sections */
.soc-period-page details{
    border:1px solid #E4E9EF;
    border-radius:9px;
    background:#FAFBFC;
}
.soc-period-page details summary{
    padding:.65rem .75rem;
    color:#596579;
    font-size:.61rem;
    font-weight:750;
    cursor:pointer;
}
.soc-period-page details[open] summary{
    border-bottom:1px solid #E8ECF1;
}

/* form/action strips */
.soc-period-page form .btn + .btn,
.soc-period-page .d-flex .btn + .btn{
    margin-left:.3rem;
}
.soc-period-page .input-group-text{
    border-color:#DDE3EA;
    background:#F7F9FB;
    color:#6C788A;
    font-size:.62rem;
}

/* mobile */
@media(max-width:991.98px){
    .soc-period-page > .d-flex:first-of-type{
        flex-direction:column;
        align-items:flex-start!important;
    }
    .soc-period-page .table-responsive{
        overflow-x:auto;
    }
}


/* ==========================================================
   SOC UI — Phase 12O.1
   Legacy /financial-periods/audit visual correction
   Scoped through its unique CSV export route so no other page changes.
   ========================================================== */

body:has(a[href*="/financial-periods/audit/export"]) #content .container-fluid {
    padding-top: 1.15rem !important;
    padding-right: 1.25rem !important;
    padding-bottom: 2.5rem !important;
    padding-left: 1.25rem !important;
}

/* Page heading */
body:has(a[href*="/financial-periods/audit/export"]) #content .container-fluid > .d-flex:first-child {
    align-items: flex-start !important;
    gap: 1rem;
    margin-bottom: 1rem !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content h1,
body:has(a[href*="/financial-periods/audit/export"]) #content .h3 {
    margin-bottom: .22rem !important;
    color: var(--soc-primary, #041E41) !important;
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    line-height: 1.18 !important;
    letter-spacing: -.02em;
}

body:has(a[href*="/financial-periods/audit/export"]) #content h1 + p,
body:has(a[href*="/financial-periods/audit/export"]) #content .h3 + p {
    color: #7B8594 !important;
    font-size: .75rem !important;
}

/* Header buttons */
body:has(a[href*="/financial-periods/audit/export"]) a[href*="/financial-periods/audit/export"],
body:has(a[href*="/financial-periods/audit/export"]) a[href*="/financial-periods"]:not([href*="/audit/export"]) {
    min-height: 34px;
    border-radius: 8px !important;
    font-size: .64rem !important;
    font-weight: 750;
}

/* Cards */
body:has(a[href*="/financial-periods/audit/export"]) #content .card {
    border: 1px solid #E5EAF0 !important;
    border-radius: 12px !important;
    background: #FFFFFF;
    box-shadow: 0 6px 18px rgba(4,30,65,.04) !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content .card-header {
    min-height: 46px;
    padding: .72rem .9rem !important;
    border-bottom: 1px solid #E9EDF2 !important;
    background: #FFFFFF !important;
    color: var(--soc-primary, #041E41) !important;
    font-size: .72rem !important;
    font-weight: 800 !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content .card-body {
    padding: .9rem !important;
}

/* Filter form */
body:has(a[href*="/financial-periods/audit/export"]) #content form[action*="/financial-periods/audit"] {
    margin: 0;
}

body:has(a[href*="/financial-periods/audit/export"]) #content form[action*="/financial-periods/audit"] label {
    margin-bottom: .3rem !important;
    color: #5E6A7C !important;
    font-size: .62rem !important;
    font-weight: 800 !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content form[action*="/financial-periods/audit"] .form-control,
body:has(a[href*="/financial-periods/audit/export"]) #content form[action*="/financial-periods/audit"] select,
body:has(a[href*="/financial-periods/audit/export"]) #content form[action*="/financial-periods/audit"] input {
    min-height: 39px !important;
    padding: .48rem .66rem !important;
    border: 1px solid #DDE3EA !important;
    border-radius: 8px !important;
    background: #FFFFFF !important;
    color: #344054 !important;
    font-size: .68rem !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content form[action*="/financial-periods/audit"] .btn {
    min-height: 36px;
    border-radius: 8px !important;
    font-size: .64rem !important;
    font-weight: 750 !important;
}

/* Main audit table */
body:has(a[href*="/financial-periods/audit/export"]) #content .table-responsive {
    overflow-x: auto;
}

body:has(a[href*="/financial-periods/audit/export"]) #content table {
    min-width: 1120px;
    margin-bottom: 0 !important;
    color: #465164 !important;
    font-size: .66rem !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content table thead th {
    padding: .65rem .7rem !important;
    border-top: 0 !important;
    border-bottom: 1px solid #E2E7ED !important;
    background: #F5F7FA !important;
    color: #536074 !important;
    font-size: .57rem !important;
    font-weight: 850 !important;
    line-height: 1.25;
    text-transform: uppercase;
    white-space: nowrap;
}

body:has(a[href*="/financial-periods/audit/export"]) #content table tbody td {
    padding: .62rem .7rem !important;
    border-top: 1px solid #EEF1F4 !important;
    color: #465164 !important;
    font-size: .65rem !important;
    line-height: 1.38 !important;
    vertical-align: middle !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content table tbody tr:hover {
    background: #FAFBFC !important;
}

/* Period links */
body:has(a[href*="/financial-periods/audit/export"]) #content table a {
    font-weight: 700;
}

/* Event badges */
body:has(a[href*="/financial-periods/audit/export"]) #content table .badge {
    display: inline-flex;
    align-items: center;
    min-height: 23px;
    padding: .28rem .48rem !important;
    border-radius: 999px !important;
    font-size: .54rem !important;
    font-weight: 800 !important;
    white-space: nowrap;
}

/* User / secondary text */
body:has(a[href*="/financial-periods/audit/export"]) #content table small,
body:has(a[href*="/financial-periods/audit/export"]) #content table .small,
body:has(a[href*="/financial-periods/audit/export"]) #content table .text-muted {
    color: #8A94A3 !important;
    font-size: .57rem !important;
}

/* Pagination */
body:has(a[href*="/financial-periods/audit/export"]) #content .pagination {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    margin: .8rem 0 0 !important;
    padding: .26rem;
    border: 1px solid #E2E7ED;
    border-radius: 10px;
    background: #FFFFFF;
}

body:has(a[href*="/financial-periods/audit/export"]) #content .page-item {
    margin: 0 !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content .page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 33px;
    height: 33px;
    padding: 0 .5rem !important;
    border: 1px solid transparent !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: #667085 !important;
    font-size: .65rem !important;
    font-weight: 750 !important;
    box-shadow: none !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content .page-link:hover {
    border-color: #E3E8EE !important;
    background: #F3F5F8 !important;
    color: var(--soc-primary, #041E41) !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content .page-item.active .page-link {
    border-color: var(--soc-accent, #BC6D24) !important;
    background: var(--soc-accent, #BC6D24) !important;
    color: #FFFFFF !important;
}

body:has(a[href*="/financial-periods/audit/export"]) #content .page-item.disabled .page-link {
    color: #C1C7D0 !important;
    background: transparent !important;
}

/* Give the results card breathing room */
body:has(a[href*="/financial-periods/audit/export"]) #content .card + .card {
    margin-top: 1rem;
}

@media (max-width: 991.98px) {
    body:has(a[href*="/financial-periods/audit/export"]) #content .container-fluid > .d-flex:first-child {
        flex-direction: column;
    }

    body:has(a[href*="/financial-periods/audit/export"]) #content table {
        min-width: 980px;
    }
}


/* ==========================================================
   SOC UI — Phase 12O.2
   Financial period audit buttons + cumulative preview +
   expense payment audit
   ========================================================== */

/* ----------------------------------------------------------
   /financial-periods/audit — buttons
   ---------------------------------------------------------- */
body:has(a[href*="/financial-periods/audit/export"]) #content .btn {
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:.28rem;
    min-height:36px !important;
    padding:.48rem .78rem !important;
    border-width:1px !important;
    border-radius:8px !important;
    font-size:.64rem !important;
    font-weight:750 !important;
    line-height:1 !important;
    text-decoration:none !important;
    transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease !important;
}
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-primary {
    border-color:var(--soc-primary,#041E41)!important;
    background:var(--soc-primary,#041E41)!important;
    color:#fff!important;
}
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-primary:hover,
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-primary:focus {
    border-color:#0B2C58!important;
    background:#0B2C58!important;
    color:#fff!important;
    box-shadow:0 0 0 3px rgba(4,30,65,.10)!important;
}
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-outline-secondary {
    border-color:#CBD3DD!important;
    background:#fff!important;
    color:#596579!important;
}
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-outline-secondary:hover,
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-outline-secondary:focus {
    border-color:#AAB4C1!important;
    background:#F4F6F8!important;
    color:var(--soc-primary,#041E41)!important;
}
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-success,
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-outline-success {
    border-color:#16A34A!important;
    background:#16A34A!important;
    color:#fff!important;
}
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-success:hover,
body:has(a[href*="/financial-periods/audit/export"]) #content .btn-outline-success:hover {
    border-color:#12833D!important;
    background:#12833D!important;
    color:#fff!important;
}
body:has(a[href*="/financial-periods/audit/export"]) #content .btn i {
    margin-right:0!important;
}

/* ----------------------------------------------------------
   Cumulative cash preview
   ---------------------------------------------------------- */
.soc-cash-preview-page .soc-page-head__title{
    font-size:1.5rem!important;
}
.soc-cash-preview-page .soc-cash-chain-table-card{
    overflow:hidden;
    border:1px solid #E5EAF0!important;
    border-radius:13px!important;
    background:#fff;
    box-shadow:0 6px 18px rgba(4,30,65,.04)!important;
}
.soc-cash-preview-page .soc-cash-chain-table{
    min-width:1320px;
    color:#465164;
    font-size:.64rem;
}
.soc-cash-preview-page .soc-cash-chain-table thead th{
    padding:.65rem .62rem!important;
    border-top:0!important;
    border-bottom:1px solid #E3E8EE!important;
    background:#F5F7FA!important;
    color:#536074!important;
    font-size:.55rem!important;
    font-weight:850!important;
    line-height:1.25;
    text-transform:uppercase;
    vertical-align:middle;
    white-space:normal;
}
.soc-cash-preview-page .soc-cash-chain-table td{
    padding:.68rem .62rem!important;
    border-top:1px solid #EEF1F4!important;
    border-left:0!important;
    border-right:0!important;
    vertical-align:middle!important;
}
.soc-cash-preview-page .soc-cash-chain-table tbody tr:hover{
    background:#FAFBFC!important;
}
.soc-cash-preview-page .soc-cash-chain-table .font-weight-bold{
    color:var(--soc-primary,#041E41);
}
.soc-cash-preview-page .soc-cash-chain-table .badge{
    padding:.3rem .5rem!important;
    border-radius:999px!important;
    font-size:.52rem!important;
    font-weight:800!important;
}
.soc-cash-preview-page .soc-cash-chain-table .btn-link{
    color:#2563EB!important;
    font-size:.58rem!important;
    font-weight:750!important;
}
.soc-cash-preview-page .soc-period-panel .card-body{
    padding:1rem!important;
}
.soc-cash-preview-page .soc-period-panel .form-control{
    min-height:40px!important;
}
.soc-cash-preview-page .soc-period-panel .btn{
    min-height:38px!important;
}

/* ----------------------------------------------------------
   Expense payment audit
   ---------------------------------------------------------- */
.soc-expense-audit-page{
    padding-top:1.15rem;
    padding-bottom:2.5rem;
}
.soc-expense-audit-page .soc-period-eyebrow{
    margin-bottom:.22rem;
    color:var(--soc-accent,#BC6D24);
    font-size:.61rem;
    font-weight:850;
    letter-spacing:.09em;
}
.soc-expense-audit-page .soc-page-head__title{
    color:var(--soc-primary,#041E41)!important;
    font-size:1.5rem!important;
    font-weight:800!important;
    letter-spacing:-.02em;
}
.soc-expense-audit-page .alert{
    border-radius:10px;
    border-width:1px;
    box-shadow:none!important;
    font-size:.64rem;
    line-height:1.45;
}
.soc-expense-audit-page .alert-info{
    border-color:#CFE4E8;
    background:#EFF9FA;
    color:#416775;
}
.soc-expense-audit-page .alert-success{
    border-color:#CBE8D5;
    background:#F0F9F3;
    color:#176B3A;
}
.soc-expense-audit-page .alert-warning{
    border-color:#F5DFA5;
    background:#FFF8E8;
    color:#7D5B0B;
}
.soc-expense-audit-filter-card,
.soc-expense-audit-backfill-card,
.soc-expense-audit-list-card,
.soc-expense-audit-kpi{
    border:1px solid #E5EAF0!important;
    border-radius:12px!important;
    background:#fff;
    box-shadow:0 6px 18px rgba(4,30,65,.04)!important;
}
.soc-expense-audit-filter-card{
    overflow:hidden;
}
.soc-expense-audit-card-header{
    padding:.72rem .88rem!important;
    border-bottom:1px solid #EBEFF3!important;
    background:#fff!important;
    color:var(--soc-primary,#041E41);
}
.soc-expense-audit-card-title{
    display:flex;
    align-items:center;
    gap:.55rem;
}
.soc-expense-audit-card-title>i{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:9px;
    background:rgba(188,109,36,.10);
    color:var(--soc-accent,#BC6D24);
}
.soc-expense-audit-card-title strong,
.soc-expense-audit-card-title span{
    display:block;
}
.soc-expense-audit-card-title strong{
    color:var(--soc-primary,#041E41);
    font-size:.7rem;
}
.soc-expense-audit-card-title span{
    margin-top:.04rem;
    color:#8A94A3;
    font-size:.58rem;
}
.soc-expense-audit-filter-card .card-body{
    padding:.9rem!important;
}
.soc-expense-audit-filter-card label{
    margin-bottom:.28rem;
    color:#667085;
    font-size:.59rem;
    font-weight:800;
}
.soc-expense-audit-filter-card .form-control{
    min-height:39px;
    border-color:#DDE3EA;
    border-radius:8px;
    font-size:.67rem;
}
.soc-expense-audit-filter-card .btn{
    min-height:38px;
    border-radius:8px!important;
    font-size:.62rem!important;
    font-weight:750!important;
}
.soc-expense-audit-kpi{
    min-height:86px;
    border-left-width:3px!important;
}
.soc-expense-audit-kpi--secondary{border-left-color:#64748B!important}
.soc-expense-audit-kpi--success{border-left-color:#16A34A!important}
.soc-expense-audit-kpi--danger{border-left-color:#DC2626!important}
.soc-expense-audit-kpi--warning{border-left-color:#F59E0B!important}
.soc-expense-audit-kpi .card-body{
    padding:.78rem .85rem!important;
}
.soc-expense-audit-kpi .small{
    color:#7A8493!important;
    font-size:.57rem!important;
    font-weight:750;
}
.soc-expense-audit-kpi .h5{
    margin-top:.12rem;
    color:var(--soc-primary,#041E41);
    font-size:.95rem;
    font-weight:850;
}
.soc-expense-audit-backfill-card{
    border-color:#BFD0F5!important;
}
.soc-expense-audit-backfill-card>.card-header{
    font-size:.68rem!important;
    font-weight:800!important;
}
.soc-expense-audit-list-card{
    overflow:hidden;
}
.soc-expense-audit-table{
    min-width:1080px;
    font-size:.63rem;
}
.soc-expense-audit-table thead th{
    padding:.6rem .62rem!important;
    border-top:0!important;
    border-bottom:1px solid #E3E8EE!important;
    background:#F5F7FA!important;
    color:#536074!important;
    font-size:.54rem!important;
    font-weight:850!important;
    text-transform:uppercase;
    vertical-align:middle;
}
.soc-expense-audit-table td{
    padding:.6rem .62rem!important;
    border-top-color:#EEF1F4!important;
    vertical-align:middle!important;
}
.soc-expense-audit-table .badge{
    display:inline-flex;
    align-items:center;
    margin:.08rem .12rem .08rem 0;
    padding:.28rem .46rem!important;
    border-radius:999px!important;
    font-size:.51rem!important;
    font-weight:800!important;
}
.soc-expense-audit-table .btn{
    border-radius:8px!important;
    font-size:.58rem!important;
    font-weight:750!important;
}

@media(max-width:991.98px){
    .soc-expense-audit-page>.d-flex:first-of-type{
        flex-direction:column;
        align-items:flex-start!important;
        gap:.7rem;
    }
}


/* ==========================================================
   SOC UI — Phase 12O.3
   Obligation rollover + historical bulk close modal + reports
   ========================================================== */

/* Obligation rollover -------------------------------------- */
.soc-obligation-rollover-page .soc-obligation-rollover-table-card{
    overflow:hidden;
    border:1px solid #E5EAF0!important;
    border-radius:13px!important;
    background:#fff;
    box-shadow:0 6px 18px rgba(4,30,65,.04)!important;
}
.soc-obligation-rollover-table{
    min-width:980px;
    color:#465164;
    font-size:.65rem;
}
.soc-obligation-rollover-table thead th{
    padding:.67rem .72rem!important;
    border-top:0!important;
    border-bottom:1px solid #E2E7ED!important;
    background:#F4F6F9!important;
    color:#536074!important;
    font-size:.55rem!important;
    font-weight:850!important;
    letter-spacing:.02em;
    text-transform:uppercase;
    vertical-align:middle;
}
.soc-obligation-rollover-table tbody td{
    padding:.68rem .72rem!important;
    border-top:1px solid #EDF1F4!important;
    vertical-align:middle!important;
}
.soc-obligation-rollover-table tbody tr:hover{
    background:#FAFBFC!important;
}
.soc-obligation-rollover-table tfoot td{
    padding:.7rem .72rem!important;
    border-top:2px solid #E1E6EC!important;
    background:#F8FAFC;
    color:var(--soc-primary,#041E41);
}
.soc-rollover-type{
    display:inline-flex;
    align-items:center;
    min-height:25px;
    padding:.27rem .48rem;
    border-radius:999px;
    background:#EEF3FA;
    color:#344E73;
    font-size:.57rem;
    font-weight:800;
}
.soc-rollover-status{
    display:inline-flex;
    align-items:center;
    min-height:25px;
    padding:.27rem .5rem;
    border:1px solid transparent;
    border-radius:999px;
    font-size:.56rem;
    font-weight:800;
    white-space:nowrap;
}
.soc-rollover-status--due{
    border-color:#F5C2C0;
    background:#FFF0EF;
    color:#B42318;
}
.soc-rollover-status--paid{
    border-color:#B7E2C6;
    background:#ECF9F0;
    color:#15803D;
}
.soc-rollover-status--partial{
    border-color:#F4D79A;
    background:#FFF8E7;
    color:#A16207;
}
.soc-rollover-status--exempt{
    border-color:#D7DCE3;
    background:#F4F5F7;
    color:#667085;
}
.soc-rollover-status--credit{
    border-color:#BFD5F9;
    background:#EEF5FF;
    color:#2563EB;
}
.soc-rollover-status--muted{
    border-color:#D7DCE3;
    background:#F5F6F8;
    color:#667085;
}

/* Historical bulk close modal ------------------------------ */
.soc-bulk-close-modal .modal-dialog{
    max-width:760px;
}
.soc-bulk-close-modal .modal-content{
    overflow:hidden;
    border:0!important;
    border-radius:14px!important;
    box-shadow:0 24px 70px rgba(4,30,65,.24)!important;
}
.soc-bulk-close-modal .modal-header{
    align-items:flex-start!important;
    padding:1.15rem 1.25rem!important;
    border-bottom:1px solid #E7EBF0!important;
    background:#fff!important;
}
.soc-bulk-close-modal .modal-title{
    color:var(--soc-primary,#041E41)!important;
    font-size:1.14rem!important;
    font-weight:800!important;
    line-height:1.25;
}
.soc-bulk-close-modal__subtitle{
    margin-top:.2rem;
    color:#7D8795;
    font-size:.64rem;
}
.soc-bulk-close-modal .close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    margin:-.15rem -.15rem 0 1rem!important;
    padding:0!important;
    border-radius:8px;
    color:#667085!important;
    opacity:1!important;
}
.soc-bulk-close-modal .close:hover{
    background:#F2F4F7;
    color:var(--soc-primary,#041E41)!important;
}
.soc-bulk-close-modal .modal-body{
    padding:1rem 1.25rem 1.1rem!important;
}
.soc-bulk-close-modal .alert{
    margin-bottom:1rem;
    border:1px solid #F4C7C3!important;
    border-radius:10px!important;
    background:#FFF1F0!important;
    color:#9B2C23!important;
    font-size:.64rem!important;
    line-height:1.45;
}
.soc-bulk-close-modal .form-group{
    margin-bottom:.9rem!important;
}
.soc-bulk-close-modal label{
    margin-bottom:.35rem!important;
    color:var(--soc-primary,#041E41)!important;
    font-size:.68rem!important;
    font-weight:800!important;
}
.soc-bulk-close-modal .form-control{
    min-height:42px!important;
    border:1px solid #D9E0E8!important;
    border-radius:8px!important;
    color:#344054!important;
    font-size:.7rem!important;
}
.soc-bulk-close-modal textarea.form-control{
    min-height:98px!important;
}
.soc-bulk-close-modal .form-control:focus{
    border-color:#A8B8CC!important;
    box-shadow:0 0 0 3px rgba(4,30,65,.07)!important;
}
.soc-bulk-close-modal .modal-footer{
    padding:.85rem 1.25rem!important;
    border-top:1px solid #E7EBF0!important;
    background:#FBFCFD!important;
}
.soc-bulk-close-modal .modal-footer .btn{
    min-height:38px;
    padding:.48rem .82rem!important;
    border-radius:8px!important;
    font-size:.64rem!important;
    font-weight:800!important;
}
.soc-bulk-close-modal .btn-secondary{
    border-color:#CBD3DD!important;
    background:#fff!important;
    color:#667085!important;
}
.soc-bulk-close-modal .btn-secondary:hover{
    background:#F4F6F8!important;
    color:var(--soc-primary,#041E41)!important;
}
.soc-bulk-close-modal .btn-danger{
    border-color:#DC2626!important;
    background:#DC2626!important;
    color:#fff!important;
}
.soc-bulk-close-modal .btn-danger:hover{
    border-color:#B91C1C!important;
    background:#B91C1C!important;
}

/* Reports --------------------------------------------------- */
.soc-reports-page{
    padding-top:1rem;
    padding-bottom:2.5rem;
}
.soc-reports-page .soc-period-eyebrow{
    margin-bottom:.22rem;
    color:var(--soc-accent,#BC6D24);
    font-size:.61rem;
    font-weight:850;
    letter-spacing:.09em;
}
.soc-reports-page .soc-page-head__title{
    color:var(--soc-primary,#041E41)!important;
    font-size:1.5rem!important;
    font-weight:800!important;
    letter-spacing:-.02em;
}
.soc-reports-page>div:first-child form{
    display:flex;
    align-items:center;
    gap:.45rem;
    padding:.35rem;
    border:1px solid #E2E7ED;
    border-radius:10px;
    background:#fff;
}
.soc-reports-page>div:first-child form label{
    margin:0!important;
    padding-left:.35rem;
    color:#667085!important;
    font-weight:750!important;
}
.soc-reports-page>div:first-child form .form-control{
    min-height:36px;
    margin:0!important;
    border-color:#DDE3EA;
    border-radius:7px;
}
.soc-reports-page>div:first-child form .btn{
    min-height:36px;
    margin:0!important;
    border-radius:7px!important;
}
.soc-reports-logic{
    margin-bottom:1rem!important;
    padding:.8rem 1rem!important;
    border:1px solid #CFE4E8!important;
    border-radius:11px!important;
    background:#EFF9FA!important;
    color:#416775!important;
    box-shadow:none!important;
}
.soc-reports-kpi{
    min-height:112px;
    border:1px solid #E5EAF0!important;
    border-left-width:3px!important;
    border-radius:12px!important;
    background:#fff;
    box-shadow:0 6px 18px rgba(4,30,65,.04)!important;
}
.soc-reports-kpi--success{border-left-color:#16A34A!important}
.soc-reports-kpi--danger{border-left-color:#DC2626!important}
.soc-reports-kpi--primary{border-left-color:#2563EB!important}
.soc-reports-kpi--warning{border-left-color:#F59E0B!important}
.soc-reports-kpi .card-body{
    padding:.9rem 1rem!important;
}
.soc-reports-kpi .text-xs{
    font-size:.57rem!important;
    letter-spacing:.03em;
}
.soc-reports-kpi .h5{
    margin-top:.12rem;
    color:var(--soc-primary,#041E41);
    font-size:1.06rem;
    font-weight:850!important;
}
.soc-reports-panel{
    overflow:hidden;
    border:1px solid #E5EAF0!important;
    border-radius:12px!important;
    background:#fff;
    box-shadow:0 6px 18px rgba(4,30,65,.04)!important;
}
.soc-reports-panel>.card-header{
    min-height:47px;
    padding:.72rem .9rem!important;
    border-bottom:1px solid #E8EDF2!important;
    background:#fff!important;
    color:var(--soc-primary,#041E41)!important;
    font-size:.7rem;
    font-weight:800;
}
.soc-reports-panel>.card-body{
    padding:1rem!important;
}
.soc-reports-panel .btn-block{
    border-radius:9px!important;
    box-shadow:none!important;
    transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease!important;
}
.soc-reports-panel .btn-block:hover{
    transform:translateY(-1px);
    box-shadow:0 6px 14px rgba(4,30,65,.07)!important;
}
.soc-reports-panel .btn-block strong{
    font-size:.73rem;
    font-weight:800;
}
.soc-reports-panel .btn-block .small{
    font-size:.6rem;
    line-height:1.4;
}
.soc-reports-panel .alert-light{
    border-color:#E4E8ED!important;
    border-radius:9px!important;
    background:#FAFBFC!important;
    color:#667085!important;
}
@media(max-width:767.98px){
    .soc-bulk-close-modal .modal-dialog{
        margin:.7rem;
    }
    .soc-reports-page>div:first-child{
        align-items:flex-start!important;
    }
    .soc-reports-page>div:first-child form{
        margin-top:.75rem;
    }
}


/* ==========================================================
   SOC UI — Phase 12O.4
   Reports detail pages + full Greek terminology
   ========================================================== */
.soc-report-detail-page .soc-report-filter-card,
.soc-report-detail-page .soc-report-table-card,
.soc-membership-statistics-page .soc-reports-panel,
.soc-member-debts-page .soc-reports-panel{
    overflow:hidden;
}
.soc-report-detail-page .soc-report-filter-card .card-body,
.soc-report-detail-page .soc-reports-panel .card-body{
    padding:1rem!important;
}
.soc-report-detail-page .form-group label{
    color:var(--soc-primary,#041E41)!important;
    font-size:.66rem!important;
    font-weight:800!important;
}
.soc-report-detail-page .form-control,
.soc-report-detail-page .custom-select{
    min-height:39px!important;
    border:1px solid #D8E0E8!important;
    border-radius:8px!important;
    font-size:.68rem!important;
}
.soc-report-detail-page .form-control:focus,
.soc-report-detail-page .custom-select:focus{
    border-color:#A8B8CC!important;
    box-shadow:0 0 0 3px rgba(4,30,65,.07)!important;
}
.soc-report-detail-page .btn{
    border-radius:8px!important;
    font-weight:700!important;
}
.soc-report-detail-page .soc-report-note{
    border-radius:10px!important;
    border:1px solid #D5E6EA!important;
    background:#F1FAFB!important;
    color:#45606B!important;
}
.soc-report-detail-page .badge.border,
.soc-report-detail-page .badge-light.border{
    border-color:#D8E0E8!important;
    color:#536074!important;
    background:#fff!important;
}
.soc-report-detail-page .soc-table thead th,
.soc-membership-statistics-page .soc-table thead th,
.soc-member-debts-page .soc-table thead th{
    white-space:nowrap;
}
.soc-report-detail-page .soc-table tbody td,
.soc-membership-statistics-page .soc-table tbody td,
.soc-member-debts-page .soc-table tbody td{
    vertical-align:top!important;
}
.soc-report-detail-page .pagination{
    margin-bottom:0!important;
}
.soc-report-detail-page .custom-control-label{
    padding-top:.08rem;
    font-size:.68rem;
    color:#344054;
}
.soc-member-debts-page .card-header strong,
.soc-membership-statistics-page .card-header strong,
.soc-report-detail-page .card-header strong{
    color:var(--soc-primary,#041E41);
}
.soc-production-readiness-page .soc-period-card-header{
    color:var(--soc-primary,#041E41)!important;
}
.soc-production-readiness-page .badge-success,
.soc-production-readiness-page .badge-danger,
.soc-production-readiness-page .badge-warning{
    font-weight:800;
}

/* ==========================================================
   SOC UI — Phase 12P.5 Activity Logs / PANSEK visual system
   ========================================================== */
.soc-activity-page{
    padding-top:1.15rem;
    padding-bottom:2.5rem;
}
.soc-activity-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:1rem;
}
.soc-activity-header h1{
    margin:0;
    color:var(--soc-primary,#041E41);
    font-size:1.55rem;
    font-weight:850;
    letter-spacing:-.025em;
}
.soc-activity-header p{
    margin:.28rem 0 0;
    color:#7B8594;
    font-size:.76rem;
}
.soc-activity-filter-card,
.soc-activity-list-card{
    overflow:hidden;
    border:1px solid #E6EAF0!important;
    border-radius:13px!important;
    background:#fff!important;
    box-shadow:0 6px 18px rgba(4,30,65,.045)!important;
}
.soc-activity-filter-card>.card-header,
.soc-activity-list-card>.card-header{
    padding:.74rem .9rem;
    border-bottom:1px solid #EDF0F4!important;
    background:#fff!important;
}
.soc-activity-filter-title{
    display:flex;
    align-items:center;
    gap:.6rem;
}
.soc-activity-filter-title>i{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 36px;
    width:36px;
    height:36px;
    border-radius:10px;
    background:rgba(188,109,36,.11);
    color:var(--soc-accent,#BC6D24);
    font-size:.86rem;
}
.soc-activity-filter-title strong,
.soc-activity-filter-title span{
    display:block;
}
.soc-activity-filter-title strong{
    color:var(--soc-primary,#041E41);
    font-size:.73rem;
    font-weight:850;
}
.soc-activity-filter-title span{
    margin-top:.08rem;
    color:#8B94A1;
    font-size:.59rem;
}
.soc-activity-filter-card>.card-body{
    padding:.9rem!important;
}
.soc-activity-filters .form-label{
    margin-bottom:.28rem;
    color:#667085;
    font-size:.59rem;
    font-weight:800;
}
.soc-activity-filters .form-control,
.soc-activity-filters .form-select{
    min-height:39px;
    border:1px solid #DDE3EA;
    border-radius:8px;
    background-color:#fff;
    color:#344054;
    font-size:.67rem;
    box-shadow:none;
}
.soc-activity-filters .form-control:focus,
.soc-activity-filters .form-select:focus{
    border-color:#A8B6C8;
    box-shadow:0 0 0 .16rem rgba(4,30,65,.08);
}
.soc-activity-actions{
    display:flex;
    align-items:flex-end;
    gap:.45rem;
    padding-top:1.1rem;
}
.soc-activity-actions .soc-action-btn{
    min-height:39px;
    border-radius:8px!important;
    padding:.45rem .8rem;
    font-size:.66rem;
    font-weight:800;
}
.soc-activity-actions .btn-primary{
    border-color:var(--soc-primary,#041E41)!important;
    background:var(--soc-primary,#041E41)!important;
    color:#fff!important;
}
.soc-activity-actions .btn-primary:hover{
    border-color:#0B2A55!important;
    background:#0B2A55!important;
}
.soc-activity-actions .btn-outline-secondary{
    border-color:#CBD3DD!important;
    background:#fff!important;
    color:#667085!important;
}
.soc-activity-list-card{
    margin-top:1rem;
}
.soc-activity-list-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
}
.soc-activity-list-head>div{
    display:flex;
    align-items:center;
    gap:.5rem;
    color:var(--soc-primary,#041E41);
    font-size:.7rem;
}
.soc-activity-list-head>div>i{
    color:#2563EB;
}
.soc-activity-count{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:.2rem .5rem;
    border-radius:999px;
    background:#F1F4F8;
    color:#667085;
    font-size:.58rem;
    font-weight:800;
    white-space:nowrap;
}
.soc-activity-table{
    min-width:1260px;
    margin:0;
}
.soc-activity-table thead th{
    padding:.58rem .62rem;
    border:0!important;
    border-bottom:1px solid #DEE4EB!important;
    background:#F5F7FA!important;
    color:#536074!important;
    font-size:.55rem!important;
    font-weight:850!important;
    letter-spacing:.025em;
    text-transform:uppercase;
    white-space:nowrap;
}
.soc-activity-table tbody td{
    padding:.62rem;
    border:0!important;
    border-top:1px solid #EEF1F4!important;
    background:#fff;
    color:#465164;
    font-size:.63rem;
    line-height:1.35;
    vertical-align:top!important;
}
.soc-activity-table tbody tr:nth-child(even) td{
    background:#FBFCFD;
}
.soc-activity-user,
.soc-activity-desc{
    color:var(--soc-primary,#041E41);
    font-weight:750;
}
.soc-activity-muted{
    margin-top:.08rem;
    color:#8A93A3;
    font-size:.56rem;
}
.soc-activity-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:22px;
    padding:.22rem .48rem;
    border-radius:999px;
    font-size:.54rem;
    font-weight:850;
    white-space:nowrap;
}
.soc-activity-badge--success{background:#ECF8F0;color:#16743E}
.soc-activity-badge--primary{background:#EEF4FF;color:#2563EB}
.soc-activity-badge--danger{background:#FFF0EF;color:#B42318}
.soc-activity-badge--info{background:#ECF8FB;color:#147A8A}
.soc-activity-badge--secondary{background:#F1F3F6;color:#697487}
.soc-activity-change{
    min-width:220px;
}
.soc-activity-props{
    display:grid;
    gap:.28rem;
}
.soc-activity-prop{
    display:grid;
    grid-template-columns:minmax(82px,112px) 1fr;
    gap:.45rem;
    padding:.34rem .45rem;
    border:1px solid #EDF1F5;
    border-radius:7px;
    background:#F8FAFC;
}
.soc-activity-prop-key{
    color:#7A8493;
    font-size:.54rem;
    font-weight:800;
}
.soc-activity-prop-value{
    color:#344054;
    font-size:.58rem;
    word-break:break-word;
}
.soc-activity-pagination{
    padding:.7rem .9rem;
    border-top:1px solid #E6EAF0;
    background:#FBFCFD;
}
.soc-activity-pagination nav{
    margin:0;
}
.soc-activity-pagination .pagination{
    margin:0;
    gap:.2rem;
}
.soc-activity-pagination .page-link{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    height:34px;
    padding:.25rem .5rem;
    border:1px solid #DCE2EA;
    border-radius:7px!important;
    background:#fff;
    color:var(--soc-primary,#041E41);
    font-size:.62rem;
    font-weight:750;
}
.soc-activity-pagination .page-item.active .page-link{
    border-color:var(--soc-primary,#041E41)!important;
    background:var(--soc-primary,#041E41)!important;
    color:#fff!important;
}
.soc-activity-pagination .page-item.disabled .page-link{
    background:#F6F7F9;
    color:#A3ABB7;
}
@media(max-width:991.98px){
    .soc-activity-header{flex-direction:column}
    .soc-activity-actions{padding-top:0;align-items:stretch}
    .soc-activity-actions .soc-action-btn{flex:1}
}

/* ==========================================================
   SOC UI — Practical / Board Minutes
   ========================================================== */
.soc-praktiko-page{
    --praktiko-primary:var(--soc-color-primary,#041E41);
    --praktiko-dark:var(--soc-color-dark,#19233E);
    --praktiko-accent:var(--soc-color-accent,#BC6D24);
    --praktiko-border:var(--soc-color-border,#E8E8E8);
    --praktiko-muted:#748094;
}
.soc-praktiko-page .soc-page-head{margin-bottom:1.35rem}
.soc-praktiko-page .soc-page-head__title{font-size:1.75rem;font-weight:800;color:var(--praktiko-dark)}
.soc-praktiko-page .soc-page-head__subtitle{font-size:.88rem;color:var(--praktiko-muted)}
.soc-praktiko-page .soc-panel,
.soc-praktiko-page .praktiko-summary-card,
.soc-praktiko-page .praktiko-document{border:1px solid var(--praktiko-border)!important;border-radius:16px!important;box-shadow:0 6px 20px rgba(4,30,65,.055)!important;overflow:hidden;background:#fff}

/* summary cards */
.soc-praktiko-page .praktiko-summary-card{border-left-width:4px!important;min-height:104px}
.soc-praktiko-page .praktiko-summary-card .card-body{padding:1rem 1.1rem}
.soc-praktiko-page .praktiko-summary-card__icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;font-size:1rem}
.soc-praktiko-page .praktiko-summary-card .small{text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:800;color:#6f7889!important}
.soc-praktiko-page .praktiko-summary-card .h4{font-size:1.35rem;font-weight:800;color:var(--praktiko-dark)}
.soc-praktiko-page .praktiko-summary-card .bg-primary{background:#eef4ff!important;color:#2563EB!important}
.soc-praktiko-page .praktiko-summary-card .bg-success{background:#ecfdf3!important;color:#16A34A!important}
.soc-praktiko-page .praktiko-summary-card .bg-warning{background:#fff8e8!important;color:#E3A008!important}

/* page actions */
.soc-praktiko-page .soc-praktiko-head-btn,
.soc-praktiko-page .praktiko-action-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border-radius:9px;font-weight:700}
.soc-praktiko-page .btn-primary{background:var(--praktiko-primary);border-color:var(--praktiko-primary)}
.soc-praktiko-page .btn-primary:hover{background:#082a59;border-color:#082a59}

/* list card */
.soc-praktiko-page .praktiko-list-card .card-header{padding:1rem 1.15rem!important;background:#fff!important;border-bottom:1px solid var(--praktiko-border)!important}
.soc-praktiko-page .praktiko-list-card .card-header h2{font-size:.96rem;color:#2563EB!important;font-weight:800}
.soc-praktiko-page .praktiko-list-card .badge-light{background:#f8fafc;color:#536074;border-color:#e2e8f0!important}
.soc-praktiko-page .praktiko-table{margin:0;font-size:.86rem}
.soc-praktiko-page .praktiko-table thead th{padding:.72rem .8rem;background:#f1f4f8;color:#17233d;border-top:0;border-bottom:1px solid #dde3eb;font-size:.69rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.soc-praktiko-page .praktiko-table tbody td{padding:.75rem .8rem;vertical-align:middle;border-top:1px solid #edf0f3}
.soc-praktiko-page .praktiko-table tbody tr:nth-child(odd){background:#fff}
.soc-praktiko-page .praktiko-table tbody tr:nth-child(even){background:#fafafa}
.soc-praktiko-page .praktiko-table tbody tr:hover{background:#f7f9fc}
.soc-praktiko-page .praktiko-protocol{font-size:.89rem;font-weight:800;color:var(--praktiko-primary)}
.soc-praktiko-page .praktiko-meta{font-size:.73rem;color:#7b8494}
.soc-praktiko-page .praktiko-signatures-progress{height:6px;border-radius:999px;background:#e8edf3;overflow:hidden}
.soc-praktiko-page .praktiko-actions{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:.32rem}
.soc-praktiko-page .praktiko-actions .soc-praktiko-action,
.soc-praktiko-page .praktiko-actions .btn{width:34px;height:34px;min-width:34px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:.78rem}
.soc-praktiko-page .praktiko-actions .btn-info{background:#2563EB;border-color:#2563EB}
.soc-praktiko-page .praktiko-actions .btn-outline-primary{color:var(--praktiko-primary);border-color:var(--praktiko-primary);background:#fff}
.soc-praktiko-page .praktiko-actions .btn-outline-primary:hover{background:var(--praktiko-primary);color:#fff}
.soc-praktiko-page .praktiko-actions .btn-outline-danger{background:#fff;color:#DC2626;border-color:#ef4444}
.soc-praktiko-page .praktiko-actions .btn-outline-danger:hover{background:#DC2626;color:#fff}
.soc-praktiko-page .praktiko-actions .btn-success{background:#16A34A;border-color:#16A34A}
.soc-praktiko-page .praktiko-actions .btn-outline-secondary{color:#64748b;border-color:#cbd5e1;background:#fff}
.soc-praktiko-page .praktiko-empty{padding:3rem 1rem;text-align:center;color:#7b8494}
.soc-praktiko-page .praktiko-empty i{display:block;margin-bottom:.7rem;color:#cbd5e1;font-size:2rem}

/* forms */
.soc-praktiko-form-page .soc-praktiko-form-body{padding:1.2rem!important}
.soc-praktiko-form-page .soc-field-label{display:block;margin-bottom:.38rem;color:#27344d;font-size:.78rem;font-weight:800}
.soc-praktiko-form-page .form-control{min-height:40px;border:1px solid #dce2ea;border-radius:9px;color:#25324a;box-shadow:none}
.soc-praktiko-form-page .form-control:focus{border-color:#8aa9d9;box-shadow:0 0 0 .16rem rgba(37,99,235,.10)}
.soc-praktiko-form-page .select2-container{width:100%!important}
.soc-praktiko-form-page .select2-container--default .select2-selection--multiple{min-height:42px;border:1px solid #dce2ea;border-radius:9px;padding:3px 6px}
.soc-praktiko-form-page .select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#8aa9d9}
.soc-praktiko-form-page .soc-praktiko-form-actions{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.2rem;background:#fff;border-top:1px solid var(--praktiko-border)}
.soc-praktiko-form-page .soc-praktiko-form-actions .btn{min-height:40px;border-radius:9px;font-weight:700}
.soc-praktiko-form-page .tox-tinymce{border:1px solid #dce2ea!important;border-radius:10px!important;overflow:hidden}
.soc-praktiko-file-input{padding:.55rem .7rem;border:1px dashed #cbd5e1;border-radius:9px;background:#fafcff;width:100%}
.soc-praktiko-files{display:grid;gap:.55rem}
.soc-praktiko-file-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .85rem;background:#f8fafc;border:1px solid #e6ebf1;border-radius:9px}
.soc-praktiko-file-name{min-width:0;overflow-wrap:anywhere}

/* signature modal */
.soc-praktiko-sign-modal .modal-content{border:0;border-radius:16px;overflow:hidden;box-shadow:0 22px 55px rgba(4,30,65,.22)}
.soc-praktiko-sign-modal .modal-header{background:var(--praktiko-primary);color:#fff;border-bottom:3px solid var(--praktiko-accent);padding:1rem 1.2rem}
.soc-praktiko-sign-modal .modal-header .text-muted{color:rgba(255,255,255,.72)!important}
.soc-praktiko-sign-modal .modal-header .close{color:#fff;text-shadow:none;opacity:.85}
.soc-praktiko-sign-modal .modal-body{padding:1.25rem}
.soc-praktiko-sign-modal .modal-footer{background:#f8fafc;border-top:1px solid #e6ebf1}
.soc-praktiko-sign-modal .signature-pad canvas{width:100%;max-width:520px;height:190px;border:1px solid #dce2ea;border-radius:10px;background:#fff}

/* show document */
.soc-praktiko-show-page .praktiko-document{max-width:1180px;margin-left:auto;margin-right:auto}
.soc-praktiko-show-page .praktiko-document__header{background:linear-gradient(135deg,#041E41 0%,#17365f 100%);border-bottom:4px solid var(--praktiko-accent)}
.soc-praktiko-show-page .praktiko-document__meta{display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;color:rgba(255,255,255,.8);font-size:.8rem}
.soc-praktiko-show-page .praktiko-paper{padding:2.25rem 2.5rem;color:#25324a;line-height:1.7;background:#fff}
.soc-praktiko-show-page .praktiko-paper__title{text-align:center;font-weight:800;color:var(--praktiko-dark);line-height:1.45;margin-bottom:2rem}
.soc-praktiko-show-page .praktiko-section{margin:1.65rem 0;padding:1rem 1.1rem;border:1px solid #e6ebf1;border-radius:12px;background:#fbfcfe}
.soc-praktiko-show-page .praktiko-section__title{margin-bottom:.7rem;color:var(--praktiko-primary);font-size:.8rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.soc-praktiko-show-page .praktiko-attendees{margin-bottom:0;padding-left:1.3rem}
.soc-praktiko-show-page .praktiko-signature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.soc-praktiko-show-page .praktiko-signature-card{min-height:150px;padding:1rem;text-align:center;background:#fff;border:1px solid #e5eaf0;border-radius:11px}
.soc-praktiko-show-page .praktiko-signature-card img{display:block;max-width:180px;max-height:80px;margin:.45rem auto .7rem}
.soc-praktiko-show-page .praktiko-signature-card__status{font-size:.75rem;font-weight:700}

@media (max-width:991.98px){
    .soc-praktiko-show-page .praktiko-signature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767.98px){
    .soc-praktiko-page .praktiko-table{min-width:820px}
    .soc-praktiko-page .praktiko-actions{justify-content:flex-start}
    .soc-praktiko-form-page .soc-praktiko-form-actions{flex-direction:column-reverse}
    .soc-praktiko-form-page .soc-praktiko-form-actions .btn{width:100%}
    .soc-praktiko-show-page .praktiko-paper{padding:1.25rem}
    .soc-praktiko-show-page .praktiko-document__meta{display:block}
    .soc-praktiko-show-page .praktiko-document__meta span{display:block;margin-top:.25rem}
    .soc-praktiko-show-page .praktiko-signature-grid{grid-template-columns:1fr}
}
@media print{
    .soc-praktiko-show-page .praktiko-page-actions,
    .soc-praktiko-show-page .sidebar,
    .soc-praktiko-show-page .navbar{display:none!important}
    .soc-praktiko-show-page .praktiko-document{max-width:none;box-shadow:none!important;border:0!important}
    .soc-praktiko-show-page .praktiko-paper{padding:0}
}
.soc-praktiko-page .praktiko-actions .soc-praktiko-action--wide{width:auto;min-width:34px;padding:0 .65rem!important;gap:.3rem}

/* ==========================================================
   SOC UI — Global modal harmonisation
   Reference: "Υπογραφή Πρακτικού"
   ========================================================== */
body.soc-app .soc-standard-modal .modal-dialog{
    margin-top:1.75rem;
    margin-bottom:1.75rem;
}
body.soc-app .soc-standard-modal .modal-content{
    border:0!important;
    border-radius:16px!important;
    overflow:hidden;
    background:#fff;
    box-shadow:0 22px 55px rgba(4,30,65,.22)!important;
}
body.soc-app .soc-standard-modal .modal-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    padding:1rem 1.2rem!important;
    background:var(--soc-primary,#041E41)!important;
    border:0!important;
    border-bottom:3px solid var(--soc-accent,#BC6D24)!important;
    color:#fff!important;
}
body.soc-app .soc-standard-modal .modal-title,
body.soc-app .soc-standard-modal .modal-title *{
    margin:0;
    color:#fff!important;
    font-size:1.05rem;
    font-weight:800;
    line-height:1.35;
}
body.soc-app .soc-standard-modal .modal-header .text-muted,
body.soc-app .soc-standard-modal .modal-header small{
    color:rgba(255,255,255,.72)!important;
}
body.soc-app .soc-standard-modal .modal-header .close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 34px;
    width:34px;
    height:34px;
    margin:-.25rem -.35rem -.25rem auto;
    padding:0;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#fff!important;
    font-size:1.65rem;
    line-height:1;
    text-shadow:none;
    opacity:.82;
}
body.soc-app .soc-standard-modal .modal-header .close:hover,
body.soc-app .soc-standard-modal .modal-header .close:focus{
    background:rgba(255,255,255,.10);
    color:#fff!important;
    opacity:1;
    outline:none;
}
body.soc-app .soc-standard-modal .modal-header .btn-close{
    flex:0 0 34px;
    width:34px;
    height:34px;
    margin:-.25rem -.35rem -.25rem auto;
    padding:.45rem;
    border-radius:8px;
    filter:invert(1) grayscale(100%) brightness(200%);
    opacity:.82;
}
body.soc-app .soc-standard-modal .modal-header .btn-close:hover,
body.soc-app .soc-standard-modal .modal-header .btn-close:focus{
    background-color:rgba(0,0,0,.08);
    opacity:1;
    box-shadow:none;
}
body.soc-app .soc-standard-modal .modal-body{
    padding:1.25rem!important;
    color:var(--soc-text,#1C2433);
    background:#fff;
}
body.soc-app .soc-standard-modal .modal-body .form-group:last-child,
body.soc-app .soc-standard-modal .modal-body > :last-child{
    margin-bottom:0;
}
body.soc-app .soc-standard-modal .modal-body label{
    color:#27344d;
    font-weight:700;
}
body.soc-app .soc-standard-modal .modal-body .form-control,
body.soc-app .soc-standard-modal .modal-body .custom-select,
body.soc-app .soc-standard-modal .modal-body select{
    border-color:#dce2ea;
    border-radius:9px;
    box-shadow:none;
}
body.soc-app .soc-standard-modal .modal-body .form-control:focus,
body.soc-app .soc-standard-modal .modal-body .custom-select:focus,
body.soc-app .soc-standard-modal .modal-body select:focus{
    border-color:#8aa9d9;
    box-shadow:0 0 0 .16rem rgba(37,99,235,.10);
}
body.soc-app .soc-standard-modal .modal-footer{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.5rem;
    padding:.85rem 1.2rem!important;
    background:#f8fafc!important;
    border-top:1px solid #e6ebf1!important;
}
body.soc-app .soc-standard-modal .modal-footer .btn{
    min-height:38px;
    margin:0!important;
    padding:.45rem .9rem;
    border-radius:8px;
    font-weight:700;
}
body.soc-app .soc-standard-modal .modal-footer .btn-primary{
    background:var(--soc-primary,#041E41);
    border-color:var(--soc-primary,#041E41);
}
body.soc-app .soc-standard-modal .modal-footer .btn-primary:hover,
body.soc-app .soc-standard-modal .modal-footer .btn-primary:focus{
    background:#0b315e;
    border-color:#0b315e;
}
body.soc-app .soc-standard-modal .modal-footer .btn-secondary{
    background:#fff;
    border-color:#cbd5e1;
    color:var(--soc-primary,#041E41);
}
body.soc-app .soc-standard-modal .modal-footer .btn-secondary:hover,
body.soc-app .soc-standard-modal .modal-footer .btn-secondary:focus{
    background:#eef2f7;
    border-color:#b8c3d1;
    color:var(--soc-primary,#041E41);
}
body.soc-app .soc-standard-modal .modal-footer .btn-danger{
    background:#dc2626;
    border-color:#dc2626;
    color:#fff;
}
body.soc-app .soc-standard-modal .modal-footer .btn-success{
    background:#16a34a;
    border-color:#16a34a;
    color:#fff;
}
body.soc-app .soc-standard-modal hr{
    border-top-color:#e6ebf1;
}
body.soc-app .soc-standard-modal .table thead th{
    background:#f1f4f8;
    color:var(--soc-primary,#041E41);
    font-weight:800;
}
body.soc-app .soc-standard-modal .alert{
    border-radius:10px;
}

@media (max-width:575.98px){
    body.soc-app .soc-standard-modal .modal-dialog{
        margin:.75rem;
    }
    body.soc-app .soc-standard-modal .modal-header,
    body.soc-app .soc-standard-modal .modal-body,
    body.soc-app .soc-standard-modal .modal-footer{
        padding:1rem!important;
    }
    body.soc-app .soc-standard-modal .modal-footer{
        flex-direction:column-reverse;
        align-items:stretch;
    }
    body.soc-app .soc-standard-modal .modal-footer .btn,
    body.soc-app .soc-standard-modal .modal-footer form,
    body.soc-app .soc-standard-modal .modal-footer form .btn{
        width:100%;
    }
}


/* ==========================================================
   SOC targeted modal UI fix — Logout + Fees add modals
   Same visual language as "Υπογραφή Πρακτικού".
   Unscoped intentionally: these screens may not expose body.soc-app.
   ========================================================== */
.soc-praktiko-sign-modal .modal-dialog{
    margin-top:1.75rem;
    margin-bottom:1.75rem;
}
.soc-praktiko-sign-modal .modal-content{
    border:0!important;
    border-radius:16px!important;
    overflow:hidden!important;
    background:#fff!important;
    box-shadow:0 22px 55px rgba(4,30,65,.22)!important;
}
.soc-praktiko-sign-modal .modal-header{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:1rem!important;
    padding:1rem 1.2rem!important;
    background:#041E41!important;
    border:0!important;
    border-bottom:3px solid #BC6D24!important;
    color:#fff!important;
}
.soc-praktiko-sign-modal .modal-title,
.soc-praktiko-sign-modal .modal-title *{
    margin:0!important;
    color:#fff!important;
    font-size:1.05rem!important;
    font-weight:800!important;
    line-height:1.35!important;
}
.soc-praktiko-sign-modal .modal-header .close,
.soc-praktiko-sign-modal .modal-header .btn-close{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 34px!important;
    width:34px!important;
    height:34px!important;
    margin:-.25rem -.35rem -.25rem auto!important;
    padding:0!important;
    border:0!important;
    border-radius:8px!important;
    background-color:transparent!important;
    color:#fff!important;
    opacity:.85!important;
    box-shadow:none!important;
}
.soc-praktiko-sign-modal .modal-header .btn-close{
    filter:invert(1) grayscale(100%) brightness(220%)!important;
    background-size:13px!important;
}
.soc-praktiko-sign-modal .modal-header .close:hover,
.soc-praktiko-sign-modal .modal-header .close:focus,
.soc-praktiko-sign-modal .modal-header .btn-close:hover,
.soc-praktiko-sign-modal .modal-header .btn-close:focus{
    background-color:rgba(255,255,255,.10)!important;
    opacity:1!important;
}
.soc-praktiko-sign-modal .modal-body{
    padding:1.25rem!important;
    color:#1C2433!important;
    background:#fff!important;
}
.soc-praktiko-sign-modal .modal-body label{
    color:#27344d!important;
    font-weight:700!important;
}
.soc-praktiko-sign-modal .modal-body .form-control,
.soc-praktiko-sign-modal .modal-body .custom-select,
.soc-praktiko-sign-modal .modal-body select{
    min-height:42px!important;
    border:1px solid #dce2ea!important;
    border-radius:9px!important;
    box-shadow:none!important;
}
.soc-praktiko-sign-modal .modal-body .form-control:focus,
.soc-praktiko-sign-modal .modal-body .custom-select:focus,
.soc-praktiko-sign-modal .modal-body select:focus{
    border-color:#8aa9d9!important;
    box-shadow:0 0 0 .16rem rgba(37,99,235,.10)!important;
}
.soc-praktiko-sign-modal .modal-footer{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:.5rem!important;
    padding:.85rem 1.2rem!important;
    background:#f8fafc!important;
    border-top:1px solid #e6ebf1!important;
}
.soc-praktiko-sign-modal .modal-footer .btn{
    min-height:38px!important;
    margin:0!important;
    padding:.45rem .9rem!important;
    border-radius:8px!important;
    font-weight:700!important;
}
.soc-praktiko-sign-modal .modal-footer .btn-primary{
    background:#041E41!important;
    border-color:#041E41!important;
    color:#fff!important;
}
.soc-praktiko-sign-modal .modal-footer .btn-success{
    background:#16A34A!important;
    border-color:#16A34A!important;
    color:#fff!important;
}
.soc-praktiko-sign-modal .modal-footer .btn-secondary{
    background:#fff!important;
    border-color:#cbd5e1!important;
    color:#041E41!important;
}
@media (max-width:575.98px){
    .soc-praktiko-sign-modal .modal-dialog{margin:.75rem!important}
    .soc-praktiko-sign-modal .modal-footer{flex-direction:column-reverse!important;align-items:stretch!important}
    .soc-praktiko-sign-modal .modal-footer .btn,
    .soc-praktiko-sign-modal .modal-footer a.btn{width:100%!important}
}
