.booking-link{background:var(--color-accent);color:var(--color-accent-contrast);transition:transform var(--transition-hover), box-shadow var(--transition-hover);border-radius:999px;align-items:center;gap:.5rem;padding:.85rem 1.5rem;font-size:clamp(1rem,.9rem + .5vw,1.15rem);font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 4px 14px #00000026}.booking-link:hover,.booking-link:focus-visible{transform:translateY(-1px);box-shadow:0 6px 18px #0003}.booking-link:active{transform:translateY(0)}.booking-link__icon{font-size:clamp(1.15rem,1rem + .75vw,1.5rem)}.booking-link--disabled{opacity:.45;cursor:default;pointer-events:none}.calendar{width:100%}.calendar__header{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.35rem;margin-bottom:.5rem;display:flex}.calendar__pickers{flex-wrap:wrap;flex:auto;justify-content:center;align-items:center;gap:.35rem;min-width:0;display:flex}.calendar__picker{align-items:center;max-width:100%;display:inline-flex;position:relative}.calendar__select{appearance:none;font:inherit;font-family:var(--font-heading);text-transform:capitalize;color:var(--color-text);cursor:pointer;text-overflow:ellipsis;max-width:100%;transition:background-color var(--transition-hover), color var(--transition-hover);background:0 0;border:none;border-radius:.5rem;padding:.3rem 1.4rem .3rem .6rem;font-size:clamp(1rem,.9rem + .5vw,1.15rem);font-weight:700;line-height:1.2}.calendar__select:focus{background:var(--color-surface-hover)}.calendar__select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (hover:hover){.calendar__select:hover{background:var(--color-surface-hover)}}.calendar__select--month{min-width:6.5rem}.calendar__select--year{min-width:5rem}.calendar__picker-icon{pointer-events:none;opacity:.55;position:absolute;right:.4rem}.calendar__nav-btn{color:inherit;cursor:pointer;font:inherit;transition:background-color var(--transition-hover);background:0 0;border:none;border-radius:.5rem;flex:none;padding:.25rem .5rem;font-size:clamp(1.15rem,1rem + .75vw,1.5rem);line-height:1}.calendar__nav-btn:hover,.calendar__nav-btn:focus-visible{background:var(--color-surface-hover)}.calendar__today-row{justify-content:center;margin-bottom:.75rem;display:flex}.calendar__today-btn{font:inherit;border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;transition:background-color var(--transition-hover), border-color var(--transition-hover), color var(--transition-hover), opacity var(--transition-hover);background:0 0;border-radius:999px;padding:.25rem .9rem;font-size:clamp(.75rem,.7rem + .25vw,.85rem)}.calendar__today-btn:hover,.calendar__today-btn:focus-visible{background:var(--color-surface-hover)}.calendar__today-btn--inactive{border-color:var(--color-border);color:inherit;opacity:.45;cursor:default}.calendar__weekdays{grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.35rem;display:grid}.calendar__week{grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}.calendar__weekday{text-align:center;opacity:.65;font-size:clamp(.75rem,.7rem + .25vw,.85rem);font-weight:600}.calendar__grid{flex-direction:column;gap:.25rem;display:flex}.calendar__day{aspect-ratio:1;border:1px solid var(--color-border);background:var(--color-surface);color:inherit;font:inherit;cursor:default;transition:background-color var(--transition-hover), border-color var(--transition-hover), color var(--transition-hover), box-shadow var(--transition-hover), filter var(--transition-hover);border-radius:.6rem;justify-content:center;align-items:center;display:flex;position:relative}.calendar__day--outside{opacity:.3}.calendar__day--selectable{cursor:pointer}.calendar__day--selectable:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (hover:hover){.calendar__day--hoverable:hover{background:var(--color-day-hover-bg);border-style:solid;border-color:var(--color-day-hover-border);color:var(--color-text)}.calendar__day--selected:hover{filter:brightness(1.08)}}.calendar__day--last-week{background:var(--color-day-hint-bg);border-color:var(--color-day-hint-border);border-style:dashed}.calendar__day--selected{background:var(--color-day-selected-bg);border-color:var(--color-day-selected-bg);color:var(--color-day-selected-text);font-weight:700}.calendar__day--selected:after{content:"";background:currentColor;border-radius:50%;width:.3rem;height:.3rem;margin-left:-.15rem;position:absolute;bottom:.3rem;left:50%}.calendar__day--today{box-shadow:0 0 0 2px var(--color-today-ring);font-weight:700}.calendar__legend{opacity:.85;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.35rem 1rem;margin:.75rem 0 0;padding:0;font-size:clamp(.75rem,.7rem + .25vw,.85rem);list-style:none;display:flex}.calendar__legend-item{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.calendar__legend-dot{border:1px solid #0000;border-radius:.25rem;flex:none;width:.8rem;height:.8rem;display:inline-block}.calendar__legend-dot--selected{background:var(--color-day-selected-bg);border-color:var(--color-day-selected-bg)}.calendar__legend-dot--hint{background:var(--color-day-hint-bg);border-color:var(--color-day-hint-border);border-style:dashed}.calendar__legend-dot--today{background:var(--color-surface);box-shadow:0 0 0 2px var(--color-today-ring)}.settings{flex-direction:column;gap:1rem;width:100%;display:flex}.settings__row{justify-content:space-between;align-items:center;gap:.75rem;font-size:clamp(.85rem,.78rem + .35vw,.95rem);display:flex}.settings__row--stacked{flex-direction:column;align-items:stretch}.settings__label{font-weight:600}.settings__time-input{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:inherit;border-radius:.5rem;padding:.5rem .6rem}.settings__url-input{width:100%;font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:inherit;border-radius:.5rem;padding:.5rem .6rem}.settings__url-input::placeholder{color:var(--color-text-muted)}.settings__hint{opacity:.7;font-size:clamp(.75rem,.7rem + .25vw,.85rem)}.settings__switch{width:1.5rem;height:1.5rem;accent-color:var(--color-accent);cursor:pointer;margin:0}.settings__status{border:1px solid var(--color-border);border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.85rem;display:flex}.settings__status-head{align-items:center;gap:.5rem;margin:0;font-size:clamp(.85rem,.78rem + .35vw,.95rem);font-weight:700;display:flex}.settings__status-dot{border-radius:50%;flex:none;width:.7rem;height:.7rem;display:inline-block}.settings__status-dot--granted{background:var(--color-status-active)}.settings__status-dot--default{background:var(--color-status-pending)}.settings__status-dot--denied{background:var(--color-status-blocked)}.settings__status-dot--unsupported{background:var(--color-status-unsupported)}.settings__status-dot--off{background:var(--color-status-off)}.settings__status-label{line-height:1.2}.settings__status-text{opacity:.8;margin:0;font-size:clamp(.75rem,.7rem + .25vw,.85rem);line-height:1.45}.settings__notify-btn{font:inherit;border:1px solid var(--color-accent);min-height:2.75rem;color:var(--color-accent);cursor:pointer;transition:background-color var(--transition-hover), border-color var(--transition-hover), color var(--transition-hover);background:0 0;border-radius:999px;align-self:flex-start;padding:.5rem 1rem}.settings__notify-btn:hover,.settings__notify-btn:focus-visible{background:var(--color-surface-hover)}@keyframes settings-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes settings-modal-slide-in{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}.settings-modal{z-index:100;background:#00000073;justify-content:center;align-items:flex-end;padding:1rem;animation:.18s settings-modal-fade-in;display:flex;position:fixed;inset:0}.settings-modal__dialog{width:100%;max-width:26rem;max-height:calc(100dvh - 2rem);padding:1.25rem;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom));background:var(--color-surface);color:var(--color-text);border-radius:1rem;outline:none;flex-direction:column;gap:1rem;animation:.2s settings-modal-slide-in;display:flex;position:relative;overflow-y:auto;box-shadow:0 2px 10px #00000014}.settings-modal__header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.settings-modal__title{font-family:var(--font-heading);margin:0;font-size:clamp(1rem,.9rem + .5vw,1.15rem)}.settings-modal__close{border:1px solid var(--color-border);width:2.75rem;height:2.75rem;color:inherit;cursor:pointer;background:0 0;border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex}.settings-modal__close:hover,.settings-modal__close:focus-visible{background:var(--color-surface-hover)}.settings-modal__close-icon{display:block}.settings-modal__body{text-align:left;flex-direction:column;gap:1rem;display:flex}@media (width>=30rem){.settings-modal{align-items:center;padding:2rem 1rem}}@media (prefers-reduced-motion:reduce){.settings-modal,.settings-modal__dialog{animation:none}}.theme-toggle{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;flex:none;align-items:center;gap:.1rem;padding:.2rem;display:inline-flex;box-shadow:0 2px 10px #00000014}.theme-toggle__option{width:2.35rem;height:2.35rem;color:inherit;cursor:pointer;transition:background-color var(--transition-hover);background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle__option:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (hover:hover){.theme-toggle__option:hover{background:var(--color-surface-hover)}}.theme-toggle__option--active{background:var(--color-accent)}.theme-toggle__emoji{width:1.25rem;font-family:var(--font-emoji);text-align:center;filter:grayscale();opacity:.55;transition:filter var(--transition-hover), opacity var(--transition-hover);font-size:clamp(1rem,.9rem + .5vw,1.15rem);line-height:1.25rem;display:block}.theme-toggle__emoji--active{filter:none;opacity:1}.app-shell{width:100%;max-width:32rem;padding:calc(1.25rem + env(safe-area-inset-top)) 1.25rem calc(3rem + env(safe-area-inset-bottom));text-align:center;flex-direction:column;align-items:center;gap:1.5rem;margin-inline:auto;display:flex}.app-shell__header{justify-content:space-between;align-items:center;gap:.75rem;width:100%;display:flex}.app-shell__heading{flex-direction:column;gap:.15rem;min-width:0;display:flex}.app-shell__title{font-family:var(--font-heading);text-align:left;margin:0;font-size:clamp(1.5rem,1.05rem + 3vw,2.5rem);line-height:1.15}.app-shell__claim{font-family:var(--font-heading);opacity:.7;text-align:left;margin:0;font-size:clamp(.85rem,.78rem + .35vw,.95rem);font-weight:600}.app-shell__subtitle{opacity:.75;margin:0;font-size:clamp(.85rem,.78rem + .35vw,.95rem)}.app-shell__card{background:var(--color-surface);border-radius:1rem;width:100%;padding:1.25rem;box-shadow:0 2px 10px #00000014}.app-shell__notice{border:1px solid var(--color-status-pending);background:var(--color-surface);text-align:center;border-radius:1rem;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;width:100%;margin:0;padding:.85rem 1rem;font-size:clamp(.85rem,.78rem + .35vw,.95rem);display:flex}.app-shell__notice-text{line-height:1.4}.app-shell__notice-btn{font:inherit;border:1px solid var(--color-accent);background:var(--color-accent);min-height:2.75rem;color:var(--color-accent-contrast);cursor:pointer;transition:background-color var(--transition-hover), border-color var(--transition-hover), filter var(--transition-hover);border-radius:999px;padding:.5rem 1rem;font-weight:600}.app-shell__notice-btn:hover,.app-shell__notice-btn:focus-visible{filter:brightness(1.05)}.app-shell__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.app-shell__settings-btn{border:1px solid var(--color-border);background:var(--color-surface);width:3rem;height:3rem;color:inherit;cursor:pointer;transition:transform var(--transition-hover), box-shadow var(--transition-hover);border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative;box-shadow:0 4px 14px #00000026}.app-shell__settings-btn:hover,.app-shell__settings-btn:focus-visible{transform:translateY(-1px);box-shadow:0 6px 18px #0003}.app-shell__settings-btn:active{transform:translateY(0)}.app-shell__settings-icon{width:1.5rem;height:1.5rem;font-family:var(--font-emoji);font-variant-emoji:emoji;text-align:center;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:clamp(1.15rem,1rem + .75vw,1.5rem);line-height:1;display:flex}.app-shell__settings-dot{border:2px solid var(--color-surface);z-index:1;border-radius:999px;min-width:1rem;height:1rem;padding:0 .2rem;position:absolute;top:-.3rem;right:-.3rem}.app-shell__settings-dot--granted{background:var(--color-badge-active)}.app-shell__settings-dot--default{background:var(--color-status-pending)}.app-shell__settings-dot--denied{background:var(--color-status-blocked)}.app-shell__settings-dot--unsupported{background:var(--color-status-unsupported)}.app-shell__settings-dot--off{background:var(--color-status-off)}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../../node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../../node_modules/@fontsource/space-grotesk/files/space-grotesk-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Hack;font-style:normal;font-weight:400;font-display:swap;src:url(../../node_modules/hack-font/build/web/fonts/hack-regular-subset.woff2)format("woff2")}@font-face{font-family:Hack;font-style:normal;font-weight:700;font-display:swap;src:url(../../node_modules/hack-font/build/web/fonts/hack-bold-subset.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-bg:#faf6ec;--color-dot:#2aa3b073;--color-surface:#fff;--color-surface-hover:#eef2f0;--color-border:#d7ddda;--color-text:#1c2622;--color-text-muted:#7d8883;--color-accent:#b03a0f;--color-accent-contrast:#fff;--color-day-selected-bg:#12717c;--color-day-selected-text:#fff;--color-day-hint-bg:#e7ebf0;--color-day-hint-border:#b9c4d0;--color-day-hover-bg:#dfe5ea;--color-day-hover-border:#b9c4d0;--color-today-ring:#d97706;--color-status-active:#17794e;--color-status-pending:#d97706;--color-status-blocked:#b3261e;--color-status-unsupported:#6b7280;--color-badge-active:#d92d20;--color-status-off:#94a3b8;--confetti-color-1:#f94144;--confetti-color-2:#f3722c;--confetti-color-3:#f8961e;--confetti-color-4:#f9c74f;--confetti-color-5:#90be6d;--confetti-color-6:#43aa8b;--confetti-color-7:#577590;--confetti-color-8:#a25afd;--dot-radius:1.25px;--dot-grid:24px;--font-heading:Space Grotesk, Segoe UI, system-ui, -apple-system, blinkmacsystemfont, Helvetica Neue, arial, sans-serif;--font-body:Hack, ui-monospace, sfmono-regular, SF Mono, menlo, consolas, Liberation Mono, monospace;--font-emoji:Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji, sans-serif;--transition-hover:.3s ease;font-family:var(--font-body)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#2c2118;--color-dot:#f6a35c3d;--color-surface:#3a2c20;--color-surface-hover:#47372a;--color-border:#6b5640;--color-text:#f4ead9;--color-text-muted:#a8927a;--color-accent:#f5793b;--color-accent-contrast:#2a1206;--color-day-selected-bg:#2f6b4a;--color-day-selected-text:#f4ead9;--color-day-hint-bg:#4a3b28;--color-day-hint-border:#7a6442;--color-day-hover-bg:#55442f;--color-day-hover-border:#7a6442;--color-today-ring:#ffd75e;--color-status-active:#4caf7d;--color-status-pending:#fbbf24;--color-status-blocked:#f2b8b5;--color-status-unsupported:#9aa4af;--color-badge-active:#f97066;--color-status-off:#64748b;--confetti-color-1:#39ff14;--confetti-color-2:#ff6ec7;--confetti-color-3:#04d9ff;--confetti-color-4:#fff01f;--confetti-color-5:#ff073a;--confetti-color-6:#bc13fe;--confetti-color-7:#ff9f1c;--confetti-color-8:#0fff95}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#2c2118;--color-dot:#f6a35c3d;--color-surface:#3a2c20;--color-surface-hover:#47372a;--color-border:#6b5640;--color-text:#f4ead9;--color-text-muted:#a8927a;--color-accent:#f5793b;--color-accent-contrast:#2a1206;--color-day-selected-bg:#2f6b4a;--color-day-selected-text:#f4ead9;--color-day-hint-bg:#4a3b28;--color-day-hint-border:#7a6442;--color-day-hover-bg:#55442f;--color-day-hover-border:#7a6442;--color-today-ring:#ffd75e;--color-status-active:#4caf7d;--color-status-pending:#fbbf24;--color-status-blocked:#f2b8b5;--color-status-unsupported:#9aa4af;--color-badge-active:#f97066;--color-status-off:#64748b;--confetti-color-1:#39ff14;--confetti-color-2:#ff6ec7;--confetti-color-3:#04d9ff;--confetti-color-4:#fff01f;--confetti-color-5:#ff073a;--confetti-color-6:#bc13fe;--confetti-color-7:#ff9f1c;--confetti-color-8:#0fff95}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#faf6ec;--color-dot:#2aa3b073;--color-surface:#fff;--color-surface-hover:#eef2f0;--color-border:#d7ddda;--color-text:#1c2622;--color-text-muted:#7d8883;--color-accent:#b03a0f;--color-accent-contrast:#fff;--color-day-selected-bg:#12717c;--color-day-selected-text:#fff;--color-day-hint-bg:#e7ebf0;--color-day-hint-border:#b9c4d0;--color-day-hover-bg:#dfe5ea;--color-day-hover-border:#b9c4d0;--color-today-ring:#d97706;--color-status-active:#17794e;--color-status-pending:#d97706;--color-status-blocked:#b3261e;--color-status-unsupported:#6b7280;--color-badge-active:#d92d20;--color-status-off:#94a3b8;--confetti-color-1:#f94144;--confetti-color-2:#f3722c;--confetti-color-3:#f8961e;--confetti-color-4:#f9c74f;--confetti-color-5:#90be6d;--confetti-color-6:#43aa8b;--confetti-color-7:#577590;--confetti-color-8:#a25afd}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--color-bg);background-image:radial-gradient(circle at center, var(--color-dot) 0 var(--dot-radius), transparent var(--dot-radius));background-size:var(--dot-grid) var(--dot-grid);min-height:100dvh;color:var(--color-text);background-position:50%;background-repeat:repeat;background-attachment:scroll;justify-content:center;align-items:center;display:flex}#app{justify-content:center;align-items:center;width:100%;display:flex}button{font-family:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
