:root{--k-ink:#123e3b;--k-ink-2:#1e5a55;--k-tint:#e3efec;--k-amber:#e7a637;--k-amber-soft:#fbf0d9;--k-amber-text:#8a5a0b;--k-bg:#fafaf8;--k-surface:#fff;--k-line:#e6e7e3;--k-text:#1c1f1e;--k-muted:#6b716e;--k-faint:#9aa09d;--k-red:#b4412f;--k-red-soft:#f8e6e2;--k-green:#2f7a4b;--k-green-soft:#e3f2e8;--f-display:"Bricolage Grotesque", "Geist", system-ui, sans-serif;--f-body:"Geist", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--k-bg);color:var(--k-text);font-family:var(--f-body);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}button{color:inherit;font-family:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--k-amber);outline-offset:2px}.screen{flex-direction:column;gap:16px;max-width:28rem;min-height:100dvh;margin:0 auto;padding:1rem 18px 18px;display:flex}.brand{font:700 13px var(--f-display);letter-spacing:.02em;color:var(--k-ink);align-items:center;gap:8px;display:flex}.logo{background:var(--k-ink);width:24px;height:24px;color:var(--k-amber);border-radius:7px;place-items:center;display:grid}.logo svg,.ic svg{width:20px;height:20px}.h{font:700 25px/1.12 var(--f-display);letter-spacing:-.015em;color:var(--k-text);text-wrap:balance;margin:0}.eyebrow{font:600 11px var(--f-body);letter-spacing:.09em;text-transform:uppercase;color:var(--k-muted)}.muted{color:var(--k-muted)}.sm{font-size:12.5px}.col{flex-direction:column;gap:8px;min-width:0;display:flex}.col.grow,.grow{flex:1;gap:4px}.row{align-items:center;gap:12px;display:flex}.spacer{flex:1}.card{background:var(--k-surface);border:1px solid var(--k-line);border-radius:16px;padding:12px 14px}.card b{font-size:14.5px}.grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.svc{background:var(--k-surface);border:1px solid var(--k-line);text-align:center;cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:10px 4px 9px;font-size:13px;font-weight:500;display:flex}.ic{background:var(--k-tint);width:36px;height:36px;color:var(--k-ink);border-radius:50%;flex:none;place-items:center;display:grid}.ic.amber{background:var(--k-amber-soft);color:var(--k-amber-text)}.pill{font:600 11.5px var(--f-body);white-space:nowrap;border-radius:999px;padding:4px 9px}.p-amber{background:var(--k-amber-soft);color:var(--k-amber-text)}.p-ink{background:var(--k-tint);color:var(--k-ink)}.p-green{background:var(--k-green-soft);color:var(--k-green)}.p-red{background:var(--k-red-soft);color:var(--k-red)}.p-grey{color:var(--k-muted);background:#eff0ed}.request{flex-direction:column;flex:1;gap:16px;display:flex}.back{color:var(--k-muted);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:12.5px}.field{flex-direction:column;gap:6px;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--k-line);cursor:pointer;background:#fff;border-radius:999px;padding:7px 12px;font-size:13px}.chip.on{background:var(--k-tint);border-color:var(--k-ink-2);color:var(--k-ink);font-weight:600}.photos{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.ph{aspect-ratio:1;background:linear-gradient(135deg,#d8d3c8,#bfb8aa);border-radius:10px;max-width:100%;position:relative;overflow:hidden}.ph img{object-fit:cover;width:100%;height:100%;display:block}.ph.add{border:1.5px dashed var(--k-line);color:var(--k-muted);cursor:pointer;background:#fff;place-items:center;display:grid}.ph.add svg{width:24px;height:24px}.ph.add input{opacity:0;cursor:pointer;position:absolute;inset:0}.ph.busy{background:linear-gradient(135deg,#e2d9c6,#c7b48f)}.ph-remove{color:#fff;cursor:pointer;background:#0000008c;border:0;border-radius:50%;width:22px;height:22px;font-size:14px;line-height:1;position:absolute;top:4px;right:4px}.input{border:1px solid var(--k-line);font:inherit;color:var(--k-text);background:#fff;border-radius:12px;width:100%;padding:11px 12px;font-size:14px}.input.ta{resize:vertical;min-height:64px}.btn{font:600 15px var(--f-body);background:var(--k-ink);color:#fff;text-align:center;cursor:pointer;border:0;border-radius:14px;width:100%;padding:14px}.btn:disabled{opacity:.55;cursor:default}.warn{background:var(--k-red-soft);color:#7c2c1f;border:1px solid #efc9c1;border-radius:14px;margin:0;padding:12px;font-size:13px}.pill-btn{cursor:pointer;border:0}.tight{gap:4px}.self-start{align-self:flex-start}.btn.ghost{color:var(--k-ink);border:1px solid var(--k-line);background:0 0}.kv{justify-content:space-between;gap:10px;font-size:13.5px;display:flex}.kv b{font-variant-numeric:tabular-nums;font-weight:600}.lines{gap:9px}.div{background:var(--k-line);height:1px}.days{gap:6px;display:flex}.day{text-align:center;border:1px solid var(--k-line);color:var(--k-muted);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;flex:1;gap:2px;padding:8px 0;font-size:11.5px;display:flex}.day b{font:600 16px var(--f-body);color:var(--k-text)}.day.on{background:var(--k-ink);border-color:var(--k-ink);color:#cfe1dd}.day.on b{color:#fff}.slots{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.slot{border:1px solid var(--k-line);text-align:center;font:500 13.5px var(--f-body);font-variant-numeric:tabular-nums;cursor:pointer;background:#fff;border-radius:12px;padding:10px 0}.slot.on{background:var(--k-ink);color:#fff;border-color:var(--k-ink)}.slot.off{color:var(--k-faint);cursor:default;background:#f4f5f2;text-decoration:line-through}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.tech{background:var(--k-ink);color:#fff;width:36px;height:36px;font:600 12.5px var(--f-body);border-radius:50%;flex:none;place-items:center;display:grid}.steps{flex-direction:column;display:flex}.st{gap:12px;padding-bottom:16px;display:flex;position:relative}.st:last-child{padding-bottom:0}.dot{border:2px solid var(--k-line);z-index:1;background:#fff;border-radius:50%;flex:none;width:14px;height:14px;margin-top:3px;position:relative}.st:not(:last-child):before{content:"";background:var(--k-line);width:2px;position:absolute;top:16px;bottom:0;left:6px}.st.done .dot{background:var(--k-ink);border-color:var(--k-ink)}.st.done:not(:last-child):before{background:var(--k-ink)}.st.now .dot{border-color:var(--k-amber);background:var(--k-amber);box-shadow:0 0 0 4px var(--k-amber-soft)}@media (prefers-reduced-motion:no-preference){.st .dot{transition:background .3s,box-shadow .3s}}.ic.grey{color:var(--k-muted);background:#f1f2ef}.btn.danger{background:var(--k-red);color:#fff}.strip{gap:8px;display:flex}.q{background:var(--k-surface);border:1px solid var(--k-line);min-width:0;color:var(--k-muted);border-radius:12px;flex-direction:column;flex:1;gap:3px;padding:10px;font-size:12px;display:flex}.q b{font:600 14px var(--f-body);color:var(--k-text)}.q.next{border-color:var(--k-amber);background:var(--k-amber-soft)}.q.today{border-color:var(--k-ink-2);background:var(--k-tint)}.q.past{color:var(--k-faint);background:#f4f5f2}.q.past b{color:var(--k-faint)}.q.skipped,.q.missed,.q.cancelled{color:var(--k-faint);background:0 0;border-style:dashed}.q.skipped b,.q.missed b,.q.cancelled b{color:var(--k-muted)}.fact{justify-content:space-between;gap:12px;font-size:14px;display:flex}.fact b{text-align:right;font-weight:600}
