:root{color-scheme:light;--bg: #f5efed;--fg: #0f0a0a;--muted: #6f6560;--accent: #64f58d;--accent-dim: #3fd96f;--accent-text: #0e9648;--cta-ink: #0f0a0a;--err: #ff674d;--ok: #0e9648;--warn: #feea00;--warn-text: #7a6a00;--card: #ffffff;--card-2: #fbf7f5;--line: #e3d8d3;--admin-accent: #0f0a0a;--safe-bottom: env(safe-area-inset-bottom, 0px);--font: "Rubik", system-ui, sans-serif;--font-display: var(--font);--font-head: var(--font);--font-body: var(--font);--weight: 500;--weight-bold: 700;--text: 14px;--text-lg: 18px;--text-xl: 26px;--text-xs: var(--text);--text-sm: var(--text);--text-md: var(--text);--text-2xl: var(--text-xl);font-family:var(--font);font-size:var(--text);font-weight:var(--weight);background:var(--bg);color:var(--fg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}button,input,select{font:inherit;color:inherit}.app{max-width:480px;margin:0 auto;padding:20px 18px calc(100px + var(--safe-bottom));min-height:100vh}.app-admin{--accent: var(--admin-accent);--accent-dim: #3a3230;--accent-text: var(--admin-accent);--cta-ink: #f5efed}.reveal{animation:rise .45s ease both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.header{margin-bottom:22px;text-align:center}.brand-logo{display:block;width:min(200px,58vw);height:auto;object-fit:contain;margin:0 auto}.header h1{margin:14px 0 4px;font-family:var(--font);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:uppercase}.header .sub{margin-top:10px}.book-hello-hi{margin:12px 0 0;font-family:var(--font);font-size:var(--text);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:uppercase;color:var(--fg)}.sub{margin:0;color:var(--muted);font-size:var(--text-sm)}.section-title,.about-title,.gear-panel-title,.main h2,.admin-head h2,.abonement-create h3,.mine-view .section-title{font-family:var(--font);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:uppercase;margin:0 0 10px}.section-title{font-size:var(--text-lg)}.time-day-title,.receipt-time,.revenue-total{font-family:var(--font);font-weight:var(--weight-bold);letter-spacing:.01em;line-height:1.1}.time-day-title{font-size:var(--text-2xl);margin:0 0 8px;text-wrap:balance}.muted{color:var(--muted)}.small{font-size:var(--text-xs)}.error{color:var(--err)}.ok{color:var(--ok)}.book{margin-bottom:12px}.stepper{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:18px}.step{display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:transparent;border-radius:10px;padding:10px 6px;font-family:var(--font);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:lowercase;color:var(--muted);cursor:pointer}.step-active{border-color:var(--accent-dim);color:var(--accent-text);background:color-mix(in srgb,var(--accent) 20%,transparent)}.step-done{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--fg)}.stepper-minimal{gap:0;margin-bottom:14px;padding:0 2px;background:color-mix(in srgb,var(--fg) 5%,transparent);border-radius:999px;overflow:hidden}.stepper-minimal .step{border:none;border-radius:0;padding:8px 4px;background:transparent;color:color-mix(in srgb,var(--muted) 70%,transparent);transition:color .2s ease,background .2s ease,transform .2s ease}.stepper-minimal .step-active{color:var(--fg);background:color-mix(in srgb,var(--accent) 32%,transparent);animation:step-tab-pop .32s ease}.stepper-minimal .step-done{color:var(--accent-text);background:transparent}.step-panel{display:grid;gap:4px}.step-enter-fwd{animation:step-enter-fwd .34s ease both}.step-enter-back{animation:step-enter-back .34s ease both}.step-enter-none{animation:none}@keyframes step-enter-fwd{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}@keyframes step-enter-back{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:none}}@keyframes step-tab-pop{0%{transform:scale(1)}45%{transform:scale(1.05)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.step-enter-fwd,.step-enter-back,.stepper-minimal .step-active{animation:none}}.step-panel-sticky{padding-bottom:76px}.step-back-row{margin-bottom:10px}.btn-back{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:12px;padding:11px 14px;background:color-mix(in srgb,var(--fg) 7%,transparent);color:var(--fg);font-family:var(--font);font-size:var(--text);font-weight:var(--weight-bold);letter-spacing:.01em;cursor:pointer;transition:background .15s ease,transform .12s ease}.btn-back:active{transform:scale(.97);background:color-mix(in srgb,var(--accent) 28%,transparent)}.btn-back-arrow{font-size:var(--text-lg);line-height:1;opacity:.7}.book-day-title{margin:0 0 12px;font-family:var(--font);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:uppercase;line-height:1.1}.cal-quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.cal-chip{border:none;background:color-mix(in srgb,var(--fg) 6%,transparent);color:var(--fg);border-radius:999px;padding:8px 14px;font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.03em;text-transform:uppercase;cursor:pointer;transition:background .15s ease,transform .12s ease,color .15s ease}.cal-chip:active:not(:disabled){transform:scale(.96)}.cal-chip:disabled{opacity:.35;cursor:not-allowed}.cal-chip-active{background:color-mix(in srgb,var(--accent) 42%,transparent);color:var(--fg)}.cal-meta{margin:0 0 4px;text-align:center}.cal-month-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 2px}.cal-month{margin:0;flex:1;text-align:center;font-family:var(--font);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase}.cal-month-nav{flex:0 0 auto;width:36px;height:36px;border:none;border-radius:12px;background:color-mix(in srgb,var(--fg) 5%,transparent);color:var(--fg);font-size:var(--text-lg);line-height:1;cursor:pointer;transition:opacity .15s ease,background .15s ease,transform .12s ease}.cal-month-nav:disabled{opacity:.3;cursor:not-allowed}.cal-month-nav:not(:disabled):active{background:color-mix(in srgb,var(--accent) 28%,transparent);transform:scale(.94)}.cal{margin:12px 0 8px;padding:12px 10px 10px;border-radius:20px;border:none;background:radial-gradient(90% 70% at 100% 0%,color-mix(in srgb,var(--fg) 5%,transparent),transparent 55%),linear-gradient(165deg,#fff 0%,var(--card-2) 100%);box-shadow:0 10px 28px color-mix(in srgb,var(--fg) 5%,transparent)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-bottom:6px}.cal-wd{text-align:center;font-family:var(--font);font-size:var(--text);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:uppercase;color:var(--muted);min-width:0}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.cal-slide-fwd{animation:cal-slide-fwd .32s ease both}.cal-slide-back{animation:cal-slide-back .32s ease both}@keyframes cal-slide-fwd{0%{opacity:.35;transform:translate(14px)}to{opacity:1;transform:none}}@keyframes cal-slide-back{0%{opacity:.35;transform:translate(-14px)}to{opacity:1;transform:none}}.cal-cell{position:relative;box-sizing:border-box;width:100%;min-width:0;aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:transparent;border-radius:14px;padding:0;margin:0;cursor:pointer;color:var(--fg);overflow:hidden;animation:cal-cell-in .35s ease both;transition:background .15s ease,color .15s ease,transform .12s ease}@keyframes cal-cell-in{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}.cal-cell:active:not(:disabled){transform:scale(.92)}.cal-empty{pointer-events:none;visibility:hidden;animation:none}.cal-num{font-family:var(--font);font-size:var(--text-md);font-weight:var(--weight-bold);line-height:1}.cal-today .cal-num{font-weight:var(--weight-bold);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--warn) 80%,var(--fg))}.cal-today:not(.cal-active){background:transparent}.cal-active{background:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--fg);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--accent-dim) 70%,transparent)}.cal-active .cal-num{font-family:var(--font);font-size:var(--text-lg);font-weight:var(--weight-bold);text-decoration:none}.cal-occ-1:not(.cal-active){background:color-mix(in srgb,var(--fg) 4%,transparent)}.cal-occ-2:not(.cal-active){background:color-mix(in srgb,var(--warn) 18%,transparent)}.cal-occ-3:not(.cal-active){background:color-mix(in srgb,var(--err) 14%,var(--warn) 10%)}.cal-legend{display:flex;flex-wrap:wrap;gap:10px 14px;margin:10px 0 0;font-size:var(--text);color:var(--muted)}.cal-legend span{display:inline-flex;align-items:center;gap:6px}.leg-occ-1{background:color-mix(in srgb,var(--fg) 4%,transparent)}.leg-occ-2{background:color-mix(in srgb,var(--warn) 18%,transparent)}.leg-occ-3{background:color-mix(in srgb,var(--err) 14%,var(--warn) 10%)}.cal-cell:disabled{opacity:.28;cursor:not-allowed}.cal-past:disabled{opacity:.32}.cal-past .cal-num{color:var(--muted)}@media(prefers-reduced-motion:reduce){.cal-slide-fwd,.cal-slide-back,.cal-cell{animation:none}}.grid-label{font-family:var(--font);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:8px 0}.night-label{margin-top:16px;color:color-mix(in srgb,var(--accent-text) 70%,var(--muted))}.slot-legend{display:flex;flex-wrap:wrap;gap:12px 16px;margin:4px 0 12px;font-size:var(--text);color:var(--muted)}.slot-legend span{display:inline-flex;align-items:center;gap:6px}.leg{display:inline-block;width:12px;height:12px;border-radius:4px;border:1px solid var(--line)}.leg-free{background:var(--card)}.leg-busy{background:repeating-linear-gradient(-45deg,#ece2de,#ece2de 2px,var(--card) 2px,var(--card) 4px)}.leg-pick{background:color-mix(in srgb,var(--accent) 55%,var(--card));border-color:var(--accent-dim)}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}.slots-picking .slot:not(.slot-busy):not(.slot-past):not(.slot-active):not(.slot-in-range):not(.slot-end-hint){opacity:.55;transition:opacity .22s ease,background .2s ease,border-color .2s ease,transform .18s ease}.slot{position:relative;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:12px 6px 10px;min-height:52px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;animation:slot-in .32s ease both;animation-delay:calc(var(--slot-i, 0) * 18ms);transition:background .2s ease,border-color .2s ease,transform .18s ease,opacity .22s ease,box-shadow .2s ease}@keyframes slot-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.slot:active:not(.slot-busy):not(.slot-past){transform:scale(.94)}.slot-active{border-color:var(--accent-dim);background:color-mix(in srgb,var(--accent) 55%,var(--card));color:var(--fg);z-index:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-dim) 40%,transparent);animation:slot-pop .34s cubic-bezier(.22,1.2,.36,1)}.slot-in-range{border-color:transparent;background:color-mix(in srgb,var(--accent) 28%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent-dim) 55%,transparent);animation:slot-range-in .28s ease both;animation-delay:calc(var(--range-i, 0) * 28ms)}.slot-end-hint{border-color:color-mix(in srgb,var(--accent-dim) 55%,var(--line));background:color-mix(in srgb,var(--accent) 12%,var(--card));transition:background .2s ease,border-color .2s ease,transform .18s ease}.slot-end-hint:hover,.slot-end-hint:focus-visible{background:color-mix(in srgb,var(--accent) 22%,var(--card));transform:scale(1.03)}@keyframes slot-pop{0%{transform:scale(.9)}55%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes slot-range-in{0%{opacity:.35;transform:scale(.96)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.slot,.slot-active,.slot-in-range{animation:none}}.slot-busy{background:repeating-linear-gradient(-45deg,var(--card),var(--card) 3px,#e8ddd8 3px,#e8ddd8 6px);color:var(--muted);cursor:not-allowed;text-decoration:none}.slot-past{opacity:.4;background:#f0e8e4;cursor:not-allowed}.slot-busy.slot-in-range,.slot-busy.slot-end-hint,.slot-busy.slot-active,.slot-past.slot-in-range,.slot-past.slot-end-hint,.slot-past.slot-active{border-color:var(--line);box-shadow:none;color:var(--muted)}.slot-busy.slot-in-range,.slot-busy.slot-end-hint,.slot-busy.slot-active{background:repeating-linear-gradient(-45deg,var(--card),var(--card) 3px,#e8ddd8 3px,#e8ddd8 6px);opacity:1}.slot-past.slot-in-range,.slot-past.slot-end-hint,.slot-past.slot-active{opacity:.4;background:#f0e8e4}.slot-label-muted{text-decoration:line-through;opacity:.7}.slot-mark{font-family:var(--font);font-size:var(--text);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:uppercase;color:var(--muted);line-height:1;text-decoration:none}.slot-busy .slot-mark{color:color-mix(in srgb,var(--err) 70%,var(--muted));text-decoration:none}.slot-day{display:block;font-size:var(--text);letter-spacing:.04em;color:var(--muted)}.pick-hint{margin:0 0 6px}.receipt{padding:20px 18px 16px;margin:4px 0 16px;border-radius:16px;background:var(--card);border:1px solid var(--line);box-shadow:0 10px 28px color-mix(in srgb,var(--fg) 6%,transparent)}.receipt-eyebrow{margin:0 0 6px;font-family:var(--font);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.receipt-date{margin:0;font-family:var(--font);font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--muted)}.receipt-time{margin:6px 0 14px;font-size:var(--text-2xl)}.receipt-rows{list-style:none;margin:0;padding:12px 0 0;border-top:1px dashed var(--line);display:grid;gap:10px}.receipt-rows li{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:var(--text-sm)}.receipt-rows span{color:var(--muted)}.receipt-rows strong{font-weight:var(--weight-bold);text-align:right}.receipt-rows .receipt-total{margin-top:2px;padding-top:10px;border-top:1px dashed var(--line);font-size:var(--text-md)}.receipt-rows .receipt-total strong{font-family:var(--font);font-size:var(--text-lg);font-weight:var(--weight-bold)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer}.switch-copy{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-width:0}.switch-copy strong{font-size:var(--text-sm);font-weight:var(--weight-bold)}.switch-hint{width:100%;font-size:var(--text-xs);color:var(--muted)}.price-tag{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--warn) 46%,var(--card));color:var(--warn-text);font-size:var(--text);font-weight:var(--weight-bold);white-space:nowrap}.switch-row input{position:absolute;opacity:0;pointer-events:none}.switch{flex:0 0 auto;width:48px;height:28px;padding:3px;border-radius:999px;background:var(--line);transition:background .18s ease}.switch-knob{display:block;width:22px;height:22px;border-radius:50%;background:var(--card);box-shadow:0 2px 6px color-mix(in srgb,var(--fg) 18%,transparent);transition:transform .18s ease}.switch-row input:checked+.switch{background:var(--accent)}.switch-row input:checked+.switch .switch-knob{transform:translate(20px)}.switch-row input:focus-visible+.switch{outline:2px solid var(--accent-text);outline-offset:2px}.switch-disabled{opacity:.55;cursor:not-allowed}.sticky-cta{position:sticky;bottom:calc(88px + var(--safe-bottom));z-index:20;margin-top:12px;padding-top:4px;background:linear-gradient(180deg,transparent,var(--bg) 28%)}.sticky-cta .cta{margin-top:0;box-shadow:0 8px 24px color-mix(in srgb,var(--accent-dim) 35%,transparent)}.field{display:grid;gap:6px;margin-bottom:12px}.field span{font-size:var(--text-xs);color:var(--muted)}.field input,.field select{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:12px 14px;outline:none}.field input:focus,.field select:focus{border-color:var(--accent-dim)}.check{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:var(--text)}.cta{width:100%;border:none;border-radius:14px;padding:15px 16px;background:var(--accent);color:var(--cta-ink);font-family:var(--font);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:uppercase;font-size:var(--text);cursor:pointer;margin-top:8px;transition:transform .12s ease,opacity .15s ease}.cta:active{transform:scale(.98)}.cta:disabled{opacity:.45;cursor:not-allowed}.cta-soft{background:color-mix(in srgb,var(--accent) 25%,var(--card));color:var(--accent-text);border:1px solid color-mix(in srgb,var(--accent-dim) 45%,var(--line))}.cta-pay{margin-top:12px}.cta-cancel{margin-top:0;background:var(--err);color:var(--cta-ink)}.booking-card-actions .cta,.booking-card-actions .cta-pay,.booking-card-actions .cta-cancel{margin-top:0}.linkish{border:none;background:transparent;color:var(--accent-text);cursor:pointer;padding:0;font-size:var(--text)}.abo-dash{position:relative;margin-bottom:22px;padding:18px 16px 16px;border-radius:20px;overflow:hidden;border:none;background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--accent) 34%,transparent),transparent 55%),radial-gradient(90% 70% at 0% 100%,color-mix(in srgb,var(--warn) 18%,transparent),transparent 50%),linear-gradient(160deg,#fff 0%,var(--card-2) 55%,color-mix(in srgb,var(--accent) 10%,#fff) 100%);box-shadow:0 10px 28px color-mix(in srgb,var(--fg) 6%,transparent)}.abo-dash-unpaid{background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--err) 16%,transparent),transparent 55%),linear-gradient(160deg,#fff,#fff6f4)}.abo-dash-glow{pointer-events:none;position:absolute;inset:auto -20% -40% auto;width:180px;height:180px;border-radius:50%;background:color-mix(in srgb,var(--accent) 22%,transparent);filter:blur(28px);opacity:.7;animation:abo-pulse 4.5s ease-in-out infinite}@keyframes abo-pulse{0%,to{transform:scale(1);opacity:.55}50%{transform:scale(1.12);opacity:.85}}@media(prefers-reduced-motion:reduce){.abo-dash-glow{animation:none}}.abo-dash-top{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}.abo-dash-label{margin:0 0 4px;font-family:var(--font);font-size:var(--text);font-weight:var(--weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.abo-dash-title{margin:0;font-family:var(--font);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;line-height:1.15}.abo-dash-pill{flex:0 0 auto;margin-top:2px;padding:5px 9px;border-radius:999px;font-size:var(--text);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent}.abo-dash-pill-ok{color:var(--accent-text);background:color-mix(in srgb,var(--accent) 28%,transparent);border-color:color-mix(in srgb,var(--accent-dim) 35%,transparent)}.abo-dash-pill-warn{color:var(--err);background:color-mix(in srgb,var(--err) 12%,transparent);border-color:color-mix(in srgb,var(--err) 28%,transparent)}.abo-dash-body{position:relative;z-index:1;display:flex;align-items:center;gap:16px}.abo-ring{position:relative;flex:0 0 auto;width:108px;height:108px}.abo-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}.abo-ring-track,.abo-ring-value{fill:none;stroke-width:2.8}.abo-ring-track{stroke:color-mix(in srgb,var(--fg) 10%,transparent)}.abo-ring-value{stroke:var(--accent-dim);stroke-linecap:round;stroke-dasharray:var(--remain, 0) 100;transition:stroke-dasharray .55s ease}.abo-dash-unpaid .abo-ring-value{stroke:color-mix(in srgb,var(--err) 55%,var(--muted))}.abo-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;line-height:1}.abo-ring-num{font-family:var(--font);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:.02em}.abo-ring-unit{margin-top:2px;font-size:var(--text);font-weight:var(--weight-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.abo-dash-meta{min-width:0;flex:1}.abo-dash-remain{margin:0 0 4px;font-size:var(--text-sm);color:var(--muted)}.abo-dash-total{margin:0 0 8px;font-size:var(--text-md);line-height:1.3}.abo-dash-used{margin:0}.abo-warn{position:relative;z-index:1;margin:12px 0 0;color:var(--err);font-size:var(--text-xs)}.abo-dash-cta{position:relative;z-index:1;margin-top:14px}.abo-progress{margin:12px 0 8px;height:6px;border-radius:999px;background:var(--line);overflow:hidden}.abo-progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-dim),var(--accent));transition:width .4s ease}.abo-stats{margin:0;font-size:var(--text)}.mine-view{padding-bottom:8px}.empty-hint{margin-top:24px}.mine-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;margin-top:48px;padding:12px 8px 24px}.mine-empty-title{margin:0;font-family:var(--font);font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:.02em;line-height:1.1}.mine-empty .cta{width:min(280px,100%)}.booking-cards{list-style:none;padding:0;margin:0;display:grid;gap:12px}.booking-card{position:relative;padding:18px 16px 16px;border-radius:20px;overflow:hidden;border:none;background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--accent) 34%,transparent),transparent 55%),radial-gradient(90% 70% at 0% 100%,color-mix(in srgb,var(--warn) 18%,transparent),transparent 50%),linear-gradient(160deg,#fff 0%,var(--card-2) 55%,color-mix(in srgb,var(--accent) 10%,#fff) 100%);box-shadow:0 10px 28px color-mix(in srgb,var(--fg) 6%,transparent);animation:rise .4s ease both}.booking-card:after{content:"";pointer-events:none;position:absolute;inset:auto -20% -40% auto;width:160px;height:160px;border-radius:50%;background:color-mix(in srgb,var(--accent) 22%,transparent);filter:blur(28px);opacity:.65;animation:abo-pulse 4.5s ease-in-out infinite}.booking-card>*{position:relative;z-index:1}.booking-card.status-pay{background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--warn) 28%,transparent),transparent 55%),linear-gradient(160deg,#fff,#fffceb)}.booking-card.status-pay:after{background:color-mix(in srgb,var(--warn) 35%,transparent)}.booking-card.status-post{background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--warn) 22%,transparent),transparent 55%),linear-gradient(160deg,#fff 0%,var(--card-2) 55%,color-mix(in srgb,var(--warn) 12%,#fff) 100%)}.booking-card.status-post:after{background:color-mix(in srgb,var(--warn) 28%,transparent)}.booking-card.status-cancel{background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--err) 16%,transparent),transparent 55%),linear-gradient(160deg,#fff,#fff6f4);opacity:.85}.booking-card.status-cancel:after{background:color-mix(in srgb,var(--err) 18%,transparent)}@media(prefers-reduced-motion:reduce){.booking-card:after{animation:none}}.booking-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.booking-card-date{font-family:var(--font);letter-spacing:.04em;text-transform:uppercase;font-size:var(--text-md);font-weight:var(--weight-bold)}.booking-card-time{margin:8px 0 0;color:var(--muted);font-size:var(--text-sm)}.booking-card-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px}.status-pill{font-family:var(--font);font-size:var(--text);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;padding:5px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.status-pill.status-pay{color:var(--fg);background:color-mix(in srgb,var(--warn) 45%,transparent);border-color:color-mix(in srgb,var(--warn) 70%,var(--line))}.status-pill.status-paid{color:var(--fg);background:color-mix(in srgb,var(--accent) 35%,transparent);border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}.status-pill.status-post{color:var(--warn-text);border-color:color-mix(in srgb,var(--warn) 60%,var(--line))}.status-pill.status-cancel{color:var(--err);background:color-mix(in srgb,var(--err) 12%,transparent);border-color:color-mix(in srgb,var(--err) 45%,var(--line))}.tabbar{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(480px,100%);padding:0 14px calc(12px + var(--safe-bottom));pointer-events:none;z-index:40}.tabbar-dock{pointer-events:auto;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:8px;border-radius:22px;background:color-mix(in srgb,#fff 82%,transparent);border:1px solid color-mix(in srgb,var(--fg) 6%,transparent);box-shadow:0 10px 28px color-mix(in srgb,var(--fg) 10%,transparent),0 2px 8px color-mix(in srgb,var(--fg) 4%,transparent);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2)}.tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;border:none;background:transparent;color:var(--muted);font-family:var(--font);font-weight:var(--weight-bold);letter-spacing:.01em;font-size:11px;padding:8px 4px;border-radius:16px;cursor:pointer;transition:color .2s ease,background .2s ease,transform .15s ease}.tab:active{transform:scale(.96)}.tab-icon{width:22px;height:22px;display:block;flex:0 0 auto}.tab-label{line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-active{color:var(--fg);background:color-mix(in srgb,var(--accent) 42%,transparent)}.tab-active .tab-icon{color:var(--fg)}.tab-dot{position:absolute;top:7px;right:calc(50% - 16px);width:7px;height:7px;border-radius:50%;background:var(--err);box-shadow:0 0 0 2px color-mix(in srgb,#fff 80%,transparent)}.app-admin .tab-active{background:color-mix(in srgb,var(--fg) 10%,transparent);color:var(--fg)}@media(prefers-reduced-motion:reduce){.tab{transition:none}}.admin-shell{--accent: var(--admin-accent)}.admin{margin-top:4px}.admin-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.admin-head h2{margin:0;font-size:var(--text-xl)}.admin-tabs{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 14px;white-space:nowrap;cursor:pointer;font-family:var(--font);font-size:var(--text-xs);font-weight:var(--weight-bold)}.chip-active{border-color:var(--accent-dim);background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent-text)}.engineer-type{margin:0 0 14px}.engineer-type-label{margin:0 0 8px;font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--muted)}.engineer-type-chips{display:flex;flex-wrap:wrap;gap:8px}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.admin-cal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 14px}.admin-cal-btn{margin:0;flex:1}.admin-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.admin-client-filter{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 16%,transparent);font-size:var(--text)}.admin-day-group{margin-bottom:18px}.admin-day-title{display:flex;align-items:baseline;gap:8px;margin:0 0 10px;font-family:var(--font);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:uppercase}.admin-day-count{font-size:var(--text);font-weight:var(--weight-bold);color:var(--muted)}.admin-booking-card,.admin-client-card{position:relative;display:block;padding:16px;border-radius:20px;overflow:hidden;border:none;background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--accent) 28%,transparent),transparent 55%),linear-gradient(160deg,#fff 0%,var(--card-2) 100%);box-shadow:0 8px 22px color-mix(in srgb,var(--fg) 5%,transparent)}.admin-list>li.admin-booking-card,.admin-list>li.admin-client-card{display:block;justify-content:unset;align-items:stretch;gap:0}.admin-booking-card.status-pay{background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--warn) 28%,transparent),transparent 55%),linear-gradient(160deg,#fff,#fffceb)}.admin-booking-card.status-cancel{background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--err) 14%,transparent),transparent 55%),linear-gradient(160deg,#fff,#fff6f4)}.admin-booking-top,.admin-client-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.admin-booking-date,.admin-client-name{font-family:var(--font);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:.02em;text-transform:uppercase}.admin-booking-time,.admin-client-meta{margin:8px 0 0}.admin-booking-user{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.admin-user-chip{border:none;border-radius:999px;padding:8px 12px;background:color-mix(in srgb,var(--fg) 7%,transparent);color:var(--fg);font-family:var(--font);font-size:var(--text);font-weight:var(--weight-bold);cursor:pointer}.admin-user-chip-soft{color:var(--muted)}.admin-booking-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}.admin-booking-actions .cta,.admin-client-card .cta{margin-top:14px}.admin-list{display:grid;gap:12px}.check.tight{margin:0}.list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;background:var(--card);border-radius:12px}.admin-list .admin-card{flex-direction:column;align-items:stretch;gap:10px;border:1px solid var(--line)}.admin-card-main{display:grid;gap:4px}.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-fields-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.admin-fields-row .field{margin-bottom:0;min-width:0}.btn-mini{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 12px;cursor:pointer;font-family:var(--font);font-size:var(--text-xs);font-weight:var(--weight-bold)}.btn-mini:disabled{opacity:.45;cursor:not-allowed}.btn-mini.danger{border-color:color-mix(in srgb,var(--err) 50%,var(--line));color:var(--err)}.badge{font-family:var(--font);font-size:var(--text);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-text);text-align:right}.abonement-banner{margin:0 0 14px;padding:12px 14px;border-radius:10px;background:color-mix(in srgb,var(--accent) 14%,var(--card));font-size:var(--text-xs)}.abonement-banner.warn{background:color-mix(in srgb,var(--err) 12%,var(--card));color:color-mix(in srgb,var(--err) 70%,var(--fg))}.abonement-create{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--line)}.abonement-create h3{margin:0 0 8px;font-size:var(--text-lg)}.grow{flex:1;min-width:120px}.chips-wrap{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.member-pick{margin-bottom:12px}.nick-row{display:flex;gap:8px;margin:8px 0 10px;align-items:center}.abo-edit-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin:8px 0 4px}.abo-edit-row .field{margin-bottom:0;min-width:0}.abo-edit-row .btn-mini{flex-shrink:0;margin-bottom:2px}.nick-row input{flex:1;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:12px 14px;outline:none;color:inherit;font:inherit}.member-list{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}.member-list li{display:flex;justify-content:space-between;gap:8px;padding:0;background:transparent;border-radius:0;font-size:var(--text-xs)}.row-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;scrollbar-width:none}.row-scroll::-webkit-scrollbar{display:none}.app-about{padding-top:0}.about{margin:0 -18px}.about-hero{position:relative;width:100%;height:min(52vh,360px);overflow:hidden;background:#1a1412}.about-hero-stage{position:relative;display:block;width:100%;height:100%;padding:0;border:none;background:transparent;cursor:zoom-in}.about-hero-img{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%;transform:scale(1.06);transform-origin:center 40%;opacity:0;transition:opacity .7s ease;pointer-events:none}.about-hero-img-on{opacity:1}.about-hero-fade{position:absolute;left:0;right:0;bottom:0;height:55%;background:linear-gradient(to bottom,transparent 0%,color-mix(in srgb,var(--bg) 55%,transparent) 45%,var(--bg) 100%);pointer-events:none}.about-hero-dots{position:absolute;left:0;right:0;bottom:18px;z-index:2;display:flex;justify-content:center;gap:7px;pointer-events:none}.about-hero-dot{pointer-events:auto;width:7px;height:7px;padding:0;border:none;border-radius:999px;background:color-mix(in srgb,#fff 45%,transparent);cursor:pointer;transition:background .2s ease,transform .2s ease}.about-hero-dot-on{background:#fff;transform:scale(1.2)}.about-lb{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:color-mix(in srgb,#0f0a0a 88%,transparent);padding:56px 44px 48px;animation:about-lb-in .2s ease both}@keyframes about-lb-in{0%{opacity:0}to{opacity:1}}.about-lb-img{max-width:min(100%,920px);max-height:min(78vh,820px);width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 18px 48px color-mix(in srgb,#000 45%,transparent);user-select:none;-webkit-user-select:none}.about-lb-close{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:14px;width:40px;height:40px;border:none;border-radius:999px;background:color-mix(in srgb,#fff 14%,transparent);color:#fff;font-size:var(--text-lg);line-height:1;cursor:pointer}.about-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:none;border-radius:999px;background:color-mix(in srgb,#fff 14%,transparent);color:#fff;font-size:var(--text-xl);line-height:1;cursor:pointer}.about-lb-prev{left:8px}.about-lb-next{right:8px}.about-lb-count{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:0;right:0;margin:0;text-align:center;color:color-mix(in srgb,#fff 78%,transparent);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.04em}@media(prefers-reduced-motion:reduce){.about-hero-img{transition:none}.about-lb{animation:none}}.about-body{padding:4px 18px 8px}.about-address-block{margin:0 0 22px}.about-address-block .about-title{margin-bottom:8px}.about-address{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.4}.gear-head{margin-bottom:14px}.about-title{margin:0}.gear-toc{display:flex;gap:8px;overflow-x:auto;margin:0 -18px;padding:2px 18px 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.gear-toc::-webkit-scrollbar{display:none}.gear-chip{flex:0 0 auto;border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 12px;font-family:var(--font);font-size:var(--text-xs);font-weight:var(--weight-bold);white-space:nowrap;cursor:pointer;color:var(--muted);transition:background .2s ease,color .2s ease,border-color .2s ease}.gear-chip-on{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--fg)}.gear-panels{min-height:180px}.gear-panel{animation:gearIn .35s ease both}@keyframes gearIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.gear-panel-head{margin-bottom:10px}.gear-panel-title{margin:0;line-height:1.25}.gear-sub{margin-top:16px}.gear-sub:first-of-type{margin-top:0}.gear-sub-title{margin:0 0 8px;font-family:var(--font);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.gear-list{margin:0;padding:0;list-style:none;display:grid;gap:0}.gear-list li{padding:6px 0;font-size:var(--text-sm);line-height:1.35}.gear-name{color:var(--fg)}.revenue-block{position:relative;text-align:center;padding:8px 36px 18px;margin-bottom:16px}.revenue-nav{position:absolute;top:0;width:40px;height:40px;border:none;background:transparent;color:var(--fg);font-family:var(--font);font-size:var(--text-2xl);line-height:1;cursor:pointer;opacity:.55}.revenue-nav:disabled{opacity:.2;cursor:default}.revenue-nav-prev{left:0}.revenue-nav-next{right:0}.revenue-month{margin:0 0 4px;font-family:var(--font);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.revenue-total{margin:0 0 10px;font-size:var(--text-2xl)}.revenue-donut{width:min(180px,52vw);height:auto;display:block;margin:0 auto 12px}.revenue-legend{list-style:none;margin:0;padding:0;display:grid;gap:6px;text-align:left;font-size:var(--text-xs);color:var(--muted)}.revenue-legend li{display:flex;align-items:center;gap:8px}.revenue-legend i{width:10px;height:10px;border-radius:50%;flex-shrink:0}
