:root{
  --bg:#08101d;--panel:#0d1727;--panel2:#111e31;--line:#20314a;--text:#f3f7fb;--muted:#91a2b8;
  --accent:#36d39a;--accent2:#66e7ba;--blue:#68a7ff;--danger:#ff7b7b;--warning:#ffd166;--shadow:0 24px 70px rgba(0,0,0,.34)
}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,#132742 0,transparent 35%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
button,input,textarea{font:inherit}.app-shell{width:min(1440px,calc(100% - 32px));margin:auto;padding:28px 0 34px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-weight:900;letter-spacing:.5px;background:linear-gradient(135deg,var(--accent),#2c8bc7);color:#07131c;box-shadow:0 10px 24px rgba(54,211,154,.18)}h1,h2,h3,p{margin:0}.brand h1{font-size:22px}.brand p,.subtle{color:var(--muted);font-size:13px;margin-top:4px}.status-pill{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:rgba(255,255,255,.025);padding:9px 12px;border-radius:999px;color:var(--muted);font-size:12px}.status-pill span{width:8px;height:8px;border-radius:50%;background:#7b8796}.status-pill.ready{color:#baf4df;border-color:rgba(54,211,154,.28);background:rgba(54,211,154,.06)}.status-pill.ready span{background:var(--accent);box-shadow:0 0 0 4px rgba(54,211,154,.08)}.status-pill.error{color:#ffd1d1;border-color:rgba(255,123,123,.3);background:rgba(255,123,123,.06)}.status-pill.error span{background:var(--danger)}
.layout{display:grid;grid-template-columns:minmax(340px,.86fr) minmax(520px,1.35fr);gap:20px;align-items:start}.panel{background:linear-gradient(180deg,rgba(17,30,49,.94),rgba(11,21,36,.98));border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:20px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-heading h2{font-size:19px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--accent);margin-bottom:5px}.accuracy-card{display:flex;gap:12px;padding:13px;border:1px solid rgba(104,167,255,.2);background:rgba(104,167,255,.055);border-radius:12px;margin-bottom:14px}.accuracy-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(54,211,154,.12);color:var(--accent);font-weight:900;flex:0 0 auto}.accuracy-card strong{font-size:13px}.accuracy-card p{font-size:12px;color:var(--muted);line-height:1.55;margin-top:3px}.drop-zone{display:flex;min-height:205px;align-items:center;justify-content:center;flex-direction:column;gap:7px;border:1.5px dashed #35506e;border-radius:15px;background:rgba(7,14,25,.34);cursor:pointer;transition:.2s;padding:20px;text-align:center}.drop-zone:hover,.drop-zone.dragover{border-color:var(--accent);background:rgba(54,211,154,.045)}.upload-icon{font-size:28px;color:var(--accent);line-height:1}.drop-zone strong{font-size:15px}.drop-zone span{color:var(--muted);font-size:13px}.drop-zone small{color:#697d96;font-size:11px;margin-top:2px}.file-list{display:grid;gap:8px;margin-top:12px}.file-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:#0b1524}.file-info{min-width:0;display:flex;flex-direction:column}.file-name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta{font-size:10px;color:var(--muted);margin-top:2px}.file-remove{border:0;background:transparent;color:#9babbe;font-size:20px;cursor:pointer;padding:1px 6px}.actions-row{margin-top:14px}.btn{border:0;border-radius:10px;cursor:pointer;font-weight:750;transition:.18s;padding:10px 14px}.btn:disabled{opacity:.42;cursor:not-allowed}.btn-primary{width:100%;background:linear-gradient(135deg,var(--accent),#2cb6aa);color:#06131b;padding:12px 16px}.btn-primary:not(:disabled):hover{filter:brightness(1.05);transform:translateY(-1px)}.btn-secondary{background:#182b43;color:#e6eef8;border:1px solid #2b4260}.btn-ghost{background:transparent;color:#9fb0c4;border:1px solid #2b3d54}.progress-card{margin-top:14px;border:1px solid rgba(54,211,154,.2);background:rgba(54,211,154,.045);border-radius:12px;padding:13px;display:flex;align-items:flex-start;gap:12px}.progress-card strong{font-size:13px}.progress-card p{font-size:11px;color:var(--muted);line-height:1.5;margin-top:4px}.spinner{width:22px;height:22px;border:2px solid rgba(54,211,154,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex:0 0 auto}@keyframes spin{to{transform:rotate(360deg)}}.privacy-notice{margin-top:13px;padding:11px 12px;border-left:3px solid #3c5572;background:rgba(255,255,255,.025);color:#8fa1b7;font-size:11px;line-height:1.55}.privacy-notice code{color:#bfcede}.result-sections{display:grid;gap:14px}.result-section{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:rgba(4,10,18,.25)}.section-title{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.018)}.section-title h3{font-size:13px}.section-title span{font-size:10px;color:var(--muted)}.field-list{display:grid}.field-row{display:grid;grid-template-columns:155px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 12px;border-bottom:1px solid rgba(32,49,74,.65)}.field-row:last-child{border-bottom:0}.field-label{font-size:11px;color:#a9b7c8}.field-input{width:100%;border:1px solid transparent;background:transparent;color:#f4f8fc;border-radius:7px;padding:7px 8px;min-height:34px;resize:vertical;outline:none}.field-input:hover,.field-input:focus{background:#0b1728;border-color:#29415f}.copy-btn{width:33px;height:33px;border-radius:8px;border:1px solid #2a405a;background:#13243a;color:#b9c8d8;cursor:pointer}.copy-btn:hover{border-color:var(--accent);color:var(--accent)}.field-state{display:inline-flex;align-items:center;gap:5px;margin-left:7px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.field-state.verified{color:var(--accent)}.field-state.review{color:var(--warning)}.quality-banner{margin-bottom:14px;padding:12px 13px;border-radius:11px;border:1px solid rgba(54,211,154,.22);background:rgba(54,211,154,.05);font-size:12px;line-height:1.45;color:#bcebdc}.quality-banner.review{border-color:rgba(255,209,102,.3);background:rgba(255,209,102,.055);color:#f9df9e}.diagnostics{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:#0a1422}.diagnostics summary{cursor:pointer;padding:12px 0;color:#aebccd;font-size:12px}.diag-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-bottom:12px}.diag-grid>div{border:1px solid var(--line);border-radius:9px;padding:9px;background:#0d1929}.diag-grid span{display:block;color:var(--muted);font-size:9px}.diag-grid strong{font-size:12px;margin-top:3px;display:block}.warning-list{padding:0 0 12px;font-size:11px;color:#dfc47c;line-height:1.5}.warning-list p{margin:5px 0}.toast{position:fixed;right:20px;bottom:20px;background:#14263a;border:1px solid #2f4a68;color:#e7f1fa;border-radius:10px;padding:10px 13px;font-size:12px;box-shadow:0 16px 40px rgba(0,0,0,.35);opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{border-color:rgba(255,123,123,.4);color:#ffd2d2}footer{text-align:center;color:#70849c;font-size:11px;padding:18px 6px 0}
@media(max-width:980px){.layout{grid-template-columns:1fr}.results-panel{order:2}}@media(max-width:640px){.app-shell{width:min(100% - 20px,1440px);padding-top:14px}.topbar{align-items:flex-start;flex-direction:column}.status-pill{align-self:flex-start}.panel{padding:14px;border-radius:14px}.field-row{grid-template-columns:1fr auto;gap:4px 8px}.field-label{grid-column:1/-1}.copy-btn{grid-column:2;grid-row:2}.field-input{grid-column:1;grid-row:2}.diag-grid{grid-template-columns:1fr}.results-heading{align-items:flex-start}.btn-secondary{padding:8px 10px}}

/* Full-screen AI extraction loader */
body.is-loading { overflow: hidden !important; }
#loadingOverlay[hidden] { display: none !important; }
#loadingOverlay.loading-overlay {
  position: fixed !important;
  inset: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 20px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: auto !important;
  z-index: 2147483000 !important;
  background: rgba(4,10,18,.88) !important;
  backdrop-filter: blur(9px) !important;
  -webkit-backdrop-filter: blur(9px) !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  box-sizing: border-box !important;
}
#loadingOverlay .loading-modal {
  position: relative !important;
  flex: 0 1 440px !important;
  width: min(440px, calc(100% - 8px)) !important;
  max-width: 440px !important;
  margin: auto !important;
  border: 1px solid rgba(54,211,154,.28) !important;
  background: linear-gradient(180deg,#101e30,#0a1422) !important;
  border-radius: 20px !important;
  padding: 26px 24px 22px !important;
  text-align: center !important;
  box-shadow: 0 28px 90px rgba(0,0,0,.58) !important;
  color: #f3f7fb !important;
  transform: none !important;
}
#loadingOverlay .loading-modal h3 { font-size: 18px !important; margin: 18px 0 0 !important; color:#f3f7fb !important; }
#loadingOverlay .loading-modal p { font-size: 13px !important; color:#a8b8ca !important; line-height:1.55 !important; margin:7px 0 0 !important; min-height:40px !important; }
#loadingOverlay .loading-modal small { display:block !important; color:#72869f !important; font-size:10px !important; line-height:1.5 !important; margin-top:13px !important; }
#loadingOverlay .scan-visual { position:relative !important; width:190px !important; height:142px !important; margin:0 auto !important; display:grid !important; place-items:center !important; }
#loadingOverlay .passport-sheet { position:relative !important; width:142px !important; height:104px !important; border:1px solid #34516c !important; border-radius:10px !important; background:linear-gradient(145deg,#142740,#0b1728) !important; box-shadow:0 14px 36px rgba(0,0,0,.32) !important; overflow:hidden !important; display:grid !important; grid-template-columns:46px 1fr !important; grid-template-rows:1fr 25px !important; gap:9px !important; padding:14px 12px 9px !important; box-sizing:border-box !important; }
#loadingOverlay .passport-photo { border-radius:5px !important; background:linear-gradient(160deg,#314c68,#172a40) !important; position:relative !important; }
#loadingOverlay .passport-photo:before { content:""; position:absolute; width:16px; height:16px; border-radius:50%; background:#71869c; left:50%; top:17%; transform:translateX(-50%); }
#loadingOverlay .passport-photo:after { content:""; position:absolute; width:28px; height:22px; border-radius:14px 14px 5px 5px; background:#60788f; left:50%; bottom:12%; transform:translateX(-50%); }
#loadingOverlay .passport-lines { display:flex !important; flex-direction:column !important; gap:7px !important; padding-top:3px !important; }
#loadingOverlay .passport-lines span { height:5px !important; border-radius:99px !important; background:#3a526d !important; display:block !important; }
#loadingOverlay .passport-lines span:nth-child(2){width:78% !important} #loadingOverlay .passport-lines span:nth-child(3){width:90% !important} #loadingOverlay .passport-lines span:nth-child(4){width:64% !important}
#loadingOverlay .passport-mrz { grid-column:1/-1 !important; display:flex !important; flex-direction:column !important; gap:5px !important; justify-content:center !important; }
#loadingOverlay .passport-mrz span { height:4px !important; border-radius:99px !important; background:repeating-linear-gradient(90deg,#637b93 0 3px,transparent 3px 5px) !important; display:block !important; }
#loadingOverlay .scan-line { position:absolute !important; left:0 !important; right:0 !important; height:2px !important; top:-4px; background:linear-gradient(90deg,transparent,#52f0b5,transparent) !important; box-shadow:0 0 14px rgba(82,240,181,.9) !important; animation:passportScan 1.8s ease-in-out infinite; }
#loadingOverlay .ai-orbit { position:absolute !important; right:2px !important; top:2px !important; width:48px !important; height:48px !important; border-radius:50% !important; border:1px solid rgba(104,167,255,.24) !important; animation:orbitPulse 1.6s ease-in-out infinite; }
#loadingOverlay .ai-orbit span { position:absolute !important; right:-4px !important; top:14px !important; width:22px !important; height:22px !important; border-radius:50% !important; display:grid !important; place-items:center !important; background:#182d46 !important; color:#66e7ba !important; border:1px solid #33526f !important; font-size:11px !important; }
#loadingOverlay .loading-bar { height:5px !important; border-radius:99px !important; background:#17283d !important; overflow:hidden !important; margin-top:15px !important; }
#loadingOverlay .loading-bar span { display:block !important; width:38% !important; height:100% !important; border-radius:inherit !important; background:linear-gradient(90deg,transparent,#36d39a,#68a7ff,transparent) !important; animation:loadingSweep 1.35s ease-in-out infinite; }
#loadingOverlay .loading-dots { display:flex !important; justify-content:center !important; gap:5px !important; margin-top:13px !important; }
#loadingOverlay .loading-dots i { width:6px !important; height:6px !important; border-radius:50% !important; background:#4e647d !important; animation:dotPulse 1.15s ease-in-out infinite; display:block !important; }
#loadingOverlay .loading-dots i:nth-child(2){animation-delay:.15s} #loadingOverlay .loading-dots i:nth-child(3){animation-delay:.3s}
.toast { z-index: 2147483001 !important; }
@keyframes passportScan { 0%{top:-4px;opacity:.15} 15%{opacity:1} 50%{opacity:1} 100%{top:106px;opacity:.15} }
@keyframes orbitPulse { 0%,100%{transform:scale(.95);opacity:.65} 50%{transform:scale(1.07);opacity:1} }
@keyframes loadingSweep { 0%{transform:translateX(-120%)} 100%{transform:translateX(360%)} }
@keyframes dotPulse { 0%,100%{transform:translateY(0);opacity:.4} 50%{transform:translateY(-4px);opacity:1} }
@media(max-width:520px){ #loadingOverlay.loading-overlay{padding:12px !important} #loadingOverlay .loading-modal{padding:22px 17px 19px !important;border-radius:16px !important} #loadingOverlay .scan-visual{transform:scale(.92);margin-top:-4px !important;margin-bottom:-4px !important} }
@media(prefers-reduced-motion:reduce){ #loadingOverlay .scan-line,#loadingOverlay .ai-orbit,#loadingOverlay .loading-bar span,#loadingOverlay .loading-dots i{animation:none !important} #loadingOverlay .scan-line{top:52px;opacity:.8} #loadingOverlay .loading-bar span{width:100% !important;opacity:.7} }


/* PDF actions */
.result-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.btn-pdf{background:rgba(54,211,154,.10);color:#bff4df;border:1px solid rgba(54,211,154,.34);white-space:nowrap}
.btn-pdf:not(:disabled):hover{background:rgba(54,211,154,.16);border-color:rgba(54,211,154,.55)}
@media(max-width:640px){.result-actions{width:100%;justify-content:flex-start}.results-heading{flex-wrap:wrap}}

/* v4.7 three-step workflow */
.three-step-shell{max-width:1220px}.step-layout{display:grid;gap:18px}.workflow-panel{transition:border-color .2s,opacity .2s,transform .2s}.active-step{border-color:rgba(54,211,154,.34)}.completed-step{border-color:rgba(54,211,154,.18)}.locked-step{opacity:.62}.step-lock-notice{padding:18px;border:1px dashed #344a64;border-radius:12px;text-align:center;color:var(--muted);font-size:12px;background:rgba(255,255,255,.02)}
.workflow-stepper{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 20px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(8,16,29,.68)}.workflow-step{display:flex;align-items:center;gap:9px;color:#70849c;min-width:0}.workflow-step>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid #30445e;background:#101d2e;font-weight:900;font-size:12px;flex:0 0 auto}.workflow-step div{display:flex;flex-direction:column;min-width:0}.workflow-step b{font-size:12px;color:#8497ad;white-space:nowrap}.workflow-step small{font-size:9px;color:#60738b;white-space:nowrap}.workflow-step.active>span{background:var(--accent);border-color:var(--accent);color:#06131b}.workflow-step.active b{color:#dff9ef}.workflow-step.complete>span{background:rgba(54,211,154,.14);border-color:rgba(54,211,154,.45);color:var(--accent)}.workflow-step.complete>span:before{content:'✓';font-size:13px}.workflow-step.complete>span{font-size:0}.workflow-step.complete b{color:#bcebdc}.step-line{height:1px;min-width:38px;flex:1;max-width:120px;background:#273a52}.step-success{margin-top:13px;padding:10px 12px;border-radius:10px;background:rgba(54,211,154,.06);border:1px solid rgba(54,211,154,.2);color:#bcebdc;font-size:12px}.visa-rule-card{border:1px solid rgba(104,167,255,.2);background:rgba(104,167,255,.045);padding:12px;border-radius:12px;margin-bottom:14px}.visa-rule-card>strong{font-size:12px}.rule-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.rule-chips span{padding:5px 8px;border-radius:999px;background:#10243a;border:1px solid #28425f;font-size:10px;color:#b7c9dd}.visa-drop-zone{min-height:175px}.visa-preview{margin-top:14px;border:1px solid rgba(54,211,154,.23);border-radius:12px;overflow:hidden;background:rgba(54,211,154,.035)}.visa-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.visa-preview-grid>div{padding:12px;border-right:1px solid rgba(32,49,74,.7)}.visa-preview-grid>div:last-child{border-right:0}.visa-preview-grid span{display:block;color:var(--muted);font-size:9px}.visa-preview-grid strong{display:block;margin-top:4px;font-size:12px;overflow-wrap:anywhere}.results-panel{scroll-margin-top:18px}
@media(max-width:760px){.workflow-stepper{justify-content:flex-start;overflow-x:auto}.step-line{min-width:26px}.workflow-step small{display:none}.visa-preview-grid{grid-template-columns:1fr 1fr}.visa-preview-grid>div:nth-child(2){border-right:0}.visa-preview-grid>div{border-bottom:1px solid rgba(32,49,74,.7)}.visa-preview-grid>div:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:480px){.workflow-stepper{gap:7px;padding:11px}.workflow-step>span{width:29px;height:29px}.workflow-step b{font-size:10px}.step-line{min-width:16px}.visa-preview-grid{grid-template-columns:1fr}.visa-preview-grid>div{border-right:0!important;border-bottom:1px solid rgba(32,49,74,.7)!important}.visa-preview-grid>div:last-child{border-bottom:0!important}}

/* v5.1 visa step skip controls */
.visa-actions-row{align-items:center;gap:12px;flex-wrap:wrap}
.action-or{font-size:13px;font-weight:700;color:var(--muted,#667085);text-transform:uppercase;letter-spacing:.08em}
.skip-help{margin:10px 0 0;font-size:13px;line-height:1.55;color:var(--muted,#667085)}
@media (max-width:640px){.visa-actions-row .btn{width:100%}.action-or{width:100%;text-align:center;margin:-2px 0}}


/* v5.2 Indian Visa Autofill handoff */
.btn-autofill{background:#152945;color:#dce9fb;border:1px solid #35567d;white-space:nowrap}
.btn-autofill:not(:disabled):hover{border-color:#6aa7ff;background:#193353}
.autofill-help{margin:0 0 14px;padding:11px 13px;display:flex;gap:9px;align-items:flex-start;border:1px solid rgba(104,167,255,.24);background:rgba(104,167,255,.05);border-radius:11px;font-size:11px;line-height:1.5;color:#aebdd0}
.autofill-help strong{color:#dfeaff;white-space:nowrap}.autofill-help span{min-width:0}
@media(max-width:700px){.autofill-help{flex-direction:column}.autofill-help strong{white-space:normal}}
