/* Light is the default. Dark is an explicit, remembered choice — not an
   automatic response to the operating system — so the portal looks the same
   for everyone until they ask otherwise. */
:root{
--bg:#f4f6fa;--glow-1:#fdfefe;--glow-2:#eef2fb;--card:#ffffff;--card-2:#f8fafc;
--ink:#16202e;--ink-soft:#33415a;--muted:#55637a;--line:#d9e0ea;--line-soft:#e8edf4;
--accent:#1d3f8f;--accent-2:#2b57b5;--accent-soft:#e9eefb;--accent-border:#c9d8f4;
--top-a:#0f1b33;--top-b:#182a4d;--top-c:#22375f;--top-fg:#ffffff;--top-muted:#c7d2e2;
--ok:#0f7b3f;--ok-soft:#e6f5ec;--ok-border:#a9d9bd;
--warn:#8a5a00;--warn-soft:#fdf3e0;--warn-border:#e3c98d;
--bad:#b3261e;--bad-soft:#fdeceb;--bad-border:#e6b4b0;
--gold:#8a6a00;--gold-soft:#fdf6e3;
--input-border:#c7d0dd;--track:#e3e8f0;--shadow-rgb:20,33,61;
--btn-a:#2b57b5;--btn-b:#1d3f8f;
}
:root[data-theme="dark"]{
--bg:#0e1219;--glow-1:#17202e;--glow-2:#101827;--card:#161d28;--card-2:#1b2431;
--ink:#e9eef6;--ink-soft:#c4cedb;--muted:#a8b4c5;--line:#2a3547;--line-soft:#222c3b;
--accent:#9bb8ff;--accent-2:#7ea6ff;--accent-soft:#1a2740;--accent-border:#31477a;
--top-a:#0b1220;--top-b:#122036;--top-c:#182b49;--top-fg:#ffffff;--top-muted:#c3cfdf;
--ok:#63d492;--ok-soft:#10261a;--ok-border:#1f5236;
--warn:#f0b45e;--warn-soft:#2b2210;--warn-border:#5c4a1e;
--bad:#ff9086;--bad-soft:#2e1717;--bad-border:#5c2a2a;
--gold:#e6bd57;--gold-soft:#2b2210;
--input-border:#384458;--track:#232d3c;--shadow-rgb:0,0,0;
--btn-a:#2b57b5;--btn-b:#1d3f8f;
}
*{box-sizing:border-box}
body{margin:0;background:
radial-gradient(1200px 600px at 12% -10%,var(--glow-1),transparent),
radial-gradient(900px 500px at 100% 0,var(--glow-2),transparent),var(--bg);
color:var(--ink);font:15px/1.55 "Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif}
a{color:var(--accent-2)}
.wrap{max-width:940px;margin:0 auto;padding:0 20px 60px}

/* The bar stays the firm's navy in both themes, so it always carries the white logo. */
.top{background:linear-gradient(100deg,var(--top-a),var(--top-b) 55%,var(--top-c));color:var(--top-fg)}
.top .in{max-width:940px;margin:0 auto;padding:13px 20px;display:flex;align-items:center;gap:14px}
.top .nm{font-weight:650;letter-spacing:.2px}
.top .sub{color:var(--top-muted);font-size:12.5px}
.top .sp{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:13px}
.top a{color:#eaf0fb;text-decoration:none;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.10)}
.top a:hover{background:rgba(255,255,255,.18)}
.brandmark{display:block;height:30px;width:auto}

h1{font-size:25px;margin:26px 0 4px;letter-spacing:-.2px}
h2{font-size:17px;margin:0 0 12px}
h3{font-size:15px;margin:0 0 8px}
.sub{color:var(--muted);margin:0 0 18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;
box-shadow:0 1px 2px rgba(var(--shadow-rgb),.05),0 10px 30px rgba(var(--shadow-rgb),.05)}
.card+.card{margin-top:16px}
.grid{display:flex;flex-wrap:wrap;gap:10px}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:12.5px;color:var(--muted);font-weight:600}
input,select,textarea{background:var(--card-2);color:var(--ink);border:1px solid var(--input-border);
border-radius:9px;padding:9px 11px;font:inherit;font-size:14px;min-width:0}
input:focus,textarea:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(43,87,181,.15)}
textarea{resize:vertical;min-height:74px}
button{font:inherit;font-weight:600;border-radius:9px;padding:10px 16px;cursor:pointer;
border:1px solid var(--btn-b);background:linear-gradient(180deg,var(--btn-a),var(--btn-b));color:#fff}
button:hover{filter:brightness(1.07)}
button.ghost{background:var(--card-2);color:var(--ink);border-color:var(--input-border)}
button.lg{padding:13px 22px;font-size:15px}
button.tt{padding:5px 11px;font-size:12.5px;font-weight:600;border-radius:999px;
background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);color:#eaf0fb}
button.tt:hover{background:rgba(255,255,255,.20);filter:none}
.note{color:var(--muted);font-size:12.5px;margin-top:10px}
.flash{border-radius:11px;padding:12px 14px;margin:0 0 14px;border:1px solid var(--line);background:var(--card-2)}
.flash.bad{background:var(--bad-soft);border-color:var(--bad-border)}
.flash.ok{background:var(--ok-soft);border-color:var(--ok-border)}
.flash.warn{background:var(--warn-soft);border-color:var(--warn-border)}
code{background:var(--card-2);border:1px solid var(--line-soft);border-radius:6px;padding:2px 6px;font-size:12.5px}
.room{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line-soft);padding:13px 0}
.room:first-of-type{border-top:0}
.room .t{font-weight:600}
.room .meta{color:var(--muted);font-size:12.5px}
.room .acts{margin-left:auto;display:flex;gap:8px;align-items:center}
.pill{font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 9px;border:1px solid}
.pill.live{background:var(--ok-soft);border-color:var(--ok-border);color:var(--ok)}
.pill.soon{background:var(--gold-soft);border-color:var(--warn-border);color:var(--gold)}
.pill.done{background:var(--card-2);border-color:var(--line);color:var(--muted)}
.pill.off{background:var(--bad-soft);border-color:var(--bad-border);color:var(--bad)}
.hero{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.hero .txt{flex:1 1 320px;min-width:0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:720px){.split{grid-template-columns:1fr}}
label.check{display:flex;gap:9px;align-items:center;background:var(--card-2);border:1px solid var(--line);
border-radius:9px;padding:8px 11px;font-size:13.5px;cursor:pointer}
.foot{color:var(--muted);font-size:12px;margin-top:26px;text-align:center}
.env{font-size:11.5px;color:var(--muted);background:var(--card-2);border:1px solid var(--line-soft);
border-radius:999px;padding:3px 10px;display:inline-block;margin-bottom:14px}
.loginload{max-width:430px;margin:6vh auto 0}
.big{font-size:19px;font-weight:650;margin:0 0 6px}
.kv{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 0}
.kv div{background:var(--card-2);border:1px solid var(--line-soft);border-radius:10px;padding:9px 13px;min-width:130px}
.kv .k{font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.kv .v{font-size:14.5px;font-weight:600}
.sec{border-left:3px solid var(--accent-2);padding-left:12px;margin:16px 0;color:var(--ink-soft);font-size:13.5px}

/* The firm's wordmark: ink on light, white on dark. Exactly one is ever shown. */
.brandline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}
.brandline img{display:block;height:38px;width:auto}
.logo-ink,.logo-white{display:block}
:root[data-theme="dark"] .logo-ink{display:none}
:root:not([data-theme="dark"]) .logo-white{display:none}
.brandtoggle{margin:14px 0 0;display:flex;justify-content:center}

/* ---- scheduling form: two columns, graphical pickers ---- */
.sched{display:grid;grid-template-columns:1.05fr .95fr;gap:22px}
@media (max-width:860px){.sched{grid-template-columns:1fr}}
.sect{font-size:11.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;
color:var(--muted);margin:0 0 10px}
.picker{border:1px solid var(--line);border-radius:12px;background:var(--card-2);padding:12px}
.pk-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.pk-head .mo{font-weight:650;font-size:14px}
.pk-nav{margin-left:auto;display:flex;gap:6px}
.pk-nav button{padding:3px 10px;font-size:13px;line-height:1.5;background:var(--card);
border:1px solid var(--input-border);color:var(--ink);font-weight:600}
.pk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.pk-dow{font-size:11px;color:var(--muted);text-align:center;font-weight:700;padding:3px 0}
.pk-day{aspect-ratio:1;border-radius:8px;border:1px solid transparent;background:transparent;
color:var(--ink);font-size:13px;font-weight:600;padding:0;cursor:pointer}
.pk-day:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent-border);filter:none}
.pk-day:disabled{color:var(--track);cursor:not-allowed;background:transparent}
.pk-day.today{border-color:var(--accent-border)}
.pk-day[aria-pressed="true"]{background:linear-gradient(180deg,var(--btn-a),var(--btn-b));
border-color:var(--btn-b);color:#fff}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-height:186px;overflow:auto;padding-right:4px}
.slot{padding:7px 4px;font-size:12.5px;border-radius:8px;background:var(--card);
border:1px solid var(--input-border);color:var(--ink)}
.slot:hover{filter:none;background:var(--accent-soft)}
.slot[aria-pressed="true"]{background:linear-gradient(180deg,var(--btn-a),var(--btn-b));
border-color:var(--btn-b);color:#fff}
.segs{display:flex;gap:6px;flex-wrap:wrap}
.seg{padding:7px 13px;font-size:12.5px;border-radius:999px;background:var(--card);
border:1px solid var(--input-border);color:var(--ink)}
.seg:hover{filter:none;background:var(--accent-soft)}
.seg[aria-pressed="true"]{background:linear-gradient(180deg,var(--btn-a),var(--btn-b));
border-color:var(--btn-b);color:#fff}
.summary{margin:14px 0 0;padding:11px 13px;border-radius:10px;background:var(--accent-soft);
border:1px solid var(--accent-border);font-size:13.5px;color:var(--ink)}
.summary b{color:var(--ink)}

/* ---- invitee chips + firm directory ---- */
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border:1px solid var(--input-border);
border-radius:9px;padding:7px;background:var(--card-2);min-height:46px}
.chips:focus-within{border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(43,87,181,.15)}
.chips input{border:0;background:transparent;padding:4px 2px;flex:1 1 150px;min-width:130px}
.chips input:focus{outline:none;box-shadow:none}
.chip{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--accent-border);
border-radius:999px;padding:3px 4px 3px 5px;font-size:12.5px;max-width:100%}
.chip .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:210px}
.chip .x{border:0;background:transparent;color:var(--muted);padding:0 6px;font-size:15px;line-height:1;
cursor:pointer;border-radius:999px;font-weight:700}
.chip .x:hover{color:var(--bad);filter:none;background:transparent}
.chip.ext{border-color:var(--warn-border);background:var(--warn-soft)}
.av{width:20px;height:20px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;
font-size:10px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--btn-a),var(--btn-b));flex:0 0 auto}
.people{max-height:212px;overflow:auto;border:1px solid var(--line);border-radius:10px;margin-top:8px;background:var(--card)}
.person{display:flex;gap:9px;align-items:center;width:100%;text-align:left;border:0;
border-bottom:1px solid var(--line-soft);background:transparent;color:var(--ink);padding:8px 11px;
font-size:13.5px;font-weight:500;border-radius:0;cursor:pointer}
.person:last-child{border-bottom:0}
.person:hover{background:var(--accent-soft);filter:none}
.person .em{color:var(--muted);font-size:12px;margin-left:auto}
.person[hidden]{display:none}
.person[aria-pressed="true"]{background:var(--accent-soft);opacity:.55}
.empty{padding:11px 12px;font-size:13px;color:var(--muted)}
.room .t{font-size:14.5px}