/**
 * Alberta Lands Listings - Portal Auth Styles
 * MODAL/POPUP LAYOUT matching client design specs
 * Brand Colors: Primary #205b86, Secondary #2c5f8a, Dark #2c3e50
 */

/* ========================================
   GLOBAL RESET
   ======================================== */
.all-portal-auth-wrap *,
.all-portal-buttons *,
.all-dash-wrap * {
    box-sizing: border-box !important;
}
.all-portal-auth-wrap button,
.all-portal-auth-wrap a,
.all-portal-buttons button,
.all-portal-buttons a {
    color: inherit;
    text-decoration: none !important;
    outline: none !important;
}

/* ========================================
   PORTAL BUTTONS SHORTCODE (Header)
   ======================================== */
.all-portal-buttons {
    display: flex !important;
    gap: 12px !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}
.all-portal-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 24px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    border: 2px solid transparent !important;
    transition: all 0.25s ease !important;
    line-height: 1.4 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.all-portal-btn svg { flex-shrink: 0 !important; }
.all-portal-btn-login {
    background: #fff !important;
    color: #222 !important;
    border-color: #fff !important;
}
.all-portal-btn-login svg {
    stroke: #205b86 !important;
}
.all-portal-btn-login:hover,
.all-portal-btn-login:focus {
    background: #f0f0f0 !important;
    border-color: #f0f0f0 !important;
    color: #000 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12) !important;
}
.all-portal-btn-signup {
    background: #2075F2 !important;
    color: #fff !important;
    border-color: #2075F2 !important;
}
.all-portal-btn-signup:hover,
.all-portal-btn-signup:focus {
    background: #1a63d0 !important;
    border-color: #1a63d0 !important;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(32,117,242,0.3) !important;
}
.all-portal-btn-logout {
    background: #fff !important;
    color: #222 !important;
    border-color: #fff !important;
}
.all-portal-btn-logout svg {
    stroke: #222 !important;
}
.all-portal-btn-logout:hover,
.all-portal-btn-logout:focus {
    background: #f0f0f0 !important;
    border-color: #f0f0f0 !important;
    color: #000 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12) !important;
}
.all-portal-btn-dashboard {
    background: #fff !important;
    color: #222 !important;
    border-color: #fff !important;
}
.all-portal-btn-dashboard svg {
    stroke: #222 !important;
}
.all-portal-btn-dashboard:hover,
.all-portal-btn-dashboard:focus {
    background: #f0f0f0 !important;
    border-color: #f0f0f0 !important;
    color: #000 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.12) !important;
}

/* Header Heart Icon with Counter */
.all-portal-heart-header {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 10px !important;
    background: #3b5998 !important;
    transition: all 0.25s ease !important;
    cursor: pointer !important;
    text-decoration: none !important;
    flex-shrink: 0 !important;
    box-shadow: 0 2px 8px rgba(59,89,152,0.3) !important;
}
.all-portal-heart-header:hover,
.all-portal-heart-header:focus {
    background: #324d85 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(59,89,152,0.4) !important;
    text-decoration: none !important;
}
.all-portal-heart-header svg {
    display: block !important;
    flex-shrink: 0 !important;
}
.all-portal-heart-counter {
    position: absolute !important;
    bottom: -4px !important;
    right: -6px !important;
    min-width: 20px !important;
    height: 20px !important;
    border-radius: 50% !important;
    background: #6b7b8d !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    padding: 0 4px !important;
    border: 2px solid #fff !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.15) !important;
}

/* ========================================
   MAIN WRAPPER
   ======================================== */
.all-portal-auth-wrap {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 40px 16px !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
    -webkit-font-smoothing: antialiased !important;
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
}

/* ========================================
   STEP VISIBILITY
   ======================================== */
.all-portal-step {
    display: none !important;
    width: 100% !important;
    max-width: 560px !important;
}
.all-portal-step.active {
    display: block !important;
    animation: allPortalFadeIn 0.3s ease;
}

