/* =========================================================
   LTOApp / ARC THEME
   Consolidated, deduplicated, HTML-compatible
   No HTML changes required
========================================================= */

/* =========================
   0) THEME TOKENS
========================= */
:root {
    --arc-primary: #0f172a;
    --arc-accent: #eab308;
    --arc-border: #e5e7eb;
    --arc-bg-light: #f8fafc;
    --arc-radius-sm: 6px;
    --arc-radius-md: 12px;
    --arc-radius-lg: 16px;
    --arc-radius-xl: 24px;
    --arc-shadow-soft: 0 8px 24px rgba(15,23,42,.06);
    --arc-shadow-hover: 0 12px 36px rgba(15,23,42,.10);
    --arc-shadow-card: 0 12px 32px rgba(15,23,42,.10);
    --arc-focus: 0 0 0 .15rem rgba(59,130,246,.15);
    --arc-font-ui: "Segoe UI", Arial, sans-serif;
    --arc-font-body: "Inter", sans-serif;
}

/* =========================
   1) BASE / PAGE
========================= */
body,
.arc-body {
    font-family: var(--arc-font-body);
    background: var(--arc-bg-light);
}

.arc-page {
    font-size: 14.5px;
    padding-bottom: 22px;
}

.arc-staff-shell {
    min-height: 100vh;
    background: var(--arc-bg-light);
}

.arc-staff-content {
    padding: 18px 14px 26px;
}

body.arc-auth {
    background: linear-gradient(135deg, rgba(13,110,253,.08), rgba(108,117,125,.06));
    min-height: 100vh;
}

/* =========================
   2) LAYOUT HELPERS
========================= */
#sec-attachments,
#sec-decision,
#sec-payment,
#sec-remarks {
    scroll-margin-top: 90px;
}

#portalMsgWrap,
#portalMsg {
    min-height: 48px;
}

.portal-wizard-body,
.wizard-body {
    min-height: 520px;
}

.arc-step-card .card-body,
.portal-form-shell {
    min-height: 560px;
}

/* =========================
   3) CARD SYSTEM
========================= */
.arc-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.06);
    border-radius: var(--arc-radius-lg);
    box-shadow: var(--arc-shadow-soft);
    overflow: hidden;
    transition: box-shadow .2s ease;
}

    .arc-card:hover {
        box-shadow: var(--arc-shadow-hover);
    }

