:root{--bg:#f5f6f4;--surface:#fff;--surface-2:#f0f2ef;--border:#e2e5e0;--text:#1b1f1d;--muted:#5f6763;--brand:#0f766e;--brand-strong:#0b5c55;--brand-soft:#e3f2ef;--on-brand:#fff;--pro:#b45309;--pro-soft:#fdf1e3;--danger:#b42318;--danger-soft:#fdecea;--success:#1e7a3c;--success-soft:#e6f4ea;--warn:#8a5a00;--warn-soft:#fdf4dc;--shadow:0 1px 2px #1018140d, 0 2px 8px #1018140a;--radius:14px;--radius-sm:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111413;--surface:#1a1e1c;--surface-2:#222725;--border:#2e3431;--text:#e8ebe9;--muted:#9aa39e;--brand:#2bb3a5;--brand-strong:#4cc9bb;--brand-soft:#173a36;--on-brand:#06201d;--pro:#f0a748;--pro-soft:#3a2a12;--danger:#f2877c;--danger-soft:#3b1f1c;--success:#6fd08e;--success-soft:#16301f;--warn:#f3c969;--warn-soft:#362c12;--shadow:0 1px 2px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;line-height:1.25}h1{letter-spacing:-.01em;font-size:1.6rem}h2{font-size:1.15rem}button{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:.87rem}.block{display:block}.center{text-align:center}.pre-line,.rich{white-space:pre-line}.text-error{color:var(--danger)}.text-success{color:var(--success)}.boot{place-items:center;min-height:100vh;display:grid}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:1000;position:sticky;top:0}.topbar-inner,.mainnav-inner,.content{max-width:1100px;margin:0 auto;padding:0 16px}.topbar-inner{justify-content:space-between;align-items:center;gap:12px;height:60px;display:flex}.topbar-right{align-items:center;gap:10px;min-width:0;display:flex}.brand{color:var(--text);align-items:center;gap:10px;font-weight:700;display:inline-flex}.brand:hover{text-decoration:none}.brand-mark{background:var(--brand);width:34px;height:34px;color:var(--on-brand);border-radius:10px;place-items:center;font-size:.95rem;display:grid}.brand-name{font-size:1.15rem}.brand-lg .brand-mark{border-radius:12px;width:44px;height:44px;font-size:1.15rem}.brand-lg .brand-name{font-size:1.4rem}.user-chip{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.9rem;font-weight:600;overflow:hidden}.mainnav{border-top:1px solid var(--border)}.mainnav-inner{scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.mainnav-link{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;padding:12px 14px;font-weight:600}.mainnav-link:hover{color:var(--text);text-decoration:none}.mainnav-link.active{color:var(--brand);border-bottom-color:var(--brand)}.content{padding-top:24px;padding-bottom:48px}.page{flex-direction:column;gap:16px;display:flex}.page.narrow{max-width:680px;margin:0 auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.section-title{margin-top:8px}.back-link{align-self:flex-start;font-size:.92rem;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.btn:hover{text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:var(--on-brand)}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-ghost{border-color:var(--border);color:var(--text);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.btn-danger:hover:not(:disabled){border-color:var(--danger)}.btn-sm{padding:6px 12px;font-size:.88rem}.btn-lg{padding:12px 22px;font-size:1.02rem}.btn-block{width:100%}.link{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.link:disabled{color:var(--muted);cursor:default}input[type=text],input[type=search],input:not([type]),.search{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;width:100%;padding:10px 12px}input:focus-visible,.search:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.search{max-width:280px}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.lang-switch{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:2px;display:inline-flex}.lang-switch button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:700}.lang-switch button.active{background:var(--brand);color:var(--on-brand)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-title{margin-bottom:14px}.notice{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);white-space:pre-line;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.notice-error{background:var(--danger-soft);color:var(--danger);border-color:#0000}.notice-success{background:var(--success-soft);color:var(--success);border-color:#0000}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.78rem;font-weight:700;display:inline-flex}.badge-pro{background:var(--pro-soft);color:var(--pro)}.status-pending{background:var(--warn-soft);color:var(--warn)}.status-confirmed,.status-completed{background:var(--success-soft);color:var(--success)}.status-cancelled,.status-no_show{background:var(--danger-soft);color:var(--danger)}.spinner{color:var(--muted);align-items:center;gap:10px;padding:16px 0;display:inline-flex}.spinner-dot{border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:radial-gradient(1200px 500px at 50% -10%, var(--brand-soft), transparent 70%), var(--bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.login-top{position:absolute;top:16px;right:16px}.login-card{flex-direction:column;gap:12px;width:100%;max-width:420px;padding:28px;display:flex}.login-card h1{margin-top:8px;font-size:1.35rem}.login-card p{margin:0}.form{flex-direction:column;gap:14px;margin-top:8px;display:flex}.field{flex-direction:column;gap:6px;font-size:.9rem;font-weight:600;display:flex}.input-prefix{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;padding-left:12px;display:flex}.input-prefix:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.input-prefix span{color:var(--muted);font-weight:700}.input-prefix input{border:none;padding-left:4px;box-shadow:none!important}.code-input{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.6rem!important}.login-links{flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.9rem;display:flex}.login-hint{border-top:1px solid var(--border);padding-top:14px;margin-top:8px!important}.tabs{flex-wrap:wrap;gap:6px;display:flex}.tab,.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:999px;padding:7px 14px;font-weight:600}.tab:hover,.chip:hover{border-color:var(--brand)}.tab.active,.chip.active{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.chips{flex-wrap:wrap;gap:8px;display:flex}.salon-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.salon-tile{height:100%;color:var(--text);flex-direction:column;gap:8px;padding:16px;transition:border-color .15s,transform .15s;display:flex}.salon-tile:hover{border-color:var(--brand);text-decoration:none;transform:translateY(-1px)}.salon-tile-top{align-items:center;gap:8px;display:flex}.salon-name{text-overflow:ellipsis;flex:1;min-width:0;font-size:1.05rem;font-weight:700;overflow:hidden}.salon-tile-foot{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.map-wrap{border-radius:var(--radius);border:1px solid var(--border);isolation:isolate;overflow:hidden}.salon-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.salon-card{overflow:hidden}.salon-photo{object-fit:cover;width:100%;max-height:320px;display:block}.salon-card-body{flex-direction:column;gap:14px;padding:20px;display:flex}.salon-card-body .btn-lg{align-self:flex-start}.salon-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.salon-side{flex-direction:column;gap:16px;display:flex}.salon-side .card{padding:16px}.rating-row{align-items:center;gap:8px;display:flex}.facts{flex-direction:column;gap:8px;margin:0;display:flex}.facts div{gap:10px;display:flex}.facts dt{color:var(--muted);min-width:64px;font-size:.9rem}.facts dd{margin:0}.description{white-space:pre-line;margin:0}.stars{color:var(--border);gap:2px;font-size:1.05rem;line-height:1;display:inline-flex}.stars .on{color:#f5a623}.stars-pick button{color:var(--border);cursor:pointer;background:0 0;border:none;padding:2px;font-size:1.35rem;line-height:1}.stars-pick:hover button{color:#f5a623}.stars-pick button:hover~button{color:var(--border)}.list,.service-list,.booking-list,.plain{margin:0;padding:0;list-style:none}.list,.service-list,.booking-list{flex-direction:column;gap:8px;display:flex}.list-row,.service-row,.radio-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);text-align:left;cursor:pointer;align-items:center;gap:12px;padding:12px 14px;display:flex}.list-row:hover,.service-row:hover,.radio-row:hover{border-color:var(--brand);text-decoration:none}.list-row.selected,.service-row.selected,.radio-row.selected{border-color:var(--brand);background:var(--brand-soft)}.list-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.avatar{background:var(--brand-soft);width:38px;height:38px;color:var(--brand);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.chev{color:var(--muted);font-size:1.4rem}.service-row input,.radio-row input{width:18px;height:18px;accent-color:var(--brand);flex:none}.price{white-space:nowrap;font-weight:700}.wizard-head p{margin:4px 0 0}.stepper{counter-reset:step;gap:6px;margin:0;padding:0;list-style:none;display:flex}.stepper li{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);color:var(--muted);flex:1;align-items:center;gap:8px;min-width:0;padding:8px 10px;font-size:.88rem;font-weight:600;display:flex}.stepper-num{background:var(--surface-2);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:.78rem;display:grid}.stepper-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stepper li.current{border-color:var(--brand);color:var(--brand)}.stepper li.current .stepper-num{background:var(--brand);color:var(--on-brand)}.stepper li.done .stepper-num{background:var(--brand-soft);color:var(--brand)}.wizard-body{flex-direction:column;gap:12px;padding:20px;display:flex}.wizard-foot{border-top:1px solid var(--border);align-items:center;gap:12px;padding-top:14px;display:flex}.total-line{text-align:right;margin-left:auto}.wizard-foot .btn-ghost:only-child{margin-right:auto}.date-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;display:grid}.date-cell,.time-cell{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;font-variant-numeric:tabular-nums;padding:10px 6px;font-weight:600}.date-cell{flex-direction:column;align-items:center;gap:2px;display:flex}.date-wd{color:var(--muted);font-size:.78rem;font-weight:700}.date-dm{font-size:1.05rem}.time-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.date-cell:hover,.time-cell:hover{border-color:var(--brand)}.date-cell.selected,.time-cell.selected{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.date-cell.selected .date-wd{color:inherit}.summary{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;margin:0;display:flex;overflow:hidden}.summary>div{border-bottom:1px solid var(--border);grid-template-columns:130px 1fr;gap:12px;padding:10px 14px;display:grid}.summary>div:last-child{border-bottom:none}.summary dt{color:var(--muted);font-size:.9rem}.summary dd{margin:0}.summary-total{background:var(--surface-2);font-weight:700}.summary-total dd{font-size:1.1rem}.payment{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.payment legend{margin-bottom:8px;font-weight:700}.done-step{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:12px 0;display:flex}.done-step p{max-width:460px;margin:0}.done-icon{font-size:2.4rem}.done-actions,.actions{flex-wrap:wrap;gap:10px;display:flex}.done-actions{justify-content:center;margin-top:8px}.booking-row{color:var(--text);align-items:center;gap:14px;padding:14px 16px;display:flex}a.booking-row:hover{border-color:var(--brand);text-decoration:none}.booking-when{font-variant-numeric:tabular-nums;flex-direction:column;flex:none;min-width:96px;display:flex}.booking-date{font-weight:700}.booking-time{color:var(--muted);font-size:.9rem}.rate-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.detail-card{flex-direction:column;gap:16px;padding:20px;display:flex}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.detail-head h1{font-size:1.35rem}.confirm-box,.subpanel{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:12px;padding:16px;display:flex}.confirm-box p{margin:0;font-weight:600}.soon-card{flex-direction:column;align-items:flex-start;gap:12px;padding:28px;display:flex}.soon-card p{margin:0}@media (width<=820px){.salon-layout{grid-template-columns:1fr}}@media (width<=600px){h1{font-size:1.35rem}.content{padding-top:16px}.user-chip,.brand-name{display:none}.search{max-width:none}.stepper-label{display:none}.stepper li{justify-content:center}.stepper li.current{flex:3}.stepper li.current .stepper-label{display:inline}.summary>div{grid-template-columns:1fr;gap:2px}.wizard-body,.detail-card{padding:16px}.wizard-foot,.booking-row{flex-wrap:wrap}.recent-row .btn{width:100%}.login-card{padding:22px}}
