/* =========================================
   FLOWPESA — Verify Country (scoped styles)
   ========================================= */
.country-screen {
  background:#111;
  color:#f8f9fa;
  min-height:100dvh;
  padding: calc(72px + 16px) 16px calc(24px + env(safe-area-inset-bottom));
}

/* Top bar sizing reused but fluid */
.country-screen .top-bar{
  position:fixed; inset:0 0 auto 0; height:72px; background:transparent; z-index:10;
}
.country-screen .top{
  max-width:480px; margin:0 auto; padding:0 16px;
  display:flex; align-items:center; justify-content:space-between;
}
.country-screen .button{ width:40px; height:40px; position:relative; border:0; padding:0; background:transparent; border-radius:999px; display:inline-grid; place-items:center; cursor:pointer; }
.country-screen .rectangle2{ background:#202124; border-radius:999px; width:100%; height:100%; }
.country-screen .icon-chevron-left{ position:absolute; inset:20% 20% 20% 20%; color:#f8f9fa; }
.country-screen .button:focus-visible{ outline:2px solid rgba(22,130,249,.55); outline-offset:2px; }
.country-screen .button:active{ transform: scale(0.98); }
.country-screen .home-made{
  color:#f8f9fa; font:600 18px/24px Inter,system-ui,sans-serif; margin:0;
}

/* Section */
.country-screen .country-selected-section{
  width:100%; max-width:420px; margin:0 auto;
}
.country-screen .welcome-text{ margin-bottom:16px; }
.country-screen .heading2{
  font:700 clamp(26px, 6.5vw, 36px)/1.25 Inter,system-ui,sans-serif; margin:0 0 6px;
}
.country-screen .heading3{
  margin:0; color:#c9c9c9; font:400 16px/1.4 Inter,system-ui,sans-serif;
}

/* Input/Select pill */
.country-screen .input{ display:flex; flex-direction:column; gap:16px; }
.country-screen .input2{
  display:flex; flex-direction:column; gap:8px;
  background:transparent; border-radius:16px; padding:0;
}
.country-screen .label-cap{
  color:#c9c9c9; font:400 12px/16px Inter,system-ui,sans-serif;
}
.country-screen .select-wrap{
  position:relative;
  background:#17181b; border-radius:16px; height:56px; padding:0 14px;
  display:flex; align-items:center; justify-content:space-between;
}
.country-screen select{
  flex:1; min-width:0; border:0; outline:0;
  background:transparent; color:#f8f9fa; font:400 16px/20px Inter,system-ui,sans-serif;
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
}
.country-screen .chev{
  flex:0 0 auto; color:#c7c7c7;
}

/* CTA */
.country-screen .regular-button{
  display:block; width:100%; height:56px; border:0;
  border-radius:16px; background:#1682f9; margin-top:24px;
}
.country-screen .button-label{ color:#fff; font:600 16px/20px Inter,system-ui,sans-serif; }

/* Legal text */
.country-screen .country-legal{
  max-width:480px; margin:18px auto 0; text-align:center;
  color:#c9c9c9; font:400 14px/18px Inter,system-ui,sans-serif;
}
.country-screen .country-legal .link{ color:#1682f9; text-decoration:none; }
.country-screen .country-legal .link:hover{ text-decoration:underline; }

/* Small phones */
@media (max-width:360px){
  .country-screen{ padding-top: calc(72px + 12px); }
}



/* === Verify Country — Dark dropdown fix === */
.country-screen {
  background: #111; 
  color: #f8f9fa;
  min-height: 100dvh;
  margin: 0;              /* remove default body margins that cause white frame */
  border: none;           /* ensure no global border shows */
  outline: none;
}

/* Remove any white gap around edges */
html, body {
  background: #111 !important;
  border: none !important;
  outline: none !important;
}

/* Style the select to look native-dark */
.country-screen select {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  color: #f8f9fa;
  font: 400 16px/20px Inter, system-ui, sans-serif;
  background: #17181b;
  border-radius: 12px;
  padding: 0 12px;
  height: 48px;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

/* Remove white system border highlight on focus */
.country-screen select:focus {
  box-shadow: 0 0 0 2px rgba(22,130,249,0.4);
  background: #1e1f22;
}

/* For Chrome/Safari dropdown list background (WebKit only) */
.country-screen select::-webkit-scrollbar { width: 8px; }
.country-screen select::-webkit-scrollbar-thumb { background: #2a2a2a; border-radius: 4px; }
.country-screen option {
  background-color: #17181b;
  color: #f8f9fa;
}

/* For Firefox dropdown background */
@-moz-document url-prefix() {
  .country-screen select {
    background-color: #17181b;
    color: #f8f9fa;
  }
  .country-screen option {
    background-color: #17181b;
    color: #f8f9fa;
  }
}

/* Chevron styling */
.country-screen .chev {
  flex-shrink: 0;
  color: #c7c7c7;
  pointer-events: none;
}
/* End of Verify Country dark dropdown fix */

/* =========================================
   FLOWPESA — Name as in ID (scoped)
   ========================================= */
.name-id-screen{
  background:#111; color:#f8f9fa; min-height:100dvh;
  padding: calc(72px + 16px) 16px calc(24px + env(safe-area-inset-bottom));
}

/* Top bar */
.name-id-screen .top-bar{
  position:fixed; inset:0 0 auto 0; height:72px; z-index:100;
  background:transparent;
}
.name-id-screen .top{
  max-width:480px; margin:0 auto; padding:0 16px;
  display:flex; align-items:center; justify-content:space-between;
}
.name-id-screen .back-btn{
  width:40px; height:40px; border:0; border-radius:999px;
  background:#202124; color:#f8f9fa; display:grid; place-items:center; position:relative;
}
.name-id-screen .back-dot{ display:none; } /* keep markup simple */
.name-id-screen .top-title{ margin:0; font-weight:600; }
.name-id-screen .top-ghost{ width:40px; height:40px; }

/* Content column */
.name-id-screen .content{
  max-width:420px; margin:0 auto;
}
.name-id-screen .title-row{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
}
.name-id-screen .heading{
  margin:0 0 6px; font:700 clamp(26px,6.5vw,36px)/1.25 Inter,system-ui,sans-serif;
}
.name-id-screen .subheading{
  margin:0 0 16px; color:#c9c9c9; font:400 16px/1.4 Inter,system-ui,sans-serif;
}
.name-id-screen .badge{
  width:28px; height:28px; display:grid; place-items:center; background:#1b1c1f;
  border-radius:8px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}

/* Fields */
.name-id-screen .field{
  display:block; margin:14px 0 0;
}
.name-id-screen .label{
  display:none; /* mock shows placeholder-only; keep label for a11y if needed */
}
.name-id-screen input{
  width:100%; height:56px; border-radius:16px; border:none; outline:none;
  background:#17181b; color:#f8f9fa;
  padding:0 16px; font:500 16px/20px Inter,system-ui,sans-serif;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.name-id-screen input::placeholder{ color:#b8b8b8; font-weight:500; }
.name-id-screen input:focus{
  box-shadow: inset 0 0 0 1px rgba(22,130,249,.36);
  background:#1c1d21;
}

.name-id-screen .field-foot{
  display:flex; align-items:center; justify-content:space-between;
  margin:6px 4px 0 4px;
}
.name-id-screen .hint{ color:#a9abb0; }
.name-id-screen .count{ color:#a9abb0; }
.name-id-screen .optional{
  display:block; margin:6px 4px 0; color:#a9abb0;
}

/* Button */
.name-id-screen .cta{
  display:block; width:100%; height:56px; margin:24px 0 0;
  border-radius:16px; border:0; background:#b7d8fd; color:#2b2b2b;
  font:600 16px/20px Inter,system-ui,sans-serif;
  cursor:not-allowed; transition:transform .1s ease, background .15s ease;
}
.name-id-screen .cta.is-active,
.name-id-screen .cta:not([disabled]){
  background:#1682f9; color:#fff; cursor:pointer;
}
.name-id-screen .cta:active{ transform:scale(.98); }

/* Small phones */
@media (max-width:360px){
  .name-id-screen{ padding-top: calc(72px + 12px); }
}


/* ==============================
   FLOWPESA — DOB RESPONSIVE FIX
   ============================== */
.dob-screen{
  --page-max: 520px;         /* container max */
  --pad-x: 16px;
  --pad-t: 72px;             /* top bar */
  --gap: 12px;
  --btn-h: 56px;

  background:#111; color:#f8f9fa;
  min-height: 100dvh;
  padding: calc(var(--pad-t) + var(--gap)) var(--pad-x) calc(24px + env(safe-area-inset-bottom));
  display:block;
}

/* top bar stays fluid */
.dob-screen .top-bar{
  position: fixed; inset: 0 0 auto 0; height: 72px; z-index: 10; background: transparent;
}
.dob-screen .top{
  width: 100%; max-width: var(--page-max);
  margin: 0 auto; padding: 0 var(--pad-x);
  display: flex; align-items: center; justify-content: space-between;
}
.dob-screen .back-btn{
  width: 40px; height: 40px; border: 0; border-radius: 999px;
  background:#202124; color:#f8f9fa; display:grid; place-items:center;
}

/* content container centers and shrinks on tiny screens */
.dob-screen .content{
  width: 100%; max-width: var(--page-max);
  margin: 0 auto;
}

/* type scales with viewport */
.dob-screen .heading{
  margin: 0 0 6px;
  font: 700 clamp(22px, 6.2vw, 36px)/1.25 Inter,system-ui,sans-serif;
}
.dob-screen .subheading{
  margin: 0 0 14px;
  color:#c9c9c9;
  font: 400 clamp(13px, 3.8vw, 16px)/1.45 Inter,system-ui,sans-serif;
}

/* labels row */
.dob-screen .row-head{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: var(--gap);
  color:#c9c9c9;
  font: 500 clamp(11px, 3.2vw, 13px)/1 Inter,system-ui,sans-serif;
  margin-bottom: 6px;
  max-width: 100%;
}

/* inputs: use auto-fit so they never overflow; min width 88px works even at 320px */
.dob-screen .row-inputs{
  display: grid;
  grid-template-columns: repeat( auto-fit, minmax(88px, 1fr) );
  gap: var(--gap);
  max-width: 100%;
}
.dob-screen .row-inputs input{
  height: clamp(48px, 11.5vw, 56px);
  border-radius: 16px; border: 0; outline: 0;
  background:#17181b; color:#f8f9fa;
  padding: 0 14px; text-align: left;
  font: 600 16px/20px Inter,system-ui,sans-serif; /* ≥16px to avoid iOS zoom */
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
  min-width: 0; /* allows shrinking inside grid */
}
.dob-screen .row-inputs input::placeholder{ color:#b8b8b8; font-weight:500; }
.dob-screen .row-inputs input:focus{
  box-shadow: inset 0 0 0 1px rgba(22,130,249,.36);
  background:#1b1c20;
}

/* error line wraps nicely */
.dob-screen .error{
  color:#ff6b6b; margin: 6px 2px 0;
  font: 400 clamp(12px, 3.4vw, 14px)/1.3 Inter,system-ui,sans-serif;
  word-wrap: break-word;
}

/* button scales */
.dob-screen .cta{
  width: 100%;
  height: var(--btn-h);
  margin-top: 22px;
  border: 0; border-radius: 16px;
  background:#b7d8fd; color:#2b2b2b;
  font: 600 16px/20px Inter,system-ui,sans-serif;
  cursor: not-allowed; transition: transform .1s ease, background .15s ease;
}
.dob-screen .cta.is-active,
.dob-screen .cta:not([disabled]){ background:#1682f9; color:#fff; cursor:pointer; }
.dob-screen .cta:active{ transform: scale(.98); }

/* tiny devices (≤340px): tighten gaps & padding so all 3 boxes fit */
@media (max-width: 340px){
  .dob-screen{ --pad-x: 12px; --gap: 10px; }
}

/* larger phones & tablets: add breathing room */
@media (min-width: 640px){
  .dob-screen{ --pad-t: 88px; }
  .dob-screen .top-bar{ height: 80px; }
}

/* desktop preview: center column with bigger max */
@media (min-width: 1024px){
  .dob-screen{ --page-max: 640px; }
}



/* ===== IDV: tiny patch (scoped) ===== */
.chip{
  display:inline-flex; align-items:center; height:28px; padding:0 10px;
  border-radius:999px; background:#17181b; color:#e9eaec;
  font:600 12px/1 Inter,system-ui,sans-serif; border:1px solid rgba(255,255,255,.08);
}
.photo-grid{
  width:100%; max-width:var(--col-max, 361px); margin:8px auto 0;
  display:grid; gap:12px; grid-template-columns:1fr;
}
@media (min-width:520px){ .photo-grid{ grid-template-columns:1fr 1fr; } }
.photo-card{ padding:10px; border-radius:16px; background:#0e1012; box-shadow:0 0 0 2px #2a5fb6, 0 12px 32px rgba(0,0,0,.45); }
.photo-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.mini-pill{
  height:30px; padding:0 10px; border-radius:8px; border:1px solid rgba(255,255,255,.12);
  background:transparent; color:#e9eaec; font:600 12px/1 Inter,system-ui,sans-serif;
}
.photo-card img{ width:100%; display:block; border-radius:10px; }

/* Camera card sizes reuse your column max width */
.cam-card{
  width:100%; max-width:var(--col-max, 361px); margin:8px auto 0;
  position:relative; aspect-ratio: 16 / 10; border-radius:16px; overflow:hidden;
  background:#0e1012; box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
#idv-video{ width:100%; height:100%; object-fit:cover; display:block; }
.cam-frame{
  position:absolute; inset:8px; border-radius:12px;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.7);
  pointer-events:none;
}
.cam-fallback{ position:absolute; inset:0; display:grid; place-items:center; background:rgba(0,0,0,.3); }

.cam-controls{
  width:100%; max-width:var(--col-max, 361px); margin:12px auto 0;
  display:flex; align-items:center; justify-content:space-between;
}
.ghost-pill{
  width:56px; height:56px; border-radius:16px; display:grid; place-items:center;
  background:#17181b; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
  color:#e9eaec; font-size:20px;
}
.shutter{
  width:74px; height:74px; border-radius:999px; background:#fff; border:6px solid #1a1a1a;
  box-shadow: 0 8px 28px rgba(0,0,0,.45);
}
.btn-outline, .mt-8{ margin-top:8px; }
.btn-outline{
  width:100%; max-width:var(--col-max, 361px); height:48px; border-radius:12px;
  background:transparent; border:1px solid #3a3a3a; color:#f8f9fa; font:600 16px/1 Inter,system-ui,sans-serif;
}
.success-card{ width:100%; max-width:var(--col-max, 361px); margin:20vh auto 0; text-align:center; }
.success-ill{
  width:160px; height:100px; margin:0 auto 12px; border-radius:16px; display:grid; place-items:center;
  background:#1682f9; color:#fff; font-size:42px; box-shadow:0 16px 44px rgba(22,130,249,.28);
}

/* Small helpers */
.visually-hidden{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }



/* ===========================
   IDV (Front/Back/Review) scope
   =========================== */
.idv-screen{
  --col-max: 361px;
  background:#111; color:#f8f9fa; min-height:100dvh;
  padding: calc(72px + 16px) 16px calc(24px + env(safe-area-inset-bottom));
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* Top bar (reusing your pattern) */
.idv-screen .top-bar{
  position:fixed; inset:0 0 auto 0; height:72px; z-index:100; background:transparent;
}
.idv-screen .top{
  max-width:480px; margin:0 auto; padding:0 16px;
  display:flex; align-items:center; justify-content:space-between;
}
.idv-screen .back-btn{
  width:40px; height:40px; border:0; border-radius:999px;
  background:#202124; color:#f8f9fa; display:grid; place-items:center;
}
.idv-screen .top-title{ margin:0; font:600 18px/24px Inter,system-ui,sans-serif; }
.idv-screen .top-ghost{ width:40px; height:40px; }

/* Content column + headings */
.idv-screen .content{ width:100%; max-width:420px; margin:0 auto; }
.idv-screen .heading{ margin:0 0 6px; font:700 clamp(24px,6vw,32px)/1.25 Inter,system-ui,sans-serif; }
.idv-screen .subheading{ margin:0 0 16px; color:#c9c9c9; font:400 16px/1.4 Inter,system-ui,sans-serif; }

/* Camera & preview (scoped versions of your earlier classes) */
.idv-screen .cam-card{
  width:100%; max-width:var(--col-max); margin:8px auto 0;
  position:relative; aspect-ratio: 16/10; border-radius:16px; overflow:hidden;
  background:#0e1012; box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
.idv-screen #idv-video{ width:100%; height:100%; object-fit:cover; display:block; }
.idv-screen .cam-frame{ position:absolute; inset:8px; border-radius:12px; box-shadow: inset 0 0 0 3px rgba(255,255,255,.7); pointer-events:none; }
.idv-screen .cam-fallback{ position:absolute; inset:0; display:grid; place-items:center; background:rgba(0,0,0,.3); color:#c9c9c9; }

.idv-screen .cam-controls{
  width:100%; max-width:var(--col-max); margin:12px auto 0;
  display:flex; align-items:center; justify-content:space-between;
}
.idv-screen .ghost-pill{
  width:56px; height:56px; border-radius:16px; display:grid; place-items:center;
  background:#17181b; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
  color:#e9eaec; font-size:20px;
}
.idv-screen .shutter{
  width:74px; height:74px; border-radius:999px; background:#fff; border:6px solid #1a1a1a;
  box-shadow: 0 8px 28px rgba(0,0,0,.45);
}

.idv-screen .photo-grid{
  width:100%; max-width:var(--col-max); margin:8px auto 0;
  display:grid; gap:12px; grid-template-columns:1fr;
}
@media (min-width:520px){ .idv-screen .photo-grid{ grid-template-columns:1fr 1fr; } }

.idv-screen .photo-card{ padding:10px; border-radius:16px; background:#0e1012; box-shadow:0 0 0 2px #2a5fb6, 0 12px 32px rgba(0,0,0,.45); }
.idv-screen .photo-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.idv-screen .mini-pill{ height:30px; padding:0 10px; border-radius:8px; border:1px solid rgba(255,255,255,.12); background:transparent; color:#e9eaec; font:600 12px/1 Inter,system-ui,sans-serif; }
.idv-screen .photo-card img{ width:100%; display:block; border-radius:10px; background:#0e1012; }

/* Buttons */
.idv-screen .btn-primary{
  width:100%; max-width:var(--col-max); height:56px; border-radius:16px; border:0;
  background:#1682f9; color:#fff; font:600 16px/20px Inter,system-ui,sans-serif; margin-top:16px;
}
.idv-screen .btn-outline{
  width:100%; max-width:var(--col-max); height:48px; border-radius:12px; margin-top:8px;
  background:transparent; border:1px solid #3a3a3a; color:#f8f9fa; font:600 16px/1 Inter,system-ui,sans-serif;
}

/* Success */
.idv-screen .success-card{ width:100%; max-width:var(--col-max); margin:20vh auto 0; text-align:center; }
.idv-screen .success-ill{
  width:160px; height:100px; margin:0 auto 12px; border-radius:16px; display:grid; place-items:center;
  background:#1682f9; color:#fff; font-size:42px; box-shadow:0 16px 44px rgba(22,130,249,.28);
}




/* ==============================
   FLOWPESA — Confirm info (scoped)
   ============================== */
.confirm-screen{
  --page-max: 520px;
  --col-max: 420px;
  background:#111; color:#f8f9fa; min-height:100dvh;
  padding: calc(72px + 16px) 16px calc(24px + env(safe-area-inset-bottom));
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* top bar */
.confirm-screen .top-bar{
  position:fixed; inset:0 0 auto 0; height:72px; z-index:100; background:transparent;
}
.confirm-screen .top{
  width:100%; max-width:var(--page-max); margin:0 auto; padding:0 16px;
  display:flex; align-items:center; justify-content:space-between;
}
.confirm-screen .back-btn{
  width:40px; height:40px; border:0; border-radius:999px; background:#202124; color:#f8f9fa; display:grid; place-items:center;
}
.confirm-screen .top-title{ margin:0; font:600 18px/24px Inter,system-ui,sans-serif; }
.confirm-screen .top-ghost{ width:40px; height:40px; }

/* content */
.confirm-screen .content{ width:100%; max-width:var(--col-max); margin:0 auto; }
.confirm-screen .heading{ margin:0 0 6px; font:700 clamp(24px,6vw,32px)/1.25 Inter,system-ui,sans-serif; }
.confirm-screen .subheading{ margin:0 0 16px; color:#c9c9c9; font:400 16px/1.4 Inter,system-ui,sans-serif; }

/* cards */
.confirm-screen .info-card{
  background:#17181b; border-radius:16px; padding:14px; margin:12px 0;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.confirm-screen .card-head{
  display:flex; align-items:center; justify-content:space-between; margin-bottom:6px;
}
.confirm-screen .card-title{
  margin:0; font:600 16px/20px Inter,system-ui,sans-serif; color:#fff;
}
.confirm-screen .pill-edit{
  height:28px; padding:0 10px; display:inline-flex; align-items:center; border-radius:999px;
  background:#1f2023; color:#e9eaec; border:1px solid rgba(255,255,255,.10);
  font:600 12px/1 Inter,system-ui,sans-serif; text-decoration:none;
}
.confirm-screen .kv{
  list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:8px;
}
.confirm-screen .kv li{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  color:#c9c9c9; font:400 14px/18px Inter,system-ui,sans-serif;
}
.confirm-screen .kv strong{ color:#f3f4f6; font-weight:600; }

/* button */
.confirm-screen .btn-primary{
  width:100%; max-width:var(--col-max); height:56px; margin:18px auto 0; display:block;
  border:0; border-radius:16px; background:#1682f9; color:#fff; font:600 16px/20px Inter,system-ui,sans-serif;
}

/* responsive tweaks */
@media (min-width:640px){
  .confirm-screen .top-bar{ height:80px; }
  .confirm-screen{ padding-top: calc(80px + 16px); }
}
