/* Layout: the studio's own monochrome editorial system — wordmark masthead, "today" as the one bold block, rooms as a spec-sheet grid, the service menu as a printed price card. Single light look, matching the live ÉSCÉ site. */
:root{
  --paper:#efedea;
  --card:#f6f5f2;
  --grey:#8b8884;
  --ink:#121212;
  --soot:#1a1918;
  --line:rgba(18,18,18,.14);
  --line-lt:rgba(239,237,234,.18);
  --f-mark:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --f-type:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-type);font-weight:300;font-size:12.5px;line-height:1.8;letter-spacing:.01em;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:1px solid var(--ink);outline-offset:3px}

.wrap{max-width:1080px;margin:0 auto;padding-inline:clamp(16px,4vw,40px);padding-block:clamp(28px,5vw,56px) 64px;display:flex;flex-direction:column;gap:clamp(36px,6vw,64px)}

.label{font-family:var(--f-type);font-size:10.5px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--grey)}

/* masthead */
.mast{display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px;border-bottom:1px solid var(--line);padding-bottom:22px}
.mark{font-family:var(--f-mark);font-weight:600;font-size:clamp(44px,9vw,92px);letter-spacing:.16em;line-height:.9;margin:0;margin-right:-.16em}
.mast-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.mast-meta .date{font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.hello{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px}
.hello h1{font-family:var(--f-mark);font-weight:400;font-size:clamp(20px,3vw,28px);letter-spacing:.04em;margin:0;text-wrap:balance}
.hello p{margin:0;color:var(--grey)}

/* today — the one dark block */
.today{background:var(--soot);color:var(--paper);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);}
.today-main{padding:clamp(24px,4vw,44px);display:flex;flex-direction:column;gap:22px;justify-content:space-between;border-right:1px solid var(--line-lt)}
.today-main .label{color:rgba(239,237,234,.6)}
.today-main h2{font-family:var(--f-mark);font-weight:300;font-size:clamp(26px,4.4vw,44px);letter-spacing:.02em;line-height:1.1;margin:0;text-wrap:balance}
button.btn{font:inherit;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;background:transparent;color:var(--paper)}
button.btn.btn-solid{background:var(--paper);color:var(--ink)}
button.btn.btn-solid:hover{background:transparent;color:var(--paper)}
.btn{display:inline-flex;align-items:center;gap:14px;align-self:flex-start;border:1px solid var(--paper);padding:13px 22px;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;transition:background .25s,color .25s}
.btn:hover{background:var(--paper);color:var(--ink)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.btn-solid{background:var(--paper);color:var(--ink)}
.btn-solid:hover{background:transparent;color:var(--paper)}
.hint{margin:0;color:rgba(239,237,234,.55);font-size:11px;max-width:46ch}
.btn .arr{transition:transform .25s}
.btn:hover .arr{transform:translateX(4px)}
.today-side{display:flex;flex-direction:column}
.today-side a{flex:1;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px clamp(20px,3vw,32px);border-bottom:1px solid var(--line-lt);transition:background .2s}
.today-side a:last-child{border-bottom:0}
.today-side a:hover{background:rgba(239,237,234,.06)}
.today-side .t{font-family:var(--f-mark);font-size:15px;letter-spacing:.06em;font-weight:400}
.today-side .d{display:block;color:rgba(239,237,234,.55);font-size:11px}
.today-side .arr{color:rgba(239,237,234,.6)}

/* rooms */
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:0}
.sec-head h3{font-family:var(--f-mark);font-weight:500;font-size:12px;letter-spacing:.3em;text-transform:uppercase;margin:0}
.rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-left:1px solid var(--line)}
.room{display:flex;flex-direction:column;gap:10px;padding:22px 22px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:150px;transition:background .2s}
.room:hover{background:var(--card)}
.room .top{display:flex;justify-content:space-between;align-items:baseline}
.room h4{font-family:var(--f-mark);font-weight:400;font-size:18px;letter-spacing:.04em;margin:0}
.room p{margin:0;color:var(--grey);max-width:32ch}
.room .go{margin-top:auto;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;display:flex;gap:10px;align-items:center}
.room:hover .go .arr{transform:translateX(4px)}
.arr{display:inline-block;transition:transform .25s}

