:root{--ink: #1f2a24;--muted: #5d6b63;--line: #d8dfd9;--primary: #2f5d50;--primary-soft: #e3eee9;--warn: #8a3b12;--warn-soft: #fbe9df;--bg: #f6f4ef;--surface: #ffffff;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden}body{font-size:17px;line-height:1.45;-webkit-text-size-adjust:100%}.page{min-height:100vh;max-width:560px;margin:0 auto;background:var(--surface);display:flex;flex-direction:column}.bar{background:var(--primary);color:#fff;padding:18px 20px 14px}.brand{margin:0;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.85}.title{margin:4px 0 0;font-size:21px;font-weight:650;overflow-wrap:anywhere}.body{padding:18px 20px 28px;flex:1}h1,h2,h3{overflow-wrap:anywhere}h2{font-size:20px;margin:4px 0 10px}h3{font-size:17px;margin:18px 0 8px;text-transform:none}p{overflow-wrap:anywhere}.muted,.hint,.foot,.progress{color:var(--muted)}.progress{margin:0 0 6px;font-size:14px}.meter{height:6px;background:var(--primary-soft);border-radius:3px;overflow:hidden;margin-bottom:16px}.meter span{display:block;height:100%;background:var(--primary)}.intro,.paragraph{margin:0 0 14px}.note{margin:10px 0;padding:10px 12px;background:var(--primary-soft);border-radius:10px;font-size:15px}.hint{font-size:14px;margin:10px 0 0}.foot{font-size:13px;margin:18px 0 0;text-align:center}.fields{display:grid;gap:12px}.field{display:grid;gap:4px;font-size:15px;font-weight:600}.field textarea,.field input[type=text]{width:100%;font:inherit;font-weight:400;font-size:17px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;resize:vertical;min-height:46px}.field textarea:focus,.field input:focus,button:focus-visible,.choice:focus-within,.kind:focus-within,.tick:focus-within{outline:3px solid #8fb5a6;outline-offset:1px}.yesno{display:grid;gap:10px}.question{border:1px solid var(--line);border-radius:12px;padding:10px 12px 12px;margin:0;min-width:0}.question legend{padding:0 4px;font-size:15px;overflow-wrap:anywhere}.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}.choice{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:1px solid var(--line);border-radius:10px;font-weight:600;cursor:pointer}.choice.on{border-color:var(--primary);background:var(--primary-soft)}.kinds{display:grid;gap:10px}.kind{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.kind.on{border-color:var(--primary);background:var(--primary-soft)}.kind span{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}.kind input,.tick input,.choice input{width:22px;height:22px;flex:none;margin:1px 0 0;accent-color:var(--primary)}.ticks{list-style:none;padding:0;margin:0;display:grid;gap:8px}.tick{display:flex;gap:10px;align-items:flex-start;font-size:16px;cursor:pointer}.tick span{min-width:0;overflow-wrap:anywhere}.tick.strong{font-weight:700;margin-top:10px}.plain{margin:0;padding-left:20px;display:grid;gap:6px}.stage{margin-top:14px;padding:10px 12px;border-radius:10px;background:var(--primary-soft);font-weight:700}.label{font-weight:600;margin:10px 0 6px}.sign{margin-top:18px;display:grid;gap:10px}.pad{display:grid;gap:6px}.canvas{width:100%;height:auto;aspect-ratio:600 / 220;border:2px dashed var(--line);border-radius:12px;background:#fff;touch-action:none}.pad-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.nav{display:flex;justify-content:space-between;gap:12px;margin-top:22px}button{font:inherit;cursor:pointer}.primary,.secondary{min-height:50px;padding:0 22px;border-radius:999px;font-weight:700;border:1px solid var(--primary)}.primary{background:var(--primary);color:#fff;flex:1;max-width:70%}.primary:disabled{opacity:.6}.secondary{background:#fff;color:var(--primary)}.link{background:none;border:0;color:var(--primary);text-decoration:underline;padding:8px 0;min-height:44px;font-size:15px}.error{margin:14px 0 0;padding:10px 12px;border-radius:10px;background:var(--warn-soft);color:var(--warn);font-weight:600}.error p{margin:4px 0 0;font-weight:400}.message{text-align:center;padding:40px 6px}.message .mark{display:inline-flex;width:64px;height:64px;border-radius:50%;align-items:center;justify-content:center;font-size:34px;font-weight:800}.message.ok .mark{background:var(--primary-soft);color:var(--primary)}.message.stop .mark{background:var(--warn-soft);color:var(--warn)}.message h1{font-size:23px;margin:16px 0 8px}
