/* Dashboard.dc.html: 1160px page, 22px layout/card gaps, 18px notebook gaps. */
.dashboard{background:#0b1120;color:#eef0f5}.dashboard a{color:inherit}.dash-header{max-width:1160px;margin:auto;padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:22px;border-bottom:1px solid #22304b}.dash-brand{font:700 24px 'Playfair Display',Georgia,serif;text-decoration:none}.dash-brand span{color:#f5b731}.dash-header nav{display:flex;flex-wrap:wrap;gap:18px;font-size:14px}.dash-page{max-width:1160px;margin:auto;padding:28px 20px 80px;display:grid;gap:22px}.dashboard h1,.dashboard h2,.dashboard h3{font-family:'Playfair Display',Georgia,serif;margin:0}.dashboard h1{font-size:clamp(30px,4vw,40px)}.dashboard h2{font-size:28px}.dashboard h3{font-size:21px}.dashboard p{margin:0;line-height:1.6}.muted,.dashboard small{color:#a8b1c4}.dash-layout{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}.dash-main{flex:999 1 560px;min-width:0;display:grid;gap:22px}.dash-side{flex:1 1 300px;min-width:0;display:grid;gap:16px}.dash-card{background:#111a2d;border:1px solid #22304b;border-radius:22px;padding:22px;display:grid;gap:18px}.visit-card{background:#111a2d;border:1px solid #5a4520;border-radius:22px;overflow:hidden}.visit-top{display:flex;flex-wrap:wrap}.visit-top>img{flex:1 1 220px;width:220px;min-width:0;min-height:200px;max-height:360px;object-fit:cover}.visit-info{flex:2 1 320px;min-width:0;padding:22px;display:grid;gap:12px}.badges{display:flex;flex-wrap:wrap;gap:8px;font-size:12px}.badges span{padding:6px 10px;border-radius:99px;background:#162036;color:#e3c776}.countdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:280px}.countdown>div{background:#0d1527;padding:10px 6px;border-radius:12px;text-align:center}.countdown strong{display:block;font:700 26px 'Playfair Display',serif;color:#f5b731}.countdown span{font-size:11px;color:#a8b1c4}.visit-footer{border-top:1px solid #22304b;padding:16px 22px;display:flex;flex-wrap:wrap;gap:16px;font-size:14px}.dashboard button,.dash-button{border:1px solid #2f3b5a;border-radius:14px;background:#162036;color:#eef0f5;font:700 15px 'Nunito Sans',sans-serif;padding:13px 16px;min-height:46px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}.dashboard .primary{background:#d6202a;border-color:#d6202a;color:#fff}.dash-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.dashboard button:disabled{cursor:not-allowed;opacity:.55}.dashboard form,.dashboard label{display:grid;gap:8px;min-width:0}.dashboard form{gap:18px}.dashboard input,.dashboard select{width:100%;min-width:0;background:#0d1527;border:1px solid #2f3b5a;border-radius:12px;color:#fff;padding:12px;font:inherit;min-height:48px}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:14px}.dashboard fieldset{margin:0;padding:0;border:0;min-width:0;display:grid;gap:12px}.dashboard legend{font-weight:800;margin-bottom:12px}.eyebrow{font-size:12px;color:#f5b731;letter-spacing:.14em}.dashboard .dash-check{display:flex;align-items:flex-start;gap:10px}.dash-check input{width:20px;min-height:20px;flex:none}.gift-row{padding:14px;border:1px solid #22304b;background:#0d1527;border-radius:14px;display:grid;gap:12px}#gift-fields{display:grid;gap:18px}#history{display:grid;gap:16px;font-size:14px}#dashboard-error{padding:16px;background:#421e29;border:1px solid #a33d4a;border-radius:14px}#save-status{color:#86efac}#dashboard-status{color:#a8b1c4}@media(max-width:600px){.dash-header{align-items:flex-start;flex-direction:column}.dash-page{padding:24px 18px 48px}.dash-card,.visit-info{padding:20px}.visit-top>img{width:100%;flex-basis:100%;max-height:240px}.dash-actions>*{flex:1 1 180px}.dash-header nav{gap:14px}}

.dash-skip{position:absolute;top:-100px;left:16px;z-index:100;background:#fff;color:#111!important;padding:14px;border-radius:8px}.dash-skip:focus{top:12px}#dashboard-error{display:grid;gap:12px}#dashboard-error small{color:#ffd4d4}#dashboard-error button{justify-self:start}.dashboard :focus-visible{outline:3px solid #f5b731;outline-offset:4px}

#visit-reference{overflow-wrap:anywhere}

/* Saved-booking call room shares the account page design system. */
.voice-room .video{display:block;width:100%;max-height:65vh;aspect-ratio:16/9;object-fit:contain;background:#0b1120;border-radius:16px}
.voice-room .topline{display:flex;align-items:center;justify-content:space-between;gap:20px}
.voice-room #timer{font-variant-numeric:tabular-nums;color:#f5b731;white-space:nowrap}
.voice-room #error{padding:16px;border:1px solid #a33d4a;border-radius:12px;background:#421e29}
.voice-room .dash-card{min-width:0}.voice-room meter{width:100%}
.voice-room [hidden]{display:none!important}

/* Full site menu on account pages; the mobile menu comes from brand.css and navigation.js. */
.dash-header nav{align-items:center}.dash-header nav button{padding:0;border:0;background:none;color:#f5b731;font:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.dash-header nav a[href="/book"]{padding:9px 16px;border-radius:999px;background:#d6202a;color:#fff;font-weight:800;text-decoration:none}
/* Booking confirmation, shown on My visits straight after payment. */
.welcome-card{border-color:#5a4520;background:linear-gradient(160deg,#1a2238 0%,#111a2d 60%)}.welcome-head{display:flex;gap:18px;align-items:center}.welcome-head img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid #f5b731;flex-shrink:0}.welcome-card h2{font:700 clamp(24px,4vw,34px)/1.15 'Playfair Display',Georgia,serif;margin:4px 0 8px}#welcome-name{color:#f5b731}.welcome-when{font-size:18px;font-weight:800;margin:0 0 4px}.welcome-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;counter-reset:step}.welcome-steps li{counter-increment:step;display:grid;gap:8px;align-content:start;background:#0e1526;border:1px solid #22304b;border-radius:16px;padding:16px}.welcome-steps li::before{content:counter(step);width:30px;height:30px;border-radius:50%;background:#f5b731;color:#1a1408;font-weight:800;display:grid;place-items:center}.welcome-steps span{color:#a8b1c4;font-size:14px;line-height:1.45}.welcome-steps .dash-button{margin-top:auto}@media(max-width:760px){.welcome-steps{grid-template-columns:1fr}.welcome-head{align-items:flex-start}.welcome-head img{width:64px;height:64px}}
/* Add to calendar: a choice of calendar instead of a file download. */
.calendar-menu{position:relative}.calendar-menu summary{list-style:none}.calendar-menu summary::-webkit-details-marker{display:none}.calendar-menu summary::after{content:'▾';margin-left:8px}.calendar-options{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:240px;display:grid;background:#162036;border:1px solid #2f3b5a;border-radius:14px;padding:6px;box-shadow:0 18px 40px rgba(0,0,0,.45)}.calendar-options a{padding:11px 12px;border-radius:10px;text-decoration:none;font-weight:700}.calendar-options a:hover,.calendar-options a:focus-visible{background:#22304b}/* The visit card clips its overflow for the rounded photo, so its menu opens upwards. */.visit-card .calendar-options{top:auto;bottom:calc(100% + 6px)}.welcome-steps .calendar-menu{margin-top:auto}.welcome-steps .calendar-menu summary{width:100%}
.notebook-more{border-top:1px solid #22304b;padding-top:14px}
/* Same glossy, pressable red as the marketing site. */
.dashboard .primary{background:linear-gradient(180deg,#f0444c 0%,#d6202a 52%,#b3141c 100%);box-shadow:0 4px 0 #8c0e15,0 10px 22px rgba(214,32,42,.3),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .12s ease,filter .12s ease}.dashboard .primary:hover{filter:brightness(1.06);transform:translateY(-1px)}.dashboard .primary:active{transform:translateY(3px);box-shadow:0 1px 0 #8c0e15}
