:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;background-color:#f2f5fb;color:#101828}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:#f2f5fb;color:#101828}a{color:inherit}button{font-family:inherit}*:focus-visible{outline:3px solid #c41230;outline-offset:2px}#root{min-height:100vh;background:radial-gradient(circle at top,#f6f8ff,#eef2f8 40%,#edf0f7)}.shell{max-width:480px;margin:0 auto;padding:2.5rem clamp(1rem,4vw,2.5rem) 3rem;display:flex;flex-direction:column;gap:1.25rem;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#0f172a}.header{text-align:center;display:flex;flex-direction:column;gap:.4rem;align-items:center}.logo{width:min(280px,70vw);height:auto}.title{margin:.2rem 0 0;font-weight:700;font-size:1.25rem}.subtitle{margin:0;color:#475467;font-size:1rem}.card{background:#fff;border-radius:1.25rem;padding:1.5rem;border:1px solid #e4e7ec;box-shadow:0 18px 40px #0f172a1a;display:grid;gap:1rem;min-width:0}.field{display:grid;gap:.4rem;font-size:.95rem;font-weight:600;color:#0f172a;min-width:0}.field input{display:block;width:100%;max-width:100%;min-width:0;padding:.65rem .8rem;border-radius:.85rem;border:1px solid #d0d5dd;font-size:1rem;font-weight:500;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.field input:focus{border-color:#c41230;box-shadow:0 0 0 3px #c4123026}.field-error{color:#c41230;font-weight:500;font-size:.85rem}.form-error{margin:0;padding:.75rem .9rem;background:#fef3f2;color:#c41230;border-radius:.85rem;font-weight:600;font-size:.9rem}.btn-primary{border:none;border-radius:.95rem;padding:.85rem 1rem;font-size:1rem;font-weight:700;cursor:pointer;background:#0f172a;color:#fff;transition:transform .12s ease,background .18s ease,box-shadow .18s ease}.btn-primary:not(:disabled):hover{background:#1e293b;box-shadow:0 8px 18px #0f172a40}.btn-primary:disabled{background:#98a2b3;cursor:not-allowed;transform:none}.btn-primary:not(:disabled):active{transform:scale(.98)}.btn-secondary{border:1px solid #d0d5dd;border-radius:.95rem;padding:.65rem 1rem;font-size:.95rem;font-weight:600;cursor:pointer;background:#fff;color:#475467;transition:background .18s ease,border-color .18s ease}.btn-secondary:hover{background:#f9fafb;border-color:#98a2b3}.delivery-tiles{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.delivery-tile{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:1rem .75rem;border-radius:1rem;border:2px solid #e4e7ec;background:#fff;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease;font-weight:600;font-size:.95rem;color:#0f172a}.delivery-tile:hover{border-color:#d0d5dd;background:#f9fafb}.delivery-tile.selected{border-color:#c41230;background:#c412300a;box-shadow:0 0 0 3px #c412301f}.delivery-tile .tile-icon{font-size:1.5rem}.delivery-tile .tile-desc{font-size:.82rem;font-weight:500;color:#475467}.dob-wrapper{position:relative;display:flex;align-items:center}.dob-wrapper input[type=text]{flex:1;padding-right:2.8rem}.dob-calendar-btn{position:absolute;right:.5rem;border:none;background:none;cursor:pointer;font-size:1.2rem;color:#475467;padding:.3rem;line-height:1;border-radius:.25rem;transition:color .15s ease}.dob-calendar-btn:hover{color:#c41230}.dob-calendar-btn input[type=date]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.help-text{margin:0;font-size:.9rem;color:#475467;line-height:1.5}.waiting-icon{font-size:3rem;text-align:center}.waiting-heading{margin:0;font-size:1.15rem;font-weight:700;text-align:center}.waiting-text{margin:0;font-size:.95rem;color:#475467;text-align:center;line-height:1.6}.code-boxes{display:flex;gap:.5rem;justify-content:center}.code-boxes input{width:3rem;height:3.5rem;text-align:center;font-size:1.5rem;font-weight:700;border-radius:.85rem;border:1px solid #d0d5dd;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.code-boxes input:focus{border-color:#c41230;box-shadow:0 0 0 3px #c4123026}.session-banner{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#ecfdf3;color:#027a48;border-radius:.85rem;font-weight:600;font-size:.9rem}.session-banner.warning{background:#fef0c7;color:#93370d}.session-banner.expired{background:#fef3f2;color:#b42318}.dropzone{border:2px dashed #d0d5dd;border-radius:1rem;padding:2rem 1rem;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.dropzone:hover,.dropzone.drag-over{border-color:#c41230;background:#c4123008}.dropzone-icon{font-size:2.5rem;margin-bottom:.5rem}.dropzone-text{margin:0;font-weight:600;color:#0f172a}.dropzone-hint{margin:.3rem 0 0;font-size:.85rem;color:#475467}.file-list{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.file-item{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .8rem;background:#f9fafb;border:1px solid #edf0f7;border-radius:.85rem}.file-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.file-name{font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:.8rem;color:#475467}.file-remove{border:none;background:none;color:#b42318;font-size:1.2rem;cursor:pointer;padding:.25rem;line-height:1;border-radius:.25rem;transition:background .15s ease}.file-remove:hover{background:#b4231814}.progress-track{width:100%;height:6px;background:#e4e7ec;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#c41230,#0f172a);border-radius:999px;transition:width .2s ease}.success-icon{font-size:4rem;text-align:center}.success-heading{margin:0;font-size:1.25rem;font-weight:700;text-align:center;color:#027a48}.success-text{margin:0;font-size:.95rem;color:#475467;text-align:center;line-height:1.6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease}.slide-up{animation:slideUp .3s ease}.spinner{display:inline-block;width:1.1em;height:1.1em;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:480px){.code-boxes input{width:2.5rem;height:3rem;font-size:1.25rem}}
