:root{--bg: #e9ece6;--surface: #f5f6f2;--line: #d2d8cf;--ink: #1b221e;--muted: #5f6a63;--faint: #b3bbb2;--accent: #a8670a;--accent-glow: rgba(214, 140, 30, .35);--error: #bb3a26;--on-ink: #f5f6f2;--font-display: "Martian Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--font-ui: "Golos Text", system-ui, "Segoe UI", Roboto, sans-serif;--radius: 10px;--ease: cubic-bezier(.2, .7, .2, 1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f1513;--surface: #151d1a;--line: #25302b;--ink: #e2e7df;--muted: #8a958e;--faint: #36423c;--accent: #e8a33d;--accent-glow: rgba(232, 163, 61, .45);--error: #ee6a53;--on-ink: #0f1513;color-scheme:dark}}:root[data-theme=dark]{--bg: #0f1513;--surface: #151d1a;--line: #25302b;--ink: #e2e7df;--muted: #8a958e;--faint: #36423c;--accent: #e8a33d;--accent-glow: rgba(232, 163, 61, .45);--error: #ee6a53;--on-ink: #0f1513;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}html{touch-action:manipulation;-webkit-tap-highlight-color:transparent}body{margin:0;user-select:none;-webkit-user-select:none;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased;overflow:hidden}[hidden]{display:none!important}input,textarea,.free-text,.copy-typed{user-select:text;-webkit-user-select:text}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#app{height:100%}.shell{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;max-width:1040px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.topbar{display:flex;align-items:center;gap:16px;padding-block:14px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.brand{border:0;background:none;padding:6px 8px;margin-left:-8px;border-radius:8px;cursor:pointer}.brand:hover{color:var(--ink)}.brand:hover .lamp{box-shadow:0 0 0 3px var(--line)}.lamp{flex:none;width:10px;height:10px;border-radius:50%;background:var(--faint);transition:background 40ms linear,box-shadow 40ms linear}.tone-on .lamp{background:var(--accent);box-shadow:0 0 0 3px var(--accent-glow),0 0 14px 2px var(--accent-glow)}.tabs{display:flex;gap:4px;margin-left:auto;margin-right:auto;min-width:0;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex:none;border:0;background:none;padding:6px 12px;border-radius:8px;color:var(--muted);cursor:pointer;font-weight:500;position:relative}.tab:hover,.tab[aria-selected=true]{color:var(--ink)}.tab[aria-selected=true]:after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;border-radius:2px;background:var(--accent)}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;border:1px solid transparent;border-radius:8px;background:none;color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--ink);border-color:var(--line)}.stage{display:grid;place-items:center;min-height:0}.view{display:flex;flex-direction:column;align-items:center;gap:28px;width:100%;min-width:0}.word{display:flex;justify-content:center;gap:.06em;font-family:var(--font-display);font-weight:500;font-size:clamp(44px,10vw,104px);line-height:1;letter-spacing:.02em;-webkit-user-select:none;user-select:none;max-width:100%}.word.single{font-size:clamp(88px,22vw,168px)}.ch{position:relative;padding-bottom:.14em;transition:color .12s var(--ease)}.ch.todo{color:var(--faint)}.ch.done{color:var(--ink)}.ch.current{color:var(--accent)}.word.phrase{flex-wrap:wrap;row-gap:.25em;font-size:clamp(30px,5.5vw,60px);max-width:min(100%,980px)}.tw{display:inline-flex;gap:.06em}.gap{position:relative;width:.8em}.gap:after{content:"";position:absolute;left:12%;right:12%;bottom:0;height:.06em;border-radius:1em;background:var(--accent);transform:scaleX(0);transform-origin:left}.gap.waiting:after{opacity:.55;animation:gap-fill var(--gap-ms) linear var(--gap-delay) forwards}@keyframes gap-fill{to{transform:scaleX(1)}}.ch.enter{animation:char-in .16s var(--ease)}@keyframes char-in{0%{opacity:.15;transform:translateY(.05em)}}.word:not(.single) .ch.current:after{content:"";position:absolute;left:8%;right:8%;bottom:0;height:.06em;border-radius:1em;background:var(--accent)}.ch.current.wait,.word.plain:not(.single) .ch.current{color:var(--faint)}.word.plain .gap:after{content:none}.word:not(.single) .ch.current.wait:after,.word.plain:not(.single) .ch.current:after{content:none}.code-line{display:flex;align-items:center;justify-content:center;gap:12px;min-height:18px}.el{display:block;height:16px;border-radius:8px;background:var(--ink);transition:background 60ms linear,width 90ms var(--ease),box-shadow 60ms linear}.el.dot{width:16px}.el.dash{width:50px}.el.live{background:var(--accent);box-shadow:0 0 12px 1px var(--accent-glow);transition:none}.el.ghost{background:transparent;box-shadow:inset 0 0 0 2px var(--faint)}.el.active{background:var(--accent);box-shadow:0 0 12px 1px var(--accent-glow)}.code-line[data-state=error] .el{background:var(--error)}.code-line[data-state=ok] .el{background:var(--accent)}.code-line[data-state=prev] .el{animation:prev-out .6s ease-out forwards}@keyframes prev-out{to{opacity:0}}.note{min-height:1.5em;color:var(--muted);font-size:14px;text-align:center;text-wrap:balance}.glyph{display:grid;place-items:center;width:clamp(168px,34vw,232px);aspect-ratio:1;max-width:100%;border-radius:50%;box-shadow:inset 0 0 0 2px var(--line);font-family:var(--font-display);font-weight:500;font-size:clamp(72px,15vw,108px);line-height:1;transition:box-shadow 50ms linear,color .12s var(--ease);-webkit-user-select:none;user-select:none}.tone-on .glyph{box-shadow:inset 0 0 0 2px var(--accent),0 0 0 6px var(--accent-glow),0 0 48px 6px var(--accent-glow)}.glyph.resting{box-shadow:inset 0 0 0 2px var(--line)}.glyph.ok{color:var(--accent)}.glyph.wrong{color:var(--error);box-shadow:inset 0 0 0 2px var(--error)}.glyph.hint{color:var(--muted);box-shadow:inset 0 0 0 2px var(--faint)}.tape{width:min(100%,720px);overflow-x:auto;scrollbar-width:none;padding-block:12px;border-top:1px solid var(--line);-webkit-mask-image:linear-gradient(to right,transparent,#000 15%);mask-image:linear-gradient(to right,transparent,#000 15%)}.tape::-webkit-scrollbar{display:none}.tape-inner{display:flex;justify-content:flex-end;min-width:max-content;min-height:1.4em;font-family:var(--font-display);font-size:22px;letter-spacing:.08em}.tape-ch.hinted{color:var(--muted);text-decoration:underline dotted var(--faint);text-underline-offset:6px}.tape-ch.retry{text-decoration:underline var(--error);text-decoration-thickness:2px;text-underline-offset:6px}.tape-gap{width:.9em}.statusbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"stats info legend";align-items:center;gap:10px 24px;padding-block:14px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);font-size:13px;color:var(--muted);position:relative}.statusbar.has-progress:before{content:"";position:absolute;top:-1px;left:0;width:calc(var(--progress, 0) * 100%);height:2px;border-radius:1px;background:var(--accent);transition:width .3s var(--ease)}.status-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;min-width:0}.stat{display:inline-flex;align-items:baseline;gap:6px}.stat-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase}.stat-value{color:var(--ink);font-family:var(--font-display);font-size:13px;font-variant-numeric:tabular-nums}.info-item{font-family:var(--font-display);font-size:12px}.statusbar .stats{grid-area:stats}.statusbar .info{grid-area:info;justify-content:center;flex-wrap:nowrap;overflow:hidden;white-space:nowrap}.statusbar .legend{grid-area:legend;justify-content:flex-end;flex-wrap:nowrap;white-space:nowrap}.statusbar.stacked{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"stats legend" "info info"}.statusbar.stacked .info{justify-content:flex-start;flex-wrap:wrap;white-space:normal}.legend-item{display:inline-flex;align-items:center;gap:6px}kbd{display:inline-block;min-width:22px;padding:1px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:var(--surface);color:var(--ink);font-family:var(--font-display);font-size:11px;text-align:center}.panel{position:fixed;top:0;right:0;bottom:0;width:min(380px,100%);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--line);box-shadow:-24px 0 48px -32px #00000059;z-index:20;padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);animation:slide-in .18s var(--ease)}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 6px 22px}.panel-head h2{margin:0;font-size:16px;font-weight:600}.panel-body{overflow-y:auto;padding:0 22px calc(24px + env(safe-area-inset-bottom,0px))}.panel-section{display:flex;flex-direction:column;gap:16px;padding-block:18px;border-bottom:1px solid var(--line)}.panel-section:last-child{border-bottom:0}.panel-section h3{margin:0;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.field{display:flex;flex-direction:column;gap:8px}.field-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.field-label{font-size:14px}.field-value{font-family:var(--font-display);font-size:12px;color:var(--muted);text-align:right}.field-hint{font-size:12px;color:var(--muted);line-height:1.4}input[type=range]{width:100%;accent-color:var(--accent)}input[type=text]{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font-family:var(--font-display);font-size:14px;letter-spacing:.1em;text-transform:uppercase}.segmented{display:flex;padding:3px;gap:3px;border-radius:9px;background:var(--bg);border:1px solid var(--line)}.segmented button{flex:1;min-width:0;border:0;border-radius:6px;padding:6px 8px;background:none;color:var(--muted);font-size:13px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.segmented.grid{display:grid;grid-template-columns:repeat(var(--cols),1fr)}.segmented button[aria-checked=true]{background:var(--ink);color:var(--on-ink)}.switch{appearance:none;flex:none;width:38px;height:22px;margin:0;border-radius:11px;background:var(--faint);position:relative;cursor:pointer;transition:background .12s var(--ease)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface);transition:transform .14s var(--ease)}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(16px)}.btn{align-self:flex-start;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);cursor:pointer}.btn:hover{border-color:var(--muted)}.toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translate(-50%);padding:10px 16px;border-radius:999px;background:var(--ink);color:var(--on-ink);font-family:var(--font-display);font-size:13px;white-space:pre;z-index:30;animation:rise .2s var(--ease)}.shake{animation:shake .32s var(--ease)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}45%{transform:translate(6px)}70%{transform:translate(-3px)}}@keyframes slide-in{0%{transform:translate(24px);opacity:0}}@keyframes rise{0%{transform:translate(-50%,8px);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.pad{display:flex;justify-content:center;gap:12px;padding-block:4px 14px}.pad-key{flex:1 1 0;max-width:560px;height:clamp(112px,22vh,190px);display:grid;place-items:center;border-radius:24px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:box-shadow 80ms linear}.pad:not([hidden])+.statusbar{border-top:0}.pad.paddles .pad-key{max-width:272px}@media(hover:hover){.pad-key:hover{box-shadow:inset 0 0 0 1px var(--faint)}}.pad-key.down{box-shadow:inset 0 0 0 1.5px var(--accent)}@media(max-width:560px)and (min-height:501px){.pad{padding-bottom:clamp(8px,7.5dvh,80px)}.pad-key{height:clamp(112px,22dvh,190px)}}@media(min-width:561px)and (min-height:501px){.pad-key{height:clamp(150px,28vh,260px)}}.shell:has(.pad:not([hidden])) .statusbar{border-top-color:transparent}.pad-mark{height:10px;border-radius:5px;background:var(--faint);pointer-events:none}.pad-mark.dot{width:10px}.pad-mark.dash{width:32px}.answer-keys{--gap: 4px;--cell: min(54px, calc((100% - (var(--cols, 10) - 1) * var(--gap)) / var(--cols, 10)));display:flex;flex-direction:column;align-items:center;width:100%;max-width:600px;margin-inline:auto;padding-block:2px 8px}.ak-row{display:flex;justify-content:center;gap:var(--gap);width:100%}.ak{flex:0 0 var(--cell);aspect-ratio:1 / 1.18;display:grid;place-items:center;padding:0;border:none;background:none;color:var(--ink);font-family:var(--font-display);font-size:min(20px,calc(42vw / var(--cols, 10)));font-weight:500;line-height:1;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.ak-face{position:relative;width:100%;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line);pointer-events:none}.ak-ch{position:relative;top:.14em;pointer-events:none}.ak-code{position:absolute;inset:0;width:100%;height:100%;color:var(--muted);fill:currentColor;stroke:currentColor;stroke-width:5.4;stroke-linecap:round;pointer-events:none}.ak-code path{fill:none}.ak.off{color:var(--faint)}.ak.off .ak-face{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 55%,transparent)}.ak.off .ak-code{color:var(--faint);opacity:.7}.ak.pressed .ak-face{background:color-mix(in srgb,var(--ink) 8%,transparent)}@media(max-width:560px){.answer-keys{width:calc(100% + 20px);margin-inline:-10px}}.shell:has(.answer-keys:not([hidden])) .view.rx{gap:12px}.shell:has(.answer-keys:not([hidden])){display:flex;flex-direction:column}.shell:has(.answer-keys:not([hidden]))>.topbar,.shell:has(.answer-keys:not([hidden]))>.statusbar{flex:none}.shell:has(.answer-keys:not([hidden]))>.stage{flex:1 1 auto;place-items:end center}.shell:has(.answer-keys:not([hidden]))>.answer-keys{flex:2 0 auto;justify-content:center}.shell:has(.answer-keys:not([hidden])) .glyph{width:clamp(88px,20dvh,232px);font-size:clamp(40px,9dvh,108px)}.shell:has(.answer-keys:not([hidden])) .tape{padding-block:6px}.shell:has(.answer-keys:not([hidden])) .stage{overflow:hidden}.view.rx .glyph{cursor:pointer;-webkit-user-select:none}@media(max-height:500px){.pad-key{height:84px}.answer-keys{--cell: min(34px, calc((100% - (var(--cols, 10) - 1) * var(--gap)) / var(--cols, 10)));padding-block:0 4px}.ak{font-size:14px}.glyph{width:clamp(72px,22vh,168px);font-size:clamp(36px,11vh,72px)}.shell:has(.answer-keys:not([hidden])) .tape{display:none}.pad{padding-block:2px 8px}.topbar{padding-block:6px}.view{gap:12px}.word{font-size:clamp(32px,12vh,64px)}.word.single{font-size:clamp(56px,20vh,104px)}.statusbar{padding-block:8px calc(8px + env(safe-area-inset-bottom,0px))}}@media(max-width:560px){.statusbar,.statusbar.stacked{grid-template-columns:minmax(0,1fr);grid-template-areas:"stats";padding-block:10px calc(10px + env(safe-area-inset-bottom,0px))}.statusbar .info,.statusbar .legend{display:none}.brand span:last-child{display:none}.brand{padding:12px;margin-left:-12px}}.phrase{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;max-width:min(100%,760px);font-family:var(--font-display);font-size:clamp(20px,3.4vw,28px);font-weight:500;line-height:1.2;-webkit-user-select:none;user-select:none}.phrase[hidden]{display:none}.p-word{display:inline-flex;gap:3px}.p-ch{display:inline-block;width:1ch;min-height:1.2em;text-align:center;border-bottom:2px solid var(--faint)}.p-ch.done{border-bottom-color:transparent;color:var(--ink)}.p-ch.fresh{animation:char-in .16s var(--ease)}.p-ch.current{border-bottom-color:var(--accent)}.caret{display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:-.12em;background:var(--accent);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.view.copy{gap:18px}.copy-typed{width:min(100%,860px);min-height:calc(2.9em + 32px);padding:16px 20px;border-radius:var(--radius);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font-family:var(--font-display);font-size:clamp(22px,3.4vw,34px);line-height:1.45;letter-spacing:.08em;white-space:pre-wrap;overflow-wrap:anywhere}.copy-typed.empty{display:grid;place-items:center}.copy-placeholder{color:var(--faint);font-family:var(--font-ui);font-size:15px;letter-spacing:0}.copy-progress{width:min(100%,860px);height:3px;border-radius:3px;background:var(--line);overflow:hidden}.copy-bar{width:0;height:100%;background:var(--accent)}.copy-result{display:flex;flex-direction:column;align-items:center;gap:8px;width:min(100%,860px);text-align:center}.copy-result[hidden]{display:none}.cr-score{font-family:var(--font-display);font-size:clamp(48px,9vw,80px);font-weight:500;line-height:1}.cr-score.good{color:var(--accent)}.cr-details{color:var(--muted);font-size:14px}.cr-label{margin-top:10px;color:var(--muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.cr-sent{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;font-family:var(--font-display);font-size:clamp(18px,2.6vw,24px)}.cr-word{display:inline-flex;gap:2px}.cr-ch.wrong{color:var(--error);text-decoration:underline 2px;text-underline-offset:5px}.cr-ch.missed{color:var(--error);opacity:.6;text-decoration:underline dotted 2px;text-underline-offset:5px}.cr-levelup{margin-top:6px;color:var(--accent);font-weight:500}.free-text{display:flex;flex-wrap:wrap;align-items:center;align-content:flex-end;justify-content:center;row-gap:.2em;width:min(100%,900px);min-height:2.8em;max-height:5.8em;overflow-y:auto;font-family:var(--font-display);font-size:clamp(28px,4.6vw,48px);font-weight:500;line-height:1.35;scrollbar-width:thin}.free-text .tw{display:inline-flex;gap:.04em}.free-text .gap{width:.6em;align-self:stretch}.fc.unknown{color:var(--error)}.fc.fresh{animation:char-in .16s var(--ease)}.chart-overlay{position:fixed;inset:0;z-index:25;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top,0px)) 12px max(12px,env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:fade-in .14s var(--ease)}.chart-overlay[data-mode=peek]{animation:none}@keyframes fade-in{0%{opacity:0}}.chart-card{width:min(560px,100%);max-height:100%;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 64px -32px #00000073;overflow:hidden}.chart-head{display:flex;align-items:center;gap:12px;padding:10px 10px 0 20px}.chart-head h2{margin:0;font-size:16px;font-weight:600;white-space:nowrap}.chart-tabs{margin-left:auto;margin-right:0}.chart-info{display:flex;align-items:center;justify-content:center;gap:16px;min-height:52px;padding:6px 20px}.chart-info:not([data-anchored]):empty{min-height:0;padding:0}.chart-sel{display:flex;align-items:center;gap:16px}.chart-info[data-anchored]{position:relative;display:block}.chart-info[data-anchored] .chart-sel{position:absolute;left:var(--anchor);top:50%;transform:translate(-50%,-50%);white-space:nowrap}.chart-char{font-family:var(--font-display);font-weight:500}.chart-char.big{font-size:28px;line-height:1;min-width:1ch;text-align:center}.chart-code{display:flex;align-items:center;gap:5px}.chart-code .el{height:7px;border-radius:4px}.chart-code .el.dot{width:7px}.chart-code .el.dash{width:18px}.chart-sign .chart-code{gap:4px}.chart-info .chart-code .el{height:12px;border-radius:6px}.chart-info .chart-code .el.dot{width:12px}.chart-info .chart-code .el.dash{width:36px}.chart-body{overflow:auto;padding:0 12px;min-height:0}.chart-tree{display:block;width:100%;height:auto;max-height:calc(100dvh - 210px);margin:0 auto}.chart-tree .edge{stroke:var(--faint);stroke-width:3;stroke-linecap:round;transition:stroke 60ms linear}.chart-tree .edge.path{stroke:var(--muted)}.chart-tree .edge.lit{stroke:var(--accent)}.chart-tree .root path{fill:none;stroke:var(--muted);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart-tree .root circle{fill:var(--accent)}.chart-tree .node{cursor:pointer}.chart-tree .node circle,.chart-tree .node rect{fill:var(--surface);stroke:var(--muted);stroke-width:2;transition:fill 60ms linear,stroke 60ms linear}.chart-tree .node text{fill:var(--ink);font-family:var(--font-display);font-size:15px;font-weight:600;pointer-events:none}.chart-tree .node:hover circle,.chart-tree .node:hover rect,.chart-tree .node.path circle,.chart-tree .node.path rect{stroke:var(--ink)}.chart-tree .node.lit circle,.chart-tree .node.lit rect{fill:var(--accent);stroke:var(--accent);filter:drop-shadow(0 0 5px var(--accent-glow))}.chart-tree .node.lit text{fill:var(--on-ink)}.chart-legend{display:flex;justify-content:center;gap:20px;padding:8px 20px 14px;color:var(--muted);font-size:12px}.chart-legend:empty{padding:0 0 6px}.chart-key{display:inline-flex;align-items:center;gap:8px}.chart-key .shape{display:inline-block;height:12px;border:1.5px solid var(--muted)}.chart-key .shape.dot{width:12px;border-radius:50%}.chart-key .shape.dash{width:26px;height:11px;border-radius:1px}.chart-signs{display:flex;flex-direction:column;gap:14px;padding:14px 8px 8px}.chart-group h3{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.chart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.chart-sign{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:none;cursor:pointer;text-align:left}.chart-sign:hover{border-color:var(--muted)}.chart-sign .chart-char{min-width:1.2em;font-size:16px}@media(max-width:560px){.chart-head{flex-wrap:wrap;padding-left:16px}.chart-tabs{order:3;width:100%;margin-left:-12px}.chart-head .icon-btn{margin-left:auto}.chart-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.chart-body{padding:0 2px}}
