:root{--paper: #faf6ee;--paper-raised: #ffffff;--ink: #21413a;--ink-soft: #5b7269;--pine: #2e6b5b;--pine-deep: #1f4f43;--clay: #c2602e;--line: #e2d9c8;--line-strong: #c9bda5;--error: #a23b2e;--serif: "Fraunces", "Iowan Old Style", Georgia, serif;--sans: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--paper)}body{font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.45}#root{display:flex;justify-content:center;padding:20px 14px 28px}.widget{width:100%;max-width:440px}h1{font-family:var(--serif);font-weight:560;font-size:1.7rem;letter-spacing:-.01em;margin:0 0 6px}.lede{color:var(--ink-soft);margin:0 0 20px;font-size:.95rem}.step{animation:rise .32s cubic-bezier(.22,1,.36,1)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.back{background:none;border:none;color:var(--ink-soft);font:inherit;font-size:.85rem;padding:0;margin-bottom:14px;cursor:pointer}.back:hover{color:var(--pine-deep)}.banner{background:#f3e6cf;border:1px solid var(--line-strong);border-radius:10px;padding:10px 14px;font-size:.9rem;margin:0 0 16px}.error{color:var(--error);font-size:.9rem;margin:10px 0}.footnote{text-align:center;color:var(--line-strong);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-top:30px}.practice-photo-wrap{display:flex;justify-content:center;margin-bottom:18px}.practice-photo{max-height:72px;max-width:240px;object-fit:contain;border-radius:12px}.progress{display:flex;gap:6px;margin-bottom:22px}.progress-dot{height:3px;flex:1;border-radius:2px;background:var(--line);transition:background .3s}.progress-dot.on{background:var(--pine)}.spinner{width:22px;height:22px;margin:18px auto;border:2.5px solid var(--line);border-top-color:var(--pine);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.choice-grid{display:grid;gap:12px}.choice{text-align:left;background:var(--paper-raised);border:1.5px solid var(--line);border-radius:14px;padding:18px 18px 16px;cursor:pointer;display:grid;gap:3px;transition:border-color .15s,transform .15s}.choice:hover{border-color:var(--pine);transform:translateY(-1px)}.choice-title{font-family:var(--serif);font-weight:560;font-size:1.15rem;color:var(--pine-deep)}.choice-sub{color:var(--ink-soft);font-size:.85rem}.card-list{display:grid;gap:10px}.type-card{text-align:left;background:var(--paper-raised);border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;cursor:pointer;display:grid;gap:4px;font:inherit;color:inherit;transition:border-color .15s}.type-card:hover{border-color:var(--pine)}.type-name{font-family:var(--serif);font-weight:560;font-size:1.05rem;color:var(--pine-deep)}.type-desc{color:var(--ink-soft);font-size:.85rem}.type-duration{color:var(--clay);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}.week-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.week-label{font-size:.85rem;color:var(--ink-soft)}.week-arrow{background:var(--paper-raised);border:1.5px solid var(--line);border-radius:10px;width:36px;height:32px;font-size:.95rem;color:var(--pine-deep);cursor:pointer}.week-arrow:disabled{opacity:.35;cursor:default}.date-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:14px}.date-chip{flex:0 0 auto;background:var(--paper-raised);border:1.5px solid var(--line);border-radius:999px;padding:7px 14px;font:inherit;font-size:.83rem;color:var(--ink);cursor:pointer;display:flex;align-items:center;gap:7px}.date-chip.on{border-color:var(--pine-deep);background:var(--pine-deep);color:var(--paper)}.date-count{font-size:.7rem;opacity:.65}.time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}.time-chip{background:var(--paper-raised);border:1.5px solid var(--line);border-radius:10px;padding:10px 4px;font:inherit;font-size:.88rem;color:var(--pine-deep);cursor:pointer;transition:border-color .12s,background .12s}.time-chip:hover{border-color:var(--clay);background:#fdf2ea}.details-form{display:grid;gap:14px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:grid;gap:5px;font-size:.85rem;font-weight:600}.field input{font:inherit;font-weight:400;font-size:.95rem;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--paper-raised);color:var(--ink);width:100%}.field input:focus{outline:none;border-color:var(--pine)}.hint{font-weight:400;color:var(--ink-soft);font-size:.78rem}.optional{font-weight:400;color:var(--ink-soft)}.primary{font:inherit;font-weight:600;font-size:1rem;background:var(--pine-deep);color:var(--paper);border:none;border-radius:12px;padding:13px;cursor:pointer;margin-top:4px;transition:background .15s}.primary:hover{background:var(--pine)}.primary:disabled{opacity:.6;cursor:default}.code-input{display:block;width:100%;max-width:250px;margin:6px 0 4px;font-family:var(--serif);font-size:2rem;letter-spacing:.45em;text-align:center;padding:12px 0 12px .45em;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--paper-raised);color:var(--ink)}.code-input:focus{outline:none;border-color:var(--pine)}.linkish{background:none;border:none;color:var(--pine);font:inherit;font-size:.85rem;text-decoration:underline;cursor:pointer;padding:0;margin-top:14px}.done{text-align:center;padding-top:8px}.done-mark{width:52px;height:52px;margin:6px auto 16px;border-radius:50%;background:var(--pine-deep);color:var(--paper);font-size:1.5rem;line-height:52px;animation:pop .45s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.done h1{font-size:2rem}.done-card{background:var(--paper-raised);border:1.5px solid var(--line);border-radius:16px;padding:20px;margin:18px 0}.done-type{font-family:var(--serif);font-weight:560;font-size:1.2rem;color:var(--pine-deep);margin:0 0 8px}.done-when{margin:0;color:var(--ink);font-size:1rem}.form-section-header{font-family:var(--serif);font-weight:560;font-size:1.15rem;color:var(--pine-deep);margin:6px 0 2px;letter-spacing:-.01em}.form-section-para{color:var(--ink-soft);font-size:.9rem;margin:0 0 4px;line-height:1.5}.form-field-hint{font-size:.8rem;margin:3px 0 0}.form-field-hint.error{color:var(--error)}.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}@media(max-width:480px){.checkbox-grid{grid-template-columns:1fr}}.page-progress{font-size:.78rem;color:var(--ink-soft);text-align:right;margin-bottom:14px}.page-nav{display:flex;gap:10px;margin-top:8px}.page-nav .primary{flex:1}.form-field{display:grid;gap:5px;font-size:.85rem;font-weight:600;margin:0}.form-field>label,.form-field .field-label{display:block;margin:0}.form-field>label.checkbox-label,.form-field .checkbox-label{display:flex}.form-field>label.photo-upload-label{display:inline-flex}.form-field.checkbox-grid{gap:6px 14px}.form-field input[type=text],.form-field input[type=tel],.form-field input[type=email],.form-field input[type=date],.form-field select,.form-field textarea{font:inherit;font-weight:400;font-size:1rem;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--paper-raised);color:var(--ink);width:100%}.form-field input[type=text]:focus,.form-field input[type=tel]:focus,.form-field input[type=email]:focus,.form-field input[type=date]:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--pine)}.form-field input[type=checkbox]:focus-visible{outline:2px solid var(--pine);outline-offset:2px}.photo-upload-label:focus-within{border-color:var(--pine);outline:2px solid var(--pine);outline-offset:2px}.form-field textarea{resize:vertical;min-height:88px}.form-field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235b7269' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}.required-mark{color:var(--clay);font-weight:600}.form-fieldset{border:none;padding:0;margin:0;min-width:0}.form-fieldset legend{padding:0;margin-bottom:6px;font-weight:600}.checkbox-label{display:flex;align-items:flex-start;gap:9px;font-weight:400;font-size:.92rem;padding:4px 0;cursor:pointer}.checkbox-label input[type=checkbox]{width:17px;height:17px;margin:1px 0 0;flex-shrink:0;accent-color:var(--pine);cursor:pointer}.consent-field{gap:8px}.consent-text{font-weight:400;font-size:.92rem;line-height:1.5;margin:0}.consent-agree{font-weight:600;font-size:.9rem}.signature-field{gap:8px}.sig-tabs{display:flex;gap:6px}.sig-tab{font:inherit;font-weight:600;font-size:.85rem;padding:7px 18px;border:1.5px solid var(--line);border-radius:999px;background:var(--paper-raised);color:var(--ink-soft);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.sig-tab:hover{border-color:var(--line-strong)}.sig-tab.active{border-color:var(--pine);background:var(--pine);color:var(--paper)}.form-field input.sig-typed-input,.sig-typed-input{font-family:var(--serif);font-size:1.25rem;font-weight:400;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;background:var(--paper-raised);color:var(--ink);width:100%}.sig-typed-input:focus{outline:none;border-color:var(--pine)}.sig-canvas-wrap{display:grid;gap:4px;justify-items:start}.sig-canvas{border:1.5px dashed var(--line-strong);border-radius:10px;background:var(--paper-raised);width:100%;max-width:380px;touch-action:none}.sig-clear{margin-top:0}.photo-field{gap:8px}.photo-thumbs{display:flex;gap:8px;flex-wrap:wrap}.photo-thumb{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1.5px solid var(--line)}.photo-upload-label{display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;color:var(--pine-deep);border:1.5px dashed var(--line-strong);border-radius:10px;padding:11px 18px;cursor:pointer;background:var(--paper-raised);transition:border-color .15s}.photo-upload-label:hover{border-color:var(--pine)}.photo-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.photo-uploading,.photo-max-note{font-weight:400;font-size:.85rem;color:var(--ink-soft);margin:0}
