:root{--bg:#0f0e0c;--surface:#171512;--surface2:#201d19;--border:#2c2822;--gold:#c9a227;--gold-soft:#8a6f1c;--text:#f4efe6;--muted:#a89f90;--danger:#e5484d;--ok:#46a758;--radius:12px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--gold)}h1,h2,h3{font-family:Georgia,Times New Roman,serif;letter-spacing:.01em}.wrap{max-width:880px}.wrap,.wrap-wide{margin:0 auto;padding:24px 16px 64px}.wrap-wide{max-width:1100px}.topbar{justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--border);margin-bottom:24px}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px}.brand-mark{width:40px;height:40px;border-radius:50%;background:var(--gold);color:#141310;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px}.brand-mark,.brand-name{font-family:Georgia,serif}.brand-name{font-size:22px}.brand-sub{color:var(--muted);font-size:12px}.steps{display:flex;gap:8px;margin:0 0 24px;flex-wrap:wrap}.step{font-size:12px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.step.active{border-color:var(--gold);color:var(--gold)}.step.done{color:var(--text);border-color:var(--gold-soft)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:12px}.card.clickable{cursor:pointer;transition:border-color .15s,transform .15s}.card.clickable:hover{border-color:var(--gold-soft)}.card.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row .grow{flex:1 1}.muted{color:var(--muted)}.small{font-size:13px}.price{color:var(--gold);font-weight:600;white-space:nowrap}.cat-title{margin:22px 0 8px;font-size:18px;color:var(--gold)}.barber-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:12px;gap:12px}.avatar{width:56px;height:56px;border-radius:50%;flex-shrink:0;background:var(--surface2);border:1px solid var(--gold-soft);display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:22px;color:var(--gold);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.date-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:16px}.date-chip{min-width:68px;text-align:center;padding:10px 6px;border:1px solid var(--border);border-radius:10px;cursor:pointer;flex-shrink:0}.date-chip .dow{font-size:11px;color:var(--muted);text-transform:uppercase}.date-chip .dnum{font-size:18px;font-weight:600}.date-chip.selected{border-color:var(--gold);background:var(--surface2)}.date-chip.disabled{opacity:.35;cursor:default}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));grid-gap:8px;gap:8px}.slot{padding:10px 4px;text-align:center;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:14px}.slot:hover{border-color:var(--gold-soft)}.slot.selected{border-color:var(--gold);background:var(--surface2);color:var(--gold);font-weight:600}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:12px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:15px}.field textarea{min-height:70px;resize:vertical}.btn{display:inline-block;padding:13px 26px;border-radius:10px;border:none;background:var(--gold);color:#141310;font-size:16px;font-weight:700;cursor:pointer;width:100%;margin-top:8px}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:transparent;border:1px solid var(--border);color:var(--text)}.btn.danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}.btn.small{width:auto;padding:8px 16px;font-size:14px;margin-top:0}.btn-row{display:flex;gap:10px;margin-top:16px}.btn-row .btn{margin-top:0}.confirm-box{text-align:center;padding:32px 16px}.confirm-ref{font-size:30px;font-family:Georgia,serif;color:var(--gold);letter-spacing:.08em;margin:12px 0}.summary{text-align:left;margin:20px 0}.summary .srow{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}.summary .srow span:first-child{color:var(--muted)}.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.alert.error{background:rgba(229,72,77,.12);border:1px solid var(--danger)}.alert.info{background:rgba(201,162,39,.1);border:1px solid var(--gold-soft)}.alert.ok{background:rgba(70,167,88,.12);border:1px solid var(--ok)}.badge{display:inline-block;font-size:11px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.badge.logged,.badge.sample{border-color:var(--gold-soft);color:var(--gold)}.badge.sent{border-color:var(--ok);color:var(--ok)}.badge.failed{border-color:var(--danger);color:var(--danger)}.badge.booked{border-color:var(--gold-soft);color:var(--gold)}.badge.cancelled{color:var(--muted)}.badge.completed{border-color:var(--ok);color:var(--ok)}.tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.tab{padding:10px 18px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-size:14px}.tab.active{border-color:var(--gold);color:var(--gold)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;padding:8px}.table td,.table th{border-bottom:1px solid var(--border)}.table td{padding:10px 8px;vertical-align:top}.sched-grid{display:grid;grid-template-columns:70px 1fr 1fr 60px;grid-gap:8px;gap:8px;align-items:center;margin-bottom:6px}.sched-grid input{padding:8px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);width:100%}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:flex-start;justify-content:center;padding:24px 12px;z-index:50;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px;width:100%;max-width:560px}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:6px}.empty{text-align:center;color:var(--muted);padding:32px 12px}.login-box{max-width:380px;margin:80px auto}.cat-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:8px}@media (max-width:520px){.cat-grid{grid-template-columns:1fr}}.cat-card{text-align:center;padding:28px 16px}.cat-icon{font-size:44px;margin-bottom:10px}.linklike{color:var(--accent);text-decoration:underline;cursor:pointer}.item-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--border)}.item-row:last-child{border-bottom:none}.week-grid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);grid-gap:8px;gap:8px;overflow-x:auto;padding-bottom:8px}.week-col{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px;min-height:140px}.week-col.today{border-color:var(--accent)}.week-head{font-weight:700;font-size:13px;margin-bottom:8px}.appt-chip{background:var(--surface2);border-radius:8px;padding:6px 8px;margin-bottom:6px;font-size:13px}