@keyframes allPortalFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes allPortalSpin {
    to { transform: rotate(360deg); }
}

/* ========================================
   MODAL BOX
   ======================================== */
.all-portal-modal {
    background: #fff !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    box-shadow: 0 8px 40px rgba(0,0,0,0.15), 0 0 0 1px rgba(0,0,0,0.08) !important;
    border: 3px solid #555 !important;
}

/* ========================================
   MODAL HEADER (Blue bar)
   ======================================== */
.all-portal-modal-header {
    background: linear-gradient(135deg, #3b5f8a 0%, #5a7faa 100%) !important;
    padding: 16px 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}
.all-portal-modal-header h2 {
    color: #fff !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    margin: 0 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
}
.all-portal-modal-header-blue {
    background: linear-gradient(135deg, #2c5f8a 0%, #3b7ab8 100%) !important;
}
.all-portal-modal-close {
    background: rgba(255,255,255,0.25) !important;
    border: 2px solid rgba(255,255,255,0.45) !important;
    color: #fff !important;
    width: 34px !important;
    height: 34px !important;
    border-radius: 8px !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 0 !important;
    transition: all 0.2s !important;
    padding: 0 0 1px 0 !important;
    flex-shrink: 0 !important;
}
.all-portal-modal-close svg {
    display: block !important;
}
.all-portal-modal-close:hover {
    background: rgba(255,255,255,0.4) !important;
}

/* ========================================
   MODAL BODY
   ======================================== */
.all-portal-modal-body {
    padding: 32px 36px !important;
}
.all-portal-modal-subtitle {
    color: #64748b !important;
    font-size: 14px !important;
    margin: 0 0 24px !important;
    text-align: center !important;
}

/* ========================================
   CHOOSE PORTAL (Step 1)
   ======================================== */
.all-portal-choose-body {
    text-align: center !important;
}
p.all-portal-tagline-small,
.all-portal-choose-body p.all-portal-tagline-small,
.all-portal-modal-body p.all-portal-tagline-small {
    color: #5a7faa !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    margin: 0 0 4px !important;
    letter-spacing: 1px !important;
}
.all-portal-tagline-big {
    color: #1e2a3a !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    margin: 0 0 32px !important;
    line-height: 1.3 !important;
    text-transform: uppercase !important;
}
.all-portal-choose-grid {
    display: flex !important;
    justify-content: center !important;
    gap: 24px !important;
    margin-bottom: 28px !important;
}
.all-portal-choose-btn {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    width: 160px !important;
    height: 160px !important;
    background: #2c5f8a !important;
    border: none !important;
    border-radius: 18px !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    padding: 20px !important;
    color: #fff !important;
}
.all-portal-choose-btn:hover {
    background: #1e4a6e !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 24px rgba(44,95,138,0.35) !important;
}
.all-portal-choose-icon svg {
    width: 56px !important;
    height: 56px !important;
}
.all-portal-choose-label {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #fff !important;
    line-height: 1.2 !important;
    text-align: center !important;
}

.all-portal-choose-signup {
    margin: 20px 0 12px !important;
    text-align: center !important;
}
.all-portal-choose-signup p {
    color: #5a7faa !important;
    font-size: 14px !important;
    font-style: italic !important;
    margin: 0 0 8px !important;
}
.all-portal-signup-here-btn {
    display: inline-block !important;
    background: #2c3e50 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 24px !important;
    padding: 10px 28px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
}
.all-portal-signup-here-btn:hover {
    background: #1a2533 !important;
    transform: translateY(-1px) !important;
}

.all-portal-terms-text {
    color: #5a7faa !important;
    font-size: 12px !important;
    font-style: italic !important;
    margin: 16px 0 8px !important;
    text-align: center !important;
}
.all-portal-terms-text a {
    color: #2c5f8a !important;
    text-decoration: underline !important;
    font-weight: 500 !important;
}
.all-portal-terms-text a:hover {
    color: #1e4a6e !important;
}

.all-portal-modal-logo {
    text-align: center !important;
    margin-top: 12px !important;
}
.all-portal-modal-logo img {
    max-width: 240px !important;
    height: auto !important;
}

/* ========================================
   SIGN IN OPTIONS (Step 2)
   ======================================== */
.all-portal-portal-icon-display {
    text-align: center !important;
    margin-bottom: 24px !important;
}
.all-portal-portal-icon-display.small {
    margin-bottom: 20px !important;
}
.all-portal-portal-icon-box {
    display: inline-flex !important;
    background: #2c5f8a !important;
    border-radius: 18px !important;
    padding: 20px !important;
    margin-bottom: 10px !important;
}
.all-portal-portal-icon-display.small .all-portal-portal-icon-box {
    padding: 14px !important;
    border-radius: 14px !important;
}
.all-portal-portal-icon-label {
    display: block !important;
    color: #2c5f8a !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    text-align: center !important;
    line-height: 1.25 !important;
}

.all-portal-social-buttons {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    max-width: 380px !important;
    margin: 0 auto 20px !important;
}
.all-portal-social-btn {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    padding: 12px 18px !important;
    background: #fff !important;
    border: 1.5px solid #e0e0e0 !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #333 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    font-family: inherit !important;
}
.all-portal-social-btn:hover:not(:disabled) {
    border-color: #2c5f8a !important;
    background: #f7fafc !important;
}
.all-portal-social-btn:disabled {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
}
.all-portal-social-btn svg {
    flex-shrink: 0 !important;
}

/* Social icon wrap backgrounds (matching screenshot badges) */
.all-portal-social-icon-wrap {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}
.all-portal-google-icon-wrap {
    width: 36px !important;
    height: 36px !important;
    background: #f5f5f5 !important;
    border-radius: 50% !important;
    border: 1px solid #e0e0e0 !important;
}
.all-portal-apple-icon-wrap {
    width: 36px !important;
    height: 36px !important;
    background: #333 !important;
    border-radius: 50% !important;
    color: #fff !important;
}
.all-portal-apple-icon-wrap svg {
    fill: #fff !important;
    color: #fff !important;
}
.all-portal-email-icon-wrap {
    width: 36px !important;
    height: 36px !important;
    background: #2c5f8a !important;
    border-radius: 10px !important;
}
.all-portal-email-icon-wrap svg {
    stroke: #fff !important;
}

.all-portal-or-divider {
    text-align: center !important;
    color: #5a7faa !important;
    font-size: 14px !important;
    font-style: italic !important;
    margin: 4px 0 !important;
}

/* ========================================
   FORM FIELDS
   ======================================== */
.all-portal-form { width: 100% !important; }
.all-portal-field { margin-bottom: 16px !important; }
.all-portal-auth-wrap .all-portal-field label,
.all-portal-field label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #333 !important;
    margin-bottom: 6px !important;
    line-height: 1.4 !important;
}
.all-portal-auth-wrap .all-portal-field input[type="text"],
.all-portal-auth-wrap .all-portal-field input[type="email"],
.all-portal-auth-wrap .all-portal-field input[type="password"],
.all-portal-auth-wrap .all-portal-field input[type="tel"] {
    width: 100% !important;
    padding: 11px 14px !important;
    border: 1.5px solid #ddd !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    color: #333 !important;
    background: #fff !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    outline: none !important;
    font-family: inherit !important;
    line-height: 1.5 !important;
}
.all-portal-auth-wrap .all-portal-field input:focus {
    border-color: #2c5f8a !important;
    box-shadow: 0 0 0 3px rgba(44,95,138,0.1) !important;
}
.all-portal-auth-wrap .all-portal-field input::placeholder {
    color: #aaa !important;
    font-style: italic !important;
}
.all-portal-auth-wrap .all-portal-field input.error {
    border-color: #ef4444 !important;
    box-shadow: 0 0 0 3px rgba(239,68,68,0.08) !important;
}

/* Password field with toggle */
.all-portal-input-pw-wrap {
    position: relative !important;
}
.all-portal-input-pw-wrap input {
    padding-right: 42px !important;
}
.all-portal-toggle-pw {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    padding: 4px !important;
    display: flex !important;
    align-items: center !important;
    z-index: 1 !important;
    color: #94a3b8 !important;
}
.all-portal-toggle-pw:hover { color: #2c5f8a !important; }
.all-portal-toggle-pw:hover svg { stroke: #2c5f8a !important; }

/* Password match indicator */
.all-portal-pw-match-indicator {
    display: block !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    margin-top: 5px !important;
    min-height: 18px !important;
    line-height: 1.4 !important;
    transition: color 0.2s !important;
}
.all-portal-pw-match-indicator.match {
    color: #16a34a !important;
}
.all-portal-pw-match-indicator.no-match {
    color: #ef4444 !important;
}

/* Select */
.all-portal-select-wrap { position: relative !important; }
.all-portal-auth-wrap .all-portal-select-wrap select,
.all-portal-select-wrap select {
    width: 100% !important;
    padding: 11px 36px 11px 14px !important;
    border: 1.5px solid #ddd !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    color: #333 !important;
    background: #fff !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    outline: none !important;
    font-family: inherit !important;
    background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L7 7L13 1' stroke='%232c5f8a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
}
.all-portal-select-wrap select:focus {
    border-color: #2c5f8a !important;
    box-shadow: 0 0 0 3px rgba(44,95,138,0.1) !important;
}
.all-portal-select-wrap select.error { border-color: #ef4444 !important; }

/* 2 Column Row */
.all-portal-field-row-2col {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
}
/* Field row */
.all-portal-field-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 20px !important;
}
/* Checkbox */
.all-portal-checkbox-label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
    cursor: pointer !important;
    font-size: 13px !important;
    color: #555 !important;
}
.all-portal-checkbox-label input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
    accent-color: #2c5f8a !important;
    cursor: pointer !important;
}
.all-portal-auth-wrap .all-portal-forgot-link,
a.all-portal-forgot-link {
    font-size: 13px !important;
    color: #2c5f8a !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}
.all-portal-auth-wrap .all-portal-forgot-link:hover,
a.all-portal-forgot-link:hover {
    text-decoration: underline !important;
    color: #1e4a6e !important;
}

/* ========================================
   CONSENT CHECKBOX (Step 2)
   ======================================== */
.all-portal-consent-field {
    background: #f5f8fb !important;
    border: 1.5px solid #ddd !important;
    border-radius: 10px !important;
    padding: 16px 18px !important;
    margin-bottom: 20px !important;
}
.all-portal-consent-field.highlight {
    border-color: #ef4444 !important;
    background: #fef2f2 !important;
    animation: allPortalShake 0.5s ease !important;
}
@keyframes allPortalShake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-6px); }
    40%, 80% { transform: translateX(6px); }
}
.all-portal-consent-title {
    font-size: 14px !important;
    font-weight: 800 !important;
    color: #2c3e50 !important;
    margin: 0 0 10px !important;
    text-transform: uppercase !important;
}
.all-portal-consent-checkbox { gap: 10px !important; }
.all-portal-consent-checkbox input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    margin-top: 2px !important;
    accent-color: #2c5f8a !important;
}
.all-portal-consent-text {
    font-size: 12px !important;
    color: #444 !important;
    line-height: 1.6 !important;
    text-decoration: none !important;
}

