:root{--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--gold:#c8a24a;--gold-2:#e3c67a;--gold-ink:#6c5218;--green:#2fb37a;--red:#e0573c;--blue:#4a90c8;--amber:#f2b134;--radius:14px;--radius-sm:9px;--radius-lg:22px;--shadow:0 1px 2px #0000000f, 0 10px 30px -12px #00000040;--ease:cubic-bezier(.2,.8,.2,1);--tap:48px}.ink{--bg:#0e0e0f;--bg-2:#141416;--surface:#19191c;--surface-2:#222226;--line:#2b2b31;--ink:#f4f1ea;--ink-2:#c9c5bb;--muted:#8d8a82;--accent:var(--gold);--accent-ink:#1a1405;--on-accent:#15120a;--danger:var(--red);--success:var(--green);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.paper{--bg:#f5f4f0;--bg-2:#ecebe6;--surface:#fff;--surface-2:#f7f6f2;--line:#e3e1da;--ink:#15151a;--ink-2:#3b3b44;--muted:#73737c;--accent:#15151a;--accent-ink:#fff;--on-accent:#fff;--danger:#c6432b;--success:#1f8f5f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:#f4f1ea;-webkit-font-smoothing:antialiased;background:#0e0e0f;margin:0;font-size:16px;line-height:1.45}.ink,.paper{background:var(--bg);color:var(--ink);min-height:100dvh}h1,h2,h3,h4,p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}::selection{background:var(--gold);color:#15120a}.display{font-family:var(--font-display);letter-spacing:-.02em;font-variation-settings:"opsz" 144;font-size:clamp(2rem,5vw + 1rem,3.6rem);font-weight:600;line-height:1.02}.display.sm{font-size:clamp(1.5rem,2vw + 1rem,2.1rem)}.title{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.35rem;font-weight:600;line-height:1.15}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.eyebrow.accent{color:var(--gold)}.muted{color:var(--muted)}.small{font-size:.875rem}.xs{font-size:.78rem}.strong{font-weight:600}.mono{font-variant-numeric:tabular-nums}.center{place-items:center;display:grid}.shell{padding:max(16px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));max-width:560px;margin:0 auto}.shell.wide{max-width:1200px}.stack{flex-direction:column;gap:14px;display:flex}.stack.tight{gap:8px}.stack.loose{gap:24px}.row{align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.grid{gap:12px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.auto{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.divider{background:var(--line);border:0;height:1px;margin:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card.pad-sm{padding:12px 14px}.card.flush{padding:0;overflow:hidden}.card.accent{border-color:color-mix(in srgb, var(--gold) 55%, var(--line));background:linear-gradient(160deg, color-mix(in srgb, var(--gold) 10%, var(--surface)), var(--surface))}.card.interactive{cursor:pointer;transition:transform .18s var(--ease), border-color .18s}.card.interactive:active{transform:scale(.985)}.card.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.btn{min-height:var(--tap);border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;transition:transform .12s var(--ease), background .15s, border-color .15s, opacity .15s;-webkit-tap-highlight-color:transparent;text-align:center;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--gold);border-color:var(--gold);color:#15120a}.ink .btn.primary:hover{background:var(--gold-2);border-color:var(--gold-2)}.paper .btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.ghost{background:0 0}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 50%, var(--line))}.btn.danger.solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn.success{background:var(--green);border-color:var(--green);color:#06130c}.btn.block{width:100%}.btn.lg{border-radius:var(--radius);min-height:56px;font-size:1.05rem}.btn.sm{min-height:36px;padding:0 12px;font-size:.875rem}.btn.xs{min-height:30px;padding:0 10px;font-size:.78rem}.btn.link{min-height:0;color:var(--gold);background:0 0;border:0;padding:0;font-weight:600}.paper .btn.link{color:var(--ink);text-decoration:underline}.field{flex-direction:column;gap:6px;display:flex}.label{color:var(--ink-2);letter-spacing:.02em;font-size:.8rem;font-weight:600}.input,select.input,textarea.input{min-height:var(--tap);border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);color:var(--ink);outline:none;width:100%;padding:10px 14px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 25%, transparent)}.input.sm{min-height:38px;padding:6px 10px;font-size:.9rem}.check{cursor:pointer;align-items:center;gap:10px;min-height:40px;display:flex}.check input{width:20px;height:20px;accent-color:var(--gold)}.paper .check input{accent-color:var(--ink)}.error{color:var(--danger);font-size:.9rem;font-weight:500}.notice{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);padding:12px 14px;font-size:.92rem}.notice.warn{border-color:color-mix(in srgb, var(--amber) 60%, var(--line));background:color-mix(in srgb, var(--amber) 12%, var(--surface))}.notice.danger{border-color:color-mix(in srgb, var(--danger) 60%, var(--line));background:color-mix(in srgb, var(--danger) 12%, var(--surface))}.notice.success{border-color:color-mix(in srgb, var(--success) 60%, var(--line));background:color-mix(in srgb, var(--success) 12%, var(--surface))}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;min-height:38px;transition:background .15s, border-color .15s, transform .12s var(--ease);-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.9rem;font-weight:600;display:inline-flex}.chip:active{transform:scale(.96)}.chip.on{background:var(--gold);border-color:var(--gold);color:#15120a}.paper .chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip.sm{min-height:30px;padding:0 10px;font-size:.8rem}.pill{letter-spacing:.05em;text-transform:uppercase;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.pill.confirmed{color:var(--blue);border-color:color-mix(in srgb, var(--blue) 45%, transparent)}.pill.arrived{color:var(--amber);border-color:color-mix(in srgb, var(--amber) 45%, transparent)}.pill.in_progress{color:var(--gold);border-color:color-mix(in srgb, var(--gold) 45%, transparent)}.pill.completed{color:var(--green);border-color:color-mix(in srgb, var(--green) 45%, transparent)}.pill.cancelled,.pill.no_show{color:var(--muted);text-decoration:line-through}.pill.walk_in{color:var(--ink-2)}.dot{background:var(--gold);border-radius:50%;width:8px;height:8px;display:inline-block}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:6px 0 18px;display:flex}.brand{font-family:var(--font-display);letter-spacing:.02em;font-size:1.05rem;font-weight:700}.brand b{color:var(--gold)}.nav{gap:4px;display:flex}.nav a{color:var(--ink-2);border-radius:8px;padding:8px 10px;font-size:.9rem;font-weight:600}.nav a.active,.nav a:hover{color:var(--ink);background:var(--surface)}.hero{padding:14px 0 10px}.hero .display{max-width:12ch}.hero-art{border-radius:var(--radius-lg);background:radial-gradient(120% 90% at 80% 0%, color-mix(in srgb, var(--gold) 30%, transparent), transparent 60%), linear-gradient(135deg, #1d1d21, #0f0f11);border:1px solid var(--line);height:180px;position:relative;overflow:hidden}.hero-art:after{content:"";aspect-ratio:1;border:1px solid color-mix(in srgb, var(--gold) 40%, transparent);border-radius:50%;width:70%;position:absolute;inset:auto -20% -60% auto}.appt{grid-template-columns:64px 1fr auto;align-items:center;gap:12px;display:grid}.appt .date{text-align:center;border-right:1px solid var(--line);padding-right:10px}.appt .date .m{letter-spacing:.14em;color:var(--gold);font-size:.7rem;font-weight:700}.appt .date .d{font-family:var(--font-display);font-size:1.7rem;font-weight:600;line-height:1}.appt .time{font-size:1.05rem;font-weight:700}.cal{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal .dow{text-align:center;color:var(--muted);letter-spacing:.08em;padding-bottom:4px;font-size:.7rem;font-weight:700}.cal .day{aspect-ratio:1;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:42px;font-weight:600;display:flex;position:relative}.cal .day.open{background:var(--surface);border-color:var(--line)}.cal .day.open .dot{background:var(--green)}.cal .day.full{color:var(--muted)}.cal .day.full .dot{background:var(--line)}.cal .day.off,.cal .day:disabled{color:color-mix(in srgb, var(--muted) 50%, transparent);cursor:default}.cal .day.today:after{content:"";background:var(--gold);border-radius:50%;width:5px;height:5px;position:absolute;top:5px;right:6px}.cal .day.selected{background:var(--gold);border-color:var(--gold);color:#15120a}.cal .day.selected .dot{background:#15120a}.paper .cal .day.selected{background:var(--ink);color:#fff}.cal .day .n{font-size:.95rem;line-height:1}.cal .day .dot{width:5px;height:5px}.slots{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.slot{border:1px solid var(--line);background:var(--surface);cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:50px;transition:transform .12s var(--ease), background .15s;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:1rem;font-weight:700;display:flex}.slot:active{transform:scale(.96)}.slot.on{background:var(--gold);border-color:var(--gold);color:#15120a}.slot .who{opacity:.75;font-size:.68rem;font-weight:600}.steps{flex-direction:column;gap:10px;display:flex}.step{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.step>.head{cursor:pointer;align-items:center;gap:12px;min-height:56px;padding:12px 14px;display:flex}.step>.head .k{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);flex:none;width:64px;font-size:.7rem;font-weight:700}.step>.head .v{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.step>.head .v.empty{color:var(--muted);font-weight:500}.step>.body{border-top:1px solid var(--line);padding:4px 14px 14px}.step.open>.head{border-bottom:0}.option{cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #0000;border-radius:12px;align-items:center;gap:12px;min-height:56px;padding:8px 10px;display:flex}.option:hover{background:var(--surface-2)}.option.on{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 10%, var(--surface))}.avatar{color:#0e0e0f;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-size:.95rem;font-weight:700;display:grid}.price{font-variant-numeric:tabular-nums;font-weight:700}.sticky-cta{padding:10px 0 max(8px, env(safe-area-inset-bottom));background:linear-gradient(180deg, transparent, var(--bg) 30%);position:sticky;bottom:0}.admin{grid-template-columns:230px 1fr;min-height:100dvh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:4px;height:100dvh;padding:18px 14px;display:flex;position:sticky;top:0}.sidebar a{color:var(--ink-2);border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:.93rem;font-weight:500;display:flex}.sidebar a.active{background:var(--ink);color:#fff}.sidebar a:not(.active):hover{background:var(--surface-2)}.admin-main{min-width:0;padding:22px 26px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;font-size:.72rem}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:9px 10px}.table tr:hover td{background:var(--surface-2)}.table-wrap{overflow-x:auto}.stat{flex-direction:column;gap:2px;display:flex}.stat .n{font-family:var(--font-display);font-size:2rem;font-weight:600;line-height:1}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex}.tabs a,.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:600}.tabs .active{color:var(--ink);border-bottom-color:var(--gold)}.paper .tabs .active{border-bottom-color:var(--ink)}.daygrid{grid-template-columns:64px repeat(var(--cols), minmax(140px, 1fr));min-width:100%;font-size:.82rem;display:grid}.daygrid .hdr{background:var(--surface);border-bottom:1px solid var(--line);z-index:2;padding:8px 6px;font-weight:600;position:sticky;top:0}.daygrid .col{border-left:1px solid var(--line);height:calc(var(--rows) * 28px);background:repeating-linear-gradient(to bottom, transparent 0 27px, var(--line) 27px 28px);position:relative}.daygrid .col .off{background:repeating-linear-gradient(135deg, transparent 0 6px, var(--bg-2) 6px 8px);position:absolute;left:0;right:0}.daygrid .timecol{height:calc(var(--rows) * 28px);position:relative}.daygrid .timecol span{color:var(--muted);font-size:.72rem;position:absolute;right:8px;transform:translateY(-50%)}.evt{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:3px 6px;font-size:.74rem;line-height:1.2;position:absolute;left:3px;right:3px;overflow:hidden}.evt.confirmed{border-left:3px solid var(--blue)}.evt.arrived{border-left:3px solid var(--amber)}.evt.in_progress{border-left:3px solid var(--gold);background:color-mix(in srgb, var(--gold) 12%, var(--surface))}.evt.completed{border-left:3px solid var(--green);opacity:.75}.evt.cancelled,.evt.no_show{opacity:.4;text-decoration:line-through}.week-editor{gap:6px;display:grid}.week-row{grid-template-columns:52px 1fr 1fr 1fr 40px;align-items:center;gap:8px;display:grid}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rise{animation:rise .35s var(--ease) both}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.skeleton{background:var(--surface-2);border-radius:8px;animation:1.2s ease-in-out infinite pulse}@media (prefers-reduced-motion:reduce){.rise{animation:none}.btn,.chip,.slot,.card.interactive{transition:none}}@media (width<=860px){.admin{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;height:auto;padding:10px;position:static}.admin-main{padding:16px}.grid.three{grid-template-columns:repeat(2,1fr)}}@media (width<=420px){.slots{grid-template-columns:repeat(3,1fr)}.grid.two.collapse{grid-template-columns:1fr}}
