:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#dce5f2;background:#080d15;font-size:13px;font-synthesis:none;--bg:#080d15;--panel:#101823;--line:#202c3d;--muted:#7c8da5;--blue:#4c8dff;--cyan:#53d4ca;--up:#db3c41;--down:#2cab6a;--mono:"SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;color:inherit;background:none}button:disabled{opacity:.4;cursor:not-allowed}button,input,select,textarea,a{outline-offset:3px}a{color:#7caaff;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--blue)}input,select,textarea{color:inherit;background:#0a111c;border:1px solid #2a3547;border-radius:7px;padding:9px 11px;min-width:0}input:focus,select:focus,textarea:focus{outline:1px solid var(--blue);border-color:var(--blue)}textarea{resize:vertical;line-height:1.65}small,.muted{color:var(--muted)}.mono,.number{font-family:var(--mono);font-variant-numeric:tabular-nums}.up{color:var(--up-text,var(--up))!important}.down{color:var(--down-text,var(--down))!important}.positive{color:var(--cyan)}.hidden{display:none!important}.icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.7;fill:none;flex-shrink:0}.shell{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:100vh}.sidebar{background:#0d141f;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:27px 15px 18px}.brand{display:flex;gap:11px;align-items:center;padding:0 10px 32px}.brand-symbol{display:flex;gap:4px;align-items:center;height:35px}.brand-symbol i{display:block;width:5px;border-radius:1px;background:var(--cyan);position:relative}.brand-symbol i:before{content:"";position:absolute;width:1px;height:calc(100% + 10px);left:2px;top:-5px;background:inherit}.brand-symbol i:nth-child(1){height:13px}.brand-symbol i:nth-child(2){height:24px;background:var(--blue)}.brand-symbol i:nth-child(3){height:18px}.brand strong{font-size:17px;font-weight:650;letter-spacing:1px}.brand small{display:block;font-size:12px;letter-spacing:2px;margin-top:5px}.nav-label{font-size:12px;letter-spacing:2px;color:#5d708b;margin:0 12px 13px}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:12px;border-radius:7px;padding:13px 14px;color:#8ea0b9;text-align:left}.nav button:active{background:#142034;color:#dce5f2}@media(min-width:821px) and (hover:hover) and (pointer:fine){.nav button:hover{background:#142034;color:#dce5f2}}.nav button.active{background:#172b49;color:#78aaff;box-shadow:inset 2px 0 #4c8dff}.sidebar-tip{margin-top:35px;padding:16px 12px;border:1px solid var(--line);border-radius:8px;background:#101b29}.sidebar-tip .tiny{font-size:12px;color:var(--cyan);letter-spacing:1px}.sidebar-tip p{font-size:12px;line-height:1.9;color:#8498b3;margin:9px 0 0}.sidebar-bottom{margin-top:auto;padding:20px 10px 0;line-height:1.8;color:#62738b;font-size:12px}.online-dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:var(--cyan);margin-right:6px}.workspace{min-width:0;display:flex;flex-direction:column}.topbar{height:79px;display:flex;align-items:center;justify-content:space-between;padding:0 27px;border-bottom:1px solid var(--line);background:#0b121d}.breadcrumb{color:#61748f;font-size:12px;letter-spacing:.8px;margin-bottom:8px}.topbar h1{font-size:19px;font-weight:600;margin:0;letter-spacing:.7px}.topbar-right{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:12px}.tag{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:5px 8px;border:1px solid #2a3950;background:#142034;border-radius:5px;color:#8da2c1;white-space:nowrap}.tag.teal{color:#72d4c7;background:#112925;border-color:#23473f}.tag.amber{color:#ddb56c;background:#2c2518;border-color:#51412a}.avatar{width:30px;height:30px;border-radius:8px;background:#223655;display:grid;place-items:center;font-weight:600;color:#9ec1ff}.main-content{padding:21px 24px 26px;min-width:0}.session-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}.session-heading{display:flex;align-items:center;gap:11px}.session-heading h2{font-size:16px;margin:0;font-weight:550}.session-heading small{font-size:12px}.session-actions{display:flex;gap:8px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;border:1px solid #2a3b52;border-radius:6px;background:#131e2d;color:#b4c5df;font-size:12px;white-space:nowrap}.button:active{background:#1b2b43;border-color:#3b557b}@media(min-width:821px) and (hover:hover) and (pointer:fine){.button:hover{background:#1b2b43;border-color:#3b557b}}.button.primary{background:#3778ed;border-color:#3778ed;color:#fff;box-shadow:0 2px 12px #1d4f991c}.button.primary:active{background:#4b8bff}@media(min-width:821px) and (hover:hover) and (pointer:fine){.button.primary:hover{background:#4b8bff}}.button.quiet{background:transparent;border-color:transparent;color:#8497b1}.button.danger{color:#fa9b9f;border-color:#674049;background:#291c27}.work-grid{display:grid;grid-template-columns:minmax(0,1fr) 284px;gap:15px}.chart-column{min-width:0}.panel{border:1px solid var(--line);background:var(--panel);border-radius:9px;overflow:hidden}.instrument-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;padding:18px 20px 14px}.instrument-name{display:flex;align-items:center;gap:9px}.instrument-name strong{font-size:17px;font-weight:550}.instrument-name .code{font-size:12px;color:#6e829f}.quote-row{margin-top:10px;display:flex;align-items:baseline;gap:12px}.last-price{font-size:26px;letter-spacing:-1px}.quote-row .change{font-size:12px}.quote-ohcl{display:flex;gap:15px;color:#677c98;font-size:12px;flex-wrap:wrap;margin-top:10px}.quote-ohcl b{font-weight:400;color:#9dacc3;margin-left:5px}.chart-toolbar{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #1c2737;border-bottom:1px solid #1c2737;background:#0e1622;padding:9px 14px;gap:9px;flex-wrap:wrap}.segmented{display:flex;gap:3px;align-items:center}.segmented button{padding:6px 10px;border-radius:4px;color:#7286a3;font-size:12px}.segmented button:active{color:#bed3f2}@media(min-width:821px) and (hover:hover) and (pointer:fine){.segmented button:hover{color:#bed3f2}}.segmented button.selected{color:#91b7ff;background:#1c2e4c}.tool-divider{width:1px;background:#28364a;height:17px;margin:0 6px}.chart-tools{display:flex;align-items:center;gap:5px}.chart-tools .button{padding:5px 8px;font-size:12px}.chart-meta{display:flex;justify-content:space-between;padding:11px 17px 0;font-family:var(--mono);font-size:12px;color:#758ba8;min-height:26px;gap:8px}.chart-meta span{white-space:nowrap}.legend{display:flex;gap:11px;flex-wrap:wrap}.chart-wrap{position:relative;height:430px;touch-action:none}.chart-wrap canvas{display:block;width:100%;height:100%}.chart-wrap .chart-message{position:absolute;inset:0;display:grid;place-items:center;color:#7189aa}.chart-note{position:absolute;left:16px;bottom:11px;color:#4f6380;font-size:12px;pointer-events:none}.replay-bar{padding:14px 17px;background:#101b29;border-top:1px solid var(--line)}.progress-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#8195b1;margin-bottom:10px;gap:8px}.progress-track{height:3px;background:#243148;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--blue);transition:width .2s}.replay-controls{display:flex;justify-content:space-between;align-items:center;margin-top:13px;gap:8px}.replay-controls select{padding:5px 7px;font-size:12px;background:#0e1724}.replay-center{display:flex;gap:6px}.replay-center .button{padding:8px 11px}.replay-center .next{color:#e7efff;background:#233d66;border-color:#355987}.replay-hint{font-size:12px;color:#6c809e}.sidebar-cards{display:flex;flex-direction:column;gap:13px;min-width:0}.card-title{display:flex;align-items:center;justify-content:space-between;padding:15px 16px 0;font-size:12px;font-weight:550}.account-total{padding:14px 16px 13px}.account-total small{font-size:12px}.account-total .number{font-size:28px;margin-top:6px;letter-spacing:-1px}.account-change{font-size:12px;margin-top:9px}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 12px;padding:13px 16px 16px;border-top:1px solid #1e2b3d}.account-grid small{display:block;font-size:12px;margin-bottom:7px}.account-grid strong{font-size:12px;font-weight:500}.order-card{padding:15px 16px}.order-card h3{font-size:12px;margin:0 0 12px;font-weight:550}.position-summary{padding:10px;background:#0b1420;border-radius:5px;display:flex;justify-content:space-between;font-size:12px;color:#8ca3c3}.order-card label{display:block;margin:13px 0 7px;font-size:12px;color:#8296b2}.ratios{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.ratios button{border:1px solid #2a3a52;border-radius:4px;padding:7px 0;font-size:12px;color:#8197b7}.ratios button.active{background:#263b5b;border-color:#4a74ac;color:#b9d1f5}.order-card textarea,.order-card input{width:100%;font-size:12px;padding:8px}.trade-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.trade-button{border-radius:6px;padding:10px 0;font-size:12px;font-weight:550;background:#4d2734;color:#ff9aa3;border:1px solid #783a48}.trade-button.sell{background:#173d34;color:#68d8b0;border-color:#285f4d}.trade-button:active{filter:brightness(1.2)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.trade-button:hover{filter:brightness(1.2)}}.execution-note{font-size:12px;line-height:1.75;color:#687f9f;margin:10px 0 0}.pending-note{margin-top:10px;padding:9px;border:1px solid #3e4b65;border-radius:5px;font-size:12px;color:#b0c5e5}.pending-note button{color:#e9a575;float:right;font-size:12px}.plan-card{padding:15px 16px}.plan-card h3{font-size:12px;margin:0 0 11px;font-weight:550;display:flex;justify-content:space-between}.plan-card textarea{width:100%;font-size:12px;min-height:74px}.plan-card small{font-size:12px;line-height:1.7;display:block;margin-top:8px}.records{margin-top:15px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:22px;padding:0 18px;align-items:center;height:44px}.tabs button{height:44px;padding:0 1px;color:#7086a4;font-size:12px;position:relative}.tabs button.active{color:#bbd3fb}.tabs button.active:after{content:"";height:2px;position:absolute;bottom:-1px;left:0;right:0;background:var(--blue)}.tabs .tab-tail{margin-left:auto;font-size:12px;color:#627b9d}.records-body{min-height:140px;max-height:285px;overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.data-table th{font-weight:400;color:#7085a2;text-align:left;padding:11px 17px;background:#0e1723;font-size:12px}.data-table td{padding:13px 17px;border-top:1px solid #1c2839;color:#b7c6dc}.data-table .mono{font-size:12px}.empty-state{display:flex;justify-content:center;align-items:center;min-height:139px;gap:13px;color:#607897}.empty-state .icon{width:28px;height:28px;color:#455d7d}.empty-state p{margin:0 0 6px;font-size:12px;color:#8ca2c0}.empty-state small{font-size:12px}.footnote{margin-top:14px;color:#526681;font-size:12px;display:flex;justify-content:space-between;gap:15px;line-height:1.7}.footnote span{display:flex;align-items:center;gap:6px}.page-header{display:flex;align-items:end;justify-content:space-between;margin:8px 0 25px;gap:15px}.page-header h2{font-size:24px;font-weight:550;margin:0 0 10px;letter-spacing:.5px}.page-header p{color:#859ab8;line-height:1.8;margin:0;font-size:12px}.training-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.training-card{padding:24px;min-height:280px;position:relative}.card-kicker{color:var(--cyan);font-size:12px;letter-spacing:1px}.training-card h3{font-size:19px;font-weight:550;margin:18px 0 12px}.training-card p{color:#8197b7;line-height:1.95;font-size:12px;margin:0 0 21px}.training-card .icon{width:33px;height:33px;margin:12px 0;color:#77a5ef}.training-card .button{margin-top:8px}.section-title{font-size:13px;font-weight:500;margin:26px 0 14px;color:#a7bddb}.info-box{padding:19px 23px;border:1px solid #2b3c54;border-radius:8px;background:#101e30;color:#8ea5c6;font-size:12px;line-height:1.9;margin-top:20px}.info-box strong{color:#c4d6ef;font-weight:500}.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.archive-card{padding:22px}.archive-card h3{margin:0;font-weight:550;font-size:15px}.archive-date{color:#6e85a7;font-size:12px;margin:8px 0 19px}.archive-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:20px}.archive-stats small{display:block;font-size:12px;margin-bottom:7px}.archive-stats strong{font-weight:500;font-family:var(--mono)}.data-source-card{padding:24px;margin-bottom:18px}.data-source-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.data-source-header h3{margin:0;font-size:16px;font-weight:550}.data-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.data-facts small{display:block;font-size:12px;margin-bottom:10px}.data-facts strong{font-family:var(--mono);font-weight:500;font-size:24px}.data-search{display:flex;gap:10px;align-items:center;margin:22px 0 15px}.data-search input{flex:1}.data-search select{max-width:160px}.data-search .button{font-size:12px}.catalog-container{max-height:470px;overflow:auto}.catalog-container th{position:sticky;top:0}.catalog-container button{color:#86b1f7;font-size:12px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.step{padding:18px;border:1px solid var(--line);border-radius:7px;color:#8198b8;font-size:12px;line-height:1.9}.step b{display:block;color:#b9cce5;font-weight:500;margin-bottom:7px}.step .step-no{font-family:var(--mono);color:var(--cyan);font-size:12px;margin-right:7px}dialog{border:1px solid #334865;border-radius:12px;padding:0;background:#101a28;color:#dce5f2;box-shadow:0 30px 100px #0009;width:min(560px,calc(100vw - 28px));max-height:88vh}dialog::backdrop{background:#020711b8;backdrop-filter:blur(4px)}.dialog-inner{padding:28px}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.dialog-heading h2{font-size:21px;font-weight:550;margin:0}.dialog-heading button{font-size:24px;line-height:1;color:#879bb9}.dialog-subtitle{font-size:12px;color:#849ab9;line-height:1.8;margin:0 0 22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 16px}.form-field label{display:block;font-size:12px;color:#91a5c2;margin-bottom:8px}.form-field input,.form-field select,.form-field textarea{width:100%}.form-field.full{grid-column:1/-1}.form-field small{font-size:12px;line-height:1.7;margin-top:7px;display:block}.check-row{display:flex;align-items:center;gap:9px;font-size:12px;color:#b2c5e0}.check-row input{accent-color:var(--blue);width:15px;height:15px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.form-error{font-size:12px;color:#ffa5ad;margin-top:16px}.review-score{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.review-score>div{padding:15px 11px;background:#0a1422;border:1px solid #21334e;border-radius:7px}.review-score small{font-size:12px}.review-score strong{display:block;font-family:var(--mono);font-size:18px;margin-top:10px;font-weight:500}.review-notes{padding:14px 16px;border-left:2px solid var(--blue);background:#12223a;color:#a7bddb;font-size:12px;line-height:1.9;margin:18px 0}.review-notes p{margin:5px 0}.review-spark{width:100%;height:110px;border:1px solid #21334e;border-radius:7px;background:#0a1422}.review-textarea{width:100%;font-size:12px;min-height:75px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s;z-index:10;background:#213451;border:1px solid #3f5e88;color:#d5e5ff;padding:12px 19px;border-radius:8px;box-shadow:0 5px 25px #0005;max-width:90vw;font-size:12px;line-height:1.7}#toast.visible{opacity:1;transform:translate(-50%,0)}.import-progress{margin-top:15px;color:var(--cyan);font-size:12px;line-height:1.8}.shortcut{font-family:var(--mono);font-size:12px;border:1px solid #33435a;background:#172334;padding:2px 4px;border-radius:3px;color:#91a9ce}.loading-screen{padding:80px 25px;text-align:center;color:#7b94b6}.loading-screen strong{font-size:20px;display:block;color:#c6d7ef;margin-bottom:13px}.spin{width:24px;height:24px;border:2px solid #284567;border-top-color:#6b9df3;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1550px){.chart-wrap{height:500px}.main-content{padding:25px 30px}.work-grid{grid-template-columns:minmax(0,1fr) 310px}.shell{grid-template-columns:205px 1fr}}
@media(max-width:1120px){.shell{grid-template-columns:69px minmax(0,1fr)}.sidebar{padding:26px 10px 18px}.brand{padding:0 7px 29px}.brand>div:last-child,.nav-label,.nav button span,.sidebar-tip,.sidebar-bottom{display:none}.nav button{padding:14px;justify-content:center}.main-content{padding:17px}.work-grid{grid-template-columns:minmax(0,1fr) 260px}.chart-wrap{height:410px}.topbar{padding:0 20px}.training-cards{gap:11px}.training-card{padding:19px}.replay-hint{display:none}.instrument-bar{padding:16px 15px 13px}.quote-ohcl{gap:10px}}
@media(max-width:820px){.work-grid{grid-template-columns:1fr}.sidebar-cards{display:grid;grid-template-columns:1fr 1fr}.plan-card{grid-column:1/-1}.chart-wrap{height:430px}.session-heading small{display:none}.topbar-right>small{display:none}.training-cards{grid-template-columns:1fr}.training-card{min-height:0}.archive-grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.footnote{flex-direction:column;gap:3px}.session-actions .button span{display:none}}
@media(max-width:520px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;top:auto;bottom:0;height:60px;left:0;right:0;z-index:5;padding:5px 10px;display:block;border-right:0;border-top:1px solid #293b55}.brand{display:none}.nav{display:flex;justify-content:space-around;gap:3px}.nav button{flex:1;padding:8px 12px;flex-direction:column;gap:4px}.nav button span{display:block;font-size:12px}.nav button.active{box-shadow:none}.nav .icon{width:17px;height:17px}.main-content{padding:13px 10px 80px}.topbar{height:68px;padding:0 15px}.topbar h1{font-size:17px}.topbar-right{gap:8px}.topbar-right>.tag{display:none}.session-heading h2{font-size:14px}.session-heading .tag{font-size:12px}.session-actions .button{padding:8px}.instrument-name strong{font-size:15px}.last-price{font-size:24px}.quote-ohcl{font-size:12px;gap:9px}.instrument-bar>.tag{display:none}.chart-wrap{height:360px}.chart-meta{font-size:12px;padding:10px 10px 0}.legend{gap:6px}.replay-controls{gap:4px}.replay-center .button{padding:7px 8px;font-size:12px}.replay-controls select{max-width:68px}.sidebar-cards{grid-template-columns:1fr}.plan-card{grid-column:auto}.data-facts{gap:12px}.data-facts strong{font-size:19px}.data-source-card{padding:18px}.data-search{flex-wrap:wrap}.data-search input{min-width:100%;flex:1}.page-header{align-items:start}.page-header h2{font-size:21px}.data-table td,.data-table th{padding:11px}.form-grid{gap:15px 11px}.dialog-inner{padding:23px 20px}.review-score strong{font-size:15px}.replay-bar{padding:12px}.data-source-header{gap:8px}.data-source-header h3{font-size:14px}}
/* v0.2: decisions, discipline, durable progress and review */
.page-actions,.slot-actions{display:flex;gap:9px;flex-wrap:wrap}.progress-info{font-size:12px;color:#90a6c5;margin:0 0 20px}.slot-heading,.slot-meta{display:flex;justify-content:space-between;align-items:center;gap:10px}.progress-card h3{margin:14px 0 10px}.slot-progress{height:4px;border-radius:9px;background:#17283e;margin:19px 0 11px;overflow:hidden}.slot-progress span{height:100%;background:#649bff;display:block;border-radius:9px}.slot-meta{font-size:12px;color:#8ca4c5}.slot-actions{margin-top:21px}.quiet-note{font-size:12px;color:#8299b8;line-height:1.8;margin:11px 0 0}.discipline-card{padding:17px 19px}.discipline-card .card-title{margin-bottom:14px}.discipline-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px 9px;color:#7f97b7;font-size:12px}.discipline-summary b{display:block;color:#c4d4e9;margin-top:6px;font-size:12px;font-family:var(--mono);font-weight:500}.discipline-alert{margin-top:15px;padding:10px 12px;border:1px solid #80514c;border-radius:7px;background:#53322735;color:#efc7a4;font-size:12px;line-height:1.8}.discipline-alert p{margin:0 0 5px}.discipline-alert small{font-size:12px;color:#c29d81}.order-estimate{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 15px;padding:11px;border:1px solid #24364e;border-radius:7px;background:#101c2c}.order-estimate span{font-size:12px;color:#8da4c1}.order-estimate b{display:block;font-family:var(--mono);font-size:12px;color:#bcd1ed;margin-top:6px}.order-estimate small{display:block;color:#6e89ad;font-size:12px;line-height:1.7;margin-top:5px}.order-estimate p{grid-column:1/-1;margin:0;color:#718bac;font-size:12px;line-height:1.7}.decision-fields{display:grid;grid-template-columns:.9fr 1.1fr;gap:9px;margin:13px 0 10px}.decision-fields label{font-size:12px!important;margin:0!important}.decision-fields select{width:100%;font-size:12px;padding:8px 6px;margin-top:7px}.observe-button{width:100%;justify-content:center;border-style:dashed;color:#91b5e8;font-size:12px}.order-card .trade-buttons{margin-top:15px}.journal-list{max-height:340px;overflow:auto;padding:0 18px}.journal-entry{padding:15px 0;border-bottom:1px solid #21314a}.journal-entry:last-child{border:0}.journal-entry>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;color:#9db6d7}.journal-entry small{font-size:12px;color:#6f8cad}.journal-entry p{font-size:12px;color:#b4c9e4;line-height:1.9;margin:10px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.statistics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{padding:20px}.stat-card>small{font-size:12px;color:#8da6c8}.stat-card strong{display:block;margin:13px 0 10px;font-family:var(--mono);font-size:25px;color:#d1e2fa;font-weight:500}.stat-card strong em{font-family:var(--sans);font-size:12px;color:var(--muted);font-style:normal}.stat-card>span{font-size:12px;color:#7692b7}.mode-summary{padding:20px 23px;margin-bottom:24px}.mode-comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:18px 0}.mode-comparison>div{border-left:2px solid #325d91;padding-left:13px;display:grid;gap:8px}.mode-comparison b{font-size:12px;color:#b9cce8}.mode-comparison span{font-size:12px;color:#7c97bb}.mode-comparison strong{font-size:18px;color:#96baff;font-family:var(--mono);font-weight:500}.archive-filter{display:flex;align-items:center;gap:13px;margin:0 0 20px;font-size:12px;color:#87a1c4}.archive-filter select{font-size:12px}.archive-filter>span{margin-left:auto;color:#6d89b0}.process-summary{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}.process-summary span{padding:6px 10px;border:1px solid #2c4566;border-radius:5px;background:#16253b;color:#9bb8de;font-size:12px}.review-details{border:1px solid #253b58;border-radius:7px;margin:12px 0}.review-details summary{padding:13px 15px;cursor:pointer;color:#a6bfe0;font-size:12px}.review-details .journal-list{max-height:280px}#rename-form>.dialog-content>label{display:block;font-size:12px;color:var(--soft-text);margin:20px 0 10px}#session-title{width:100%}.dialog-actions{flex-wrap:wrap}.order-card .quiet-note{margin:7px 0 11px}.chart-toolbar{flex-wrap:wrap;gap:10px}.chart-note{pointer-events:none}.records-body{overflow:auto}.nav button{white-space:nowrap}
@media(min-width:1550px){.chart-wrap{height:540px}}
@media(max-width:1120px){.statistics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card strong{font-size:22px}}
@media(max-width:820px){.page-header{gap:15px;flex-wrap:wrap}.discipline-card{grid-column:auto}.statistics-grid{gap:10px}.mode-comparison{gap:11px}.archive-filter>span{display:none}.tabs{overflow:auto}.tabs .tab-tail{display:none}.progress-info{line-height:1.8}}
@media(max-width:520px){.nav button{padding:8px 5px}.nav button span{font-size:12px}.statistics-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:14px 11px}.stat-card strong{font-size:20px}.mode-summary{padding:17px 12px}.mode-comparison{gap:7px}.mode-comparison>div{padding-left:8px}.mode-comparison strong{font-size:15px}.page-actions .button{font-size:12px;padding:9px 11px}.journal-list{padding:0 12px}.journal-entry>div{gap:7px}.progress-card h3{font-size:16px}.chart-toolbar{gap:8px}.chart-tools{width:100%;justify-content:flex-end}.sidebar-cards{display:flex;flex-direction:column}.plan-card{order:-1}}
.backup-text{display:block;width:100%;height:180px;resize:vertical;margin:12px 0;font-family:var(--mono);font-size:12px;line-height:1.7;overflow-wrap:anywhere}#backup-import-form>.dialog-content>label{display:block;margin-top:22px;font-size:12px;color:var(--soft-text)}label[for="backup-content"]{font-size:12px;color:var(--soft-text)}
/* v0.3: specialized practice, shared signal descriptions */
.training-intro{display:flex;gap:24px;flex-wrap:wrap;margin:0 0 23px;color:#8ca7ca;font-size:12px}.training-intro span{border-bottom:1px solid #2c476a;padding-bottom:9px}.training-card{display:flex;flex-direction:column;min-height:320px}.training-card>.icon{flex-shrink:0}.training-card>p{flex:1}.training-card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:20px}.training-card-footer .button{margin:0;font-size:12px}.training-card-footer .tag{font-size:12px}.sample-rule{color:#8ca7cb;font-size:12px;line-height:1.8}.sample-rule summary{cursor:pointer;color:#a5bce0;padding:8px 0}.sample-rule p{font-size:12px!important;min-height:0!important;margin:6px 0!important;line-height:1.9!important;color:#8fa8c9!important}.training-card.tone-red>.icon,.training-card.tone-red .card-kicker{color:#f08a95}.training-card.tone-green>.icon,.training-card.tone-green .card-kicker{color:#65c9a7}.training-card.tone-green>.icon{transform:scaleY(-1)}.training-card.tone-teal>.icon,.training-card.tone-teal .card-kicker{color:#68c9c5}.training-card.tone-purple>.icon,.training-card.tone-purple .card-kicker{color:#bca1e8}.training-method{line-height:1.9;margin-top:22px}.training-method summary{cursor:pointer;color:#b4cce9}.training-method p{margin:10px 0 0}.sample-form-rule{padding:12px 14px;background:#12243a;border:1px solid #294363;border-radius:7px;color:#91acce;line-height:1.9;font-size:12px}.sample-form-rule strong{font-size:12px;color:#c1d6f1;font-weight:500}.sample-form-rule p{margin:8px 0}.sample-form-rule small{color:#7e9bbf;font-size:12px}.training-context{padding:13px 17px;margin:-3px 0 18px;border:1px solid #294263;border-left:3px solid #649bff;border-radius:7px;background:#101e30}.training-context>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.training-context strong{font-size:12px;color:#c4d9f5}.training-context>div>span:last-child{font-size:12px;color:#8ea9cb}.training-context p{font-size:12px;color:#839ebf;line-height:1.8;margin:9px 0 0}.training-context.tone-red{border-left-color:#f08a95}.training-context.tone-green{border-left-color:#65c9a7}.training-context.tone-purple{border-left-color:#bca1e8}.training-context.tone-teal{border-left-color:#68c9c5}.review-training{font-size:12px;color:#bed2ee;line-height:1.8;margin:17px 0}.review-training p{font-size:12px;color:#8da9cb;margin:7px 0}.mode-comparison{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));row-gap:22px}#profile-field[hidden]{display:none}
@media(max-width:820px){.training-card{min-height:0}.training-card>p{flex:initial}.training-context>div{gap:8px}.training-intro{gap:14px}.mode-comparison{grid-template-columns:repeat(2,minmax(0,1fr))}}
.training-card .training-card-footer .icon{width:15px;height:15px;margin:0;color:inherit}.training-card .training-card-footer .button{padding:9px 12px;gap:7px}
/* v0.4 — a quiet, chart-first workspace inspired by conversational editors. */
:root{--bg:var(--bg);--panel:var(--bg);--line:var(--line);--muted:var(--muted);--blue:#d3e2f4;--cyan:#72cbb1;color:var(--text);background:var(--bg);font-size:13px}
body{background:var(--bg)}.shell{grid-template-columns:208px minmax(0,1fr)}.sidebar{background:var(--sidebar-bg);border-color:var(--line);padding:25px 12px 18px}.brand{padding:0 10px 32px}.brand strong{font-size:16px;letter-spacing:.3px}.brand small{color:var(--muted);font-size:12px;letter-spacing:1.5px}.brand-symbol i:nth-child(2){background:var(--soft-text)}.nav-label{color:var(--muted);letter-spacing:1px}.nav{gap:4px}.nav button{padding:12px 13px;color:var(--soft-text);border-radius:9px}.nav button:active{background:var(--field-bg);color:#fff}@media(min-width:821px) and (hover:hover) and (pointer:fine){.nav button:hover{background:var(--field-bg);color:#fff}}.nav button.active{background:var(--active);color:var(--text);box-shadow:none}.nav .icon{width:17px;height:17px}.sidebar-tip{background:transparent;border:0;padding:15px 13px;margin-top:26px}.sidebar-tip .tiny{color:var(--muted);font-size:12px}.sidebar-tip p{color:var(--muted);font-size:12px}.sidebar-bottom{color:var(--muted);font-size:12px}.sidebar-bottom span[style]{color:var(--muted)!important}.workspace{background:var(--bg)}.main-content{padding:18px 20px}.panel{border-color:var(--line);background:var(--bg);border-radius:12px}.button{background:var(--surface);border-color:var(--line);color:var(--soft-text);border-radius:7px;box-shadow:none}.button:active{background:var(--hover);border-color:var(--line-strong)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.button:hover{background:var(--hover);border-color:var(--line-strong)}}.button.primary{background:#e9e9e9;border-color:#e9e9e9;color:var(--sidebar-bg);box-shadow:none}.button.primary:active{background:#fff}@media(min-width:821px) and (hover:hover) and (pointer:fine){.button.primary:hover{background:#fff}}.button.quiet{color:var(--muted)}.button.quiet:active{background:var(--active);color:var(--text)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.button.quiet:hover{background:var(--active);color:var(--text)}}.tag{color:var(--muted);background:var(--surface);border-color:var(--line);font-size:12px;padding:4px 6px}.tag.teal{color:#80cfb2;background:#20312c;border-color:#30483e}.tag.amber{color:#dfbb7e;background:#312b21;border-color:#514431}input,select,textarea{background:var(--field-bg);border-color:var(--line);color:var(--text);border-radius:7px}input:focus,select:focus,textarea:focus{outline-color:var(--muted);border-color:var(--muted)}button:focus-visible,a:focus-visible{outline-color:#b8d7ec}.session-strip{margin:0 0 12px;min-height:36px}.session-heading{gap:9px;min-width:0}.session-heading h2{font-size:14px}.session-heading small{color:var(--muted);font-size:12px}.session-actions .button{padding:8px 11px;font-size:12px}.session-actions .primary{background:var(--text)}.work-grid{gap:12px;grid-template-columns:minmax(0,1fr) 292px}.instrument-bar{padding:12px 15px 9px;gap:8px}.instrument-name strong{font-size:15px}.instrument-name .code{color:var(--muted);font-size:12px}.instrument-name .button{padding:2px 5px}.quote-row{margin-top:4px;gap:12px}.last-price{font-size:25px}.quote-row small{font-size:12px}.quote-ohcl{margin-top:4px;gap:13px;color:var(--muted)}.quote-ohcl b{color:var(--soft-text)}.chart-toolbar{padding:6px 10px;gap:5px;background:var(--bg);border-color:var(--line);flex-wrap:wrap}.chart-toolbar select{font-size:12px;padding:5px 7px;background:var(--surface)}.segmented button{color:var(--muted);padding:5px 8px}.segmented button.selected{background:var(--active);color:#f2f2f2}.segmented .button{padding:4px}.chart-tools{gap:4px}.chart-tools .button{font-size:12px;padding:4px 6px;background:transparent;border-color:transparent;color:var(--muted)}.chart-tools .button[aria-pressed=true]{background:#353535;color:var(--text)}.tool-divider{background:var(--line);margin:0 4px}.chart-meta{padding:7px 12px 0;color:var(--muted)}.legend{gap:9px}.chart-note{color:var(--muted);font-size:12px}.replay-bar{padding:9px 12px;background:var(--surface);border-color:var(--line)}.progress-header{font-size:12px;color:var(--muted)}.progress-track{background:var(--active);margin-top:8px;height:3px}.progress-fill{background:#83b9a5}.replay-controls{margin-top:9px;gap:6px}.replay-controls .button{padding:7px 9px;font-size:12px}.replay-controls select{background:var(--surface);color:var(--soft-text)}.replay-center .button.next{background:var(--text);border-color:var(--text);color:var(--sidebar-bg)}.replay-hint{display:none}.shortcut{color:var(--muted);background:#313131;border-color:var(--line-strong)}.footnote{font-size:12px;color:var(--muted);margin-top:10px}.footnote>span:last-child{font-size:12px}.sidebar-cards{gap:10px}.card-title{padding:12px 14px 0;font-size:12px;color:var(--soft-text)}.account-total{padding:9px 14px 11px}.account-total .number{font-size:25px;margin-top:3px;color:var(--text)}.account-change{font-size:12px}.account-grid{padding:10px 14px;gap:10px;border-color:var(--line)}.account-grid small{font-size:12px;color:var(--muted);margin-bottom:4px}.account-grid strong{font-size:12px;color:var(--soft-text)}.order-card{padding:13px 14px}.order-card h3{margin-bottom:10px;font-size:12px}.position-summary{background:#2a2a2a;border-color:var(--line);color:var(--muted);padding:9px;font-size:12px}.order-card label{color:var(--muted);margin:10px 0 6px;font-size:12px}.ratios{gap:5px}.ratios button{padding:6px;background:var(--surface);border-color:#454545;color:var(--muted)}.ratios button.active{background:var(--active);color:#fff;border-color:var(--line-strong)}.order-estimate{background:var(--field-bg);border-color:var(--line);padding:9px;margin:10px 0;gap:8px}.order-estimate span,.order-estimate small,.order-estimate p{color:var(--muted)}.order-estimate b{color:var(--soft-text);margin-top:4px;font-size:16px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.order-estimate>div{min-width:0}.order-estimate small{margin-top:3px;font-size:12px}.order-estimate p{font-size:12px}.order-card textarea{width:100%;font-size:12px;min-height:46px;resize:none;padding:8px 9px}.decision-fields{margin:9px 0;gap:8px}.decision-fields select{margin-top:4px;padding:6px;font-size:12px}.observe-button{background:var(--surface);color:var(--soft-text);border-style:solid;font-size:12px;padding:7px}.order-card .quiet-note{display:none}.order-card .trade-buttons{margin-top:10px}.trade-button{padding:10px 6px;background:#55343a;border:1px solid #71424b;color:#ffc0c7;font-size:12px}.trade-button.sell{background:#23483d;border-color:#315c4e;color:#9ddfc3}.trade-button:active{filter:brightness(1.15)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.trade-button:hover{filter:brightness(1.15)}}.execution-note{color:var(--muted);font-size:12px;margin-bottom:0;line-height:1.65}.practice-tools{display:flex;gap:7px}.practice-tools .button{flex:1;padding:9px 6px;font-size:12px;background:transparent}.practice-tools .icon{width:14px;height:14px}.discipline-alert{margin-top:0;background:#44362b;border-color:#66503b;color:#e8c6a2;font-size:12px}.plan-editor{width:100%;min-height:200px;font-size:13px}.lower-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;margin-top:12px}.records{margin:0;min-width:0;display:flex;flex-direction:column}.tabs{height:39px;min-height:39px;padding:0 12px;gap:15px;border-color:var(--line);overflow:auto}.tabs button{height:39px;font-size:12px;white-space:nowrap;color:var(--muted)}.tabs button.active{color:var(--text)}.tabs button.active:after{background:#e3e3e3}.tab-tail{display:none}.records-body{min-height:0;max-height:none;overflow:auto;flex:1}.empty-state{min-height:100px;height:100%;padding:14px;gap:12px;color:var(--muted)}.empty-state .icon{width:22px;height:22px;color:var(--muted)}.empty-state p{font-size:12px;color:var(--soft-text)}.empty-state small{font-size:12px;color:var(--muted)}.data-table th{background:var(--surface);color:var(--muted)}.data-table td,.data-table th{border-color:var(--line);font-size:12px;padding:10px 12px}.journal-list{max-height:none}.journal-entry{border-color:var(--line)}.journal-entry p{color:var(--soft-text);font-size:12px}.market-panel{display:flex;flex-direction:column;min-width:0}.market-heading{padding:10px 12px 0;display:flex;align-items:center;justify-content:space-between;gap:6px}.market-heading>div{display:flex;align-items:center;gap:8px}.eyebrow{font-size:12px;color:var(--muted);white-space:nowrap}.market-heading select{padding:4px 6px;font-size:12px;background:var(--surface);border-color:var(--line)}.market-quote{display:flex;gap:9px;align-items:baseline;padding:7px 12px 0}.market-quote strong{font-size:17px;font-weight:500}.market-quote span{font-size:12px}.market-quote small{font-size:12px;margin-left:auto;color:var(--muted)}.market-canvas{flex:1;min-height:100px;position:relative}.market-canvas canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.market-empty{flex:1;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:10px;color:var(--muted);font-size:12px;min-height:150px}.market-empty small{font-size:12px;color:var(--muted)}.indicator-guide p{display:grid;gap:7px;border-bottom:1px solid var(--line);padding:10px 0;margin:0;font-size:12px;line-height:1.7}.indicator-guide strong{color:var(--text);font-weight:500}.indicator-guide span{color:var(--muted)}.training-context{background:var(--surface);border-color:var(--line);margin:8px 0}.training-context strong{color:var(--text)}.training-context p,.training-context>div>span:last-child{color:var(--muted)}.page-header{margin-top:14px}.page-header h2{font-size:25px;font-weight:500;letter-spacing:-.4px}.page-header p{color:var(--muted)}.training-cards{gap:12px}.training-card{min-height:280px;padding:22px}.training-card h3{font-size:18px}.training-card p{color:var(--muted);font-size:12px}.training-intro span{color:var(--muted);border-color:var(--line)}.info-box,.sample-form-rule{background:#272727;border-color:var(--line);color:var(--muted)}.info-box strong,.sample-form-rule strong{color:var(--text)}.sample-rule summary{color:var(--soft-text)}.sample-rule p{color:var(--muted)!important}.dialog-inner{background:var(--surface)}.dialog-heading h2{color:var(--text)}.dialog-subtitle{color:var(--muted)}.dialog-actions{border-color:var(--line)}dialog{background:var(--surface);border-color:var(--line);border-radius:14px}dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}.form-field label{color:var(--soft-text)}.form-field small{color:var(--muted)}.review-notes{background:#2a2a2a;border-color:var(--muted);color:var(--soft-text)}#toast{background:var(--surface);border-color:var(--line-strong);color:var(--text);box-shadow:0 6px 24px #0004}
@media(min-width:1060px) and (min-height:680px){
.is-training{height:100dvh;min-height:0;overflow:hidden}.is-training .workspace{height:100dvh;min-height:0}.is-training .main-content{height:100%;display:flex;flex-direction:column;min-height:0;padding:14px 16px 10px}.is-training .session-strip{flex-shrink:0}.is-training .work-grid{flex:1;min-height:0}.is-training .chart-column{display:grid;grid-template-rows:minmax(0,1fr) clamp(200px,25dvh,310px);gap:12px;min-height:0}.stock-panel{display:flex;flex-direction:column;min-height:0}.is-training .chart-wrap{height:auto;flex:1;min-height:130px}.stock-panel>.instrument-bar,.stock-panel>.chart-toolbar,.stock-panel>.chart-meta,.stock-panel>.replay-bar{flex-shrink:0}.is-training .lower-grid{min-height:0;margin:0}.is-training .sidebar-cards{min-height:0;overflow:auto}.is-training .sidebar-cards>.panel{flex-shrink:0}.is-training .order-card{flex:1}.is-training .footnote{flex-shrink:0;margin-top:8px}.is-training .practice-tools{flex-shrink:0}.is-training .market-canvas{min-height:0}}
@media(min-width:1450px){.shell{grid-template-columns:218px minmax(0,1fr)}.work-grid{grid-template-columns:minmax(0,1fr) 310px}.is-training .main-content{padding:16px 20px 12px}.order-card{padding:16px}.order-card label{margin-top:13px}.order-card textarea{min-height:60px}.decision-fields{margin:12px 0}.trade-button{padding:12px}.chart-tools .button{font-size:12px}.chart-wrap{height:500px}}
@media(max-width:1120px){.shell{grid-template-columns:70px minmax(0,1fr)}.sidebar{padding:24px 10px}.brand{padding:0 7px 28px}.nav button{justify-content:center;padding:13px}.brand>div:last-child,.sidebar-tip,.sidebar-bottom,.nav-label,.nav button span{display:none}.main-content{padding:14px}.chart-tools{gap:2px}.chart-tools .button{padding:4px}.work-grid{grid-template-columns:minmax(0,1fr) 280px}}
@media(max-width:1059px),(max-height:679px){.chart-wrap{height:380px}.lower-grid{grid-template-columns:1fr}.market-canvas{height:180px;flex:none}.records-body{max-height:220px;min-height:140px}.sidebar{position:sticky}.stock-panel{display:block}.chart-tools{flex-wrap:wrap}.footnote{flex-wrap:wrap;gap:6px}}
@media(max-width:820px){.work-grid{grid-template-columns:1fr}.sidebar-cards{display:flex}.session-heading small{display:none}.lower-grid{grid-template-columns:1fr 1fr;margin-bottom:12px}.market-quote{flex-wrap:wrap}.market-quote small{margin-left:0}.chart-wrap{height:410px}.training-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-cards .order-card{order:-1}.main-content{padding:13px}.session-heading{flex-wrap:wrap}.session-actions .button span{display:inline}}
@media(max-width:520px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;bottom:0;top:auto;height:62px;padding:5px 6px;background:var(--sidebar-bg)}.nav button{padding:8px 3px}.nav button span{display:block;font-size:12px}.main-content{padding:12px 10px 80px}.brand{display:none}.session-actions .button span{display:none}.session-heading .button{display:none}.instrument-bar{padding:11px}.instrument-name strong{font-size:14px}.instrument-name .code{display:none}.quote-ohcl{font-size:12px;gap:8px}.chart-toolbar{padding:6px}.chart-tools{width:auto;justify-content:flex-start}.chart-tools .button{font-size:12px}.chart-meta{font-size:12px}.chart-wrap{height:330px}.lower-grid{grid-template-columns:1fr}.market-canvas{height:170px}.replay-controls .button{padding:7px;font-size:12px}.replay-controls .button.quiet{font-size:12px}.training-cards{grid-template-columns:1fr}.training-card{min-height:0}.session-heading h2{font-size:13px}.market-quote small{margin-left:auto}}

@media(min-width:1060px) and (min-height:680px) and (max-height:840px){.is-training .chart-column{grid-template-rows:minmax(0,1fr) 170px}.is-training .instrument-bar{padding:9px 12px 7px}.is-training .quote-ohcl{margin-top:2px}.is-training .account-grid{gap:7px;padding:8px 12px}.is-training .account-total{padding:7px 12px}.is-training .account-total .number{font-size:23px}.is-training .order-card{padding:10px 12px}.is-training .order-card h3{margin-bottom:7px}.is-training .order-card label{margin:7px 0 4px}.is-training .position-summary{padding:7px}.is-training .order-estimate{padding:7px;margin:7px 0}.is-training .order-card textarea{min-height:38px;height:38px}.is-training .decision-fields{margin:7px 0}.is-training .trade-button{padding:8px}.is-training .execution-note{font-size:12px}.is-training .practice-tools .button{padding:7px}.is-training .replay-controls{margin-top:7px}.is-training .replay-bar{padding:7px 10px}.is-training .market-heading{padding-top:7px}.is-training .market-quote{padding-top:4px}}
.is-training .order-card{flex:0 0 auto;overflow:visible}.inline-plan-card{display:none}.practice-tools{margin-top:auto}
@media(min-width:1060px) and (min-height:1000px){.inline-plan-card{display:flex;flex-direction:column;flex:1!important;min-height:100px;padding:14px}.inline-plan-card h3{font-size:12px;font-weight:500;margin:0 0 9px}.inline-plan-card textarea{flex:1;min-height:55px;resize:none;width:100%;font-size:12px;background:transparent;border:0;padding:0}.inline-plan-card small{font-size:12px;margin-top:8px;color:var(--muted)}.practice-tools{margin-top:0}}
@media(min-width:1060px) and (min-height:680px) and (max-height:840px){.is-training .account-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.is-training .account-grid small{font-size:12px}.is-training .account-grid strong{font-size:12px}.is-training .card-title{padding:8px 12px 0}.is-training .account-total{padding:6px 12px}.is-training .order-estimate p{display:none}.is-training .order-estimate{margin:5px 0;padding:6px}.is-training .order-estimate small{font-size:12px}.is-training .order-card label{margin:5px 0 3px}.is-training .decision-fields{margin:6px 0}.is-training .order-card .trade-buttons{margin-top:7px}.is-training .order-card{padding:9px 12px}.is-training .sidebar-cards{gap:8px}}
@media(min-width:1060px) and (min-height:841px) and (max-height:999px){.is-training .account-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.is-training .account-grid small{font-size:12px}.is-training .account-grid strong{font-size:12px}.is-training .account-total{padding-top:7px;padding-bottom:9px}}
@media(min-width:1060px) and (min-height:680px) and (max-height:840px){.is-training .order-card h3{display:none}.is-training .order-estimate small{display:none}.is-training .position-summary{padding:5px 7px}.is-training .execution-note{line-height:1.4}.is-training .order-card .trade-buttons{margin-top:5px}}
/* v0.5: custom periods and pre-training sample selection */
.chart-meta{gap:8px;align-items:flex-start}.legend{flex-wrap:wrap;row-gap:4px}.chart-meta>span{white-space:nowrap}.chart-tools .ma-settings-button{padding:4px 3px}.ma-settings-button .icon{width:14px;height:14px}#ma-form>.dialog-content>label:not(.check-row),#resample-form>.dialog-content>label{display:block;font-size:12px;color:var(--soft-text);margin:20px 0 9px}#ma-periods,#sample-scope{width:100%;display:block}#ma-form>.dialog-content>small,#resample-form>.dialog-content>small{display:block;color:var(--muted);font-size:12px;line-height:1.8;margin:10px 0}.ma-presets{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.ma-presets button{border:1px solid var(--line);border-radius:7px;color:var(--soft-text);padding:7px 10px;font-size:12px}.ma-presets button:active{background:var(--hover)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.ma-presets button:hover{background:var(--hover)}}.session-actions{flex-shrink:0}
@media(max-width:520px){.chart-meta>span{display:none}.chart-meta{min-height:22px}.session-actions{gap:5px}.session-actions .button{padding:7px}.session-heading{gap:5px}}
/* v0.6 — theme tokens change color, never the workspace geometry. */
:root{--bg:#080d15;--sidebar-bg:#0d141f;--panel:#101823;--chart-bg:#0d1622;--surface:#131e2d;--field-bg:#0a111c;--line:#263449;--line-strong:#425876;--muted:#8499b5;--soft-text:#b3c4dc;--text:#dce5f2;--chart-grid:#1c293b;--accent:#4c8dff;--accent-end:#4c8dff;--accent-wash:#4c8dff1f;--active:linear-gradient(135deg,#4c8dff35,#4c8dff21);--hover:#4c8dff1f;--primary-bg:#326ada;--accent-fill:#4c8dff;--workspace-bg:#080d15;--sidebar-fill:#0d141f;color:var(--text);background:var(--bg);color-scheme:dark}
body{color:var(--text);background:var(--bg)}.workspace{background:var(--workspace-bg)}.sidebar{background:var(--sidebar-fill);border-color:var(--line)}.panel{background:var(--panel);border-color:var(--line)}.brand-symbol i:nth-child(2){background:var(--accent)}.nav button{color:var(--soft-text)}.nav button:active{background:var(--hover);color:var(--text)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.nav button:hover{background:var(--hover);color:var(--text)}}.nav button.active{background:var(--active);color:var(--text);box-shadow:inset 2px 0 var(--accent)}.button{background:var(--surface);color:var(--soft-text);border-color:var(--line-strong)}.button:active{background:var(--hover);border-color:var(--accent)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.button:hover{background:var(--hover);border-color:var(--accent)}}.button.quiet{background:transparent;border-color:transparent;color:var(--muted)}.button.quiet:active{background:var(--hover);color:var(--text)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.button.quiet:hover{background:var(--hover);color:var(--text)}}.button.primary,.session-actions .button.primary,.replay-center .button.next{background:var(--primary-bg);border-color:transparent;color:#fff}.button.primary:active,.replay-center .button.next:active{background:var(--primary-bg);filter:brightness(1.1)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.button.primary:hover,.replay-center .button.next:hover{background:var(--primary-bg);filter:brightness(1.1)}}button:focus-visible,a:focus-visible{outline-color:var(--accent)}input,select,textarea{color:var(--text);background:var(--field-bg);border-color:var(--line-strong)}input:focus,select:focus,textarea:focus{outline-color:var(--accent);border-color:var(--accent)}a{color:var(--accent-text,var(--accent))}.chart-toolbar{background:var(--panel);border-color:var(--line)}.chart-tools .button{background:transparent;border-color:transparent;color:var(--muted)}.chart-tools .button[aria-pressed=true],.segmented button.selected{background:var(--active);color:var(--text)}.chart-toolbar select,.replay-controls select,.market-heading select{background:var(--field-bg);color:var(--soft-text);border-color:var(--line)}.chart-meta,.chart-note,.quote-ohcl,.code,.execution-note,.footnote,.progress-header{color:var(--muted)}.quote-ohcl b{color:var(--soft-text)}.replay-bar{background:var(--surface);border-color:var(--line)}.progress-track,.slot-progress{background:var(--line)}.progress-fill,.slot-progress span{background:var(--accent-fill)}.tabs{border-color:var(--line)}.tabs button{color:var(--muted)}.tabs button.active{color:var(--text)}.tabs button.active:after{background:var(--accent-fill)}.ratios button{background:var(--field-bg);color:var(--muted);border-color:var(--line)}.ratios button.active{background:var(--active);border-color:var(--accent);color:var(--text)}.order-estimate,.position-summary{background:var(--surface);border-color:var(--line)}.order-estimate b{color:var(--soft-text)}.order-estimate span,.order-estimate small,.order-estimate p{color:var(--muted)}.account-total .number{color:var(--text)}.account-grid{border-color:var(--line)}.account-grid strong{color:var(--soft-text)}.card-title,.order-card h3,.inline-plan-card h3{color:var(--text)}.order-card label{color:var(--muted)}.observe-button{background:var(--surface);color:var(--soft-text);border-color:var(--line)}.tag:not(.teal):not(.amber){background:var(--surface);border-color:var(--line);color:var(--soft-text)}.practice-tools .button{background:var(--surface)}.market-canvas,.chart-wrap{background:var(--chart-bg)}.data-table th{background:var(--surface);color:var(--muted)}.data-table td,.data-table th{border-color:var(--line)}.data-table tbody tr:active{background:var(--hover)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.data-table tbody tr:hover{background:var(--hover)}}.journal-entry{border-color:var(--line)}.journal-entry p{color:var(--soft-text)}.info-box,.sample-form-rule{background:var(--surface);border-color:var(--line);color:var(--soft-text)}.training-context{background:var(--surface);border-color:var(--line);border-left-color:var(--accent)}.training-card p,.page-header p,.sample-rule summary,.training-context p{color:var(--muted)}.page-header h2,.training-card h3{color:var(--text)}.training-intro span{color:var(--soft-text);border-color:var(--line)}.review-notes{background:var(--surface);color:var(--soft-text);border-color:var(--accent)}.review-details,.review-spark{border-color:var(--line);background:var(--field-bg)}.dialog-inner,dialog{background:var(--panel);color:var(--text);border-color:var(--line-strong)}.dialog-heading h2{color:var(--text)}.dialog-subtitle,.form-field small{color:var(--muted)}.dialog-actions{border-color:var(--line)}#toast{background:var(--surface);border-color:var(--line-strong);color:var(--text)}.sidebar-theme{margin-top:auto;padding:12px 4px 0}.sidebar-theme button{display:flex;align-items:center;gap:10px;width:100%;border-radius:8px;padding:10px 11px;color:var(--soft-text);font-size:12px;text-align:left}.sidebar-theme button:active{background:var(--hover)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.sidebar-theme button:hover{background:var(--hover)}}.sidebar-theme .icon{margin-left:auto;width:16px;height:16px;color:var(--muted)}.theme-dot,.theme-preview-dot{display:inline-block;width:14px;height:14px;flex-shrink:0;border-radius:50%;background:var(--accent-fill);box-shadow:0 0 0 3px var(--accent-wash)}.sidebar-bottom{margin-top:0;padding-top:12px}.sidebar-bottom span[style]{color:var(--muted)!important}.nav .mobile-theme{display:none}.theme-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0 23px}.theme-preset{text-align:left;border:1px solid var(--line);border-radius:10px;padding:7px 7px 10px;min-width:0;background:var(--surface)}.theme-preset:active{border-color:var(--accent)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.theme-preset:hover{border-color:var(--accent)}}.theme-preset.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.preset-swatch{display:block;position:relative;background:var(--swatch-base);height:60px;border-radius:6px;overflow:hidden;margin-bottom:9px}.preset-swatch:before{content:'';position:absolute;inset:0 auto 0 0;width:22%;background:var(--swatch);opacity:.25}.preset-swatch i{position:absolute;left:30%;right:9%;top:11px;height:3px;background:#9ba9bf55;border-radius:3px}.preset-swatch b{position:absolute;left:30%;right:9%;top:23px;height:3px;background:#9ba9bf33;border-radius:3px}.preset-swatch em{position:absolute;right:9%;bottom:9px;width:37%;height:10px;background:var(--swatch);border-radius:3px}.theme-preset strong{display:block;font-size:12px;font-weight:500;color:var(--text)}.theme-preset small{display:block;font-size:12px;line-height:1.6;margin-top:4px;color:var(--muted)}.theme-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.theme-fields[hidden]{display:none}.theme-fields>label{display:grid;align-content:start;gap:8px;font-size:12px;color:var(--soft-text)}.theme-fields select{width:100%;height:37px;font-size:12px}.color-editor{display:flex;gap:7px;align-items:center}.color-editor input[type=color]{width:38px;height:37px;padding:3px;cursor:pointer;flex:none}.color-editor input:not([type=color]){width:100%;height:37px;font-size:12px;font-family:var(--mono)}.theme-gradient{margin:20px 0 16px;font-size:12px;color:var(--soft-text)}.theme-gradient input{accent-color:var(--accent)}.theme-preview{border:1px solid var(--line);border-radius:10px;padding:17px 14px;margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--workspace-bg)}.theme-preview>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--text);font-size:12px}.theme-preview small{flex-basis:100%;margin-left:23px;color:var(--muted);font-size:12px}.theme-preview-primary{background:var(--primary-bg);color:#fff;border-radius:7px;padding:10px 12px;font-size:12px;white-space:nowrap}.theme-preview-dot{width:11px;height:11px}.theme-presets+.theme-fields{margin-top:5px}#theme-form>.dialog-content>.quiet-note{color:var(--muted);font-size:12px;margin:12px 0;line-height:1.8}#theme-form .dialog-actions{margin-top:16px}
@media(max-width:1120px){.sidebar-theme{padding:12px 0 0}.sidebar-theme button{justify-content:center;padding:12px 0}.sidebar-theme button>span:not(.theme-dot),.sidebar-theme .icon{display:none}}
@media(max-width:520px){.sidebar-theme{display:none}.nav .mobile-theme{display:flex}.sidebar{background:var(--sidebar-fill)}.theme-presets{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.theme-preset small{font-size:12px}.theme-preview{padding:13px 10px}.theme-fields{gap:10px}.theme-preview-primary{font-size:12px;padding:9px}.theme-preview>div{font-size:12px}}
.stat-card strong,.archive-card h3,.progress-card h3,.mode-comparison b,.sample-form-rule strong,.info-box strong,.training-context strong{color:var(--text)}.stat-card>small,.stat-card>span,.archive-date,.slot-meta,.progress-info,.archive-filter,.mode-comparison span,.quiet-note,.sample-form-rule small,.chart-meta>span,.review-details summary{color:var(--muted)}.mode-comparison strong{color:var(--accent-text,var(--accent))}.mode-comparison>div{border-color:var(--accent)}.process-summary span,.shortcut{background:var(--surface);border-color:var(--line);color:var(--soft-text)}.sample-rule p{color:var(--muted)!important}.data-search input,.data-search select{background:var(--field-bg);border-color:var(--line-strong)}.data-source-header,.data-facts,.mode-summary,.journal-entry,.review-details{border-color:var(--line)}.inline-plan-card textarea{background:transparent}.sidebar-tip .tiny,.sidebar-tip p,.nav-label,.brand small{color:var(--muted)}.theme-fields select{background:var(--field-bg)}.theme-fields input:invalid:not(:focus){border-color:#b87676}

/* Compact account hierarchy, aligned form checks and responsive fundamentals. */
.form-field label.check-row{display:flex;align-items:center;gap:8px;line-height:1.6;margin-bottom:0}
.form-field label.check-row input[type=checkbox],.check-row input[type=checkbox]{width:15px;height:15px;min-width:15px;flex:0 0 15px;margin:0;padding:0;align-self:center;accent-color:var(--accent)}
.account-overview{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:baseline}
.account-result{grid-column:1;grid-row:2;display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;min-width:0;line-height:24px}
.account-result>small,.account-change>small{color:var(--muted);white-space:nowrap}
.account-return{font-size:18px;font-weight:600;line-height:24px;margin:0;letter-spacing:0;white-space:nowrap}
.account-total .account-change{grid-column:2;grid-row:2;min-width:0;max-width:160px;display:flex;align-items:baseline;justify-content:flex-end;gap:7px;flex-wrap:wrap;font-size:12px;margin:0;line-height:24px}
.account-change>.mono{font-size:18px;overflow-wrap:anywhere}
.account-assets{grid-column:1 / -1;grid-row:1;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;line-height:24px}
.account-total .account-assets .number{font-size:14px;margin:0;letter-spacing:0;color:var(--soft-text);overflow-wrap:anywhere}
.instrument-bar>div:first-child{min-width:0;flex:1}
.instrument-fundamentals{flex:0 1 410px;min-width:0;align-self:center}
.fundamentals-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px}
.fundamentals-heading .button{font-size:12px;padding:2px 0}
.fundamental-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 14px;margin:4px 0 0}
.fundamental-fields>div{min-width:0}
.fundamental-fields dt{color:var(--muted);font-size:12px;margin:0 0 3px}
.fundamental-fields dd{color:var(--soft-text);font-size:12px;line-height:1.5;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}
.fundamentals-hidden{font-size:12px;color:var(--muted);margin:6px 0;line-height:1.7}
.fundamentals-mobile{display:none}
.instrument-summary>.instrument-source{margin-left:auto;flex:none;font-size:12px;padding:3px 5px}.instrument-name{flex-wrap:wrap}
.fundamentals-detail .fundamental-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}
.fundamentals-detail dt{font-size:12px}.fundamentals-detail dd{font-size:13px}
.fundamentals-detail .quiet-note,.fundamentals-help{font-size:12px;line-height:1.8;color:var(--muted)}
.fundamentals-help summary{cursor:pointer;color:var(--soft-text)}
#dialog .dialog-actions{flex-wrap:wrap}
@media(max-width:1430px){.instrument-fundamentals{flex-basis:auto}.fundamentals-heading,.fundamentals-desktop{display:none}.fundamentals-mobile{display:inline-flex;font-size:12px;padding:6px 9px}}
/* Review facts are grouped by day; keep long reasons inside the dialog. */
.decision-review{border:1px solid var(--line);border-radius:9px;padding:13px;margin:16px 0;background:var(--field-bg);min-width:0}
.decision-review-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px}
.decision-review-heading>span,.review-pagination,.review-day summary>span{color:var(--muted);font-size:12px}
.decision-review>.quiet-note{font-size:12px;line-height:1.8;margin:8px 0 12px}
.review-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.review-filters button,.review-pagination button{font-size:12px;border:1px solid var(--line);background:var(--surface);color:var(--soft-text);border-radius:6px;padding:6px 9px}
.review-filters button[aria-pressed=true]{background:var(--active);border-color:var(--accent);color:var(--text)}
.review-day{border-top:1px solid var(--line)}
.review-day summary{cursor:pointer;padding:11px 0;color:var(--soft-text);font-size:12px;overflow-wrap:anywhere}
.review-day summary>span{margin-left:10px}
.review-day-events{display:grid;gap:12px;padding:0 0 14px 12px;border-left:2px solid var(--accent-wash)}
.review-event{min-width:0;overflow-wrap:anywhere}
.review-event>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.review-event strong{font-size:12px;font-weight:500;color:var(--text)}
.review-event p{white-space:pre-wrap;color:var(--soft-text);font-size:12px;line-height:1.8;margin:5px 0}
.review-event small{display:block;font-size:12px;color:var(--muted);line-height:1.7}
.review-timeline-empty{font-size:12px;color:var(--muted);padding:14px 0;line-height:1.8}
.review-pagination{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.review-pagination>div{display:flex;align-items:center;gap:10px}
.review-pagination button:disabled{opacity:1;cursor:default}
/* Quiet, theme-aware scrollbars for pages, panels, dialogs and text fields. */
*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}
@supports selector(::-webkit-scrollbar){
  *{scrollbar-width:auto;scrollbar-color:auto}
  *::-webkit-scrollbar{width:8px;height:8px}
  *::-webkit-scrollbar-track,*::-webkit-scrollbar-corner{background:transparent}
  *::-webkit-scrollbar-thumb{background:var(--line-strong);background-clip:padding-box;border:2px solid transparent;border-radius:999px;min-height:28px}
  *::-webkit-scrollbar-thumb:active{background-color:var(--muted)}@media(min-width:821px) and (hover:hover) and (pointer:fine){
  *::-webkit-scrollbar-thumb:hover{background-color:var(--muted)}}
  *::-webkit-scrollbar-thumb:active{background:var(--accent-fill);background-clip:padding-box}
  *::-webkit-scrollbar-button{display:none;width:0;height:0}
}
/* A compact, comparable practice picker: useful details instead of empty height. */
.training-picker{width:100%;min-width:0;margin:0}.training-page-header{margin:4px 0 14px;align-items:center}.training-page-header h2{font-size:23px;margin:0 0 7px;letter-spacing:0}.training-page-header p{font-size:12px}.training-shared{display:flex;gap:12px;color:var(--muted);font-size:12px}.training-shared span+span{border-left:1px solid var(--line);padding-left:12px}.training-picker-intro{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px;padding-bottom:12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.training-picker-intro>span{display:flex;gap:9px;align-items:center;white-space:nowrap}.training-picker-intro .icon{width:13px;height:13px;opacity:.65}.training-picker-intro small{font-size:12px}.compact-training-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}.compact-training-card{padding:17px 16px 13px;min-height:0;display:block;transition:border-color .15s,background-color .15s}.compact-training-card:active{border-color:var(--line-strong);background:var(--surface)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.compact-training-card:hover{border-color:var(--line-strong);background:var(--surface)}}.mode-card-heading{display:flex;align-items:center;gap:11px;margin-bottom:18px}.mode-glyph{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--accent-wash);flex:none;color:var(--accent-text,var(--accent))}.mode-glyph .icon{width:20px;height:20px}.compact-training-card h3{font-size:16px;margin:0 0 5px;font-weight:550;line-height:1.3}.mode-card-heading>div>span{color:var(--muted);font-size:12px}.tone-red .mode-glyph{color:#f08a95;background:#f08a9512}.tone-green .mode-glyph{color:#65c9a7;background:#65c9a712}.tone-green .mode-glyph .icon{transform:scaleY(-1)}.tone-purple .mode-glyph{color:#bca1e8;background:#bca1e812}.tone-teal .mode-glyph{color:#68c9c5;background:#68c9c512}.mode-facts{display:grid;gap:11px;margin:0 0 16px}.mode-facts>div{display:grid;grid-template-columns:25px minmax(0,1fr);gap:9px;align-items:start}.mode-facts dt{color:var(--muted);font-size:12px;line-height:1.7}.mode-facts dd{margin:0;color:var(--soft-text);font-size:12px;line-height:1.65;min-height:36px}.mode-facts>div:last-child dd{min-height:18px;color:var(--text)}.mode-card-footer{display:flex;align-items:center;justify-content:space-between;gap:7px;padding-top:11px;border-top:1px solid var(--line)}.mode-card-footer .button{padding:7px 9px;font-size:12px;gap:5px;background:transparent;border-color:var(--line)}.mode-card-footer .button:active{background:var(--hover);border-color:var(--accent)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.mode-card-footer .button:hover{background:var(--hover);border-color:var(--accent)}}.mode-card-footer .button .icon{width:13px;height:13px}.mode-rules-link{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px;padding:5px 0}.mode-rules-link:active{color:var(--text)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.mode-rules-link:hover{color:var(--text)}}.mode-rules-link .icon{width:12px;height:12px}.compact-training-method{padding:0;margin-top:16px;border-radius:9px;background:transparent}.compact-training-method>summary{display:flex;align-items:center;gap:8px;padding:13px 15px;color:var(--soft-text);font-size:12px;list-style:none}.compact-training-method>summary::-webkit-details-marker{display:none}.compact-training-method>summary>.icon{width:14px;height:14px;color:var(--muted)}.compact-training-method>summary>span{margin-left:auto;font-size:12px;color:var(--muted)}.compact-training-method>summary:after{content:'＋';margin-left:7px;color:var(--muted)}.compact-training-method[open]>summary:after{content:'−'}.compact-training-method>p{padding:0 15px;font-size:12px;line-height:1.9;margin:0 0 12px;color:var(--muted)}.mode-profile-rules{margin-top:13px}.mode-profile-rules>p{display:grid;gap:7px;border-bottom:1px solid var(--line);padding:10px 0;font-size:12px;line-height:1.8}.mode-profile-rules strong{color:var(--text);font-weight:500}.mode-profile-rules span{color:var(--muted)}
@media(max-width:1499px){.compact-training-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1059px){.compact-training-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.training-picker-intro{align-items:start}.training-picker-intro small{max-width:260px;line-height:1.6}.mode-facts dd{min-height:18px}.mode-card-heading{margin-bottom:16px}}
@media(max-width:620px){.compact-training-cards{grid-template-columns:1fr}.training-page-header{align-items:start;gap:10px}.training-page-header h2{font-size:21px}.training-shared{font-size:12px;flex-direction:column;gap:5px;text-align:right;padding-top:4px}.training-shared span+span{border:0;padding:0}.training-picker-intro{flex-direction:column;gap:8px}.training-picker-intro small{max-width:none;font-size:12px}.compact-training-card{padding:15px 16px 12px}.mode-card-heading{margin-bottom:13px}.mode-facts{gap:8px;margin-bottom:12px}.mode-facts dd{min-height:0}.mode-facts>div:last-child dd{min-height:0}.compact-training-method>summary>span{display:none}.mode-card-footer .button{font-size:12px}.mode-card-heading>div>span{font-size:12px}}
.compact-training-card .icon{margin:0;color:inherit;flex-shrink:0}
.compact-training-cards{align-items:stretch}.compact-training-card{display:flex;flex-direction:column}.mode-card-heading{margin-bottom:13px}.mode-facts{flex:1;gap:8px;margin-bottom:12px}.mode-facts dd{min-height:18px}.mode-card-footer{margin-top:auto}
/* Per-candle price/volume facts; keep unavailable turnover explicit. */
.quote-ohcl{row-gap:6px}.quote-ohcl>span{white-space:nowrap}.chart-hover-card{position:absolute;top:13px;left:12px;width:320px;max-width:calc(100% - 24px);padding:11px 12px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);color:var(--text);box-shadow:0 6px 24px #0004;pointer-events:none;z-index:2}.chart-hover-card[hidden]{display:none}.chart-hover-card>strong{display:block;font-size:12px;font-weight:500;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line);color:var(--soft-text)}.chart-hover-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px}.chart-hover-grid>div{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0}.chart-hover-grid span{font-size:12px;color:var(--muted);white-space:nowrap}.chart-hover-grid b{font-size:12px;color:var(--text);font-weight:500;white-space:nowrap}
@media(max-width:520px){.quote-ohcl{gap:5px 10px}.chart-hover-card{width:280px;padding:9px 10px}.chart-hover-grid{gap:7px 9px}.chart-hover-grid span{font-size:12px}.chart-hover-grid b{font-size:12px}}
/* Collections: compact cards or a dense, paginated table. */
.library-page{width:100%;min-width:0;margin:0}.library-page-header{margin:3px 0 17px;align-items:center}.library-page-header h2{font-size:23px;letter-spacing:0;margin:0 0 7px}.library-page-header p{font-size:12px}.library-page-header .button{font-size:12px;padding:8px 11px}.collection-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 0 16px}.collection-toolbar>input{flex:1 1 220px;min-width:170px;max-width:360px;height:34px;font-size:12px}.collection-toolbar>select{font-size:12px;height:34px;padding:6px 9px}.collection-layout{margin-left:auto;display:flex;gap:3px;border:1px solid var(--line);padding:3px;border-radius:8px;background:var(--field-bg)}.collection-layout button{padding:5px 9px;border-radius:5px;color:var(--muted);font-size:12px;white-space:nowrap}.collection-layout button[aria-pressed=true]{background:var(--active);color:var(--text)}.collection-result-heading{display:flex;align-items:center;gap:13px;color:var(--muted);font-size:12px;padding:0 1px 10px}.collection-result-heading>small{margin-left:auto;font-size:12px}.collection-result-heading>button{font-size:12px;color:var(--accent-text,var(--accent));padding:2px}.collection-table-wrap{overflow:auto;border-radius:10px}.collection-table{width:100%;border-collapse:collapse;min-width:850px;text-align:left}.collection-table thead{background:var(--surface)}.collection-table th{font-size:12px;font-weight:400;color:var(--muted);padding:12px 14px;white-space:nowrap;border-bottom:1px solid var(--line)}.collection-table td{padding:12px 14px;border-bottom:1px solid var(--line);font-size:12px;color:var(--soft-text);vertical-align:middle}.collection-table tr:last-child td{border-bottom:0}.collection-table tbody tr:active{background:var(--accent-wash)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.collection-table tbody tr:hover{background:var(--accent-wash)}}.record-identity{min-width:170px;max-width:390px}.record-identity>strong{display:block;color:var(--text);font-size:13px;font-weight:500;line-height:1.5;overflow-wrap:anywhere}.record-identity>small{display:block;color:var(--muted);font-size:12px;line-height:1.7;margin-top:3px;overflow-wrap:anywhere}.record-actions{display:flex;align-items:center;gap:5px;flex-wrap:nowrap}.record-actions .button{font-size:12px;padding:6px 8px;gap:4px;line-height:1.5}.record-actions .button.quiet{color:var(--muted);border-color:transparent}.record-actions .button.quiet:active{color:var(--text);background:var(--hover)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.record-actions .button.quiet:hover{color:var(--text);background:var(--hover)}}.record-progress{display:flex;align-items:center;gap:9px;min-width:120px}.record-progress>div{width:72px;height:3px;background:var(--line);overflow:hidden;border-radius:4px}.record-progress>div>span{display:block;height:100%;background:var(--accent-fill);border-radius:4px}.record-progress>small{font-size:12px;color:var(--muted);white-space:nowrap}.record-updated{font-family:var(--mono);font-size:12px!important;white-space:nowrap}.record-date{font-size:12px!important;color:var(--muted)!important;white-space:nowrap;font-family:var(--mono)}.record-date small{font-family:inherit;display:block;font-size:12px;margin-top:5px;color:var(--muted)}.collection-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.record-card{padding:15px;display:flex;flex-direction:column;gap:12px;min-width:0}.record-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.record-card-heading>small{font-family:var(--mono);font-size:12px;color:var(--muted)}.record-card .record-identity{min-width:0;max-width:none}.record-card .record-identity>strong{font-size:14px}.record-card .record-identity>small{font-size:12px}.record-card-progress{display:flex;align-items:center;justify-content:space-between;gap:7px}.record-card-progress>strong{font-size:12px;font-weight:500}.record-card .record-actions{padding-top:10px;border-top:1px solid var(--line);margin-top:auto}.record-card .record-progress{min-width:0;gap:7px}.record-card .record-progress>div{width:58px}.record-card .record-date{white-space:normal;font-size:12px!important;line-height:1.7}.record-metrics{display:grid;grid-template-columns:1.2fr 1fr .6fr;gap:9px}.record-metrics small{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.record-metrics strong{font-size:12px;font-family:var(--mono);font-weight:500;color:var(--text)}.collection-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:15px 1px;color:var(--muted);font-size:12px}.page-controls{display:flex;align-items:center;gap:4px}.page-controls button{min-width:28px;height:28px;border-radius:6px;border:1px solid transparent;color:var(--muted);font-size:12px}.page-controls button:active:not(:disabled){background:var(--hover);color:var(--text)}@media(min-width:821px) and (hover:hover) and (pointer:fine){.page-controls button:hover:not(:disabled){background:var(--hover);color:var(--text)}}.page-controls button[aria-current=page]{background:var(--active);border-color:var(--line-strong);color:var(--text)}.page-controls button:disabled{opacity:1}.page-gap{padding:0 4px}.collection-pagination>label{display:flex;align-items:center;gap:6px;white-space:nowrap}.collection-pagination select{padding:4px 7px;font-size:12px}.collection-empty{padding:45px 20px;text-align:center;border:1px dashed var(--line);border-radius:10px;color:var(--muted)}.collection-empty strong{display:block;font-size:13px;color:var(--soft-text);font-weight:500;margin-bottom:9px}.collection-empty span{font-size:12px}.library-note{border-top:1px solid var(--line);padding:13px 0 5px;color:var(--muted);font-size:12px;line-height:1.8;margin-top:2px}.library-page .statistics-grid{gap:10px;margin:0 0 11px}.library-page .stat-card{padding:13px 15px}.library-page .stat-card strong{font-size:22px;margin:7px 0}.library-page .stat-card>small{font-size:12px}.library-page .stat-card>span{font-size:12px}.compact-mode-summary{padding:0;margin:0 0 17px;border-radius:9px;background:transparent}.compact-mode-summary>summary{display:flex;align-items:center;gap:12px;cursor:pointer;padding:12px 15px;font-size:12px;color:var(--soft-text);list-style:none}.compact-mode-summary>summary::-webkit-details-marker{display:none}.compact-mode-summary>summary>span{font-size:12px;color:var(--muted);margin-left:auto}.compact-mode-summary>summary:after{content:'＋';font-size:12px;color:var(--muted)}.compact-mode-summary[open]>summary:after{content:'−'}.compact-mode-summary>.mode-comparison{padding:0 16px;margin:7px 0 16px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:15px}.compact-mode-summary>.quiet-note{padding:0 16px 13px;margin:0;font-size:12px}.compact-mode-summary .mode-comparison strong{font-size:15px}.compact-mode-summary .mode-comparison b{font-size:12px}.compact-mode-summary .mode-comparison span{font-size:12px}
@media(max-width:1499px){.collection-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1059px){.collection-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-layout{margin-left:0}.collection-toolbar>input{max-width:none}.collection-table th,.collection-table td{padding:11px 12px}.collection-result-heading>small{font-size:12px}}
@media(max-width:620px){.library-page-header{align-items:start;gap:12px;flex-wrap:wrap}.library-page-header h2{font-size:21px}.library-page-header p{font-size:12px}.collection-toolbar{gap:7px}.collection-toolbar>input{flex-basis:100%;height:35px}.collection-toolbar>select{font-size:12px;flex:1 1 29%;min-width:0}.collection-layout{margin-left:auto}.collection-cards{grid-template-columns:1fr}.record-card{padding:14px}.collection-result-heading{flex-wrap:wrap;gap:8px}.collection-result-heading>small{margin:0;flex-basis:100%}.collection-pagination{gap:11px;justify-content:space-between}.page-controls{order:3;width:100%;justify-content:center}.library-page .stat-card{padding:12px}.library-page .stat-card strong{font-size:19px}.library-page .stat-card>span{line-height:1.7;display:block}.compact-mode-summary>summary{padding:11px 12px}.compact-mode-summary>summary>span{font-size:12px}.collection-table{min-width:810px}.library-note{font-size:12px}}

/* Keep browser-default small text readable as well as explicit UI labels. */
small{font-size:max(12px,.833333em)}
.brand small,.sidebar-tip .tiny{letter-spacing:.35px}
@media(max-width:520px){
  .nav button.active{box-shadow:inset 0 -3px 0 var(--accent)}
  .replay-controls{flex-wrap:wrap;row-gap:8px}
  .replay-controls select{flex:0 0 108px;min-width:108px}
  .replay-controls>.button.quiet{margin-left:auto}
}

/* Fixed A-share action colors stay distinct across custom themes, including disabled states. */
.trade-button{background:var(--buy-bg,#d2393e);border-color:var(--up,#db3c41);color:#fff;font-weight:600}
.trade-button.sell{background:var(--sell-bg,#208450);border-color:var(--down,#2cab6a);color:#fff}
.trade-button:active:not(:disabled){filter:brightness(1.08)}@media(min-width:821px) and (hover:hover) and (pointer:fine){
.trade-button:hover:not(:disabled){filter:brightness(1.08)}}
.trade-button:disabled{opacity:.65;filter:none}

/* Plain typography keeps the practice message distinct from navigation. */
.sidebar-tip{padding:4px 13px 15px;background:transparent;border:0;border-radius:0}
.sidebar-tip-title{display:block;color:var(--text);font-size:18px;font-weight:650;line-height:1.55;letter-spacing:.3px}
.sidebar-tip-title span{color:var(--text)}
.sidebar-tip p{margin-top:12px;font-size:13px;line-height:1.8;color:var(--soft-text)}

/* Keep feedback near the top of the viewport, clear of device safe areas. */
#toast{top:max(24px,calc(env(safe-area-inset-top,0px) + 16px));bottom:auto;transform:translate(-50%,-12px);z-index:1000;width:max-content;max-width:min(620px,calc(100vw - 32px));font-size:14px;overflow-wrap:anywhere}
#toast.visible{transform:translate(-50%,0)}
/* Give price, volume and MACD enough room without widening the workspace. */
@media(min-width:1060px) and (min-height:680px){
  .is-training .chart-column{grid-template-rows:minmax(0,1fr) clamp(240px,28dvh,340px)}
}
@media(min-width:1060px) and (min-height:680px) and (max-height:840px){
  .is-training .chart-column{grid-template-rows:minmax(0,1fr) 170px}
  .is-training .market-panel{overflow-y:auto}
  .is-training .market-canvas{min-height:210px;flex-shrink:0}
}
@media(max-width:1059px),(max-height:679px){
  .market-canvas{height:280px}
  .is-training .market-canvas{min-height:280px}
}
.market-heading{flex-wrap:wrap}
.market-controls{display:flex;align-items:center;gap:6px;margin-left:auto}
.market-indicator-toggles{display:flex;align-items:center;gap:4px}
.market-indicator-toggles button{font-size:12px;line-height:1.3;padding:4px 6px;border:1px solid var(--line);border-radius:5px;color:var(--muted);white-space:nowrap}
.market-indicator-toggles button[aria-pressed=true]{background:var(--active);border-color:var(--line-strong);color:var(--text)}
.market-indicator-toggles button:active{border-color:var(--accent);color:var(--text)}@media(min-width:821px) and (hover:hover) and (pointer:fine){
.market-indicator-toggles button:hover{border-color:var(--accent);color:var(--text)}}

/* Keep the active underline inside the tab bar; scroll only horizontally. */
.tabs{overflow-x:auto;overflow-y:hidden;flex-shrink:0;align-items:stretch}
.tabs button{height:auto;min-height:0;align-self:stretch;flex-shrink:0}
.tabs button.active:after{bottom:0}
.market-content{display:flex;flex-direction:column;flex:1;min-height:0}
.market-content[hidden]{display:none}
.market-collapse{display:none}
@media(max-width:820px){
  .lower-grid{grid-template-columns:1fr}
  .market-collapse{display:inline-flex;order:1;margin-left:auto;padding:4px 8px}
  .market-heading>div:first-child{order:0}
  .market-controls{order:2;flex-basis:100%;justify-content:flex-end;margin-left:0}
  .market-panel.is-collapsed .market-controls,.market-panel.is-collapsed #market-index{display:none}
  .market-panel.is-collapsed .market-heading{padding-bottom:10px}
  input:not([type=checkbox]):not([type=radio]),textarea{font-size:16px!important}
  #reason::placeholder{font-size:12px}
  .replay-controls select{flex-basis:140px;min-width:140px;max-width:160px}
}
#mobile-select-dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;max-height:80dvh;padding:0;border:1px solid var(--line-strong);border-radius:16px 16px 0 0;background:var(--panel);color:var(--text);overflow:hidden}
#mobile-select-dialog::backdrop{background:#0008}
.select-sheet{display:flex;flex-direction:column;max-height:calc(80dvh - 2px)}
.select-sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);flex-shrink:0}
.select-sheet-heading h2{font-size:14px;font-weight:600;line-height:1.5;margin:0}
.select-sheet-heading button{font-size:24px;width:40px;height:40px;border-radius:6px;color:var(--soft-text)}
.select-sheet-options{padding:8px 12px calc(12px + env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;min-height:0}
.select-sheet-options button{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;width:100%;min-height:46px;padding:10px 12px;border-radius:7px;font-size:14px;line-height:1.5}
.select-sheet-options button[aria-selected=true]{background:var(--active);color:var(--text)}
.select-sheet-options button[aria-selected=true]:after{content:'✓';color:var(--soft-text)}
.select-sheet-options button:active:not(:disabled){background:var(--hover)}@media(min-width:821px) and (hover:hover) and (pointer:fine){
.select-sheet-options button:hover:not(:disabled){background:var(--hover)}}
.select-sheet-group{font-size:14px;color:var(--muted);padding:8px 12px}

.market-ma-settings{padding:4px 6px;font-size:12px;gap:4px}
.market-ma-settings .icon{width:14px;height:14px}
.market-ma-legend{display:flex;flex-wrap:wrap;gap:4px 12px;padding:3px 10px 0;font:12px/1.5 var(--mono);flex-shrink:0}
.market-ma-legend span{white-space:nowrap}
.market-ma-legend[hidden]{display:none}
/* Only the middle region scrolls; title, close and actions stay in the frame. */
#dialog{max-height:calc(100dvh - 28px);overflow:hidden}
#dialog-body{display:flex;flex-direction:column;max-height:calc(100dvh - 30px);min-height:0;overflow:hidden}
#dialog .dialog-inner{display:flex;flex-direction:column;max-height:calc(100dvh - 30px);min-height:0;margin:0;padding:0;overflow:hidden}
#dialog .dialog-heading{flex:none;min-height:72px;margin:0;padding:22px 68px 18px 28px;border-bottom:1px solid var(--line)}
#dialog .dialog-content{flex:1 1 auto;min-height:0;padding:20px 28px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#dialog .dialog-actions{flex:none;flex-wrap:wrap;margin:0;padding:16px 28px;border-top:1px solid var(--line);background:var(--panel)}
#dialog>.dialog-close{position:absolute;top:18px;right:20px;z-index:2;display:grid;place-items:center;width:36px;height:36px;padding:0;border-radius:7px;background:var(--panel);color:var(--muted);font-size:24px;line-height:1}
#dialog>.dialog-close:active{background:var(--hover);color:var(--text)}@media(min-width:821px) and (hover:hover) and (pointer:fine){
#dialog>.dialog-close:hover{background:var(--hover);color:var(--text)}}
@media(max-width:700px){
  #dialog .dialog-heading{min-height:68px;padding:18px 60px 16px 20px}
  #dialog .dialog-content{padding:18px 20px}
  #dialog .dialog-actions{padding:12px 20px}
  #dialog>.dialog-close{top:14px;right:12px;width:40px;height:40px}
}
/* Keep account controls together at the foot of the sidebar. */
.sidebar-footer{margin-top:auto;flex-shrink:0;min-width:0}
.sidebar-footer>.sidebar-theme{margin-top:0}
.sidebar-footer>.sidebar-bottom{padding-bottom:8px}
.sidebar-account{border-top:1px solid var(--line);padding-top:6px;min-width:0}
@media(max-width:520px){.sidebar{display:flex;flex-direction:row;align-items:center;padding-inline:2px}.sidebar-footer{display:contents}.sidebar-account{flex:0 0 44px;border-top:0;padding:0}.sidebar>.nav{flex:1;min-width:0;gap:0}.sidebar>.nav>button{flex:1 1 0;min-width:0;padding-inline:0}}

/* Give the candle chart the space saved by compact quote and replay rows. */
.stock-panel>.instrument-bar{padding:7px 12px;align-items:center;flex-wrap:wrap}
.instrument-summary{display:flex;align-items:center;flex-wrap:wrap;gap:3px 18px}
.instrument-summary .instrument-name{gap:7px;min-width:0}
.instrument-summary .quote-row{margin:0;gap:10px;flex-wrap:wrap}
.instrument-summary .last-price{font-size:22px;line-height:1.3}
.instrument-summary .quote-ohcl{flex-basis:100%;margin:0;gap:4px 12px;line-height:1.5}
.stock-panel>.replay-bar{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:7px 10px 9px}
.replay-bar>.progress-header{flex:none;min-width:0;margin:0;line-height:1.5}
.replay-bar>.progress-header>span{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.replay-bar>.progress-track{position:absolute;bottom:0;left:0;right:0;height:2px;margin:0;border-radius:0}
.replay-bar>.replay-controls{flex:1 1 auto;justify-content:flex-end;flex-wrap:wrap;gap:6px;margin:0}
.replay-bar .replay-center{flex:none}
@media(max-width:520px){
  .stock-panel>.instrument-bar{padding:7px 10px}
  .instrument-summary{gap:4px 7px}
  .instrument-summary .instrument-name{order:0}
  .instrument-summary>.instrument-source{order:1}
  .instrument-summary .quote-row{order:2}
  .instrument-summary .quote-ohcl{order:3}
  .instrument-summary .quote-ohcl{gap:4px 10px}
  .stock-panel>.replay-bar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 8px}
  .replay-bar>.progress-header{grid-column:1;grid-row:1}
  .replay-bar>.replay-controls{display:contents}
  .replay-bar #speed{grid-column:1;grid-row:2;min-width:0;max-width:112px;width:100%;padding:5px 6px}
  .replay-bar .replay-center{grid-column:2;grid-row:2;justify-self:end;gap:4px}
  .replay-bar .replay-controls>.button.quiet{grid-column:2;grid-row:1;justify-self:end;margin:0;padding:4px}
}
@media(max-width:360px){
  .replay-bar>.progress-header{grid-column:1/-1}
  .replay-bar #speed{grid-row:2;max-width:120px}
  .replay-bar .replay-controls>.button.quiet{grid-row:2}
  .replay-bar .replay-center{grid-column:1/-1;grid-row:3;justify-self:stretch;justify-content:center}
}

/* Neutral presets complement the four original appearances. */
.theme-presets{grid-template-columns:repeat(3,minmax(0,1fr))}
.button.primary,.session-actions .button.primary,.replay-center .button.next,.theme-preview-primary{color:var(--primary-text,#fff)}
[data-theme=light] .theme-preset .preset-swatch i{background:#5f64734d}[data-theme=light] .theme-preset .preset-swatch b{background:#5f64732e}
[data-theme=light] :is(.segmented button,.chart-tools .button,.market-heading select,.market-quote small,.market-empty,.market-empty small,.empty-state,.empty-state p,.empty-state small,.loading-screen,.data-facts small,.data-facts span,.shortcut,.progress-header,.journal-entry small,.review-details summary){color:var(--muted)}
[data-theme=light] .segmented button.selected{background:var(--active);color:var(--text)}
[data-theme=light] :is(.chart-hover-card,.chart-hover-card strong,.chart-hover-grid b,.market-quote,.market-quote strong,.review-score strong,.data-facts strong){color:var(--text)}
[data-theme=light] .chart-hover-card{background:var(--panel);border-color:var(--line-strong);box-shadow:0 8px 24px #0001}
[data-theme=light] :is(.chart-hover-grid span,.sample-form-rule small,.review-training p,.sample-rule p,.sample-rule summary){color:var(--muted)!important}
[data-theme=light] .tag.teal{background:#e8f4ed;border-color:#b6d9c6;color:#246749}[data-theme=light] .tag.amber{background:#fbf2e1;border-color:#e2cda2;color:#805e1f}
[data-theme=light] .form-error{color:#ab3046}
[data-theme=light] :is(.review-spark,.review-details,.process-summary span,.shortcut){background:var(--surface);border-color:var(--line);color:var(--soft-text)}
[data-theme=light] #practice-access-gate{background:var(--panel);color:var(--text);border-color:#c5b28a;box-shadow:0 24px 80px #0003}
[data-theme=light] #practice-access-gate :is(header,footer,.access-benefits){border-color:var(--line)}
[data-theme=light] #practice-access-gate :is(.access-message,.access-benefits,.access-close,.access-secondary){color:var(--soft-text)}
[data-theme=light] #practice-access-gate :is(.access-note,.access-kicker){color:var(--muted)}
[data-theme=light] #practice-access-gate .access-close:active{background:var(--hover)}@media(min-width:821px) and (hover:hover) and (pointer:fine){
[data-theme=light] #practice-access-gate .access-close:hover{background:var(--hover)}}
@media(max-width:520px){.theme-presets{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Animate feedback entry without interpolating colors during appearance changes. */
#toast{transition:opacity .2s,transform .2s}

/* Brand candles keep clear red, blue and green colors in every appearance. */
.sidebar .brand-symbol i:nth-child(1){background:var(--up)}
.sidebar .brand-symbol i:nth-child(2){background:var(--brand-blue,#65abff)}
.sidebar .brand-symbol i:nth-child(3){background:var(--down)}
.sidebar .brand strong{color:var(--brand-blue,#65abff);font-weight:700}
.sidebar .brand small{color:var(--soft-text)}

/* Readable text and control states share the current theme's surfaces. */
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.check-row,.pending-note,.journal-entry>div,.review-training{color:var(--soft-text)}
.pending-note{border-color:var(--line-strong);background:var(--surface)}
.pending-note button{color:var(--warning-text)}
.review-score>div{background:var(--field-bg);border-color:var(--line)}
.data-table td{color:var(--soft-text)}
.catalog-container button,a{color:var(--accent-text,var(--blue))}
.nav button:active{color:var(--text)}@media(min-width:821px) and (hover:hover) and (pointer:fine){
.nav button:hover{color:var(--text)}}
.segmented button:active,.chart-tools .button:active{color:var(--text)}@media(min-width:821px) and (hover:hover) and (pointer:fine){
.segmented button:hover,.chart-tools .button:hover{color:var(--text)}}
.segmented button.selected,.chart-tools .button.selected,.chart-tools .button[aria-pressed=true]{color:var(--text)}
.button.danger{color:var(--danger-text);background:var(--surface);border-color:var(--danger-text)}
.form-error{color:var(--danger-text)}
.discipline-alert{background:var(--surface);color:var(--warning-text);border-color:var(--warning-text)}
.discipline-alert small{color:var(--soft-text)}
.tone-red .mode-glyph,.training-card.tone-red .card-kicker{color:var(--tone-red)}
.tone-green .mode-glyph,.training-card.tone-green .card-kicker{color:var(--tone-green)}
.tone-purple .mode-glyph,.training-card.tone-purple .card-kicker{color:var(--tone-purple)}
.tone-teal .mode-glyph,.training-card.tone-teal .card-kicker{color:var(--tone-teal)}
[data-theme=light] .chart-tools .button:is(.selected,[aria-pressed=true]){color:var(--text)}
/* Hover keeps the primary button's validated foreground/background pair. */
.button.primary:active,.replay-center .button.next:active,.trade-button:active:not(:disabled){filter:none;box-shadow:inset 0 0 0 1px currentColor}@media(min-width:821px) and (hover:hover) and (pointer:fine){
/* Hover keeps the primary button's validated foreground/background pair. */
.button.primary:hover,.replay-center .button.next:hover,.trade-button:hover:not(:disabled){filter:none;box-shadow:inset 0 0 0 1px currentColor}}
button:disabled,input:disabled,select:disabled,textarea:disabled,.trade-button:disabled{opacity:1;color:var(--muted);background:var(--surface);border-color:var(--line);box-shadow:none;filter:none}
button:disabled{border-style:dashed}

/* A compact multi-select with independent, readable indicator panels. */
.indicator-trigger{max-width:270px;min-width:0;padding:5px 7px;gap:7px}
.indicator-selection{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.indicator-count{color:var(--muted);font-size:12px;flex:none}
.indicator-picker{position:fixed;inset:auto;margin:0;padding:0;width:min(350px,calc(100vw - 16px));max-height:calc(100dvh - 16px);border:1px solid var(--line-strong);border-radius:10px;background:var(--panel);color:var(--text);box-shadow:0 12px 40px #0004;overflow:hidden}
.indicator-picker:popover-open{display:flex;flex-direction:column}
.indicator-picker header,.indicator-picker footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;flex:none}
.indicator-picker header{border-bottom:1px solid var(--line)}
.indicator-picker h3{font-size:14px;margin:0}.indicator-picker-count{font-size:12px;color:var(--muted)}
.indicator-options{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:8px;overflow:auto;min-height:0;overscroll-behavior:contain}
.indicator-options label{display:flex;align-items:center;gap:9px;padding:10px 8px;border-radius:6px;font-size:12px;color:var(--soft-text);cursor:pointer}
.indicator-options label:active{background:var(--hover)}@media(min-width:821px) and (hover:hover) and (pointer:fine){
.indicator-options label:hover{background:var(--hover)}}.indicator-options label:has(:checked){background:var(--active);color:var(--text)}
.indicator-options input{accent-color:var(--accent);width:15px;height:15px;min-width:15px;margin:0;padding:0}
.indicator-options label:has(:disabled){color:var(--muted);cursor:not-allowed}
.indicator-picker footer{border-top:1px solid var(--line)}.indicator-picker-hint{font-size:12px;line-height:1.6;color:var(--muted)}
.shell.is-training.has-multiple-indicators{height:auto;min-height:100dvh;overflow:visible}
.is-training.has-multiple-indicators .workspace,.is-training.has-multiple-indicators .main-content{height:auto}
.is-training.has-multiple-indicators .work-grid{flex:none}
.is-training.has-multiple-indicators .chart-column{grid-template-rows:auto clamp(240px,28dvh,340px)}
.is-training.has-multiple-indicators .chart-wrap{height:calc(380px + (var(--sub-count) - 1)*90px);flex:none;min-height:0}
.is-training.has-multiple-indicators .sidebar-cards{overflow:visible}
@media(max-width:820px){.indicator-trigger{max-width:160px}.chart-toolbar>.segmented{flex-wrap:wrap}.is-training.has-multiple-indicators .chart-wrap{height:calc(350px + (var(--sub-count) - 1)*90px)}}

/* Definite heights avoid canvas intrinsic-size feedback while filling the viewport. */
@media(min-width:1060px) and (min-height:680px){
  .is-training.has-multiple-indicators .workspace{height:max(100dvh,calc(900px + var(--sub-count)*90px));min-height:0}
  .is-training.has-multiple-indicators .main-content{height:100%;min-height:0;flex:1}
  .is-training.has-multiple-indicators .work-grid{flex:1;min-height:0}
  .is-training.has-multiple-indicators .chart-column{grid-template-rows:minmax(0,1fr) clamp(240px,28dvh,340px);min-height:0}
  .is-training.has-multiple-indicators .chart-wrap{height:auto;flex:1;min-height:0}
  .is-training.has-multiple-indicators .sidebar-cards{overflow:auto}
}

/* Warm numeric highlights remain legible across every appearance. */
.position-summary .position-value{color:var(--warning-text);font-weight:650}

/* Pointer feedback ends on release; keyboard focus and selected values remain visible. */
@media(max-width:820px),(hover:none),(pointer:coarse){
  button,a,summary,label{-webkit-tap-highlight-color:transparent;transition:none}
  button:not(:disabled):active,a:active{filter:brightness(.94)}
  button:focus:not(:focus-visible),a:focus:not(:focus-visible),summary:focus:not(:focus-visible){outline:none}
}

#discipline-form .discipline-mode-row{display:flex;align-items:center;justify-content:space-between;gap:12px}#discipline-form .discipline-mode-row label{margin:0}#discipline-form .discipline-mode-row select{width:150px;max-width:55%;margin:0}
.market-canvas canvas{touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}.market-canvas canvas:active{cursor:grabbing}
.new-rule-compact{display:none}#new-form .field-optional{color:var(--muted);font-weight:400}#new-form .form-field{min-width:0}#new-form .new-date-hint{margin-top:-9px}#new-form .new-date-hint small{margin:0}

/* Native date controls must use the same outer box as the other fields. */
#new-form{--new-control-height:38px}
#new-form .form-field>label:not(.check-row){display:flex;align-items:baseline;min-height:20px;line-height:20px}
#new-form .form-field :is(input:not([type=checkbox]),select){display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;height:var(--new-control-height);margin:0;padding:0 11px;line-height:20px}
#new-form input[type=date]{appearance:none;-webkit-appearance:none;text-align:left;font-family:inherit}
#new-form input[type=date]::-webkit-date-and-time-value{text-align:left;line-height:calc(var(--new-control-height) - 2px);min-height:calc(var(--new-control-height) - 2px)}
#new-form input[type=date]::-webkit-datetime-edit{padding:0}
