:root{--bg: #09090a;--surface: #121214;--surface-2: #1a1a1d;--border: #2a2a2f;--border-strong: #3d3d44;--text: #f2f2f3;--text-2: #a7a7ae;--text-3: #6f6f78;--silver-1: #fafafa;--silver-2: #c9c9ce;--silver-3: #8d8d94;--silver: linear-gradient(160deg, #ffffff 0%, #d5d5da 35%, #8e8e96 62%, #e6e6ea 100%);--red: #e3262f;--red-soft: rgba(227, 38, 47, .14);--green: #3ecf8e;--amber: #f5b544;--radius: 16px;--radius-sm: 10px;--font: "Manrope", system-ui, -apple-system, sans-serif;--display: "Unbounded", "Manrope", system-ui, sans-serif;--safe-b: env(safe-area-inset-bottom, 0px);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid var(--silver-2);outline-offset:2px}.silver{background:var(--silver);-webkit-background-clip:text;background-clip:text;color:transparent}.display{font-family:var(--display);letter-spacing:.02em;font-weight:600}.muted{color:var(--text-2)}.dim{color:var(--text-3)}.dot{display:inline-block;width:.32em;height:.32em;border-radius:50%;background:var(--red);margin-left:.08em;vertical-align:baseline}.wrap{max-width:560px;margin:0 auto;padding:0 16px}.wrap-wide{max-width:1100px;margin:0 auto;padding:0 16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 22px;border-radius:14px;border:1px solid var(--border-strong);background:var(--surface-2);font-weight:700;font-size:16px;text-decoration:none;transition:transform .08s ease,background .15s ease,border-color .15s;white-space:nowrap}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(180deg,#f4f4f6,#bdbdc3);color:#0b0b0c;border-color:transparent;box-shadow:0 1px #fff9 inset,0 8px 24px #0006}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#fff,#cacad0)}.btn-red{background:var(--red);border-color:var(--red);color:#fff}.btn-ghost{background:transparent}.btn-sm{height:38px;padding:0 14px;font-size:14px;border-radius:10px}.btn-block{width:100%}.hero{padding:28px 0 8px;text-align:center}.hero-logo{width:168px;height:168px;border-radius:50%;display:block;margin:8px auto 20px;box-shadow:0 0 0 1px #1f1f23,0 20px 60px #ffffff0f}.hero h1{font-family:var(--display);font-size:26px;line-height:1.15;margin:0 0 10px;font-weight:600}.hero p{margin:0 auto 22px;max-width:360px;color:var(--text-2)}.hero-cta{display:flex;flex-direction:column;gap:10px;max-width:360px;margin:0 auto}.section-title{font-family:var(--display);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);margin:34px 0 12px;font-weight:500}.info-list{display:grid;gap:8px}.info-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none}.info-item svg{flex:none;color:var(--silver-2)}.info-item b{display:block;font-weight:600}.info-item span{color:var(--text-2);font-size:14px}.footer{padding:40px 0 calc(32px + var(--safe-b));text-align:center;color:var(--text-3);font-size:13px}.footer a{color:var(--text-2)}.services{display:grid;gap:10px}.service{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,background .15s}.service:hover{border-color:var(--border-strong)}.service.selected{border-color:var(--silver-2);background:linear-gradient(180deg,#1c1c20,#141416);box-shadow:0 0 0 1px var(--silver-3) inset}.service-icon{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#1d1d21;border:1px solid var(--border);color:var(--silver-1)}.service.selected .service-icon{background:var(--silver);color:#111;border-color:transparent}.service-body{flex:1;min-width:0}.service-name{font-weight:700;font-size:16px}.service-desc{color:var(--text-2);font-size:14px;margin-top:2px}.service-meta{display:flex;gap:10px;margin-top:8px;font-size:13px;color:var(--text-2);flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;background:#1f1f23;border:1px solid var(--border);font-size:12.5px;color:var(--text-2);white-space:nowrap}.price{font-weight:700;color:var(--text);white-space:nowrap}.topbar{position:sticky;top:0;z-index:10;background:#09090ae0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid #18181b}.topbar-inner{display:flex;align-items:center;gap:10px;height:58px}.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;flex:none}.topbar-title{flex:1;min-width:0}.topbar-title small{display:block;color:var(--text-3);font-size:12px}.topbar-title b{font-size:16px}.topbar-logo{width:34px;height:34px;border-radius:50%}.progress{height:2px;background:#1c1c20}.progress>i{display:block;height:100%;background:var(--silver);transition:width .3s ease}.step{padding:20px 0 140px;animation:fadeIn .25s ease}.step h2{font-family:var(--display);font-size:22px;font-weight:600;margin:0 0 4px}.step>p{margin:0 0 18px;color:var(--text-2)}@keyframes fadeIn{0%{transform:translateY(6px)}to{transform:none}}.bottombar{position:fixed;left:0;right:0;bottom:0;z-index:10;background:linear-gradient(180deg,#09090a00,#09090af5 26%);padding:22px 0 calc(14px + var(--safe-b))}.bottombar-inner{display:flex;align-items:center;gap:12px}.bottombar-sum{flex:1;min-width:0;font-size:13px;color:var(--text-2);line-height:1.3}.bottombar-sum b{display:block;color:var(--text);font-size:17px}.classes{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.class-card{padding:14px 8px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.class-card.selected{border-color:var(--silver-2);box-shadow:0 0 0 1px var(--silver-3) inset;background:#1a1a1e}.class-card svg{color:var(--silver-2)}.class-card b{display:block;font-size:13.5px;margin-top:6px;line-height:1.2}.class-card span{display:block;font-size:12px;color:var(--text-3);margin-top:3px}.class-card .chip{margin-top:8px}.field{display:block;margin-top:16px}.field>span{display:block;font-size:13px;color:var(--text-2);margin-bottom:6px;font-weight:600}.input{width:100%;height:52px;padding:0 16px;border-radius:14px;border:1px solid var(--border-strong);background:var(--surface);font-size:16px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--silver-2)}textarea.input{height:88px;padding:14px 16px;resize:none}.input.invalid{border-color:var(--red)}.field-err{color:#ff6b72;font-size:13px;margin-top:6px}.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.days{display:flex;gap:8px;overflow-x:auto;padding:2px 16px 10px;margin:0 -16px;scroll-snap-type:x proximity;scrollbar-width:none}.days::-webkit-scrollbar{display:none}.day{flex:none;width:62px;padding:10px 0 9px;border-radius:14px;text-align:center;scroll-snap-align:start;background:var(--surface);border:1px solid var(--border)}.day small{display:block;font-size:12px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}.day b{display:block;font-size:20px;font-weight:700;margin:1px 0}.day i{display:block;font-style:normal;font-size:11px;color:var(--text-3)}.day.selected{background:var(--silver);border-color:transparent;color:#0b0b0c}.day.selected small,.day.selected i{color:#2a2a2e}.day:disabled{opacity:.35;cursor:not-allowed}.day.today small{color:var(--red)}.day.selected.today small{color:#8d1117}.slot-group{margin-top:18px}.slot-group h4{margin:0 0 8px;font-size:13px;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.slot{height:44px;border-radius:12px;background:var(--surface);border:1px solid var(--border);font-weight:600;font-variant-numeric:tabular-nums}.slot.selected{background:var(--silver);color:#0b0b0c;border-color:transparent}.empty{padding:26px 16px;text-align:center;color:var(--text-2);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);margin-top:14px}.notice{display:flex;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text-2);margin-top:14px}.notice svg{flex:none;color:var(--silver-2);margin-top:1px}.notice-error{border-color:#e3262f80;background:var(--red-soft);color:#ffb3b7}.summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px 16px}.summary-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border);font-size:15px}.summary-row:last-child{border-bottom:0}.summary-row span{color:var(--text-2)}.summary-row b{text-align:right;font-weight:600}.success{text-align:center;padding-top:18px}.success-badge{width:84px;height:84px;margin:6px auto 18px;border-radius:50%;display:grid;place-items:center;background:var(--silver);color:#0b0b0c;box-shadow:0 0 0 8px #ffffff0a,0 0 0 16px #ffffff05;animation:pop .4s cubic-bezier(.2,1.4,.4,1)}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}.success h2{font-family:var(--display);font-size:24px;margin:0 0 8px}.actions{display:grid;gap:10px;margin-top:20px}.actions-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.spinner{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.15);border-top-color:var(--silver-1);animation:spin .7s linear infinite}.btn-primary .spinner{border-color:#00000026;border-top-color:#111}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#141416,#1d1d21,#141416);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:12px}@keyframes shimmer{to{background-position:-200% 0}}.admin-head{display:flex;align-items:center;gap:12px;padding:14px 0}.admin-head h1{font-family:var(--display);font-size:18px;margin:0;font-weight:600;flex:1}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.stat small{display:block;color:var(--text-3);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.stat b{display:block;font-size:24px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.stat.accent b{color:var(--red)}.admin-grid{display:grid;grid-template-columns:1fr 340px;gap:16px;margin-top:16px;align-items:start}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.panel h3{margin:0 0 12px;font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}.panel+.panel{margin-top:16px}.admin-days{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:8px 6px 4px 0}.admin-days::-webkit-scrollbar{display:none}.admin-day{flex:1 0 64px;padding:8px 4px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);text-align:center;position:relative}.admin-day small{display:block;font-size:11px;color:var(--text-3);text-transform:uppercase}.admin-day b{display:block;font-size:17px}.admin-day i{position:absolute;top:-7px;right:-5px;min-width:18px;height:18px;padding:0 5px;font-style:normal;font-size:11px;font-weight:700;border-radius:9px;background:#2a2a2f;color:var(--text-2);line-height:18px}.admin-day i.has-new{background:var(--red);color:#fff}.admin-day.selected{background:var(--silver);color:#0b0b0c;border-color:transparent}.admin-day.selected small{color:#333}.timeline{margin-top:14px}.tl-row{display:flex;align-items:center;gap:10px;margin-top:6px}.tl-row>span{width:52px;flex:none;font-size:12px;color:var(--text-3)}.tl-track{position:relative;flex:1;height:26px;background:#0f0f11;border:1px solid var(--border);border-radius:8px;overflow:hidden}.tl-seg{position:absolute;top:2px;bottom:2px;border-radius:6px;background:linear-gradient(180deg,#e6e6ea,#a6a6ad);font-size:10.5px;color:#111;font-weight:700;padding:0 5px;overflow:hidden;white-space:nowrap;line-height:20px}.tl-seg.new{background:linear-gradient(180deg,#ff4a52,#c41d25);color:#fff}.tl-seg.done{background:#3a3a40;color:var(--text-2)}.tl-seg.block{background:repeating-linear-gradient(45deg,#2a2a2f 0,#2a2a2f 6px,#1d1d21 6px,#1d1d21 12px);color:var(--text-2)}.tl-hours{position:relative;height:14px;margin-left:62px;font-size:10.5px;color:var(--text-3);margin-top:4px;font-variant-numeric:tabular-nums}.filters{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0 10px}.filter{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:transparent;font-size:13px;color:var(--text-2)}.filter.selected{background:#26262b;color:var(--text);border-color:var(--border-strong)}.bk{border:1px solid var(--border);border-radius:14px;padding:14px;background:var(--surface-2);margin-top:10px}.bk.is-new{border-color:#e3262f8c;box-shadow:0 0 0 1px #e3262f33 inset}.bk.is-cancelled{opacity:.55}.bk-top{display:flex;align-items:center;gap:10px}.bk-time{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.bk-top .grow{flex:1}.badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-new{background:var(--red-soft);color:#ff6b72}.badge-confirmed{background:#3ecf8e1f;color:var(--green)}.badge-done{background:#26262b;color:var(--text-2)}.badge-cancelled{background:#1f1f22;color:var(--text-3)}.bk-service{font-weight:700;margin-top:8px}.bk-lines{display:grid;gap:3px;margin-top:6px;font-size:14px;color:var(--text-2)}.bk-lines a{color:var(--text);text-decoration:none;font-weight:600}.bk-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.bk-actions .btn{flex:1}.row{display:flex;gap:8px}.row>*{flex:1;min-width:0}.admin-grid>*{min-width:0}.panel code{overflow-wrap:anywhere}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);background-position:calc(100% - 18px) 23px,calc(100% - 13px) 23px;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}.tg-state{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-2);margin-bottom:12px}.tg-state .led{width:8px;height:8px;border-radius:50%;background:var(--text-3)}.tg-state .led.on{background:var(--green);box-shadow:0 0 8px var(--green)}.tg-state .led.warn{background:var(--amber)}.steps-list{margin:0 0 12px;padding-left:18px;color:var(--text-2);font-size:14px}.steps-list li{margin:3px 0}.toast{position:fixed;left:50%;bottom:calc(24px + var(--safe-b));transform:translate(-50%);background:#f2f2f3;color:#111;padding:12px 18px;border-radius:12px;font-weight:600;font-size:14px;z-index:50;box-shadow:0 10px 30px #00000080;max-width:calc(100vw - 32px)}.toast.error{background:var(--red);color:#fff}.login{max-width:360px;margin:0 auto;padding:60px 16px;text-align:center}.login img{width:110px;height:110px;border-radius:50%}@media(max-width:900px){.admin-grid{grid-template-columns:1fr}.admin-side{margin-top:0}}@media(max-width:560px){.stats{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:23px}}@media(max-width:360px){.slots{grid-template-columns:repeat(3,1fr)}.classes{grid-template-columns:1fr}.class-card{display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px}.class-card b{margin-top:0}.class-card .chip{margin:0 0 0 auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.tl-hours span{position:absolute;transform:translate(-50%)}.tl-hours span:first-child{transform:none}.tl-hours span:last-child{transform:translate(-100%)}
