:root{--ink: #0e2f28;--ink-soft: #47635b;--ink-deep: #092019;--gold: #e0a422;--gold-deep: #c68d12;--gold-soft: #f8ecce;--paper: #f6f7f3;--card: #ffffff;--line: #dde3dc;--kept: #a3352b;--returned: #2c7a4b;--radius: 12px;--radius-sm: 9px;--shadow-1: 0 1px 2px rgba(14, 47, 40, .05), 0 2px 8px rgba(14, 47, 40, .06);--shadow-2: 0 2px 4px rgba(14, 47, 40, .06), 0 10px 28px rgba(14, 47, 40, .1);--kente: linear-gradient(90deg, var(--gold) 0 34%, var(--ink) 34% 58%, var(--kept) 58% 76%, #191a12 76% 100%);--ease: cubic-bezier(.22, .7, .3, 1);--font-display: "Space Grotesk", sans-serif;--font-body: "Inter", system-ui, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);color:var(--ink);background:radial-gradient(1100px 500px at 85% -10%,rgba(224,164,34,.07),transparent 60%),var(--paper);-webkit-font-smoothing:antialiased}h1,h2,.eyebrow,.ticket-amount,.stamp,.brand-word{font-family:var(--font-display)}h1{font-size:1.8rem;line-height:1.12;margin:.3rem 0 1rem;letter-spacing:-.015em}h2{font-size:1.02rem;margin:0 0 .55rem;letter-spacing:-.005em}.section-title{margin-top:2.2rem;padding-top:1.1rem;border-top:1px solid var(--line);text-transform:uppercase;font-size:.78rem;letter-spacing:.12em;color:var(--ink-soft)}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:700;color:var(--gold-deep);margin:0}.brand{display:inline-flex;align-items:center;gap:.55rem;line-height:1}.brand svg{display:block;flex-shrink:0}.brand-word{font-weight:700;font-size:calc(var(--mark, 28px) * .62);letter-spacing:-.02em;color:var(--ink);white-space:nowrap}.brand-word em{font-style:normal;color:var(--gold-deep)}.page{max-width:480px;margin:0 auto;padding:1.6rem 1.25rem 4.5rem}.page-wide{max-width:740px}.home{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.home-inner{max-width:560px}.home h1{font-size:clamp(2.4rem,6vw,3.1rem);margin-top:1.1rem}.home .brand{margin-bottom:.4rem}.home-rule{height:4px;width:132px;border-radius:2px;background:var(--kente);margin:.2rem 0 1.1rem}.lede{font-size:1.08rem;color:var(--ink-soft);line-height:1.6;max-width:46ch}.home-actions{margin-top:1.4rem}.footnote{font-size:.8rem;color:var(--ink-soft);margin-top:2.4rem;line-height:1.5}.field{margin-bottom:1.05rem}.field label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.35rem;color:var(--ink-soft)}.field input,.field select{width:100%;padding:.72rem .8rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);font:inherit;background:var(--card);color:var(--ink);transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}.field input:hover,.field select:hover{border-color:#c6cfc6}.field input:focus,.field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #e0a42238}.btn{display:inline-block;padding:.72rem 1.15rem;border:1.5px solid var(--ink);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-decoration:none;transition:transform .14s var(--ease),box-shadow .14s var(--ease),background .14s var(--ease),border-color .14s var(--ease)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-1)}.btn:active{transform:translateY(0);box-shadow:none}.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:var(--shadow-1)}.btn-primary:hover{background:var(--ink-deep);box-shadow:var(--shadow-2)}.btn-danger{border-color:var(--kept);color:var(--kept);background:var(--card)}.btn-danger:hover{background:#fbf1f0}.btn-block{width:100%;margin-top:.8rem;text-align:center}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.btn-link{background:none;border:none;color:var(--ink-soft);text-decoration:underline;cursor:pointer;font:inherit;margin-top:1rem;padding:0}.btn-link:hover{color:var(--ink)}.ticket{display:flex;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:1rem 0;position:relative;box-shadow:var(--shadow-1);transition:box-shadow .18s var(--ease)}.ticket:hover{box-shadow:var(--shadow-2)}.ticket:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--kente)}.ticket-main{flex:1;padding:1.05rem 1.05rem .95rem;min-width:0}.ticket-eyebrow{margin:0;font-size:.68rem;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-soft);font-weight:600}.ticket-service{margin:.2rem 0 0;font-weight:600}.ticket-when{margin:.12rem 0 0;font-size:.85rem;color:var(--ink-soft)}.ticket-ref{margin:.35rem 0 0;font-size:.7rem;color:var(--ink-soft)}.ticket-stub{width:122px;flex-shrink:0;background:var(--gold-soft);border-left:2px dashed var(--gold);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.7rem .4rem;position:relative}.ticket-stub:before,.ticket-stub:after{content:"";position:absolute;left:-8px;width:14px;height:14px;background:var(--paper);border-radius:50%;border:1px solid var(--line)}.ticket-stub:before{top:-8px}.ticket-stub:after{bottom:-8px}.ticket-amount-label{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.ticket-amount{font-weight:700;font-size:1.1rem}.stamp{margin-top:.4rem;font-size:.62rem;font-weight:700;letter-spacing:.12em;padding:.16rem .5rem;border:1.5px solid currentColor;border-radius:4px;transform:rotate(-4deg)}.stamp-paid{color:var(--ink)}.stamp-returned{color:var(--returned)}.stamp-kept{color:var(--kept)}.ticket-no_show .ticket-stub,.ticket-late_cancelled .ticket-stub{background:#f6e2df;border-left-color:var(--kept)}.ticket-cancelled_refunded{opacity:.72}.terms{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem 1.15rem;margin:1.3rem 0;box-shadow:var(--shadow-1)}.terms-body p{margin:.5rem 0;font-size:.9rem;line-height:1.55}.terms-fine{font-size:.75rem!important;color:var(--ink-soft)}.consent{display:flex;gap:.65rem;align-items:flex-start;margin-top:.95rem;padding-top:.95rem;border-top:1px solid var(--line);font-weight:600;font-size:.9rem;cursor:pointer}.consent input{width:1.15rem;height:1.15rem;margin-top:.05rem;accent-color:var(--ink)}.dash-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-bottom:1rem;margin-bottom:1.1rem;position:relative}.dash-head:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:3px;border-radius:2px;background:var(--kente)}.dash-head h1{margin-bottom:.1rem;font-size:1.45rem}.dash-nav{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.dash-nav .btn,.dash-head .btn{padding:.55rem .9rem;font-size:.9rem}.booking-list{display:flex;flex-direction:column}.booking-row{border-bottom:1px solid var(--line);padding-bottom:.8rem;margin-bottom:.55rem}.booking-actions{display:flex;gap:.6rem}.booking-actions .btn{flex:1;text-align:center}.qr-section{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}@media (max-width: 560px){.qr-section{grid-template-columns:1fr}}.qr-card,.policy-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem;text-align:center;box-shadow:var(--shadow-1)}.policy-card{text-align:left}.qr-caption{font-size:.85rem;font-weight:600;margin:.65rem 0 .2rem}.qr-url{font-size:.72rem;color:var(--ink-soft);word-break:break-all}.service-form{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem;box-shadow:var(--shadow-1)}.service-list{padding-left:1.1rem}.service-list li{margin-bottom:.45rem}.muted{color:var(--ink-soft)}.error{color:var(--kept);background:#f9ecea;border:1px solid #e6c4c0;border-radius:var(--radius-sm);padding:.65rem .85rem;font-size:.9rem}.success{color:var(--returned);font-weight:600}.warning-strip{background:var(--ink);color:var(--gold);font-family:var(--font-display);font-weight:700;padding:.75rem .95rem;border-radius:var(--radius-sm);font-size:.95rem;line-height:1.35;box-shadow:var(--shadow-1)}.banner-warn{background:#fdf3d8;border:1px solid #e8c96d;color:#6b5518;padding:.8rem 1rem;border-radius:var(--radius-sm);margin:.75rem 0 1.3rem;font-size:.92rem;line-height:1.5}.banner-warn a{color:inherit;font-weight:700}.banner-ok{background:#e7f3ea;border:1px solid #86b493;color:#1d4a2d;padding:.8rem 1rem;border-radius:var(--radius-sm);margin:.75rem 0 1.3rem;font-size:.92rem;line-height:1.5}.muted-inline{color:var(--ink-soft);font-weight:400;font-size:.9em}.location-line{color:var(--ink-soft);margin:-6px 0 12px;font-size:.92rem}.hours-editor{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.hours-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:.65rem .9rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);transition:border-color .16s var(--ease)}.hours-row:hover{border-color:#c6cfc6}.hours-row-closed{opacity:.55;background:transparent}.hours-day{display:flex;align-items:center;gap:10px;font-weight:500;cursor:pointer}.hours-day input{accent-color:var(--ink);width:1.05rem;height:1.05rem}.hours-times{display:flex;align-items:center;gap:8px}.hours-times input[type=time]{padding:6px 8px;border:1.5px solid var(--line);border-radius:8px;font:inherit;background:var(--card);color:var(--ink)}.hours-times input[type=time]:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #e0a42238}.day-chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:.5rem .9rem;border-radius:999px;border:1.5px solid var(--line);background:var(--card);cursor:pointer;font:inherit;font-size:.92rem;font-weight:500;transition:border-color .14s var(--ease),background .14s var(--ease),transform .14s var(--ease)}.chip:hover{border-color:var(--ink-soft);transform:translateY(-1px)}.chip-active,.chip-active:hover{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:var(--shadow-1)}.chip:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}.slot{padding:.62rem .25rem;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--card);cursor:pointer;font:inherit;font-size:.95rem;font-variant-numeric:tabular-nums;text-align:center;transition:border-color .14s var(--ease),background .14s var(--ease),transform .14s var(--ease)}.slot:hover:not(:disabled){border-color:var(--gold);transform:translateY(-1px)}.slot-active,.slot-active:hover:not(:disabled){background:var(--ink);color:var(--gold);border-color:var(--ink);font-weight:600;box-shadow:var(--shadow-1)}.slot:disabled{cursor:not-allowed;opacity:.4}.slot-taken{text-decoration:line-through;background:#eef0ea}.slot:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:.25rem 0 1.4rem}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem .95rem;box-shadow:var(--shadow-1)}.stat-label{margin:0;font-size:.68rem;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-soft);font-weight:600}.stat-num{margin:.2rem 0 0;font-family:var(--font-display);font-weight:700;font-size:1.5rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-new{color:var(--gold-deep)}.new-chip{display:inline-block;font-family:var(--font-display);background:var(--gold);color:var(--ink-deep);font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;margin-bottom:.35rem}.form-actions{display:flex;gap:.6rem;align-items:center}.service-cards{display:flex;flex-direction:column;gap:10px}.service-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1rem;box-shadow:var(--shadow-1);flex-wrap:wrap}.service-card-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.service-card-info .muted{font-size:.85rem}.service-card-actions{display:flex;gap:.5rem}.service-card-actions .btn{padding:.5rem .85rem;font-size:.88rem}.service-card-retired{opacity:.65;background:transparent;box-shadow:none}.photo-block{margin-bottom:.5rem}.biz-photo{display:block;width:100%;max-height:210px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-1);margin-bottom:.7rem}.biz-photo-cover{max-height:180px;margin-bottom:1rem}.biz-photo-empty{display:grid;place-items:center;height:120px;color:var(--ink-soft);background:var(--card);border-style:dashed;box-shadow:none;font-size:.9rem}.photo-btn{position:relative;overflow:hidden}.photo-hint{font-size:.82rem;margin-top:.5rem}
