@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@500;600;700&display=swap";:root{--bg-main:#eef3f7;--bg-card:#fff;--bg-soft:#f8fbfd;--text-main:#0e2336;--text-muted:#5a7084;--border:#d3dee8;--accent:#8a3ffc;--accent-strong:#5c2ab3;--accent-soft:#efe7ff;--accent-alt:#d61ea7;--ok:#198754;--danger:#c62828;--shadow-lg:0 24px 60px #061b2c1f;--shadow-md:0 12px 30px #061b2c1a}*{box-sizing:border-box}body{min-height:100vh;color:var(--text-main);background:radial-gradient(circle at 10% 20%, #efe8ff 0%, transparent 34%), radial-gradient(circle at 90% 12%, #ffe6f8 0%, transparent 35%), linear-gradient(180deg, #f8fbff 0%, var(--bg-main) 68%);margin:0;font-family:Manrope,Segoe UI,sans-serif}#root{min-height:100vh}.booking-root{width:min(1160px,100% - 2rem);margin:1.5rem auto 2.75rem;position:relative}.ambient{filter:blur(48px);z-index:0;pointer-events:none;border-radius:999px;position:absolute}.ambient-1{background:#8a3ffc2e;width:220px;height:220px;top:-70px;right:40px}.ambient-2{background:#d61ea724;width:240px;height:240px;top:260px;left:-60px}.hero,.card{z-index:1;position:relative}.hero{color:#eff9ff;box-shadow:var(--shadow-md);background:linear-gradient(135deg,#4b2786,#a12495);border-radius:20px;padding:1.65rem 1.75rem}.eyebrow{text-transform:uppercase;letter-spacing:.15em;opacity:.85;margin:0;font-size:.72rem;font-weight:700}.hero h1{margin:.3rem 0 .45rem;font-family:Sora,Segoe UI,sans-serif;font-size:clamp(1.7rem,3.7vw,2.45rem);line-height:1.1}.hero p{color:#eff9ffe6;margin:0}.hero-note{color:#eff9ffc7;margin-top:.5rem;font-size:.9rem}.pill-row{flex-wrap:wrap;gap:.55rem;margin-top:.9rem;display:flex}.pill{color:#4b247f;background:#f6e9ff;border:1px solid #ffffff73;border-radius:999px;padding:.28rem .62rem;font-size:.76rem;font-weight:700}.card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:20px;margin-top:1rem;overflow:hidden}.stepper{border-bottom:1px solid var(--border);background:linear-gradient(#f8fcff,#f0f6fb);grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;padding:.9rem;display:grid}.step-chip{background:#fff;border:1px dashed #bdd2e1;border-radius:12px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.24rem;min-height:68px;padding:.52rem .62rem;transition:all .2s;display:flex}.step-chip span{width:22px;height:22px;color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;place-items:center;font-size:.75rem;font-weight:800;display:grid}.step-chip p{color:var(--text-muted);margin:0;font-size:.7rem;font-weight:700;line-height:1.2}.step-chip.done{border-style:solid;border-color:#d3b3ff}.step-chip.active{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 7px 16px #8a3ffc33}.step-panel{padding:1.2rem 1.25rem .45rem}.step-panel h2{margin:0;font-family:Sora,Segoe UI,sans-serif;font-size:1.22rem}.step-copy{color:var(--text-muted);margin:.3rem 0 .9rem;font-size:.92rem}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.82rem;display:grid}.field{flex-direction:column;gap:.35rem;display:flex}.field span{color:#23415a;font-size:.78rem;font-weight:700}.field input,.field select,.field textarea{background:var(--bg-soft);color:var(--text-main);font:inherit;border:1px solid #bfd2e0;border-radius:10px;outline:none;padding:.6rem .66rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s,background-color .2s}.field input:hover,.field select:hover,.field textarea:hover{background:#f4f9fc}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8a3ffc2e}.field textarea{resize:vertical}.field-full{grid-column:1/-1}.toggle{cursor:pointer;background:#c7d8e4;border:0;border-radius:999px;width:52px;padding:3px;transition:background .2s}.toggle-knob{background:#fff;border-radius:999px;width:20px;height:20px;transition:transform .2s;display:block}.toggle.is-on{background:linear-gradient(135deg, var(--accent), var(--accent-alt))}.toggle.is-on .toggle-knob{transform:translate(26px)}.error{color:var(--danger);margin:0;font-size:.78rem;font-weight:700}.field span .required-star,.hero .required-star,.required-star{margin-left:.2rem;font-size:.9rem;font-weight:900;color:#b91c1c!important}.section-title{border-bottom:1px solid var(--border);color:var(--accent-strong);margin:1.5rem 0 .6rem;padding-bottom:.4rem;font-family:Sora,Segoe UI,sans-serif;font-size:1.02rem}.section-title:first-child{margin-top:0}.review-layout{gap:.85rem;margin-bottom:.8rem;display:grid}.review-overview-card{background:linear-gradient(145deg,#f2e8ff,#ffe5f8);border:1px solid #d8b4ff;border-radius:12px;padding:.9rem}.review-overview-label{text-transform:uppercase;letter-spacing:.08em;color:#6a439d;font-size:.7rem;font-weight:800}.review-overview-card h3{color:#5f2393;margin:.25rem 0 0;font-family:Sora,Segoe UI,sans-serif;font-size:1rem}.review-overview-card p{color:#70479c;margin:.4rem 0 0;font-size:.86rem}.review-meta{flex-wrap:wrap;gap:.4rem;margin-top:.55rem;display:flex}.review-meta span{color:#612f9f;background:#f8f0ff;border:1px solid #dfc2ff;border-radius:999px;padding:.2rem .55rem;font-size:.74rem;font-weight:700}.review-section-card{border:1px solid var(--border);background:#fbfdff;border-radius:12px;overflow:hidden}.review-section-card header{border-bottom:1px solid var(--border);background:#f5f9fc;padding:.6rem .78rem}.review-section-card h3{color:#1b405a;margin:0;font-family:Sora,Segoe UI,sans-serif;font-size:.88rem}.review-list{display:grid}.review-row{border-bottom:1px solid #edf2f6;grid-template-columns:minmax(160px,220px) 1fr;align-items:start;gap:.7rem;padding:.58rem .78rem;display:grid}.review-row:last-child{border-bottom:0}.review-row span{color:#587186;text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;font-weight:700}.review-row p{color:#173449;word-break:break-word;margin:0;font-size:.87rem;font-weight:700}.form-footer{border-top:1px solid var(--border);background:#f9fcff;justify-content:space-between;align-items:center;margin-top:.2rem;padding:.8rem 1.25rem;display:flex}.footer-right{align-items:center;gap:.75rem;display:flex}.footer-right span{color:var(--text-muted);font-size:.8rem;font-weight:700}.btn{cursor:pointer;font:inherit;border:0;border-radius:10px;padding:.56rem .9rem;font-size:.86rem;font-weight:800;transition:transform .16s,box-shadow .16s,background-color .16s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-alt));box-shadow:0 8px 18px #8a3ffc47}.btn-primary:hover:not(:disabled){transform:translateY(-1px)}.btn-secondary{color:var(--accent-strong);background:#deedf8}.btn-secondary:hover:not(:disabled){background:#d2e7f6}.success-banner{color:#0a6e3f;background:#e9faf1;border:1px solid #92ddba;border-radius:10px;margin:0 1.25rem 1.1rem;padding:.68rem .8rem;font-size:.86rem;font-weight:700}@media (width<=980px){.field-grid{grid-template-columns:1fr}.review-row{grid-template-columns:1fr;gap:.3rem}}@media (width<=720px){.booking-root{width:min(100%,100% - 1rem);margin-top:.7rem}.hero,.step-panel,.form-footer{padding-inline:1rem}.form-footer{flex-direction:column;align-items:stretch;gap:.7rem}.footer-right{justify-content:space-between;width:100%}}.login-root{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);width:min(420px,100%);box-shadow:var(--shadow-lg);border-radius:20px;overflow:hidden}.login-header{color:#eff9ff;background:linear-gradient(135deg,#4b2786,#a12495);padding:1.5rem 1.75rem 1.2rem}.login-eyebrow{text-transform:uppercase;letter-spacing:.15em;opacity:.85;margin:0;font-size:.72rem;font-weight:700}.login-header h1{margin:.3rem 0;font-family:Sora,Segoe UI,sans-serif;font-size:1.6rem;line-height:1.1}.login-subtitle{color:#eff9ffcc;margin:0;font-size:.88rem}.login-form{flex-direction:column;gap:1rem;padding:1.5rem 1.75rem;display:flex}.login-error{color:var(--danger);background:#fef2f2;border:1px solid #f5c2c2;border-radius:10px;padding:.6rem .8rem;font-size:.84rem;font-weight:700}.login-btn{width:100%;margin-top:.3rem;padding:.7rem;font-size:.92rem}.logout-bar{z-index:2;justify-content:flex-end;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex;position:relative}.logout-user{color:var(--text-muted);font-size:.82rem;font-weight:700}.logout-btn{padding:.36rem .7rem;font-size:.78rem}.error-banner{color:var(--danger);background:#fef2f2;border:1px solid #f5c2c2;border-radius:10px;margin:0 1.25rem .5rem;padding:.68rem .8rem;font-size:.86rem;font-weight:700}.loading-spinner-wrap{justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-spinner{border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