.arc-card__header {
    padding: 14px 16px;
    border-bottom: 1px solid var(--arc-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.arc-card__body {
    padding: 16px;
}

.arc-card-title {
    font-size: 18px;
    font-weight: 600;
}

.arc-section-header {
    font-weight: 600;
    padding: 10px 12px;
    background: #f6f8fb;
    border-radius: 6px;
}

.arc-hero {
    background: #f8fafc;
    border-radius: 10px;
    padding: 18px 20px;
    border: 1px solid #e9ecef;
}

.section-card {
    border-radius: 10px;
    border: 1px solid #e3e3e3;
    background: #fff;
    padding: 18px;
    margin-bottom: 20px;
}

    .section-card h5,
    .section-card h6 {
        font-weight: 600;
        font-size: 15px;
        margin-bottom: 15px;
    }

    .section-card .row {
        margin-bottom: 10px;
    }

    .section-card small {
        font-size: 12px;
        color: #6c757d;
    }

/* =========================
   4) TABLES
========================= */
.arc-table thead th {
    font-weight: 900;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #475569;
    border-bottom: 1px solid var(--arc-border) !important;
}

.arc-table tbody td {
    border-color: var(--arc-border);
    background: transparent;
    font-size: 14.5px;
}

.arc-table td,
.arc-table th {
    font-size: 14px;
    padding-top: .65rem;
    padding-bottom: .65rem;
}

.arc-table tbody tr:hover > * {
    background-color: rgba(15,23,42,.03);
}

.arc-table a {
    font-weight: 600;
}

/* =========================
   5) BADGES / PILLS
========================= */
.arc-badge,
.arc-pill {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,.08);
    background: #eef4ff;
    color: #2a4ea1;
}

.badge {
    font-size: 12.5px;
    padding: .45em .65em;
    border-radius: 999px;
}

/* =========================
   6) STATUS BADGES
========================= */
.arc-status-pending {
    background: rgba(255,193,7,.14);
    color: #8a6d00;
}

.arc-status-reviewed {
    background: rgba(13,110,253,.12);
    color: #0d6efd;
}

.arc-status-processed {
    background: rgba(13,202,240,.14);
    color: #055160;
}

.arc-status-submitted {
    background: rgba(111,66,193,.12);
    color: #4f46e5;
}

.arc-status-approved {
    background: rgba(25,135,84,.12);
    color: #0f5132;
}

.arc-status-friction {
    background: rgba(220,53,69,.14);
    color: #b02a37;
}

.arc-status-archived {
    background: rgba(108,117,125,.12);
    color: #343a40;
}

.arc-status-default {
    background: rgba(108,117,125,.10);
    color: #343a40;
}

/* =========================
   7) PAYMENT BADGES
========================= */
.arc-pay-paid {
    background: rgba(25,135,84,.12);
    color: #0f5132;
}

.arc-pay-verify {
    background: rgba(13,110,253,.12);
    color: #0d6efd;
}

.arc-pay-partial {
    background: rgba(255,193,7,.18);
    color: #8a6d00;
}

.arc-pay-underpaid {
    background: rgba(220,53,69,.14);
    color: #b02a37;
}

.arc-pay-unpaid {
    background: rgba(220,53,69,.12);
    color: #b02a37;
}

.arc-pay-refund-pending {
    background: rgba(253,126,20,.16);
    color: #b24a00;
}

.arc-pay-refunded {
    background: rgba(25,135,84,.10);
    color: #146c43;
}

.arc-pay-void {
    background: rgba(108,117,125,.14);
    color: #495057;
}

.arc-pay-default {
    background: rgba(108,117,125,.10);
    color: #343a40;
}

/* =========================
   8) AGE PILLS
========================= */
.arc-age-ok {
    background: rgba(25,135,84,.12);
    color: #0f5132;
}

.arc-age-warn {
    background: rgba(255,193,7,.18);
    color: #8a6d00;
}

.arc-age-danger {
    background: rgba(220,53,69,.16);
    color: #b02a37;
}

/* =========================
   9) ROW SYSTEM
========================= */
.arc-row-queue {
    border-left: 6px solid transparent;
    transition: background .12s ease;
}

.arc-row-pending {
    border-left-color: #ffc107;
    background: rgba(255,193,7,.08);
}

.arc-row-reviewed {
    border-left-color: #0d6efd;
    background: rgba(13,110,253,.07);
}

.arc-row-processed {
    border-left-color: #0dcaf0;
    background: rgba(13,202,240,.07);
}

.arc-row-submitted {
    border-left-color: #6f42c1;
    background: rgba(111,66,193,.07);
}

.arc-row-approved {
    border-left-color: #198754;
    background: rgba(25,135,84,.07);
}

.arc-row-friction {
    border-left-color: #dc3545;
    background: rgba(220,53,69,.06);
}

.arc-row-archived {
    border-left-color: #6c757d;
    background: rgba(108,117,125,.06);
}

.arc-row-neutral {
    border-left-color: rgba(0,0,0,.15);
    background: rgba(0,0,0,.02);
}

/* =========================
   10) GRID / ATTACHMENT TONES
========================= */
.grid-tone-danger {
    border-left: 4px solid #dc3545;
    background-color: #fff5f5;
}

.grid-tone-warning {
    border-left: 4px solid #fd7e14;
    background-color: #fffaf3;
}

.grid-tone-success {
    border-left: 4px solid #198754;
    background-color: #f3fff8;
}

.grid-tone-pending {
    border-left: 4px solid #0d6efd;
    background-color: #f5f9ff;
}

.grid-tone-neutral {
    border-left: 4px solid #adb5bd;
}

.attach-missing,
.attach-rejected,
.attach-pending {
    border-radius: 8px;
    padding: 8px;
}

.attach-missing {
    border: 1px solid #fd7e14;
    background-color: #fff8f0;
}

.attach-rejected {
    border: 1px solid #dc3545;
    background-color: #fff5f5;
}

.attach-pending {
    border: 1px solid #0d6efd;
    background-color: #f5f9ff;
}

.arc-required-box {
    border: 1px dashed #cfcfcf;
    border-radius: 8px;
    padding: 15px;
    background: #fafafa;
}

/* =========================
   11) BUTTONS
========================= */
.arc-btn {
    font-size: 14px;
    padding: 6px 14px;
    border-radius: 12px;
    font-weight: 800;
}

.arc-btn-row {
    background: rgba(255,255,255,.65);
    border: 1px solid rgba(0,0,0,.10);
    padding: 7px 12px;
    border-radius: 999px;
}

    .arc-btn-row:hover {
        border-color: rgba(13,110,253,.26);
        box-shadow: 0 8px 18px rgba(13,110,253,.10);
    }

.btn {
    font-size: 14px;
    border-radius: 6px;
}

.arc-btn-primary {
    border-radius: 14px;
    padding: 14px 18px;
    font-weight: 600;
}

.arc-btn-secondary {
    border-radius: 12px;
    padding: 10px 16px;
    font-weight: 500;
}

.arc-btn-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(0,0,0,.12);
    background: #fff;
}

    .arc-btn-social:hover {
        background: rgba(0,0,0,.02);
    }

