:root{--bg:#fcf8f2;--surface:#fff;--ink:#211e2d;--soft:#514c5e;--muted:#7a7486;--line:#eadfd2;--rose:#df4f80;--rose-dark:#bc3262;--rose-soft:#fbe7ee;--purple:#8377c3;--gold:#d19b38;--green:#26785a;--shadow:0 18px 55px rgba(33,30,45,.12)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0,rgba(223,79,128,.09),transparent 30%),var(--bg);color:var(--ink);font:15px/1.6 Manrope,system-ui,sans-serif}button,input,select,textarea{font:inherit}h1,h2,h3{margin:0;font-family:Fraunces,Georgia,serif;line-height:1.08;letter-spacing:-.025em}h1{font-size:clamp(2rem,5vw,3.6rem)}h1 em{color:var(--rose);font-style:normal}p{color:var(--soft)}[hidden]{display:none!important}.portal-header{display:flex;min-height:78px;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem clamp(1rem,4vw,3rem);border-bottom:1px solid rgba(234,223,210,.8);background:rgba(252,248,242,.88);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:.7rem;color:var(--ink);text-decoration:none;font:800 1.15rem Fraunces,serif}.brand img{filter:drop-shadow(0 6px 14px rgba(131,119,195,.35))}.brand small{display:block;color:var(--muted);font:800 .58rem Manrope,sans-serif;letter-spacing:.16em;text-transform:uppercase}.portal-header nav{display:flex;align-items:center;gap:1rem}.portal-header nav a,.portal-header nav button{border:0;background:none;color:var(--soft);cursor:pointer;text-decoration:none;font-weight:700}.portal-main{width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:clamp(2.5rem,7vw,6rem) 0}.auth-card{width:min(620px,100%);margin:0 auto;padding:clamp(1.5rem,5vw,3rem);border:1px solid var(--line);border-radius:28px;background:rgba(255,255,255,.94);box-shadow:var(--shadow)}.auth-card>p{font-size:1.05rem}.eyebrow{margin:0 0 .5rem;color:var(--rose-dark);font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.auth-card form{display:grid;gap:.7rem;margin-top:1.5rem}label{font-size:.78rem;font-weight:800}input,select,textarea{width:100%;padding:.82rem .9rem;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--rose);box-shadow:0 0 0 4px var(--rose-soft)}textarea{resize:vertical}.btn{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:.72rem 1.15rem;border:1px solid transparent;border-radius:999px;cursor:pointer;font-weight:800}.btn-primary{background:linear-gradient(135deg,var(--rose),var(--rose-dark));color:#fff;box-shadow:0 8px 22px rgba(223,79,128,.24)}.btn-secondary{border-color:var(--line);background:#fff;color:var(--ink)}.btn:disabled{opacity:.5;cursor:wait}.form-status{min-height:1.4em;margin:.2rem 0 0;color:var(--green);font-size:.82rem}.form-status.error{color:#b72f47}.welcome-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:2rem}.welcome-row>div>p:last-child{margin:.45rem 0 0}.booking-card{margin-bottom:1.4rem;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 8px 30px rgba(33,30,45,.06)}.booking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.4rem 1.5rem;background:linear-gradient(135deg,#211e2d,#332d44);color:#fff}.booking-head p{margin:.25rem 0 0;color:rgba(255,255,255,.7)}.status{display:inline-flex;padding:.3rem .65rem;border-radius:999px;background:rgba(255,255,255,.14);font-size:.7rem;font-weight:800;text-transform:capitalize}.booking-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;padding:1.25rem}.info-box{padding:1rem;border:1px solid var(--line);border-radius:14px;background:#fffaf5}.info-box span{display:block;color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.info-box strong{display:block;margin-top:.25rem;font-family:Fraunces,serif;font-size:1.05rem}.balance-box{grid-column:span 2;background:var(--rose-soft)}.booking-actions{display:flex;flex-wrap:wrap;gap:.6rem;padding:0 1.25rem 1.25rem}.portal-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;padding:0 1.25rem 1.25rem}.portal-panel{padding:1rem;border:1px solid var(--line);border-radius:14px}.portal-panel h3{font-size:1rem}.portal-panel p{margin:.35rem 0;font-size:.82rem}.portal-list{display:grid;gap:.5rem;margin-top:.7rem}.portal-list article{padding:.65rem;border-radius:10px;background:#faf6f0;font-size:.78rem}.portal-list article strong,.portal-list article time{display:block}.portal-list article time{color:var(--muted);font-size:.7rem}.empty{padding:3rem 1rem;text-align:center;color:var(--muted)}dialog{width:min(620px,calc(100% - 2rem));padding:0;border:0;border-radius:22px;background:var(--bg);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(25,22,34,.55);backdrop-filter:blur(3px)}.dialog-card{padding:1.35rem}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.dialog-head button{display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:50%;background:#f4ede4;font-size:1.5rem}.dialog-card label{display:block;margin:.85rem 0 .35rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}.toast{position:fixed;right:1rem;bottom:1rem;max-width:420px;padding:.8rem 1rem;transform:translateY(20px);border-radius:999px;background:var(--ink);color:#fff;opacity:0;transition:.2s;pointer-events:none}.toast.show{transform:none;opacity:1}.toast.error{background:#b72f47}@media(max-width:800px){.booking-grid,.portal-sections{grid-template-columns:1fr 1fr}.balance-box{grid-column:span 2}.portal-panel{grid-column:span 2}}@media(max-width:540px){.portal-header nav a{display:none}.welcome-row{align-items:flex-start;flex-direction:column}.booking-head{flex-direction:column}.booking-grid,.portal-sections{grid-template-columns:1fr}.balance-box,.portal-panel{grid-column:auto}.dialog-actions{flex-direction:column}.dialog-actions .btn{width:100%}}
