@font-face{font-family:Besley Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/besley-latin-ext-wght-normal-Dt3OBXk7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Besley Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/besley-latin-wght-normal-IX-hlgPH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground: #f2fcfa;--surface: #ffffff;--ink: #34554f;--ink-muted: #5c7570;--primary: #166c5c;--primary-sel: #a8d4cc;--accent-line: #55b097;--hairline: #d7e5e1;--warning: #8a5a00;--danger: #a32020;--radius: 6px;--radius-lg: 10px;--font-display: "Besley Variable", serif;--font-body: "Public Sans Variable", sans-serif;--font-mono: "IBM Plex Mono", monospace}body{background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;margin:0 0 16px}h1{font-size:2rem;line-height:1.15}h2{font-size:1.25rem;line-height:1.3}a{color:var(--primary)}a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button,input,select,textarea{font-family:var(--font-body);font-size:1rem;color:var(--ink)}button,input:not([type=checkbox]):not([type=radio]),select,textarea{appearance:none;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);padding:8px 12px}input[type=checkbox],input[type=radio]{accent-color:var(--primary);width:16px;height:16px}button{cursor:pointer;transition:filter .15s ease-out}button:hover:not(:disabled){filter:brightness(.96)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.45;cursor:not-allowed}label{font-family:var(--font-body);color:var(--ink)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button{font-family:var(--font-body)}button:disabled{opacity:.45;cursor:not-allowed}.nav-signout{display:inline-flex;align-items:center;gap:8px;background:var(--surface);color:var(--primary);border:1px solid var(--accent-line);border-radius:var(--radius);padding:4px 12px;cursor:pointer;transition:background-color .15s ease-out}.nav-signout:hover:not(:disabled){background:var(--ground)}.nav-spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--accent-line);border-top-color:transparent;border-radius:50%;animation:nav-spin .7s linear infinite}@keyframes nav-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-submit{display:inline-flex;align-items:center;gap:8px;background:var(--primary);color:var(--surface);border:none;border-radius:var(--radius);padding:8px 16px;cursor:pointer;transition:background-color .15s ease-out}.auth-submit:hover:not(:disabled){background:var(--ink)}.auth-submit-spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--surface);border-top-color:transparent;border-radius:50%;animation:nav-spin .7s linear infinite}@media(prefers-reduced-motion:reduce){.nav-signout,.auth-submit{transition:none}.nav-spinner,.auth-submit-spinner{animation:none}}.provider-calendar{display:flex;flex-direction:column;gap:16px}.provider-calendar [role=grid]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.appointment-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:44px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);padding:8px 12px;color:var(--ink);cursor:pointer;transition:background-color .15s ease-out}.appointment-cell:hover{background:var(--ground)}.appointment-cell:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.appointment-status{display:inline-block;border-radius:999px;padding:2px 8px;font-size:.875rem;color:var(--surface)}.appointment-status--confirmed{background:var(--primary)}.appointment-status--requested{background:var(--warning)}.appointment-status--completed{background:var(--primary)}.appointment-status--cancelled,.appointment-status--no_show{background:var(--danger)}.provider-calendar__empty{color:var(--ink-muted)}.provider-calendar__error{border:1px solid var(--danger);border-radius:var(--radius);padding:12px 16px;color:var(--danger)}.provider-calendar__error button{margin-top:8px}.provider-calendar__skeleton{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.provider-calendar__skeleton-cell{height:44px;border-radius:var(--radius);background:var(--hairline);animation:provider-calendar-shimmer 1.2s ease-in-out infinite}@keyframes provider-calendar-shimmer{0%,to{opacity:.6}50%{opacity:1}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(prefers-reduced-motion:reduce){.appointment-cell{transition:none}.provider-calendar__skeleton-cell{animation:none}}.availability-editor{background:var(--surface);border-radius:var(--radius-lg);padding:24px;max-width:100%;box-sizing:border-box}.availability-editor__header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.availability-editor__save{background:var(--primary);color:var(--surface);border:none;border-radius:var(--radius);padding:8px 16px;cursor:pointer;transition:filter .15s ease-out}.availability-editor__save:hover:not(:disabled){filter:brightness(.92)}.availability-editor__save:disabled{opacity:.45;cursor:not-allowed}.availability-editor__save[aria-busy=true]{opacity:1;cursor:default}.availability-row,.availability-override{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:8px 0;border-bottom:1px solid var(--hairline)}.availability-row__toggle{display:flex;align-items:center;gap:8px;min-width:64px;color:var(--ink)}.availability-row__placeholder{color:var(--ink-muted)}.availability-editor input[type=time],.availability-editor input[type=date],.availability-editor input[type=number]{border:1px solid var(--hairline);border-radius:var(--radius);padding:4px 8px;background:var(--surface);color:var(--ink)}.availability-editor input:focus-visible,.availability-editor button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.availability-editor input:disabled{opacity:.45;cursor:not-allowed}.availability-editor button[type=button]{background:var(--surface);color:var(--primary);border:1px solid var(--accent-line);border-radius:var(--radius);padding:4px 12px;cursor:pointer;transition:background-color .15s ease-out}.availability-editor button[type=button]:hover:not(:disabled){background:var(--ground)}.availability-editor .spinner{display:inline-block;width:12px;height:12px;margin-right:8px;border:2px solid var(--surface);border-top-color:transparent;border-radius:50%;animation:availability-editor-spin .7s linear infinite;vertical-align:middle;visibility:visible}.availability-editor .spinner--hidden{visibility:hidden;animation:none}.availability-editor__error{border:1px solid var(--danger);border-radius:var(--radius);padding:12px 16px;color:var(--danger);margin-bottom:16px}.availability-skeleton-row{height:44px;border-radius:var(--radius);background:var(--hairline);margin-bottom:8px;animation:availability-editor-shimmer 1.2s ease-in-out infinite}@keyframes availability-editor-shimmer{0%,to{opacity:.6}50%{opacity:1}}.availability-editor .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@keyframes availability-editor-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.availability-editor__save,.availability-editor button[type=button]{transition:none}.availability-editor .spinner,.availability-skeleton-row{animation:none}}.availability-editor--loading{height:320px;border-radius:var(--radius-lg);background:linear-gradient(90deg,var(--hairline) 25%,var(--ground) 50%,var(--hairline) 75%);background-size:200% 100%;animation:availability-loading-shimmer 1.2s ease-in-out infinite}@keyframes availability-loading-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.availability-editor--loading{animation:none}}.booking-flow,.booking-flow *,.booking-flow *:before,.booking-flow *:after{box-sizing:border-box}.booking-flow{display:flex;gap:24px;align-items:flex-start;max-width:1120px;margin:0 auto;padding:24px;font-family:var(--font-body);color:var(--ink)}.booking-flow__main{flex:1 1 auto;min-width:0;width:100%}.booking-week{display:flex;align-items:center;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.booking-week__days{display:flex;gap:8px;flex:1 1 auto;min-width:0}.booking-week__arrow{flex:0 0 auto;min-height:44px;min-width:44px;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-family:var(--font-body);cursor:pointer;transition:filter .15s ease-out}.booking-week__arrow:hover:not(:disabled){filter:brightness(.96)}.booking-week__arrow:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.booking-week__arrow:disabled{opacity:.45;cursor:not-allowed}.booking-day{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:48px;min-height:44px;padding:8px 12px;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-family:var(--font-body);cursor:pointer;transition:filter .15s ease-out}.booking-day:hover:not(:disabled){filter:brightness(.96)}.booking-day:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.booking-day.is-selected{background:var(--primary);border-color:var(--primary);color:var(--surface)}.booking-day:disabled{opacity:.45;cursor:not-allowed}.booking-day__weekday{font-size:.875rem}.booking-day__number{font-family:var(--font-mono);font-size:1rem}.booking-flow__zone-note{color:var(--ink-muted);font-size:.875rem;margin:16px 0}.booking-slot-groups{display:flex;flex-direction:column;gap:24px}.booking-slot-group__heading{font-family:var(--font-display);font-weight:600;font-size:1.25rem;line-height:1.3;margin:0 0 8px}.booking-slot-group__empty{color:var(--ink-muted);margin:0}.booking-slot-group__grid{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.booking-slot{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:44px;padding:8px 12px;font-family:var(--font-mono);font-size:.9375rem;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;transition:filter .15s ease-out}.booking-slot:hover:not(:disabled){filter:brightness(.96)}.booking-slot:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.booking-slot.is-selected{background:var(--primary-sel);border:1px solid var(--primary);color:var(--ink)}.booking-slot:disabled{opacity:.45;cursor:not-allowed}.booking-skeleton{height:44px;border-radius:var(--radius);background:var(--hairline);margin-bottom:8px}.booking-flow__error{color:var(--danger)}.booking-summary{flex:0 0 320px;position:sticky;top:24px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:16px}.booking-summary__facts,.booking-summary__time{margin:0;display:flex;flex-direction:column;gap:8px}.booking-summary__facts>div,.booking-summary__time>div{display:flex;justify-content:space-between;gap:8px}.booking-summary__facts dt,.booking-summary__time dt{color:var(--ink-muted);font-size:.875rem}.booking-summary__facts dd,.booking-summary__time dd{margin:0}.booking-summary__time dd{font-family:var(--font-mono)}.booking-summary__confirm{position:relative;min-height:44px;padding:8px 16px;border:none;border-radius:var(--radius);background:var(--primary);color:var(--surface);font-family:var(--font-body);font-weight:600;cursor:pointer;transition:filter .15s ease-out;display:flex;align-items:center;justify-content:center;gap:8px}.booking-summary__confirm:hover:not(:disabled){filter:brightness(.96)}.booking-summary__confirm:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.booking-summary__confirm:disabled{opacity:.45;cursor:not-allowed}.booking-spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--hairline);border-top-color:var(--surface);animation:booking-spin .6s linear infinite}.booking-spinner.is-hidden{visibility:hidden}@keyframes booking-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.booking-day,.booking-week__arrow,.booking-slot,.booking-summary__confirm{transition:none}.booking-spinner{animation:none}}@media(max-width:900px){.booking-flow{flex-direction:column}.booking-summary{flex-basis:auto;width:100%;position:sticky;top:auto;bottom:0}}@media(max-width:768px){.booking-flow{padding:16px;gap:16px}}.appointment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.appointment-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);padding:12px 16px}.appointment-skeleton{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.appointment-skeleton li{height:48px;border-radius:var(--radius);background:linear-gradient(90deg,var(--hairline) 25%,var(--ground) 50%,var(--hairline) 75%);background-size:200% 100%;animation:home-skeleton-shimmer 1.2s ease-in-out infinite}@keyframes home-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.status-pill{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius);font-size:.875rem;font-weight:600;color:var(--surface);white-space:nowrap}.status-pill--confirmed{background:var(--primary)}.status-pill--requested{background:var(--warning)}.status-pill--cancelled,.status-pill--no_show{background:var(--danger)}.status-pill--completed{background:var(--ink-muted)}.home-error{display:flex;align-items:center;gap:12px}@media(prefers-reduced-motion:reduce){.appointment-skeleton li{animation:none}}*,*:before,*:after{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}