/* =========================
   12) FORMS
========================= */
.form-control,
.form-select {
    font-size: 14px !important;
    font-family: var(--arc-font-ui);
    height: 36px;
    border-radius: 6px;
}

.form-select {
    padding-top: 5px;
    padding-bottom: 5px;
}

label,
.form-label {
    font-size: 13px;
    font-weight: 500;
}

.arc-field-label {
    font-size: 14px;
    font-weight: 600;
}

.arc-field-value {
    font-size: 15px;
}

.arc-input {
    border-radius: 14px;
    border: 1px solid #dbe3ef;
    box-shadow: none;
}

    .arc-input:focus,
    .form-control:focus,
    .form-select:focus {
        border-color: #3b82f6;
        box-shadow: var(--arc-focus);
    }

.input-validation-error {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 0.12rem rgba(220, 53, 69, 0.15);
}

.text-danger.small {
    min-height: 18px;
    display: block;
}

.field-help {
    min-height: 36px;
    margin-top: 6px;
    font-size: 12px;
    color: #0d6efd;
    line-height: 1.45;
}

    .field-help span,
    .field-help .help-local {
        color: #6c757d;
    }

.dup-help {
    font-size: 12px;
    margin-top: 6px;
    color: #3b82f6;
}

.arc-tag {
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 20px;
    background: #f0f3f7;
}

/* =========================
   13) AUTH PAGES
========================= */
.arc-auth-shell {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 16px;
}

.arc-auth-card {
    width: 100%;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 24px;
    box-shadow: var(--arc-shadow-card);
    overflow: hidden;
}

.arc-auth-card-wide,
.arc-auth-card-reset,
.arc-auth-card-standard {
    width: 100%;
    display: grid;
}

.arc-auth-card-wide {
    max-width: 1100px;
    grid-template-columns: 1fr 1.3fr;
    min-height: 620px;
}

.arc-auth-card-reset {
    max-width: 1020px;
    grid-template-columns: 1fr 1.1fr;
    min-height: 600px;
}

.arc-auth-card-standard {
    max-width: 1040px;
    grid-template-columns: 1fr 1.1fr;
    min-height: 640px;
}

