@font-face{font-family:Prisme;src:local("Inter"),local("Segoe UI Variable"),local("Segoe UI");font-display:swap}
:root{color-scheme:dark;--bg:#090d0e;--surface:#0e1415;--line:#202a2a;--muted:#82918c;--ink:#e4e8df;--mint:#88c8b1;--gold:#d2bc88;--font:Prisme,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:13px;-webkit-font-smoothing:antialiased}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit;background:none;border:0}button:disabled{opacity:.4;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,#chart-stage:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:hover{color:#fff}a{color:inherit;text-decoration:none}button{transition:background .14s,color .14s}svg{display:block}button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.topbar{height:76px;display:flex;align-items:center;padding:0 38px;border-bottom:1px solid var(--line);gap:66px}.brand{display:flex;align-items:center;gap:13px;font-size:29px;font-weight:550;letter-spacing:-1.7px}.brand svg{width:31px;height:31px;color:var(--gold)}.brand-dot{color:var(--gold)}nav{display:flex;align-self:stretch;gap:30px;align-items:center;color:var(--muted);font-size:12px}nav>span,nav>button{height:100%;display:flex;align-items:center;gap:13px;position:relative;padding:0}nav .nav-active{color:var(--ink)}.nav-active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold)}.tiny-arrow{color:#71847c}.top-right{margin-left:auto;display:flex;align-items:center;gap:20px}.local-badge{font-size:9px;letter-spacing:1.5px;display:flex;align-items:center;gap:7px;color:var(--mint)}.local-badge i,.chart-status i{width:5px;height:5px;display:inline-block;border-radius:50%;background:var(--mint)}.version{color:#72807b;font-size:11px}.help-button{width:27px;height:27px;border:1px solid #33403b;border-radius:50%;color:var(--muted);font-family:var(--mono);font-size:12px}
main{max-width:1880px;margin:0 auto;padding:34px 38px 0}.market-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;gap:16px}.eyebrow{font-size:9px;letter-spacing:2.3px;color:#92a199;font-weight:500;margin-bottom:16px}.market-title{display:flex;align-items:center;gap:13px}.bitcoin{display:grid;place-items:center;width:37px;height:37px;border:1px solid #76633c;background:#2d281a;color:#e0c183;border-radius:50%;font-size:25px;font-family:Arial;font-weight:normal}h1{margin:0;font-size:34px;letter-spacing:-1.3px;font-weight:480}.pair{font-size:12px;color:#99a59f;margin-left:8px}.spot{border:1px solid #303b34;border-radius:4px;padding:4px 6px;font-size:8px;letter-spacing:1px;color:#a7b4a4}.market-price{text-align:right}.price-line{display:flex;align-items:baseline;justify-content:flex-end;gap:9px}.price{font-size:35px;letter-spacing:-1.5px;font-weight:440;font-variant-numeric:tabular-nums}.currency{font-size:12px;color:#82928a}.price-caption{display:flex;align-items:center;gap:9px;margin-top:10px;font-size:10px;color:var(--muted)}.change{font:11px var(--mono);color:var(--mint);background:#14251f;border:1px solid #24382f;border-radius:3px;padding:3px 5px}.change.negative{color:#e59488;background:#2b1e1c;border-color:#4a2b25}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#0a0e0f}.chart-workspace{min-width:0}.chart-toolbar{height:57px;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--line);gap:18px;background:#0e1314}.periods{display:flex;gap:7px;align-items:center}.periods button{font-size:11px;color:#95a29c;padding:7px 10px;border-radius:4px;min-width:39px}.periods button.active{background:#2d2b21;color:#d9c697}.periods button:hover{background:#202925}.toolbar-separator{width:1px;height:19px;background:var(--line)}.chart-style{display:flex;gap:8px}.chart-style button{padding:6px;color:#788a83;border-radius:3px}.chart-style button.active{background:#1e2a25;color:#b9c9bd}.chart-style svg{width:17px;height:17px}.toolbar-end{margin-left:auto;display:flex;align-items:center;gap:8px;color:#adbaa9;font-size:10px}.history-dot{width:5px;height:5px;border-radius:50%;background:var(--gold)}.source-name{color:#75887d;border-left:1px solid #2b3730;margin-left:5px;padding-left:14px}
.chart-body{display:flex;height:clamp(430px,calc(100vh - 350px),780px);min-height:430px}.drawing-tools{width:54px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:12px;padding:19px 0 13px;border-right:1px solid var(--line);background:#0c1112}.drawing-tools button{color:#84958a;width:34px;height:34px;border-radius:5px;display:grid;place-items:center}.drawing-tools button:hover{background:#202b25}.drawing-tools button.chosen{background:#2c2b20;color:var(--gold)}.tool-divider{height:1px;width:23px;background:#29362d;margin:1px 0}.tool-space{flex:1}.chart-content{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;position:relative}.chart-legend{height:35px;display:flex;gap:9px;align-items:center;padding:10px 20px 0;font:10px var(--mono);color:#8f9e94;white-space:nowrap}.series-name{color:#d1dacd;font-weight:600}.legend-dot{color:#4e6355}.ohlc{display:flex;gap:13px;margin-left:8px;font-size:9px;color:#687d70}.ohlc b{font-weight:normal;color:#b0bdb2}.indicator-legend{display:flex;gap:22px;height:29px;align-items:center;padding:0 20px;font:9px var(--mono);color:#cfbb87}.indicator-legend>span{display:flex;gap:7px;align-items:center}.ema-line{height:1px;width:12px;background:#cfbb87}.volume-legend{color:#728b7b}#chart-stage{position:relative;flex:1;min-height:200px;outline-offset:-3px;cursor:crosshair;touch-action:none}#chart-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#chart-stage canvas[hidden]{display:none}#chart-stage.level-mode{cursor:crosshair}#chart-overlay{z-index:1}.chart-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:3;background:#0a0e0f;color:var(--muted)}.loading-mark{font-size:40px;color:var(--gold);margin-bottom:10px}.chart-loading small{font-size:10px;color:#668073}.chart-bottom{height:37px;border-top:1px solid #1c2822;display:flex;align-items:center;justify-content:space-between;padding:0 13px 0 20px;color:#7e9183;font:9px var(--mono);gap:8px}.chart-bottom>div{display:flex;align-items:center;gap:7px}.chart-bottom button{font-size:10px;color:#7f9284;padding:4px 5px}.chart-bottom button.active{color:var(--gold)}.bottom-divider{height:11px;width:1px;background:#2a382d}.chart-status{height:36px;border-top:1px solid var(--line);display:flex;align-items:center;gap:22px;padding:0 17px;color:#809488;font-size:9px;background:#0d1312}.chart-status>span:first-child{display:flex;align-items:center;gap:6px;color:#a7c2ad}.status-muted{color:#63836e}.gesture-hint{margin-left:auto;color:#697e70}
.inspector{border-left:1px solid var(--line);background:#101617;display:flex;flex-direction:column;min-width:0}.inspector-heading{height:57px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 21px;font-size:11px;letter-spacing:.1px}.inspector-icon{color:#c8bb91;font-size:19px}.inspector-section{padding:24px 21px;border-bottom:1px solid var(--line)}.section-label{font-size:8px;font-weight:600;letter-spacing:1.3px;color:#819889;margin-bottom:18px}.market-stats{margin:0;display:flex;flex-direction:column;gap:18px}.market-stats>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.market-stats dt{font-size:11px;color:#93a597}.market-stats dd{margin:0;font:11px var(--mono);color:#ced9c9}.market-stats dd small{font:8px var(--font);color:#69826f}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-heading h2{font-size:12px;font-weight:500;margin:0}.section-heading>span{font:9px var(--mono);color:#637d69}.indicator-row{display:flex;gap:10px;align-items:center;position:relative;cursor:pointer}.indicator-row+.indicator-row{margin-top:20px}.indicator-icon{display:grid;place-items:center;width:30px;height:32px;border-radius:5px;font-size:19px;flex-shrink:0}.indicator-icon.amber{background:#29281e;color:#c8b480}.indicator-icon.mint{background:#192a22;color:#96bfa3}.indicator-row strong{font-size:10px;font-weight:500;display:block}.indicator-row small{display:block;font-size:9px;color:#7e9382;margin-top:5px}.indicator-row input{position:absolute;right:0;opacity:0;width:30px;height:20px;margin:0}.toggle{width:27px;height:15px;background:#334336;border-radius:10px;position:relative;margin-left:auto;flex-shrink:0;pointer-events:none}.toggle:after{content:"";position:absolute;width:9px;height:9px;background:#819483;border-radius:50%;top:3px;left:3px;transition:transform .15s}.indicator-row input:checked+.toggle{background:#c4b280}.indicator-row input:checked+.toggle:after{background:#1d251b;transform:translateX(12px)}.indicator-row input:focus-visible+.toggle{outline:2px solid var(--gold);outline-offset:4px}.source-title{display:flex;gap:10px;align-items:center}.source-symbol{width:26px;height:27px;background:#1d2a26;border-radius:4px;color:#b1c5b5;display:grid;place-items:center;font-size:13px;font-weight:600}.source-title strong{display:block;font-size:11px;font-weight:500}.source-title small{display:block;font-size:9px;color:#819786;margin-top:5px}.source-section p{font-size:10px;line-height:1.8;color:#8aa18f;margin:16px 0}.source-details{margin:0}.source-details div+div{margin-top:12px}.source-details dt{font-size:9px;color:#65836f;margin-bottom:5px}.source-details dd{margin:0;font:9px var(--mono);color:#a4b8a4}.text-link{display:flex;justify-content:space-between;width:100%;padding:18px 0 0;color:#c4b788;font-size:10px}.inspector-note{position:relative;overflow:hidden;padding:21px;min-height:97px;flex:1;background:linear-gradient(130deg,#162019,#121818)}.inspector-note>span{font-size:7px;letter-spacing:1.4px;color:#8ea08a}.inspector-note p{font-size:12px;line-height:1.65;color:#bec9ae;margin:9px 0 0;position:relative;z-index:1}.inspector-note svg{position:absolute;width:104px;bottom:-3px;right:-15px;stroke:#6b7150;stroke-width:.7;fill:none;opacity:.55}.page-footer{display:flex;justify-content:space-between;align-items:center;padding:20px 0;color:#708171;font-size:9px}.page-footer>span:first-child{font-size:8px;letter-spacing:1.7px;color:#94a58d}.page-footer>span:nth-child(2){color:#647c69;font-size:10px}.page-footer button{font-size:9px;color:#8fa387}
.modal-backdrop{position:fixed;inset:0;background:#040807c9;backdrop-filter:blur(8px);z-index:20;display:grid;place-items:center;padding:20px}.modal{position:relative;border:1px solid #3c4939;border-radius:12px;background:#141d18;max-width:560px;padding:40px;color:#ced6c4;max-height:90vh;overflow:auto}.modal-close{position:absolute;right:17px;top:13px;color:#a2b596;font-size:26px}.modal h2{font-size:31px;line-height:1.2;letter-spacing:-1px;font-weight:450;margin:18px 0 24px}.modal p{font-size:12px;line-height:1.8;color:#9eaf97}.modal-detail{border-top:1px solid #35422f;border-bottom:1px solid #35422f;padding:17px 0;margin:22px 0;display:flex;flex-direction:column;gap:9px;font-size:9px}.modal-detail strong{font:10px var(--mono);font-weight:normal;margin-bottom:8px}.modal-detail code{font-size:9px;overflow-wrap:anywhere}.modal .small-note{font-size:10px}.primary-button{background:#c8b686;color:#182113;border-radius:5px;padding:12px 15px;display:flex;justify-content:space-between;width:100%;margin-top:23px;font-size:11px}.primary-button:hover{background:#dbca99;color:#182113}.startup-error{margin:60px;font-size:16px;color:#d6b894}
@media(min-height:950px){.inspector-section{padding-top:28px;padding-bottom:28px}.inspector-note{padding-top:26px}}
@media(max-width:1150px){.workspace{grid-template-columns:minmax(0,1fr) 245px}main{padding:28px 22px 0}.topbar{padding:0 22px;gap:40px}.ohlc{gap:8px;font-size:8px}.ohlc>span:nth-child(2),.ohlc>span:nth-child(3){display:none}.inspector-section{padding:20px 16px}.inspector-heading{padding:0 16px}.gesture-hint{display:none}.market-title{gap:10px}.price-caption{font-size:9px}.chart-toolbar{padding:0 12px;gap:10px}}
@media(max-width:800px){main{padding:24px 16px 0}.topbar{height:64px;padding:0 18px;gap:30px}.brand{font-size:26px}.brand svg{width:26px}.version{display:none}.top-right{gap:13px}nav{font-size:11px;gap:16px}.workspace{grid-template-columns:minmax(0,1fr)}.inspector{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr}.inspector-heading{grid-column:1/-1;height:43px}.source-section,.inspector-note{display:none}.inspector-section{border-bottom:0}.inspector-section+.inspector-section{border-left:1px solid var(--line)}.market-header{margin-bottom:24px;align-items:flex-start}.eyebrow{font-size:7px;letter-spacing:1.4px;margin-bottom:14px}h1{font-size:27px}.bitcoin{width:30px;height:30px;font-size:20px}.spot{display:none}.pair{font-size:10px;margin-left:0}.price{font-size:28px}.price-caption{display:block;font-size:8px}.price-caption>span+span{display:block;margin-top:8px}.change{font-size:9px}.chart-body{height:490px}.page-footer>span:nth-child(2){display:none}}
@media(max-width:480px){nav>button{display:none}.topbar{gap:24px}.brand{font-size:25px}.local-badge{font-size:8px;letter-spacing:1px}.help-button{display:none}.market-header{flex-wrap:wrap;gap:15px}.market-price{display:flex;align-items:center;justify-content:space-between;text-align:left;width:100%}.market-title h1{font-size:30px}.market-price .price-line{justify-content:flex-start}.price-caption{text-align:right}.price{font-size:30px}.currency{font-size:10px}.chart-toolbar{gap:9px}.source-name{display:none}.toolbar-end{font-size:9px}.periods{gap:2px}.periods button{padding:7px 8px}.chart-style{gap:2px}.drawing-tools{width:41px}.drawing-tools button{width:29px;height:29px}.chart-legend{padding-left:10px;font-size:9px;gap:5px}.ohlc{margin-left:5px}.ohlc>span:not(:last-child){display:none}.chart-body{height:415px;min-height:415px}.indicator-legend{padding-left:10px}.chart-bottom{font-size:8px;padding-left:9px}.chart-bottom>div{gap:1px}.chart-bottom button{font-size:9px}.chart-status{padding:0 10px;gap:8px;font-size:8px}.status-muted{display:none}#visible-bars{margin-left:auto}.inspector-section{padding:18px 12px}.market-stats dt{font-size:9px}.market-stats dd{font-size:9px}.market-stats dd small{font-size:7px}.section-label{font-size:7px;letter-spacing:.8px}.indicator-row{gap:7px}.indicator-icon{width:24px;font-size:16px}.indicator-row strong{font-size:9px}.indicator-row small{font-size:8px}.toggle{width:24px}.indicator-row input:checked+.toggle:after{transform:translateX(9px)}.page-footer{gap:15px;font-size:8px}.page-footer>span:first-child{font-size:7px;letter-spacing:1px}.modal{padding:28px}.modal h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Edition 02: contextual editing, without shrinking the price plot. */
.workspace-actions{min-height:37px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 17px;border-bottom:1px solid var(--line);background:#0c1212;color:#82958a;font-size:9px}
.history-actions{display:flex;align-items:center;gap:5px;flex-shrink:0}.history-actions button{height:27px;min-width:29px;display:grid;place-items:center;border-radius:4px;font-size:21px}.history-actions button:hover{background:#202a24}.history-actions button:disabled{cursor:default;opacity:.3}.history-actions button svg{width:15px;height:15px}.history-actions>span{margin-left:7px;font:9px var(--mono)}
#save-status{text-align:right;max-width:65%;font-size:9px;color:#a3b29f}.drawing-tools{gap:8px}#tool-hint{max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:480px){.workspace-actions{gap:6px;padding:4px 8px}#save-status{font-size:8px;max-width:52%}.history-actions{gap:2px}.history-actions>span{font-size:8px;margin-left:3px}.drawing-tools{gap:5px;padding-top:12px}.history-actions button{min-width:24px}.chart-status #tool-hint{display:none}}

.shared-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px 0;color:#98ae9d;font-size:10px}.shared-bar>span{display:flex;align-items:center;gap:8px}.shared-bar i{width:5px;height:5px;border-radius:50%;background:var(--gold)}.shared-bar button{color:var(--gold);font-size:10px;white-space:nowrap}.shared-bar+footer{padding-top:15px}@media(max-width:480px){.shared-bar{font-size:8px}.shared-bar button{font-size:8px}}
.toolbar-end.market-live .history-dot { background: #70ceb2; box-shadow: 0 0 8px #70ceb244; }
.toolbar-end.market-live #market-state { color: #91dfc6; }
.follow-market { color: var(--gold, #d8c594); font-size: 10px; padding: 5px 7px; border: 1px solid #d8c59433; border-radius: 4px; white-space: nowrap; }
@media (max-width: 600px) { .toolbar-end .source-name { display: none; } .follow-market { font-size: 9px; padding: 4px; } }

/* Edition 05: configurable studies and separate RSI pane. */
.indicator-add{display:flex;gap:8px;margin:16px 0 6px}.indicator-add select,.indicator-field input,.indicator-field select{min-width:0;background:#101a16;color:#dce2d3;border:1px solid #39463a;border-radius:5px;padding:9px;font:11px var(--mono)}.indicator-add select{width:100%;font-size:10px}.indicator-add button{border:1px solid #5a6045;border-radius:5px;min-width:32px;font-size:20px;color:#d6ba7d}.indicator-add button:disabled{opacity:.3;cursor:default}.indicator-list{max-height:285px;overflow:auto;scrollbar-color:#405549 transparent;scrollbar-width:thin}.configured-indicator{border-bottom:1px solid #27352d;padding:8px 0}.configured-indicator .indicator-row{margin:4px 0}.indicator-actions{display:flex;gap:18px;justify-content:flex-end;font-size:9px;color:#95a78c;margin:8px 0 4px}.indicator-actions button:hover{color:#ddd1a6}.indicator-help{font-size:9px;line-height:1.6;color:#849a86;margin:12px 0 0}.indicator-editor{width:430px;max-width:calc(100vw - 40px)}.indicator-editor h2{font-size:25px}.indicator-field{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;align-items:center;font-size:12px;margin:16px 0}.indicator-field small{grid-column:2;color:#899d88;font-size:9px}.indicator-provisional{display:flex;align-items:center;gap:10px;font-size:11px;margin:22px 0}.indicator-provisional input{accent-color:#c8b686}.form-error{color:#efa899!important;font-size:11px!important;line-height:1.6}.indicator-legend{flex-wrap:wrap;gap:7px 15px;height:auto;min-height:24px;max-height:65px;overflow:auto}.indicator-key{display:inline-flex;align-items:center;gap:7px}.indicator-key .ema-line{background:currentColor}.amber{color:#d6ba7d}.mint{color:#66ccad}.blue{color:#78b3e2}.violet{color:#b799e4}.coral{color:#e67a6e}.ivory{color:#e0e1cc}.indicator-key>span{font-size:8px;opacity:.85}.volume-section{padding-top:12px!important;padding-bottom:12px!important}.volume-section .indicator-row{margin:4px 0}
@media(max-width:800px){.indicator-section{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--line)}.volume-section{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--line)}.indicator-list{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;max-height:270px}.inspector-section:has(.market-stats){grid-column:1/-1}.indicator-key>span{display:none}.indicator-legend{font-size:8px;padding-right:8px}.indicator-editor{padding:25px}.indicator-field{grid-template-columns:75px minmax(0,1fr)}}
@media(min-width:801px){.workspace{height:clamp(650px,calc(100vh - 300px),1060px)}.chart-workspace{display:flex;flex-direction:column;min-height:0}.chart-body{flex:1;height:auto;min-height:400px}.chart-toolbar,.workspace-actions,.chart-status{flex-shrink:0}.inspector{min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#405549 transparent}.inspector-heading{flex-shrink:0}.inspector-note{flex:none}}

/* Edition 06: inspectable graphical rules, with a bounded editor and explanation. */
.filter-section{flex-shrink:0}.filter-intro{font-size:11px;color:#9aac9e;line-height:1.7;margin:0}.filter-toggle>span:nth-child(2){min-width:0}.filter-toggle strong{overflow-wrap:anywhere}.filter-rule-summary{font-size:10px;line-height:1.8;color:#aab9a2;overflow-wrap:anywhere}.filter-counts{font:9px var(--mono);color:#d2bc88;line-height:1.8}.filter-navigation{display:flex;border:1px solid #364036;border-radius:4px;overflow:hidden;margin:12px 0}.filter-navigation button{padding:7px;flex:1;font-size:10px}.filter-navigation button+button{border-left:1px solid #364036}.filter-navigation button:disabled{cursor:default}.filter-actions{display:flex;gap:18px}.filter-actions .text-link{padding-top:6px}.filter-actions .text-link:last-child{width:auto;white-space:nowrap}.filter-actions .text-link:first-child{flex:1}.filter-explanation{margin-top:16px;border-top:1px solid #314031;padding-top:12px;font-size:10px}.filter-explanation summary{color:#ccb987;cursor:pointer}.filter-explanation-date{font:9px var(--mono);line-height:1.7;color:#91a58e}.filter-explanation strong{font-weight:500}.filter-explanation ol{padding-left:15px;margin:12px 0}.filter-explanation li{padding:0 0 12px 3px;line-height:1.6}.filter-explanation li>strong{display:block}.filter-explanation p{overflow-wrap:anywhere;color:#a0b49b}.filter-explanation small{color:#849a86;line-height:1.7}.filter-check-result{font:9px var(--mono);color:#c7b384;display:block;margin-top:4px}.filter-editor{width:760px;max-width:calc(100vw - 40px);padding:30px}.filter-editor h2{font-size:27px;margin:14px 0}.filter-editor label{display:flex;flex-direction:column;gap:7px;font-size:10px;color:#aabda0;min-width:0}.filter-editor input:not([type=checkbox]),.filter-editor select{width:100%;min-width:0;padding:9px;color:#dce2d3;background:#101a16;border:1px solid #39463a;border-radius:4px;font:11px var(--mono)}.filter-editor input:focus-visible,.filter-editor select:focus-visible{outline:2px solid #d2bc88;outline-offset:2px}.filter-settings{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.filter-condition{min-width:0;border:1px solid #354331;border-radius:6px;margin:15px 0;padding:16px}.filter-condition legend{font-size:10px;color:#ceb985;padding:0 6px}.filter-condition-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.filter-operand{display:flex;flex-direction:column;gap:12px;min-width:0}.filter-comparison{align-self:start}.filter-condition .text-link{width:auto;padding-top:16px;margin-left:auto;color:#91a68c}.filter-add-condition{display:flex;width:100%;justify-content:space-between;font-size:11px;color:#c8b686;border:1px dashed #4c5a3f;border-radius:5px;padding:12px}.filter-add-condition:disabled{cursor:default}.filter-editor .indicator-provisional{flex-direction:row}.filter-preview{background:#101912;border:1px solid #32412e;border-radius:5px;padding:12px;font-size:11px;line-height:1.8;color:#c4d0b5}.filter-editor-actions{display:flex;align-items:stretch;gap:12px;margin-top:20px}.filter-editor-actions .primary-button{margin:0;flex:1;gap:12px}.secondary-button{border:1px solid #626747;border-radius:5px;padding:12px;font-size:11px;color:#cfbf90}.filter-editor button:disabled{cursor:default}
@media(max-width:800px){.filter-section{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--line)}.filter-explanation ol{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.filter-explanation{max-height:360px;overflow:auto}.filter-editor{padding:24px}.filter-condition-grid{grid-template-columns:1fr 1fr}.filter-comparison{grid-column:1/-1;grid-row:2}.filter-settings{grid-template-columns:1fr}.filter-editor-actions{flex-direction:column}.filter-editor-actions button{justify-content:center}.filter-condition{padding:12px}.filter-explanation p{max-width:100%}}
@media(max-width:480px){.filter-explanation ol{grid-template-columns:1fr}.filter-condition-grid{gap:10px}.filter-editor{padding:20px}.filter-editor select{font-size:10px;padding:8px}.filter-editor h2{font-size:24px}.filter-rule-summary{max-width:100%}}

.filter-editor .modal-close{position:sticky;top:-10px;float:right;margin-top:-12px;margin-right:-8px;z-index:2;width:32px;height:32px;background:#141d18;border-radius:4px}.filter-explanation{max-height:280px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#405549 transparent}

/* Edition 07: drawing library and horizontal contact inspector. */
.drawing-section{flex-shrink:0}.small-action{font-size:10px;color:var(--gold);padding:5px 7px;border:1px solid #444936;border-radius:4px}.drawing-search{width:100%;min-width:0;padding:9px;background:#0d1513;color:var(--ink);border:1px solid #344136;border-radius:4px;font:10px var(--font);margin-bottom:8px}.drawing-list{max-height:160px;overflow:auto;scrollbar-width:thin;scrollbar-color:#405549 transparent}.drawing-item{width:100%;display:flex;gap:9px;align-items:center;text-align:left;padding:10px 7px;border-radius:4px;margin:2px 0;border:1px solid transparent}.drawing-item>span:last-child{min-width:0}.drawing-item:hover{background:#1c2821}.drawing-item.active{border-color:#686143;background:#27291d}.drawing-item strong{display:block;font-size:10px;font-weight:500;overflow-wrap:anywhere}.drawing-item small{display:block;font:8px var(--mono);color:#8a9e8d;margin-top:5px;line-height:1.5}.drawing-symbol{color:var(--gold);font-size:18px;flex-shrink:0}.drawing-selection{margin-top:16px;border-top:1px solid #344034;padding-top:14px}.drawing-selection-title{font-size:12px;line-height:1.6;overflow-wrap:anywhere;color:#d9d5bb}.drawing-selection-actions{display:flex;justify-content:flex-end;gap:16px;margin:9px 0 17px;font-size:9px;color:#a7b59a}.level-tolerance{display:flex;align-items:center;gap:6px;font-size:10px;color:#acb99f}.level-tolerance input{width:60px;min-width:0;padding:7px 5px;background:#101a16;border:1px solid #39463a;border-radius:4px;color:var(--ink);font:10px var(--mono)}.level-tolerance small{margin-left:auto;font:9px var(--mono);color:#cfbd8a}.level-counts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:18px;gap:6px}.level-counts>div{border-left:1px solid #46503b;padding-left:8px}.level-counts strong{display:block;font:21px var(--mono);color:#d2bc88}.level-counts span{display:block;font-size:9px;color:#8fa08b;margin-top:4px}.level-counts>div:last-child strong{color:#88c8b1}.level-uncertain{font-size:9px;line-height:1.7;color:#96a591}.level-band{font:9px var(--mono);color:#c7ba94}.level-coverage{font-size:8px;line-height:1.9;color:#7f9684}.contact-navigation{display:flex;margin:16px 0 12px;border:1px solid #3a4636;border-radius:4px;overflow:hidden}.contact-navigation button{padding:8px 6px;font-size:10px;min-width:27px}.contact-navigation button:nth-child(2){flex:1;border-left:1px solid #3a4636;border-right:1px solid #3a4636;font-size:9px;color:#d1bd88}.contact-navigation button:disabled{cursor:default}.contact-explanation{padding:12px;background:#0d1513;border:1px solid #2d3a2f;border-radius:5px;font-size:10px}.contact-explanation>strong{display:block;color:#c7caad;font-size:10px;font-weight:500;line-height:1.6}.contact-explanation dl{margin:14px 0 0}.contact-explanation dl>div+div{margin-top:10px}.contact-explanation dt{color:#799381;font-size:8px}.contact-explanation dd{margin:4px 0 0;font:9px var(--mono);color:#b4c2ae;line-height:1.7}.contact-explanation p{font-size:9px;color:#bba677;line-height:1.6}.level-method{margin-top:15px;font-size:9px;color:#9cae95;line-height:1.8}.level-method summary{cursor:pointer;color:#b6b798}.level-method p{font-size:9px;line-height:1.8}.level-purpose{font-size:8px;color:#a69e7d;margin:12px 0 0}.drawing-editor{width:460px;max-width:calc(100vw - 40px)}.drawing-editor h2{font-size:26px}
@media(max-width:800px){.drawing-section{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--line)}.drawing-list{max-height:190px}.drawing-item small{font-size:9px}.drawing-item strong{font-size:11px}.drawing-selection-title{font-size:13px}.level-coverage{font-size:9px}.contact-explanation dl{display:grid;grid-template-columns:1fr 1fr;gap:12px}.contact-explanation dl>div+div{margin-top:0}.drawing-editor{padding:26px}}

/* Edition 09: finite price-zone inspection. */
.zone-heading{margin-top:20px;font-size:8px;letter-spacing:1.5px;color:#9fbcde}.zone-counts strong{color:#9fbcde}.zone-coverage{margin:17px 0;padding:12px 0;border-top:1px solid #2f3f3b;border-bottom:1px solid #2f3f3b}.zone-coverage>div{display:flex;justify-content:space-between;gap:10px;margin:8px 0}.zone-coverage dt{font-size:9px;color:#8da396}.zone-coverage dd{font:10px var(--mono);margin:0;color:#b9cbd5;white-space:nowrap}.zone-inspector .level-band{color:#aec8dc}

/* Edition 08: layers, explicit locks and OHLC magnet. */
.layer-controls{margin:4px 0 18px}.layer-destination{display:flex;flex-direction:column;gap:7px;color:#859b88;font-size:9px;margin:12px 0}.layer-destination select{width:100%;min-width:0;border:1px solid #354336;border-radius:4px;background:#0d1712;color:#cfd7c3;padding:8px;font:10px var(--font)}.layer-destination select:disabled{opacity:.6}.layer-destination select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.layer-manager{margin-top:14px;font-size:10px;border:1px solid #303c30;border-radius:5px;padding:10px}.layer-manager>summary{cursor:pointer;color:#c9bb90;list-style-position:outside;margin-left:12px}.layer-list{max-height:250px;overflow:auto;scrollbar-width:thin;scrollbar-color:#405549 transparent;margin-top:10px}.layer-row{border-top:1px solid #2a372e;padding:11px 0 7px}.layer-title{display:flex;justify-content:space-between;gap:8px}.layer-title strong{font-size:10px;font-weight:500;overflow-wrap:anywhere;min-width:0}.layer-title>span{color:#778e7d;font:9px var(--mono)}.layer-actions{display:flex;align-items:center;gap:10px;margin-top:9px}.layer-actions label{display:flex;align-items:center;gap:4px;font-size:8px;color:#91a18c}.layer-actions input,.magnet-control input,.object-lock input{accent-color:var(--gold);margin:0;width:12px;height:12px;flex-shrink:0}.layer-actions button{padding:2px 3px;color:#c3b98d;font-size:15px;min-width:18px}.layer-actions button:first-of-type{margin-left:auto}.layer-actions button:disabled{cursor:default}.layer-manager .text-link{font-size:9px;padding-top:10px;gap:8px}.layer-manager .text-link:disabled{cursor:default}.magnet-control{display:flex;align-items:center;gap:9px;font-size:10px;color:#c9cab0;margin-top:15px;cursor:pointer}.magnet-control small{display:block;font-size:8px;line-height:1.6;color:#849b88;margin-top:4px}.drawing-layer-badge{color:#baae87!important}.drawing-object-settings{margin:12px 0 17px}.object-lock{display:flex;gap:7px;align-items:center;font-size:9px;color:#acb59d;cursor:pointer}.object-notice{font-size:9px;color:#b9ab80;line-height:1.7}.drawing-selection-actions button:disabled{cursor:default}.drawing-tools{gap:5px}.drawing-tools button{flex-shrink:0}
@media(max-width:800px){.layer-actions label{font-size:10px}.layer-actions input,.magnet-control input,.object-lock input{width:14px;height:14px}.layer-list{max-height:260px}.layer-title strong,.layer-destination select{font-size:11px}.magnet-control{font-size:11px}.object-lock{font-size:10px}.drawing-tools{gap:4px}}

/* Edition 10: explained BTC pattern layer. */
.pattern-monogram{letter-spacing:2px;color:#9fbcde!important}.indicator-icon.blue{background:#1c2931;color:#9fbcde}.pattern-total{display:flex;gap:12px;align-items:center;margin:20px 0 10px}.pattern-total>strong{font:30px var(--mono);color:#b6cce0}.pattern-total>span{font-size:10px;line-height:1.6;color:#9aaea3;max-width:140px}.pattern-counts{display:flex;flex-wrap:wrap;gap:6px}.pattern-counts span{font:8px var(--mono);padding:5px 6px;background:#172322;border:1px solid #293b35;border-radius:3px}.pattern-list{display:grid;gap:5px;margin-top:16px}.pattern-row{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;padding:10px 9px;background:#101c1b;border:1px solid #283c34;border-radius:4px;color:#c3d1c9;cursor:pointer;min-width:0}.pattern-row.selected{border-color:#8aacc3;background:#1b2b30}.pattern-row strong{font-size:10px;font-weight:500;display:block}.pattern-row small{display:block;font:8px var(--mono);color:#839c8b;margin-top:5px}.pattern-status{font-size:8px;line-height:1.4;text-align:right;max-width:76px;color:#a3b8c9}.pattern-row[data-pattern-status="confirmed"] .pattern-status{color:#66ccad}.pattern-row[data-pattern-status="invalidated"] .pattern-status{color:#e67a6e}.pattern-row[data-pattern-status="pending"] .pattern-status{color:#d2bc88}.pattern-pagination{align-items:center;justify-content:space-between}.pattern-pagination>span{font:9px var(--mono);color:#90a897}.pattern-explanation{margin:18px 0;background:#0d1718;border:1px solid #30423e;border-radius:5px;padding:14px 11px}.pattern-explanation .eyebrow{font-size:8px;letter-spacing:1.3px;color:#9fbcde}.pattern-result{display:block;font-size:12px;font-weight:500;margin:8px 0 15px}.pattern-explanation dl{margin:0}.pattern-explanation dl>div{margin:9px 0}.pattern-explanation dt{font-size:8px;color:#829b8d}.pattern-explanation dd{font:9px var(--mono);margin:4px 0 0;line-height:1.6;overflow-wrap:anywhere;color:#c0cfc8}.pattern-known{border-left:2px solid #88a7bf;padding:8px 0 8px 10px;margin-top:15px}.pattern-known span{display:block;font-size:9px;color:#91a59c}.pattern-known strong{display:block;margin-top:6px;font:10px var(--mono);color:#bfd4e4}.pattern-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.pattern-fields label{font-size:10px;line-height:1.6;color:#aabfb0}.pattern-fields input{display:block;width:100%;margin-top:6px;background:#0b1512;color:#e0e8df;border:1px solid #3c5143;border-radius:4px;padding:10px;font:12px var(--mono);min-width:0}.pattern-editor{max-height:90vh;overflow-y:auto}.pattern-editor .modal-close{position:sticky;top:0;float:right;background:#17231e;z-index:2}.pattern-editor .filter-editor-actions{flex-wrap:wrap}.pattern-editor button:disabled{opacity:.4;cursor:default}
@media(max-width:800px){.pattern-section{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--line)}.pattern-fields{grid-template-columns:1fr}.pattern-editor{padding:24px}.pattern-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}

/* Four views share the canvas; these controls select its active pane. */
.comparison-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 15px;border-bottom:1px solid var(--line);background:#101817;flex-shrink:0;flex-wrap:wrap}.comparison-modes{display:flex;gap:4px}.comparison-modes button{font-size:10px;color:#849d8d;padding:7px 10px;border:1px solid transparent;border-radius:4px}.comparison-modes button span{font-size:14px;vertical-align:-1px}.comparison-modes button.active{color:#d6c599;background:#252a20;border-color:#4e4d35}.comparison-links{display:flex;gap:15px;font-size:9px;color:#9db0a3}.comparison-links label{display:flex;gap:5px;align-items:center;cursor:pointer}.comparison-links input{accent-color:#c8b480;width:12px;height:12px}.comparison-tabs{display:flex;gap:6px;align-items:center;padding:7px 15px;background:#101817;border-bottom:1px solid var(--line);flex-shrink:0}.comparison-tabs button{display:flex;align-items:center;gap:10px;padding:7px 12px;font:10px var(--mono);border:1px solid #2b3c34;border-radius:4px;color:#9db2a5}.comparison-tabs button>span{color:#617d6b;font-size:8px}.comparison-tabs button.active{border-color:#ab9a6c;color:#decca0;background:#24291f}.comparison-tabs button.active>span{color:#b09d70}.comparison-hint{margin-left:auto;color:#728b7b;font-size:9px;text-align:right}.comparison-toolbar button:focus-visible,.comparison-tabs button:focus-visible{outline:2px solid #bda97b;outline-offset:2px}.comparison-toolbar button:disabled{opacity:.4}.comparison-toolbar button,.comparison-tabs button{cursor:pointer}
@media(max-width:1100px){.comparison-hint{display:none}.comparison-tabs{justify-content:space-between}.comparison-tabs button{flex:1;justify-content:center}}
@media(max-width:480px){.comparison-toolbar{padding:8px 10px;gap:8px}.comparison-links{gap:12px;font-size:9px}.comparison-modes button{padding:6px 8px}.comparison-tabs{padding:6px 9px;gap:4px}.comparison-tabs button{padding:6px 8px;gap:8px}}

/* Edition 12: named study parameters and readable oscillator panels. */
.study-parameter-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.study-status{margin:0;padding:7px 16px;color:#d0b486;font-size:10px}.study-status:empty{display:none}.indicator-editor{max-height:90vh;overflow-y:auto}.indicator-editor .modal-close{position:sticky;top:0;float:right;background:#17231e;z-index:2}.indicator-field select:disabled{opacity:.6;cursor:default}.indicator-legend>span{flex-wrap:wrap}.indicator-key{max-width:100%}.indicator-key span{overflow-wrap:anywhere}
/* The container grows with the analysis panes; no CSP-blocked inline styles. */
.workspace[data-study-panel-count="1"]{--study-panels-height:90px}
.workspace[data-study-panel-count="2"]{--study-panels-height:180px}
.workspace[data-study-panel-count="3"]{--study-panels-height:270px}
.workspace[data-study-panel-count]:not([data-study-panel-count="0"]){--study-body-height:calc(420px + var(--study-panels-height));min-height:calc(var(--study-body-height) + 270px)}
.workspace[data-study-rows="2"]:not([data-study-panel-count="0"]){--study-body-height:calc(656px + var(--study-panels-height) + var(--study-panels-height))}
.workspace[data-study-panel-count]:not([data-study-panel-count="0"]) .chart-body{min-height:var(--study-body-height)}
/* Edition 13: portable workspaces, with an explicit restoration preview. */
.transfer-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;padding:13px 16px;border:1px solid var(--line);border-radius:7px;background:#0e1614}.transfer-title{color:#c3cfbf;font-size:12px}.transfer-hint{font-size:10px;color:#78917f;margin-left:16px}.transfer-actions{display:flex;gap:10px}.transfer-actions button,.transfer-notice button{font-size:11px;padding:8px 12px;border:1px solid #45513d;border-radius:4px;color:var(--gold)}.transfer-actions button:hover,.transfer-notice button:hover{background:#222d23}.transfer-bar button:disabled,.transfer-editor button:disabled{opacity:.45;cursor:default}.transfer-notice{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;color:#a0beaa;padding:0 4px 14px}.transfer-error{font-size:11px;color:#efa899;line-height:1.6}.transfer-editor{width:950px;max-width:calc(100vw - 40px);max-height:90vh;padding:28px}.transfer-editor .modal-close{position:sticky;top:0;float:right;z-index:2;background:#17231e}.transfer-editor h2{font-size:28px;margin:16px 0}.transfer-editor>p{font-size:12px;line-height:1.7}.transfer-file{display:block;font-size:11px;color:#b5c8b5;border:1px dashed #53634c;border-radius:6px;padding:16px;margin-top:18px}.transfer-file input{display:block;margin-top:12px;color:#b3bfae;max-width:100%;font-size:11px}.transfer-file input::file-selector-button{border:1px solid #53634c;border-radius:4px;padding:8px;color:#d2bf90;background:#1b281e;margin-right:12px;cursor:pointer}.transfer-file-name{overflow-wrap:anywhere;color:#a8b6a0}.transfer-counts{display:flex;flex-wrap:wrap;gap:8px 18px;margin:18px 0 12px}.transfer-counts p{font:10px var(--mono);margin:0;color:#cfbf94}.transfer-warning{font-size:11px;color:#e2b487;border-left:2px solid #a5784f;padding:8px 12px;background:#211d16;line-height:1.6}.transfer-diff{max-height:38vh;overflow:auto;border:1px solid #344333;border-radius:6px;margin:15px 0;scrollbar-color:#405549 transparent}.transfer-diff article{display:grid;grid-template-columns:140px 1fr 1fr;gap:16px;padding:14px;font-size:10px;line-height:1.7}.transfer-diff article+article{border-top:1px solid #2a3c2c}.transfer-diff h3{font-size:11px;font-weight:500;color:#d3bf8f;margin:0}.transfer-diff p{margin:4px 0 0;overflow-wrap:anywhere;color:#b0c0ac}.transfer-diff span{color:#788e7b;font-size:9px;text-transform:uppercase;letter-spacing:.7px}.transfer-diff article>div:last-child p{color:#c6d4bd}.transfer-preview details{font-size:10px;color:#8ca189;margin:16px 0}.transfer-preview code{display:block;overflow-wrap:anywhere;white-space:normal;font-size:9px;margin:10px 0}.transfer-cancel{padding:12px 0;margin-top:8px;font-size:11px;color:#9aad97}.transfer-editor .primary-button{margin-top:18px}
@media(max-width:600px){.transfer-hint{display:none}.transfer-bar{padding:10px}.transfer-title{font-size:11px}.transfer-actions{gap:5px}.transfer-actions button{padding:7px;font-size:10px}.transfer-editor{padding:20px;max-width:calc(100vw - 24px)}.transfer-diff article{grid-template-columns:1fr;gap:7px}.transfer-diff{max-height:33vh}.transfer-editor h2{font-size:24px}.transfer-notice{flex-wrap:wrap}}
/* Edition 14: a shared manual observation timeline, independent of saved drawings. */
.transfer-fieldset{border:0;padding:0;margin:0;min-width:0}.transfer-fieldset:disabled{opacity:.45}.replay-bar{border:1px solid #344338;border-radius:8px;padding:18px 20px;margin-bottom:14px;background:#101b17}.replay-bar.active{border-color:#998452;background:linear-gradient(110deg,#22291c,#121e19)}.replay-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:15px}.replay-kicker{font-size:8px;letter-spacing:2px;color:#a9a98b}.replay-heading h2{font-size:20px;font-weight:500;margin:6px 0 0;color:#d5cfad}.replay-purpose{font-size:10px;color:#c6b57f}.replay-controls{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.replay-controls label{display:grid;gap:6px;color:#91a58f;font-size:9px}.replay-controls input{color-scheme:dark;border:1px solid #40553f;border-radius:4px;background:#101a15;padding:9px 12px;color:#ced3b9;font:11px var(--mono);max-width:100%}.replay-controls button,.replay-error button{padding:10px 14px;border:1px solid #536147;border-radius:4px;font-size:11px;color:#d1c395}.replay-controls button:disabled{opacity:.35;cursor:default}.replay-controls .replay-go{background:#c4b587;color:#152219;border-color:#c4b587}.replay-steps{display:flex;align-items:center;border:1px solid #596145;border-radius:4px}.replay-steps button{border:0;font-size:16px;padding:6px 13px}.replay-steps span{font:10px var(--mono);color:#acb89c;padding:0 8px}.replay-controls .replay-exit{margin-left:auto}.replay-note{font-size:10px;color:#94a68d;line-height:1.7;margin:12px 0 0}.replay-position{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:18px}.replay-position strong{font:13px var(--mono);font-weight:500;color:#dcc890}.replay-position span{font-size:10px;color:#a6b49b}.replay-error{font-size:11px;color:#e8b39d;margin-top:10px;line-height:1.6}.replay-error button{margin-right:8px}.is-replay .inspector{opacity:.8}.is-replay .drawing-section{display:none}#chart-stage[data-replay-transition="true"] canvas{visibility:hidden}@media(max-width:600px){.replay-bar{padding:14px}.replay-heading{align-items:start}.replay-purpose{max-width:130px;line-height:1.7;text-align:right}.replay-controls{gap:9px}.replay-controls label{width:100%}.replay-controls input{width:100%}.replay-controls .replay-exit{margin-left:0}.replay-position{gap:8px}.replay-heading h2{font-size:18px}}

/* Edition 15: one bounded reader shared with MCP. */
.playback-controls{display:flex;align-items:end;gap:14px;flex-wrap:wrap;border-top:1px solid #45472e;margin-top:16px;padding-top:14px}.playback-controls label{display:grid;gap:7px;font-size:10px;color:#a6b49b}.playback-controls input,.playback-controls select{color:#ddcfaa;background:#111c16;border:1px solid #536047;border-radius:4px;padding:9px;font:11px var(--mono);height:35px}.playback-controls input{width:84px}.playback-toggle{min-width:86px;height:36px;border:1px solid #a29458;border-radius:4px;background:#3f452d;color:#f1dfa6;font-size:12px}.playback-toggle.playing{background:#c3b57e;color:#131c13}.playback-status{font:11px var(--mono);color:#d5c488;padding-bottom:10px}.playback-controls :disabled{opacity:.45;cursor:default}.playback-lifecycle{max-width:720px}@media(max-width:600px){.playback-controls{gap:12px}.playback-status{width:100%;padding-bottom:0}.playback-controls label{max-width:calc(100% - 100px)}}

/* Edition 16: a viewport-sized studio, with locally mounted inspector panels. */
[hidden]{display:none!important}
html,body{min-height:100%;margin:0}
.app-shell{height:100dvh;min-height:620px;display:flex;flex-direction:column}
.topbar{height:54px;min-height:54px;padding:0 24px;gap:44px}
.brand{font-size:25px}.brand svg{width:29px;height:29px}
.app-shell main{max-width:none;width:100%;min-height:0;flex:1;display:flex;flex-direction:column;padding:16px 24px 10px;gap:10px}
.market-header{margin:0;min-height:48px;flex-shrink:0}
.market-identity .eyebrow{display:none}.market-title{gap:12px}.market-title h1{font-size:25px}.bitcoin{width:32px;height:32px;font-size:22px}.price{font-size:26px}.price-line{line-height:1.15}.price-caption{margin-top:2px;line-height:16px}.price-caption .change{padding:1px 5px;line-height:14px}
.studio-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;flex-shrink:0}
.transfer-fieldset{flex:1;min-width:0}.transfer-bar{padding:0;border:0;background:none;margin:0;justify-content:flex-start;gap:16px;min-height:32px}.transfer-title{font-size:10px}.transfer-hint{display:none}.transfer-actions button{padding:6px 10px;font-size:10px}
.studio-view-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.studio-view-actions button{height:32px;display:flex;align-items:center;gap:10px;padding:0 10px;border:1px solid var(--line);border-radius:5px;font-size:10px;color:#b6c2b8;background:#101817}
.studio-view-actions button:hover,.studio-view-actions button[aria-pressed=true]{border-color:#8f805c;color:var(--gold);background:#1d241c}
.studio-view-actions span{font-size:16px;color:#b8b28f}
kbd{font:10px var(--mono);border:1px solid #3b4840;border-radius:3px;padding:2px 5px;color:#c7ccb9;background:#17201b}
.replay-bar{flex-shrink:0;padding:8px 12px;margin:0;background:#111b17;border-color:#2b3b30;border-radius:5px}
.replay-heading{margin:0;gap:12px;align-items:center;min-height:22px;justify-content:flex-start;flex-wrap:wrap}
.replay-disclosure{display:flex;align-items:center;gap:8px;font-size:11px;color:#d6c79c;min-height:24px}.replay-disclosure span{font-size:14px}
.replay-purpose{font-size:9px;margin-left:auto;max-width:none;text-align:left}
.replay-compact-state{font:10px var(--mono);color:#d6c797}.replay-compact-pause{border:1px solid #a69862;border-radius:4px;padding:4px 10px;color:#e4d399;font-size:11px}
#replay-details{padding:12px 0 4px;border-top:1px solid #35432f;margin-top:8px}
.replay-controls input{padding:6px 9px}.replay-controls button{padding:7px 12px}.replay-controls label{gap:4px}.replay-note{margin-top:7px;font-size:9px}.replay-position{margin-top:8px}.replay-position strong{font-size:11px}.playback-controls{padding-top:9px;margin-top:10px;gap:12px}.playback-controls label{gap:4px}.playback-controls input,.playback-controls select{height:30px;padding:5px}.playback-toggle{height:30px}.playback-status{padding-bottom:6px}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 306px;flex:1;min-height:310px;overflow:hidden;border-radius:7px;align-items:stretch}
.workspace.panel-closed{grid-template-columns:minmax(0,1fr)}
.chart-workspace{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.chart-toolbar{height:43px;min-height:43px;padding:0 12px;gap:12px;flex-shrink:0}
.workspace-actions{height:33px;min-height:33px;padding:0 12px;flex-shrink:0}.history-actions button{width:27px;height:27px}.history-actions button svg{width:15px;height:15px}#save-status{font-size:9px}
.comparison-toolbar{min-height:34px;padding:3px 12px;flex-shrink:0}.comparison-modes button{padding:5px 9px;font-size:10px}.comparison-tabs{min-height:32px;padding:3px 12px;flex-shrink:0}
.chart-body{flex:1;height:auto;min-height:160px;display:flex}
.drawing-tools{width:45px;min-width:45px;gap:4px;padding:10px 5px;overflow-y:auto;overflow-x:hidden}.drawing-tools button{width:32px;height:32px;min-height:32px}.tool-space{min-height:0}.tool-divider{margin:3px 0}
.chart-content{display:flex;flex-direction:column;min-height:0;min-width:0;flex:1}.chart-legend{height:30px;min-height:30px;padding:0 10px;flex-shrink:0}.indicator-legend{height:24px;min-height:24px;padding:0 10px;flex-shrink:0;overflow:hidden}
#chart-stage{flex:1;min-height:100px}.chart-bottom{height:29px;min-height:29px;padding:0 10px;flex-shrink:0}.chart-status{height:27px;min-height:27px;padding:0 12px;font-size:8px;flex-shrink:0}.gesture-hint{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inspector{min-height:0;overflow:hidden;display:flex;flex-direction:column}.inspector-tabs{display:flex;border-bottom:1px solid var(--line);min-height:43px;flex-shrink:0;background:#121b19}.inspector-tabs button{flex:1;font-size:11px;min-height:43px;border-bottom:2px solid transparent;color:#91a497}.inspector-tabs button[aria-selected=true]{border-color:var(--gold);color:#e0d0a3;background:#1b241d}.inspector-tabs button:hover{color:#e0d0a3}
.inspector-panel{overflow-y:auto;overflow-x:hidden;min-height:0;flex:1;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#3b5141 transparent}
.inspector-section{padding:18px 16px}.section-heading{margin-bottom:14px}.section-label{margin-bottom:14px}.inspector-note{padding:22px 16px;min-height:130px}.inspector-replay-note{padding:20px;font-size:12px;line-height:1.8;color:#cabd91}
.drawing-list{max-height:240px}.drawing-search{height:34px}.drawing-item{padding:9px 7px}.drawing-selection-actions{flex-wrap:wrap}.drawing-notice{display:flex;align-items:center;gap:12px;padding:7px 12px;background:#19251e;border-bottom:1px solid #344936;font-size:10px;color:#c6d3b5;flex-shrink:0}.drawing-notice button{margin-left:auto;font-size:18px}.drawing-notice span{line-height:1.5}
.shared-bar{margin:0;min-height:22px;padding:0 1px;font-size:9px;flex-shrink:0}.page-footer{display:none}
.chart-focused .topbar,.chart-focused .market-header{display:none}.chart-focused main{padding-top:10px}.chart-focused .transfer-fieldset{visibility:hidden}.chart-focused .studio-actions{justify-content:flex-end}
.shortcut-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin:24px 0}.shortcut-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.shortcut-list dt{font-size:11px;color:#b5c2b2}.shortcut-list dd{margin:0}.shortcuts-dialog{max-width:620px}.shortcuts-dialog h2{font-size:30px}
button:focus-visible,[role=tab]:focus-visible{outline:2px solid #d8c594;outline-offset:2px}#chart-stage:focus-visible{outline:1px solid #8c9871;outline-offset:-1px}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 278px}.app-shell main{padding:12px 14px 8px;gap:8px}.topbar{padding:0 14px}.source-name{display:none}.gesture-hint{display:none}.transfer-bar{gap:8px}.transfer-title{display:none}}
@media(max-width:899px){.app-shell{height:auto;min-height:100dvh}.app-shell main{flex:none;min-height:calc(100dvh - 54px)}.workspace{display:flex;flex-direction:column;flex:none;min-height:0}.chart-workspace{height:max(450px,calc(100dvh - 235px))}.inspector{border-left:0;border-top:1px solid var(--line);height:520px;max-height:75dvh}.chart-focused .chart-workspace{height:calc(100dvh - 125px)}.inspector-section{padding:18px}.topbar nav{display:none}.replay-compact-state{order:3;width:100%;font-size:9px}.replay-compact-pause{margin-left:auto}.replay-purpose{font-size:8px}.price-caption{font-size:9px}.market-title h1{font-size:22px}.market-title{gap:8px}.comparison-toolbar{flex-wrap:wrap;gap:6px}.chart-status{font-size:8px}.chart-bottom{font-size:9px}.shared-bar{flex-wrap:wrap;gap:6px}}
@media(max-width:520px){.app-shell main{padding:10px 8px 8px;gap:8px}.topbar{padding:0 12px}.top-right{gap:10px}.market-header{min-height:44px;align-items:center}.price{font-size:20px}.market-title h1{font-size:20px}.market-title .pair,.market-title .spot,.price-caption>span:last-child{display:none}.bitcoin{width:25px;height:25px;font-size:17px}.market-price{text-align:right}.studio-actions{gap:6px}.studio-view-actions{gap:4px}.studio-view-actions button{padding:0 7px;font-size:9px;gap:6px}.studio-view-actions kbd{display:none}.transfer-actions{gap:3px}.transfer-actions button{padding:7px 6px;font-size:9px}.transfer-bar{gap:0}.chart-toolbar{padding:0 8px;gap:6px}.toolbar-separator{margin:0}.toolbar-end{gap:5px;font-size:9px}.chart-style button{width:25px}.source-name{display:none}.follow-market{padding:4px 5px;font-size:9px}.periods button{padding:6px;font-size:10px}.workspace-actions{padding:0 8px;gap:6px}#save-status{max-width:140px;text-align:right;font-size:8px}#drawing-count{font-size:8px}.history-actions{gap:3px}.drawing-tools{width:38px;min-width:38px;padding:7px 3px}.chart-legend{font-size:9px;padding:0 6px}.chart-legend .ohlc{gap:7px}.ohlc>span:nth-child(2),.ohlc>span:nth-child(3){display:none}.chart-bottom{padding:0 6px}.chart-status{padding:0 8px}.status-muted{display:none}.shortcut-list{grid-template-columns:1fr;gap:10px}.shortcuts-dialog{max-height:90dvh;overflow:auto}.replay-controls input{width:100%}.replay-controls label{width:100%}.playback-controls label{max-width:calc(100% - 100px)}.replay-purpose{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Share one command row; retain minimum space for the actual study panels. */
.workspace-actions{height:auto;min-height:34px;flex-wrap:wrap;gap:4px 10px}
.workspace-actions .comparison-toolbar{border:0;padding:0;min-height:30px;background:transparent;gap:14px;flex:1;justify-content:center}
.app-shell .workspace[data-study-panel-count="1"]{--study-panels-height:64px}
.app-shell .workspace[data-study-panel-count="2"]{--study-panels-height:128px}
.app-shell .workspace[data-study-panel-count="3"]{--study-panels-height:192px}
.app-shell .workspace[data-study-panel-count]:not([data-study-panel-count="0"]){--study-body-height:calc(307px + var(--study-panels-height));min-height:calc(var(--study-body-height) + 140px)}
.app-shell .workspace[data-study-panel-count]:not([data-study-panel-count="0"]) .chart-workspace{min-height:calc(var(--study-body-height) + 138px)}
@media(max-width:1100px){.workspace-actions .comparison-links{gap:7px;font-size:8px}.workspace-actions .comparison-toolbar{gap:7px}}
@media(max-width:520px){.workspace-actions .comparison-toolbar{order:3;flex-basis:100%;justify-content:space-between}.workspace-actions #save-status{margin-left:auto}.workspace-actions .comparison-links{flex-wrap:wrap;font-size:8px}}
.drawing-row{display:flex;align-items:center;gap:6px}.drawing-row>input{flex:0 0 auto;width:14px;height:14px;margin:0 0 0 3px;accent-color:var(--gold)}.drawing-row .drawing-item{flex:1;min-width:0}.selection-tools{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:9px;color:var(--gold);margin:3px 0 5px}.selection-tools span{margin-left:auto;color:#9bad9d;font:9px var(--mono)}.selection-tools button{padding:5px 0}.selection-help{color:#809985;font-size:9px;line-height:1.5;margin:2px 0 10px}.batch-selection{margin-top:12px;padding:12px;border:1px solid #514f36;border-radius:5px;background:#1b221b}.batch-selection>strong{font-size:12px;font-weight:500;color:#dbca9b}.batch-selection>p{font-size:9px;color:#a1b29a;line-height:1.7}.batch-actions{display:flex;gap:10px;margin:14px 0}.batch-actions button,.batch-move{padding:8px 10px;border:1px solid #4c523c;border-radius:4px;font-size:10px;color:var(--gold)}.batch-move{width:100%;margin-top:8px}.batch-notice{display:flex;align-items:center;gap:8px;font-size:10px;line-height:1.6;color:#b8ccac}.batch-notice button{margin-left:auto;padding:5px;font-size:18px}

/* Edition 19: observation handoff, isolated until qualified. */
.hypothesis-section p{font-size:12px;line-height:1.6;color:var(--muted,#8f969f)}
.hypothesis-section button{width:100%;justify-content:space-between}
.hypothesis-editor{width:min(680px,calc(100vw - 24px));max-height:90dvh;overflow-y:auto}
.hypothesis-fields{border:0;padding:0;min-width:0;display:grid;gap:15px;margin:20px 0}
.hypothesis-fields label{display:grid;gap:7px;font-size:12px;color:#c8cbd0;min-width:0}
.hypothesis-fields input,.hypothesis-fields select,.hypothesis-fields textarea{box-sizing:border-box;width:100%;min-width:0;background:#11151b;color:#e9e9e5;border:1px solid #343b45;border-radius:7px;padding:10px;font:inherit;color-scheme:dark}
.hypothesis-fields textarea{resize:vertical}
.hypothesis-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.hypothesis-fields details,.hypothesis-result details{font-size:12px;line-height:1.6}
.hypothesis-fields summary,.hypothesis-result summary{cursor:pointer;padding:6px 0}
.hypothesis-exposure{border-left:2px solid #d4ac69;background:#d4ac6909;padding:12px 14px;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.hypothesis-exposure p{font-size:11px;margin:6px 0}.hypothesis-exposure small{color:#a0a6af}
.hypothesis-result{margin-top:20px;padding:16px;border:1px solid #537b67;border-radius:10px;background:#81cba209;font-size:13px}
.hypothesis-result p{font-size:12px}.hypothesis-result pre{font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto;background:#101318;padding:12px;border-radius:6px}
.hypothesis-result button{margin-top:14px;width:100%;justify-content:space-between}
@media(max-width:560px){.hypothesis-grid{grid-template-columns:1fr}.hypothesis-editor{padding:24px 18px}.hypothesis-editor h2{font-size:29px}.hypothesis-editor .filter-editor-actions{flex-direction:column;align-items:stretch}}
/* Édition 24 : atelier public — partage explicite de l’analyse enregistrée. */
.share-actions{display:flex;align-items:center;gap:8px;min-width:0;flex-shrink:1}.share-actions .secondary-button{padding:6px 10px;font-size:10px;white-space:nowrap}.share-actions .form-error{font-size:10px;max-width:220px}
.share-dialog{max-width:640px;max-height:92dvh;overflow:auto}.share-dialog .share-preview{display:block;width:100%;height:auto;border-radius:8px;border:1px solid #2b3a33;margin:12px 0}.share-dialog label{display:grid;gap:6px;font-size:10px;color:#a3ad9f;margin-bottom:12px}.share-dialog input{width:100%;min-width:0;border:1px solid #40553f;border-radius:4px;background:#101a15;padding:9px 10px;color:#ced3b9;font:11px var(--mono)}.share-dialog a.primary-button,.share-dialog a.secondary-button{text-decoration:none;display:inline-flex;align-items:center;gap:8px}
@media(max-width:520px){.share-actions .secondary-button{padding:7px 6px;font-size:9px}.share-dialog{padding:18px 14px}}

/* Édition 25 : présentation visible et indexable des pages publiques, placée sous l'application. */
.pr-indexed{display:flex;flex-direction:column;min-height:100vh}.pr-indexed>.pr-about,.pr-indexed>noscript{order:1}
.pr-about{border-top:1px solid var(--line);background:var(--bg);color:var(--ink);padding:32px 16px 40px}
.pr-about-in{max-width:760px;margin:0 auto;font-size:14px;line-height:1.6}
.pr-about-kicker{margin:0 0 6px;color:var(--gold);font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.pr-about h1{margin:0 0 12px;font-size:22px;line-height:1.3;font-weight:600;letter-spacing:normal;overflow-wrap:anywhere}
.pr-about h2{margin:22px 0 8px;font-size:15px;font-weight:600;color:var(--mint)}
.pr-about p{margin:0 0 10px}.pr-about-lead{font-size:15px;color:#cfd6cc}
.pr-about-list{margin:0;padding-left:20px}.pr-about-list li{margin:4px 0}
.pr-about-links{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 14px;padding:0}
.pr-about-links a{display:inline-block;padding:7px 12px;border:1px solid #33433d;border-radius:6px;color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.pr-about-links a:hover{color:#fff;border-color:var(--gold)}
.pr-about-note{color:var(--muted);font-size:12px}.pr-noscript{padding:16px}
@media(max-width:520px){.pr-about{padding:24px 16px 32px}.pr-about h1{font-size:19px}.pr-about-lead{font-size:14px}}
