/* ============================================================================
   visa-attachments.css — premium document-upload section for the visa forms.
   Built on the site design tokens (styles.css) so it themes light/dark for free.
   Paired with js/visa-attachments.js and includes/visa-attachments.php.
   ============================================================================ */

.ve-attach{border:1px solid var(--ink-300);border-radius:var(--radius-md);padding:20px;margin-top:6px;background:var(--paper)}
.ve-attach > legend{font-weight:800;font-size:15px;color:var(--ink-900);padding:0 8px}

/* Passport rule — an informational note (not an error). Prominent but calm. */
.ve-attach-passport-rule{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-sm);
  background:color-mix(in srgb,var(--brand-navy) 6%,var(--paper));border:1px solid color-mix(in srgb,var(--brand-navy) 20%,transparent);margin-bottom:14px}
.ve-attach-rule-ico{font-size:22px;line-height:1}
.ve-attach-passport-rule strong{display:block;font-size:14px;color:var(--ink-900);margin-bottom:3px}
.ve-attach-passport-rule .ve-attach-req-word{color:var(--brand-navy-light);font-weight:800}
.ve-attach-passport-rule p{margin:0;font-size:12.5px;line-height:1.55;color:var(--ink-700)}
.ve-attach-meta{font-size:12.5px;color:var(--ink-500);margin:0 0 16px}
.ve-attach-meta b{color:var(--ink-700)}
.ve-attach-noscript{font-size:13px;color:var(--brand-navy-light)}

/* Grid of category cards */
.ve-attach-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(max-width:640px){.ve-attach-grid{grid-template-columns:1fr}}

.ve-doc{border:1px solid var(--ink-300);border-radius:var(--radius-sm);background:var(--paper-alt);padding:14px;display:flex;flex-direction:column;gap:10px;position:relative;transition:border-color .15s,box-shadow .15s}
.ve-doc.is-full{grid-column:1/-1}
.ve-doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.ve-doc-title{font-weight:700;font-size:13.5px;color:var(--ink-900);line-height:1.3}
.ve-doc-badge{flex:0 0 auto;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;border-radius:var(--radius-full)}
.ve-doc-badge.req{background:color-mix(in srgb,var(--brand-red) 14%,transparent);color:var(--brand-red-dark)}
.ve-doc-badge.opt{background:color-mix(in srgb,var(--brand-navy) 12%,transparent);color:var(--brand-navy-light)}
.ve-doc-badge.rec{background:color-mix(in srgb,var(--brand-gold) 20%,transparent);color:#8a5a00}
.ve-doc-hint{font-size:11.5px;color:var(--ink-500);line-height:1.5;margin:-2px 0 0}
.ve-doc-note{font-size:11.5px;line-height:1.5;color:var(--ink-700);background:color-mix(in srgb,var(--brand-navy) 6%,transparent);border-left:3px solid color-mix(in srgb,var(--brand-navy) 32%,transparent);padding:6px 8px;border-radius:4px;margin:0}
.ve-doc-formats{font-size:11px;color:var(--ink-500)}
.ve-doc-formats b{color:var(--ink-700);font-weight:700}

/* Dropzone */
.ve-drop{border:1.5px dashed var(--ink-300);border-radius:var(--radius-sm);background:var(--paper);
  padding:16px 12px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.ve-drop:hover{border-color:var(--brand-navy-light);background:color-mix(in srgb,var(--brand-navy) 4%,var(--paper))}
.ve-drop.drag{border-color:var(--brand-red);background:color-mix(in srgb,var(--brand-red) 6%,var(--paper))}
.ve-drop-ico{font-size:20px;line-height:1;margin-bottom:4px}
.ve-drop-main{font-size:12.5px;font-weight:600;color:var(--ink-700)}
.ve-drop-main u{color:var(--brand-navy-light);text-decoration:none;border-bottom:1px solid currentColor}
.ve-drop-sub{font-size:10.5px;color:var(--ink-500);margin-top:2px}
.ve-doc input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* Selected-file card */
.ve-file{display:flex;align-items:center;gap:10px;border:1px solid var(--ink-300);border-radius:var(--radius-sm);background:var(--paper);padding:8px 10px}
.ve-file-thumb{flex:0 0 auto;width:40px;height:40px;border-radius:8px;object-fit:cover;background:var(--ink-100);display:flex;align-items:center;justify-content:center;font-size:18px;overflow:hidden}
.ve-file-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ve-file-info{min-width:0;flex:1}
.ve-file-name{font-size:12.5px;font-weight:700;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ve-file-sub{font-size:11px;color:var(--ink-500);display:flex;align-items:center;gap:6px}
.ve-file-ok{color:#0f9d58;font-weight:700}
.ve-file-actions{display:flex;gap:4px;flex:0 0 auto}
.ve-file-btn{border:1px solid var(--ink-300);background:var(--paper);border-radius:8px;padding:5px 8px;font-size:11px;font-weight:600;color:var(--ink-700);cursor:pointer;line-height:1;transition:background .15s,border-color .15s,color .15s}
.ve-file-btn:hover{border-color:var(--brand-navy-light);color:var(--brand-navy-light)}
.ve-file-btn.del:hover{border-color:var(--brand-red);color:var(--brand-red-dark)}

/* Progress bar (read/prepare state) */
.ve-prog{height:5px;border-radius:var(--radius-full);background:var(--ink-100);overflow:hidden;margin-top:2px}
.ve-prog > span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brand-navy-light),var(--brand-red));transition:width .12s linear}

/* Per-tile inline error */
.ve-doc.err{border-color:var(--brand-red);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-red) 12%,transparent)}
.ve-doc-err{font-size:11.5px;font-weight:600;color:var(--brand-red-dark)}

