:root{--bg: #f4f5f7;--panel: #ffffff;--text: #1f2937;--muted: #6b7280;--border: #e5e7eb;--brand: #0f766e;--brand-ink: #ffffff;--warn: #b45309;--danger: #b91c1c;--ok: #15803d;--brand-soft: color-mix(in srgb, var(--brand) 10%, var(--panel));--brand-text: var(--brand);--focus: color-mix(in srgb, var(--brand) 55%, #2563eb);--radius: 12px;--tap: 48px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0b0f14;--panel: #131a22;--text: #e5e7eb;--muted: #9ca3af;--border: #263241;--brand: #14b8a6;--brand-ink: #04201d;--warn: #f59e0b;--danger: #f87171;--ok: #4ade80;--brand-soft: color-mix(in srgb, var(--brand) 18%, var(--panel));--brand-text: color-mix(in srgb, var(--brand) 55%, #ffffff)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;overflow-x:hidden}h1{font-size:1.6rem;line-height:1.2;margin:0 0 4px;overflow-wrap:anywhere}h2{font-size:1.15rem;margin:0 0 12px}p{margin:0 0 8px}a{color:var(--brand-text)}img,canvas{max-width:100%}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}[tabindex="-1"]:focus{outline:none}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:absolute;left:-999px;top:8px;background:var(--panel);padding:8px 12px;z-index:10}.skip:focus{left:8px}.muted{color:var(--muted)}.small{font-size:.875rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.center-text{text-align:center}.struck{text-decoration:line-through;color:var(--muted)}.shell{min-height:100vh;display:flex;flex-direction:column}.wrap{width:100%;max-width:720px;margin:0 auto;padding:0 16px}.main{flex:1;padding-top:20px;padding-bottom:40px}.site-header{background:var(--panel);border-bottom:1px solid var(--border);border-top:4px solid var(--brand)}.site-header-inner{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.logo{font-weight:800;letter-spacing:.3em;color:var(--brand-text);text-decoration:none;font-size:1.25rem;text-transform:uppercase}.tagline{color:var(--muted);font-size:.875rem}.site-footer{border-top:1px solid var(--border);background:var(--panel);font-size:.875rem}.footer-inner{display:flex;flex-wrap:wrap;gap:8px 20px;padding-top:16px;padding-bottom:20px;align-items:center}.footer-inner a{color:var(--muted);text-decoration:none;padding:8px 0}.footer-inner a:hover{color:var(--text);text-decoration:underline}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.wrap-row{gap:8px 12px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;min-width:0}.panel-title{font-size:1.05rem}.page-head{display:flex;flex-direction:column;gap:4px}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:700;color:var(--muted);margin:0}.lead{font-size:1.15rem}button{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-weight:600;cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.btn:hover:not(:disabled){border-color:color-mix(in srgb,var(--brand) 50%,var(--border))}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-lg{min-height:var(--tap);font-size:1.05rem;padding:12px 22px}.btn-sm{min-height:36px;padding:6px 12px;font-size:.875rem}.btn-block{width:100%}.btn-primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--brand) 88%,#000)}.btn-ghost{background:transparent}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-ghost{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.link-btn{background:none;border:0;color:var(--brand-text);text-decoration:underline;padding:8px 4px;cursor:pointer;font-size:.875rem}.loading{display:flex;gap:12px;align-items:center;justify-content:center;padding:48px 0;color:var(--muted)}.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}*{scroll-behavior:auto!important}}.alert{border-radius:10px;padding:12px 14px;border:1px solid;display:flex;flex-direction:column;gap:2px}.alert-error{border-color:color-mix(in srgb,var(--danger) 40%,var(--border));background:color-mix(in srgb,var(--danger) 8%,var(--panel))}.alert-success{border-color:color-mix(in srgb,var(--ok) 40%,var(--border));background:color-mix(in srgb,var(--ok) 9%,var(--panel))}.alert-info{border-color:color-mix(in srgb,var(--brand) 35%,var(--border));background:var(--brand-soft)}.alert-warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--border));background:color-mix(in srgb,var(--warn) 9%,var(--panel))}.alert-title{font-size:1rem}.status{display:inline-block;font-size:.8rem;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}.status-ok{background:color-mix(in srgb,var(--ok) 15%,var(--panel));color:var(--ok)}.status-warn{background:color-mix(in srgb,var(--warn) 15%,var(--panel));color:var(--warn)}.status-bad{background:color-mix(in srgb,var(--danger) 15%,var(--panel));color:var(--danger)}.status-muted{background:color-mix(in srgb,var(--muted) 15%,var(--panel));color:var(--muted)}.success{padding-top:16px;align-items:center}.success-icon{width:64px;height:64px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-size:2rem;font-weight:800}.reference{font-size:1.1rem}.reference strong{font-family:ui-monospace,Menlo,monospace;letter-spacing:.05em;background:var(--brand-soft);padding:2px 8px;border-radius:6px}.when{font-size:1.2rem;font-weight:700}.configurator{display:flex;flex-direction:column;gap:16px}.intro p{margin-top:4px}.progress-meta{display:flex;justify-content:space-between;gap:12px;font-size:.875rem;font-weight:600;margin-bottom:6px}.progress-meta .muted{text-align:right;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-track{height:8px;background:var(--border);border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:var(--brand);border-radius:999px;transition:width .3s ease}.step{display:flex;flex-direction:column;gap:18px}.step-title{font-size:1.3rem;margin:0}.nav-buttons{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin-top:4px}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.field{display:flex;flex-direction:column;gap:6px;border:0;margin:0;padding:0;min-width:0}.field-label{font-weight:600;padding:0}.req{color:var(--danger)}.optional{color:var(--muted);font-weight:400;font-size:.875rem}.field-help{color:var(--muted);font-size:.875rem;margin:0}.field-error{color:var(--danger);font-size:.875rem;font-weight:600;margin:0;min-height:0}.field-error:empty{display:none}input[type=text],input[type=email],input[type=tel],input:not([type]),textarea{font:inherit;font-size:16px;width:100%;min-height:var(--tap);padding:10px 12px;border:1px solid color-mix(in srgb,var(--muted) 45%,var(--border));border-radius:10px;background:var(--panel);color:var(--text)}textarea{resize:vertical;min-height:88px}input:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--brand)}.has-error input,.has-error textarea{border-color:var(--danger)}.number-input{display:grid;grid-template-columns:var(--tap) 1fr var(--tap);gap:8px;max-width:320px}.stepper{padding:0;font-size:1.4rem;min-height:var(--tap)}.input-unit{position:relative}.input-unit input{text-align:center;font-size:1.15rem;font-weight:600;padding-right:36px;padding-left:36px}.unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.choice{position:relative;display:flex;align-items:center;gap:12px;cursor:pointer;min-height:var(--tap);padding:12px 14px;border-radius:12px;border:2px solid var(--border);background:var(--panel);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.choice:hover{border-color:color-mix(in srgb,var(--brand) 40%,var(--border))}.choice.on{border-color:var(--brand);background:var(--brand-soft)}.choice:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.choice-label{font-weight:600;overflow-wrap:anywhere}.cards{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:520px){.cards{grid-template-columns:repeat(2,1fr)}}.radio-dot{flex:0 0 22px;width:22px;height:22px;border-radius:50%;border:2px solid color-mix(in srgb,var(--muted) 60%,var(--border))}.choice.on .radio-dot{border-color:var(--brand);background:radial-gradient(circle,var(--brand) 0 45%,transparent 50%)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips .choice{border-radius:999px;padding:10px 16px 10px 12px}.tick{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border);font-size:.85rem;font-weight:800;color:var(--muted)}.choice.on .tick{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.swatches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(min-width:520px){.swatches{grid-template-columns:repeat(3,minmax(0,1fr))}}.swatches .choice{flex-direction:column;align-items:stretch;gap:8px;padding:8px;text-align:center}.swatches .choice-label{font-size:.875rem}.chip-colour{display:block;height:56px;border-radius:8px;border:1px solid rgba(0,0,0,.18);box-shadow:inset 0 0 0 1px #ffffff40}.chip-pattern{background-image:repeating-linear-gradient(45deg,rgba(0,0,0,.08) 0 6px,transparent 6px 12px)!important;background-color:#f3f4f6!important}.swatches .choice.on:after{content:"✓";position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-weight:800;font-size:.85rem}.summary{border:1px solid var(--border);border-radius:10px;padding:0 14px}.summary>summary{cursor:pointer;font-weight:600;min-height:var(--tap);display:flex;align-items:center}.summary dl{margin:0 0 12px;display:flex;flex-direction:column;gap:12px}.summary-step{border-top:1px solid var(--border);padding-top:8px}.summary-row{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}.summary-row dt{color:var(--muted)}.summary-row dd{margin:0;text-align:right;font-weight:600;overflow-wrap:anywhere}.kv{margin:0;display:flex;flex-direction:column;gap:10px}.kv>div{display:flex;flex-direction:column;gap:2px}.kv dt{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.kv dd{margin:0;font-weight:600;white-space:pre-line;overflow-wrap:anywhere}.bank dd{display:flex;align-items:center;justify-content:space-between;gap:8px}.lines{width:100%;border-collapse:collapse;font-size:.95rem;table-layout:auto}.lines th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:0 6px 8px 0;border-bottom:1px solid var(--border)}.lines td{padding:10px 6px 10px 0;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere}.lines .num,.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.lines th:last-child,.lines td:last-child{padding-right:0}.included{color:var(--ok);font-weight:700}.totals{margin:12px 0 0;display:flex;flex-direction:column;gap:6px}.totals>div{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.totals dt{color:var(--muted)}.totals dd{margin:0;font-weight:600}.totals .grand{border-top:2px solid var(--text);padding-top:8px;margin-top:4px;font-size:1.15rem}.totals .grand dt{color:var(--text);font-weight:700}.totals .grand dd{font-weight:800}.totals-top{margin-top:0}.pay-panel{border:2px solid var(--brand)}.pay-panel .btn{margin-top:8px}.amount{font-size:1.2rem}.check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;padding:8px 0}.check input{width:24px;height:24px;flex:0 0 24px;margin:0;accent-color:var(--brand)}.sigpad{display:flex;flex-direction:column;gap:6px}.sigpad-box{position:relative}.sigpad-canvas{display:block;width:100%;height:180px;background:#fff;border:1px dashed color-mix(in srgb,var(--muted) 60%,var(--border));border-radius:10px;touch-action:none;cursor:crosshair}.sigpad-hint{position:absolute;left:16px;bottom:14px;color:#9ca3af;pointer-events:none;border-top:1px solid #d1d5db;padding-top:4px;width:calc(100% - 32px);font-size:.875rem}.schedule{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.schedule-item{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.schedule-item:last-child{border-bottom:0}.schedule-main,.schedule-side{display:flex;flex-direction:column;gap:4px}.schedule-side{align-items:flex-end}.cover{border-left:4px solid var(--brand)}.test-banner{background:repeating-linear-gradient(45deg,#fde68a 0,#fde68a 12px,#fcd34d 12px,#fcd34d 24px);color:#422006;text-align:center;padding:10px;border-radius:10px;font-size:.95rem}.test-card{border:2px dashed var(--warn)}.test-card .btn{margin-top:12px}.day-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;margin:0 -2px 8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.day{flex:0 0 68px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:12px;border:2px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer}.day.on{border-color:var(--brand);background:var(--brand);color:var(--brand-ink)}.day-wd,.day-mon{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.day-num{font-size:1.35rem;font-weight:800;line-height:1.1}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-bottom:8px}.slot{min-height:var(--tap);border-radius:10px;border:2px solid var(--border);background:var(--panel);color:var(--text);font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer}.slot.on{border-color:var(--brand);background:var(--brand);color:var(--brand-ink)}.dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);padding:20px;width:min(440px,calc(100vw - 32px))}.dialog::backdrop{background:#00000073}.dialog-body{margin-bottom:16px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(min-width:640px){h1{font-size:2rem}.panel{padding:20px 24px}.main{padding-top:32px}}
