:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#e8ece8;--screen:#f7f8f3;--ink:#111713;--muted:#65706a;--soft:#eef2eb;--line:#dfe5de;--panel:#fff;--dark:#17231d;--green:#13936a;--red:#d94b42;--amber:#efb746;--blue:#2c6fbb;--lime:#dcf66f;--candle-up:#d94b42;--candle-down:#13936a;--future-placeholder:#909894;--axis-text:#65706a;--axis-text-sub:#9aa69e;--grid-line:#151d1813;--axis-border:#dfe5de;--ind-macd:#2f6df6;--ind-signal:#efc24a;--ind-j:#b65bd8;--ind-band:#75827959;--ind-zero:#75827973;--shadow:0 20px 64px #0f181329;--iphone16-width:393px;--iphone16-height:852px;--iphone16-bezel:10px;--time-axis-height:24px;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%}body{background:radial-gradient(circle at 18% 10%, #13936a29, transparent 26%), radial-gradient(circle at 86% 80%, #efb7462e, transparent 24%), var(--page);color:var(--ink);letter-spacing:0;margin:0}button,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}.app-shell{grid-template-columns:calc(var(--iphone16-width) + var(--iphone16-bezel) * 2) minmax(0, 560px);justify-content:center;align-items:center;gap:36px;min-height:100vh;padding:28px;display:grid}.phone-stage{width:calc(var(--iphone16-width) + var(--iphone16-bezel) * 2);height:calc(var(--iphone16-height) + var(--iphone16-bezel) * 2);border:var(--iphone16-bezel) solid #101512;background:var(--screen);box-shadow:var(--shadow);border-radius:40px;flex-direction:column;display:flex;position:relative;overflow:hidden}.phone-stage:before{content:"";z-index:10;background:#101512;border-radius:0 0 18px 18px;width:118px;height:26px;position:absolute;top:0;left:50%;transform:translate(-50%)}.topbar{justify-content:space-between;align-items:end;gap:12px;min-height:70px;padding:24px 18px 10px;display:flex}.brand{align-items:center;gap:11px;display:flex}.brand-mark{background:var(--dark);width:36px;height:36px;color:var(--lime);border-radius:8px;place-items:center;font-size:19px;font-weight:900;line-height:1;display:grid}.brand strong,.brand span{display:block}.brand strong{letter-spacing:0;font-size:18px;font-weight:900;line-height:1.05}.brand span{color:var(--muted);margin-top:3px;font-size:10.5px;font-weight:800}.language-switch{border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-columns:repeat(2,30px);gap:2px;height:36px;padding:2px;display:grid}.language-option{min-width:0;color:var(--muted);background:0 0;border:0;border-radius:5px;padding:0;font-size:10px;font-weight:900;line-height:1}.language-option.active{background:var(--dark);color:var(--lime)}.icon-button{border:1px solid var(--line);background:var(--panel);border-radius:8px;place-items:center;width:36px;height:36px;display:grid}.icon-button span,.icon-button span:before,.icon-button span:after{background:var(--dark);border-radius:999px;width:16px;height:2px;display:block}.icon-button span{position:relative}.icon-button span:before,.icon-button span:after{content:"";position:absolute;left:0}.icon-button span:before{top:-6px}.icon-button span:after{top:6px}.chart-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:0 14px;overflow:hidden;box-shadow:0 12px 30px #11171314}.settings-page{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:14px;margin:0 14px;padding:16px 14px;display:grid;box-shadow:0 12px 30px #11171314}.settings-page[hidden]{display:none}#wrongbookPage,#reviewPage{flex:auto;align-content:start;min-height:0;overflow-y:auto}.settings-header h1{margin:0;font-size:17px;line-height:1.2}.settings-group{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding-top:12px;display:flex}.settings-group strong,.settings-group span{display:block}.settings-group strong{font-size:13px}.settings-group span{color:var(--muted);margin-top:4px;font-size:11px}.chart-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:4px;min-height:54px;padding:6px 10px 6px 12px;display:flex}.chart-header>:first-child{flex:1 1 0;min-width:0}.chart-heading{align-items:center;gap:4px;min-width:0;display:flex}.chart-heading strong{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:14px;display:block;overflow:hidden}html[lang=en] .chart-heading strong{font-size:12px}.lesson-counter{box-sizing:border-box;border-left:1px solid var(--line);color:#65706a;font-variant-numeric:tabular-nums;flex:none;place-items:center;min-width:20px;height:14px;padding-left:3px;font-size:8px;font-weight:950;line-height:1;display:inline-grid}.training-stats{box-sizing:border-box;border-left:1px solid var(--line);width:255px;min-width:0;color:var(--muted);font-variant-numeric:tabular-nums;flex:0 0 255px;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:minmax(0,1fr) 64px;gap:2px 6px;padding-left:8px;display:grid}.training-stats-row{white-space:nowrap;grid-column:1;grid-template-columns:38px 52px 22px 22px 36px;align-items:baseline;column-gap:1px;min-width:0;display:grid}.training-stats-row>span{min-width:0}.stats-scope{color:#4f5b54;text-align:right;text-overflow:ellipsis;grid-column:1;font-size:11px;font-weight:900;overflow:hidden}.stats-combo,.stats-count{grid-template-columns:max-content minmax(0,max-content);grid-auto-flow:column;justify-content:start;align-items:baseline;gap:1px;min-width:0;display:grid;overflow:hidden}.stats-combo{grid-column:2}.stats-correct{grid-column:3}.stats-wrong{grid-column:4}.stats-skip{grid-column:5}.stats-combo b,.stats-count b{color:var(--ink);font-size:11px;line-height:1}.stats-combo b{color:#b98310;font-size:13px}.stats-combo small,.stats-count small{color:var(--muted);font-size:8px;font-weight:800;line-height:1}.stats-correct b{color:var(--green)}.stats-wrong b{color:var(--red)}.stats-skip b{color:#65706a}.stats-accuracy-cluster{grid-area:1/2/span 2;grid-template-columns:22px 38px;place-self:center end;align-items:center;column-gap:4px;width:64px;height:26px;display:grid}.stats-accuracy-label{color:#929c95;text-align:right;white-space:nowrap;font-size:6px;font-weight:900;line-height:1.1}.stats-accuracy-badge{box-sizing:border-box;color:#536057;background:#fafcf8;border:1px solid #d9e0d9;border-radius:5px;grid-template-rows:1fr;place-items:center;width:38px;height:26px;padding:2px 1px 1px;line-height:1;display:grid}.stats-accuracy-badge b{color:currentColor;align-self:center;font-size:10px;font-weight:900;line-height:1}.stats-accuracy-badge[data-state=score]{color:#1f6f50;background:#f6faf6;border-color:#cad8cf}.stats-accuracy-badge[data-state=progress] b{color:#6f7a73}.training-stats-session{opacity:.62}.training-stats-session .stats-scope{font-size:8px}.training-stats-session .stats-combo b{font-size:10px}.training-stats-session .stats-count b{font-size:9px}.training-stats-session .stats-combo small,.training-stats-session .stats-count small,.training-stats-session .stats-accuracy{font-size:7px}.chart-identity{border-bottom:1px solid var(--line);background:#fbfcf8;grid-template-columns:minmax(0,1.35fr) minmax(78px,.65fr) 74px;align-items:center;gap:6px;padding:5px 10px;display:grid}.chart-identity>div{background:#fff;border:1px solid #e5ebe4;border-radius:8px;min-width:0;min-height:26px;padding:4px 6px}.chart-identity span,.chart-identity strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:inline-block;overflow:hidden}.chart-identity span{color:var(--muted);vertical-align:middle;margin-bottom:0;margin-right:4px;font-size:9px;font-weight:900}.chart-identity strong{max-width:calc(100% - 23px);color:var(--ink);vertical-align:middle;font-size:10px;line-height:1.2}.market-cell{text-align:left}.market-cell>span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.market-cell strong{max-width:100%}.timeframe-cell{padding-left:5px!important;padding-right:5px!important}.timeframe-cell>span{display:none}.timeframe-rail{justify-content:center;align-items:center;gap:1px;min-width:0;padding:0;display:flex;position:relative}.timeframe-rail:before{content:"";background:#eaf8ef;border-radius:999px;width:32px;height:22px;position:absolute;top:-2px;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 1px #13936a3d}.timeframe-option{z-index:1;color:#65706a;width:18px;font:inherit;opacity:.52;background:0 0;border:1px solid #0000;border-radius:999px;flex:0 0 18px;padding:3px 0;font-size:9px;font-weight:900;line-height:1;position:relative}.timeframe-option.active{color:#087548;opacity:1;flex-basis:32px;width:32px;font-size:11px}.chart-box{--future-start:0px;--future-mask-width:0px;background:#fbfcf7;height:300px;position:relative;overflow:hidden}.chart-host{position:absolute;inset:0}.sub-pane-region{border-top:1px solid var(--line);background:#fbfcf7;flex-direction:column;display:flex}.sub-pane{border-bottom:1px solid var(--line);flex-direction:column;flex:0 0 96px;display:flex;position:relative}.sub-pane:last-of-type{border-bottom:0}.sub-host{flex:1 1 0;min-height:0;position:relative}.pane-label{color:var(--muted);flex:none;align-items:center;gap:6px;padding:3px 4px;font-size:9px;font-weight:900;display:flex}.ind-dd{border:1px solid var(--line);background:var(--soft);color:var(--ink);font:inherit;cursor:pointer;border-radius:6px;align-items:center;gap:3px;padding:2px 5px 2px 7px;font-size:10px;font-weight:950;display:inline-flex}.ind-dd .caret{font-size:8px}.ind-dd[aria-expanded=true]{box-shadow:0 0 0 2px #1117131f}.params,.vals{color:var(--muted);font-weight:800}.vals b{color:var(--ink);font-weight:900}.dd-menu{z-index:6;border:1px solid var(--ink);background:#fff;border-radius:8px;min-width:132px;padding:4px;position:absolute;top:16px;left:0;box-shadow:0 12px 30px #1117132e}.dd-menu[hidden]{display:none}.dd-row{border-radius:6px;justify-content:space-between;align-items:center;gap:4px;display:flex}.dd-row:hover{background:#f0f1ec}.dd-pick{color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:6px 8px;font-size:11px;font-weight:900}.dd-gear{border:0;border-left:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;padding:4px 7px;font-size:11px}.dd-gear:hover{color:var(--ink)}.param-editor{z-index:7;border:1px solid var(--ink);background:#fff;border-radius:10px;min-width:220px;max-width:calc(100% - 8px);padding:10px;position:absolute;top:16px;left:0;box-shadow:0 14px 34px #11171333}.param-editor[hidden]{display:none}.pe-title{justify-content:space-between;align-items:center;margin:0 0 8px;font-size:12px;font-weight:950;display:flex}.pe-title button{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:14px}.pe-fields{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.pe-field{flex-direction:column;gap:2px;display:flex}.pe-field label{color:var(--muted);font-size:8px;font-weight:900}.pe-field input{border:1px solid var(--line);width:100%;font:inherit;text-align:center;border-radius:6px;padding:5px 2px;font-size:12px;font-weight:800}.pe-actions{gap:6px;margin-top:9px;display:flex}.pe-actions button{font:inherit;cursor:pointer;border-radius:7px;flex:1;padding:6px;font-size:11px;font-weight:900}.pe-reset{border:1px solid var(--line);color:var(--ink);background:#f3f6f0}.pe-apply{background:var(--ink);color:var(--lime);border:0}.indicator-empty{color:var(--muted);pointer-events:none;background:#ffffffe6;border-radius:6px;margin:0;padding:2px 8px;font-size:10px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.indicator-empty[hidden]{display:none}.future-boundary{top:0;bottom:var(--time-axis-height,24px);z-index:5;pointer-events:none;background:repeating-linear-gradient(#1117138c 0 6px,#0000 6px 12px);width:2px;position:absolute;transform:translate(-1px)}.future-mask{top:0;bottom:var(--time-axis-height,24px);left:var(--future-start);width:var(--future-mask-width);z-index:4;box-shadow:none;color:var(--ink);background:#5b666024;border:0;border-radius:0;padding:0;transition:opacity .16s,background .16s,box-shadow .16s;display:block;position:absolute;overflow:hidden}.future-mask:before,.future-mask:after{content:none}.mask-copy{z-index:1;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:20px;min-height:20px;box-shadow:none;opacity:.92;background:#fbfcf7db;border:0;border-radius:0;place-items:center;padding:0 1px;display:grid;position:absolute;top:0;left:0}.mask-copy span{color:#48534d;letter-spacing:0;text-overflow:clip;white-space:nowrap;max-width:100%;font-size:7px;font-weight:950;line-height:1;overflow:hidden}.mask-copy strong,.mask-copy p{display:none}.future-candle-question{z-index:2;color:#fff;pointer-events:none;text-shadow:0 1px 1px #1117135c;place-items:center;width:14px;height:14px;font-size:11px;font-weight:950;line-height:1;display:grid;position:absolute;transform:translate(-50%,-50%)}.future-candle-question[hidden]{display:none}.chart-box.revealed .future-mask{z-index:4;pointer-events:none;opacity:0}.chart-box.revealed[data-outcome=correct] .future-mask{opacity:1;background:#13936a29;box-shadow:inset 0 0 0 1px #06764a47}.chart-box.revealed[data-outcome=wrong] .future-mask{opacity:1;background:#d94b4229;box-shadow:inset 0 0 0 1px #ae2a2447}.chart-box.revealed .future-mask:before,.chart-box.revealed .future-mask:after,.chart-box.revealed .mask-copy,.chart-box.revealed .future-candle-question{display:none}.outcome-panel{left:var(--future-start);box-sizing:border-box;width:var(--future-mask-width);z-index:6;color:#fff;text-align:center;opacity:0;visibility:hidden;pointer-events:none;border:0;border-radius:0;place-content:center;height:20px;min-height:20px;padding:0;transition:opacity .18s,visibility 0s linear .18s;display:grid;position:absolute;top:0}.reveal-axis-range{z-index:7;color:#536057;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;max-width:calc(100% - 56px);font-size:9px;font-weight:850;line-height:1;position:absolute;bottom:5px;right:5px;overflow:hidden}.outcome-panel:before{color:#fff;background:0 0;border:0;border-radius:0;place-items:center;width:100%;height:100%;font-size:12px;font-weight:900;line-height:1;display:grid}.outcome-panel strong,.outcome-panel span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.chart-box[data-outcome=correct] .outcome-panel{background:linear-gradient(90deg,#06764ae6,#119c6bc2),repeating-linear-gradient(135deg,#ffffff29 0 1px,#0000 1px 17px);box-shadow:0 8px 18px #06764a2e}.chart-box[data-outcome=correct] .outcome-panel:before{content:"✓"}.chart-box[data-outcome=wrong] .outcome-panel{background:linear-gradient(90deg,#ae2a24eb,#dd4c42c7),repeating-linear-gradient(135deg,#ffffff29 0 1px,#0000 1px 17px);box-shadow:0 8px 18px #ae2a242e}.chart-box[data-outcome=wrong] .outcome-panel:before{content:"×"}.chart-box.revealed:not([data-outcome=skip]) .outcome-panel{opacity:1;visibility:visible;transition-delay:0s,0s}.answer-sheet{border-top:1px solid var(--line);background:#fff;padding:12px}.user-bar{align-items:center;gap:8px;margin-bottom:6px;display:flex}#tv-attr-logo{display:none!important}.avatar{border:1px solid var(--ink);background:#fff;border-radius:50%;flex:0 0 26px;place-items:center;width:26px;height:26px;display:grid;overflow:hidden}.nick{color:var(--ink);font-size:12px;font-weight:900}.nick .ph{color:var(--muted);margin-left:2px;font-size:10px;font-weight:800}.user-bar .prompt{color:var(--muted);margin-left:auto;font-size:10px;font-weight:800}.countdown-bar{--countdown-tone:var(--candle-down);--countdown-progress:1;--countdown-origin:0deg;z-index:7;background:0 0;border:0;place-items:center;margin:0;padding:0;transition:opacity .14s;display:grid;position:absolute}.countdown-bar[hidden]{display:none}.countdown-bar[data-tone=bull]{--countdown-tone:var(--candle-up)}.countdown-bar[data-tone=flat]{--countdown-tone:#b98310}.countdown-bar[data-tone=unsure]{--countdown-tone:#5d6870}.countdown-disc{z-index:1;background:#fffffff5;border-radius:50%;place-items:center;width:52px;height:52px;display:grid;position:relative;box-shadow:0 5px 14px #11171326}.countdown-disc:before{content:"";border-radius:inherit;background:conic-gradient(from var(--countdown-origin), var(--countdown-tone) calc(var(--countdown-progress) * 1turn), #1117131a 0);will-change:background;position:absolute;inset:0;-webkit-mask:radial-gradient(#0000 61%,#000 63%);mask:radial-gradient(#0000 61%,#000 63%)}.countdown-bar.is-paused .countdown-disc:before{background:conic-gradient(from var(--countdown-origin), color-mix(in srgb, var(--countdown-tone), #fff 28%) calc(var(--countdown-progress) * 1turn), #1117131a 0)}.countdown-pause{z-index:1;width:28px;height:28px;color:var(--dark);background:#17231d;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.countdown-pause:hover{background:#2a3b32}.countdown-pause:focus-visible,.next-lesson-action:focus-visible{outline:2px solid var(--countdown-tone);outline-offset:2px}.countdown-pause-icon{color:#dcf66f;grid-template-columns:repeat(2,4px);gap:2px;width:10px;height:12px;display:grid}.countdown-pause-icon:before,.countdown-pause-icon:after{content:"";background:currentColor;border-radius:1px}.countdown-pause.is-paused .countdown-pause-icon{border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:10px solid;width:0;height:0;display:block}.countdown-pause.is-paused .countdown-pause-icon:before,.countdown-pause.is-paused .countdown-pause-icon:after{display:none}.action-note{align-items:center;margin-bottom:8px;display:flex}.action-note span{color:#65706a;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:850;overflow:hidden}.choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.next-lesson-action{width:100%;min-height:42px;color:var(--dark);background:#f8faf6;border:1px solid #d4dad3;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:0 14px;display:flex;box-shadow:inset 0 1px #fffc}.next-lesson-action[hidden]{display:none}.next-lesson-action span:first-child{font-size:13px;font-weight:900}.next-lesson-action span:last-child{color:#65706a;text-align:right;white-space:nowrap;font-size:11px;font-weight:800}.next-lesson-action:active{background:#eef2eb;transform:translateY(1px)}.choice{--tone:var(--candle-down);--tone-soft:#13936a1a;--tone-line:#13936a3d;--tone-glow:#13936a2e;box-sizing:border-box;border:1px solid var(--tone-line);background:radial-gradient(circle at 50% 8px, var(--tone-soft), transparent 42px), linear-gradient(180deg, #fff, #f8faf6);min-height:60px;color:var(--tone);text-align:center;border-radius:8px;grid-template-rows:1fr auto;justify-items:center;gap:3px;padding:8px 6px 6px;transition:transform .14s,border-color .14s,background .14s,box-shadow .14s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffd9,0 7px 16px #11171314}.choice:before{content:"";background:var(--tone);opacity:.72;border-radius:0;height:3px;position:absolute;inset:auto 0 0}.choice:active{transform:translateY(2px)scale(.985);box-shadow:inset 0 1px #ffffffd9,0 3px 8px #11171314}.choice-icon{color:currentColor;place-items:center;width:38px;height:34px;display:grid}.choice-glyph{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:3.2px;width:36px;height:36px}.choice-label{z-index:1;color:color-mix(in srgb, var(--tone), #111713 18%);letter-spacing:0;font-size:9px;font-weight:950;line-height:1;position:relative}.choice.bull{--tone:var(--candle-up);--tone-soft:#d94b421a;--tone-line:#d94b423d;--tone-glow:#d94b422e}.choice.bear{--tone:var(--candle-down);--tone-soft:#13936a1a;--tone-line:#13936a3d;--tone-glow:#13936a2e}.choice.flat{--tone:#b98310;--tone-soft:#efb74624;--tone-line:#b9831042;--tone-glow:#efb74633}.choice.unsure{--tone:#5d6870;--tone-soft:#5d68701a;--tone-line:#5d687038;--tone-glow:#5d68702e}.choice.selected{border-color:var(--tone);background:radial-gradient(circle at 50% 8px, var(--tone-soft), transparent 42px), #fff;box-shadow:0 0 0 3px var(--tone-glow), 0 10px 22px #1117131f;transform:none}.choice[data-answer-result]:after{width:14px;height:14px;color:var(--ink);place-items:center;font-size:13px;font-weight:950;line-height:1;display:grid;position:absolute;top:3px;right:3px}.choice[data-answer-result=correct]:after{content:"✓"}.choice[data-answer-result=wrong]:after{content:"×"}.primary-action,.secondary-action{border-radius:8px;min-height:48px;font-weight:900}.primary-action{background:var(--dark);color:#fff;border:0;width:100%;margin-top:10px;box-shadow:0 12px 24px #1117132e}.primary-action.compact{margin-top:0}.primary-action:disabled{color:#8a938d;box-shadow:none;cursor:not-allowed;background:#d9ded8}.secondary-action{border:1px solid var(--line);color:var(--dark);background:#f8faf6}.review-panel{border:1px solid var(--line);background:#fbfcf8;border-radius:8px;margin-top:10px;padding:10px;display:none}.review-panel.show{display:block}.review-meta{gap:7px;margin-bottom:8px;display:grid}.review-meta div{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:8px;padding:8px 9px;display:grid}.review-meta span{color:var(--muted);font-size:11px;font-weight:900}.review-meta strong{min-width:0;color:var(--ink);font-size:12px;line-height:1.3}.score-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:8px;display:grid}.score-grid div{border:1px solid var(--line);text-align:center;background:#fff;border-radius:8px;padding:8px 4px}.score-grid strong,.score-grid span{display:block}.score-grid strong{font-size:17px;line-height:1}.score-grid span{color:var(--muted);margin-top:4px;font-size:10px}.review-panel p{color:#4f5b54;margin:7px 0 0;font-size:12px;line-height:1.55}.review-panel .review-note{margin-top:5px}.tabbar{border:1px solid var(--line);background:#fbfcf8;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:auto 14px 14px;padding:8px 9px;display:grid;box-shadow:0 8px 18px #1117130d}.tab{color:#7c877f;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:4px;min-height:34px;font-size:12px;font-weight:900;display:flex}.tab:before{content:"";background:#d7ded8;border-radius:999px;flex:none;width:7px;height:7px;transition:width .16s,background .16s}.tab.active{color:#0a7a4e}.tab.active:before{background:var(--green);width:26px}.reason-overlay{z-index:20;opacity:0;pointer-events:none;background:#11171352;align-items:end;padding:14px;transition:opacity .2s;display:flex;position:absolute;inset:0}.reason-overlay.show{opacity:1;pointer-events:auto}.reason-panel{border:1px solid var(--line);background:#fff;border-radius:16px 16px 8px 8px;gap:10px;width:100%;padding:14px;display:grid;box-shadow:0 -18px 44px #1117132e}.reason-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.reason-header h2{letter-spacing:0;margin:0;font-size:15px}.reason-close{border:1px solid var(--line);width:32px;height:32px;color:var(--dark);background:#f8faf6;border-radius:8px;font-weight:900}.reason-panel textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:96px;color:var(--ink);background:#fbfcf8;border-radius:8px;outline:none;padding:10px;line-height:1.5}.reason-panel textarea:focus{border-color:#13936a8c;box-shadow:0 0 0 3px #13936a1a}.reason-actions{gap:8px;display:flex}.reason-actions button{white-space:nowrap;flex:1}.reason-actions .primary-action{font-size:14px}.reason-overlay[data-tone=bull] .primary-action{background:linear-gradient(#f2665d,#d33930);box-shadow:0 12px 24px #d94b4238}.reason-overlay[data-tone=bear] .primary-action{background:linear-gradient(#20b783,#0b8d61);box-shadow:0 12px 24px #13936a38}.reason-overlay[data-tone=flat] .primary-action{color:#3d2b05;background:linear-gradient(#ffd566,#eca62f);box-shadow:0 12px 24px #efb7463d}.reason-overlay[data-tone=unsure] .primary-action{background:linear-gradient(#7b8790,#535f68);box-shadow:0 12px 24px #5d687038}.desktop-brief{gap:18px;max-width:560px;display:grid}.desktop-brief h2{letter-spacing:0;max-width:540px;margin:0;font-size:44px;line-height:1.06}.desktop-brief p{color:#4f5b54;max-width:540px;margin:0;font-size:17px;line-height:1.7}.brief-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.brief-grid section{background:#ffffffbd;border:1px solid #11171314;border-radius:8px;padding:16px;box-shadow:0 12px 36px #10151214}.brief-grid strong,.brief-grid span{display:block}.brief-grid strong{margin-bottom:7px;font-size:16px}.brief-grid span{color:var(--muted);font-size:13px;line-height:1.55}@media (width<=900px){body{background:var(--screen)}.app-shell{min-height:100vh;padding:0;display:block}.phone-stage{width:100%;height:auto;min-height:100vh;box-shadow:none;border:0;border-radius:0}.phone-stage:before,.desktop-brief{display:none}.chart-box{height:250px}}@media (width<=380px){.topbar{padding-left:12px;padding-right:12px}.answer-sheet{padding-left:10px;padding-right:10px}.chart-panel{margin-left:10px;margin-right:10px}.chart-box{height:230px}.mask-copy{max-width:none}.choices{grid-template-columns:repeat(4,minmax(0,1fr))}}.share-trigger{border:1px solid var(--line);background:var(--panel);color:var(--dark);font:inherit;cursor:pointer;border-radius:8px;flex:none;padding:5px 11px;font-size:11px;font-weight:900}.share-trigger:active{transform:translateY(1px)}.share-overlay{z-index:50;background:#1117138c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.share-panel{border:1px solid var(--line);background:#fff;border-radius:16px;width:min(420px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 50px #0f181347}.share-panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;font-size:14px;font-weight:900;display:flex}.share-close{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:20px;line-height:1}.share-image{width:100%;height:auto;display:block}.share-actions{padding:12px 16px 16px}.share-save{text-align:center;background:var(--dark);color:var(--lime);border-radius:10px;padding:12px;font-size:14px;font-weight:900;text-decoration:none;display:block}.share-message{text-align:center;color:var(--muted);margin:0;padding:28px 20px;font-size:13px;line-height:1.6}.lesson-stage{overflow-y:auto}.lesson-topbar{align-items:center;gap:10px;padding:0 16px 12px;display:flex}.lesson-back{border:1px solid var(--line);background:var(--panel);width:32px;height:32px;color:var(--ink);cursor:pointer;border-radius:8px;flex:none;place-items:center;font-size:18px;display:grid}.lesson-progress{color:var(--muted);flex:none;align-items:baseline;gap:1px;font-size:10px;font-weight:900;display:flex}.lesson-progress b{color:var(--ink);font-size:17px}.lesson-level-title{flex:auto;min-width:0}.lesson-level-title strong{font-size:15px;display:block}.lesson-level-title span{color:var(--muted);font-size:10px;font-weight:800;display:block}.lesson-screen{flex-direction:column;flex:auto;gap:10px;min-height:0;padding:0 14px;display:flex;overflow-y:auto}.lesson-chart-box{border:1px solid var(--line);background:var(--panel);border-radius:8px}.lesson-macd-box{background:var(--panel);border:1px solid var(--line);border-top:none;border-radius:0 0 8px 8px;height:140px;position:relative;overflow:hidden}.annotation-layer{z-index:10}.ann-focused rect{stroke-width:2.5px!important}.lesson-content{flex:none;padding-bottom:8px}.lesson-caption{color:var(--ink);margin:0 0 8px;font-size:13px;line-height:1.5}.lesson-explanation{border:1px solid var(--line);background:var(--soft);color:var(--muted);border-radius:8px;min-height:20px;margin:0 0 10px;padding:10px 12px;font-size:12px;line-height:1.55}.lesson-explanation strong{color:var(--ink);margin-right:4px;font-size:13px;display:inline-block}.lesson-nav-btn{background:var(--dark);width:100%;color:var(--lime);font:inherit;cursor:pointer;border:0;border-radius:10px;padding:12px;font-size:14px;font-weight:900}.lesson-nav-btn:active{transform:translateY(1px)}.practice-question{margin:0 0 8px;font-size:13px;font-weight:800;line-height:1.4}.practice-options{gap:6px;display:grid}.practice-option{border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:8px;padding:10px;font-size:12px;font-weight:800;transition:border-color .14s,background .14s}.practice-option:hover:not(:disabled){border-color:var(--ink)}.practice-option:disabled{opacity:.7;cursor:default}.practice-option.correct{border-color:var(--green);background:#13936a1f}.practice-option.wrong{border-color:var(--red);background:#d94b421f}.practice-feedback{margin-top:8px}.practice-ok{color:var(--green);margin:0 0 4px;font-size:13px;font-weight:900}.practice-no{color:var(--red);margin:0 0 4px;font-size:13px;font-weight:900}.practice-hint,.practice-explain{color:var(--muted);margin:0 0 8px;font-size:12px;line-height:1.5}.challenge-prompt{margin:0 0 8px;font-size:12px;font-weight:800;line-height:1.4}.challenge-options{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.challenge-option{border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;border-radius:7px;padding:8px 4px;font-size:11px;font-weight:900}.challenge-option.bull{border-color:var(--red);color:var(--red)}.challenge-option.bear{border-color:var(--green);color:var(--green)}.challenge-option:disabled{opacity:.6;cursor:default}.challenge-option.selected{border-width:2px}.challenge-option.bull.selected{background:#d94b4226}.challenge-option.bear.selected{background:#13936a26}.challenge-feedback{margin-top:8px}.challenge-result{margin:0 0 6px;font-size:12px;font-weight:900}.challenge-result.ok{color:var(--green)}.challenge-result.no{color:var(--red)}.stage-complete{text-align:center;padding:16px 0}.complete-icon{border-radius:50%;place-items:center;width:56px;height:56px;margin:0 auto 8px;font-size:28px;font-weight:900;display:grid}.complete-icon.pass{color:var(--green);background:#13936a26}.complete-icon.fail{color:var(--red);background:#d94b4226}.complete-title{margin:0 0 4px;font-size:16px;font-weight:900}.complete-score{color:var(--muted);margin:0 0 12px;font-size:13px}