/* Other-attachment slots */
.ve-other-title,.ve-other-desc{width:100%;padding:8px 10px;border:1px solid var(--ink-300);border-radius:8px;font:inherit;font-size:12.5px;color:var(--ink-900);background:var(--paper)}
.ve-other-title:focus,.ve-other-desc:focus{outline:none;border-color:var(--brand-navy-light);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-navy) 12%,transparent)}
.ve-add-row{grid-column:1/-1;display:flex;justify-content:center;margin-top:2px}
.ve-add-btn{display:inline-flex;align-items:center;gap:8px;border:1.5px dashed var(--ink-300);background:var(--paper);color:var(--brand-navy-light);
  font-weight:700;font-size:13px;padding:10px 18px;border-radius:var(--radius-full);cursor:pointer;transition:border-color .15s,background .15s}
.ve-add-btn:hover{border-color:var(--brand-navy-light);background:color-mix(in srgb,var(--brand-navy) 5%,var(--paper))}
.ve-add-btn[disabled]{opacity:.5;cursor:not-allowed}
.ve-add-count{font-size:11px;color:var(--ink-500);font-weight:600}

.ve-section-label{grid-column:1/-1;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500);margin:6px 0 -4px}

/* ============================================================================
   Post-submission confirmation screen (rendered by js/visa-enquiry.js)
   ============================================================================ */
.ve-confirm{max-width:640px;margin:8px auto;background:var(--paper);border:1px solid var(--ink-300);border-radius:var(--radius-md);
  padding:clamp(22px,4vw,34px);text-align:center;box-shadow:var(--shadow-lg)}