.arc-auth-left {
    background: linear-gradient(135deg, #f4f8ff 0%, #eef4ff 100%);
    padding: 48px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.arc-auth-right {
    padding: 40px;
    background: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.arc-auth-head {
    text-align: center;
    color: mediumblue;
}

.arc-auth-badge {
    width: 64px;
    height: 64px;
    border-radius: 18px;
    background: #e8f0ff;
    color: #1d4ed8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    margin-bottom: 18px;
}

.arc-auth-title {
    font-size: 2.25rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.1;
    margin: 0 0 8px;
}

.arc-auth-subtitle {
    color: #64748b;
    font-size: 1.05rem;
    margin-bottom: 16px;
}

.arc-auth-description,
.arc-auth-side-note {
    color: #475569;
    font-size: 0.98rem;
    line-height: 1.7;
    max-width: 420px;
}

.arc-auth-alert {
    border-radius: 14px;
    font-size: 0.95rem;
}

.arc-auth-divider {
    margin: 18px 0 6px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(0,0,0,.55);
    font-size: 13px;
}

    .arc-auth-divider::before,
    .arc-auth-divider::after {
        content: "";
        flex: 1;
        height: 1px;
        background: rgba(0,0,0,.10);
    }

    .arc-auth-divider span {
        white-space: nowrap;
    }

.arc-auth-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.arc-link {
    text-decoration: none;
}

    .arc-link:hover {
        text-decoration: underline;
    }

body.arc-auth input,
body.arc-auth select,
body.arc-auth textarea,
body.arc-auth button {
    max-width: 100%;
}

/* password toggle */
.arc-pass,
.arc-password-wrap {
    position: relative;
}

.arc-password-input {
    padding-right: 52px;
}

.arc-pass__toggle,
.arc-password-toggle {
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    padding: 0;
    color: #64748b;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

    .arc-pass__toggle:hover,
    .arc-password-toggle:hover {
        color: #2563eb;
    }

    .arc-pass__toggle:focus,
    .arc-password-toggle:focus {
        outline: none;
        box-shadow: none;
    }

/* =========================
   14) HOW IT WORKS PANEL
========================= */
.how-title {
    margin-bottom: 12px;
}

.how-divider {
    width: 40px;
    height: 3px;
    background: #4b7bec;
    margin-bottom: 18px;
    border-radius: 2px;
}

.how-icon {
    width: 48px;
    height: 48px;
    background: #eef3ff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #4b7bec;
}

.how-steps li {
    margin-bottom: 18px;
    position: relative;
    padding-left: 28px;
}

    .how-steps li:before {
        content: "";
        position: absolute;
        left: 6px;
        top: 6px;
        width: 8px;
        height: 8px;
        background: #4b7bec;
        border-radius: 50%;
    }

/* =========================
   15) ATTACHMENT GROUPS
========================= */
.attachment-group-block {
    margin-top: 10px;
}

.attachment-group-title {
    font-weight: 700;
    font-size: 18px;
    border-bottom: 2px solid #e5e7eb;
    padding-bottom: 6px;
    margin-bottom: 10px;
    color: #1f2937;
}

.group-note {
    font-size: 12px;
    color: #6b7280;
    margin-left: 8px;
    font-weight: 500;
}

/* =========================
   16) WIZARD
   FIXED: no default opacity hiding
   FIXED: no forced Bootstrap row/col overrides
========================= */
.arc-wizard {
    padding: 10px 0;
}

.wizard-step {
    flex: 1;
    position: relative;
}

.wizard-circle {
    width: 32px;
    height: 32px;
    margin: 0 auto;
    border-radius: 50%;
    background: #dee2e6;
    color: #fff;
    line-height: 32px;
    font-weight: 600;
}

.wizard-step.active .wizard-circle {
    background: #0d6efd;
}

.wizard-step.completed .wizard-circle {
    background: #198754;
}

.wizard-label {
    font-size: 12px;
    margin-top: 6px;
    color: #6c757d;
}

.wizard-pane {
    width: 100%;
    font-size: 1rem;
}

    .wizard-pane.d-none {
        display: none !important;
    }

    .wizard-pane .form-label {
        font-size: 0.875rem;
        font-weight: 600;
    }

    .wizard-pane .form-control,
    .wizard-pane .form-select {
        font-size: 1rem;
        display: block;
        width: 100%;
    }

    .wizard-pane .field-help,
    .wizard-pane .dup-help {
        font-size: 12px;
    }

    .wizard-pane .arc-section,
    .wizard-pane .arc-card {
        display: block;
        width: 100%;
    }

    /* optional safe spacing inside wizard rows */
    .wizard-pane .row {
        row-gap: 0;
    }

/* =========================
   17) RESPONSIVE
========================= */
@media (max-width: 991.98px) {
    .arc-auth-card-wide,
    .arc-auth-card-reset,
    .arc-auth-card-standard {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .arc-auth-left,
    .arc-auth-right {
        padding: 28px 22px;
    }

    .arc-auth-left {
        text-align: center;
        align-items: center;
    }

    .arc-auth-description,
    .arc-auth-side-note {
        max-width: 100%;
    }

    .arc-auth-actions {
        flex-direction: column;
        align-items: stretch;
    }

        .arc-auth-actions a,
        .arc-auth-actions form,
        .arc-auth-actions button {
            width: 100%;
            text-align: center;
        }
}

    .arc-auth-card-compact .arc-auth-right {
        padding: 32px 28px;
    }

    .arc-auth-card-compact .arc-auth-left {
        display: none;
    }

.arc-auth-card-compact {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 24px;
    box-shadow: var(--arc-shadow-card);
    overflow: hidden;
    padding: 32px 28px;
}

.arc-auth-card-forgot {
    max-width: 1020px;
    grid-template-columns: 1fr 1.1fr;
    min-height: 600px;
}

.arc-consent-check {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: 0.2rem;
    border: 1px solid #6b7280;
    cursor: pointer;
}

.form-check-label {
    cursor: pointer;
    line-height: 1.45;
}

.arc-section .form-check {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.arc-attachment-item,
.required-attachment-item,
.attachment-row {
    padding: 12px 14px;
    margin-bottom: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
}

    .arc-attachment-item:last-child,
    .required-attachment-item:last-child,
    .attachment-row:last-child {
        margin-bottom: 0;
    }

    .arc-attachment-item .form-control,
    .required-attachment-item .form-control,
    .attachment-row .form-control {
        margin-top: 8px;
    }

    .arc-attachment-item .badge,
    .required-attachment-item .badge,
    .attachment-row .badge {
        margin-left: 6px;
    }

#div_required_attachments .attachment-item,
#div_required_attachments .required-attachment-item,
#div_required_attachments .arc-attachment-row {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 14px;
    background: #fff;
}

    #div_required_attachments .attachment-item:last-child,
    #div_required_attachments .required-attachment-item:last-child,
    #div_required_attachments .arc-attachment-row:last-child {
        margin-bottom: 0;
    }

#div_required_attachments .form-label,
#div_required_attachments .fw-semibold {
    margin-bottom: 6px;
}

#div_required_attachments .text-muted.small {
    display: block;
    margin-top: 4px;
}

#div_required_attachments input[type="file"],
#div_required_attachments .form-control {
    margin-top: 10px;
}

.arc-consent-check {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: 0.15rem;
    border: 1px solid #6b7280;
    cursor: pointer;
    flex: 0 0 auto;
}

.arc-consent-group .form-check {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    margin-bottom: 1rem;
}

.arc-consent-group .form-check-label {
    line-height: 1.45;
    cursor: pointer;
}

/* =========================================
   STEP 4 - REQUIRED ATTACHMENTS SPACING
========================================= */
#div_required_attachments > * + * {
    margin-top: 14px;
}