/* service card */
.menu{background:var(--card);border:1px solid var(--line);padding:clamp(22px,4vw,40px);display:flex;flex-direction:column;gap:26px}
.menu-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px 20px}
.menu-head h3{font-family:var(--f-mark);font-weight:500;font-size:12px;letter-spacing:.3em;text-transform:uppercase;margin:0}
.groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 48px}
.group h5{font-family:var(--f-mark);font-weight:500;font-size:11px;letter-spacing:.24em;text-transform:uppercase;margin:0 0 6px;padding-bottom:8px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
.group h5 span{color:var(--grey);font-weight:400;letter-spacing:.12em}
.group ul{list-style:none;margin:0;padding:0}
.group li{display:flex;align-items:baseline;gap:10px;padding:5px 0}
.group li .n{white-space:nowrap}
.group li .dots{flex:1;border-bottom:1px dotted rgba(18,18,18,.3);transform:translateY(-4px);min-width:16px}
.group li .m{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--grey)}

.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;border-top:1px solid var(--line);padding-top:16px;color:var(--grey);font-size:11px}


/* live book */
.book{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.book li{display:grid;grid-template-columns:5.5em minmax(0,1fr);gap:4px 16px;padding:12px 0;border-top:1px solid var(--line-lt)}
.book li:first-child{border-top:0}
.book .tm{font-variant-numeric:tabular-nums;color:rgba(239,237,234,.7);font-size:11.5px;padding-top:3px}
.book .who{font-family:var(--f-mark);font-size:17px;letter-spacing:.03em;font-weight:400;line-height:1.3}
.book .svc{grid-column:2;color:rgba(239,237,234,.55);font-size:11px}
.book li.now .tm,.book li.now .who{color:var(--paper)}
.book li.now .tm::before{content:"● ";font-size:8px;vertical-align:2px}
.book li.done{opacity:.45}
.empty{margin:0;color:rgba(239,237,234,.6)}
.status-line{color:var(--grey);font-size:11px}
/* passcode */
.gate{position:fixed;inset:0;background:var(--paper);display:flex;align-items:center;justify-content:center;padding:24px;z-index:10}
.gate form{display:flex;flex-direction:column;gap:18px;width:min(340px,100%);text-align:center}
.gate .mark{font-size:48px;margin:0 auto}
.gate input{font:inherit;font-size:16px;letter-spacing:.3em;text-align:center;padding:14px;border:1px solid var(--ink);background:transparent;color:var(--ink);border-radius:0}
.gate button{font:inherit;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;padding:14px;background:var(--ink);color:var(--paper);border:0;cursor:pointer}
.gate .err{color:#9a3a2a;min-height:1.6em;margin:0}

/* ---- the book (calendar) ---- */
:root{
  --g-color:#6e5a8f;      /* Color */
  --g-colorcut:#3e4677;   /* Color + Cut */
  --g-gloss:#8790c2;      /* Gloss & Tone */
  --g-cut:#8b8884;        /* Cuts & Styling */
  --hour:64px;
}
.cal{display:flex;flex-direction:column;gap:14px;scroll-margin-top:16px}
.cal-head{flex-wrap:wrap}
.cal-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-tools button{font:inherit;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;background:transparent;color:var(--ink);border:1px solid var(--line);padding:7px 12px;cursor:pointer;line-height:1.2}
.cal-tools button:hover{border-color:var(--ink)}
.cal-tools .ico{font-size:16px;letter-spacing:0;padding:4px 12px}
.seg{display:inline-flex}
.seg button+button{border-left:0}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cal-sub{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.cal-range{font-family:var(--f-mark);font-size:15px;letter-spacing:.06em}

.daystrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.daystrip button{font:inherit;background:transparent;border:1px solid var(--line);padding:8px 0;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;align-items:center;line-height:1.3}
.daystrip button .dw{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey)}
.daystrip button .dn{font-family:var(--f-mark);font-size:16px}
.daystrip button .dc{font-size:9.5px;color:var(--grey);min-height:1.3em}
.daystrip button[aria-selected="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.daystrip button[aria-selected="true"] .dw,.daystrip button[aria-selected="true"] .dc{color:rgba(239,237,234,.65)}
.daystrip button.is-today .dn{text-decoration:underline;text-underline-offset:4px}
.cal[data-view="week"] .daystrip{display:none}

.grid-wrap{border:1px solid var(--line);background:var(--card);overflow-x:auto;-webkit-overflow-scrolling:touch}
.grid{display:grid;min-width:100%;position:relative}
.cal[data-view="week"] .grid{min-width:760px}
.g-corner,.g-dayhead{position:sticky;top:0;background:var(--card);z-index:3;border-bottom:1px solid var(--line);padding:10px 8px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey)}
.g-dayhead{text-align:left;border-left:1px solid var(--line)}
.g-dayhead b{display:block;font-family:var(--f-mark);font-weight:400;font-size:15px;letter-spacing:.04em;color:var(--ink);text-transform:none}
.g-dayhead.is-today b{text-decoration:underline;text-underline-offset:4px}
.g-hours{position:relative}
.g-hours span{position:absolute;right:8px;transform:translateY(-50%);font-size:10px;color:var(--grey);font-variant-numeric:tabular-nums;white-space:nowrap}
.g-col{position:relative;border-left:1px solid var(--line);cursor:copy;
  background-image:linear-gradient(to bottom,var(--line) 1px,transparent 1px),linear-gradient(to bottom,rgba(18,18,18,.05) 1px,transparent 1px);
  background-size:100% var(--hour),100% calc(var(--hour)/2)}
.g-col.is-today{background-color:rgba(239,237,234,.55)}
.g-col .closed{position:absolute;left:0;right:0;background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(18,18,18,.035) 6px 7px);pointer-events:none}
.now-line{position:absolute;left:0;right:0;height:0;border-top:1px solid #9a3a2a;z-index:2;pointer-events:none}
.now-line::before{content:"";position:absolute;left:-4px;top:-4px;width:7px;height:7px;border-radius:50%;background:#9a3a2a}
.ev{position:absolute;z-index:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;box-sizing:border-box;padding:5px 7px;overflow:hidden;cursor:pointer;text-align:left;font:inherit;color:var(--ink);
  background:color-mix(in srgb,var(--g) 22%,var(--card));border:0;border-left:3px solid var(--g);line-height:1.35;transition:background .15s}
.ev:hover,.ev:focus-visible{background:color-mix(in srgb,var(--g) 34%,var(--card));outline:none}
.ev .n{display:block;font-family:var(--f-mark);font-size:12.5px;font-weight:500;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev .t{display:block;font-size:10.5px;color:rgba(18,18,18,.66);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev.past{opacity:.55}
.ev.short .t{display:none}
.legend{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:10px;height:10px;background:var(--g);display:inline-block}

/* ---- sheets ---- */
.scrim{position:fixed;inset:0;background:rgba(18,18,18,.35);z-index:20}
.sheet{position:fixed;z-index:21;right:0;top:0;bottom:0;width:min(440px,100%);background:var(--paper);border-left:1px solid var(--line);overflow-y:auto;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.sheet-in{padding:24px clamp(18px,4vw,28px) 32px;display:flex;flex-direction:column;gap:18px}
.sheet-top{display:flex;justify-content:space-between;align-items:center}
.x{font:inherit;font-size:22px;line-height:1;background:transparent;border:0;cursor:pointer;color:var(--ink);padding:4px 6px}
.ev-name{font-family:var(--f-mark);font-weight:300;font-size:30px;letter-spacing:.02em;line-height:1.15;margin:0}
.ev-svc,.ev-phone{margin:0}
.ev-phone a{color:var(--ink);border-bottom:1px solid var(--line)}
.sheet-actions{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.btn-ink,.btn-line{font:inherit;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;padding:15px;text-align:center;cursor:pointer;border:1px solid var(--ink)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink[disabled]{opacity:.5;cursor:wait}
.btn-line{background:transparent;color:var(--ink)}
.fld{display:flex;flex-direction:column;gap:6px;position:relative;min-width:0}
.fld input,.fld select{font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:0;padding:11px 12px;width:100%;-webkit-appearance:none;appearance:none}
.fld select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}
.fld input:focus,.fld select:focus{outline:none;border-color:var(--ink)}
.row3{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px}
.row3 .fld input,.row3 .fld select{font-size:15px;padding-inline:10px}
.results{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-top:0;background:var(--card);max-height:260px;overflow:auto}
.results li button{font:inherit;width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);padding:10px 12px;cursor:pointer;color:var(--ink);display:flex;justify-content:space-between;gap:10px}
.results li:first-child button{border-top:0}
.results li button:hover,.results li button:focus-visible{background:var(--paper);outline:none}
.results li button small{color:var(--grey);font-size:11px;white-space:nowrap}
.results li.empty-r{padding:10px 12px;color:var(--grey)}
.picked{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--ink);padding:10px 12px;font-family:var(--f-mark);font-size:15px}
.picked button{font:inherit;font-size:10px;letter-spacing:.2em;text-transform:uppercase;background:transparent;border:0;color:var(--grey);cursor:pointer}
.note{margin:0;color:var(--grey);font-size:11px}
.sheet .err{margin:0;color:#9a3a2a;min-height:0}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:12px 20px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;z-index:30;max-width:calc(100% - 32px);text-align:center}

@media (max-width:560px){
  :root{--hour:58px}
  .row3{grid-template-columns:1fr 1fr}
  .row3 .fld:first-child{grid-column:1/-1}
  .cal-head{flex-direction:column;align-items:flex-start;gap:10px}
  .daystrip button .dc{display:none}
}

@media (max-width:820px){
  .today{grid-template-columns:1fr}
  .today-main{border-right:0;border-bottom:1px solid var(--line-lt)}
  .rooms{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .mast{grid-template-columns:1fr}
  .mast-meta{align-items:flex-start;text-align:left}
  .rooms{grid-template-columns:1fr}
  .groups{grid-template-columns:1fr}
  .group li .n{white-space:normal}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.book li[data-ev]{cursor:pointer}
button.room{font:inherit;color:inherit;text-align:left;background:transparent;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;width:100%}
.newc{display:flex;flex-direction:column;gap:12px;border:1px solid var(--ink);padding:14px;background:var(--card)}
.newc-head{display:flex;justify-content:space-between;align-items:center}
.lnk{font:inherit;font-size:10px;letter-spacing:.2em;text-transform:uppercase;background:transparent;border:0;color:var(--grey);cursor:pointer;padding:0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fld em{font-style:normal;text-transform:none;letter-spacing:.04em;color:var(--grey);opacity:.8}
.newc .fld input{background:var(--paper)}
.results li button.addnew{color:var(--ink);font-weight:500}
.results li button.addnew small{color:var(--ink)}
/* ---- messages + payments ---- */
.today-side button{font:inherit;color:inherit;background:transparent;border:0;border-bottom:1px solid var(--line-lt);text-align:left;cursor:pointer;flex:1;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px clamp(20px,3vw,32px);transition:background .2s}
.today-side button:last-child{border-bottom:0}
.today-side button:hover{background:rgba(239,237,234,.06)}
.badge{display:inline-block;font-style:normal;font-family:var(--f-type);font-size:10px;letter-spacing:.06em;background:var(--paper);color:var(--ink);padding:0 7px;margin-left:8px;vertical-align:2px;line-height:1.7}
.sheet.wide{width:min(500px,100%)}
.muted{color:var(--grey)}
.lnk-ghl{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);align-self:flex-start}
.convs,.invs{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.convs li.muted,.invs li.muted{padding:14px 0}
.convs button,.invs button{font:inherit;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);width:100%;text-align:left;padding:14px 2px;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}
.convs button:hover,.invs button:hover{background:var(--card)}
.convs .nm,.invs .nm{font-family:var(--f-mark);font-size:15px;letter-spacing:.02em}
.convs .tm,.invs .amt{color:var(--grey);font-size:11px;text-align:right;white-space:nowrap}
.convs .sn,.invs .it{grid-column:1/-1;color:var(--grey);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.convs .unread .nm{font-weight:600}
.convs .unread .nm::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#9a3a2a;margin-right:8px;vertical-align:2px}
.convs .unread .sn{color:var(--ink)}
.invs .amt{color:var(--ink);font-variant-numeric:tabular-nums}
.chip{display:inline-block;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--line);padding:1px 7px;color:var(--grey);vertical-align:1px}
.chip.paid{border-color:var(--ink);color:var(--ink)}
.chip.sent,.chip.partially_paid,.chip.overdue{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.owed{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:12px}
.owed b{font-family:var(--f-mark);font-weight:300;font-size:28px;font-variant-numeric:tabular-nums}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.thread{height:100%;min-height:100%;gap:12px}
.th-head{display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--line);padding-bottom:12px}
.bubbles{list-style:none;margin:0;padding:4px 0;display:flex;flex-direction:column;gap:8px;flex:1;overflow-y:auto;min-height:200px}
.bubbles li{max-width:82%;padding:9px 12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--card);border:1px solid var(--line);align-self:flex-start;font-size:12.5px}
.bubbles li.out{align-self:flex-end;background:var(--ink);color:var(--paper);border-color:var(--ink)}
.bubbles li small{display:block;font-size:9.5px;letter-spacing:.08em;opacity:.6;margin-top:4px}
.bubbles li.day{align-self:center;background:transparent;border:0;color:var(--grey);font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:4px}
.composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;position:sticky;bottom:0;background:var(--paper);padding-top:8px}
.composer textarea{font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:0;padding:10px 12px;resize:none;min-height:46px;max-height:140px}
.composer textarea:focus{outline:none;border-color:var(--ink)}
.composer .btn-ink{padding:0 18px}
.money{display:flex;align-items:center;border:1px solid var(--line);background:var(--card)}
.money i{font-style:normal;padding-left:12px;color:var(--grey)}
.money input{border:0!important;padding-left:6px!important;background:transparent!important}
.money:focus-within{border-color:var(--ink)}
.pd-amt{margin:0;display:flex;align-items:center;gap:12px}
.pd-amt b{font-family:var(--f-mark);font-weight:300;font-size:30px;font-variant-numeric:tabular-nums}
.warn{margin:0;padding:10px 12px;border:1px solid #9a3a2a;color:#9a3a2a;font-size:11.5px}
/* ---- blocked time ---- */
.blk{position:absolute;left:0;right:0;z-index:0;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;box-sizing:border-box;padding:5px 8px;overflow:hidden;cursor:pointer;text-align:left;font:inherit;color:var(--ink);border:0;border-top:1px solid rgba(18,18,18,.35);
  background:repeating-linear-gradient(135deg,rgba(18,18,18,.10) 0 7px,rgba(18,18,18,.03) 7px 14px);line-height:1.35}
.blk:hover,.blk:focus-visible{background:repeating-linear-gradient(135deg,rgba(18,18,18,.16) 0 7px,rgba(18,18,18,.06) 7px 14px);outline:none}
.blk .n{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.blk .t{display:block;font-size:10.5px;color:rgba(18,18,18,.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book li.blk-row{cursor:pointer}
.book li.blk-row .who{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:rgba(239,237,234,.75)}
.book li.blk-row .tm{color:rgba(239,237,234,.55)}
.seg.quick{display:grid;grid-template-columns:repeat(3,1fr)}
.seg.quick button{font:inherit;font-size:10px;letter-spacing:.16em;text-transform:uppercase;background:transparent;color:var(--ink);border:1px solid var(--line);padding:11px 6px;cursor:pointer}
.seg.quick button+button{border-left:0}
.seg.quick button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.lnk.inl{color:var(--ink);text-decoration:underline;text-underline-offset:3px;letter-spacing:.08em;text-transform:none;font-size:11px}
/* ---- waitlist ---- */
.waits{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.waits li{border-bottom:1px solid var(--line);padding:14px 2px;display:flex;flex-direction:column;gap:4px}
.waits li.muted{padding:14px 0}
.w-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:baseline}
.w-n{font-variant-numeric:tabular-nums;color:var(--grey);font-size:11px;min-width:1.4em}
.waits .nm{font-family:var(--f-mark);font-size:15px;letter-spacing:.02em}
.waits .tm{color:var(--grey);font-size:11px;white-space:nowrap}
.w-want,.w-ph{margin:0 0 0 calc(1.4em + 12px);font-size:11.5px;color:var(--grey)}
.w-want{color:var(--ink)}
.w-act{display:flex;gap:8px;margin:6px 0 0 calc(1.4em + 12px);flex-wrap:wrap}
.w-act button{font:inherit;font-size:10px;letter-spacing:.18em;text-transform:uppercase;background:transparent;color:var(--ink);border:1px solid var(--line);padding:7px 12px;cursor:pointer}
.w-act button:hover{border-color:var(--ink)}
.w-act button.sure{background:#9a3a2a;border-color:#9a3a2a;color:var(--paper)}
/* ---- tips ---- */
.tips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.tips button{font:inherit;font-size:11px;letter-spacing:.06em;background:var(--card);color:var(--ink);border:1px solid var(--line);padding:10px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.3;font-variant-numeric:tabular-nums}
.tips button+button{border-left:0}
.tips button small{font-size:10px;color:var(--grey)}
.tips button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tips button[aria-pressed="true"] small{color:rgba(239,237,234,.7)}
.tip-custom{margin-top:8px}
.total-line{margin:0;display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding-top:12px;font-variant-numeric:tabular-nums}
.total-line b{font-family:var(--f-mark);font-weight:400;font-size:22px}
.total-line span{color:var(--grey);font-size:11px}

/* per-service legend, grouped by category */
.legend{flex-direction:column;gap:10px}
.legend .lg-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}
.legend .lg-row b{font-weight:500;color:var(--ink);min-width:13ch}
.legend .lg-row span{text-transform:none;letter-spacing:.04em;font-size:11px}

/* money */
.mn-year{display:flex;align-items:center;gap:14px}
.mn-year b{font-family:var(--f-mark);font-weight:400;font-size:15px;letter-spacing:.12em;font-variant-numeric:tabular-nums}
.mn-year .lnk:disabled{opacity:.3;cursor:default}
.mn-big{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;border-bottom:1px solid var(--line);padding-bottom:16px}
.mn-big div{display:flex;flex-direction:column;gap:2px;min-width:0}
.mn-big b{font-family:var(--f-mark);font-weight:300;font-size:30px;line-height:1.15;font-variant-numeric:tabular-nums}
.mn-big small{font-size:11px}
.mn-rows{margin:0;display:flex;flex-direction:column}
.mn-rows div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.mn-rows dt{color:var(--ink)}
.mn-rows dd{margin:0;font-variant-numeric:tabular-nums}
.mn-rate{display:inline-flex;align-items:baseline;gap:2px;color:var(--grey)}
.mn-rate input{font:inherit;width:4ch;padding:0 2px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:right;-moz-appearance:textfield}
.mn-rate input::-webkit-inner-spin-button,.mn-rate input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.mn-rate input:focus-visible{outline:none;border-bottom-color:var(--ink)}
.mn-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;height:150px;margin-top:10px;align-items:end}
.mn-bars .mb{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:4px;min-width:0}
.mn-bars .mb i{display:block;width:100%;background:color-mix(in srgb,var(--ink) 18%,var(--card));min-height:0}
.mn-bars .mb.now i{background:var(--ink)}
.mn-bars .mb.fut i{background:transparent}
.mn-bars .v{font-size:8.5px;color:var(--grey);white-space:nowrap;font-variant-numeric:tabular-nums;writing-mode:vertical-rl;transform:rotate(180deg);max-height:60px;overflow:hidden}
.mn-bars .m{font-size:10px;color:var(--grey);letter-spacing:.1em}
.mn-tbl-wrap{overflow-x:auto;margin-top:8px}
.mn-tbl{width:100%;border-collapse:collapse;font-size:12px}
.mn-tbl th{font-weight:400;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);text-align:right;padding:6px 0 6px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.mn-tbl th:first-child,.mn-tbl td:first-child{text-align:left;padding-left:0}
.mn-tbl td{padding:8px 0 8px 10px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mn-tbl td:first-child{white-space:normal}
.mn-tbl .sw{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--g);margin-right:8px;vertical-align:baseline}

/* open spots (cancelled, still free) */
.opn{position:absolute;left:2px;right:2px;z-index:1;display:flex;flex-direction:column;gap:1px;padding:5px 8px;box-sizing:border-box;overflow:hidden;cursor:pointer;text-align:left;font:inherit;color:var(--ink);
  background:color-mix(in srgb,var(--card) 70%,transparent);border:1px dashed rgba(18,18,18,.45)}
.opn:hover,.opn:focus-visible{background:var(--card);border-style:solid;outline:none}
.opn .n{font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opn .t{font-size:10.5px;color:var(--grey);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opens{display:flex;flex-direction:column;gap:6px}
.opens ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.opens button{font:inherit;color:var(--ink);background:transparent;border:0;border-bottom:1px dashed var(--line);width:100%;text-align:left;padding:12px 2px;cursor:pointer;display:flex;justify-content:space-between;gap:12px}
.opens button:hover{background:var(--card)}
.opens .tm{color:var(--grey);font-size:11px;white-space:nowrap}
.fills{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.fills > li{padding:14px 2px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.fills > li.muted{color:var(--grey)}
.fills > li.nofit .nm,.fills > li.nofit .w-want{color:var(--grey)}
.fills .w-top{display:flex;align-items:baseline;gap:10px}
.fills .nm{font-family:var(--f-mark);font-size:15px;letter-spacing:.02em}
.fills .tm{margin-left:auto;color:var(--grey);font-size:11px;white-space:nowrap}
.fills .chip.vip{font-size:9.5px;letter-spacing:.2em;padding:1px 6px;border:1px solid var(--ink)}
.fills .w-want,.fills .w-why,.fills .w-sent,.fills .w-ph{margin:0;font-size:11.5px}
.fills .w-why{color:var(--grey)}
.fills .w-sent{color:var(--ink);font-weight:500}
.fills .w-act{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:4px}
.fills .w-act button,.fills .w-act a{font:inherit;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;background:transparent;border:0;border-bottom:1px solid var(--ink);color:var(--ink);padding:2px 0;cursor:pointer}
.fills .w-act button:disabled{opacity:.5}
.fills .offer{margin-top:8px;padding:12px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.fills .msg-txt{margin:0;font-size:12.5px;line-height:1.6;user-select:text}

/* send as text or email */
.composer .via{grid-column:1/-1;order:-1;display:flex;gap:16px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey)}
.composer .via label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.composer .via input{accent-color:var(--ink);margin:0}
.composer .via input:disabled + *{opacity:.4}
#msg-to-fld{margin-top:-6px}

/* month view */
.cal[data-view="month"] .daystrip{display:none}
.cal[data-view="month"] .grid{min-width:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.m-head{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey);padding:10px 8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--card)}
.m-day{min-height:112px;padding:6px 6px 8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;cursor:pointer;min-width:0;background:var(--paper)}
.m-day:hover{background:var(--card)}
.m-day.out{opacity:.45}
.m-num{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--f-mark);font-size:15px;line-height:1.2}
.m-num i{font-style:normal;font-family:inherit;font-size:9.5px;letter-spacing:.12em;color:var(--grey)}
.m-day.is-today .m-num{text-decoration:underline;text-underline-offset:4px}
.m-ev{font:inherit;font-size:11px;line-height:1.35;text-align:left;background:transparent;border:0;border-left:3px solid var(--g, var(--ink));padding:1px 0 1px 5px;color:var(--ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.m-ev b{font-weight:500}
.m-blk{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-more{font-size:10.5px;color:var(--grey)}
@media (max-width:700px){
  .m-day{min-height:64px;padding:4px 3px}
  .m-ev{font-size:0;border-left-width:0;padding:0;height:6px;width:6px;border-radius:50%;background:var(--g, var(--ink));display:inline-block}
  .m-ev b{display:none}
  .m-blk{font-size:8px}
  .m-more{font-size:9px}
}
@media (max-width:700px){
  .m-day{flex-direction:row;flex-wrap:wrap;align-content:flex-start;gap:3px}
  .m-num,.m-blk,.m-more{width:100%}
}
