:root{--ground: rgb(240 240 242);--surface: #ffffff;--hairline: rgb(234 234 234);--text: rgb(28 32 36);--text-muted: rgb(96 100 108);--text-faint: rgb(128 131 141);--veil: rgba(201 202 207 / .15);--brand: rgb(0 68 61);--brand-contrast: #ffffff;--ai: #7c3aed;--ai-soft: #ede9fe;--danger: #dc2626;--shadow-card: 0 1px 2px rgba(20, 25, 20, .04), 0 6px 16px -8px rgba(20, 25, 20, .1);--radius-card: 12px;--radius-well: 10px;--radius-control: 8px;--radius-chip: 6px;--font: "Nunito", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--ease: .15s ease;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--bg: var(--surface);--bg-subtle: var(--ground);--border: var(--hairline);--radius: var(--radius-well);--radius-sm: var(--radius-control);--shadow: var(--shadow-card);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground: rgb(18 18 19);--surface: rgb(23 23 26);--hairline: rgb(38 38 42);--text: rgb(237 238 240);--text-muted: rgb(176 180 186);--text-faint: rgb(119 123 132);--veil: rgba(139 147 182 / .15);--brand: rgb(24 183 122);--ai-soft: #3b2d63;--shadow-card: none;color-scheme:dark}}:root[data-theme=dark]{--ground: rgb(18 18 19);--surface: rgb(23 23 26);--hairline: rgb(38 38 42);--text: rgb(237 238 240);--text-muted: rgb(176 180 186);--text-faint: rgb(119 123 132);--veil: rgba(139 147 182 / .15);--brand: rgb(24 183 122);--ai-soft: #3b2d63;--shadow-card: none;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--surface);color:var(--text);font:400 14px/1.5 var(--font);-webkit-font-smoothing:antialiased}h1{font-size:20px;line-height:1.3;margin:0;font-weight:500;letter-spacing:-.01em}h2{font-size:15px;line-height:1.4;margin:0 0 var(--space-3);font-weight:500}h3{font-size:14px;margin:0;font-weight:500}p{margin:0}b,strong{font-weight:600}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small,.meta{font-size:12px}.meta{color:var(--text-muted)}.num{font-variant-numeric:tabular-nums}.error{color:var(--danger)}.eyebrow{display:block;margin:0 0 var(--space-3);font-size:11px;line-height:1.4;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.page{min-height:100vh;display:flex;flex-direction:column}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--hairline)}.page-header p{color:var(--text-muted);margin-top:2px}.readable{max-width:720px}.panel{padding:var(--space-4)}.panel.stack{gap:0}.section,.card{padding:var(--space-5) var(--space-6);background:none;border:0;border-radius:0;box-shadow:none}.section+.section,.card+.card,.section+.card,.card+.section{border-top:1px solid var(--hairline)}.panel .section,.panel .card{padding:var(--space-4) 0}.panel>:first-child.section,.panel>:first-child.card{padding-top:0}.panel>:last-child.section,.panel>:last-child.card{padding-bottom:0}.section .section,.section .card,.card .card,.card .section{padding:0}:is(.section,.card) :is(.section,.card)+:is(.section,.card){margin-top:var(--space-4);padding-top:var(--space-4)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.section-header>.eyebrow,.section-header>h2{margin:0}.card.compact{padding-block:var(--space-3)}.center-page{min-height:100vh;display:grid;place-items:center;padding:var(--space-4)}.card.narrow{max-width:420px;display:grid;gap:var(--space-2)}.stack{display:grid;gap:var(--space-3)}.stack-tight{display:grid;gap:var(--space-1)}.row{display:flex;gap:var(--space-2);align-items:center}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.inset{background:var(--ground);border:1px solid var(--hairline);border-radius:var(--radius-well);padding:var(--space-3) 14px;box-shadow:none}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3)}.stat{background:var(--ground);border:1px solid var(--hairline);border-radius:var(--radius-well);padding:var(--space-3) 14px;display:grid;gap:2px}.stat .eyebrow{margin:0}.stat-value{font-size:20px;line-height:1.3;font-weight:500;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.rows,.list{list-style:none;margin:0;padding:0;display:block}.row-item,.list-item{display:grid;gap:2px;padding:10px var(--space-2);margin:0 calc(-1 * var(--space-2));border:0;border-bottom:1px solid var(--hairline);border-radius:0;background:none;box-shadow:none;transition:background-color var(--ease)}.row-item:last-child,.list-item:last-child{border-bottom:0}.row-item:hover,.list-item:hover{background:var(--veil)}.row-item.split{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.row-item.clickable,button.row-item{cursor:pointer}button.row-item{width:calc(100% + 2 * var(--space-2));font:inherit;color:inherit;text-align:left}.facts{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-3);margin:0}.facts dt{color:var(--text-muted)}.facts dd{margin:0;min-width:0;overflow-wrap:anywhere}.input{flex:1;min-width:0;padding:7px 10px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--ground);color:var(--text);font:inherit;transition:border-color var(--ease),background-color var(--ease)}textarea.input{resize:vertical;min-height:72px}.input::placeholder{color:var(--text-faint)}.input:focus{outline:2px solid color-mix(in srgb,var(--brand) 30%,transparent);outline-offset:0;border-color:var(--brand)}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:var(--radius-control);border:1px solid var(--hairline);background:transparent;color:var(--text);font:inherit;font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color var(--ease),border-color var(--ease),color var(--ease)}.button:hover{background:var(--veil)}.button.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)}.button.primary:hover{background:color-mix(in srgb,var(--brand) 88%,var(--text))}.button.ghost{border-color:transparent}.button.danger{color:var(--danger)}.button.small{padding:4px 10px;font-size:12px}.button:focus-visible,.link:focus-visible,button.row-item:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 45%,transparent);outline-offset:1px}.button:disabled{opacity:.5;cursor:default}.button:disabled:hover{background:transparent}.button.primary:disabled:hover{background:var(--brand)}.link{background:none;border:0;padding:0;color:var(--brand);cursor:pointer;font:inherit;text-decoration:underline}.badge,.chip{display:inline-flex;align-items:center;gap:4px;background:var(--ground);border:1px solid var(--hairline);border-radius:var(--radius-chip);padding:1px 8px;font-size:12px;line-height:1.5;color:var(--text-muted);white-space:nowrap}.badge.brand,.chip.brand{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 30%,transparent);background:color-mix(in srgb,var(--brand) 8%,transparent)}.badge.ai,.chip.ai{color:color-mix(in srgb,var(--ai) 70%,var(--text));border-color:color-mix(in srgb,var(--ai) 30%,transparent);background:var(--ai-soft)}.badge.danger,.chip.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent);background:color-mix(in srgb,var(--danger) 8%,transparent)}.dot{display:inline-block;width:8px;height:8px;border-radius:999px;background:var(--text-faint);flex:none}.dot.brand{background:var(--brand)}.dot.ai{background:var(--ai)}.dot.danger{background:var(--danger)}@media(max-width:480px){.page-header{padding:var(--space-4)}.page>.section,.page>.card{padding:var(--space-4)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}:root{--row-h: 44px;--st-pending: #d9a400;--st-confirmed: #16a34a;--st-cancelled: #dc2626;--st-attended: #2563eb;--st-absent: #6b7280}.agenda-page{min-height:100vh}.agenda-header{flex-wrap:wrap}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--hairline)}.toolbar-title{margin:0 0 0 var(--space-2);font-size:15px;text-transform:none}.toolbar-title:first-letter{text-transform:uppercase}.date-input{flex:none;width:150px}.prof-filter{flex:none;width:auto;min-width:190px}.segmented{display:inline-flex;border:1px solid var(--hairline);border-radius:var(--radius-control);overflow:hidden}.segmented button{border:0;background:transparent;color:var(--text-muted);font:inherit;padding:6px 12px;cursor:pointer;transition:background-color var(--ease),color var(--ease)}.segmented button+button{border-left:1px solid var(--hairline)}.segmented button:hover{background:var(--veil)}.segmented button.active{background:var(--brand);color:var(--brand-contrast)}.day-wrap{overflow:auto}.holiday-banner,.print-holiday{margin:var(--space-3) var(--space-6) 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-well);background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent)}.day-grid{display:grid;position:relative;margin:var(--space-3) var(--space-6) var(--space-6);min-width:min-content}.grid-corner{grid-row:1;grid-column:1;position:sticky;top:0;background:var(--surface);z-index:3}.col-head{position:sticky;top:0;z-index:3;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--hairline);font-weight:500;white-space:nowrap}.time-cell{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums;padding:2px 8px 0 0;text-align:right;border-top:1px solid var(--hairline)}.time-cell.now{color:var(--brand);font-weight:600}.cell{border-top:1px solid var(--hairline);border-left:1px solid var(--hairline);position:relative;min-width:0;transition:background-color var(--ease);overflow:hidden}.cell.free{cursor:pointer;border-left:3px solid var(--hairline)}.cell.free:hover{background:var(--veil)}.cell.outside{cursor:pointer;background-image:radial-gradient(color-mix(in srgb,var(--text-faint) 45%,transparent) 1px,transparent 1px);background-size:8px 8px;background-color:var(--ground)}.cell.outside:hover{background-color:var(--veil)}.cell.blocked{background:repeating-linear-gradient(135deg,var(--ground),var(--ground) 6px,color-mix(in srgb,var(--text-faint) 18%,var(--ground)) 6px,color-mix(in srgb,var(--text-faint) 18%,var(--ground)) 12px);cursor:not-allowed}.cell.holiday{background:color-mix(in srgb,var(--danger) 6%,var(--surface))}.owner-label,.blocked-label{position:absolute;top:2px;right:6px;font-size:11px;color:var(--text-faint);white-space:nowrap;pointer-events:none}.blocked-label{left:6px;right:auto;font-weight:600;color:var(--text-muted)}.appt{position:relative;z-index:1;margin:2px;padding:3px 6px;min-width:0;text-align:left;font:inherit;font-size:12px;line-height:1.3;color:var(--text);border:1px solid transparent;border-left:4px solid var(--text-faint);border-radius:6px;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;gap:1px;transition:filter var(--ease)}.appt:hover{filter:brightness(.97)}.appt-line{display:flex;gap:4px;align-items:center;white-space:nowrap;overflow:hidden}.appt-name{overflow:hidden;text-overflow:ellipsis;font-weight:500}.appt-meta{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repeat{display:inline-flex;color:var(--text-muted)}.flags{display:flex;flex-wrap:wrap;gap:3px}.flag{font-size:10px;padding:0 5px;border-radius:4px;background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.st-pending{background:color-mix(in srgb,var(--st-pending) 22%,var(--surface));border-color:color-mix(in srgb,var(--st-pending) 45%,transparent)}.st-confirmed{background:color-mix(in srgb,var(--st-confirmed) 20%,var(--surface));border-color:color-mix(in srgb,var(--st-confirmed) 45%,transparent)}.st-cancelled{background:color-mix(in srgb,var(--st-cancelled) 12%,var(--surface));border-color:color-mix(in srgb,var(--st-cancelled) 35%,transparent);color:var(--text-muted)}.st-attended,.st-ob{background:color-mix(in srgb,var(--st-attended) 18%,var(--surface));border-color:color-mix(in srgb,var(--st-attended) 40%,transparent)}.st-absent{background:color-mix(in srgb,var(--st-absent) 18%,var(--surface));border-color:color-mix(in srgb,var(--st-absent) 35%,transparent);color:var(--text-muted)}.st-cancelled .appt-name,.st-absent .appt-name,.week-appt.st-cancelled,.week-appt.st-absent,.ob.st-cancelled span,.ob.st-absent span{text-decoration:line-through}.status-chip{display:inline-flex;align-items:center;padding:1px 8px;border-radius:var(--radius-chip);font-size:12px;border:1px solid;white-space:nowrap}.status-chip.st-cancelled,.status-chip.st-absent{text-decoration:line-through}.ob-strip{align-self:end;z-index:2;display:flex;gap:2px;margin:0 2px 2px;min-width:0}.ob{flex:1;min-width:0;height:12px;padding:0 4px;border:1px solid;border-radius:3px;font:inherit;font-size:9px;line-height:10px;color:var(--text);cursor:pointer;overflow:hidden;text-align:left;white-space:nowrap}.ob:hover{height:16px;line-height:14px}.week-grid{display:grid;margin:var(--space-3) var(--space-6) var(--space-6);border:1px solid var(--hairline);border-radius:var(--radius-well);overflow:hidden}.week-day{display:flex;flex-direction:column;min-width:0;min-height:360px}.week-day+.week-day{border-left:1px solid var(--hairline)}.week-day.holiday{background:color-mix(in srgb,var(--danger) 5%,var(--surface))}.week-head{display:grid;gap:2px;padding:var(--space-2) var(--space-3);border:0;border-bottom:1px solid var(--hairline);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.week-head:hover{background:var(--veil)}.week-head>span:first-child:first-letter{text-transform:uppercase}.week-day.today .week-head>span:first-child{color:var(--brand);font-weight:600}.week-body{flex:1;display:flex;flex-direction:column;gap:3px;padding:var(--space-2);cursor:pointer}.week-appt{text-align:left;font:inherit;font-size:12px;padding:3px 6px;border:1px solid;border-left-width:4px;border-radius:6px;color:var(--text);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-block{font-size:11px;padding:3px 6px;border-radius:6px;background:var(--ground);color:var(--text-muted)}.month{padding:var(--space-3) var(--space-6) var(--space-6)}.month-grid{display:grid;border-top:1px solid var(--hairline);border-left:1px solid var(--hairline)}.month-dow{padding:var(--space-2);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.month-cell{min-height:92px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:var(--space-2);border:0;border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--ease)}.month-cell:hover{background:var(--veil)}.month-cell.other{color:var(--text-faint)}.month-cell.holiday{background:color-mix(in srgb,var(--danger) 6%,var(--surface))}.month-num{display:inline-flex;align-items:center;gap:4px}.month-cell.today .month-num{background:var(--brand);color:var(--brand-contrast);border-radius:999px;padding:0 7px}.hol-icon{color:var(--danger);font-size:12px}.month-count{font-size:12px;color:var(--text-muted)}.month-dots{display:flex;gap:3px;align-items:center;margin-top:auto}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#0f12166b;display:flex;align-items:center;justify-content:center;padding:var(--space-3)}.modal{width:100%;max-width:520px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:0 18px 48px -12px #00000059;overflow:hidden}.modal.wide{max-width:820px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--hairline);flex:none}.modal-header h2{margin:0}.modal-tabs{padding:0 var(--space-5);border-bottom:1px solid var(--hairline);flex:none}.modal-body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--space-4) var(--space-5)}.modal-body .section{padding:var(--space-4) 0}.modal-body>.stack>.section:first-child,.modal-body>.section:first-child{padding-top:0}.modal-footer{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--hairline);background:var(--surface)}.footer-actions{width:100%}.tabs{display:flex;gap:var(--space-1);overflow-x:auto}.tab{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-muted);font:inherit;padding:10px 10px 8px;cursor:pointer;white-space:nowrap}.tab.active{color:var(--text);border-bottom-color:var(--brand)}.form{display:grid;gap:var(--space-3)}.field{display:grid;gap:4px;min-width:0;flex:1}.field>span:first-child{font-size:12px;color:var(--text-muted)}.field-row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-start}.field-row>*{flex:1 1 140px}.check{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}select.input{appearance:auto}.time-input{flex:0 0 110px}.color-input{width:36px;height:32px;padding:0;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--ground);cursor:pointer}.toggle{border:1px solid var(--hairline);background:transparent;color:var(--text-muted);border-radius:var(--radius-chip);padding:3px 10px;font:inherit;font-size:12px;cursor:pointer;transition:background-color var(--ease),color var(--ease)}.toggle.on{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)}.config-row{gap:var(--space-2)!important}.picked{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:6px 10px;border:1px solid var(--hairline);border-radius:var(--radius-control);background:var(--ground)}.combo{position:relative}.combo .input{width:100%}.combo-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:60;max-height:240px;overflow:auto;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-well);box-shadow:var(--shadow-card)}.combo-item{display:block;width:100%;text-align:left;padding:8px 10px;border:0;border-bottom:1px solid var(--hairline);background:transparent;color:inherit;font:inherit;cursor:pointer}.combo-item:last-child{border-bottom:0}.combo-item:hover{background:var(--veil)}.combo-create{color:var(--brand)}.inline-edit{border:0;background:transparent;color:inherit;font:inherit;padding:0;text-align:left;cursor:text;width:100%;border-radius:4px}.inline-edit:hover{background:var(--veil)}.changes{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:2px}button.row-item:disabled{cursor:default}.plain{border:0;background:transparent;color:inherit;font:inherit;padding:0;text-align:left;cursor:pointer;display:grid;gap:2px;width:100%}.panel-name{font-size:16px;margin-bottom:var(--space-2)}.panel .row-item{gap:6px}@media(max-width:640px){.toolbar{padding:var(--space-3) var(--space-4)}.day-grid,.week-grid{margin-left:var(--space-3);margin-right:var(--space-3)}.month{padding:var(--space-3)}.modal-backdrop{padding:0;align-items:stretch}.modal,.modal.wide{max-width:none;max-height:100vh;max-height:100dvh;border-radius:0}}.print-root{display:none}@media print{@page{margin:12mm}html,body{background:#fff!important;color:#000!important}.no-print,.modal-backdrop{display:none!important}.print-root{display:block;font-size:11pt;color:#000}.print-root h1{font-size:16pt;margin-bottom:4pt}.print-root h1:first-letter{text-transform:uppercase}.print-root table{width:100%;border-collapse:collapse;margin-top:10pt}.print-root th,.print-root td{border-bottom:1px solid #999;padding:4pt 6pt;text-align:left;vertical-align:top}.print-root th{font-size:9pt;text-transform:uppercase}.print-root tr.cancelled td{text-decoration:line-through;color:#555}.print-holiday{margin:8pt 0;border:1px solid #000;color:#000;background:none}}
