:root { --orange:#FF5A14; --ink:#1b1b1f; --muted:#5b5b66; --line:#e6e6ea; --bg:#f7f7f8; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color:var(--ink); background:var(--bg); }
header { background:#0b0b0d; color:#fff; padding:16px 20px; border-bottom:4px solid var(--orange); }
header .wrap, main { max-width:680px; margin:0 auto; }
.logo { display:block; height:64px; width:auto; }
main { padding:24px 16px 60px; }
h1 { font-size:26px; margin:0 0 6px; }
.lead { color:var(--muted); margin:0 0 20px; }
.card { background:#fff; border:1px solid var(--line); border-radius:12px; padding:20px; margin-bottom:16px; }
.service { display:block; width:100%; text-align:left; cursor:pointer; font:inherit; color:inherit; transition:border-color .15s, box-shadow .15s; }
.service:hover, .service:focus { border-color:var(--orange); box-shadow:0 0 0 2px var(--orange) inset; outline:none; }
.service b { display:block; font-size:18px; margin:2px 0 4px; }
.service .mode { font-size:13px; font-weight:700; color:#c43f05; text-transform:uppercase; letter-spacing:.04em; }
.service .muted { display:block; }
.steps { display:flex; gap:6px; margin:0 0 18px; }
.steps div { flex:1; height:5px; border-radius:3px; background:var(--line); }
.steps div.on { background:var(--orange); }
label { display:block; font-weight:600; font-size:14px; margin:16px 0 6px; }
input[type=text], input[type=email], input[type=tel], select, textarea {
  width:100%; padding:12px; font:inherit; font-size:16px; border:1px solid #cfcfd6; border-radius:8px; background:#fff; margin-bottom:8px; }
.row { display:flex; gap:12px; } .row > div { flex:1; }
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chip, .day, .slot { border:1px solid #cfcfd6; background:#fff; border-radius:8px; padding:10px 12px; cursor:pointer; font:inherit; font-size:14px; color:inherit; white-space:nowrap; text-align:center; }
.chip.sel, .day.sel, .slot.sel { border-color:var(--orange); background:#fff4ee; box-shadow:0 0 0 2px var(--orange) inset; }
.weeknav { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; font-weight:600; }
.weeknav button { border:1px solid #cfcfd6; background:#fff; border-radius:8px; width:40px; height:36px; font-size:20px; cursor:pointer; }
.weeknav button[disabled] { opacity:.3; cursor:default; }
.days { display:grid; grid-template-columns:repeat(7, 1fr); gap:6px; }
.day { padding:8px 2px; }
.day b { display:block; font-size:14px; }
.day small { display:block; color:var(--muted); font-size:11px; }
.day[disabled] { opacity:.4; cursor:default; }
.slots { display:grid; grid-template-columns:repeat(auto-fill, minmax(92px, 1fr)); gap:8px; margin-top:4px; }
.checks { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:4px 12px; }
label.opt { font-weight:400; margin:4px 0; display:flex; gap:8px; align-items:center; }
.check { display:flex; gap:10px; align-items:flex-start; font-size:14px; margin-top:16px; }
.check input { width:20px; height:20px; margin-top:2px; flex:none; }
.req { color:#c43f05; }
.hp { position:absolute; left:-5000px; width:1px; height:1px; opacity:0; }
button.primary { width:100%; margin-top:20px; padding:14px; font-size:17px; font-weight:700; color:#fff; background:var(--orange); border:0; border-radius:10px; cursor:pointer; }
button.primary[disabled] { opacity:.5; cursor:default; }
button.secondary { width:100%; margin-top:12px; padding:12px; font-size:16px; font-weight:600; color:var(--ink); background:#fff; border:1px solid #cfcfd6; border-radius:10px; cursor:pointer; }
.err { color:#b42318; background:#fef3f2; border:1px solid #fecdca; border-radius:8px; padding:10px 12px; margin-top:14px; display:none; }
.muted { color:var(--muted); font-size:14px; }
.center { text-align:center; }
.summary { background:#fff4ee; border-left:4px solid var(--orange); padding:10px 14px; border-radius:6px; margin:0 0 10px; }
a { color:#c43f05; }
.hidden { display:none !important; }
footer { text-align:center; color:var(--muted); font-size:13px; padding:0 16px 30px; }
@media (max-width:480px) { .days { grid-template-columns:repeat(4, 1fr); } }

/* =================== ZLM premium theme (shared with /admin) =================== */
:root { --orange:#FF5A14; --orange2:#FF7A3D; --ink:#141418; --muted:#6b6b76; --line:#ebe9e6; --bg:#f4f3f0;
  --sh1:0 1px 2px rgba(20,20,24,.05), 0 1px 1px rgba(20,20,24,.03);
  --sh2:0 2px 4px rgba(20,20,24,.04), 0 10px 28px -6px rgba(20,20,24,.10);
  --sh3:0 4px 10px rgba(20,20,24,.06), 0 24px 48px -12px rgba(20,20,24,.22); }
body { font-family:Inter, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; letter-spacing:-.005em; background:
  radial-gradient(1200px 500px at 85% -10%, rgba(255,90,20,.08), transparent 60%),
  radial-gradient(900px 400px at -10% 110%, rgba(20,20,24,.05), transparent 60%), var(--bg); }
header { background:linear-gradient(180deg,#141418 0%,#0b0b0d 100%); border-bottom:0; position:relative; box-shadow:0 6px 24px rgba(0,0,0,.25); }
header::after { content:""; position:absolute; left:0; right:0; bottom:-3px; height:3px; background:linear-gradient(90deg,#ff5a14,#ff8a4c 40%,#ff5a14); box-shadow:0 0 18px rgba(255,90,20,.55); }
.logo { filter:drop-shadow(0 2px 6px rgba(255,90,20,.25)); }
main { padding-top:34px; }
h1 { font-family:"Barlow Condensed", Inter, sans-serif; text-transform:uppercase; font-size:40px; letter-spacing:.01em; line-height:1.05; }
h2 { font-family:"Barlow Condensed", Inter, sans-serif; text-transform:uppercase; letter-spacing:.01em; }
.lead { font-size:17px; }
.card { border:1px solid rgba(20,20,24,.06); border-radius:16px; box-shadow:var(--sh2); }
.service { position:relative; padding:20px 22px; transition:transform .15s, box-shadow .15s, border-color .15s; }
.service::after { content:"→"; position:absolute; right:22px; top:50%; transform:translateY(-50%); font-size:22px; color:#d0cdc8; transition:.15s; }
.service:hover, .service:focus { transform:translateY(-2px); box-shadow:var(--sh3); border-color:rgba(255,90,20,.45); }
.service:hover::after { color:var(--orange); right:18px; }
.service b { font-size:19px; }
.steps div { height:6px; background:#e4e1dc; }
.steps div.on { background:linear-gradient(90deg,var(--orange2),var(--orange)); box-shadow:0 0 10px rgba(255,90,20,.45); }
input[type=text], input[type=email], input[type=tel], select, textarea { border:1px solid #dedcd8; border-radius:10px; box-shadow:inset 0 1px 2px rgba(20,20,24,.04); transition:border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--orange); box-shadow:0 0 0 4px rgba(255,90,20,.15); }
.chip, .day, .slot { border:1px solid #dedcd8; border-radius:10px; background:linear-gradient(180deg,#fff,#faf9f7); box-shadow:var(--sh1); font-weight:600; transition:.12s; }
.chip:hover, .day:hover:not([disabled]), .slot:hover { border-color:rgba(255,90,20,.5); transform:translateY(-1px); box-shadow:0 4px 10px rgba(20,20,24,.08); }
.chip.sel, .day.sel, .slot.sel { background:linear-gradient(180deg,var(--orange2),var(--orange)); color:#fff; border-color:#e94c0a; box-shadow:0 8px 18px -6px rgba(255,90,20,.6); }
.day.sel small { color:rgba(255,255,255,.85); }
.weeknav button { border-radius:10px; background:linear-gradient(180deg,#fff,#faf9f7); box-shadow:var(--sh1); }
button.primary { border-radius:12px; background:linear-gradient(180deg,var(--orange2),var(--orange)); box-shadow:0 10px 22px -8px rgba(255,90,20,.65), inset 0 1px 0 rgba(255,255,255,.25); letter-spacing:.01em; transition:transform .08s, box-shadow .15s; }
button.primary:hover { box-shadow:0 14px 28px -8px rgba(255,90,20,.75), inset 0 1px 0 rgba(255,255,255,.25); }
button.primary:active { transform:translateY(1px); }
button.secondary { border-radius:12px; background:linear-gradient(180deg,#fff,#faf9f7); box-shadow:var(--sh1); }
.summary { border-left:0; border-radius:12px; background:linear-gradient(135deg,#fff3ec,#fff); box-shadow:inset 3px 0 0 var(--orange), var(--sh1); padding:14px 16px; }
label.opt { padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:#fff; margin:3px 0; }
label.opt input { accent-color:var(--orange); }
.check input { accent-color:var(--orange); }
footer { padding-top:10px; }
