:root{--bg: var(--tg-theme-bg-color, #ffffff);--bg2: var(--tg-theme-secondary-bg-color, #f2f3f5);--text: var(--tg-theme-text-color, #1b1d21);--muted: var(--tg-theme-hint-color, #7d8590);--accent: var(--tg-theme-button-color, #2f7d6d);--accent-text: var(--tg-theme-button-text-color, #ffffff);--link: var(--tg-theme-link-color, #2f7d6d);--danger: #c4413a;--warn-bg: #fff4e0;--warn-text: #8a5300;--mp: #f0a500;--kp-line: #2f7d6d;--pulse-line: #c4413a;--radius: 14px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: var(--tg-theme-bg-color, #17191c);--bg2: var(--tg-theme-secondary-bg-color, #22252a);--text: var(--tg-theme-text-color, #eceef1);--muted: var(--tg-theme-hint-color, #8b939e);--accent: var(--tg-theme-button-color, #4fb39d);--link: var(--tg-theme-link-color, #4fb39d);--warn-bg: #3a2c12;--warn-text: #f5c77a;--kp-line: #4fb39d;--pulse-line: #e46b63;color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%}body{background:var(--bg2);color:var(--text);font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overscroll-behavior:none}h1{font-size:26px;margin:8px 0 12px}h2{font-size:21px;margin:4px 0 12px}h4{margin:14px 0 4px;font-size:16px}p{margin:8px 0}.shell{display:flex;flex-direction:column;min-height:100%}.topbar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg);font-weight:600;font-size:18px}.icon-btn{background:none;border:0;font-size:22px;color:var(--muted);min-width:48px;min-height:40px}main{flex:1;padding-bottom:84px}.page{padding:12px 16px;display:flex;flex-direction:column;gap:12px;max-width:560px;margin:0 auto}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:3;display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg);border-top:1px solid color-mix(in srgb,var(--muted) 25%,transparent);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{background:none;border:0;color:var(--muted);font-size:12px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.tabbar button.on{color:var(--accent);font-weight:600}.tab-icon{font-size:20px;line-height:1}.card{background:var(--bg);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px;text-align:left;border:0;color:var(--text);font:inherit}.card-label{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.card.info{background:color-mix(in srgb,var(--accent) 14%,var(--bg))}.card.warn,.warn{background:var(--warn-bg);color:var(--warn-text);border-radius:10px;padding:10px 12px}.warn-text{color:var(--warn-text)}.banner{background:var(--warn-bg);color:var(--warn-text);border-radius:var(--radius);padding:12px 14px;font-weight:500}.row-card{cursor:pointer;gap:4px}.big-number{font-size:44px;font-weight:700}.muted{color:var(--muted)}.small-text{font-size:13px}.center{text-align:center}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stats div{display:flex;flex-direction:column}.stats b{font-size:24px}.stats span{font-size:13px;color:var(--muted)}.btn{display:block;width:100%;min-height:48px;border-radius:12px;border:0;background:var(--accent);color:var(--accent-text);font:inherit;font-weight:600;padding:10px 16px;cursor:pointer}.btn.big{min-height:56px;font-size:17px}.btn.secondary{background:var(--bg2);color:var(--text)}.card .btn.secondary{background:var(--bg2)}.btn.danger{background:transparent;color:var(--danger);border:1.5px solid var(--danger)}.btn.link{background:none;color:var(--link);font-weight:500}.btn.left{text-align:left}.btn:disabled{opacity:.45}.row-btn{background:none;border:0;color:var(--text);font:inherit;padding:6px 0;text-align:left;width:100%;min-height:40px}.chips,.toggles{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid color-mix(in srgb,var(--muted) 40%,transparent);background:transparent;color:var(--text);border-radius:999px;padding:8px 14px;font:inherit;min-height:44px}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.chip.small{min-width:0;min-height:38px;padding:4px 0;font-size:15px}.scale{display:grid;grid-template-columns:minmax(84px,auto) repeat(5,minmax(30px,44px));align-items:center;gap:5px}.scale span{font-size:14px;padding-right:4px}.segmented{display:flex;background:var(--bg2);border-radius:10px;padding:3px;gap:3px}.segmented button{flex:1;border:0;background:none;color:var(--text);font:inherit;min-height:40px;border-radius:8px}.segmented button.on{background:var(--bg);font-weight:600;box-shadow:0 1px 3px #0000001f}.segmented button:disabled{opacity:.35}.field{display:flex;flex-direction:column;gap:6px}input[type=range]{width:100%;accent-color:var(--accent)}.check{display:flex;gap:12px;align-items:flex-start;padding:8px 0;min-height:44px}.check input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--accent)}.note,.search{width:100%;border-radius:10px;border:1.5px solid color-mix(in srgb,var(--muted) 35%,transparent);background:var(--bg);color:var(--text);font:inherit;padding:10px 12px}.note{min-height:70px;resize:vertical}.list{padding-left:20px;margin:6px 0}.list li{margin:4px 0}.steps-list{margin:0;padding-left:22px;color:var(--text)}.steps-list li{margin:2px 0}.mp-text{color:var(--mp);font-weight:600}.tag{display:inline-block;background:var(--bg2);border-radius:6px;padding:2px 8px;margin:2px 4px 2px 0}.tag.mp{color:var(--mp);font-weight:600}table.summary{width:100%;border-collapse:collapse}table.summary td{padding:6px 4px;border-bottom:1px solid var(--bg2)}table.summary tr:first-child td{color:var(--muted);font-size:13px}.screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.panel{width:100%;max-width:480px;background:var(--bg);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:10px}.dots{display:flex;gap:6px;justify-content:center}.dots span{width:8px;height:8px;border-radius:50%;background:var(--bg2)}.dots span.on{background:var(--accent)}.practice-dark{background:#000;color:#d8dade;padding:0;position:fixed;inset:0;overflow:auto}.practice-panel{background:#111316;color:#e3e5e8;margin:16px}.practice-panel .btn.secondary{background:#24272c;color:#e3e5e8}.practice-panel .muted{color:#8b939e}.practice-panel .q{font-size:18px;font-weight:600}.result-big{font-size:56px;font-weight:700;text-align:center}.tap-surface{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center;user-select:none;-webkit-user-select:none;touch-action:none;background:#000;color:#b9bcc2;transition:background .3s}.tap-surface.pressing{background:#07090b}.tap-surface.accent{box-shadow:inset 0 0 0 6px var(--mp)}.tap-surface.accent .step-title{color:var(--mp)}.step-title{font-size:30px;font-weight:700;color:#e6e8eb}.step-sub{font-size:17px;color:#80868f}.step-hint{font-size:19px;max-width:420px}.step-time{font-size:64px;font-weight:300;font-variant-numeric:tabular-nums;color:#9ca1a8}.corner-btn{position:absolute;top:calc(12px + env(safe-area-inset-top));right:12px;min-height:44px;padding:8px 16px;border:1px solid #2a2d32;border-radius:10px;background:#111316;color:#9ca1a8;font:inherit}.step-cta{font-size:15px;color:#6b7179;margin-top:12px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.keypad-display{grid-column:1 / -1;text-align:center;font-size:40px;font-weight:600;padding:6px}.key{min-height:60px;border-radius:12px;border:0;background:#24272c;color:#e3e5e8;font-size:24px}.chart{width:100%;height:auto}.chart .grid{stroke:color-mix(in srgb,var(--muted) 25%,transparent);stroke-width:1}.chart .axis{font-size:10px;fill:var(--muted)}.chart .axis.pulse{fill:var(--pulse-line)}.chart .line{fill:none;stroke-width:2}.chart .line.kp{stroke:var(--kp-line)}.chart .line.pulse{stroke:var(--pulse-line);opacity:.6;stroke-dasharray:4 3}.chart .dot.kp{fill:var(--kp-line)}.chart .dot.pulse{fill:var(--pulse-line);opacity:.7}.chart .trend{stroke:var(--kp-line);stroke-width:1.5;stroke-dasharray:2 4;opacity:.7}.chart .sym{fill:var(--mp)}.chart-empty{padding:36px 0;text-align:center}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:13px}.legend .kp{color:var(--kp-line)}.legend .pulse{color:var(--pulse-line)}.legend .sym{color:var(--mp)}.session-details{font-size:14px;padding:4px 0 8px 12px;border-left:2px solid var(--bg2);display:flex;flex-direction:column;gap:2px}.instruction{max-height:calc(100vh - 32px);overflow:auto}
