@font-face{font-family:Roxborough CF;src:url(https://cdn.reefdevelopments.ae/prod/reef-website/document/2026-07-10/4131ac30-c92d-4426-9fe1-804f5449b3c0.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:General Sans Variable;src:url(https://cdn.reefdevelopments.ae/prod/reef-website/document/2026-07-10/bb616900-4988-40c4-9109-38002a2b22f6.woff2) format("woff2");font-display:swap}:root{--reef-deep: #1e6c74;--reef-cyan: #40c2cc;--reef-mist: #e8f6f7;--reef-ink: #102428;--reef-muted: #5a7276;--reef-line: #c9dfe2;--reef-danger: #b42318;--reef-soft: #fbfcfc;--portal-page: #00181f;--teal: var(--reef-cyan);--cream: #fffffe;--navy: var(--portal-page);--muted: var(--reef-muted);--line: var(--reef-line);--error: var(--reef-danger)}*{box-sizing:border-box}html,body{margin:0}body{font-family:General Sans Variable,sans-serif;background-color:#00181f;color:var(--cream);padding:0;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;position:relative;isolation:isolate;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:-40px;z-index:-1;background:url(https://cdn.reefdevelopments.ae/prod/reef-website/image/2026-08-24/body_bg_7d03fe9d-00a5-43b9-be62-cf944e4e6bd8.webp) center / cover no-repeat;filter:blur(5px) saturate(1.05);transform:scale(1.08);pointer-events:none}body:after{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,#00181f59,#00181f99);pointer-events:none}#root{width:100%;flex:1;min-height:0;display:flex;flex-direction:column}.navbar{width:100%;flex:none;display:flex;align-items:center;justify-content:flex-start;padding:14px 24px}.brand{display:block}.brand img{height:32px;width:auto;display:block}.shell{width:100%;max-width:520px;margin:0 auto;padding:0 20px 18px;flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto}.shell-wide{max-width:860px}.shell-dashboard{max-width:1280px;width:calc(100% - 16px);padding:16px 20px}.shell-dashboard .intro{text-align:left;margin-top:0;margin-bottom:14px}.shell-dashboard .intro h1{font-size:clamp(1.6rem,3vw,2.1rem)}.shell-dashboard .card{flex:1 1 auto;min-height:0;max-height:none;padding:20px 22px 18px;overflow:hidden}.intro{text-align:center;flex:none;margin-top:auto;margin-bottom:16px}.intro .event-name{margin:0 0 12px;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#d3ebee}.intro h1{margin:0 0 6px;font-family:Roxborough CF,Georgia,serif;font-size:clamp(1.5rem,4vw,2rem);font-weight:400;line-height:1.1;letter-spacing:-.02em;color:#fffffe}.intro p{margin:0;font-size:14px;line-height:1.55;color:#d3ebee}.hours{flex:none;margin:0 0 16px;padding:12px 14px;background:var(--reef-soft);border-radius:12px;border:1px solid var(--reef-line)}.hours ul{margin:0;padding:0;list-style:none}.hours li{position:relative;padding-left:1.1em;line-height:1.55}.hours li:before{content:"";position:absolute;left:0;top:.45em;width:5px;height:5px;border-radius:50%;background:var(--reef-ink)}.hours li+li{margin-top:5px}.hours-schedule{margin-bottom:10px;font-size:13px;color:var(--reef-muted)}.hours-schedule li:before{width:4px;height:4px;top:.5em;background:var(--reef-muted)}.hours-rules{font-size:13px;color:var(--reef-ink)}.hours-rules+.hours-rules{margin-top:5px}.hours-rules li:before{width:6px;height:6px;top:.42em}.hours-note{margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--reef-muted)}.card{background:#fff;border:1px solid var(--reef-line);border-radius:1.25rem;box-shadow:0 12px 36px #043a422e;padding:22px 26px 20px;color:var(--reef-ink);margin-bottom:auto;display:flex;flex-direction:column}.card:has(.step-body--schedule){flex:1 1 auto;min-height:0;max-height:640px}.card>form:has(.step-body--schedule){flex:1;min-height:0;display:flex;flex-direction:column}.step-body--schedule{flex:1;min-height:0;display:flex;flex-direction:column}.steps{flex:none;display:flex;justify-content:center;gap:8px;margin-bottom:18px}.dot{width:6px;height:6px;border-radius:50%;background:var(--reef-line)}.dot.on{background:var(--reef-deep)}.label{display:block;flex:none;margin:0 0 8px;font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--reef-muted)}.date-field{position:relative;flex:none;margin-bottom:16px}.date-picker-trigger{width:100%;appearance:none;background:#fff;border:1px solid var(--reef-line);border-radius:12px;color:var(--reef-ink);font-family:inherit;font-size:15px;text-align:left;padding:11px 14px;outline:none;cursor:pointer}.date-picker-trigger:focus{border-color:var(--reef-cyan)}.date-picker-pop{position:absolute;z-index:8;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--reef-line);border-radius:14px;box-shadow:0 12px 28px #10242824;padding:12px}.date-picker-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.date-picker-nav p{margin:0;font-size:14px;font-weight:500;color:var(--reef-ink)}.date-picker-nav-btn{width:32px;height:32px;border:1px solid var(--reef-line);border-radius:8px;background:#fff;color:var(--reef-ink);font-size:18px;line-height:1;cursor:pointer}.date-picker-nav-btn:disabled{opacity:.35;cursor:default}.date-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.date-picker-dow{text-align:center;font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--reef-muted);padding:4px 0}.date-picker-dow.is-saturday,.date-picker-day.is-saturday{color:#b42318}.date-picker-day{height:34px;border:0;border-radius:8px;background:transparent;color:var(--reef-ink);font-family:inherit;font-size:13px;cursor:pointer}.date-picker-day:hover:not(:disabled){background:var(--reef-mist)}.date-picker-day.is-selected{background:var(--reef-deep);color:#fffffe}.date-picker-day:disabled{color:#c9b4b4;text-decoration:line-through;cursor:not-allowed;background:#f7f2f2}.date-picker-hint{margin:10px 0 0;font-size:12px;color:var(--reef-muted);text-align:center}.slots{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:8px;flex:1;min-height:96px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:var(--reef-line) transparent}.slots::-webkit-scrollbar{width:6px}.slots::-webkit-scrollbar-thumb{background:var(--reef-line);border-radius:999px}.time-btn{background:#fff;border:1px solid var(--reef-line);border-radius:12px;color:var(--reef-ink);font-family:inherit;font-size:14px;padding:11px 10px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.time-btn:hover{border-color:var(--reef-cyan);background:var(--reef-mist)}.time-btn.selected{background:var(--reef-deep);border-color:var(--reef-deep);color:#fffffe;font-weight:500}.slots-msg{grid-column:1 / -1;text-align:center;font-size:14px;color:var(--reef-muted);padding:20px 8px}.field{flex:none;margin-bottom:12px}.field label{display:block;margin-bottom:8px;font-size:12px;color:var(--reef-muted)}.field input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--reef-line);border-radius:0;color:var(--reef-ink);font-family:inherit;font-size:14px;padding:12px 6px;outline:none;transition:border-color .15s}.field input::placeholder{color:#10242859}.field input:focus{border-bottom-color:var(--reef-cyan)}.actions{flex:none;display:flex;gap:10px;margin-top:18px}.btn{flex:1;border:1px solid var(--reef-deep);border-radius:999px;font-family:Roxborough CF,Georgia,serif;font-size:13px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;padding:12px 18px;cursor:pointer;transition:background-color .15s,border-color .15s,opacity .15s,color .15s}.btn-primary{background:var(--reef-deep);color:#fffffe}.btn-primary:hover:not(:disabled){background:#185a61;border-color:#185a61}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{flex:0 0 auto;background:#fff;color:var(--reef-ink);border:1px solid var(--reef-line);padding-inline:22px}.btn-ghost:hover:not(:disabled){border-color:var(--reef-cyan);background:var(--reef-mist);color:var(--reef-deep)}.alert{margin-top:16px;padding:12px 14px;border-radius:10px;font-size:13px;text-align:center;display:none}.alert-success{display:block;background:var(--reef-mist);color:var(--reef-deep)}.alert-error{display:block;background:#fef2f2;color:var(--reef-danger)}.loading{text-align:center;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--reef-muted);padding:24px 0}.success{text-align:center;padding:8px 8px 4px}.success h2{margin:0 0 10px;font-family:Roxborough CF,Georgia,serif;font-size:1.7rem;font-weight:400;color:var(--reef-deep)}.success p{margin:0 0 12px;font-size:14px;line-height:1.6;color:var(--reef-muted)}.success p.venue{margin-bottom:28px}.success-actions{flex-direction:column}.success-actions .btn{flex:none;width:100%;text-decoration:none;display:block;text-align:center}.pass-name{margin:0 0 6px;font-family:Roxborough CF,Georgia,serif;font-size:1.7rem;font-weight:400;line-height:1.15;color:var(--reef-ink)}.badge{display:inline-block;margin-bottom:28px;background:var(--reef-mist);color:var(--reef-deep);border-radius:999px;font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px}.badge-attended{background:var(--reef-soft);color:var(--reef-muted)}.badge-canceled,.badge-cancelled,.badge-expired,.badge-early{background:#fef2f2;color:var(--reef-danger)}.when{margin:0 0 24px;font-size:15px;color:var(--reef-ink)}.meta{display:grid;gap:12px;padding:18px 0;border-top:1px solid var(--reef-line);border-bottom:1px solid var(--reef-line)}.meta div{display:flex;justify-content:space-between;gap:16px;font-size:13px}.meta span{color:var(--reef-muted)}.meta strong{font-weight:500;text-align:right;color:var(--reef-ink)}.pass-id{margin:16px 0 0;text-align:center;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--reef-muted)}.state-banner{margin:0 0 20px;padding:14px 16px;border-radius:12px;font-size:14px;line-height:1.5;text-align:center}.state-banner.valid{background:var(--reef-mist);color:var(--reef-deep)}.state-banner.attended{background:var(--reef-soft);color:var(--reef-muted)}.state-banner.expired,.state-banner.early,.state-banner.canceled,.state-banner.cancelled{background:#fef2f2;color:var(--reef-danger)}.admin-actions{display:flex;flex-direction:column;gap:10px;margin-top:24px}.admin-actions .btn{flex:none;width:100%}.desk-field{margin-top:20px;margin-bottom:0}.desk-field input{font-size:14px}@media(prefers-reduced-motion:reduce){.time-btn{transition:none}}.admin-link{margin:16px 0 0;text-align:center;font-size:13px}.admin-link a{color:var(--reef-deep)}.bookings-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;align-items:center}.bookings-search,.bookings-filter{font-family:inherit;font-size:14px;color:var(--reef-ink);border:1px solid var(--reef-line);border-radius:10px;padding:10px 12px;background:#fff}.bookings-search{flex:1 1 220px;min-width:180px}.bookings-filter{flex:0 0 auto;min-width:150px}.bookings-toolbar .btn{flex:0 0 auto;width:auto;padding-inline:16px}.dash-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.dash-stat{background:var(--reef-soft);border:1px solid var(--reef-line);border-radius:12px;padding:12px 14px}.dash-stat span{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--reef-muted)}.dash-stat strong{display:block;margin-top:4px;font-family:Roxborough CF,Georgia,serif;font-size:1.7rem;font-weight:400;color:var(--reef-ink)}.bookings-table-wrap{overflow:auto;min-height:240px;flex:1}.bookings-table{width:100%;min-width:1080px;border-collapse:collapse;font-size:14px}.bookings-table th,.bookings-table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--reef-line);vertical-align:top}.bookings-table th{position:sticky;top:0;background:#fff;color:var(--reef-muted);font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;z-index:1}.bookings-table a{color:var(--reef-deep);font-weight:500}.bookings-meta{display:block;margin-top:3px;color:var(--reef-muted);font-size:12px}.bookings-table .badge{margin-bottom:0}.bookings-desk{min-width:160px}.bookings-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.bookings-actions .btn{width:auto;flex:none;padding:7px 10px;font-size:12px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.bookings-table .bookings-actions .btn-primary{color:#fffffe}.bookings-table .bookings-actions .btn-ghost{color:var(--reef-deep)}.badge-valid{background:var(--reef-mist);color:var(--reef-deep)}@media(max-width:720px){.dash-stats{grid-template-columns:1fr 1fr}}