#div_required_attachments .card,
#div_required_attachments .arc-card,
#div_required_attachments .attachment-item,
#div_required_attachments .required-attachment-item,
#div_required_attachments .attachment-row,
#div_required_attachments .row {
    margin-bottom: 12px;
}

#div_required_attachments .border,
#div_required_attachments .rounded,
#div_required_attachments .rounded-3 {
    padding: 12px 14px;
}

#div_required_attachments label,
#div_required_attachments .form-label {
    font-weight: 600;
    margin-bottom: 6px;
}

#div_required_attachments .text-muted {
    line-height: 1.45;
}

#div_required_attachments input[type="file"],
#div_required_attachments .form-control {
    margin-top: 8px;
}

/* =========================================
   STEP 4 - AUTHORIZATION / COMPLIANCE
========================================= */
.arc-consent-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.05);
}

.arc-consent-group .form-check {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding: 0.15rem 0;
}

.arc-consent-check {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: 0.2rem;
    border: 1px solid #6b7280;
    cursor: pointer;
    flex: 0 0 auto;
}

.arc-consent-group .form-check-label {
    line-height: 1.5;
    cursor: pointer;
    color: #1f2937;
}

.arc-consent-note {
    font-size: 0.875rem;
    color: #6b7280;
    margin-bottom: 1rem;
}

/* =========================================
   STEP 4 - BUTTON AREA
========================================= */
.arc-submit-hint {
    line-height: 1.45;
}

/* =========================================
   MOBILE FRIENDLY
========================================= */
@media (max-width: 767.98px) {
    .arc-consent-group .form-check {
        gap: 0.6rem;
    }

    .arc-consent-check {
        width: 1.1rem;
        height: 1.1rem;
    }
}