.ve-cf-ico{width:60px;height:60px;margin:0 auto 14px;border-radius:50%;background:color-mix(in srgb,#0f9d58 16%,transparent);
  color:#0f9d58;font-size:32px;font-weight:900;display:flex;align-items:center;justify-content:center}
.ve-cf-title{font-size:clamp(1.3rem,3vw,1.7rem);font-weight:800;color:var(--ink-900);margin:0 0 8px}
.ve-cf-sub{font-size:14px;line-height:1.6;color:var(--ink-500);margin:0 auto 20px;max-width:52ch}
.ve-cf-code{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--grad-navy,linear-gradient(160deg,#14153a,#23246b));
  color:#fff;border-radius:var(--radius-sm);padding:16px 18px;margin-bottom:14px}
.ve-cf-code span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.75;font-weight:700}
.ve-cf-code b{font-size:clamp(1.3rem,4vw,1.7rem);font-weight:800;letter-spacing:.06em;font-family:'IBM Plex Mono',ui-monospace,monospace}
.ve-cf-copy{margin-top:6px;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.12);color:#fff;
  font-size:12px;font-weight:700;padding:5px 14px;border-radius:999px;cursor:pointer;transition:background .15s}
.ve-cf-copy:hover{background:rgba(255,255,255,.24)}
.ve-cf-note{font-size:12.5px;line-height:1.55;color:var(--brand-navy-light);background:color-mix(in srgb,var(--brand-gold) 14%,transparent);
  border:1px solid color-mix(in srgb,var(--brand-gold) 34%,transparent);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:18px;text-align:left}
.ve-cf-grid{text-align:left;border:1px solid var(--ink-300);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:18px}
.ve-cf-row{display:flex;justify-content:space-between;gap:14px;padding:10px 14px;font-size:13.5px}
.ve-cf-row:nth-child(odd){background:var(--paper-alt)}
.ve-cf-row span{color:var(--ink-500)}
.ve-cf-row b{color:var(--ink-900);font-weight:700;text-align:right;word-break:break-word}
.ve-cf-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.ve-cf-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:11px;font-size:14px;font-weight:700;
  cursor:pointer;border:1.5px solid var(--ink-300);background:var(--paper);color:var(--ink-900);text-decoration:none;transition:transform .12s,background .15s,border-color .15s}
.ve-cf-btn:hover{transform:translateY(-1px)}
.ve-cf-btn.primary{background:var(--brand-red);border-color:var(--brand-red);color:#fff;box-shadow:var(--shadow-glow)}
.ve-cf-btn.primary:hover{background:var(--brand-red-dark)}
.ve-cf-btn.ghost{background:transparent}
@media(max-width:520px){.ve-cf-actions{flex-direction:column}.ve-cf-btn{width:100%}}

/* Payment status on the confirmation screen */
.ve-cf-pay{display:inline-block;font-size:11px;font-weight:800;padding:2px 10px;border-radius:999px;
  background:color-mix(in srgb,var(--brand-red) 14%,transparent);color:var(--brand-red-dark)}
.ve-cf-btn.pay{background:#0f9d58;border-color:#0f9d58;color:#fff}
.ve-cf-btn.pay:hover{background:#0c7c46}

/* ============================================================================
   Country-aware upgrade: privacy note, passport modes, sub-uploaders, progress
   ============================================================================ */
.ve-attach-privacy{font-size:12.5px;line-height:1.55;color:var(--ink-700);background:color-mix(in srgb,#0f9d58 8%,transparent);
  border:1px solid color-mix(in srgb,#0f9d58 26%,transparent);border-radius:var(--radius-sm);padding:9px 12px;margin:0 0 14px}

/* Overall progress indicator */
.ve-progress{grid-column:1/-1;background:var(--paper);border:1px solid var(--ink-300);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:4px}
.ve-prog-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12.5px;font-weight:700;color:var(--ink-700);margin-bottom:8px}
.ve-prog-req{color:var(--brand-navy-light)}
.ve-prog-req.done{color:#0f9d58}
.ve-prog2{height:6px;border-radius:999px;background:var(--ink-100);overflow:hidden}
.ve-prog2 > span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brand-navy-light),#0f9d58);transition:width .2s ease}

/* Passport card: mode toggle + first/last sub-uploaders */
.ve-pass-modes{display:flex;gap:16px;flex-wrap:wrap;margin:2px 0 12px}
.ve-pass-mode{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-700);cursor:pointer}
.ve-pass-mode input{accent-color:var(--brand-navy-light)}
.ve-sub-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:640px){.ve-sub-grid{grid-template-columns:1fr}}
.ve-sub{border:1px solid var(--ink-300);border-radius:var(--radius-sm);background:var(--paper);padding:12px}
.ve-sub.err{border-color:var(--brand-red);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-red) 12%,transparent)}
.ve-sub-lbl{font-size:12.5px;font-weight:700;color:var(--ink-900);margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ve-sub input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ve-sub{position:relative}

/* Country-page enquiry CTA (opens the enquiry modal with the Documents step) */
.ve-cta-card{max-width:640px;margin:0 auto;text-align:center;padding:6px 0}
.ve-cta-text{font-size:14.5px;line-height:1.65;color:var(--ink-700);margin:0 0 18px}
.ve-cta-card .btn{font-size:15px}
.ve-cta-sub{font-size:12.5px;color:var(--ink-500);margin:16px 0 0;line-height:1.6}
.ve-cta-sub a{color:var(--brand-red);font-weight:600;text-decoration:none}
