/* Zapishet UI / 1.0 — the same visual contract is embedded in both products. */
:root{--z-deep:#0B0C0E;--z-base:#121417;--z-raised:#181B1F;--z-control:#1C2026;--z-hover:#22262D;--z-ink:#F3EFE6;--z-muted:#B4AFA4;--z-lime:#CCFF00;--z-on-lime:#14160F;--z-ease:cubic-bezier(.22,.78,.2,1);--z-fast:180ms;--z-response:360ms;--z-travel:420ms;--z-radius:18px;--z-control-radius:8px;--z-line:#F3EFE619;--z-glass:linear-gradient(128deg,#22262Dd9,#181B1Fea 38%,#121417f2);--z-type:'Manrope',Arial,sans-serif;--z-numerals:'Space Grotesk','Manrope',Arial,sans-serif}
:is(.site,.app-shell,dialog) svg{stroke-width:1.65}
:is(.site,.app-shell,dialog) :is(.slot,.day strong,.duration-value,.duration-heading output,.duration-header output,.receipt-code,.z-ticket__time,.z-ticket__end){font-variant-numeric:tabular-nums}
:is(.site,.app-shell,dialog) :is(.card-kicker,.brand-descriptor,.brand-caption,.stage-note,.eyebrow,.calendar-kicker,.demo-label){font-family:var(--z-numerals);font-weight:500}
:is(.site,.app-shell,dialog) :is(.card-foot,.security-note,.receipt-note,.demo-note,.range-caption,.range-ticks){color:var(--z-muted)}
:is(.site,.app-shell,dialog) :is(.booking-card,.time-card,.receipt.glass,.appointment.glass){border-color:var(--z-line);border-top-color:#F3EFE637;border-radius:var(--z-radius);background:var(--z-glass);box-shadow:0 24px 58px -20px #0009,inset 0 1px #F3EFE60a}
:is(.site,.app-shell,dialog) :is(.service-card,.select-wrap select,.slot,.day){border-radius:var(--z-control-radius)}
:is(.site,.app-shell,dialog) :is(.live-badge,.demo-label,.nav-count){border-radius:3px;clip-path:polygon(0 0,calc(100% - 4px) 0,100% 4px,100% 100%,0 100%)}
/* One bright action. Selection is a contained source of light, not a second CTA. */
:is(.site,.app-shell,dialog) .primary{min-height:54px;font:700 14px/1.4 var(--z-type);color:var(--z-on-lime);background:linear-gradient(130deg,#D8FF3D,#CCFF00 60%,#B8E600);border-radius:5px;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px));transition:transform var(--z-response) var(--z-ease),translate var(--z-response) var(--z-ease),scale var(--z-fast) var(--z-ease),box-shadow var(--z-response) var(--z-ease);box-shadow:inset 0 1px #F3EFE675,inset 0 -1px #14160F26}
:is(.site,.app-shell,dialog) .primary:before{inset:0;background:radial-gradient(ellipse at var(--touch-x,20%) var(--touch-y,0%),#F3EFE652,transparent 78%);transform:none;opacity:0;transition:opacity var(--z-response) var(--z-ease)}
:is(.site,.app-shell,dialog) .primary:after{display:none}
:is(.site,.app-shell,dialog) .primary .button-engine{width:52px;min-height:54px;background:#14160F09;flex:none}
:is(.site,.app-shell,dialog) .primary .button-engine:before{translate:0 0;transition:translate var(--z-response) var(--z-ease);background:#14160F2e}
:is(.site,.app-shell,dialog) .primary .button-engine svg:first-child{width:18px;height:18px;opacity:1;transform:translate3d(0,0,0);transition:transform var(--z-response) var(--z-ease)}
:is(.site,.app-shell,dialog) .primary:disabled{color:var(--z-muted);background:var(--z-control);box-shadow:inset 0 1px #F3EFE614}
:is(.site,.app-shell,dialog) :is(.day-indicator,.day-track .selection-indicator){background:linear-gradient(135deg,#CCFF0026,#CCFF000a);border:1px solid #CCFF0059;box-shadow:inset 0 1px #CCFF0026,0 4px 16px -8px #CCFF0026;border-radius:var(--z-control-radius)}
:is(.site,.app-shell,dialog) :is(.slot-indicator,.slot-track .selection-indicator){background:linear-gradient(135deg,#CCFF0020,#CCFF0005);border:1px solid #CCFF0059;box-shadow:inset 0 1px #CCFF0020,0 4px 16px -8px #CCFF0020;border-radius:var(--z-control-radius)}
:is(.site,.app-shell,dialog) .day[aria-pressed=true]{color:var(--z-lime);border-color:#CCFF0059;background:#CCFF000d}
:is(.site,.app-shell,dialog) .day[aria-pressed=true] span{color:var(--z-lime)}
:is(.site,.app-shell,dialog) :is(.selection-ready,.is-ready) .day[aria-pressed=true]{background:transparent;border-color:transparent}
:is(.site,.app-shell,dialog) .slot[aria-pressed=true]{color:var(--z-lime)}
:is(.site,.app-shell,dialog) :is(.selection-indicator,.service-selection){transition:transform var(--z-travel) var(--z-ease),width var(--z-travel) var(--z-ease),height var(--z-travel) var(--z-ease),opacity var(--z-response) var(--z-ease);will-change:auto}
:is(.site,.app-shell,dialog) :is(button,.reminder){transition:translate var(--z-response) var(--z-ease),opacity var(--z-response) var(--z-ease),transform var(--z-response) var(--z-ease),box-shadow var(--z-response) var(--z-ease),color var(--z-response) var(--z-ease),border-color var(--z-response) var(--z-ease),background-color var(--z-response) var(--z-ease),scale var(--z-fast) var(--z-ease)}
:is(.site,.app-shell,dialog) :is(.day,.slot,.icon-button,.service-card,.appointment):active:not(:disabled),:is(.site,.app-shell,dialog) .is-pressed:not(:disabled){scale:.985}
:is(.site,.app-shell,dialog) .primary.is-pressed:not(:disabled){transform:translate3d(0,0,0);scale:.985}
:is(.site,.app-shell,dialog) .primary:is(.is-lit,:focus-visible):not(:disabled):before{opacity:.85}
:is(.site,.app-shell,dialog) .primary.is-pressed:not(:disabled) .button-engine svg:first-child{transform:translate3d(2px,-2px,0)}
:is(.site,.app-shell,dialog) .duration{box-shadow:none!important;outline:none;filter:none}
:is(.site,.app-shell,dialog) .duration::-webkit-slider-thumb{transition:box-shadow var(--z-response) var(--z-ease),background-color var(--z-response) var(--z-ease)}
:is(.site,.app-shell,dialog) .duration::-moz-range-thumb{transition:box-shadow var(--z-response) var(--z-ease),background-color var(--z-response) var(--z-ease)}
:is(.site,.app-shell,dialog) .duration:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #121417,0 0 0 5px #CCFF0099}
:is(.site,.app-shell,dialog) .duration:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px #121417,0 0 0 5px #CCFF0099}
.app-shell .service-card[aria-pressed=true]{border-color:#CCFF0047;border-top-color:#CCFF0066}
.app-shell .service-selection{background:radial-gradient(ellipse at 4% 0%,#CCFF0017,transparent 68%),linear-gradient(130deg,#22262D77,#181B1F88);box-shadow:inset 0 1px #CCFF001c,0 10px 24px -15px #0009}
.app-shell .bottom-nav .nav-indicator{background:linear-gradient(130deg,#CCFF000d,#CCFF0004);border-color:#F3EFE61c}
/* Digital ticket: identical type, grouping and detail rhythm in both products. */
:is(.site,.app-shell,dialog) .z-ticket{min-width:0;text-align:left;--z-ticket-time:56px}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 22px}
:is(.site,.app-shell,dialog) .z-ticket :is(.z-ticket__eyebrow,.z-ticket__code){font:500 9px/1.5 var(--z-numerals);letter-spacing:.1em;color:var(--z-muted);text-transform:uppercase;white-space:nowrap}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__code{display:inline-flex;gap:4px;align-items:center;padding:4px 6px;border:1px solid #F3EFE61f;border-radius:3px;clip-path:polygon(0 0,calc(100% - 4px) 0,100% 4px,100% 100%,0 100%)}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__seal{display:grid;place-items:center;width:52px;height:52px;border:1px solid #CCFF003b;border-top-color:#CCFF0066;border-radius:13px;background:radial-gradient(ellipse at 20% 0%,#CCFF001a,#CCFF0004);box-shadow:inset 0 1px #F3EFE60a;margin:0 0 18px;color:var(--z-lime)}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__seal svg{width:26px;height:26px}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__seal>span{display:none}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__status{font:500 11px/1.5 var(--z-type);letter-spacing:0;color:var(--z-muted);margin:0 0 8px}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__title{font:500 26px/1.25 var(--z-type);letter-spacing:-.035em;color:var(--z-ink);margin:0 0 22px;outline-offset:4px}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__clock{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0;line-height:1;letter-spacing:normal}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__time{display:inline-block;font:500 var(--z-ticket-time)/1 var(--z-numerals);font-variant-numeric:tabular-nums;letter-spacing:-.05em;color:var(--z-ink);margin:0}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__end{font:400 18px/1.2 var(--z-numerals);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--z-muted);white-space:nowrap}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__date{display:block;font:400 13px/1.6 var(--z-type);letter-spacing:0;color:var(--z-muted);margin:12px 0 0}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__rule{position:relative;display:block;flex:none;height:1px;border:0;margin:23px 0 20px;background:linear-gradient(90deg,#F3EFE632 50%,transparent 50%) 0 50%/8px 1px repeat-x}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__rule:before,:is(.site,.app-shell,dialog) .z-ticket .z-ticket__rule:after{display:none}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__details{display:grid;gap:12px;margin:0;padding:0;border:0;border-radius:0;background:none}
:is(.site,.app-shell,dialog) .z-ticket :is(.z-ticket__details>div,.z-ticket__detail){display:grid;grid-template-columns:70px minmax(0,1fr);gap:12px;margin:0;font:400 12px/1.6 var(--z-type);letter-spacing:0}
:is(.site,.app-shell,dialog) .z-ticket :is(.z-ticket__details dt,.z-ticket__label){color:var(--z-muted);margin:0}
:is(.site,.app-shell,dialog) .z-ticket :is(.z-ticket__details dd,.z-ticket__value){color:var(--z-ink);text-align:right;max-width:none;min-width:0;margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__signature{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #F3EFE614;margin:20px 0 0;padding:14px 0 0;font:500 9px/1.4 var(--z-numerals);letter-spacing:.11em;color:var(--z-muted)}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__signature>span:first-child{display:flex;align-items:center;gap:7px;color:var(--z-ink)}
:is(.site,.app-shell,dialog) .z-ticket .z-ticket__signature>span:first-child:before{content:'';width:5px;height:7px;background:var(--z-lime);clip-path:polygon(0 0,100% 0,100% 65%,50% 100%,0 100%)}
.site .z-ticket>.book-button{margin-top:22px}
.app-shell .receipt.z-ticket{padding:24px}
.app-shell .appointment.z-ticket--compact{padding:20px;--z-ticket-time:36px}
.app-shell .z-ticket--compact .z-ticket__top{margin-bottom:18px}
.app-shell .z-ticket--compact .z-ticket__status{margin:0;font:500 9px/1.4 var(--z-numerals);letter-spacing:.035em;color:var(--z-muted)}
.app-shell .z-ticket--compact .z-ticket__status:before{background:var(--z-lime);box-shadow:none}
.app-shell .z-ticket--compact .z-ticket__end{font-size:15px}
.app-shell .z-ticket--compact .z-ticket__date{font-size:12px;margin-top:10px}
.app-shell .z-ticket--compact .z-ticket__rule{margin:18px 0 16px}
.app-shell .z-ticket--compact .z-ticket__details{gap:9px}
.app-shell .z-ticket--compact .z-ticket__signature{margin-top:16px;padding-top:12px}
.app-shell .z-ticket--compact .appointment-main>svg{transition:transform var(--z-response) var(--z-ease);color:var(--z-muted)}
@media(hover:hover) and (pointer:fine){
  :is(.site,.app-shell,dialog) .primary:hover:not(:disabled):not(.is-pressed){transform:translate3d(0,-1px,0);background:linear-gradient(130deg,#D8FF3D,#CCFF00 60%,#B8E600);border-radius:5px;box-shadow:inset 0 1px #F3EFE675,inset 0 -1px #14160F26}
  :is(.site,.app-shell,dialog) .primary:hover:not(:disabled):before{opacity:.8}
  :is(.site,.app-shell,dialog) .primary:hover:not(:disabled):not(.is-pressed) .button-engine svg:first-child{transform:translate3d(4px,-4px,0)}
  :is(.site,.app-shell,dialog) .primary:hover:not(:disabled) .button-engine:before{translate:3px 0}
  .app-shell .z-ticket--compact:hover .appointment-main>svg{transform:translate3d(3px,-3px,0)}
}
@media(max-width:360px){:is(.site,.app-shell,dialog) .z-ticket{--z-ticket-time:50px}.app-shell .receipt.z-ticket{padding:20px}.app-shell .appointment.z-ticket--compact{--z-ticket-time:34px;padding:17px}:is(.site,.app-shell,dialog) .z-ticket .z-ticket__eyebrow{font-size:8px;letter-spacing:.06em}:is(.site,.app-shell,dialog) .z-ticket .z-ticket__clock{gap:9px}:is(.site,.app-shell,dialog) .z-ticket .z-ticket__end{font-size:16px}}
@media(prefers-reduced-motion:reduce){:is(.site,.app-shell,dialog) *, :is(.site,.app-shell,dialog) *:before,:is(.site,.app-shell,dialog) *:after{transition:none!important;animation:none!important}}
body.motion-paused :is(.site,.app-shell,dialog) *,body.motion-paused :is(.site,.app-shell,dialog) *:before,body.motion-paused :is(.site,.app-shell,dialog) *:after{transition:none!important;animation:none!important}
