/* iPhone safe areas: notch (top) and home indicator (bottom) when viewport-fit=cover */
        .idphoto-page.idphoto-tool-host {
            min-height: 100vh;
            background:
                radial-gradient(circle at 50% 0%, rgba(16, 185, 129, 0.08), transparent 32rem),
                #f8faf9;
        }
        .idphoto-page.idphoto-tool-host > nav,
        .idphoto-page.idphoto-tool-host > .idphoto-breadcrumb,
        .idphoto-page.idphoto-tool-host > .idphoto-hero,
        .idphoto-page.idphoto-tool-host > .idphoto-prefooter-specs,
        .idphoto-page.idphoto-tool-host > .site-footer {
            display: none !important;
        }
        .idphoto-page.idphoto-tool-host > .main-content {
            max-width: none;
            min-height: 0;
            margin: 0;
            padding: 0;
        }
        .idphoto-page.idphoto-tool-host .desktop-steps-column > .section > :not(#idphoto-modal),
        .idphoto-page.idphoto-tool-host .desktop-recommendations-section {
            display: none !important;
        }
        .idphoto-page.idphoto-tool-host #idphoto-modal {
            white-space: normal;
        }
        .idphoto-page.idphoto-tool-host #idphoto-modal.is-open {
            background:
                radial-gradient(circle at 50% -8rem, rgba(16, 185, 129, 0.14), transparent 34rem),
                #f8faf9;
        }
        .idphoto-page .idphoto-breadcrumb { font-size: 13px; color: #666; padding: 16px clamp(20px, 5vw, 64px) 0; max-width: 1200px; margin: 0 auto; display: flex; gap: 6px; align-items: center; }
        .idphoto-page .idphoto-breadcrumb a { color: #666; text-decoration: none; }
        .idphoto-page .idphoto-breadcrumb a:hover { text-decoration: underline; }
        .idphoto-page .idphoto-hero { padding: 24px clamp(20px, 5vw, 64px) 28px; border-bottom: 1px solid #e5e5e5; background: linear-gradient(180deg, #f8fdfb 0%, #fff 100%); }
        .idphoto-page .idphoto-hero-inner { max-width: 940px; margin: 0 auto; text-align: center; }
        .idphoto-page .idphoto-hero-title { font-size: clamp(22px, 3vw, 28px); font-weight: 600; letter-spacing: -0.02em; margin: 0 0 8px; color: #111; }
        .idphoto-page .idphoto-hero-sub { display: block; font-size: 0.75em; font-weight: 500; color: #374151; margin-top: 2px; }
        .idphoto-page .idphoto-hero-lead { font-size: 16px; color: #374151; margin: 0 0 4px; }
        .idphoto-page .idphoto-hero-meta { font-size: 13px; color: #666; margin: 0 0 2px; }
        .idphoto-page .idphoto-hero-links { font-size: 13px; color: #666; margin: 12px 0 0; }
        .idphoto-page .idphoto-hero-links a { color: #111; border-bottom: 1px solid #e5e5e5; padding-bottom: 1px; text-decoration: none; }
        .idphoto-page .idphoto-hero-links a:hover { border-color: #111; }
        .idphoto-page .idphoto-price-note {
            margin: 18px 0 16px;
            padding: 10px 14px;
            background: #f0fdf4;
            border-radius: 8px;
            border: 1px solid #a7f3d0;
            font-size: 13px;
            color: #166534;
        }
        .idphoto-page .idphoto-upload-card {
            margin: 18px 0 32px;
            padding: 14px 16px;
            background: linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%);
            border: 1px solid #dbe7e1;
            border-radius: 12px;
            box-shadow: 0 12px 32px rgba(15, 23, 42, 0.04);
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
        }
        .idphoto-page .idphoto-upload-entry-copy,
        .idphoto-page .idphoto-upload-header {
            display: flex;
            align-items: center;
            gap: 12px;
            text-align: left;
        }
        .idphoto-page .idphoto-upload-entry-icon,
        .idphoto-page .idphoto-upload-icon {
            width: 38px;
            height: 38px;
            border-radius: 999px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #ecfdf5;
            border: 1px solid #bbf7d0;
            color: #047857;
            font-size: 20px;
            line-height: 1;
            font-weight: 700;
            flex: 0 0 auto;
        }
        .idphoto-page .idphoto-upload-kicker {
            margin: 0 0 2px;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: #059669;
        }
        .idphoto-page .idphoto-upload-title {
            margin: 0;
            font-size: 17px;
            line-height: 1.2;
            color: #111827;
        }
        .idphoto-page .idphoto-upload-entry-text {
            margin: 3px 0 0;
            font-size: 13px;
            color: #64748b;
            line-height: 1.45;
        }
        .idphoto-page .idphoto-upload-action {
            display: flex;
            justify-content: center;
        }
        .idphoto-page .idphoto-upload-button {
            width: auto !important;
            min-width: min(100%, 320px);
            padding: 13px 22px !important;
            border: 0 !important;
            border-radius: 999px !important;
            background: linear-gradient(135deg, #059669 0%, #10b981 100%) !important;
            color: #fff !important;
            font-size: 15px !important;
            font-weight: 700 !important;
            box-shadow: 0 12px 28px rgba(16, 185, 129, 0.22) !important;
            cursor: pointer;
            transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
        }
        .idphoto-page .idphoto-upload-button:hover {
            background: linear-gradient(135deg, #047857 0%, #059669 100%) !important;
            transform: translateY(-1px);
            box-shadow: 0 14px 30px rgba(4, 120, 87, 0.2) !important;
        }
        .idphoto-page .idphoto-upload-button:focus-visible {
            outline: 3px solid rgba(16, 185, 129, 0.28);
            outline-offset: 3px;
        }
        .idphoto-page .idphoto-upload-button:active {
            background: #065f46 !important;
            transform: translateY(0);
        }
        .idphoto-page .idphoto-upload-hint {
            display: none;
            margin: 0 auto 10px;
            max-width: 26rem;
            padding: 8px 12px;
            background: #fef3c7;
            border: 1px solid #fcd34d;
            border-radius: 8px;
            font-size: 0.82rem;
            color: #92400e;
            text-align: center;
        }
        .idphoto-page .idphoto-upload-helper {
            font-size: 0.82rem;
            color: #6b7280;
            margin: 0;
            text-align: center;
        }
        .idphoto-page .idphoto-upload-tips {
            font-size: 0.75rem;
            color: #94a3b8;
            margin: 0 0 14px;
            text-align: center;
        }
        .idphoto-page .idphoto-upload-tips a {
            color: #047857;
            font-weight: 600;
            text-decoration: none;
            border-bottom: 1px solid #a7f3d0;
        }
        .idphoto-page .idphoto-upload-tips a:hover {
            color: #065f46;
            border-bottom-color: #10b981;
        }
        .idphoto-page .idphoto-upload-privacy {
            max-width: 30rem;
            margin: 0 auto;
            padding: 12px 14px;
            background: #f8fafc;
            border-radius: 10px;
            border: 1px solid #e2e8f0;
        }
        .idphoto-page .idphoto-upload-privacy-title {
            font-weight: 650;
            color: #475569;
            margin-bottom: 6px;
            font-size: 0.85em;
            text-align: center;
        }
        .idphoto-page .idphoto-upload-privacy ul {
            margin: 0;
            padding-left: 1.2em;
            font-size: 0.8em;
            color: #64748b;
            line-height: 1.6;
        }
        .idphoto-page .idphoto-upload-privacy-line {
            margin: 10px 0 0;
            font-size: 12px;
            color: #64748b;
            text-align: center;
        }
        .idphoto-page .idphoto-modal-preupload {
            padding: 28px 22px 24px;
        }
        .idphoto-page .idphoto-modal-preupload-inner {
            max-width: 40rem;
            margin: 0 auto;
            text-align: center;
        }
        .idphoto-page .idphoto-modal-preupload .idphoto-upload-icon {
            margin: 0 auto 14px;
        }
        .idphoto-page .idphoto-modal-preupload-title {
            margin: 0 0 14px;
            font-size: clamp(22px, 3.2vw, 28px);
            line-height: 1.12;
            letter-spacing: -0.03em;
            color: #111827;
        }
        .idphoto-page .idphoto-modal-selection {
            margin: 0 auto 16px;
            padding: 14px;
            border: 1px solid #e2e8f0;
            border-radius: 12px;
            background: #f8fafc;
            text-align: left;
        }
        .idphoto-page .idphoto-modal-selection-label {
            margin: 0 0 6px;
            font-size: 11px;
            font-weight: 650;
            color: #64748b;
        }
        .idphoto-page .idphoto-modal-selection #popularDocShortcuts {
            gap: 6px !important;
            margin-bottom: 10px !important;
        }
        .idphoto-page .idphoto-modal-selection .popular-doc-btn {
            padding: 7px 10px !important;
            font-size: 12px !important;
        }
        .idphoto-page .idphoto-modal-selection .form-section {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px;
            margin-bottom: 10px;
        }
        .idphoto-page .idphoto-modal-selection .form-group {
            margin: 0;
        }
        .idphoto-page .idphoto-modal-selection #idphoto-main-requirements {
            margin: 10px 0 0;
            background: #fff !important;
        }
        .idphoto-page .idphoto-modal-upload-row {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            flex-wrap: wrap;
        }
        .idphoto-page .idphoto-modal-upload-button {
            margin-bottom: 0;
        }
        /* Mobile: clean hero — clearer hierarchy, compact links block */
        @media (max-width: 768px) {
            .idphoto-page .idphoto-hero { padding: 20px 16px 24px; }
            .idphoto-page .idphoto-hero-inner { text-align: center; }
            .idphoto-page .idphoto-hero-title { font-size: 22px; line-height: 1.25; margin: 0 0 10px; max-width: 20em; margin-left: auto; margin-right: auto; }
            .idphoto-page .idphoto-hero-lead { font-size: 15px; line-height: 1.45; margin: 0 0 10px; color: #374151; }
            .idphoto-page .idphoto-hero-meta { font-size: 13px; margin: 0 0 4px; color: #6b7280; }
            /* idphoto-hero-links live in .idphoto-prefooter-specs — see block below */
            .idphoto-page .idphoto-hero-links { font-size: 12px; margin: 16px 0 0; padding-top: 14px; border-top: 1px solid #e5e7eb; line-height: 1.6; color: #6b7280; }
            .idphoto-page .idphoto-hero-links a { display: inline-block; margin: 2px 8px 2px 0; padding-bottom: 2px; border-bottom-color: #d1d5db; }
        }
        @media (max-width: 768px) {
            .idphoto-page .idphoto-breadcrumb { font-size: 12px; padding: 10px max(env(safe-area-inset-left), 16px) 0; padding-left: max(env(safe-area-inset-left), clamp(20px, 5vw, 64px)); }
        }
        @media (max-width: 400px) {
            .idphoto-page .idphoto-breadcrumb { padding-left: 14px; padding-right: 14px; font-size: 11px; padding-top: 8px; }
            .idphoto-page .idphoto-hero { padding: 16px 14px 20px; }
            .idphoto-page .idphoto-hero-title { font-size: 20px; }
            .idphoto-page .idphoto-hero-links { font-size: 11px; margin-top: 14px; padding-top: 12px; }
        }
        /* Как на остальных страницах: --max 940px, padding clamp(20px, 5vw, 64px) */
        .idphoto-page .main-content { max-width: 940px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 64px); }
        .idphoto-page .desktop-main-grid { max-width: 100%; padding: 0; grid-template-columns: 1fr; }
        .idphoto-page .desktop-steps-column { max-width: 100%; padding-right: 0; }
        .idphoto-page .desktop-recommendations-section { max-width: 940px; margin-left: auto; margin-right: auto; padding-left: clamp(20px, 5vw, 64px); padding-right: clamp(20px, 5vw, 64px); }
        @media (max-width: 400px) {
            .idphoto-page .main-content { padding-left: max(env(safe-area-inset-left), 14px); padding-right: max(env(safe-area-inset-right), 14px); }
            .idphoto-page .desktop-recommendations-section { padding-left: 14px; padding-right: 14px; }
        }
        /* Document requirements: dense 2-col grid (main step + modal report) */
        .idphoto-page #idphoto-main-requirements {
            margin: 12px 0 16px;
            padding: 10px 12px;
            border-radius: 6px;
        }
        .idphoto-page .idphoto-main-req-title {
            font-weight: 600;
            color: #374151;
            margin: 0 0 6px;
            font-size: 0.8125rem;
            line-height: 1.25;
        }
        .idphoto-page .idphoto-main-req-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 3px 14px;
            font-size: 12px;
            line-height: 1.3;
            color: #475569;
        }
        .idphoto-page .idphoto-main-req-grid > div { min-width: 0; }
        .idphoto-page .idphoto-main-req-grid .idphoto-main-req-full {
            grid-column: 1 / -1;
            margin-top: 2px;
            font-size: 11px;
        }
        @media (max-width: 480px) {
            .idphoto-page .idphoto-main-req-grid {
                grid-template-columns: 1fr;
                gap: 2px;
            }
        }
        /* Journey + “Need specs?” links — bottom of page (before footer) */
        .idphoto-page .idphoto-prefooter-specs {
            margin-top: 4px;
            padding-top: 20px;
            padding-bottom: 20px;
            border-top: 1px solid #e5e7eb;
            text-align: center;
            /* common.css .main-content { min-height: 500px } — this block also uses .main-content */
            min-height: 0;
        }
        .idphoto-page .idphoto-prefooter-specs .idphoto-hero-meta {
            margin: 0 auto 10px;
            max-width: 36rem;
            font-size: 12px;
            color: #6b7280;
            line-height: 1.35;
        }
        .idphoto-page .idphoto-prefooter-specs .idphoto-hero-links {
            margin-left: auto;
            margin-right: auto;
            max-width: 44rem;
            padding-top: 0;
            border-top: none;
            font-size: 12px;
            line-height: 1.45;
        }
        @media (max-width: 768px) {
            .idphoto-page .idphoto-prefooter-specs { padding-top: 18px; padding-bottom: 18px; }
            .idphoto-page .idphoto-prefooter-specs .idphoto-hero-links {
                border-top: none;
                padding-top: 0;
                margin-top: 6px;
                font-size: 11px;
                line-height: 1.5;
            }
            .idphoto-page .idphoto-prefooter-specs .idphoto-hero-meta { font-size: 12px; margin-bottom: 8px; }
        }
        @media (max-width: 768px) {
            #step-upload { margin: 16px 0 24px 0 !important; padding: 16px !important; }
            #openIdphotoModalBtn { white-space: normal !important; }
            .idphoto-page .idphoto-upload-card { flex-direction: column; align-items: stretch; }
            .idphoto-page .idphoto-upload-header,
            .idphoto-page .idphoto-upload-entry-copy { justify-content: flex-start; }
            .idphoto-page .idphoto-upload-button { width: 100% !important; min-width: 0; }
            .idphoto-page .idphoto-modal-selection .form-section { grid-template-columns: 1fr; }
            .idphoto-page .idphoto-modal-preupload { padding: 22px 12px 18px; }
            .idphoto-page .idphoto-modal-preupload-title { font-size: 22px; margin-bottom: 12px; padding-right: 28px; }
            .idphoto-page .idphoto-modal-selection { padding: 12px; margin-bottom: 14px; }
            .idphoto-page .idphoto-modal-upload-row { gap: 8px; }
            .idphoto-page .idphoto-upload-privacy-line { font-size: 11px; line-height: 1.45; }
            #serverComplianceReport { font-size: 0.92em; }
            #serverComplianceReport #scrHeader { flex-wrap: wrap; gap: 6px; }
            .idphoto-processing-overlay > div { max-width: 280px !important; padding: 20px 16px !important; }
        }

@keyframes rotate {
                                0% { transform: rotate(0deg); }
                                100% { transform: rotate(360deg); }
                            }
                            @keyframes spin {
                                0% { transform: rotate(0deg); }
                                100% { transform: rotate(360deg); }
                            }
                            @keyframes dash {
                                0% {
                                    stroke-dasharray: 1, 163.36;
                                    stroke-dashoffset: 0;
                                }
                                50% {
                                    stroke-dasharray: 80, 163.36;
                                    stroke-dashoffset: -40;
                                }
                                100% {
                                    stroke-dasharray: 1, 163.36;
                                    stroke-dashoffset: -163.36;
                                }
                            }

/* ID Photo modal: overlay + dialog — use full width, two columns on desktop */
    .idphoto-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 9999; display: none; align-items: center; justify-content: center; padding: 16px; padding-bottom: max(16px, env(safe-area-inset-bottom)); padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); overflow-y: auto; }
    .idphoto-modal-overlay[hidden] { display: none !important; }
    .idphoto-modal-overlay.is-open { display: flex; }
            .idphoto-modal-dialog {
        position: relative;
        background: #fff;
        border-radius: 12px;
        width: min(100%, 980px);
        height: min(95vh, 700px);
        overflow: hidden;
        box-shadow: 0 20px 60px rgba(0,0,0,0.25);
        display: flex;
        flex-direction: column;
    }
    .idphoto-modal-close { position: absolute; top: max(12px, env(safe-area-inset-top)); right: max(12px, env(safe-area-inset-right)); width: 36px; height: 36px; border: none; background: #f3f4f6; border-radius: 50%; font-size: 24px; line-height: 1; cursor: pointer; color: #374151; z-index: 10; }
    .idphoto-modal-close:hover { background: #e5e7eb; }
    .idphoto-modal-progress {
        flex: 0 0 auto;
        padding: 14px 56px 12px 20px;
        border-bottom: 1px solid #e5e7eb;
        background: #fff;
    }
    .idphoto-modal-progress > div:first-child {
        display: flex;
        align-items: baseline;
        gap: 8px;
        margin-bottom: 8px;
    }
    .idphoto-modal-step-count {
        font-size: 11px;
        font-weight: 750;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: #059669;
    }
    .idphoto-modal-step-title {
        font-size: 14px;
        font-weight: 650;
        color: #111827;
    }
    .idphoto-modal-step-track {
        height: 4px;
        width: 100%;
        overflow: hidden;
        border-radius: 999px;
        background: #e5e7eb;
    }
    .idphoto-modal-step-track span {
        display: block;
        width: 25%;
        height: 100%;
        border-radius: inherit;
        background: linear-gradient(90deg, #059669, #10b981);
        transition: width 0.2s ease;
    }
    .idphoto-processing-overlay { position: absolute; inset: 0; z-index: 5; background: rgba(255,255,255,0.82); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; border-radius: 12px; }
    .idphoto-processing-spinner { width: 44px; height: 44px; border: 3px solid #e5e7eb; border-top-color: #10b981; border-radius: 50%; animation: idphoto-spin 0.9s linear infinite; }
    .idphoto-processing-text { margin: 0; font-size: 0.9em; color: #6b7280; font-weight: 500; }
    @keyframes idphoto-spin { to { transform: rotate(360deg); } }
    .idphoto-step4-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin-bottom: 20px; }
    .idphoto-step4-btn { white-space: nowrap; min-height: 44px; padding: 12px 20px; border-radius: 8px; font-weight: 500; font-size: 0.95rem; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; text-align: center; box-sizing: border-box; }
    .idphoto-step4-btn-primary { flex: 1; min-width: 200px; background: var(--accent, #10b981); color: #fff; border: none; }
    .idphoto-step4-btn-primary:hover { opacity: 0.95; }
    .idphoto-step4-btn-secondary { flex: 0 0 auto; padding: 12px 16px; background: #fff; color: #374151; border: 1px solid #d1d5db; }
    .idphoto-step4-btn-secondary:hover { background: #f9fafb; border-color: #9ca3af; }
    .idphoto-step4-btn-dev { flex: 0 0 auto; padding: 12px 14px; font-size: 0.85rem; background: #fef3c7; color: #92400e; border: 1px solid #f59e0b; }
    .idphoto-step4-btn-dev:hover { background: #fde68a; }
    /* Hover: never white — primary = darker green, secondary = light gray */
    #idphoto-modal .btn-primary:hover,
    #idphoto-modal .idphoto-step4-btn-primary:hover,
    #idphoto-modal button.btn-primary:hover,
    #idphoto-modal a.btn-primary:hover { background: #059669 !important; background-color: #059669 !important; color: #fff !important; opacity: 1 !important; }
    #idphoto-modal .btn-secondary:hover,
    #idphoto-modal .idphoto-step4-btn-secondary:hover,
    #idphoto-modal button.btn-secondary:hover { background: #e5e7eb !important; background-color: #e5e7eb !important; color: #374151 !important; border-color: #9ca3af !important; opacity: 1 !important; }
    #idphoto-modal .btn[style*="background: #10b981"]:hover,
    #idphoto-modal .btn[style*="background:#10b981"]:hover,
    #idphoto-modal a[style*="background: #10b981"]:hover,
    #idphoto-modal a[style*="background:#10b981"]:hover,
    #idphoto-modal button[style*="background: #10b981"]:hover,
    #idphoto-modal button[style*="background:#10b981"]:hover { background: #059669 !important; background-color: #059669 !important; color: #fff !important; }
    #idphoto-modal #donateDownloadBtnMobile:hover,
    #idphoto-modal #idphotoMobileDownloadBtn:hover,
    #idphoto-modal a#donateDownloadBtnMobile:hover { background: #059669 !important; background-color: #059669 !important; color: #fff !important; }
    @media (min-width: 769px) {
        #idphoto-mobile-download-cta { display: none !important; }
        #idphoto-mobile-process-btn-wrap { display: none !important; }
        #idphoto-mobile-step4-cta-wrap { display: none !important; }
        #idphoto-mobile-quality-warning-wrap { display: none !important; }
        #idphoto-mobile-happy-redo-wrap { display: none !important; }
        #idphoto-mobile-purchase-status-wrap { display: none !important; }
    }
    @media (max-width: 768px) {
        .idphoto-step3-header-in-steps,
        .idphoto-step4-header-in-steps { display: none !important; }
        /* На финальном шаге после оплаты три кнопки внизу не показываем — достаточно зелёной Download над фото */
        #idphoto-step4-wrap.idphoto-step4-download-available .idphoto-step4-actions { display: none !important; }
    }
    .idphoto-download-ready { animation: idphoto-download-pulse 2.5s ease-out; }
    @keyframes idphoto-download-pulse {
        0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.6), 0 0 0 0 rgba(255, 255, 255, 0.4); transform: scale(1); }
        15% { box-shadow: 0 0 0 8px rgba(16, 185, 129, 0.35), 0 0 0 4px rgba(255, 255, 255, 0.5); transform: scale(1.03); }
        40% { box-shadow: 0 0 0 16px rgba(16, 185, 129, 0.15), 0 0 0 10px rgba(255, 255, 255, 0.2); transform: scale(1.02); }
        70% { box-shadow: 0 0 0 12px rgba(16, 185, 129, 0.08); transform: scale(1.01); }
        100% { box-shadow: none; transform: scale(1); }
    }
    .idphoto-modal-preupload,
    .idphoto-modal-flow,
    .idphoto-modal-screen { flex: 1; min-height: 0; overflow-y: auto; }
    .idphoto-modal-flow { padding: 0 16px 32px; padding-bottom: calc(32px + env(safe-area-inset-bottom, 0)); padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); display: flex; flex-direction: column; }
    .idphoto-modal-photo-top { flex-shrink: 0; padding: 16px 0; border-bottom: 1px solid #e5e7eb; background: #fafafa; margin: 0 -16px 20px; padding: 20px 16px; }
    .idphoto-modal-photo-label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: #6b7280; margin: 0 0 12px; text-align: center; }
    .idphoto-modal-photo-inner { max-width: 340px; margin: 0 auto; }
    .idphoto-modal-photo-inner .photo-container { min-height: 260px; }
    .idphoto-modal-steps { flex: 1; overflow-y: auto; }
    .idphoto-modal-steps .desktop-steps-column { max-width: 480px; margin: 0 auto; }
    @media (min-width: 769px) {
        .idphoto-modal-flow { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: 22px; align-items: start; padding: 0 24px 32px; padding-bottom: calc(32px + env(safe-area-inset-bottom, 0)); padding-left: max(24px, env(safe-area-inset-left)); padding-right: max(24px, env(safe-area-inset-right)); }
        .idphoto-modal-photo-top { margin: 0; padding: 20px 0 20px 0; border-bottom: none; border-left: 1px solid #e5e7eb; padding-left: 24px; order: 2; }
        .idphoto-modal-photo-inner { max-width: 100%; margin: 0; }
        .idphoto-modal-steps { min-width: 0; order: 1; }
        .idphoto-modal-steps .desktop-steps-column { max-width: 100%; margin: 0; }
    }
    /* Mobile: full-screen modal — no page visible behind, behaves like a separate screen */
    @media (max-width: 768px) {
        .idphoto-modal-overlay {
            padding: 0;
            align-items: stretch;
            justify-content: stretch;
        }
        .idphoto-modal-dialog {
            width: 100%;
            max-width: none;
            height: 100%;
            height: 100dvh;
            max-height: none;
            min-height: 100svh;
            margin: 0;
            border-radius: 0;
            box-shadow: none;
            display: flex;
            flex-direction: column;
        }
        .idphoto-modal-progress { padding: 12px 52px 10px 14px; }
        .idphoto-modal-dialog .idphoto-modal-flow { flex: 1; min-height: 0; overflow-y: auto; }
        .idphoto-modal-photo-inner { max-width: 100%; }
        .idphoto-processing-overlay { border-radius: 0; }
    }

/* Footer uses the shared site footer contract in site.css. */
