*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg-secondary);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}a,button{touch-action:manipulation}ul,ol{list-style:none}:root{--color-bg:#fff;--color-bg-secondary:#f7f7f7;--color-bg-tertiary:#efefef;--color-border:#e4e4e4;--color-border-dark:#ccc;--color-text-primary:#111;--color-text-secondary:#555;--color-text-muted:#6b6b6b;--color-accent:#111;--color-accent-hover:#333;--color-pink:#fea6c3;--color-pink-light:#fea6c324;--color-danger:#dc2626;--color-success:#16a34a;--color-success-surface:#edf8f0;--color-success-text:#166534;--color-warning:#c66a08;--color-warning-surface:#fff8e8;--color-warning-text:#854d0e;--color-danger-surface:#fff1f1;--color-danger-text:#991b1b;--color-info-surface:#f2f5fb;--color-info-border:#ced8ec;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.236rem;--text-lg:1.618rem;--text-xl:2.058rem;--text-2xl:2.618rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-bold:600;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-loose:1.8;--space-xs:.236rem;--space-sm:.382rem;--space-md:.618rem;--space-lg:1rem;--space-xl:1.618rem;--space-2xl:2.618rem;--space-3xl:4.236rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001a;--transition:.15s ease}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--text-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text-primary);background:var(--color-bg)}h1{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}h2{font-size:var(--text-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}h3{font-size:var(--text-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight)}h4{font-size:var(--text-md);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight)}p{font-size:var(--text-base);line-height:var(--line-height-loose);color:var(--color-text-secondary)}small{font-size:var(--text-sm);color:var(--color-text-muted)}label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.layout__app{min-height:100vh;display:flex;overflow-x:hidden}.layout__sidebar{background:var(--color-bg);border-right:1px solid var(--color-border);z-index:100;flex-direction:column;width:220px;height:100lvh;padding-bottom:calc(100lvh - 100svh);transition:transform .25s;display:flex;position:fixed;top:0;left:0}.sidebar__overlay{display:none}.sidebar__brand{height:56px;padding:0 var(--space-xl);font-size:var(--text-md);font-weight:var(--font-weight-bold);letter-spacing:-.02em;color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:var(--space-lg);flex-shrink:0;align-items:center;display:flex}.sidebar__nav{padding:0 var(--space-md);flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.nav__item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-regular);color:var(--color-text-secondary);cursor:pointer;text-align:left;width:100%;transition:background var(--transition), color var(--transition);background:0 0;border:none;line-height:1;display:flex}.nav__item:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.nav__item--active{background:var(--color-pink-light);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.nav__item--active svg{color:var(--color-pink)}.nav__icon{opacity:.7;flex-shrink:0;width:16px;height:16px}.nav__item--active .nav__icon{opacity:1}.sidebar__footer{padding:var(--space-lg) var(--space-xl);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);gap:var(--space-sm);flex-direction:column;display:flex}.sidebar__user{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar__logout{font-size:var(--text-xs);color:var(--color-text-muted);text-align:left;justify-content:flex-start;padding:0}.sidebar__logout:hover{color:var(--color-danger);background:0 0}.layout__main{background:var(--color-bg-secondary);flex-direction:column;flex:1;min-height:100vh;margin-left:220px;display:flex}.layout__header{background:var(--color-bg);border-bottom:1px solid var(--color-border);height:56px;padding:0 var(--space-2xl);z-index:9;justify-content:flex-end;align-items:center;display:flex;position:fixed;top:0;left:220px;right:0}.header__context{align-items:center;gap:var(--space-md);min-width:0;font-size:var(--text-sm);display:flex}.header__context-label{color:var(--color-text-muted)}.header__context-label:after{content:"·";margin-left:var(--space-md)}.header__context-business{text-overflow:ellipsis;white-space:nowrap;max-width:280px;color:var(--color-text-primary);font-weight:var(--font-weight-medium);overflow:hidden}.header__logo{font-size:var(--text-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.01em}.header__links{align-items:center;gap:var(--space-xl);display:flex}.header__link{font-size:var(--text-sm);color:var(--color-text-secondary);transition:color var(--transition);text-decoration:none}.header__link:hover{color:var(--color-text-primary)}.header__link--cta{background:var(--color-pink);color:var(--color-text-primary);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-weight:var(--font-weight-medium)}.header__link--cta:hover{color:var(--color-text-primary);opacity:.9}.hamburger{cursor:pointer;width:44px;height:44px;margin-right:var(--space-md);background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;padding:0;display:none}.hamburger span{width:22px;height:2px;transition:opacity var(--transition);background:#ffa6c4;border-radius:2px;display:block}.layout__content{width:100%;max-width:1100px;padding:var(--space-2xl) var(--space-2xl);margin-top:56px}@media (width<=768px){.layout__sidebar{transform:translate(-100%)}.layout__sidebar--open{transform:translate(0)}.sidebar__overlay{z-index:99;background:#0000004d;display:block;position:fixed;inset:0}.layout__main{width:100%;margin-left:0}.layout__header{padding-inline:var(--space-lg);justify-content:space-between;left:0}.hamburger{display:flex}.layout__content{padding:var(--space-xl) var(--space-lg);max-width:100%}.header__context-label{display:none}.header__context-business{max-width:180px}.sidebar__footer{gap:var(--space-md)}.sidebar__logout{font-size:var(--text-sm);min-height:44px;padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:center;width:100%;display:flex}}.layout__title{font-size:var(--text-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xl);color:var(--color-text-primary);letter-spacing:-.02em}.layout__center{justify-content:center;align-items:center;min-height:100vh;display:flex}.home-overview{padding:var(--space-2xl);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg)}.home-overview h1{max-width:18ch;font-size:var(--text-xl);letter-spacing:-.025em;margin-top:0}.home-overview>p{max-width:58ch;margin-top:var(--space-md);font-size:var(--text-base);color:var(--color-text-secondary)}.home-overview__actions{gap:var(--space-md);margin-top:var(--space-xl);flex-wrap:wrap;display:flex}.home-actions{margin-top:var(--space-2xl)}.home-grid{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.home-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:92px;padding:var(--space-lg) var(--space-xl);text-align:left;cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition), background-color var(--transition);align-items:center;gap:var(--space-md);display:flex}.home-card:hover{border-color:var(--color-pink);box-shadow:var(--shadow-sm)}.home-card__icon{opacity:.7;width:20px;height:20px;color:var(--color-text-primary);flex-shrink:0}.home-card__body{gap:var(--space-xs);flex-direction:column;flex:1;min-width:0;display:flex}.home-card__title{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.home-card__description{font-size:var(--text-sm);line-height:var(--line-height-normal);color:var(--color-text-muted)}.home-card__arrow{color:var(--color-text-muted);font-size:var(--text-md)}@media (width<=768px){.home-grid{gap:var(--space-md)}.home-card{padding:var(--space-md);gap:var(--space-sm)}.home-card__icon{width:18px;height:18px}.home-card__title{font-size:var(--text-sm)}}@media (width<=640px){.home-overview{padding:var(--space-xl)}.home-overview h1{font-size:var(--text-lg)}.home-overview__actions{flex-direction:column;align-items:stretch}.home-grid{grid-template-columns:1fr}.home-card{min-height:88px;padding:var(--space-lg)}.home-card__title{font-size:var(--text-base)}}.btn{padding:var(--space-md) var(--space-xl);font-size:var(--text-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);min-height:44px;transition:background-color var(--transition), border-color var(--transition), color var(--transition), opacity var(--transition), box-shadow var(--transition);white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn:focus-visible,.home-card:focus-visible,.booking-service-card:focus-visible,.cal__nav-btn:focus-visible,.cal__day-surface:focus-visible,.cal__schedule-hit:focus-visible,.cal__booking:focus-visible,.tab:focus-visible,.toggle:focus-visible,.icon-btn:focus-visible,.header__link:focus-visible,.hamburger:focus-visible,.nav__item:focus-visible,.sidebar__brand:focus-visible,a:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:3px}.btn--primary{background:var(--color-accent);color:#fff}.btn--primary:hover{background:var(--color-accent-hover)}.btn--secondary{background:var(--color-bg);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn--secondary:hover{background:var(--color-bg-tertiary)}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover{opacity:.9}.btn--ghost{color:var(--color-text-secondary)}.btn--ghost:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.input{width:100%;min-height:44px;padding:var(--space-md) var(--space-lg);font-size:var(--text-base);font-family:inherit;line-height:var(--line-height-normal);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);transition:border-color var(--transition);outline:none}.input[type=date],.input[type=time],select.input{appearance:none}.input:focus{border-color:var(--color-pink)}.input:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:2px}.input::placeholder{color:var(--color-text-muted)}.form__group{gap:var(--space-sm);flex-direction:column;display:flex}.form__row{gap:var(--space-lg);flex-wrap:wrap;display:flex}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}.card__title{font-size:var(--text-md);font-weight:var(--font-weight-bold);margin-bottom:var(--space-lg)}.table{border-collapse:collapse;background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border);width:100%;overflow:hidden}.table th{padding:var(--space-lg);text-align:left;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.table td{padding:var(--space-lg);font-size:var(--text-sm);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary)}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--color-bg-secondary)}.tab{padding:var(--space-md) var(--space-lg);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);border-radius:var(--radius-md);min-height:44px;transition:background-color var(--transition), border-color var(--transition), color var(--transition);border:1px solid #0000}.tab:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.tab--active{color:var(--color-text-primary);background:var(--color-bg);border-color:var(--color-border);font-weight:var(--font-weight-medium)}.badge{padding:var(--space-xs) var(--space-md);font-size:var(--text-xs);font-weight:var(--font-weight-medium);border-radius:999px;align-items:center;display:inline-flex}.badge--pending{background:var(--color-warning-surface);color:var(--color-warning-text)}.badge--confirmed{background:var(--color-success-surface);color:var(--color-success-text)}.badge--cancelled{background:var(--color-danger-surface);color:var(--color-danger-text)}.divider{background:var(--color-border);height:1px;margin:var(--space-xl) 0}.modal__overlay{z-index:100;padding:var(--space-lg);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal__box{background:var(--color-bg);border-radius:var(--radius-lg);width:100%;max-width:520px;box-shadow:var(--shadow-lg);max-height:90vh;overflow:hidden auto}.modal__box:focus{outline:none}.modal__header{padding:var(--space-xl);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;display:flex}.modal__title{font-size:var(--text-md);font-weight:var(--font-weight-bold)}.modal__sub{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-xs)}.modal__tabs{gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);display:flex}.modal__body{padding:var(--space-xl)}.layout__page{background:var(--color-bg);min-height:100vh}.layout__page .layout__header{background:var(--color-bg);border-bottom:1px solid var(--color-border);z-index:10;align-items:center;height:56px;display:flex;position:sticky;top:0;left:0;right:0}.layout__header-inner{width:100%;padding:0 var(--space-xl);justify-content:space-between;align-items:center;display:flex}.layout__container{max-width:520px;padding:0 var(--space-xl);margin:0 auto}.layout__page .layout__content{padding:var(--space-2xl) 0;max-width:100%;margin-top:0}.booking-services{flex-direction:column;display:flex}.booking-service-card{padding:var(--space-lg) 0;border-bottom:1px solid var(--color-border);cursor:pointer;text-align:left;transition:opacity var(--transition);justify-content:space-between;align-items:center;gap:var(--space-lg);background:0 0;display:flex}.booking-service-card:first-child{border-top:1px solid var(--color-border)}.booking-service-card:hover{opacity:.7}.booking-service-card__info{gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.booking-service-card__name{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.booking-service-card__meta{font-size:var(--text-sm);color:var(--color-text-muted)}.booking-service-card__price{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);flex-shrink:0}.booking-service-card__arrow{color:var(--color-text-muted);flex-shrink:0}.week-nav{margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.week-nav .btn{min-width:44px;padding-inline:var(--space-md)}.booking-back{margin-bottom:var(--space-2xl);color:var(--color-text-muted);padding-inline:0}.week-empty{gap:var(--space-xs);margin-bottom:var(--space-lg);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--text-sm);flex-direction:column;display:flex}.week-empty strong{color:var(--color-text-primary)}.week-nav span{font-size:var(--text-sm);color:var(--color-text-secondary)}.week-grid{gap:var(--space-xs);grid-template-columns:repeat(7,1fr);display:grid}.week-day{flex-direction:column;display:flex}.week-day--past{opacity:.2;pointer-events:none}.week-day__header{padding-bottom:var(--space-md);margin-bottom:var(--space-md);border-bottom:1px solid var(--color-border);flex-direction:column;align-items:center;gap:2px;display:flex}.week-day__name{font-size:var(--text-xs);font-weight:var(--font-weight-bold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.week-day__date{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.week-day__slots{gap:var(--space-xs);flex-direction:column;align-items:stretch;display:flex}.week-day__empty{text-align:center;font-size:var(--text-sm);color:var(--color-border);padding:var(--space-sm) 0}.week-day__slot{width:100%;padding:var(--space-sm) 0;font-size:var(--text-xs);font-weight:var(--font-weight-medium);text-align:center;background:var(--color-bg-secondary);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;min-height:44px;transition:background-color var(--transition), border-color var(--transition);border:none}.week-day__slot:hover{background:var(--color-pink-light)}.booking-detail__grid{gap:var(--space-md);flex-direction:column;display:flex}.booking-detail__row{padding:var(--space-md) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);justify-content:space-between;align-items:center;display:flex}.booking-detail__row:last-child{border-bottom:none}.booking-detail__label{color:var(--color-text-muted)}.booking-detail__value{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.empty{text-align:center;padding:var(--space-3xl);color:var(--color-text-muted);font-size:var(--text-sm)}.page-state,.empty-state{justify-content:center;align-items:flex-start;gap:var(--space-md);min-height:180px;padding:var(--space-2xl);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);flex-direction:column;display:flex}.page-state--compact{min-height:92px;padding:var(--space-xl)}.page-state--error{border-color:color-mix(in srgb, var(--color-danger) 28%, var(--color-border))}.page-state__title,.empty-state__title{font-size:var(--text-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.page-state p,.empty-state p{max-width:52ch;font-size:var(--text-sm);color:var(--color-text-muted)}.page-state__indicator,.empty-state__mark{background:var(--color-text-primary);border-radius:50%;width:10px;height:10px}.empty-state__mark{background:var(--color-border-dark)}.empty-state__action{margin-top:var(--space-sm)}.app-state,.public-state{gap:var(--space-lg);padding:var(--space-lg);flex-direction:column}.app-state>*,.public-state>*{width:min(100%,520px)}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.eyebrow{font-size:var(--text-xs);line-height:1.2;font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.section-heading{margin-bottom:var(--space-lg);justify-content:space-between;align-items:end;display:flex}.section-heading h2{font-size:var(--text-md);margin-top:0}.login-card{width:min(360px,100vw - 32px)}.login-card .card__title{margin-top:var(--space-md);margin-bottom:var(--space-sm)}.login-card__intro{margin-bottom:var(--space-xl);font-size:var(--text-sm);color:var(--color-text-muted)}.form-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-message{margin-bottom:var(--space-md)}.form-message--info{color:var(--color-text-secondary)}.form-message--spaced{margin-top:var(--space-lg)}.inline-confirm{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:inline-flex}.table-wrap{overscroll-behavior-inline:contain;border-radius:var(--radius-lg);width:100%;overflow-x:auto}.table-wrap:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:3px}.stack>*+*{margin-top:var(--space-xl)}.form{gap:var(--space-lg);flex-direction:column;display:flex}.form__grow{flex:1;min-width:0}.form__actions{gap:var(--space-md);flex-wrap:wrap;align-items:center;display:flex}.form-message{font-size:var(--text-sm);line-height:var(--line-height-normal)}.form-message--error{color:var(--color-danger)}.form-message--success{color:var(--color-success)}.field-hint{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--line-height-normal)}.section-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.checkbox-row{gap:var(--space-md) var(--space-2xl);flex-wrap:wrap;display:flex}.checkbox{align-items:center;gap:var(--space-md);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-secondary);min-height:44px;display:inline-flex}.checkbox input{cursor:pointer;width:20px;height:20px}.btn--sm{padding:var(--space-xs) var(--space-md);font-size:var(--text-xs);min-height:36px}.toggle{background:var(--color-border-dark);cursor:pointer;width:44px;height:24px;transition:background var(--transition);border:none;border-radius:999px;flex-shrink:0;padding:0;position:relative}.toggle--on{background:var(--color-accent)}.toggle:disabled{opacity:.5;cursor:default}.toggle__knob{width:18px;height:18px;transition:left var(--transition);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle--on .toggle__knob{left:23px}.list-row{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.list-row:last-child{border-bottom:none}.customer-row{justify-content:space-between;align-items:center;gap:var(--space-lg);width:100%;padding:var(--space-md);margin-left:calc(var(--space-md) * -1);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-base);text-align:left;cursor:pointer;transition:background-color var(--transition);background:0 0;border:none;display:flex}.customer-row__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.customer-row__action{align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--color-text-muted);flex-shrink:0;display:inline-flex}.customer-row:hover{background:var(--color-bg-secondary)}.customer-row:focus-visible{outline:2px solid var(--color-pink);outline-offset:-2px}.table__actions{gap:var(--space-sm);justify-content:flex-end;display:flex}.tabular{font-variant-numeric:tabular-nums}.inline-form{align-items:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.input--narrow{width:84px}.weekday-picker{gap:var(--space-sm);flex-wrap:wrap;display:flex}.weekday-picker .btn{min-width:44px}.edit-inline{gap:var(--space-lg);padding:var(--space-md) 0;flex-wrap:wrap;align-items:flex-end;display:flex}.input--price{text-align:right;width:104px}.service-group+.service-group{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.service-group__head{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.leaf-row{align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-border);display:flex}.leaf-row__info{flex:1;min-width:0}.leaf-row__name{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.leaf-row__desc{font-size:var(--text-xs);color:var(--color-text-muted)}.icon-btn{padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);color:var(--color-text-muted);flex-shrink:0;min-width:44px;min-height:44px;line-height:1}.icon-btn:hover{color:var(--color-danger);background:0 0}.setting{gap:var(--space-md);flex-direction:column;display:flex}.setting+.setting{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border)}@media (width<=640px){.form__row{align-items:stretch;gap:var(--space-md);flex-direction:column}.form__row>.form__group,.form__row>.input{flex:none;width:100%}.form__row>.input--price,.form__row>.input--narrow{width:100%}.btn--sm{min-height:44px}.table--responsive,.table--responsive tbody,.table--responsive tr,.table--responsive td{width:100%;display:block}.table--responsive{background:0 0;border:0}.table--responsive thead{display:none}.table--responsive tr{padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg)}.table--responsive tr+tr{margin-top:var(--space-md)}.table--responsive td{gap:var(--space-md);padding:var(--space-sm) 0;text-align:right;overflow-wrap:anywhere;border:0;grid-template-columns:minmax(88px,.8fr) minmax(0,1.2fr);align-items:start;display:grid}.table--responsive td:before{content:attr(data-label);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--font-weight-medium);text-align:left;text-transform:uppercase;letter-spacing:.04em}.table--responsive .table__actions{justify-content:flex-end}.table--responsive tr:hover td{background:0 0}.weekday-picker{gap:var(--space-xs);grid-template-columns:repeat(4,minmax(44px,1fr));display:grid}.weekday-picker .btn{min-width:44px;padding-left:0;padding-right:0}.layout__container{padding-inline:var(--space-lg)}.layout__page .layout__content{padding-block:var(--space-xl)}.booking-back{margin-bottom:var(--space-xl)}.week-grid{gap:var(--space-sm);flex-direction:column;display:flex}.week-day{gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--color-border);grid-template-columns:86px minmax(0,1fr);align-items:start;display:grid}.week-day__header{padding:var(--space-xs) 0 0;border:0;align-items:flex-start;margin:0}.week-day__slots{gap:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.week-day__empty{justify-content:flex-start;align-items:center;min-height:44px;display:flex}.week-day__slot{padding-inline:var(--space-sm)}}@media (width<=359px){.leaf-row{gap:var(--space-sm) var(--space-md);grid-template-columns:minmax(0,1fr) 44px;align-items:center;display:grid}.leaf-row__info{grid-column:1/-1;width:100%}.leaf-row>.input--price{grid-column:1;width:100%}.leaf-row>.icon-btn{grid-column:2;justify-self:end}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.cms-doc{text-align:left;max-width:720px}.cms-section{padding:var(--space-xl);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.cms-section+.cms-section{margin-top:var(--space-xl)}.cms-section__label{margin-bottom:var(--space-lg);font-size:var(--text-xs);font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.cms-section__title{text-transform:none;letter-spacing:0}.cms-section__title:before{content:"·";margin:0 var(--space-sm)}.cms-block+.cms-block{margin-top:var(--space-xl)}.cms-field+.cms-field{margin-top:0}.cms-field__input{width:100%;margin-left:calc(var(--space-md) * -1);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;resize:none;transition:background-color var(--transition), border-color var(--transition);background:0 0;border:1px solid #0000;outline:none;display:block;overflow:hidden}.cms-field__input:hover{background:var(--color-bg-secondary)}.cms-field__input:focus{background:var(--color-bg);border-color:var(--color-pink)}.cms-field--changed .cms-field__input{border-color:var(--color-pink)}.cms-field__original{margin-top:var(--space-xs);font-size:var(--text-xs);line-height:var(--line-height-normal);font-weight:var(--font-weight-regular);color:var(--color-text-muted);display:block}.cms-field--h1{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary)}.cms-field--h2{font-size:var(--text-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary)}.cms-field--h3{font-size:var(--text-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);color:var(--color-text-primary)}.cms-field--h4{font-size:var(--text-md);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);color:var(--color-text-primary)}.cms-field--h5,.cms-field--h6{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);color:var(--color-text-primary)}.cms-field--p,.cms-field--span{font-size:var(--text-base);line-height:var(--line-height-loose);color:var(--color-text-secondary)}.cms-actions .btn:disabled{opacity:.4;cursor:default}.cms-actions{align-items:center;gap:var(--space-lg);max-width:720px;margin-top:var(--space-2xl);padding:var(--space-lg) 0;background:var(--color-bg);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.hero{background:#000;flex-direction:column;height:100dvh;display:flex;overflow:hidden}.hero__bar{justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-lg) var(--space-xl);flex:none;display:flex}.hero__logo{color:#fff;font-size:var(--text-md);font-weight:var(--font-weight-bold);letter-spacing:-.01em}.hero__tools{align-items:center;gap:var(--space-sm);display:flex;position:relative}.hero__icon{color:#fff;cursor:pointer;width:42px;height:42px;transition:background var(--transition), border-color var(--transition);background:0 0;border:1px solid #ffffff47;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.hero__icon:hover{background:#ffffff1f;border-color:#ffffff80}.hero__icon:focus-visible{outline-offset:2px;outline:2px solid #fff}.hero__menu{top:calc(100% + var(--space-md));z-index:20;min-width:240px;padding:var(--space-sm);background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:absolute;right:0}.hero__menu-item{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);color:var(--color-text-primary);text-align:left;cursor:pointer;transition:background var(--transition);background:0 0;border:0;text-decoration:none}.hero__menu-item:hover{background:var(--color-bg-secondary)}.hero__card{min-height:0;margin:0 var(--space-lg) var(--space-lg);background-color:#fff;background-image:radial-gradient(circle,#fea6c38c 1.1px,#0000 1.3px),linear-gradient(#fff 0% 58%,#fea6c342 84%,#fea6c39e 100%);background-size:18px 18px,100% 100%;border-radius:28px;flex:1;display:flex;overflow-y:auto}.hero__content{width:100%;max-width:980px;padding:var(--space-3xl) clamp(var(--space-xl), 6vw, var(--space-3xl));margin-block:auto}.hero__title{max-width:15ch;margin-bottom:var(--space-xl);letter-spacing:-.03em;font-size:clamp(2.1rem,7vw,4.4rem);line-height:1.05;font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.hero__lead{max-width:46ch;margin-bottom:var(--space-2xl);font-size:clamp(var(--text-base), 2.2vw, var(--text-md));line-height:var(--line-height-normal);color:var(--color-text-secondary)}.hero__cta{padding:var(--space-lg) var(--space-2xl);border-radius:var(--radius-lg);background:var(--color-accent);color:#fff;font-size:var(--text-base);font-weight:var(--font-weight-bold);cursor:pointer;transition:background var(--transition);border:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.hero__cta:hover{background:var(--color-accent-hover)}.hero__cta:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.login-modal{max-width:420px}@media (width<=640px){.hero__bar{padding:var(--space-lg)}.hero__card{margin:0 var(--space-md) var(--space-md);border-radius:20px}.hero__content{padding:var(--space-2xl) var(--space-xl)}.hero__cta{width:100%}}.stat-grid{gap:var(--space-lg);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.stat-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}.stat-card__label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-sm)}.stat-card__value{font-size:var(--text-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-tight)}.stat-card__sub{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-xs)}@media (width<=640px){.stat-grid{gap:var(--space-sm);margin-bottom:var(--space-lg);grid-template-columns:repeat(2,1fr)}.stat-card{padding:var(--space-md) var(--space-xs);text-align:center;min-width:0}.stat-card__label{letter-spacing:.01em;margin-bottom:2px;font-size:.625rem}.stat-card__value{font-size:var(--text-md)}}.cal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.cal__header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.cal__title{font-size:var(--text-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.cal__title span{margin-left:var(--space-sm);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--font-weight-regular)}.cal__header-actions{align-items:center;gap:var(--space-sm);display:flex}.cal__nav-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);width:44px;height:44px;font-size:var(--text-md);color:var(--color-text-secondary);background:var(--color-bg);transition:background-color var(--transition), border-color var(--transition), color var(--transition), opacity var(--transition);cursor:pointer;justify-content:center;align-items:center;display:flex}.cal__nav-btn:disabled{opacity:.35;cursor:not-allowed}.cal__week-nav{align-items:center;gap:var(--space-sm);display:flex}.cal__nav-kind{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.cal__nav-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.cal__form{border-bottom:1px solid var(--color-border);padding:var(--space-lg) var(--space-xl);background:var(--color-bg-secondary)}.cal__form-inner{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;display:grid}.cal__grid{overflow-x:auto}.cal__grid-inner{grid-template-rows:48px auto;grid-template-columns:52px repeat(7,1fr);min-width:680px;display:grid}.cal__corner{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-area:1/1}.cal__day-header{padding:var(--space-sm) 0;border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex-direction:column;grid-row:1;justify-content:center;align-items:center;gap:2px;height:48px;display:flex}.cal__day-header:last-of-type{border-right:none}.cal__day-name{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.cal__day-date{font-size:var(--text-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1}.cal__day-header--today .cal__day-date{background:var(--color-accent);color:#fff;width:26px;height:26px;font-size:var(--text-sm);border-radius:50%;justify-content:center;align-items:center;display:flex}.cal__time-col{border-right:1px solid var(--color-border);grid-area:2/1}.cal__time-label{height:var(--cal-row-h,56px);padding:var(--space-xs) var(--space-sm) 0 0;font-size:var(--text-xs);color:var(--color-text-muted);box-sizing:border-box;justify-content:flex-end;align-items:flex-start;display:flex}.cal__day-col{border-right:1px solid var(--color-border);grid-row:2;position:relative;overflow:hidden}.cal__day-surface{z-index:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.cal__day-surface:hover{background:#11111105}.cal__day-col:last-child{border-right:none}.cal__row-line{background:var(--color-border);pointer-events:none;height:1px;position:absolute;left:0;right:0}.cal__schedule{background:var(--color-info-surface);border:1px solid var(--color-info-border);border-radius:var(--radius-md);position:absolute;left:3px;right:3px;overflow:visible}.cal__schedule-hit{z-index:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.cal__booking{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition);z-index:1;text-align:left;color:inherit;position:absolute;left:4px;right:4px;overflow:hidden}.cal__booking:hover{box-shadow:var(--shadow-md)}.cal__booking--pending{box-shadow:inset 3px 0 0 var(--color-warning), var(--shadow-sm)}.cal__booking--confirmed{box-shadow:inset 3px 0 0 var(--color-success), var(--shadow-sm)}.cal__booking--cancelled{opacity:.45}.cal__booking-time{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.cal__booking-name{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cal__booking-service{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=640px){.cal__header{align-items:flex-start;gap:var(--space-md);padding:var(--space-lg);flex-direction:column}.cal__title span{margin:var(--space-xs) 0 0;display:block}.cal__header-actions{align-items:flex-start;gap:var(--space-md);flex-direction:column;width:100%}.cal__mobile-day-nav:before{content:"Päivä";margin-right:var(--space-xs);font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.cal__grid-inner{min-width:unset;grid-template-columns:44px 1fr}.cal__day-col--hidden-mobile,.cal__day-header.cal__day-col--hidden-mobile{display:none}.cal__mobile-day-nav{align-items:center;gap:var(--space-sm);display:flex}.cal__mobile-day-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:center;min-width:72px}}@media (width>=641px){.cal__mobile-day-nav{display:none}}
