:root{--bg:#f6f4ef;--card:#fff;--tx:#1d1d1b;--mut:#77746b;--gold:#b8860b;--grid:#e8e5dc;--up:#1a8f4c;--dn:#c0392b}
@media(prefers-color-scheme:dark){:root{--bg:#141412;--card:#1e1e1b;--tx:#f0ede4;--mut:#9a968a;--gold:#e0b441;--grid:#2e2d28;--up:#3ecf80;--dn:#ff6b5b}}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--tx);font:15px system-ui,sans-serif;display:flex;flex-direction:column;align-items:center;padding:24px 12px}
html,body{overscroll-behavior:none}
html{touch-action:manipulation} /* no double-tap-to-zoom on phones; pinch zoom still works */
h1{font-size:18px;font-weight:600;margin:0 0 4px}
/* Google Sans Flex (SIL OFL 1.1), self-hosted subset with only the letters of "GOLD BASIC" at weight 1000 */
@font-face{font-family:'Google Sans Flex';src:url(fonts/google-sans-flex-1000-goldbasic.woff2?v=32) format('woff2');font-weight:1000;font-display:swap;unicode-range:U+20,U+41-44,U+47,U+49,U+4C,U+4F,U+53}
.brand{font-family:'Google Sans Flex',system-ui,sans-serif;font-size:44px;font-weight:1000;letter-spacing:.5px;line-height:1.05;margin:0 0 6px}
.brand span{color:var(--gold)}
.sub{color:var(--mut);font-size:13px;margin-bottom:16px}
#box{width:960px;height:640px;min-width:320px;min-height:240px;max-width:100%;resize:both;overflow:hidden;background:var(--card);border:1px solid var(--grid);border-radius:12px;padding:16px;display:flex;flex-direction:column}
.top{display:flex;flex-direction:column;align-items:flex-start;gap:14px} /* big price / controls row … */
#ranges{margin-top:14px} /* … / date ranges, evenly spaced */
#modes{align-items:center;row-gap:8px}
#curPick{margin-right:6px}
.wip{position:relative;display:inline-flex}
.wip button{opacity:.5;cursor:not-allowed}
.wipTip{position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%) translateY(-4px);z-index:30;width:max-content;max-width:220px;padding:6px 9px;border-radius:6px;background:var(--tx);color:var(--bg);font-size:12px;line-height:1.35;text-align:center;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}
.wipTip::before{content:"";position:absolute;left:50%;top:-5px;margin-left:-5px;border:5px solid transparent;border-top:0;border-bottom-color:var(--tx)}
.wip.show .wipTip{opacity:1;transform:translateX(-50%)}
@media(hover:hover){.wip:hover .wipTip{opacity:1;transform:translateX(-50%)}}
#price{font-size:28px;font-weight:600}
.denom{font-size:13px;font-weight:600;color:var(--mut);margin-left:2px}
#chg{font-size:14px;margin-left:8px}
.up{color:var(--up)}.dn{color:var(--dn)}
.btns{display:flex;gap:4px;flex-wrap:wrap}
button{background:none;border:1px solid var(--grid);color:var(--tx);border-radius:6px;padding:4px 9px;font-size:13px;cursor:pointer}
button.on{background:var(--gold);border-color:var(--gold);color:#fff}
#wrap{flex:1;position:relative;min-height:0;margin-top:8px}
canvas{position:absolute;inset:0;width:100%;height:100%}
#cv{touch-action:pan-y} /* touch: sideways drags scrub the chart, up/down drags still scroll the page */
#tip{position:absolute;pointer-events:none;background:var(--tx);color:var(--bg);padding:6px 9px;border-radius:6px;font-size:12px;display:none;white-space:nowrap}
#src{color:var(--mut);font-size:12px;margin-top:6px;line-height:1.5}
#src b{color:var(--tx);font-weight:600}
#src a,.note a{color:inherit}
#msg{color:var(--mut);font-size:12px;margin-top:4px;min-height:16px}
#ld{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:14px;gap:4px;z-index:5;border-radius:8px}
#ld::before{content:"";position:absolute;inset:0;background:#fafafa;opacity:.92;border-radius:8px}
#ld>*{position:relative}
.ldt{font-size:14px;font-weight:600;color:#222;text-align:center;min-height:20px}
#ld canvas{position:absolute!important;inset:0;width:100%;height:100%}
#curPick{position:relative}
.switches{display:inline-flex;white-space:nowrap} /* Min/Max + Auto-scale wrap together */
.sw{display:inline-flex;align-items:center;gap:6px;margin-left:10px;font-size:13px;color:var(--mut);cursor:pointer;user-select:none;-webkit-user-select:none}
.sw input{position:absolute;opacity:0;width:1px;height:1px}
.sw .track{position:relative;width:36px;height:22px;border-radius:11px;background:var(--grid);transition:background .2s}
.sw .track::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0005;transition:transform .25s cubic-bezier(.3,1.5,.5,1)}
.sw input:checked+.track{background:var(--gold)}
.sw input:checked+.track::after{transform:translateX(14px)}
.sw input:focus-visible+.track{outline:2px solid var(--gold);outline-offset:2px}
#curBtn{display:flex;align-items:center;gap:6px;height:100%}
#curBtn::after{content:"";border:4px solid transparent;border-top-color:currentColor;margin:4px 0 0 2px}
#curPop{position:absolute;left:0;top:calc(100% + 4px);z-index:20;width:290px;max-width:80vw;background:var(--card);border:1px solid var(--grid);border-radius:8px;box-shadow:0 6px 20px #0003;padding:6px}
#curPop[hidden]{display:none}
#curQ{width:100%;font:13px system-ui;color:var(--tx);background:var(--bg);border:1px solid var(--grid);border-radius:6px;padding:6px 8px;outline:none}
#curQ:focus{border-color:var(--gold)}
#curList{list-style:none;margin:6px 0 0;padding:0;max-height:260px;overflow:auto;overscroll-behavior:contain;--rb:0px}
#curList li{transform:translateY(var(--rb))}
#curList.spring li{transition:transform .45s cubic-bezier(.2,1.6,.4,1)}
#curList li{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap}
#curList li .land{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
#curList li b{font-weight:600;font-size:12px;color:var(--mut)}
#curList li:hover,#curList li.act{background:var(--grid)}
#curList li[aria-selected=true] .land,#curList li[aria-selected=true] b{color:var(--gold);font-weight:600}
#curList li.none{cursor:default;color:var(--mut)}
.flag{width:20px;height:15px;flex:none;border-radius:2px;box-shadow:0 0 0 1px #0002}
#srcbar{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:12px;color:var(--mut)}
#srcSel,.modeSel{font:inherit;color:var(--tx);background:var(--card);border:1px solid var(--grid);border-radius:6px;padding:3px 6px;max-width:100%;cursor:pointer}
#play{display:none;width:fit-content;max-width:100%;margin-top:18px;margin-bottom:200px} /* blank space under the playground, independent of its size */
#play .ph{font-size:13px;color:var(--mut);margin-bottom:6px;width:0;min-width:100%}
#playwrap{position:relative;width:960px;height:300px;min-width:320px;min-height:160px;max-width:100%;resize:both;background:#fafafa;border:1px solid var(--grid);border-radius:12px;overflow:hidden}
#playwrap canvas{position:absolute;inset:0;width:100%;height:100%}
#ld .modeSel{margin-top:6px}
#coinbar{position:absolute!important;top:10px;left:10px;z-index:6;display:none;gap:6px;align-items:flex-start}
#coinbar select,#coinbar button{font:12px system-ui;background:rgba(255,255,255,.92);color:#222;border:1px solid #bbb;border-radius:6px;padding:4px 7px;cursor:pointer}
#gear{display:inline-flex;align-items:center;justify-content:center;padding:3px 5px} /* Material Symbols "settings" (Apache 2.0) */
#gear svg{fill:currentColor;display:block}
#aaPanel{display:none;position:absolute;top:100%;left:0;margin-top:6px;min-width:190px;background:rgba(255,255,255,.96);color:#222;border:1px solid #bbb;border-radius:8px;padding:8px 10px;font-size:12px;flex-direction:column;gap:8px}
#aaPanel label{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ctl{display:flex;gap:10px 28px;flex-wrap:wrap;justify-content:center;background:var(--card);border:1px solid var(--grid);border-radius:12px;padding:10px 20px;margin-bottom:14px}
.ctl label{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--mut)}
.ctl output{min-width:52px;color:var(--tx);font-weight:600;font-variant-numeric:tabular-nums}
input[type=range]{-webkit-appearance:none;appearance:none;width:150px;height:6px;border-radius:3px;outline:none;cursor:pointer;background:linear-gradient(to right,var(--gold) var(--p,50%),var(--grid) var(--p,50%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--card);border:3px solid var(--gold);box-shadow:0 1px 4px #0003;transition:transform .12s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}
input[type=range]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--card);border:3px solid var(--gold)}
.note{max-width:960px;color:var(--mut);font-size:12px;margin-top:12px}
