:root{--indigo-950:#1e1b4b;--indigo-900:#312e81;--indigo-800:#3730a3;--indigo-700:#4338ca;--indigo-600:#4f46e5;--indigo-400:#818cf8;--indigo-200:#c7d2fe;--indigo-100:#e0e7ff;--indigo-50:#eef2ff;--violet:#7c3aed;--amber:#d97706;--amber-light:#fef3c7;--green:#059669;--red:#dc2626;--white:#ffffff;--surface:#f8f7ff;--border:var(--indigo-200);--text:var(--indigo-950);--muted:#6366f1}*{box-sizing:border-box;margin:0;padding:0}header{background:var(--indigo-900);padding:18px 40px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 20px rgba(49,46,129,.4)}header h1{font-family:fraunces,serif;font-size:1.3rem;color:var(--indigo-200);letter-spacing:.02em;display:flex;align-items:center;gap:10px}header h1 span{color:#fff}.header-badge{background:rgba(255,255,255,.12);color:var(--indigo-200);font-size:.75rem;padding:4px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.15)}#landing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 50vh);padding:40px 20px;background:linear-gradient(160deg,var(--indigo-50) 0%,var(--surface) 60%)}.landing-hero{text-align:center;margin-bottom:48px}.landing-hero .eyebrow{display:inline-block;background:var(--indigo-900);color:var(--indigo-200);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;padding:5px 16px;border-radius:20px;margin-bottom:20px}.landing-hero h2{font-family:fraunces,serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:300;color:var(--indigo-950);line-height:1.15;margin-bottom:14px}.landing-hero h2 em{color:var(--indigo-700);font-style:normal}.landing-hero p{color:var(--muted);max-width:420px;font-size:.95rem}.landing-cards{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}.landing-card{background:var(--white);border:2px solid var(--indigo-100);border-radius:20px;padding:36px 28px;width:210px;cursor:pointer;transition:all .25s ease;text-align:center;position:relative;overflow:hidden}.landing-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--indigo-600);transform:scaleX(0);transition:transform .25s ease}.landing-card:hover{border-color:var(--indigo-400);box-shadow:0 8px 30px rgba(99,102,241,.18);transform:translateY(-4px)}.landing-card:hover::after{transform:scaleX(1)}.card-icon{font-size:2.2rem;margin-bottom:14px}.landing-card strong{display:block;font-size:1rem;font-weight:600;color:var(--indigo-950);margin-bottom:6px}.landing-card p{font-size:.8rem;color:#6b7280}#form-shell{display:none;max-width:860px;margin:0 auto;padding:32px 20px 60px}.stepper{display:flex;align-items:flex-start;margin-bottom:36px;position:relative}.stepper::before{content:'';position:absolute;top:18px;left:calc(12.5%);right:calc(12.5%);height:2px;background:var(--indigo-100);z-index:0}.step-item{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;z-index:1}.step-circle{width:36px;height:36px;border-radius:50%;background:var(--white);color:#9ca3af;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;border:2px solid var(--indigo-100);transition:all .3s}.step-item.active .step-circle{background:var(--indigo-900);color:var(--white);border-color:var(--indigo-900);box-shadow:0 0 0 5px rgba(49,46,129,.15)}.step-item.done .step-circle{background:var(--green);color:var(--white);border-color:var(--green)}.step-label{font-size:.7rem;color:#9ca3af;margin-top:7px;text-align:center;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.step-item.active .step-label{color:var(--indigo-900);font-weight:600}.step-item.done .step-label{color:var(--green)}.form-card{background:var(--white);border-radius:20px;border:1.5px solid var(--indigo-100);padding:40px 44px;margin-bottom:20px;box-shadow:0 4px 24px rgba(99,102,241,6%)}.card-header{display:flex;align-items:center;gap:14px;margin-bottom:6px}.card-header-icon{width:42px;height:42px;background:var(--indigo-900);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.form-card h2{font-family:fraunces,serif;font-size:1.5rem;font-weight:300;color:var(--indigo-950)}.form-card .subtitle{color:#6b7280;font-size:.88rem;margin-bottom:28px;margin-top:4px;padding-left:56px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field-grid.cols-1{grid-template-columns:1fr}.field-full{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:.78rem;font-weight:600;color:var(--indigo-800);letter-spacing:.04em;text-transform:uppercase}.field label .req{color:var(--red);margin-left:2px}.field input,.field select,.field textarea{border:1.5px solid var(--indigo-100);border-radius:10px;padding:11px 14px;font-family:inherit;font-size:.92rem;color:var(--text);background:var(--indigo-50);transition:border-color .2s,box-shadow .2s,background .2s;outline:none;width:100%}.field input:focus,.field select:focus{border-color:var(--indigo-600);box-shadow:0 0 0 3px rgba(99,102,241,.12);background:var(--white)}.field input:disabled,.field select:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;border-color:#e5e7eb}.field input.error,.field select.error{border-color:var(--red);box-shadow:0 0 0 3px rgba(220,38,38,.1)}.file-area{border:2px dashed var(--indigo-200);border-radius:14px;padding:32px;text-align:center;cursor:pointer;transition:all .2s;background:var(--indigo-50);position:relative}.file-area:hover,.file-area.drag{border-color:var(--indigo-600);background:rgba(99,102,241,5%)}.file-area input[type=file]{opacity:0;position:absolute;inset:0;cursor:pointer}.file-icon{font-size:2.2rem;margin-bottom:10px}.file-area p{font-size:.85rem;color:#6b7280}.file-area strong{color:var(--indigo-900)}.file-chosen{font-size:.82rem;color:var(--green);font-weight:600;margin-top:8px}.file-link{color:var(--indigo-600);text-decoration:underline;cursor:pointer;font-size:.9rem}.check-item,.radio-item{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:12px 16px;border-radius:12px;border:1.5px solid var(--indigo-100);transition:all .18s;background:var(--indigo-50)}.check-item:hover,.radio-item:hover{border-color:var(--indigo-400);background:rgba(99,102,241,4%)}.check-item input,.radio-item input{margin-top:2px;accent-color:var(--indigo-600);flex-shrink:0}.check-item span,.radio-item span{font-size:.9rem}.price{font-weight:700;color:var(--violet)}.check-group,.radio-group{display:flex;flex-direction:column;gap:8px}.day-block{border:1.5px solid var(--indigo-100);border-radius:12px;overflow:hidden;margin-bottom:10px;transition:border-color .2s}.day-block.selected{border-color:var(--indigo-400)}.day-header{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--indigo-50);cursor:pointer;transition:background .2s;font-weight:500}.day-header:hover{background:var(--indigo-100)}.day-header input{accent-color:var(--indigo-600)}.day-toggle{margin-left:auto;font-size:.75rem;color:var(--muted);transition:transform .2s}.day-sessions{display:none;padding:12px 18px;gap:6px;background:var(--white);flex-direction:column;border-top:1px solid var(--indigo-100)}.day-sessions.open{display:flex}.day-toggle.open{transform:rotate(180deg)}.session-item{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#4b5563;padding:3px 0}.session-dot{width:6px;height:6px;border-radius:50%;background:var(--indigo-400);flex-shrink:0}.event-block{border:1.5px solid var(--indigo-100);border-radius:14px;padding:22px;margin-bottom:14px;background:var(--white);transition:border-color .2s}.event-block:hover{border-color:var(--indigo-200)}.event-block h3{font-size:.95rem;font-weight:600;color:var(--indigo-900);margin-bottom:14px;display:flex;align-items:center;gap:8px}.companion-fields{display:none;margin-top:14px;padding-top:14px;border-top:1px solid var(--indigo-100);flex-direction:column;gap:12px}.companion-fields.open{display:flex}.sep{border:none;border-top:1.5px solid var(--indigo-100);margin:28px 0}.section-title{font-family:fraunces,serif;font-size:1.05rem;font-weight:300;color:var(--indigo-900);margin-bottom:14px}.access-block{background:var(--indigo-50);border:1.5px solid var(--indigo-200);border-radius:14px;padding:22px}.access-block p{font-size:.88rem;color:#4b5563;margin-bottom:14px}.recap-table td:first-child{color:#6b7280;padding-right:16px;font-size:.85rem;padding-bottom:6px}.recap-table td:last-child{font-size:.88rem}.form-nav{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.btn{padding:12px 28px;border-radius:10px;border:none;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:var(--indigo-900);color:var(--white)}.btn-primary:hover{background:var(--indigo-800);box-shadow:0 4px 16px rgba(49,46,129,.3)}.btn-outline{background:0 0;color:var(--indigo-900);border:1.5px solid var(--indigo-200)}.btn-outline:hover{border-color:var(--indigo-400);background:var(--indigo-50)}.btn-success{background:var(--green);color:#fff}.btn-success:hover{background:#047857;box-shadow:0 4px 16px rgba(5,150,105,.3)}.btn-danger{background:0 0;color:var(--red);border:1.5px solid #fca5a5;font-size:.82rem;padding:8px 14px}.btn-danger:hover{background:#fee2e2}.btn-sm{padding:8px 16px;font-size:.82rem}.btn:disabled{opacity:.45;cursor:not-allowed}.spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.spinner.show{display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}#lookup-view{display:none;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 50vh);padding:40px 20px;gap:16px;background:linear-gradient(160deg,var(--indigo-50) 0%,var(--surface) 60%)}#lookup-view h2{font-family:fraunces,serif;font-size:2rem;font-weight:300;color:var(--indigo-950)}.lookup-card{background:var(--white);border:1.5px solid var(--indigo-100);border-radius:20px;padding:36px;width:100%;max-width:440px;display:flex;flex-direction:column;gap:14px;box-shadow:0 8px 30px rgba(99,102,241,.1)}.lookup-card input{border:1.5px solid var(--indigo-200);border-radius:10px;padding:14px 18px;font-family:monospace;font-size:1.3rem;letter-spacing:.18em;text-align:center;text-transform:uppercase;outline:none;width:100%;background:var(--indigo-50);color:var(--indigo-900)}.lookup-card input:focus{border-color:var(--indigo-600);background:#fff}.error-msg{color:var(--red);font-size:.85rem;text-align:center}#success-view{display:none;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px);padding:40px 20px;text-align:center;gap:16px;background:linear-gradient(160deg,var(--indigo-50) 0%,var(--surface) 60%)}.success-icon{font-size:4rem}#success-view h2{font-family:fraunces,serif;font-size:2.2rem;font-weight:300;color:var(--indigo-950)}.code-box{background:var(--indigo-900);color:var(--indigo-200);font-family:monospace;font-size:2rem;letter-spacing:.25em;padding:20px 40px;border-radius:16px;margin:8px 0;box-shadow:0 8px 24px rgba(49,46,129,.3)}#success-view p{color:#6b7280;max-width:420px}#admin-view{display:none;padding:32px 20px 60px;margin:0 auto}.admin-header{background:var(--indigo-900);border-radius:16px;padding:24px 28px;margin-bottom:24px;color:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.admin-header h2{font-family:fraunces,serif;font-size:1.5rem;font-weight:300}.admin-header p{color:var(--indigo-200);font-size:.85rem;margin-top:2px}.stats-grid{display:flex;gap:12px;flex-wrap:wrap}.stat-chip{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.15);padding:8px 16px;border-radius:10px;font-size:.82rem;text-align:center}.stat-chip strong{display:block;font-size:1.4rem;font-family:fraunces,serif;font-weight:300}.admin-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:center}.admin-toolbar input{border:1.5px solid var(--indigo-100);border-radius:10px;padding:10px 16px;font-family:inherit;font-size:.88rem;outline:none;flex:1;min-width:220px;background:var(--white)}.admin-toolbar input:focus{border-color:var(--indigo-400)}.participants-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:14px;overflow:hidden;border:1.5px solid var(--indigo-100);font-size:.84rem}.participants-table th{background:var(--indigo-900);color:var(--indigo-200);padding:12px 14px;text-align:left;font-weight:500;font-size:.73rem;text-transform:uppercase;letter-spacing:.06em}.participants-table td{padding:11px 14px;border-bottom:1px solid var(--indigo-50);vertical-align:middle}.participants-table tr:last-child td{border-bottom:none}.participants-table tr:hover td{background:var(--indigo-50)}.code-tag{font-family:monospace;font-size:.8rem;background:var(--indigo-100);color:var(--indigo-900);padding:2px 8px;border-radius:6px;letter-spacing:.08em;font-weight:700}.admin-actions{display:flex;gap:6px}.modal-bg{display:none;position:fixed;inset:0;background:rgba(30,27,75,.5);z-index:100;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}.modal-bg.open{display:flex}.modal{background:var(--white);border-radius:20px;padding:36px;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(49,46,129,.3)}.modal h3{font-family:fraunces,serif;font-size:1.4rem;font-weight:300;margin-bottom:20px;color:var(--indigo-950)}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}#toast{position:fixed;bottom:30px;right:30px;background:var(--indigo-900);color:#fff;padding:14px 22px;border-radius:12px;font-size:.88rem;transform:translateY(80px);opacity:0;transition:all .3s;z-index:200;max-width:320px;box-shadow:0 8px 24px rgba(49,46,129,.4);display:flex;align-items:center;gap:10px}#toast.show{transform:translateY(0);opacity:1}#toast.success{background:#065f46}#toast.error{background:#991b1b}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);cursor:pointer;margin-bottom:20px;transition:color .2s;font-weight:500}.back-link:hover{color:var(--indigo-900)}.loading-overlay{position:fixed;inset:0;background:rgba(30,27,75,.3);z-index:300;display:none;align-items:center;justify-content:center;backdrop-filter:blur(2px)}.loading-overlay.show{display:flex}.loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@media(max-width:640px){.field-grid{grid-template-columns:1fr}.form-card{padding:24px 18px}.form-card .subtitle{padding-left:0}header{padding:14px 20px}.landing-card{width:100%;max-width:300px}}