/* ========================================
   STEP 2 SUBTITLE
   ======================================== */
.all-portal-step2-subtitle {
    color: #2c5f8a !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    margin: 0 0 24px !important;
    text-transform: uppercase !important;
}

/* ========================================
   BUTTONS
   ======================================== */
.all-portal-auth-wrap .all-portal-submit-btn,
button.all-portal-submit-btn,
.all-portal-submit-btn {
    width: 100% !important;
    padding: 12px 24px !important;
    background: #2c3e50 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 24px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    font-family: inherit !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.5 !important;
    text-decoration: none !important;
}
.all-portal-auth-wrap .all-portal-submit-btn:hover:not(:disabled),
button.all-portal-submit-btn:hover:not(:disabled),
.all-portal-submit-btn:hover:not(:disabled) {
    background: #1a2533 !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 14px rgba(44,62,80,0.25) !important;
}
.all-portal-auth-wrap .all-portal-submit-btn:disabled,
.all-portal-submit-btn:disabled {
    background: #94a3b8 !important;
    color: #ffffff !important;
    cursor: not-allowed !important;
    opacity: 0.7 !important;
    box-shadow: none !important;
}
.all-portal-submit-btn .all-portal-btn-loader svg {
    animation: allPortalSpin 1s linear infinite !important;
}
.all-portal-submit-btn .all-portal-btn-loader { color: #ffffff !important; }

/* Sign Up button inside the form grid */
.all-portal-signup-btn-field {
    display: flex !important;
    align-items: flex-end !important;
}
.all-portal-signup-btn {
    width: auto !important;
    min-width: 120px !important;
    padding: 11px 32px !important;
    margin-bottom: 0 !important;
}

/* Step 2 Skip/Finish buttons */
.all-portal-step2-buttons {
    display: flex !important;
    justify-content: center !important;
    gap: 16px !important;
    margin-top: 8px !important;
}
.all-portal-skip-btn {
    padding: 12px 36px !important;
    background: #5a6577 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 24px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    font-family: inherit !important;
}
.all-portal-skip-btn:hover {
    background: #434d5c !important;
    transform: translateY(-1px) !important;
}
.all-portal-finish-btn {
    padding: 12px 36px !important;
    background: #1a7a6d !important;
    color: #fff !important;
    border: none !important;
    border-radius: 24px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    font-family: inherit !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.all-portal-finish-btn:hover:not(:disabled) {
    background: #146b5f !important;
    transform: translateY(-1px) !important;
}
.all-portal-finish-btn:disabled {
    background: #94a3b8 !important;
    cursor: not-allowed !important;
    opacity: 0.7 !important;
}
.all-portal-finish-btn .all-portal-btn-loader svg {
    animation: allPortalSpin 1s linear infinite !important;
}

/* Done button */
.all-portal-done-btn {
    display: inline-block !important;
    padding: 12px 48px !important;
    background: #2c3e50 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 24px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    font-family: inherit !important;
}
.all-portal-done-btn:hover {
    background: #1a2533 !important;
    transform: translateY(-1px) !important;
}

/* ========================================
   RECAPTCHA
   ======================================== */
.all-portal-recaptcha-placeholder {
    margin-top: 4px !important;
}
.all-portal-recaptcha-row .g-recaptcha {
    transform: scale(0.85) !important;
    transform-origin: 0 0 !important;
}
.all-portal-recaptcha-row .all-portal-field {
    min-height: 78px !important;
}

/* Already have account link */
.all-portal-already-account {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-end !important;
}
.all-portal-signin-link {
    color: #5a7faa !important;
    font-size: 12px !important;
    font-style: italic !important;
    text-decoration: underline !important;
    cursor: pointer !important;
}
.all-portal-signin-link strong {
    color: #2c3e50 !important;
    text-decoration: underline !important;
}
.all-portal-signin-link:hover {
    color: #2c5f8a !important;
}

/* ========================================
   SUCCESS / CHECK EMAIL (Step 6)
   ======================================== */
.all-portal-success-body {
    text-align: center !important;
    padding: 40px 36px !important;
}
.all-portal-success-title {
    color: #2c3e50 !important;
    font-size: 22px !important;
    font-weight: 800 !important;
    margin: 0 0 12px !important;
}
.all-portal-success-subtitle {
    color: #666 !important;
    font-size: 14px !important;
    margin: 0 0 28px !important;
}

.all-portal-success-actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 8px !important;
}
.all-portal-auth-wrap .all-portal-resend-btn,
button.all-portal-resend-btn,
.all-portal-resend-btn {
    background: none !important;
    border: none !important;
    color: #5a7faa !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    padding: 6px !important;
    text-decoration: underline !important;
    font-family: inherit !important;
}
.all-portal-resend-btn:hover { color: #2c5f8a !important; }
.all-portal-resend-btn:disabled { color: #94a3b8 !important; cursor: not-allowed !important; }

/* ========================================
   MESSAGES
   ======================================== */
.all-portal-message {
    padding: 12px 16px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    margin-bottom: 12px !important;
    margin-top: 10px !important;
}
.all-portal-message.success {
    background: #f0fdf4 !important;
    color: #166534 !important;
    border: 1px solid #bbf7d0 !important;
}
.all-portal-message.error {
    background: #fef2f2 !important;
    color: #991b1b !important;
    border: 1px solid #fecaca !important;
}
.all-portal-message.info {
    background: #eff6ff !important;
    color: #1e40af !important;
    border: 1px solid #bfdbfe !important;
}

/* ========================================
   VERIFICATION PAGE
   ======================================== */
.all-portal-verify-wrap {
    max-width: 520px !important;
    margin: 60px auto !important;
    padding: 0 16px !important;
    text-align: center !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}
.all-portal-verify-card {
    background: #fff !important;
    border-radius: 20px !important;
    padding: 48px 36px !important;
    box-shadow: 0 8px 40px rgba(0,0,0,0.06) !important;
}
.all-portal-verify-card h2 {
    font-size: 24px !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    margin: 16px 0 8px !important;
}
.all-portal-verify-card p {
    font-size: 14px !important;
    color: #64748b !important;
    line-height: 1.6 !important;
    margin: 0 0 24px !important;
}

/* ========================================
   RESPONSIVE
   ======================================== */

/* Tablet */
@media (max-width: 768px) {
    .all-portal-step {
        max-width: 100% !important;
    }
    .all-portal-modal-body {
        padding: 28px 24px !important;
    }
    .all-portal-modal-header h2 {
        font-size: 15px !important;
    }
    .all-portal-tagline-big {
        font-size: 16px !important;
    }
    .all-portal-social-buttons {
        max-width: 100% !important;
    }
}

/* Mobile */
@media (max-width: 600px) {
    .all-portal-auth-wrap {
        padding: 12px 6px !important;
    }
    .all-portal-modal {
        border-width: 2px !important;
    }
    .all-portal-modal-header {
        padding: 14px 16px !important;
    }
    .all-portal-modal-header h2 {
        font-size: 13px !important;
        letter-spacing: 0.3px !important;
    }
    .all-portal-modal-close {
        width: 30px !important;
        height: 30px !important;
    }
    .all-portal-modal-close svg {
        width: 12px !important;
        height: 12px !important;
    }
    .all-portal-modal-body {
        padding: 20px 16px !important;
    }
    /* Choose portal */
    .all-portal-tagline-small {
        font-size: 12px !important;
    }
    .all-portal-tagline-big {
        font-size: 14px !important;
        margin-bottom: 24px !important;
    }
    .all-portal-choose-grid {
        flex-direction: column !important;
        align-items: center !important;
        gap: 12px !important;
    }
    .all-portal-choose-btn {
        width: 100% !important;
        height: auto !important;
        flex-direction: row !important;
        padding: 16px 20px !important;
        border-radius: 12px !important;
        gap: 16px !important;
    }
    .all-portal-choose-icon svg {
        width: 44px !important;
        height: 44px !important;
    }
    .all-portal-choose-label {
        font-size: 15px !important;
        text-align: left !important;
    }
    /* Sign in options */
    .all-portal-portal-icon-box {
        padding: 14px !important;
        border-radius: 14px !important;
    }
    .all-portal-portal-icon-box svg {
        width: 48px !important;
        height: 48px !important;
    }
    .all-portal-portal-icon-label {
        font-size: 14px !important;
    }
    .all-portal-social-btn {
        padding: 10px 14px !important;
        font-size: 14px !important;
        gap: 10px !important;
    }
    .all-portal-social-icon-wrap {
        width: 32px !important;
        height: 32px !important;
    }
    .all-portal-google-icon-wrap,
    .all-portal-apple-icon-wrap,
    .all-portal-email-icon-wrap {
        width: 32px !important;
        height: 32px !important;
    }
    /* Form fields */
    .all-portal-field-row-2col {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }
    .all-portal-auth-wrap .all-portal-field label,
    .all-portal-field label {
        font-size: 12px !important;
    }
    .all-portal-auth-wrap .all-portal-field input[type="text"],
    .all-portal-auth-wrap .all-portal-field input[type="email"],
    .all-portal-auth-wrap .all-portal-field input[type="password"],
    .all-portal-auth-wrap .all-portal-field input[type="tel"] {
        padding: 10px 12px !important;
        font-size: 14px !important;
    }
    .all-portal-input-pw-wrap input {
        padding-right: 38px !important;
    }
    /* Signup button */
    .all-portal-signup-btn-field {
        align-items: stretch !important;
    }
    .all-portal-signup-btn {
        width: 100% !important;
        min-width: unset !important;
    }
    /* reCAPTCHA */
    .all-portal-recaptcha-row .g-recaptcha {
        transform: scale(0.77) !important;
    }
    /* Already have account */
    .all-portal-already-account {
        justify-content: center !important;
        padding-top: 4px !important;
    }
    /* Step 2 */
    .all-portal-step2-subtitle {
        font-size: 13px !important;
    }
    .all-portal-select-wrap select {
        font-size: 13px !important;
        padding: 10px 32px 10px 12px !important;
    }
    .all-portal-consent-field {
        padding: 14px 14px !important;
    }
    .all-portal-consent-text {
        font-size: 11px !important;
    }
    .all-portal-step2-buttons {
        flex-direction: column !important;
    }
    .all-portal-skip-btn,
    .all-portal-finish-btn {
        width: 100% !important;
        text-align: center !important;
        justify-content: center !important;
    }
    /* Submit buttons */
    .all-portal-submit-btn {
        padding: 11px 20px !important;
        font-size: 14px !important;
    }
    /* Success page */
    .all-portal-success-body {
        padding: 28px 20px !important;
    }
    .all-portal-success-title {
        font-size: 18px !important;
    }
    .all-portal-done-btn {
        padding: 11px 36px !important;
        font-size: 14px !important;
    }
    /* Signup link */
    .all-portal-choose-signup p {
        font-size: 13px !important;
    }
    .all-portal-signup-here-btn {
        padding: 9px 24px !important;
        font-size: 13px !important;
    }
    .all-portal-terms-text {
        font-size: 11px !important;
    }
    .all-portal-modal-logo img {
        max-width: 180px !important;
    }
    /* Header buttons */
    .all-portal-buttons {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .all-portal-btn {
        justify-content: center !important;
        text-align: center !important;
        padding: 9px 18px !important;
        font-size: 13px !important;
    }
    /* Field row (remember me / forgot) */
    .all-portal-field-row {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }
    /* Messages */
    .all-portal-message {
        font-size: 12px !important;
        padding: 10px 14px !important;
    }
}

/* Small mobile */
@media (max-width: 380px) {
    .all-portal-modal-header h2 {
        font-size: 11px !important;
    }
    .all-portal-modal-body {
        padding: 16px 12px !important;
    }
    .all-portal-recaptcha-row .g-recaptcha {
        transform: scale(0.65) !important;
    }
}

/* Legacy PORTAL DASHBOARD styles removed – now in frontend-blue.css */
