:root{--background:#fbfcf8;--foreground:#1c302a;--card:#fff;--card-foreground:#1c302a;--popover:#fff;--popover-foreground:#1c302a;--primary:#244d3e;--primary-foreground:#fff;--secondary:#edf3e9;--secondary-foreground:#244d3e;--muted:#f0f3ec;--muted-foreground:#657369;--accent:#e5f2cf;--accent-foreground:#233d27;--destructive:#b44d50;--border:#e0e5da;--input:#d7dfd1;--ring:#698949;--ink:#1c302a;--subtle:#657369;--line:#e0e5da;--canvas:#eff1e9;--deep:#1c302a;--green:#244d3e;--lime:#d5ef9f;--red:#a8484b}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scroll-behavior:smooth;scroll-padding-top:95px}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline-offset:3px;outline:3px solid #85a85c}:where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){transition:border-color .2s,box-shadow .2s}button:disabled{cursor:not-allowed}button,a{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s}button:active:not(:disabled),.primary-link:active{transform:scale(.97)}::selection{background:var(--lime);color:var(--ink)}.site-shell{background:radial-gradient(ellipse at 15% 0, #e2ead4 0, transparent 50%), var(--canvas);min-height:100dvh;padding:40px 24px}.mobile-app,.admin-app{background:#fbfcf8;border:1px solid #dfe5d8;border-radius:28px;width:100%;margin:0 auto;overflow:visible;box-shadow:0 22px 80px #2334260c}.mobile-app{max-width:480px;min-height:0;padding:0 28px 28px}.booking-app{max-width:900px;margin-top:clamp(0px,8vh,80px)}.admin-app{max-width:1060px;padding:0 32px 36px;position:relative}.topbar,.booking-app .topbar{border-bottom:1px solid var(--line);gap:12px;min-height:88px}.brand-icon{background:var(--deep);width:44px;height:44px;color:var(--lime);border-radius:50%;transform:rotate(-8deg)}.brand-icon svg{transform:rotate(8deg)}.brand-name{letter-spacing:-.045em;color:var(--ink);font-size:18px;font-weight:800}.brand-subtitle{color:var(--subtle);letter-spacing:.01em;margin-top:3px;font-size:11px}.live-indicator{color:#4d684d;white-space:nowrap;background:#eef4e5;border:1px solid #e1ebd5;border-radius:30px;align-items:center;gap:6px;margin-left:auto;padding:7px 9px;font-size:10px;font-weight:650;display:inline-flex}.live-indicator i{background:#668d42;border-radius:50%;width:5px;height:5px;box-shadow:0 0 0 3px #668d4212}.customer-account-trigger{background:var(--deep);min-height:44px;color:var(--lime);white-space:nowrap;border:1px solid #31493f;border-radius:13px;flex:none;justify-content:center;align-items:center;gap:7px;margin-left:auto;padding:9px 12px;font-size:12px;font-weight:650;display:inline-flex}.customer-account-trigger:hover:not(:disabled){background:#34503c}.customer-account-trigger:disabled{opacity:.5}.customer-account-content{gap:18px;margin-top:23px;display:grid}.customer-account-owner{gap:5px;display:grid}.customer-account-owner strong{overflow-wrap:anywhere;font-size:16px;font-weight:650}.customer-account-owner span{color:var(--subtle);font-size:12px}.customer-account-content .confirmation-details{margin-top:0}.customer-account-actions{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.customer-account-actions button{min-height:48px}.customer-no-booking{color:var(--subtle);background:#f1f5eb;border:1px dashed #d5ddca;border-radius:14px;margin:0;padding:18px 14px;font-size:13px}.customer-logout{min-height:44px;color:var(--subtle);background:0 0;border:0;border-radius:11px;justify-content:center;justify-self:center;align-items:center;gap:7px;padding:8px 16px;font-size:12px;display:inline-flex}.customer-logout:hover:not(:disabled){background:#edf1e7}.booking-layout{grid-template-columns:290px 1fr;gap:32px;padding:28px 0 24px;display:grid}.booking-app .date-section,.booking-app .time-section{min-width:0;margin:0}.section-heading,.eyebrow{color:var(--subtle);letter-spacing:.09em;font-size:11px;font-weight:700}.section-heading{text-transform:uppercase}.booking-app .section-heading{min-height:20px;margin-bottom:14px}.section-heading small{color:var(--subtle);text-transform:none;letter-spacing:0;font-size:11px;font-weight:500}.section-heading .availability-count{color:#40683b;background:#edf4e4;border-radius:20px;padding:4px 8px;font-size:10px}.booking-app .date-picker{background:var(--deep);border:1px solid #31493f;border-radius:20px;min-height:154px;padding:12px;position:relative;overflow:hidden;box-shadow:0 6px 16px #1c302a10}.date-picker:before{content:"";pointer-events:none;border:1px solid #d5ef9f10;border-radius:50%;width:145px;height:145px;position:absolute;top:-70px;right:-58px}.date-picker button,.booking-app .date-picker button{color:#d5e2d2;background:#ffffff0b;border:1px solid #ffffff18;border-radius:12px;width:40px;height:44px;position:relative}.date-picker button:disabled{opacity:.2}.date-picker button:hover:not(:disabled){background:#ffffff1b}.date-current{gap:4px;animation:.28s both content-in}.date-current span{color:var(--lime);font-size:11px;font-weight:600}.date-current strong{color:#fff;letter-spacing:-.055em;font-size:26px;font-weight:650;line-height:1.2}.date-current small{color:#c0ccc1;font-size:11px}.day-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-top:12px;display:grid}.day-strip button{color:#687368;background:0 0;border:1px solid #0000;border-radius:13px;flex-direction:column;align-items:center;gap:4px;min-height:66px;padding:9px 0 7px;display:flex}.day-strip button span{font-size:10px}.day-strip button strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:16px;font-weight:650;line-height:1.15}.day-strip button i{background:0 0;border-radius:50%;width:3px;height:3px}.day-strip button[aria-pressed=true]{background:var(--lime);color:#35512a;border-color:#c8e592;box-shadow:0 3px 7px #788e3020}.day-strip button[aria-pressed=true] i{background:#35512a}.day-strip button:hover:not([aria-pressed=true]){background:#edf1e8}.booking-legend{color:var(--subtle);justify-content:center;align-items:center;gap:17px;margin-top:20px;font-size:10px;display:flex}.booking-legend span{align-items:center;gap:5px;display:inline-flex}.available-dot,.busy-dot,.closed-dot,.holiday-dot{background:#77914e;border-radius:50%;width:6px;height:6px;margin:0;display:inline-block}.busy-dot{background:#c57f78}.closed-dot{background:#b8bfb2}.booking-app .time-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.booking-app .time-slot{color:#294733;background:#fff;border:1px solid #d7e2ca;border-radius:13px;gap:5px;min-width:0;min-height:59px;animation:.32s both slot-in;box-shadow:0 2px 2px #26382003}.booking-app .time-slot strong{font-variant-numeric:tabular-nums;letter-spacing:-.035em;font-size:16px;font-weight:650}.booking-app .time-slot small{color:#6a7c58;font-size:10px;font-weight:500}.booking-app .time-slot:hover:not(:disabled){background:var(--lime);border-color:#b9d286;outline:none;transform:translateY(-3px);box-shadow:0 5px 12px #51633516}.booking-app .time-slot:active:not(:disabled){transform:scale(.95)}.booking-app .time-slot:focus-visible{outline-offset:2px;outline:3px solid #7b9b56}.booking-app .time-slot.busy{color:#a36159;box-shadow:none;background:#f9f0ed;border-color:#edddd6}.booking-app .time-slot.busy small{color:#a36159}.booking-app .time-slot.closed,.booking-app .time-slot.past{color:#9ba396;box-shadow:none;background:#f0f2ec;border-color:#e7e9e1}.booking-app .time-slot.closed small,.booking-app .time-slot.past small{color:#8d9687}.time-grid.is-loading .time-slot{background:#edf1e7;border-color:#e6ebdf}.time-grid.is-loading .time-slot small{animation:.8s infinite alternate loading-pulse}.booking-footer{border-top:1px solid var(--line);color:#7b8773;align-items:center;gap:7px;padding-top:18px;font-size:10px;display:flex}.booking-footer span:last-child{margin-left:auto}.appointment-card{background:#eff6e3;border:1px solid #d7e4bb;border-radius:17px;flex-wrap:wrap;margin:20px 0 0;padding:16px;animation:.4s content-in;display:flex}.appointment-card .appointment-summary{gap:5px;display:grid}.appointment-kicker{color:#5a7447;font-size:9px}.appointment-card strong{color:var(--ink);font-size:14px}.appointment-card .appointment-actions{gap:6px;display:flex}.appointment-card button{color:#3c5837;background:#fff;border:1px solid #d1dfb9;border-radius:10px;justify-content:center;align-items:center;gap:5px;min-height:44px;padding:8px 12px;display:inline-flex}.appointment-actions button:last-child{color:var(--subtle);background:0 0;border-color:#0000}.date-jump,.booking-app .date-jump{color:var(--subtle);gap:8px;margin-top:16px;font-size:11px;display:grid}.date-jump input,.admin-date-control input{border:1px solid var(--input);min-width:0;max-width:100%;min-height:46px;color:var(--ink);background:#fff;border-radius:12px;font-size:16px}.closed-day-message,.booking-app .closed-day-message{color:#657355;background:#eef1e7;border-radius:12px;margin:0 0 12px;padding:12px;font-size:12px;line-height:1.45}.page-heading{padding:30px 0 24px}.eyebrow{color:#698052;font-size:10px}.page-heading h1{letter-spacing:-.055em;color:var(--ink);margin:9px 0 10px;font-size:clamp(26px,4vw,34px);font-weight:700;line-height:1.12}.page-heading>p:last-child{color:var(--subtle);font-size:13px;line-height:1.55}.register-form,.registration-page .register-form{gap:17px}.register-form label{color:#3d4f40;gap:8px;font-size:13px;font-weight:600;position:relative}.register-form input,.registration-page .register-form input{border:1px solid var(--input);min-height:50px;color:var(--ink);background:#fff;border-radius:13px;padding:10px 14px;font-size:16px;transition:border-color .2s,box-shadow .2s}.register-form input::placeholder,.admin-search input::placeholder{color:#a0aa99}.register-form input:focus{border-color:#83a258;outline:none;box-shadow:0 0 0 3px #bada8e35}.password-field{min-width:0;position:relative}.password-field input{padding-right:50px}.password-toggle{color:#718164;background:0 0;border:0;border-radius:10px;place-items:center;width:44px;height:calc(100% - 6px);display:grid;position:absolute;top:3px;right:3px}.password-toggle:hover{background:#f0f4e9}.field-hint{color:#859178;font-size:11px;font-weight:400;position:absolute;top:0;right:0}.password-field input::-ms-reveal{display:none}.confirm-button,.primary-link{background:var(--deep);min-height:48px;color:var(--lime);border:1px solid #0000;border-radius:13px;gap:8px;font-size:14px;font-weight:650;box-shadow:0 4px 9px #1c302a0c}.confirm-button:hover:not(:disabled),.primary-link:hover{background:#34503c;box-shadow:0 5px 15px #1c302a20}.confirm-button:disabled{opacity:.45}.cancel-button{min-height:44px;color:var(--subtle);border-radius:12px;font-size:13px}.cancel-button:hover{background:#edf1e7}[data-slot=dialog-overlay],[data-slot=alert-dialog-overlay]{-webkit-backdrop-filter:blur(6px);background:#13231a70}.confirmation-dialog,.calendar-dialog{overscroll-behavior:contain;background:#fbfcf8;border:1px solid #fff;border-radius:26px;gap:0;width:min(420px,100vw - 24px);max-width:none;max-height:calc(100dvh - 24px);padding:27px 24px 22px;overflow-y:auto;box-shadow:0 24px 100px #14261935}.confirmation-dialog [data-slot=dialog-title],.calendar-dialog [data-slot=dialog-title]{letter-spacing:-.05em;color:var(--ink);padding-right:30px;font-size:24px;font-weight:700;line-height:1.2}.confirmation-dialog [data-slot=dialog-header],.calendar-dialog [data-slot=dialog-header]{text-align:left}.dialog-dismiss{color:#718164;background:0 0;border:0;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:absolute;top:16px;right:14px}.dialog-dismiss:hover{background:#eaf0e1}.confirmation-details{color:#60734e;background:#edf3e5;border-radius:14px;align-items:center;gap:11px;margin-top:20px;padding:14px;display:flex}.confirmation-details>div{gap:3px;display:grid}.confirmation-details strong{color:#355132;font-size:14px;font-weight:650}.confirmation-details span{font-size:11px}.confirmation-details b{letter-spacing:-.05em;color:#29482d;margin-left:auto;font-size:24px;font-weight:650}.booking-phone-form{margin-top:21px}.confirmation-dialog [data-slot=dialog-footer]{flex-direction:row;gap:10px;margin-top:7px;display:flex}.confirmation-dialog [data-slot=dialog-footer] .confirm-button{flex:1}.confirmation-dialog [data-slot=dialog-footer] .cancel-button{padding-inline:16px}.calendar-dialog [data-slot=dialog-header]{gap:10px}.calendar-dialog [data-slot=dialog-description]{color:var(--subtle);font-size:13px;line-height:1.5}.calendar-success-icon,.success-icon{background:var(--lime);color:#3b582e;border-radius:50%;place-items:center;width:58px;height:58px;margin-bottom:8px;animation:.45s cubic-bezier(.2,1.5,.5,1) both success-pop;display:grid}.calendar-options{gap:10px;margin-top:23px;display:grid}.calendar-options a,.calendar-options button{border:1px solid var(--deep);background:var(--deep);width:100%;min-height:50px;color:var(--lime);border-radius:13px;justify-content:center;align-items:center;gap:10px;padding:10px;font-size:13px;font-weight:650;text-decoration:none;display:flex}.calendar-options button{color:#3b582e;background:#edf3e5;border-color:#d9e5c9}.calendar-note{color:var(--subtle);margin:18px 0 0;font-size:11px;line-height:1.6}.calendar-close{min-height:44px;color:var(--subtle);background:0 0;border:0;margin:12px auto 0;padding:8px 16px;font-size:13px;display:block}.registration-page{padding-bottom:32px}.registration-page .page-heading{padding-top:25px}.registration-content,.admin-content{animation:.35s both content-in}.registration-steps{gap:20px;margin:25px 0 0;padding:0;list-style:none;display:flex}.registration-steps li{color:#89937d;align-items:center;gap:7px;font-size:11px;display:flex}.registration-steps li>span{border:1px solid #dbe2d1;border-radius:50%;place-items:center;width:25px;height:25px;font-size:11px;display:grid}.registration-steps li[aria-current]{color:#3c582f;font-weight:650}.registration-steps li[aria-current]>span{background:var(--lime);border-color:var(--lime)}.review-card dl{background:#f0f5e8;border:1px solid #dce5d0;border-radius:18px;margin:0;padding:20px}.review-card dt{color:var(--subtle);font-size:11px}.review-card dd{color:var(--ink);font-size:18px;font-weight:600}.login-page{margin-top:clamp(0px,5vh,50px)}.login-emblem{color:#4f703a;background:#eaf2db;border:1px solid #dfebcb;border-radius:22px;place-items:center;width:70px;height:70px;margin:8px 0 26px;display:grid;transform:rotate(-5deg)}.login-emblem svg{transform:rotate(5deg)}.admin-home-link{color:#70805e;min-height:44px;padding:12px 0;font-size:12px}.empty-message{color:var(--subtle);text-align:center;background:#f5f7f0;border:1px dashed #d5ddca;border-radius:15px;padding:24px 18px;font-size:13px}.error-card{color:#9b4b44;background:#fff2ee;border-color:#ebceca}.error-card button{color:#91473f}.form-error{color:#ac4545!important}.admin-app .topbar{min-height:86px}.admin-menu-toggle{min-height:44px;color:var(--ink);background:#eef3e6;border:1px solid #d9e1cf;border-radius:13px;gap:7px;font-size:12px}.admin-menu-toggle:hover,.admin-menu-toggle[aria-expanded=true]{background:var(--lime);border-color:#c6df9b}.admin-navigation-dialog[data-slot=dialog-content]{width:min(360px,100vw - 28px);max-width:none;height:100dvh;max-height:100dvh;padding:max(32px, env(safe-area-inset-top)) 22px max(24px, env(safe-area-inset-bottom));background:#fbfcf8;border:0;border-radius:26px 0 0 26px;flex-direction:column;gap:25px;display:flex;inset:0 0 0 auto;overflow-y:auto;transform:none;box-shadow:-20px 0 70px #14261920}.admin-navigation-dialog[data-state=open]{animation:.3s cubic-bezier(.22,.7,.2,1) both drawer-in}.admin-navigation-dialog[data-state=closed]{animation:.2s both drawer-out}.admin-navigation-dialog [data-slot=dialog-header]{text-align:left;gap:8px;padding:12px 10px}.admin-navigation-dialog [data-slot=dialog-title]{letter-spacing:-.05em;font-size:31px;font-weight:700}.admin-menu{width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;gap:8px;margin:0;padding:0;display:grid;position:static}.admin-menu a,.admin-menu button{color:#62715b;border:1px solid #0000;border-radius:15px;gap:12px;min-height:60px;padding:10px 12px;font-size:14px;font-weight:550}.admin-menu a>svg:last-child{margin-left:auto}.admin-menu a:hover,.admin-menu button:hover{background:#edf2e5}.admin-menu a[aria-current=page]{background:var(--deep);color:var(--lime);box-shadow:0 4px 12px #1c302a13}.menu-item-icon{flex:none;place-items:center;width:34px;height:34px;display:grid}.admin-menu-actions{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.admin-menu-actions a,.admin-menu-actions button{min-height:50px;font-size:13px}.menu-signature{color:#94a187;align-items:center;gap:10px;margin:auto 12px 0;padding-top:30px;font-size:11px;display:flex}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px;display:grid}.admin-stats>div{background:#edf2e5;border:1px solid #e0e7d6;border-radius:18px;gap:12px;padding:18px 20px;display:grid}.admin-stats>div:first-child{background:var(--deep);border-color:var(--deep);color:var(--lime)}.admin-stats span{color:#738264;font-size:11px}.admin-stats>div:first-child span{color:#b1c2a6}.admin-stats strong{letter-spacing:-.06em;justify-content:space-between;align-items:center;font-size:30px;font-weight:600;line-height:1;display:flex}.stat-dot{background:var(--lime);border-radius:50%;width:8px;height:8px}.admin-date-control{border:1px solid var(--line);background:#fff;border-radius:16px;gap:12px;padding:16px 18px}.admin-date-control label{color:#687d58;font-size:12px}.admin-date-control strong{color:#314b2c;font-size:16px}.admin-date-control small{color:var(--subtle);font-size:12px}.admin-slot-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.admin-slot{background:#fff;border:1px solid #e0e6d7;border-radius:14px;min-height:84px;padding:14px}.admin-slot-heading strong{color:#48633b;font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.admin-slot-heading span{color:#82916e;font-size:11px}.admin-slot.has-booking{background:#edf5df;border-color:#cdddac;grid-column:auto;box-shadow:inset 3px 0 #87a955}.admin-slot.has-booking .admin-slot-heading strong,.admin-slot.has-booking .admin-slot-heading span{color:#466632}.admin-slot.has-booking .admin-slot-heading span{background:#d9eabc;border-radius:20px;padding:3px 8px}.admin-slot.is-closed,.admin-slot.is-past{background:#eff1eb;border-color:#e6e9de}.admin-slot.is-closed .admin-slot-heading strong,.admin-slot.is-past .admin-slot-heading strong{color:#929e85}.admin-slot-person b{color:var(--ink);font-weight:650}.admin-slot-person small{color:var(--subtle);font-size:12px}.admin-danger{color:#a16651;background:#fffaf7;border:1px solid #e7d8ce;border-radius:11px;min-height:44px;padding:9px 12px;font-size:12px;font-weight:600}.admin-danger:hover{background:#f9e8df}.admin-section-head h2,.admin-section h2{color:var(--ink);letter-spacing:-.035em;font-size:19px;font-weight:650}.admin-section-head span{color:var(--subtle);font-size:11px}.upcoming-row,.customer-row,.invitation-row{border:1px solid var(--line);background:#fff;border-radius:16px;gap:14px;margin-top:10px;padding:17px}.upcoming-row strong,.customer-row strong,.invitation-row strong{color:var(--ink);font-weight:650}.upcoming-row span,.customer-row small,.invitation-row small{color:var(--subtle);font-size:12px}.customer-row span{color:#476334}.customer-row>div{gap:6px}.admin-search{gap:8px}.admin-search label{border:1px solid var(--input);color:#889876;background:#fff;border-radius:13px;min-height:50px}.admin-search input{color:var(--ink);background:0 0}.admin-search button{border-radius:13px;min-width:76px}.customer-pages button{border-color:var(--line);color:var(--ink);border-radius:11px}.admin-search label{transition:border-color .2s,box-shadow .2s}.admin-search label:focus-within{border-color:#83a258;box-shadow:0 0 0 3px #bada8e35}.admin-search input:focus{box-shadow:none;outline:none}.generated-link{background:#f0f6e5;border:1px solid #d2e2b4;border-radius:18px;padding:20px}.generated-link label{color:#486039;font-size:13px}.generated-link input{border-color:var(--input);color:var(--ink);border-radius:11px}.generated-link p{color:var(--subtle)}.admin-create{gap:8px}.invitation-row button{color:#836b57}.settings-jump{scrollbar-width:none;gap:8px;margin-bottom:23px}.settings-jump::-webkit-scrollbar{display:none}.settings-jump a{color:#597047;background:#eef3e5;border-color:#dce5ce;border-radius:30px;min-height:42px;padding:8px 14px;font-size:12px}.settings-jump a:hover{background:var(--lime)}.settings-card{border:1px solid var(--line);background:#fff;border-radius:20px;margin-bottom:15px;padding:25px;scroll-margin-top:95px}.settings-card h2{color:var(--ink);letter-spacing:-.035em;font-size:19px;font-weight:650}.settings-card>p,.settings-hint{color:var(--subtle);font-size:12px}.settings-field,.closure-range label,.date-closure-form>label:first-child{color:#4e6142;font-size:12px}.settings-field input,.settings-field textarea,.closure-range select,.date-closure-form input[type=date]{border-color:var(--input);color:var(--ink);border-radius:12px;min-height:48px}.settings-field textarea{line-height:1.6}.settings-add{color:#4d6b37;background:#eef4e5;border:1px solid #dce7cb;border-radius:12px;gap:7px;min-height:46px;font-size:12px}.settings-add:hover{background:var(--lime);border-color:#c9e395}.weekday-choice{background:#f7f9f2;border:1px solid #e2e8d8;border-radius:12px;min-height:50px;font-size:13px;transition:background .2s,border-color .2s}.weekday-choice:has(input:checked){color:#3f612d;background:#e8f2d6;border-color:#b5cd93}.weekday-choice input,.all-day-choice input{accent-color:#587b3e}.date-closure-form{background:#f5f8ee;border:1px solid #e5ecd9;border-radius:15px}.date-closure-row{border-color:var(--line)}.date-closure-row span{color:var(--subtle)}.remove-rule{color:#aa6e56;background:#fff5f0;border-color:#ebd4cb;border-radius:12px}.settings-save{z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbfcf8ed;border:1px solid #dce4d0;border-radius:18px;margin-top:18px;padding:12px;position:sticky;bottom:12px;box-shadow:0 8px 30px #1c302a12}.settings-save span{color:var(--subtle);font-size:12px}.settings-save button{min-height:48px}.settings-notice{font-size:12px}.cancel-contact{background:#eff5e4;border-color:#d4e2bb;border-radius:17px;animation:.3s both content-in}.cancel-contact p{color:var(--subtle)}.contact-actions a{color:#4c683a;border-color:#d4e1c0;border-radius:12px}.contact-actions a:last-child{color:#416131;background:#dceecb;border-color:#c8dfb0}.spin{animation:1s linear infinite spin}@keyframes content-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes slot-in{0%{opacity:0;translate:0 7px}to{opacity:1;translate:0}}@keyframes success-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes drawer-in{0%{opacity:.4;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes drawer-out{0%{opacity:1;transform:translate(0)}to{opacity:.4;transform:translate(100%)}}@keyframes loading-pulse{0%{opacity:.3}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:760px){.booking-app{max-width:480px;margin-top:0}.booking-layout{grid-template-columns:minmax(0,1fr);gap:22px;padding:22px 0}.booking-app .date-picker{min-height:102px}.date-current strong{font-size:25px}.day-strip{margin-top:10px}.day-strip button{min-height:63px}.booking-legend{margin-top:12px}.booking-app .time-slot{min-height:56px}.booking-app .time-grid{gap:8px}.admin-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-slot.has-booking{grid-column:span 2}.admin-stats>div{padding:17px}}@media (max-width:520px){body,.site-shell{background:#fbfcf8}.site-shell{min-height:100dvh;padding:0}.mobile-app,.admin-app{max-width:none;min-height:100dvh;padding:0 20px calc(22px + env(safe-area-inset-bottom));box-shadow:none;background:#fbfcf8;border:0;border-radius:0;margin:0}.topbar,.booking-app .topbar,.admin-app .topbar{min-height:78px;padding-top:env(safe-area-inset-top)}.brand-icon{width:40px;height:40px}.brand-name{font-size:17px}.brand-subtitle{font-size:10px}.live-indicator{gap:5px;padding:6px 7px;font-size:9px}.booking-layout{gap:20px;padding:19px 0 21px}.booking-app .section-heading{margin-bottom:10px}.booking-app .date-picker{border-radius:18px;min-height:96px;padding:9px}.date-current strong{font-size:24px}.date-current small{font-size:10px}.day-strip button{border-radius:12px;min-height:59px;padding-top:7px;padding-bottom:5px}.day-strip{gap:4px}.booking-legend{margin-top:11px}.booking-app .time-slot{border-radius:12px;gap:5px;min-height:55px}.booking-app .time-slot strong{font-size:16px}.booking-footer{padding-top:15px;font-size:9px}.admin-app .topbar{z-index:15;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbfcf8eb;margin:0 -20px;padding-inline:20px;position:sticky;top:0}.admin-app .page-heading{padding:26px 0 22px}.admin-app .page-heading h1{font-size:30px}.admin-menu-toggle{min-width:46px;padding:10px}.admin-menu-toggle span{display:none}.admin-stats{gap:8px;margin-bottom:18px}.admin-stats>div{border-radius:15px;gap:13px;padding:15px 12px}.admin-stats span{font-size:10px}.admin-stats strong{font-size:28px}.admin-date-control{flex-direction:row;align-items:flex-end;padding:14px}.admin-date-control label{flex:1;min-width:0}.admin-date-control>div{white-space:normal;text-align:right;max-width:45%}.admin-date-control small{font-size:10px;line-height:1.4}.admin-search{flex-direction:row}.admin-search label{width:auto}.admin-search button{width:auto;min-width:68px}.admin-slot{min-height:70px;padding:12px}.admin-slot.has-booking{padding:12px}.admin-slot-person .admin-danger{width:auto;min-height:44px}.upcoming-row .admin-danger{width:100%}.settings-card{border-radius:17px;padding:20px 17px}.settings-card h2{font-size:18px}.settings-save{padding:11px 12px max(11px, env(safe-area-inset-bottom));border-radius:17px;margin:16px -8px 0;bottom:8px}.settings-jump{margin-inline:-20px;padding-inline:20px}.closure-range{gap:8px}.closure-range select{padding-inline:8px}.weekday-grid{gap:8px}.weekday-choice{padding-inline:10px}.customer-row{flex-wrap:nowrap}.customer-row strong{font-size:15px}.customer-row .admin-danger{flex:none}.confirmation-dialog,.calendar-dialog{border-radius:24px;padding:25px 21px 20px}.confirmation-dialog [data-slot=dialog-title]{font-size:23px}.confirmation-details{margin-top:17px}.booking-phone-form{margin-top:18px}.login-page .page-heading{padding-top:35px}.registration-page .page-heading h1{font-size:29px}}@media (max-width:360px){.mobile-app,.admin-app{padding-inline:15px}.brand-name{font-size:15px}.brand-icon{width:36px;height:36px}.topbar{gap:9px}.live-indicator{padding-inline:6px;font-size:8px}.booking-app .time-grid{gap:6px}.booking-app .time-slot strong{font-size:14px}.day-strip{gap:2px}.day-strip button span{font-size:9px}.day-strip button strong{font-size:15px}.admin-app .topbar{margin-inline:-15px;padding-inline:15px}.admin-stats>div{padding-inline:10px}.admin-stats span{font-size:9px}.admin-date-control{flex-direction:column;align-items:stretch}.admin-date-control>div{text-align:left;max-width:none}.settings-jump{margin-inline:-15px;padding-inline:15px}}@media (max-height:700px) and (max-width:520px){.booking-app .topbar{min-height:66px}.booking-layout{gap:14px;padding-top:14px;padding-bottom:15px}.booking-app .date-picker{min-height:82px}.day-strip button{min-height:53px}.booking-app .time-slot{min-height:48px}.booking-legend{margin-top:8px}.booking-footer{padding-top:12px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.admin-calendar-toolbar{grid-template-columns:minmax(0,1fr) minmax(260px,.85fr);align-items:start;gap:24px;margin-bottom:24px;display:grid}.admin-content>.admin-calendar-toolbar{margin-top:24px}.admin-brand{color:inherit;border-radius:12px;align-items:center;gap:12px;text-decoration:none;display:flex}.admin-brand:focus-visible{outline-offset:5px;outline:2px solid #7e9c50}.day-strip button.is-holiday{position:relative}.day-strip button.is-holiday i{opacity:1;background:#bd8850;width:5px;height:5px;display:block}.day-strip button.is-holiday[aria-pressed=true] i{background:#916135}.holiday-dot{background:#bd8850}.holiday-notice{color:#805c32;background:#faf4e8;border:1px solid #eadbc0;border-radius:12px;align-items:flex-start;gap:10px;margin-top:12px;padding:11px 12px;display:flex}.holiday-notice svg{flex:none;margin-top:2px}.holiday-notice>div{gap:3px;min-width:0;display:grid}.holiday-notice strong{font-size:12px;line-height:1.4}.holiday-notice span{font-size:11px;line-height:1.4}.holiday-notice.has-opening{color:#496638;background:#eff5e6;border-color:#d8e5c2}.holiday-controls{margin:-10px 0 20px}.holiday-actions{flex-wrap:wrap;gap:8px;display:flex}.holiday-actions button{color:#385634;cursor:pointer;background:#eef4e5;border:1px solid #d9e3cc;border-radius:11px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:9px 12px;font-size:12px;font-weight:600;display:inline-flex}.holiday-actions button:hover{background:#e1edcd}.holiday-actions button:disabled{opacity:.5;cursor:wait}.holiday-actions button.holiday-opening-chip{background:#fff;font-size:11px}.holiday-controls>small{color:var(--subtle);margin-top:7px;font-size:11px;display:block}.holiday-slot-open:hover{background:#f9f0de;box-shadow:inset 0 0 0 1px #d9bd91}.holiday-slot-field{gap:8px;margin-top:18px;font-size:13px;font-weight:600;display:grid}.holiday-slot-field select{width:100%;min-height:48px;color:var(--ink);border:1px solid var(--input);background:#fff;border-radius:12px;padding:10px;font-size:16px}.holiday-dialog-hint{color:var(--subtle);margin:16px 0 20px;font-size:12px;line-height:1.6}.holiday-calendar-limit{color:#805c32;background:#faf4e8;border-radius:12px;margin-bottom:16px;padding:12px;font-size:12px;line-height:1.6}.admin-calendar{min-width:0}.admin-calendar-toolbar .admin-stats{gap:12px;margin:32px 0 0}.admin-calendar-toolbar .admin-stats>div{align-content:center;min-height:102px}.admin-slot.has-booking{padding:12px}.admin-slot.has-booking .admin-slot-heading{align-items:center}.admin-slot.has-booking .admin-slot-heading span{padding:3px 7px;font-size:10px}.admin-slot-person{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding-top:3px;display:grid}.admin-slot-person>div{gap:0;min-width:0}.admin-slot-person b{overflow-wrap:anywhere;font-size:13px;line-height:1.3}.admin-slot-person small{font-size:11px;line-height:1.4}.admin-slot-person .admin-danger{border-radius:10px;width:auto;min-width:52px;min-height:44px;padding:8px 10px;font-size:11px}.admin-slot-person .booking-person-link{gap:5px;min-height:44px}.admin-calendar .date-picker{background:var(--deep);border:1px solid #31493f;border-radius:18px;min-height:96px;padding:9px;position:relative;overflow:hidden;box-shadow:0 6px 16px #1c302a10}.date-picker button.date-calendar-trigger{text-align:center;background:0 0;border:0;border-radius:10px;flex:1;gap:4px;width:auto;height:auto;min-height:68px;padding:6px;display:grid}.date-picker button.date-calendar-trigger:hover{background:#ffffff08}.date-calendar-trigger small{justify-content:center;align-items:center;gap:6px;display:flex}.native-calendar-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;top:75%;left:50%}.admin-slot:has(.admin-slot-select){padding:0}.admin-slot-select{width:100%;height:100%;min-height:inherit;border-radius:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:14px}.admin-slot-select:hover{background:#edf5df;box-shadow:inset 0 0 0 1px #b8cf94}.admin-slot.is-occupied{background:#f0f5e8;border-color:#d6e2c4}.booking-person-link{color:#355b34;align-items:center;gap:7px;max-width:100%;min-height:44px;text-decoration:none;display:inline-flex}.booking-person-link b{overflow-wrap:anywhere}.booking-person-link svg{flex:none}.booking-person-link:hover b{text-underline-offset:3px;text-decoration:underline}.upcoming-phone{color:var(--subtle);font-size:12px;display:block}.schedule-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.schedule-fields label{color:#4e6142;gap:8px;min-width:0;font-size:12px;display:grid}.schedule-fields select{border:1px solid var(--input);width:100%;min-height:48px;color:var(--ink);background:#fff;border-radius:12px;padding:10px}.new-booking-notice{top:calc(14px + env(safe-area-inset-top));z-index:90;background:var(--deep);color:#fff;pointer-events:none;border:1px solid #496344;border-radius:18px;align-items:center;gap:13px;width:min(420px,100vw - 24px);padding:17px;animation:.25s both content-in;display:flex;position:fixed;left:50%;translate:-50%;box-shadow:0 12px 40px #1c302a30}.notice-icon{width:42px;height:42px;color:var(--lime);background:#d5ef9f16;border-radius:13px;flex:none;place-items:center;display:grid}.new-booking-notice>div{gap:4px;min-width:0;display:grid}.new-booking-notice strong{color:var(--lime);font-size:13px}.new-booking-notice span{overflow-wrap:anywhere;font-size:14px}.new-booking-notice small{color:#bfd0b5;font-size:12px}.new-booking-notice.is-cancelled{border-color:#806747}.new-booking-notice.is-cancelled strong,.new-booking-notice.is-cancelled .notice-icon{color:#f0cd9c}.new-booking-notice.is-cancelled .notice-icon{background:#f0cd9c16}@media (max-width:520px){.schedule-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.schedule-fields label:last-child{grid-column:1/-1}.admin-slot-select{padding:12px}}@media (min-width:761px) and (max-width:900px){.admin-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.password-settings-fields{border:0;gap:16px;min-width:0;margin:0;padding:0;display:grid}.password-settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.admin-password-form{margin-top:18px}.password-settings-submit{justify-self:start;padding-inline:18px}.register-form .password-settings-success{color:#486b34;line-height:1.5}.invitation-row.invitation-card{align-items:center;gap:16px;display:flex}.invitation-details{flex:1;min-width:0}.invitation-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.invitation-row .invitation-status{color:#4b6936;background:#edf4df;border-radius:20px;flex:none;padding:5px 9px;font-size:11px;font-weight:600}.invitation-status.inactive{color:#818578;background:#f0f1eb}.invitation-url,.generated-link input{border:1px solid var(--input);width:100%;min-width:0;min-height:46px;color:var(--ink);background:#f8faf4;border-radius:11px;padding:10px 12px;font-size:16px}.invitation-url{margin-top:8px}.invitation-row .invitation-actions{flex:none;align-items:center;gap:8px;display:flex}.invitation-row .invitation-copy{color:#486434;background:#edf3e5;border:1px solid #d9e5c9;border-radius:12px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:10px 14px;font-size:13px;font-weight:600;display:inline-flex}.invitation-copy:hover:not(:disabled){background:var(--lime)}@media (max-width:760px){.password-settings-grid{grid-template-columns:minmax(0,1fr)}.password-settings-submit{width:100%}.invitation-row.invitation-card{flex-direction:column;align-items:stretch}.invitation-row .invitation-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}:is(input,select,textarea):not(:where([type=checkbox],[type=radio],[type=hidden])):focus{border-color:#83a258;outline:none;box-shadow:0 0 0 3px #bada8e35}@media (max-width:760px){.admin-calendar-toolbar{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:20px}.admin-calendar-toolbar .admin-stats{gap:8px;margin:0}.admin-calendar-toolbar .admin-stats>div{border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:64px;padding:10px 14px}.admin-calendar-toolbar .admin-stats strong{gap:10px;font-size:25px}.admin-calendar-toolbar .admin-stats span{font-size:11px}.admin-slot.has-booking{grid-column:span 2}}
