:root{color-scheme:dark;--bg: #0a0a0a;--surface: #141414;--surface-hover: #1a1a1a;--border: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .15);--text: #fafafa;--text-dim: rgba(255, 255, 255, .55);--text-mid: rgba(255, 255, 255, .72);--accent: #a78bfa;--accent-hover: #c4b5fd;--accent-dim: rgba(167, 139, 250, .12);--danger: #f87171;--danger-dim: rgba(248, 113, 113, .12);--success: #34d399;--success-dim: rgba(52, 211, 153, .12);--radius: .75rem;--radius-sm: .5rem;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0}html,body,#root{min-height:100vh;background:var(--bg);color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.content{flex:1;max-width:64rem;width:100%;margin:0 auto;padding:2rem 1.5rem 3rem}.header{position:sticky;top:0;z-index:50;background:#0a0a0ad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.header-inner{max-width:64rem;margin:0 auto;padding:0 1.5rem;height:3.5rem;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--accent)}.logo-icon{display:flex;align-items:center}.logo-text{font-size:1.15rem;font-weight:700;letter-spacing:-.03em}.nav{display:flex;gap:.25rem}.nav-btn{display:flex;align-items:center;gap:.4rem;background:none;border:none;color:var(--text-dim);font:inherit;font-size:.85rem;padding:.45rem .85rem;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;position:relative}.nav-btn:hover{color:var(--text);background:var(--surface)}.nav-btn.active{color:var(--accent);background:var(--accent-dim)}.badge{background:var(--accent);color:#000;font-size:.65rem;font-weight:700;min-width:1.1rem;height:1.1rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:0 .3rem}.progress-bar{border-bottom:1px solid var(--border);background:var(--surface)}.progress-steps{max-width:64rem;margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:center;gap:1rem}.progress-step{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-dim)}.step-circle{width:1.5rem;height:1.5rem;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;border:1.5px solid var(--border);color:var(--text-dim);transition:all .2s}.progress-step.done .step-circle{background:var(--accent);border-color:var(--accent);color:#000}.progress-step.current .step-circle{border-color:var(--accent);color:var(--accent)}.progress-step.done,.progress-step.current{color:var(--text)}.step-label{white-space:nowrap}.section{animation:fadeUp .3s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.section-title{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.25rem}.section-sub{color:var(--text-dim);font-size:.9rem;margin-bottom:1.5rem}.back-btn{background:none;border:none;color:var(--accent);font:inherit;font-size:.85rem;cursor:pointer;padding:0;margin-bottom:1rem;transition:color .15s}.back-btn:hover{color:var(--accent-hover)}.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1rem}.service-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-align:left;cursor:pointer;font:inherit;color:inherit;transition:all .2s;display:flex;flex-direction:column;gap:.6rem}.service-card:hover{border-color:var(--accent);background:var(--accent-dim);transform:translateY(-2px);box-shadow:0 8px 24px #a78bfa14}.service-top{display:flex;justify-content:space-between;align-items:flex-start}.service-top h3{font-size:1.05rem;font-weight:600}.service-price{font-size:1.1rem;font-weight:700;color:var(--accent)}.service-desc{color:var(--text-dim);font-size:.85rem}.service-meta{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--text-dim);padding-top:.4rem;border-top:1px solid var(--border)}.service-meta span:first-child{display:flex;align-items:center;gap:.3rem}.book-link{color:var(--accent);font-weight:500}.chosen-service-tag{display:inline-flex;align-items:center;gap:.4rem;background:var(--accent-dim);color:var(--accent);font-size:.82rem;font-weight:500;padding:.4rem .8rem;border-radius:999px;margin-bottom:1.5rem}.dt-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}@media(max-width:700px){.dt-layout{grid-template-columns:1fr}}.calendar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.cal-title{font-weight:600;font-size:1rem}.cal-nav{background:none;border:1px solid var(--border);color:var(--text);width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.cal-nav:hover{border-color:var(--accent);color:var(--accent)}.cal-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:.4rem}.cal-day-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);padding:.3rem 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:var(--radius-sm);font:inherit;font-size:.85rem;color:var(--text);cursor:pointer;transition:all .15s}.cal-cell:hover:not(.past):not(.empty){background:var(--surface-hover);border-color:var(--border-hover)}.cal-cell.past{color:var(--text-dim);opacity:.35;cursor:not-allowed}.cal-cell.selected{background:var(--accent);color:#000;font-weight:600}.cal-cell.empty{cursor:default}.time-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.time-title{font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:.4rem;margin-bottom:1rem;color:var(--text-mid)}.time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.5rem}.time-slot{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.55rem .5rem;font:inherit;font-size:.85rem;color:var(--text);cursor:pointer;transition:all .15s;text-align:center;position:relative}.time-slot:hover:not(.taken){border-color:var(--accent);background:var(--accent-dim)}.time-slot.selected{background:var(--accent);border-color:var(--accent);color:#000;font-weight:600}.time-slot.taken{opacity:.35;cursor:not-allowed}.taken-label{display:block;font-size:.6rem;color:var(--danger);margin-top:.15rem}.time-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1rem;color:var(--text-dim);text-align:center}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.5rem}.summary-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.9rem}.summary-row:last-child{border-bottom:none}.summary-row span{color:var(--text-dim)}.summary-row.total{font-size:1rem}.summary-row.total strong{color:var(--accent)}.booking-form{display:flex;flex-direction:column;gap:1rem;max-width:28rem}.field label{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:500;color:var(--text-mid);margin-bottom:.35rem}.field input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .85rem;font:inherit;font-size:.9rem;color:var(--text);outline:none;transition:border-color .15s}.field input:focus{border-color:var(--accent)}.field input.err{border-color:var(--danger)}.field-err{font-size:.75rem;color:var(--danger);margin-top:.25rem;display:block}.primary-btn{background:var(--accent);color:#000;border:none;border-radius:var(--radius-sm);padding:.75rem 1.5rem;font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .15s}.primary-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.secondary-btn{background:none;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:.75rem 1.5rem;font:inherit;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s}.secondary-btn:hover{background:var(--accent-dim)}.cancel-btn{display:inline-flex;align-items:center;gap:.35rem;background:var(--danger-dim);color:var(--danger);border:1px solid rgba(248,113,113,.2);border-radius:var(--radius-sm);padding:.45rem .85rem;font:inherit;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s;margin-top:.75rem}.cancel-btn:hover{background:#f8717133}.confirmation{text-align:center;max-width:28rem;margin:0 auto}.confirm-icon{width:5rem;height:5rem;border-radius:999px;background:var(--success-dim);color:var(--success);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.confirm-details{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-align:left;margin:1.5rem 0}.confirm-row{display:flex;justify-content:space-between;padding:.45rem 0;border-bottom:1px solid var(--border);font-size:.88rem}.confirm-row:last-child{border-bottom:none}.confirm-row span{color:var(--text-dim)}.confirm-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.empty-state{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1rem;color:var(--text-dim)}.booking-list{display:flex;flex-direction:column;gap:.75rem}.booking-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;transition:border-color .15s}.booking-item:hover{border-color:var(--border-hover)}.booking-item.past{opacity:.5}.booking-item-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.booking-item-header h3{font-size:1.05rem;font-weight:600}.past-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;background:var(--text-dim);color:var(--bg);padding:.15rem .5rem;border-radius:999px;font-weight:600}.booking-item-details{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--text-mid);margin-bottom:.4rem}.booking-item-details span{display:flex;align-items:center;gap:.3rem}.booking-item-contact{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.8rem;color:var(--text-dim)}.footer{text-align:center;padding:1.5rem;font-size:.78rem;color:var(--text-dim);border-top:1px solid var(--border)}
