:root{--fb-bg: #efeff4;--fb-section: #ffffff;--fb-text: #000000;--fb-hint: #8a8a8f;--fb-link: #2481cc;--fb-button: #2481cc;--fb-button-text: #ffffff;--fb-destructive: #e5383b;--fb-separator: #d9d9de;--fb-header: #6d6d72;--fb-bar: #ffffff;--c-bg: var(--tg-theme-secondary-bg-color, var(--fb-bg));--c-section: var(--tg-theme-section-bg-color, var(--tg-theme-bg-color, var(--fb-section)));--c-bar: var(--tg-theme-bg-color, var(--fb-bar));--c-text: var(--tg-theme-text-color, var(--fb-text));--c-hint: var(--tg-theme-hint-color, var(--fb-hint));--c-subtitle: var(--tg-theme-subtitle-text-color, var(--c-hint));--c-section-header: var(--tg-theme-section-header-text-color, var(--fb-header));--c-link: var(--tg-theme-link-color, var(--fb-link));--c-accent: var(--tg-theme-button-color, var(--fb-button));--c-on-accent: var(--tg-theme-button-text-color, var(--fb-button-text));--c-destructive: var(--tg-theme-destructive-text-color, var(--fb-destructive));--c-separator: var(--tg-theme-section-separator-color, var(--fb-separator));--c-success: #31b545;--c-warning: #f0932b;--c-violet: #7a6ff0;--c-alert: #e5484d;--c-tint: #e8f1fa;--c-tint: color-mix(in srgb, var(--c-accent) 13%, transparent);--c-fill: rgba(120, 120, 128, .16);--c-pressed: rgba(120, 120, 128, .14);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-6: 24px;--s-8: 32px;--r-group: 12px;--r-control: 10px;--tabbar-height: 56px;--ease: cubic-bezier(.2, 0, 0, 1);font-family:var(--font);font-size:16px;line-height:1.35;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-variant-numeric:tabular-nums}@media(prefers-color-scheme:dark){:root{--fb-bg: #000000;--fb-section: #1c1c1e;--fb-text: #ffffff;--fb-hint: #98989e;--fb-link: #5aa7ea;--fb-button: #3e88f7;--fb-separator: #38383a;--fb-header: #8d8e93;--fb-bar: #1c1c1e;--c-success: #34c06a;--c-tint: #1f3347;--c-tint: color-mix(in srgb, var(--c-accent) 22%, transparent);color-scheme:dark}}body{margin:0;background:var(--c-bg)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}.app{min-height:100vh;padding-bottom:calc(var(--s-6) + env(safe-area-inset-bottom,0px))}.app.with-tabbar{padding-bottom:calc(var(--tabbar-height) + var(--s-6) + env(safe-area-inset-bottom,0px))}.page-header{padding:var(--s-4) var(--s-4) var(--s-2)}.page-header h1{margin:0;font-size:28px;font-weight:700;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}.page-header p{margin:var(--s-1) 0 0;font-size:14px;color:var(--c-hint)}.screen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;overflow-y:auto;overscroll-behavior:contain;background:var(--c-bg);padding-bottom:calc(var(--s-8) + 72px + env(safe-area-inset-bottom,0px));animation:slide-in .22s var(--ease)}@keyframes slide-in{0%{transform:translate(24px);opacity:0}}.section{margin-top:var(--s-4)}.section-title{margin:0;padding:var(--s-2) calc(var(--s-4) + var(--s-4)) var(--s-2);font-size:13px;font-weight:400;text-transform:uppercase;letter-spacing:.04em;color:var(--c-section-header)}.section-footer{margin:0;padding:var(--s-2) calc(var(--s-4) + var(--s-4)) 0;font-size:13px;color:var(--c-hint)}.group{margin:0 var(--s-4);border-radius:var(--r-group);overflow:hidden;background:var(--c-section)}.row{position:relative;display:flex;align-items:center;gap:var(--s-3);min-height:48px;padding:0 var(--s-4)}.row+.row:before{content:"";position:absolute;top:0;right:0;left:var(--s-4);border-top:.5px solid var(--c-separator)}.row+.row.with-icon:before{left:calc(var(--s-4) + 30px + var(--s-3))}.row-main{display:flex;flex:1;align-items:center;gap:var(--s-3);min-width:0;min-height:48px;margin:0 calc(-1 * var(--s-4));padding:var(--s-2) var(--s-4);border:0;text-align:left;background:none;transition:background-color .12s var(--ease)}.row-main:has(+*){margin-right:0;padding-right:0}button.row-main:active{background:var(--c-pressed)}.row-icon{display:grid;flex:none;width:30px;height:30px;place-items:center;border-radius:8px;color:#fff}.row-icon .icon{width:18px;height:18px}.row-text{flex:1;min-width:0}.row-title{display:block;overflow-wrap:anywhere}.row-subtitle{display:block;margin-top:2px;font-size:14px;color:var(--c-hint);overflow-wrap:anywhere}.row-value{flex:none;max-width:50%;overflow:hidden;color:var(--c-hint);text-overflow:ellipsis;white-space:nowrap}.row-chevron{flex:none;width:18px;height:18px;margin-left:calc(-1 * var(--s-1));color:var(--c-hint);opacity:.6}.row.muted .row-title{color:var(--c-hint)}.row.accent .row-main{color:var(--c-link)}.row.destructive .row-main{justify-content:center;color:var(--c-destructive)}.row.destructive .row-text{text-align:center}.row-check{flex:none;width:20px;height:20px;color:var(--c-link)}.icon{width:22px;height:22px;flex:none}.badge{flex:none;padding:2px 10px;border-radius:999px;font-size:13px;color:var(--c-hint);background:var(--c-fill)}.badge.pending,.badge.warning{color:var(--c-warning);background:color-mix(in srgb,var(--c-warning) 14%,transparent)}.badge.confirmed,.badge.success{color:var(--c-success);background:color-mix(in srgb,var(--c-success) 14%,transparent)}textarea.field-input{display:block;min-height:96px;resize:vertical;font:inherit;font-size:16px;color:inherit}.field-input{box-sizing:border-box;width:100%;min-height:48px;padding:var(--s-3) var(--s-4);border:0;outline:none;background:none;font-size:16px}.field-input::placeholder,.row-input::placeholder{color:var(--c-hint);opacity:1}.group:focus-within:has(.field-input){box-shadow:inset 0 0 0 1.5px var(--c-accent)}.row-label{flex:1;min-width:0;white-space:nowrap}.row-input{flex:0 1 50%;min-width:0;min-height:44px;padding:0;border:0;outline:none;text-align:right;background:none;font-size:16px}.row-input:focus{color:var(--c-link)}select.row-input{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--c-hint);text-align-last:right}input[type=time].row-input{flex:none;min-width:80px}.switch{position:relative;flex:none;width:51px;height:31px;padding:0;border:0;border-radius:999px;background:var(--c-fill);transition:background-color .2s var(--ease)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #00000029,0 0 1px #0003;transition:transform .2s var(--ease)}.switch[aria-checked=true]{background:var(--c-success)}.switch[aria-checked=true]:after{transform:translate(20px)}.switch:disabled{opacity:.5}.stepper{display:flex;flex:none;align-items:center;border-radius:var(--r-control);background:var(--c-fill)}.stepper button{display:grid;width:44px;height:36px;place-items:center;padding:0;border:0;color:var(--c-link);background:none}.stepper button:disabled{color:var(--c-hint);opacity:.5}.stepper .icon{width:18px;height:18px}.stepper output{min-width:36px;font-weight:600;text-align:center}.chips{display:flex;flex-wrap:wrap;gap:var(--s-2);padding:var(--s-3) var(--s-4)}.chip{min-height:36px;padding:0 var(--s-4);border:0;border-radius:999px;background:var(--c-fill);transition:background-color .15s var(--ease)}.chip[aria-checked=true]{color:var(--c-on-accent);background:var(--c-accent)}.segmented{display:flex;margin:var(--s-2) var(--s-4) 0;padding:2px;border-radius:9px;background:var(--c-fill)}.segmented button{flex:1;min-height:32px;padding:0 var(--s-2);border:0;border-radius:7px;font-size:14px;background:none;transition:background-color .15s var(--ease)}.segmented button[aria-checked=true]{font-weight:600;background:var(--c-section);box-shadow:0 1px 3px #0000001f}.service-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);padding:var(--s-3) var(--s-4) 0}.service-head span{font-size:14px;color:var(--c-hint)}.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:var(--s-2);padding:var(--s-3) var(--s-4) var(--s-4)}.time{padding:var(--s-2) 0;border-radius:var(--r-control);font-weight:600;text-align:center;color:var(--c-link);background:var(--c-tint)}button.time{display:flex;flex-direction:column;align-items:center;border:0;font:inherit;font-weight:600;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease)}button.time small{font-size:11px;font-weight:400;opacity:.8}button.time[aria-checked=true]{color:var(--c-on-accent);background:var(--c-accent)}.slot-group+.slot-group{border-top:.5px solid var(--c-separator)}.service-card{margin-top:var(--s-4);margin-bottom:var(--s-4)}.service-card .service-head{padding-bottom:var(--s-3)}.service-note{margin:calc(-1 * var(--s-2)) 0 0;padding:0 var(--s-4) var(--s-3);font-size:14px;color:var(--c-hint)}.day-title{margin-top:var(--s-3)}.stack{display:flex;flex-direction:column;gap:var(--s-3)}.button{min-height:48px;padding:0 var(--s-6);border:0;border-radius:var(--r-group);font-weight:600;color:var(--c-on-accent);background:var(--c-accent);transition:opacity .12s var(--ease)}.button:active{opacity:.8}.button:disabled{opacity:.5}.main-button-fallback{position:fixed;right:0;bottom:0;left:0;z-index:20;padding:var(--s-2) var(--s-4) calc(var(--s-3) + env(safe-area-inset-bottom,0px));border-top:.5px solid var(--c-separator);background:var(--c-bar)}.main-button-fallback .button{width:100%}.back-link{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s-4) 0 var(--s-2);border:0;color:var(--c-link);background:none}.tabbar{position:fixed;right:0;bottom:0;left:0;z-index:5;display:grid;grid-auto-columns:1fr;grid-auto-flow:column;padding-bottom:env(safe-area-inset-bottom,0px);border-top:.5px solid var(--c-separator);background:var(--c-bar)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:var(--tabbar-height);padding:0;border:0;font-size:11px;color:var(--c-hint);background:none}.tab .icon{width:26px;height:26px}.tab[aria-current=page]{color:var(--c-accent)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-8) var(--s-6) var(--s-4);text-align:center}.empty-icon{display:grid;width:64px;height:64px;margin-bottom:var(--s-2);place-items:center;border-radius:50%;color:var(--c-link);background:var(--c-tint)}.empty-icon .icon{width:30px;height:30px}.empty h2{margin:0;font-size:18px}.empty p{max-width:32ch;margin:0 0 var(--s-3);font-size:15px;color:var(--c-hint)}.skeleton{display:block;height:14px;border-radius:7px;background:var(--c-fill);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.error{display:flex;gap:var(--s-2);margin:var(--s-3) var(--s-4) 0;font-size:14px;color:var(--c-destructive)}.error .icon{width:18px;height:18px;margin-top:1px}.centered{display:grid;min-height:70vh;place-items:center;padding:var(--s-6);text-align:center;color:var(--c-hint)}.splash{color:var(--c-text)}.brand-mark.spinning .brand-mark-sector{transform-origin:50px 62px;animation:sweep 1.6s linear infinite}@keyframes sweep{to{transform:rotate(360deg)}}.hero{display:flex;flex-direction:column;align-items:center;gap:var(--s-1);padding:var(--s-6) var(--s-4) var(--s-2);text-align:center}.avatar{display:grid;width:72px;height:72px;margin-bottom:var(--s-2);place-items:center;border-radius:50%;font-size:26px;font-weight:600;color:var(--c-on-accent);background:var(--c-accent)}.hero strong{font-size:20px}.hero span{font-size:14px;color:var(--c-hint)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.month-head{display:flex;align-items:center;justify-content:space-between;padding:0 var(--s-2) var(--s-2)}.month-head h2{margin:0;font-size:17px;font-weight:600;color:var(--c-text)}.month-arrow{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;color:var(--c-link);background:transparent}.month-arrow:active{background:var(--c-pressed)}.month-arrow svg{width:22px;height:22px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:var(--s-1);touch-action:pan-y;transition:opacity .15s}.month-grid.loading{opacity:.5}.month-weekday{padding:var(--s-1) 0;font-size:11px;text-align:center;color:var(--c-hint)}.month-day{display:flex;flex-direction:column;gap:2px;min-width:0;min-height:64px;padding:3px 2px;border:0;border-radius:8px;font:inherit;text-align:left;color:var(--c-text);background:transparent}.month-day:active{background:var(--c-pressed)}.month-day.selected{background:var(--c-tint)}.month-day.outside{opacity:.4}.month-number{align-self:center;min-width:22px;height:22px;border-radius:11px;font-size:13px;line-height:22px;text-align:center}.month-day.today .month-number{font-weight:600;color:var(--c-on-accent);background:var(--c-accent)}.month-chip{display:block;overflow:hidden;padding:1px 3px;border-radius:4px;font-size:10px;line-height:13px;white-space:nowrap;text-overflow:ellipsis;color:var(--c-tone);background:color-mix(in srgb,var(--c-tone) 16%,transparent)}.month-chip b{display:block;font-weight:600}.month-more{font-size:10px;text-align:center;color:var(--c-hint)}.planned{--c-tone: var(--c-accent)}.pending{--c-tone: var(--c-warning)}.alert{--c-tone: var(--c-alert)}.done{--c-tone: var(--c-success)}.missed{--c-tone: var(--c-hint)}.unmarked{--c-tone: var(--c-violet)}.month-chip.pending{background:transparent;box-shadow:inset 0 0 0 1px var(--c-tone)}.month-legend{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);padding:var(--s-2) var(--s-4) 0;font-size:12px;color:var(--c-hint)}.month-legend span{display:inline-flex;align-items:center;gap:5px}.month-dot{width:8px;height:8px;border-radius:50%;background:var(--c-tone)}.badge.alert{color:var(--c-alert);background:color-mix(in srgb,var(--c-alert) 14%,transparent)}.hint-alert{color:var(--c-alert)}.card-hint{margin:0 var(--s-4) var(--s-4);padding:var(--s-3) var(--s-4);border-radius:12px;font-size:14px;line-height:1.35;color:var(--c-text);background:color-mix(in srgb,var(--c-tone) 14%,transparent);box-shadow:inset 3px 0 0 var(--c-tone)}.month-hours{display:block;overflow:hidden;font-size:10px;line-height:13px;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:var(--c-subtitle)}.month-hours.off{color:var(--c-hint)}.month-day.custom .month-hours{font-weight:600;color:var(--c-accent)}.month-day.custom.off .month-hours{color:var(--c-hint)}.month-day.past{opacity:.55}.month-day.selected.past{opacity:1}.month-grid.compact .month-day{min-height:48px}.month-free{display:block;width:6px;height:6px;margin:2px auto 0;border-radius:50%;background:var(--c-accent)}.month-legend .month-free{display:inline-block;margin:0}.month-day.empty:not(.today) .month-number{color:var(--c-hint)}.month-dot.month-tag{width:14px;height:9px;border-radius:3px;background:color-mix(in srgb,var(--c-tone) 30%,transparent)}.month-grid.compact .month-chip{text-align:center}
