:root{
  --ink:#151515;--paper:#f4f1eb;--panel:#fff;--muted:#625f59;--line:#d5d0c8;
  --blue:#14577a;--blue-dark:#0f405a;--error:#8b2525;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);line-height:1.5}
.skip-link{position:absolute;left:-9999px;top:8px;background:#fff;color:#000;padding:10px;z-index:10}
.skip-link:focus{left:8px}
.topbar{min-height:82px;padding:18px clamp(20px,5vw,64px);display:flex;align-items:center;justify-content:space-between;background:#111;color:#fff}
.brand img{display:block;width:190px;height:auto}.product-label{font-weight:750;letter-spacing:.04em}
.shell{width:min(880px,calc(100% - 32px));margin:0 auto;padding:clamp(38px,7vw,72px) 0 80px}
.intro{max-width:760px;margin-bottom:30px}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:var(--blue);margin:0 0 8px}
h1{font-size:clamp(2.35rem,7vw,4.6rem);line-height:.96;letter-spacing:-.04em;margin:0 0 18px}
h2{font-size:clamp(1.55rem,4vw,2.2rem);line-height:1.05;letter-spacing:-.025em;margin:0 0 12px}
.lead{font-size:1.08rem;color:var(--muted);max-width:680px}.panel{background:var(--panel);border:1px solid var(--line);padding:clamp(24px,5vw,42px);margin:20px 0}
.panel--error{border-color:#c98d8d}.status{color:var(--muted);font-weight:650}.error{color:var(--error);font-weight:700}
form{display:grid;gap:24px;margin-top:26px}fieldset{border:0;padding:0;margin:0}legend{font-weight:800;margin-bottom:10px}
.choice-group{display:grid;gap:8px}.choice{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);padding:14px;cursor:pointer}.choice input{margin-top:4px}
label{font-weight:750;display:block}input,select{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #858078;background:#fff;color:#111;font:inherit;border-radius:0}
input:focus,select:focus,button:focus,a:focus{outline:3px solid rgba(20,87,122,.28);outline-offset:2px}
.grid{display:grid;gap:18px}.grid.two{grid-template-columns:1fr 1fr}.help{color:var(--muted);font-size:.92rem;margin:0 0 14px}
.knowledge-list{display:grid;gap:12px}.knowledge-item{border-top:1px solid #ebe7df;padding-top:14px}.knowledge-item:first-child{border-top:0;padding-top:0}.knowledge-item .help{display:block;margin:7px 0 0}.knowledge-value{margin-top:7px;padding:12px 13px;background:#f7f5f0;border:1px solid var(--line);font-weight:500;white-space:pre-wrap}
.hours-row{border-top:1px solid var(--line)}
.hours-row>summary{display:flex;align-items:center;gap:8px;min-height:40px;padding:7px 8px;cursor:pointer;list-style:none}
.hours-row>summary::before{content:'›';font-size:1.2em;line-height:1;width:12px;flex:none;color:var(--blue)}
.hours-row[open]>summary::before{transform:rotate(90deg)}
.hours-row>summary strong{min-width:85px;font-size:.88rem}
.hours-summary{margin-left:auto;color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}
.hours-row.is-available>summary .hours-summary{color:var(--ink)}
.hours-row>summary:hover,.hours-disclosure>summary:hover{background:#f4f1eb}
summary:focus-visible{outline:3px solid rgba(20,87,122,.4);outline-offset:1px}
.hours-editor{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);gap:8px;align-items:end;padding:4px 8px 10px}
.hours-editor .day{grid-column:1/-1}
.hours-disclosure{border:1px solid var(--line);background:#fff}
.hours-disclosure>summary{padding:9px 10px;min-height:40px;cursor:pointer;font-size:.88rem}
.hours-disclosure .person-hours{padding:0 6px 6px}
.hours-row:first-of-type{border-top:0}.hours-row .day{display:flex;align-items:center;gap:9px;font-weight:700;padding-bottom:12px}.hours-row .day input{width:auto;margin:0}.time-field{display:grid;gap:5px;font-weight:700}.time-field-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.hours-row input[type="time"]{margin:0}.hours-row .sep{padding-bottom:12px;text-align:center;color:var(--muted)}
.setup-group{display:grid;gap:14px}.repeat-list{display:grid;gap:14px}.repeat-card{border:1px solid var(--line);background:#faf8f4;padding:16px;display:grid;gap:14px}.repeat-card-header{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end}.repeat-card-title{margin:0;font-weight:800}.text-button{appearance:none;border:0;background:transparent;color:var(--blue);font:inherit;font-weight:800;padding:8px 0;cursor:pointer}.text-button:hover{text-decoration:underline}.button--compact{justify-self:start;min-height:42px;padding:9px 13px}.person-card .hours-row{background:#fff;padding-left:10px;padding-right:10px}.person-card .hours-row:first-child{border-top:1px solid #ebe7df}
.button{appearance:none;display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--blue);background:var(--blue);color:#fff;text-decoration:none;padding:13px 18px;font:inherit;font-weight:800;cursor:pointer;min-height:48px}
.button:hover{background:var(--blue-dark)}.button:disabled{opacity:.55;cursor:wait}.button--secondary{background:#fff;color:var(--ink);border-color:var(--ink)}
.actions{display:grid;gap:10px;margin-top:18px}.action{display:flex;justify-content:space-between;gap:14px;align-items:center;border-top:1px solid var(--line);padding-top:14px}.action:first-child{border-top:0;padding-top:0}.action a{font-weight:800;color:var(--blue)}
[hidden]{display:none!important}
.calendar-preview{background:var(--panel)}.calendar-preview .shell{width:100%;padding:0}.calendar-preview .panel{margin:0;padding:20px;border:0}.calendar-preview .skip-link{display:none}.calendar-preview form{margin-top:14px}.calendar-preview #calendar-preview-controls{display:grid;gap:14px}.calendar-preview h2{font-size:1.5rem}
.hours-extras,.add-hours-window{grid-column:1/-1}.hours-extras{display:grid;gap:8px}.hours-extra-window{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:end}.hours-extra-window input{min-width:0;width:100%}.add-hours-window{justify-self:start}.hours-extra-window button{min-height:40px}
@media(max-width:700px){.hours-extra-window{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hours-extra-window button{grid-column:1/-1;justify-self:start}.product-label{max-width:45%;font-size:.9rem}}
@media(max-width:700px){.grid.two{grid-template-columns:1fr}.hours-row{grid-template-columns:1fr 1fr}.hours-row .day{grid-column:1/-1}.hours-row .sep{display:none}.repeat-card-header{grid-template-columns:1fr}.remove-repeat{justify-self:start}.topbar{min-height:68px}.brand img{width:155px}}
.choice input{width:auto;flex-shrink:0}
.calendar-preview > footer{display:none!important}

/* Shared compact calendar form for setup and both preview hosts. */
#scheduling-form{gap:12px;margin-top:14px}
#scheduling-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;align-items:start}
#scheduling-fields>fieldset,#scheduling-fields>details{grid-column:1/-1;min-width:0}
.calendar-section>summary{font-weight:800;font-size:.94rem;cursor:pointer;min-height:40px;padding:8px 0;border-top:1px solid var(--line)}
.calendar-section>summary:hover{color:var(--blue)}
.calendar-section>.repeat-list{margin:6px 0}
#scheduling-fields>label:first-child{grid-column:1/-1}
#scheduling-fields input,#scheduling-fields select{min-width:0;min-height:40px;padding:8px 10px;margin-top:4px}
#scheduling-fields input[type=time]{margin-top:0}
#scheduling-fields .day input{min-height:0;width:17px;height:17px;margin:0}
#scheduling-fields label{font-size:.88rem}
#scheduling-fields .help{font-size:.82rem;margin:4px 0 8px;font-weight:400}
#scheduling-fields legend{font-size:.94rem;margin-bottom:6px}
#scheduling-fields .repeat-list,#scheduling-fields .setup-group{gap:8px}
#scheduling-fields .repeat-card{padding:10px;gap:8px}
#scheduling-fields .appointment-type-row{grid-template-columns:minmax(0,1fr) auto;align-items:end}
#scheduling-fields .appointment-type-row .grid.two{grid-template-columns:minmax(0,1fr) minmax(110px,.55fr);gap:10px}
#scheduling-fields .repeat-card-header{gap:8px;grid-template-columns:minmax(0,1fr) auto}
#scheduling-fields .person-card .hours-row{padding:0;background:#fff}
#scheduling-fields .hours-row .day{padding-bottom:0;font-size:.82rem}
#scheduling-fields .hours-row .sep{padding-bottom:10px}
#scheduling-fields .text-button{padding:5px 0;min-height:36px;font-size:.82rem}
#scheduling-fields .button--compact{min-height:40px;padding:7px 10px;font-size:.84rem}
.calendar-preview .panel{padding:14px}
.calendar-preview h2{font-size:1.18rem;line-height:1.2;margin-bottom:6px}
.calendar-preview .panel>.help{font-size:.84rem;margin-bottom:10px}
.calendar-preview .eyebrow{font-size:.7rem;margin-bottom:4px}
.calendar-preview #calendar-preview-controls{gap:8px}
.calendar-preview .choice{padding:9px 10px;font-size:.9rem}
.calendar-preview #calendar-preview-type{padding:9px 10px;min-height:42px;margin-top:4px}
.calendar-preview #scheduling-submit,.calendar-preview #calendar-skip{min-height:42px;padding:9px 12px;font-size:.88rem}
.calendar-preview #scheduling-status:empty{display:none}
@media(max-width:480px){
 .calendar-preview .panel{padding:10px}
 #scheduling-fields{gap:10px;grid-template-columns:minmax(0,1fr)}
 #scheduling-fields .appointment-type-row{grid-template-columns:minmax(0,1fr)}
 #scheduling-fields .appointment-type-row .remove-repeat{grid-column:1;justify-self:end}
 #scheduling-fields .appointment-type-row .grid.two{grid-template-columns:minmax(0,1fr) 110px}
 #scheduling-fields input,#scheduling-fields select,#calendar-preview-type{font-size:16px}
 #scheduling-fields .repeat-card-header{grid-template-columns:minmax(0,1fr) auto;align-items:end}
 #scheduling-fields .remove-repeat{grid-column:2}
 .hours-row>summary strong{min-width:75px;font-size:.82rem}
 .hours-summary{font-size:.78rem}
 .hours-editor{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:4px 6px 8px}
 .hours-editor .sep{display:none}
 #scheduling-fields>.hours .help{margin-bottom:4px}
}
