/* TICKET-1790: latest client portal, simple light workspace. */
:root { --cp-bg:#f7f8fa; --cp-card:#fff; --cp-ink:#111318; --cp-muted:#626975; --cp-line:#e2e5e9; --cp-brand:#C4CA20; --cp-accent-text:#5f6300;
--ink:var(--cp-ink); --text:var(--cp-ink); --muted:var(--cp-muted); --line:var(--cp-line); --card:var(--cp-card); --bg:var(--cp-bg); --page:var(--cp-bg); --navy:#050607;
--gold:var(--cp-brand); --gold-deep:var(--cp-accent-text); --gold-soft:#f7f8eb; --gold-line:var(--cp-line); }
body { background:var(--cp-bg); color:var(--cp-ink); font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; font-size:16px; line-height:1.5; }
.nav { background:#050607; border:0; padding:12px 24px; min-height:64px; }
.nav-logo { height:38px; width:auto; max-width:65%; object-fit:contain; }
.nav-tag { color:#e4e7ec; background:none; border:0; border-radius:0; font-size:12px; font-weight:500; text-transform:none; letter-spacing:0; padding:0; }
.page { max-width:760px; padding:36px 24px 64px; }
.greeting-name,.hero-h1 { font-size:28px; font-weight:650; letter-spacing:-.5px; }
.greeting-name span { color:var(--cp-ink); }
.greeting-eyebrow { padding:0; border:0; background:none; color:var(--cp-muted); font-size:12px; letter-spacing:.04em; font-weight:600; }
.greeting-sub { font-size:16px; max-width:560px; }
.context-card,.advisor-row,.confirm-panel,.no-slots-msg,.who-filled-card,.card { background:#fff; border:1px solid var(--cp-line); border-radius:12px; box-shadow:none; }
.advisor-row { padding:20px; margin-bottom:28px; }
.adv-avatar { background:#f0f1f3; color:var(--cp-ink); border:0; }
.adv-label,.section-label,.day-header,.slot-day-header,.context-label,.ctx-label { font-size:12px; font-weight:600; color:var(--cp-muted); letter-spacing:.04em; }
.adv-name { font-size:16px; font-weight:600; }
.adv-note { font-size:14px; }
.context-pill,.ctx-pill { font-size:12px; color:var(--cp-ink); background:#f4f5f6; border:0; border-radius:6px; }
.slot-btn { background:#fff; color:var(--cp-ink); border:1px solid var(--cp-line); min-height:44px; font-size:14px; font-weight:500; border-radius:8px; padding:10px 18px; }
.slot-btn:hover { background:#f7f8eb; border-color:var(--cp-accent-text); color:var(--cp-ink); }
.slot-btn.selected { background:#f7f8eb; color:var(--cp-ink); border-color:var(--cp-accent-text); box-shadow:inset 0 0 0 1px var(--cp-accent-text); }
.selected-slot-row { background:#f5f6f7; border:0; border-radius:8px; padding:14px; }
.sel-time { color:var(--cp-ink); font-weight:600; font-size:16px; }
.change-btn { color:var(--cp-accent-text); font-size:14px; }
.field label { font-size:14px; color:var(--cp-muted); font-weight:500; text-transform:none; letter-spacing:0; }
.field input { min-height:44px; font-size:16px; border:1px solid var(--cp-line); border-radius:8px; color:var(--cp-ink); }
.book-btn { background:var(--cp-brand); color:var(--cp-ink); border:0; border-radius:8px; min-height:48px; font-size:16px; font-weight:600; box-shadow:none; }
.book-btn:hover { filter:brightness(.97); transform:none; box-shadow:none; }
button:focus-visible,a:focus-visible,input:focus-visible,[role=button]:focus-visible { outline:3px solid #5f6300; outline-offset:3px; }
.success-title { font-weight:650; color:var(--cp-ink); }
.hero { background:#050607; }
.hero::after { display:none; }
.hero-body { background:var(--cp-bg); color:var(--cp-ink); max-width:760px; margin:auto; padding:28px 24px 0; }
.hero-h1,.hero-sub { color:var(--cp-ink); }
.hero-sub { font-size:16px; }
.hero-eyebrow { color:var(--cp-muted); font-size:12px; }
.trust-row { display:none; }
.card-inner,.ctx-row { background:#fff; border-color:var(--cp-line); }
.who-name { font-size:16px; }
.who-meta { font-size:14px; }
@media(max-width:600px) { .page { padding:24px 16px 48px; } .nav { padding:12px 16px; } .nav-logo { height:34px; } .greeting-name,.hero-h1 { font-size:24px; } .confirm-panel { padding:18px; } .slots-row,.slot-row { display:grid;grid-template-columns:repeat(2,minmax(0,1fr)); } .slot-btn { width:100%; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }

.booking-error { color:#9b2424; background:#fff2f2; border-radius:8px; padding:12px; font-size:14px; margin:12px 0; }
.booked-box { border-radius:12px;box-shadow:none; }
.booked-name,.brt strong,.who-filled-name { font-weight:600; }
.who-filled { background:#f5f6f7;border:0; }
.who-label { font-size:12px;color:var(--cp-muted); }
.who-filled-detail,.booked-contact { font-size:14px; }
.teams-btn { background:var(--cp-brand);color:var(--cp-ink);font-weight:600;border-radius:8px; }

/* Refined booking composition: one scheduling surface, compact advisor summary. */
.page { max-width:1100px; padding:64px 32px 80px; }
.nav { padding:14px max(24px, calc((100vw - 1040px) / 2)); }
.nav-logo { height:32px; }
.booking-layout { display:grid; grid-template-columns:minmax(240px,.85fr) minmax(0,1.35fr); background:#fff; border:1px solid #e4e7eb; border-radius:20px; overflow:hidden; box-shadow:0 16px 56px -32px rgba(17,19,24,.2); }
.booking-overview { padding:40px 32px; border-right:1px solid #e9ebee; }
.booking-overview .greeting { padding:0; margin-bottom:36px; }
.booking-overview .greeting-eyebrow { font-size:12px; font-weight:500; letter-spacing:0; text-transform:none; margin-bottom:16px; color:#737982; }
.booking-overview .greeting-name { font-size:40px; line-height:1.1; font-weight:600; letter-spacing:-1.6px; margin:0 0 16px; }
.booking-overview .greeting-sub { color:#737982; font-size:15px; line-height:1.6; }
.booking-overview .advisor-row { border:0; padding:0; border-radius:0; margin:0 0 24px; gap:12px; }
.booking-overview .adv-avatar { width:44px; height:44px; border-radius:14px; background:#f0f1e5; color:#565c19; font-size:14px; font-weight:600; letter-spacing:.02em; }
.booking-overview .adv-label { font-size:12px; font-weight:400; text-transform:none; letter-spacing:0; margin-bottom:2px; }
.booking-overview .adv-name { font-size:15px; }
.booking-overview .adv-note { font-size:13px; }
.meeting-facts { display:flex; flex-direction:column; gap:12px; color:#626975; font-size:14px; }
.meeting-facts>div { display:flex; align-items:center; gap:10px; }
.meeting-facts svg { width:18px; height:18px; flex:none; }
.booking-scheduler { padding:36px 32px; min-width:0; }
.picker-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:22px; }
.picker-heading h2 { font-size:17px; font-weight:600; letter-spacing:-.3px; }
.picker-heading>span { color:#737982; font-size:12px; white-space:nowrap; }
.date-picker { display:flex; gap:8px; overflow-x:auto; padding:3px 3px 12px; margin:0 -3px 20px; scrollbar-width:thin; }
.date-option { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:3px; min-width:64px; min-height:92px; flex:1 0 64px; padding:10px 8px; background:#fff; color:#737982; border:1px solid #e4e7eb; border-radius:12px; cursor:pointer; font:inherit; transition:background .15s,border-color .15s; }
.date-option span { font-size:12px; }
.date-option strong { font-size:24px; line-height:1.25; font-weight:550; color:#111318; }
.date-option:hover { background:#f7f8f3; border-color:#adb37d; }
.date-option.selected { background:#C4CA20; border-color:#C4CA20; color:#363907; }
.date-option.selected strong { color:#111318; }
.booking-scheduler .day-header { font-size:13px; font-weight:500; letter-spacing:0; text-transform:none; border:0; padding:0; margin-bottom:12px; color:#737982; }
.booking-scheduler .slots-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.booking-scheduler .slot-btn { width:100%; min-height:46px; padding:10px 8px; border-radius:9px; font-size:14px; font-weight:500; }
.booking-scheduler .slot-btn.selected { background:#f5f6df; border-color:#747a1c; box-shadow:none; }
.booking-scheduler .confirm-panel { border:0; border-top:1px solid #e9ebee; border-radius:0; padding:24px 0 0; margin-top:28px; animation:none; }
.booking-scheduler .selected-slot-row { background:none; padding:0; margin-bottom:24px; align-items:baseline; }
.booking-scheduler .selected-slot-row>span:first-child { display:none; }
.booking-scheduler .sel-time { font-size:14px; }
.booking-scheduler .section-label { text-transform:none; letter-spacing:0; font-size:14px; color:#111318; }
.booking-scheduler .field input { background:#fafbfc; }
.booking-overview .context-card { padding:0 0 24px; border:0; border-radius:0; }
@media(max-width:800px) {
 .page { padding:28px 20px 48px; }
 .booking-overview { padding:30px 24px; }
 .booking-scheduler { padding:30px 24px; }
 .booking-overview .greeting-name { font-size:34px; }
 .booking-scheduler .slots-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .picker-heading { flex-wrap:wrap; gap:4px; }
}
@media(max-width:620px) {
 .page { padding:20px 14px 40px; }
 .booking-layout { grid-template-columns:1fr; border-radius:16px; }
 .booking-overview { padding:26px 22px; border-right:0; border-bottom:1px solid #e9ebee; }
 .booking-overview .greeting { margin-bottom:24px; }
 .booking-overview .greeting-eyebrow { display:none; }
 .booking-overview .greeting-name { font-size:34px; margin-bottom:10px; }
 .booking-overview .advisor-row { margin-bottom:18px; }
 .meeting-facts { flex-direction:row; flex-wrap:wrap; gap:20px; font-size:13px; }
 .booking-scheduler { padding:26px 22px; }
 .picker-heading { flex-wrap:nowrap; }
 .date-option { min-width:58px;flex-basis:58px; }
}

.booking-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0;font-size:13px}.booking-controls select,.booking-controls button{font:inherit;padding:9px;border:1px solid #ddd;border-radius:8px;background:white;color:#222}.booking-controls>div{display:flex;gap:8px;margin-left:auto}.booking-controls button:disabled{opacity:.4}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #7b8111;outline-offset:3px}
