﻿/* Elite Contigo: independent public/access identity, never the private CRM shell.
   Additive styling only. No auth, OTP, document or workflow behavior lives here. */
@media screen {
    body.crm-public-soft {
        --crm-blue: #4554ec;
        --crm-blue-dark: #3341c8;
        --crm-black: #141a3e;
        --crm-text: #141a3e;
        --crm-muted: #56627d;
        --crm-border: #e1e7f3;
        --crm-bg: #f5f7ff;
        --crm-blue-soft: #eef1ff;
        --remax-blue: #4554ec;
        --remax-blue-dark: #3341c8;
        --text: #141a3e;
        --muted: #56627d;
        --soft: #f6f8fd;
        min-height: 100vh;
        margin: 0;
        color: #141a3e;
        background: linear-gradient(135deg,#edf0ff 0%,#f8faff 55%,#f3f6ff 100%);
        font-family: "Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }
    .crm-public-soft * { box-sizing: border-box; }
    .crm-public-soft .login-page { background: transparent; }
    .crm-public-soft .login-topbar { height: 64px; min-height: 64px; border: 0; background: #fff; backdrop-filter: none; }
    .crm-public-soft :is(.login-main,.password-page,.error-page,.request-page) { padding: 24px; }
    .crm-public-soft :is(.error-page,.request-page) { min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; justify-content: center; }
    .crm-public-soft :is(.login-card,.password-card,.error-card,.request-card) { background: #fff; border: 0; border-radius: 22px; box-shadow: 0 14px 48px rgba(38,54,123,.07); }
    .crm-public-soft :is(.error-card,.request-card) { width: min(680px,100%); padding: 32px; }
    .crm-public-soft :is(.login-card,.password-card)::before { height: 3px; }
    .crm-public-soft :is(.login-card-inner,.password-card-inner) { padding: 32px; }
    .crm-public-soft :is(h1,.login-title,.password-title) { font-size: clamp(1.55rem,3.5vw,2rem); line-height: 1.18; font-weight: 750; letter-spacing: -.035em; }
    .crm-public-soft .error-title { font-size: clamp(1.25rem,3vw,1.55rem); font-weight: 700; }
    .crm-public-soft :is(.login-description,.password-description,.error-text,.request-text) { color: #56627d; font-size: .95rem; }
    .crm-public-soft .form-label { font-weight: 650; }
    .crm-public-soft .form-control { border: 1px solid #7d89a2; border-radius: 12px; background: #f6f8fd; box-shadow: none; min-height: 48px; }
    .crm-public-soft .form-control::placeholder { color: #64708b; }
    .crm-public-soft .form-control:focus { border-color: #4554ec; background: #fff; box-shadow: 0 0 0 3px rgba(69,84,236,.14); }
    .crm-public-soft .login-input-icon { background: transparent; border-radius: 0; width: 24px; color: #56627d; }
    .crm-public-soft .login-input-icon svg { width: 20px; height: 20px; }
    .crm-public-soft .password-toggle { min-height: 40px; font-weight: 650; border-radius: 8px; }
    .crm-public-soft :is(.btn-login,.btn-save,.error-btn,.request-btn) { min-height: 44px; border-radius: 12px; box-shadow: none; font-weight: 650; }
    .crm-public-soft :is(.btn-login,.btn-save):hover { box-shadow: none; transform: none; }
    .crm-public-soft :is(.error-logo,.request-logo) { border: 0; border-radius: 0; padding: 0; width: 148px; }
    .crm-public-soft :is(.password-kicker,.error-kicker,.request-kicker,.error-incident-label) { text-transform: none; letter-spacing: 0; font-weight: 650; }
    .crm-public-soft :is(.password-help,.error-note,.request-note,.error-incident) { background: #f6f8fd; border: 0; border-radius: 12px; }
    .crm-public-soft :is(a,button,input):focus-visible { outline: 3px solid #2636b7; outline-offset: 3px; }
    @media (max-width: 575.98px) {
        .crm-public-soft :is(.login-main,.password-page,.error-page,.request-page) { padding: 16px; align-items: center; }
        .crm-public-soft :is(.login-card-inner,.password-card-inner,.error-card,.request-card) { padding: 24px 20px; }
        .crm-public-soft :is(.login-card,.password-card,.error-card,.request-card) { border-radius: 18px; }
        .crm-public-soft .login-main { flex: 1; }
        .crm-public-soft .form-control { font-size: 16px; }
    }
    /* Customer KYC: one continuous document, not a stack of nested cards. */
    body.kyc-portal-body.crm-public-soft {
        --kyc-blue: #4554ec; --kyc-blue-dark: #3341c8; --kyc-black: #141a3e;
        --kyc-text: #34415f; --kyc-muted: #56627d; --kyc-border: #e1e7f3;
        --kyc-bg: #f5f7ff; --kyc-soft: #f6f8fd; --kyc-blue-soft: #eef1ff;
    }
    .crm-public-soft .kyc-portal-page { background: transparent; }
    .crm-public-soft :is(.kyc-portal-topbar,.kyc-portal-topbar-inner) { min-height: 64px; }
    .crm-public-soft .kyc-portal-topbar { background: #fff; backdrop-filter: none; }
    .crm-public-soft .kyc-portal-main { padding: 24px 20px; }
    .crm-public-soft .kyc-portal-shell { max-width: 1080px; }
    .crm-public-soft .kyc-portal-progress { background: transparent; border: 0; box-shadow: none; padding: 8px 0; margin-bottom: 20px; }
    .crm-public-soft .kyc-progress-step { color: #56627d; }
    .crm-public-soft .kyc-progress-step.is-active { color: #3341c8; }
    .crm-public-soft .kyc-progress-step.is-complete { color: #17603a; }
    .crm-public-soft :is(.kyc-access-card,.kyc-portal-card,.kyc-status-card) { background: #fff; border: 0; border-radius: 20px; box-shadow: 0 10px 36px rgba(38,54,123,.06); }
    .crm-public-soft :is(.kyc-access-card,.kyc-portal-card,.kyc-status-card)::before { height: 3px; }
    .crm-public-soft .kyc-access-panel { padding: 32px; }
    .crm-public-soft .kyc-access-heading { background: linear-gradient(120deg,#edf0ff,#f8faff); margin: -32px -32px 24px; padding: 28px 32px 8px; }
    .crm-public-soft .kyc-access-heading h1 { margin: 0 0 10px; }
    .crm-public-soft :is(.kyc-access-flow,.kyc-status-summary) { border: 0; background: transparent; padding: 0; }
    .crm-public-soft :is(.kyc-email-note,.kyc-portal-note) { border: 0; border-radius: 12px; }
    .crm-public-soft .kyc-portal-header { padding: 24px 28px; border: 0; background: linear-gradient(115deg,#edf0ff 0%,#f5f7ff 60%,#e4ebff 100%); }
    .crm-public-soft .kyc-portal-header h1 { margin: 10px 0 8px; font-size: clamp(1.55rem,3.5vw,2rem); font-weight: 750; }
    .crm-public-soft .kyc-panel-kicker { background: transparent; border: 0; border-radius: 0; padding: 0; font-weight: 650; }
    .crm-public-soft .kyc-request-meta { gap: 8px 24px; margin-top: 14px; }
    .crm-public-soft .kyc-request-meta > span { background: transparent; border: 0; border-radius: 0; padding: 0; }
    .crm-public-soft .kyc-portal-content { padding: 24px 28px; }
    .crm-public-soft :is(.kyc-portal-section,.kyc-dynamic-group,.kyc-review-card,.kyc-doc-card) { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 20px 0; margin: 0; }
    .crm-public-soft :is(.kyc-portal-section,.kyc-dynamic-group,.kyc-review-card,.kyc-doc-card) + :is(.kyc-portal-section,.kyc-dynamic-group,.kyc-review-card,.kyc-doc-card) { border-top: 1px solid #e1e7f3; }
    .crm-public-soft .kyc-portal-section h2 { margin-bottom: 16px; font-weight: 700; font-size: 1.1rem; }
    .crm-public-soft .kyc-portal-section h2::before { width: 28px; height: 28px; border-radius: 50%; }
    .crm-public-soft :is(.kyc-repeat-row,.kyc-owner-card) { background: #f6f8fd; border: 0; border-radius: 12px; box-shadow: none; padding: 16px; }
    .crm-public-soft :is(.form-control,.form-select) { min-height: 44px; border-radius: 12px; border-color: #7d89a2; background-color: #f6f8fd; color: #141a3e; font-size: 1rem; }
    .crm-public-soft .form-select:focus { border-color: #4554ec; box-shadow: 0 0 0 3px rgba(69,84,236,.14); }
    .crm-public-soft .kyc-otp-input { font-size: 1.2rem; }
    .crm-public-soft .form-text { color: #56627d; }
    .crm-public-soft .form-check-input { border-color: #7d89a2; }
    .crm-public-soft .kyc-declaration-consent { border-radius: 12px; }
    .crm-public-soft :is(.kyc-portal-card,.kyc-access-card,.kyc-status-card,.kyc-session-expired-dialog) .btn { min-height: 44px; font-weight: 650; border-radius: 12px; box-shadow: none; transform: none; white-space: normal; }
    .crm-public-soft .kyc-dynamic-progress span { background: #4554ec; }
    .crm-public-soft .kyc-dynamic-nav { background: #fff; padding: 14px 0; }
    .crm-public-soft :is(.kyc-autosave-status,.kyc-existing-docs) { border-radius: 12px; box-shadow: none; }
    .crm-public-soft .kyc-status-card { padding: 32px; margin-top: 12px; }
    .crm-public-soft .kyc-status-card h1 { font-weight: 750; }
    .crm-public-soft .kyc-portal-warning { flex-wrap: wrap; }
    .crm-public-soft .kyc-session-expired-dialog { max-height: calc(100dvh - 32px); overflow-y: auto; }
    .crm-public-soft .kyc-portal-policy-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 2px; }
    .crm-public-soft :is(select,textarea):focus-visible { outline: 3px solid #2636b7; outline-offset: 3px; }
    /* The panorama remains the workspace. Its specialized controls stay local. */
    body.crm-tour-public { --remax-text: #141a3e; --remax-muted: #56627d; --remax-blue-soft: #eef1ff; background: #162346; }
    .crm-tour-public .tour-topbar { background: #fff; border: 0; box-shadow: 0 1px 0 #e1e7f3; }
    .crm-tour-public .tour-logo { border: 0; border-radius: 0; box-shadow: none; }
    .crm-tour-public .tour-title { margin: 0; font-size: 1.05rem; line-height: 1.2; font-weight: 750; letter-spacing: -.02em; }
    .crm-tour-public .tour-kicker { font-weight: 650; text-transform: none; letter-spacing: 0; }
    .crm-tour-public :is(.tour-btn,.tour-mini-btn,.scene-chip) { min-height: 44px; border-radius: 12px; font-weight: 650; box-shadow: none; }
    .crm-tour-public :is(.tour-btn,.scene-chip):hover { transform: none; }
    .crm-tour-public :is(.tour-info-card,.mobile-action-bar) { border: 0; border-radius: 16px; box-shadow: 0 8px 28px rgba(20,26,62,.15); backdrop-filter: none; }
    .crm-tour-public .scene-list-label { text-transform: none; letter-spacing: 0; font-weight: 650; box-shadow: none; border: 0; }
    .crm-tour-public .loading-overlay { background: #162346; }
    .crm-tour-public :is(.tour-viewer-area,#tourViewer) { background: #162346; }
    .crm-tour-public .scene-chip { flex: 0 0 auto; }
    .crm-tour-public .tour-empty { background: #162346; }
    .crm-tour-public .tour-empty-card { border: 0; box-shadow: none; background: transparent; }
    .crm-tour-public .tour-empty-card h2 { font-size: 1.65rem; }
    .crm-tour-public .tour-dependency-warning { position: absolute; z-index: 40; top: 16px; left: 16px; right: 16px; background: #fff8e7; color: #714c00; border-radius: 12px; padding: 12px 16px; }
    .crm-tour-public:has(.tour-dependency-warning:not([hidden])) .loading-overlay { display: none; }
    @media (max-width: 767.98px) {
        .crm-public-soft .kyc-portal-main { padding: 16px 12px; }
        .crm-public-soft :is(.kyc-portal-content,.kyc-portal-header) { padding: 20px; }
        .crm-public-soft .kyc-dynamic-nav > .d-flex { flex-wrap: wrap; }
        .crm-public-soft .kyc-dynamic-nav > .d-flex > .d-flex { flex: 1 1 100%; flex-wrap: wrap; }
        .crm-public-soft .kyc-dynamic-nav .btn { flex: 1 1 auto; }
        .crm-tour-public .tour-title { font-size: .9rem; }
        .crm-tour-public .mobile-action-bar .tour-btn { min-height: 44px; }
    }
    @media (max-width: 575.98px) {
        .crm-public-soft :is(.kyc-access-panel,.kyc-status-card) { padding: 24px 20px; }
        .crm-public-soft .kyc-access-heading { margin: -24px -20px 20px; padding: 24px 20px 8px; }
        .crm-public-soft :is(.kyc-portal-content,.kyc-portal-header) { padding: 20px 16px; }
        .crm-public-soft .kyc-portal-progress { padding: 8px 0; }
        .crm-public-soft .kyc-progress-copy strong { font-size: .67rem; }
        .crm-public-soft .kyc-progress-step { gap: 4px; }
    }
    @media (prefers-reduced-motion: reduce) {
        .crm-public-soft *, .crm-public-soft *::before, .crm-public-soft *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    }
}
