:root{--bg:#0c1628;--surface:#fff;--primary:#0f1a2e;--accent:#007a47;--accent-hover:#005f38;--accent-light:#007a4717;--accent-mid:#007a4733;--text:#0f1a2e;--text-muted:#6b7585;--border:#dde2ee;--border-strong:#c2cada;--radius:14px;--shadow:0 32px 80px #0000004d, 0 4px 16px #00000024;--shadow-ticket:0 8px 32px #0f1a2e24, 0 2px 6px #0f1a2e14;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);min-height:100vh}#root{flex-direction:column;align-items:center;width:100%;min-height:100vh;display:flex}h1{letter-spacing:-.01em;color:var(--primary);font-family:Plus Jakarta Sans,sans-serif;font-size:1.9rem;font-weight:800;line-height:1.2;animation:.4s cubic-bezier(.22,1,.36,1) .15s both fadeUp}.subtitle{color:var(--text-muted);margin-top:.5rem;margin-bottom:1.25rem;font-size:.9rem;line-height:1.6;animation:.4s cubic-bezier(.22,1,.36,1) .21s both fadeUp}.welcome-checklist{flex-direction:column;gap:.5rem;margin:0 0 1.75rem;padding:0;list-style:none;display:flex}.welcome-checklist li{color:var(--text-main);align-items:flex-start;gap:.5rem;font-size:.875rem;line-height:1.5;display:flex}.checklist-icon{color:var(--accent);flex-shrink:0;font-size:.9rem;font-weight:700}.page{background-color:var(--bg);background-image:radial-gradient(circle,#ffffff0b 1px,#0000 1px);background-size:22px 22px;flex:1;justify-content:center;align-items:center;width:100%;padding:2rem;display:flex}.card{border-radius:var(--radius);border-top:4px solid var(--accent);box-shadow:var(--shadow);background:linear-gradient(170deg,#eaf2ed 0%,#fff 48%);width:100%;max-width:460px;padding:2rem 2.25rem;animation:.45s cubic-bezier(.22,1,.36,1) both cardEnter}.card--wide{max-width:520px}.provider--cornelsen{--accent:#e3000f;--accent-hover:#b8000c;--accent-light:#e3000f12;--accent-mid:#e3000f2e}.provider--cornelsen .card{background:linear-gradient(170deg,#faecec 0%,#fff 48%)}@keyframes cardEnter{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideRight{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.card-service-header{border-bottom:1px solid var(--border);align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1.25rem;animation:.35s 50ms both fadeIn;display:flex}.vgn-logo{object-fit:contain;flex-shrink:0;width:auto;height:40px;display:block}.brand-logo-badge{border-radius:4px;flex-shrink:0;width:120px;height:36px;overflow:hidden}.brand-logo-badge img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.provider-logo-text{flex-direction:column;gap:3px;display:flex}.provider-logo-name{letter-spacing:.04em;color:var(--primary);font-family:Plus Jakarta Sans,sans-serif;font-size:1rem;font-weight:800;line-height:1}.provider-logo-sub{color:var(--text-muted);letter-spacing:.02em;font-size:.7rem;font-weight:500;line-height:1}.step-track{align-items:flex-start;margin-bottom:2rem;animation:.35s .1s both fadeIn;display:flex}.step-node{flex-direction:column;flex-shrink:0;align-items:center;gap:.5rem;display:flex}.step-circle{border:1.5px solid var(--border-strong);width:28px;height:28px;color:var(--text-muted);background:var(--surface);border-radius:50%;justify-content:center;align-items:center;font-family:Plus Jakarta Sans,sans-serif;font-size:.65rem;font-weight:700;transition:all .2s;display:flex}.step-node.active .step-circle{border-color:var(--accent);color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 3px var(--accent-light)}.step-node.done .step-circle{border-color:var(--accent);background:var(--accent);color:#fff}.step-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;font-size:.6rem;font-weight:600}.step-node.active .step-label{color:var(--accent)}.step-connector{background:var(--border-strong);flex:1;height:1.5px;margin-top:13px;transition:background .3s}.step-connector.done{background:var(--accent)}.selection-card{background:var(--surface);border-top:none;max-width:480px}.selection-card h1{font-size:1.45rem;font-weight:700;animation-delay:80ms}.selection-card .subtitle{margin-bottom:0;animation-delay:.14s}.service-list{flex-direction:column;gap:.75rem;margin:1.5rem 0 1.25rem;display:flex}.service-card{border:1.5px solid var(--border);cursor:pointer;text-align:left;background:0 0;border-radius:12px;align-items:center;gap:1rem;width:100%;padding:1.25rem;transition:all .2s cubic-bezier(.22,1,.36,1);animation:.4s cubic-bezier(.22,1,.36,1) both fadeUp;display:flex;position:relative;overflow:hidden}.service-list .service-card:first-child{animation-delay:.2s}.service-list .service-card:nth-child(2){animation-delay:.275s}.service-card:before{content:"";border-radius:2px 0 0 2px;width:4px;transition:transform .25s cubic-bezier(.22,1,.36,1);position:absolute;top:0;bottom:0;left:0;transform:scaleY(.45)}.service-card--vgn:before{background:#007a47}.service-card--cornelsen:before{background:#e3000f}.service-card:hover{transform:translateY(-2px)}.service-card--vgn:hover{background:#007a470a;border-color:#007a47;box-shadow:0 8px 28px #007a4724}.service-card--cornelsen:hover{background:#e3000f0a;border-color:#e3000f;box-shadow:0 8px 28px #e3000f24}.service-card:hover:before{transform:scaleY(1)}.service-card:active{transform:translateY(0)scale(.99)}.service-card-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.service-card-icon--vgn{color:#007a47;background:#007a471a}.service-card-icon--cornelsen{color:#e3000f;background:#e3000f1a}.service-card-content{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.service-card-name{color:var(--primary);font-family:Plus Jakarta Sans,sans-serif;font-size:.95rem;font-weight:700}.service-card-desc{color:var(--text-muted);font-size:.78rem;line-height:1.35}.service-card-arrow{color:var(--text-muted);flex-shrink:0;font-size:1rem;transition:transform .2s,color .2s}.service-card--vgn:hover .service-card-arrow{color:#007a47;transform:translate(4px)}.service-card--cornelsen:hover .service-card-arrow{color:#e3000f;transform:translate(4px)}.selection-footer{color:var(--text-muted);text-align:center;letter-spacing:.03em;font-size:.65rem;animation:.4s .36s both fadeIn}.cta-btn{background:var(--accent);color:#fff;cursor:pointer;letter-spacing:.02em;border:none;border-radius:10px;width:100%;padding:.875rem 1rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.9rem;font-weight:600;transition:background .15s,transform .1s,box-shadow .15s}.cta-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 20px #007a474d}.provider--cornelsen .cta-btn:hover:not(:disabled){box-shadow:0 6px 20px #e3000f4d}.cta-btn:active:not(:disabled){box-shadow:none;transform:translateY(0)}.cta-btn:disabled{opacity:.48;cursor:not-allowed}.form-hint{color:var(--text-muted);text-align:center;margin-top:0;font-size:.78rem;font-weight:400;line-height:1.55}.cta-btn--outline{width:100%;color:var(--accent);border:1.5px solid var(--accent);cursor:pointer;letter-spacing:.02em;background:0 0;border-radius:10px;padding:.75rem 1rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.875rem;font-weight:600;transition:background .15s,transform .1s}.cta-btn--outline:hover{background:var(--accent-light);transform:translateY(-1px)}.back-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-top:1.25rem;padding:0;font-family:Plus Jakarta Sans,sans-serif;font-size:.82rem;transition:color .15s;display:inline-block}.back-link:hover{color:var(--primary)}.form-header{margin-bottom:2rem;animation:.4s cubic-bezier(.22,1,.36,1) .16s both fadeUp}.form-header h1{font-size:1.75rem;animation:none}.application-form{flex-direction:column;gap:1rem;animation:.4s cubic-bezier(.22,1,.36,1) .22s both fadeUp;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-field{flex-direction:column;gap:.5rem;display:flex}.form-field label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:600}.field-note{text-transform:none;letter-spacing:0;color:var(--text-muted);opacity:.7;font-size:.68rem;font-weight:400}.form-field input{border:1.5px solid var(--border);background:var(--surface);color:var(--primary);border-radius:8px;outline:none;width:100%;padding:.75rem 1rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-field input::placeholder{color:var(--border-strong)}.form-field input:focus,.form-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.form-field select{border:1.5px solid var(--border);background:var(--surface);color:var(--primary);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B7585' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;border-radius:8px;outline:none;width:100%;padding:.75rem 2rem .75rem 1rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-field select:invalid,.form-field select option[value=""]{color:var(--border-strong)}.verify-steps{flex-direction:column;gap:1rem;margin:1.5rem 0 .5rem;list-style:none;animation:.4s cubic-bezier(.22,1,.36,1) .26s both fadeUp;display:flex}.verify-step{align-items:center;gap:.75rem;display:flex}.verify-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.7rem;display:flex}.verify-icon--waiting{border:1.5px solid var(--border-strong)}.verify-icon--active{border:1.5px solid var(--accent);background:var(--accent-light)}.verify-icon--done{background:var(--accent);color:#fff;font-size:.6rem;font-weight:700}.verify-step-text{color:var(--text-muted);font-size:.875rem;transition:color .2s}.verify-step-text--active{color:var(--primary);font-weight:500}.spinner{border:1.5px solid var(--accent-mid);border-top-color:var(--accent);border-radius:50%;width:10px;height:10px;animation:.65s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.ticket-wrapper{margin-top:1.75rem;animation:.55s cubic-bezier(.22,1,.36,1) both ticketReveal}@keyframes ticketReveal{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.ticket-card{background:var(--surface);box-shadow:var(--shadow-ticket);border:1px solid var(--border);border-radius:12px;display:flex;position:relative;overflow:hidden}.ticket-card:before,.ticket-card:after{content:"";background:var(--surface);z-index:2;border:1px solid var(--border);border-radius:50%;width:16px;height:16px;position:absolute;left:36px}.ticket-card:before{top:-8px}.ticket-card:after{bottom:-8px}.ticket-stub{background:var(--accent);flex-shrink:0;justify-content:center;align-items:center;width:44px;padding:1.25rem 0;display:flex;position:relative}.ticket-stub:after{content:"";border-right:2px dashed #ffffff4d;position:absolute;top:0;bottom:0;right:0}.ticket-stub-text{letter-spacing:.22em;text-transform:uppercase;color:#ffffffe6;writing-mode:vertical-rl;font-family:Plus Jakarta Sans,sans-serif;font-size:.55rem;font-weight:800;transform:rotate(180deg)}.ticket-body{flex:1;min-width:0;padding:1.25rem 1.25rem 1.25rem 1.5rem;position:relative}.ticket-service-tag{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:.25rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.58rem;font-weight:700}.ticket-type-label{color:var(--primary);margin-bottom:.75rem;font-family:Plus Jakarta Sans,sans-serif;font-size:1rem;font-weight:800;line-height:1.2}.ticket-divider{border:none;border-top:1.5px dashed var(--border);margin:.75rem 0}.ticket-holder-name{color:var(--primary);font-family:Plus Jakarta Sans,sans-serif;font-size:1.1rem;font-weight:700;line-height:1.2}.ticket-institution{color:var(--text-muted);margin-top:.25rem;font-size:.78rem}.ticket-meta{gap:1.5rem;margin-top:.75rem;display:flex}.ticket-meta-item label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.55rem;font-weight:700;display:block}.ticket-meta-item span{color:var(--primary);margin-top:.25rem;font-family:Courier Prime,monospace;font-size:.78rem;display:block}.ticket-ref{color:var(--border-strong);letter-spacing:.04em;margin-top:.75rem;font-family:Courier Prime,monospace;font-size:.65rem}.ticket-stamp{border:2.5px solid var(--accent);opacity:.8;transform-origin:50%;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:58px;height:58px;animation:.5s cubic-bezier(.34,1.56,.64,1) .25s both stampIn;display:flex;position:absolute;bottom:1rem;right:.75rem}@keyframes stampIn{0%{opacity:0;transform:scale(1.5)rotate(-20deg)}to{opacity:.8;transform:scale(1)rotate(0)}}.ticket-stamp-top,.ticket-stamp-bottom{letter-spacing:.1em;color:var(--accent);text-transform:uppercase;font-family:Plus Jakarta Sans,sans-serif;font-size:.52rem;font-weight:800}.ticket-stamp-check{color:var(--accent);font-size:.9rem;line-height:1}.ticket-verified-by{color:var(--border-strong);letter-spacing:.02em;margin-top:.5rem;font-family:Courier Prime,monospace;font-size:.6rem}.success-actions{flex-direction:column;gap:.75rem;margin-top:1.5rem;display:flex}.verification-result{align-items:flex-start;gap:1rem;padding:1.5rem 0;display:flex}.verification-check{background:var(--accent-light);width:32px;height:32px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:.15rem;font-size:1rem;font-weight:700;display:flex}.verification-result h1{margin-bottom:.25rem;font-size:1.2rem}.verification-result p{color:var(--text-muted);margin-bottom:1rem;font-size:.875rem}.verification-result+.cta-btn{margin-top:1rem;margin-left:auto;margin-right:auto;display:block}.error-banner{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;line-height:1.4}.error-banner ul{margin:.5rem 0 0;padding-left:1.25rem}.error-banner li{margin-bottom:.25rem}.debug-panel{border:1.5px dashed var(--border-strong);border-radius:8px;margin-top:1.5rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.78rem;overflow:hidden}.debug-panel__toggle{cursor:pointer;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);-webkit-user-select:none;user-select:none;background:#00000005;padding:.6rem 1rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.7rem;font-weight:700}.debug-panel__body{padding:1rem}.debug-panel__table{border-collapse:collapse;width:100%;font-size:.75rem}.debug-panel__table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:.4rem .5rem;font-family:Plus Jakarta Sans,sans-serif;font-size:.65rem;font-weight:700}.debug-panel__table td{border-bottom:1px solid var(--border);color:var(--primary);word-break:break-all;padding:.4rem .5rem;font-family:Courier Prime,monospace;font-size:.72rem}.debug-panel__field{color:var(--text-muted);font-family:Plus Jakarta Sans,sans-serif;font-weight:600}.debug-panel__indicator{text-align:center;font-size:.85rem;font-weight:700}.debug-panel__indicator--match{color:#276749}.debug-panel__indicator--mismatch{color:#c53030}
