:root{color-scheme:dark;font-family:Inter,Segoe UI,system-ui,sans-serif;background:#0b1018;color:#edf3fc;font-synthesis:none;--safe-top:var(--discord-safe-area-inset-top,env(safe-area-inset-top,0px));--safe-bottom:var(--discord-safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--safe-left:var(--discord-safe-area-inset-left,env(safe-area-inset-left,0px));--safe-right:var(--discord-safe-area-inset-right,env(safe-area-inset-right,0px))}
*{box-sizing:border-box}body{margin:0}main{max-width:1600px;margin:auto;padding:calc(24px + var(--safe-top)) calc(24px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(24px + var(--safe-left))}header,.brand,.toolbar,.controls,.chart-heading,.chart-label,.view-actions,.control-actions,footer{display:flex;align-items:center}header{justify-content:space-between;gap:20px;margin-bottom:24px}.brand{gap:13px}.mark{display:grid;place-items:center;background:#203b38;color:#80e2bd;border:1px solid #386b5d;border-radius:12px;width:44px;height:44px;font-weight:800;font-size:26px}h1{font-size:21px;margin:0 0 3px;letter-spacing:-.5px}.brand p{font-size:12px;margin:0;color:#8f9db2}.privacy{font-size:12px;border:1px solid #2c4c45;border-radius:30px;padding:8px 12px;color:#9cdec5;background:#132620}.privacy:before{content:'●';margin-right:7px;font-size:9px}.toolbar{justify-content:space-between;gap:18px;margin-bottom:18px}.controls{gap:14px;flex-wrap:wrap}.control-actions,.view-actions{gap:8px}label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#96a5ba}select,button{font:inherit;font-size:14px;border:1px solid #304054;background:#172131;color:#eff4fd;border-radius:8px;padding:10px 14px;min-height:44px}select{min-width:130px;cursor:pointer}button{cursor:pointer}button:hover{background:#25344b}select:focus-visible,button:focus-visible{outline:2px solid #7fdcba;outline-offset:2px}button:disabled,select:disabled{cursor:default;opacity:.5}.viewer{position:relative;background:#101925;border:1px solid #263347;border-radius:14px;overflow:hidden}.chart-heading{padding:10px 16px;justify-content:space-between;border-bottom:1px solid #243144;gap:10px}.chart-label{gap:14px;min-width:0}h2{font-size:15px;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.state{font-size:12px;color:#d5bd85;white-space:nowrap}.state[data-ready=true]{color:#8ad9b7}.canvas{position:relative;display:grid;place-items:center;overflow:hidden;min-height:340px;height:calc(100dvh - 320px);max-height:960px;background:#0c131e}.canvas.has-chart{touch-action:none;cursor:grab;user-select:none}.canvas.has-chart:active{cursor:grabbing}#chart{position:absolute;left:0;top:0;display:block;max-width:none;max-height:none;object-fit:contain;transform-origin:0 0;width:100%;height:100%;pointer-events:none;user-select:none;-webkit-user-drag:none}#empty{text-align:center;max-width:470px;padding:28px;color:#91a0b5}.empty-mark{color:#54716f;font-size:52px}h3{font-size:18px;color:#d9e4f4;font-weight:500}#message{font-size:14px;line-height:1.6}footer{justify-content:space-between;gap:12px;padding:12px 18px;font-size:11px;color:#93a5bb;border-top:1px solid #243144}.note{font-size:12px;color:#8394aa;line-height:1.6}.demo{font-size:12px;color:#f4d199;background:#332817;border:1px solid #65502a;padding:12px 15px;border-radius:8px;margin-bottom:18px}.zoom-tools{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 6px;border-radius:10px;background:#0b1018e8;max-width:calc(100% - 16px)}.zoom-tools button{padding:8px 12px;min-width:44px}.zoom-tools output{font-size:12px;font-variant-numeric:tabular-nums;min-width:44px;text-align:center}.gesture-hint{font-size:11px;color:#a2b1c4;padding:0 8px;white-space:nowrap}#show-controls,#close-controls{display:none}[hidden]{display:none!important}
/* Keep the entire chart, including its price axis, inside Discord's safe area.
   ResizeObserver in viewer.js refits images when these insets change. */
body.focus-mode{overflow:hidden}.focus-mode main{max-width:none;padding:0;margin:0}.focus-mode main>header,.focus-mode .note{display:none}.focus-mode .viewer{position:fixed;inset:0;width:100%;height:100dvh;border:0;border-radius:0}.focus-mode .canvas{position:absolute;inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);width:auto;height:auto;min-height:0;max-height:none}.focus-mode .chart-heading{position:absolute;z-index:2;top:0;left:0;right:0;padding:calc(8px + var(--safe-top)) calc(8px + var(--safe-right)) 18px calc(8px + var(--safe-left));background:linear-gradient(#0b1018eb,#0b101800);border:0;pointer-events:none}.focus-mode .chart-label{flex-direction:column;align-items:flex-start;gap:3px;text-shadow:0 1px 3px #000;flex:1;overflow:hidden}.focus-mode .chart-label h2{max-width:100%}.focus-mode .view-actions{pointer-events:auto;flex-shrink:0}.focus-mode .view-actions button{font-size:12px;padding:8px 10px;background:#152133ed}.focus-mode #show-controls,.focus-mode #close-controls{display:block}.focus-mode footer{display:none}.focus-mode .zoom-tools{z-index:2;left:calc((100% + var(--safe-left) - var(--safe-right)) / 2);bottom:calc(8px + var(--safe-bottom));max-width:calc(100% - 16px - var(--safe-left) - var(--safe-right));flex-wrap:wrap}.focus-mode .toolbar{position:fixed;z-index:4;top:calc(64px + var(--safe-top));left:calc(8px + var(--safe-left));width:min(350px,calc(100% - 16px - var(--safe-left) - var(--safe-right)));max-height:calc(100dvh - 140px - var(--safe-top) - var(--safe-bottom));overflow:auto;display:flex;flex-direction:column;align-items:stretch;gap:18px;padding:18px;margin:0;border:1px solid #304054;border-radius:12px;background:#111c2bf5;box-shadow:0 12px 40px #0008}.focus-mode .toolbar .controls{display:grid;grid-template-columns:1fr 1fr;gap:14px}.focus-mode .toolbar select{width:100%;min-width:0}.focus-mode .control-actions{justify-content:space-between}.focus-mode.tools-hidden .chart-heading,.focus-mode.tools-hidden .zoom-tools{opacity:0;pointer-events:none}.focus-mode.tools-hidden .chart-heading button{pointer-events:none}.focus-mode .demo{position:fixed;z-index:3;top:calc(62px + var(--safe-top));left:calc(8px + var(--safe-left));font-size:10px;padding:5px 8px;pointer-events:none;max-width:calc(100% - 16px)}
@media(max-width:760px){main{padding:calc(8px + var(--safe-top)) calc(8px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(8px + var(--safe-left))}header{margin-bottom:10px}.brand p,.mark{display:none}.privacy{font-size:10px;padding:7px}h1{font-size:17px}.toolbar{gap:8px;margin-bottom:8px;align-items:flex-end}.controls{gap:6px}label{font-size:10px;gap:4px;letter-spacing:.5px}select{min-width:88px;padding:8px;font-size:12px}.control-actions button{font-size:12px;padding:8px}.chart-heading{padding:6px 8px}.chart-label{flex-direction:column;align-items:flex-start;gap:3px}h2{font-size:13px}.state{font-size:10px}.view-actions button{font-size:12px;padding:8px}.canvas{height:calc(100dvh - 230px);min-height:220px}footer{padding:8px;font-size:10px}#cadence,.note{display:none}.gesture-hint{width:100%;text-align:center;padding:2px 0 0;font-size:10px}.zoom-tools{bottom:36px;flex-wrap:wrap;min-width:264px}.focus-mode .zoom-tools{min-width:0;width:264px}.focus-mode #empty{padding:70px 22px 90px}.focus-mode .view-actions{gap:5px}}
@media(orientation:landscape) and (max-height:500px){.focus-mode .gesture-hint{display:none}.focus-mode .zoom-tools{left:auto;right:calc(8px + var(--safe-right));transform:none;width:auto}.focus-mode .chart-label{flex-direction:row;align-items:center;gap:12px}.focus-mode #empty{padding:65px 24px}.focus-mode .empty-mark{font-size:30px}.focus-mode h3{margin:10px 0}}

#video-chart { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #0b121c; }
#video-chart[hidden], #video-mode[hidden] { display: none; }
.viewer:has(#video-chart:not([hidden])) .zoom-tools { display: none; }