.field-help {
    margin-top: 6px;
    padding: 8px 10px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    font-size: 0.85rem;
    color: #475569;
    line-height: 1.45;
}

    .field-help span {
        display: block;
        margin-top: 2px;
        color: #64748b;
    }

/* =========================================================
   REQUIRED ATTACHMENTS - CLEAN UX
========================================================= */

/* Header spacing */
.arc-attach-header {
    padding: 4px 2px 10px;
}

/* Upload counter */
.arc-upload-progress {
    background: #f1f5f9;
    padding: 4px 10px;
    border-radius: 999px;
}

/* Accordion container */
.arc-attach-accordion {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
}

/* Accordion button */
.arc-acc-btn {
    font-weight: 600;
    background: #f8fafc;
}

/* Each attachment row */
.arc-attach-row {
    padding: 16px 18px;
    border-bottom: 1px solid #e5e7eb;
    background: #ffffff;
    transition: all 0.15s ease;
}

    .arc-attach-row:hover {
        background: #f9fafb;
    }

    /* Last row fix */
    .arc-attach-row:last-child {
        border-bottom: none;
    }

/* Icon box */
.arc-attach-ico {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #334155;
}

/* Title spacing */
.arc-attach-row .fw-semibold {
    line-height: 1.4;
}

/* Required badge */
.arc-req-badge {
    font-size: 0.7rem;
    padding: 3px 6px;
}

/* File input spacing */
.arc-file {
    margin-top: 8px;
}

/* File error */
.file-error {
    margin-top: 4px;
}

/* Remarks block */
.arc-attach-row .text-danger {
    line-height: 1.4;
}

/* Help text */
.arc-attach-row .text-muted {
    line-height: 1.45;
}

/* Alert refinement */
.arc-attach-accordion .alert {
    font-size: 0.85rem;
}

/* Better spacing between sections */
.accordion-body {
    padding-bottom: 8px;
}

/* MOBILE IMPROVEMENTS */
@media (max-width: 768px) {

    .arc-attach-row {
        padding: 14px;
    }

    .arc-attach-ico {
        width: 34px;
        height: 34px;
        font-size: 16px;
    }

    .arc-upload-progress {
        font-size: 0.75rem;
    }
}

/* =========================================
   AUTHORIZATION / COMPLIANCE FIX
========================================= */

.arc-consent-card {
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #ffffff;
    padding: 16px 18px;
    margin-top: 12px;
}

/* spacing between intro text and checkboxes */
.arc-consent-note {
    margin-bottom: 12px;
    line-height: 1.5;
}

/* each checkbox row */
.arc-consent-group .form-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 12px;
    padding: 8px 10px;
    border-radius: 10px;
    transition: background 0.15s ease;
}

    /* hover effect */
    .arc-consent-group .form-check:hover {
        background: #f8fafc;
    }

/* checkbox itself */
.arc-consent-check {
    width: 18px;
    height: 18px;
    margin-top: 3px;
    flex-shrink: 0;
    cursor: pointer;
}

/* label text */
.arc-consent-group .form-check-label {
    line-height: 1.5;
    cursor: pointer;
    color: #1f2937;
}

/* validation spacing */
.arc-consent-group .text-danger {
    margin-top: 4px;
}

.arc-consent-group .form-check input:checked + label {
    font-weight: 600;
    color: #0f172a;
}

/* FORCE CONSENT CHECKBOXES TO SHOW */
.form-check-input.arc-consent-check {
    -webkit-appearance: checkbox !important;
    -moz-appearance: checkbox !important;
    appearance: auto !important;
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 2 !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    margin-top: 3px !important;
    margin-right: 8px !important;
    border: 1px solid #64748b !important;
    background-color: #fff !important;
    box-shadow: none !important;
    accent-color: #2563eb !important;
    cursor: pointer !important;
}

.arc-consent-group .form-check {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    margin-bottom: 12px !important;
    padding: 8px 10px !important;
    border-radius: 10px !important;
}

.arc-consent-group .form-check-label {
    display: block !important;
    line-height: 1.5 !important;
    cursor: pointer !important;
    color: #1f2937 !important;
    margin: 0 !important;
}