*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Arial,sans-serif;background:#f4f6f9;display:flex;justify-content:center;min-height:100vh;padding:2rem 1rem}
.card{background:#fff;border-radius:12px;padding:2rem;width:100%;max-width:1200px;box-shadow:0 2px 12px rgba(0,0,0,.08)}
h1{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:#1a1a2e;text-align:center}
h2{font-size:1rem;font-weight:600;margin-bottom:1rem;color:#1a1a2e}
label{display:block;font-size:.8rem;color:#555;margin-bottom:4px;margin-top:12px}
input[type=text],input[type=email],select{width:100%;padding:10px 12px;border:1.5px solid #ddd;border-radius:8px;font-size:.95rem;outline:none;background:#fff;transition:border-color 0.2s}
input[type=text]:focus,input[type=email]:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(54,43,99,0.1)}
input.invalid,select.invalid{border-color:#A32D2D !important;background:#fff8f8}
input.valid,select.valid{border-color:#3B6D11 !important}
input:disabled,select:disabled{background:#f4f6f9;color:#888;cursor:not-allowed}
.field-error{font-size:.75rem;color:#A32D2D;margin-top:4px;display:none}
.field-error.visible{display:block}
button{width:100%;margin-top:1.25rem;padding:11px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background 0.2s}
button:hover:not(:disabled){background:var(--accent-dark)}
button:disabled{background:#aaa;cursor:not-allowed}
button.secondary{background:transparent;color:var(--accent);border:1.5px solid var(--accent);margin-top:8px}
button.secondary:hover:not(:disabled){background:var(--accent-tint)}
.error{background:#FCEBEB;color:#A32D2D;border-radius:8px;padding:12px 14px;font-size:.9rem;margin-top:1rem;display:flex;align-items:flex-start;gap:8px}
.error::before{content:"⚠";font-size:1rem;flex-shrink:0}
.success{background:#EAF3DE;color:#3B6D11;border-radius:8px;padding:12px 14px;font-size:.9rem;margin-top:1rem;display:flex;align-items:flex-start;gap:8px}
.success::before{content:"✓";font-size:1rem;flex-shrink:0;font-weight:700}
.section-label{font-size:.78rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin:1rem 0 .5rem}
.personal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px}
.record-card{background:#f4f6f9;border-radius:10px;padding:1rem 1.25rem;margin-top:.75rem;border:1px solid #e2e6ea}
.record-header{font-size:.75rem;font-weight:600;color:#555;margin-bottom:8px}
.record-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.result-cell{background:#fff;border-radius:8px;padding:10px 12px;border:1px solid #e2e6ea}
.result-cell.wide{grid-column:span 2}
.result-cell .key{font-size:.72rem;color:#888;margin-bottom:3px}
.result-cell .val{font-size:.95rem;font-weight:600;color:#1a1a2e;word-break:break-word}
.success-label{font-size:.8rem;color:#3B6D11;font-weight:600;margin-bottom:8px}
.divider{border:none;border-top:1px solid #eee;margin:1.5rem 0}
.institution-section{display:none}
.institution-section.visible{display:block}
.verification-section{display:none}
.verification-section.visible{display:block}

/* File upload */
.file-upload-area{border:2px dashed #ddd;border-radius:8px;padding:1.25rem 1rem;text-align:center;margin-top:8px;cursor:pointer;position:relative;transition:border-color 0.2s,background 0.2s}
.file-upload-area:hover{border-color:var(--accent);background:var(--accent-tint)}
.file-upload-area.dragover{border-color:var(--accent);background:var(--accent-tint)}
.file-upload-area.uploaded{border-color:#3B6D11;background:#f2fae8;border-style:solid}
.file-upload-area input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.upload-icon{font-size:1.5rem;margin-bottom:4px}
.upload-text{font-size:.85rem;color:#555}
.upload-hint{font-size:.75rem;color:#aaa;margin-top:2px}
.file-status{margin-top:6px;font-size:.82rem;border-radius:6px;padding:6px 10px;display:none}
.file-status.uploading{display:block;background:var(--accent-tint);color:var(--accent)}
.file-status.done{display:block;background:#EAF3DE;color:#3B6D11}
.file-status.failed{display:block;background:#FCEBEB;color:#A32D2D}
.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:4px}
.lookup-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}

/* Progress bar */
.progress-container{display:none;margin-top:1rem}
.progress-container.visible{display:block}
.progress-bar-track{background:#e2e6ea;border-radius:999px;height:8px;overflow:hidden}
.progress-bar-fill{background:var(--accent);height:100%;border-radius:999px;transition:width 0.4s ease;width:0%}
.progress-label{font-size:.8rem;color:#555;margin-top:6px;text-align:center}

/* Mobile */
@media(max-width:700px){
  body{padding:1rem .5rem}
  .card{padding:1.25rem 1rem}
  h1{font-size:1.2rem}
  .lookup-grid{grid-template-columns:1fr}
  .personal-grid{grid-template-columns:1fr 1fr}
  .record-grid{grid-template-columns:1fr 1fr}
  .upload-grid{grid-template-columns:1fr}
  .result-cell.wide{grid-column:span 2}
  div[style*="grid-template-columns: 2fr 1fr 1fr"]{display:grid !important;grid-template-columns:1fr !important}
}
@media(max-width:400px){
  .personal-grid{grid-template-columns:1fr}
  .record-grid{grid-template-columns:1fr}
}
