  :root {
    --bg:#0E1310; --card:#161D19; --card2:#1D2521; --line:#263029; --line2:#2E3A32;
    --ink:#E5ECE7; --ink-rgb:229,236,231; --dim:#919C94; --faint:#5C665F;
    --strong:#fff;
    --red:#E2594C; --red-rgb:226,89,76; --red-bg:rgba(var(--red-rgb),.10);
    --yellow:#D9A23F; --yellow-rgb:217,162,63; --yellow-bg:rgba(var(--yellow-rgb),.10);
    --green:#3FA26E; --green-rgb:63,162,110;
    --orange:#E08A3C; --orange-rgb:224,138,60;
    --neutral:#59645D;                    
    --accent:#D9A441;                     
    --wash-rgb:255,255,255;               
    --track:rgba(0,0,0,.35);              
    --shadow:rgba(0,0,0,.35);
    --flash-up:#A3E635; --flashup-rgb:163,230,53;
    --flash-dn:#FF1744; --flashdn-rgb:255,23,68;
    --abs-buy:#35C9C4; --abs-sell:#E86BB5;
    --tag-bg:#0A0F0C;                     
    --minibg:rgba(18,22,20,.92);          
    --mono:ui-monospace,Consolas,'Cascadia Mono',monospace;
    --sans:'Roboto',-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB",
           "Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;
  }
  
  body.lt {
    --bg:#F4F3EE; --card:#FFFFFF; --card2:#F7F5EE; --line:#DAD6CA; --line2:#E2DDD0;
    --ink:#1E2530; --ink-rgb:30,37,48; --dim:#626B77; --faint:#8B93A0;
    --strong:#000;
    --red:#B23A42; --red-rgb:178,58,66; --red-bg:rgba(var(--red-rgb),.08);
    --yellow:#A87716; --yellow-rgb:168,119,22; --yellow-bg:rgba(var(--yellow-rgb),.08);
    --green:#1E7F4F; --green-rgb:30,127,79;
    --orange:#C0731A; --orange-rgb:192,115,26;
    --neutral:#8B93A0;
    --accent:#9A6D1B;
    --wash-rgb:30,37,48;                  
    --track:rgba(30,37,48,.10);
    --shadow:rgba(30,37,48,.14);
    --flash-up:#2E7D32; --flashup-rgb:46,125,50;
    --flash-dn:#C62828; --flashdn-rgb:198,40,40;
    --abs-buy:#1B5FC1; --abs-sell:#B0347F;   
    --tag-bg:#FFFFFF;
    --minibg:rgba(255,255,255,.94);
    --bar-up:#FAF6ED;                     
    --bar-dn:#3A4048;                     
  }
  
  @font-face { font-family:'DS-Digital'; font-weight:700; font-style:normal;
               font-display:swap; src:url('/DS-DIGIB.ttf') format('truetype'); }
  * { box-sizing:border-box; }
  html { font-size:14px; }   
  body { background:var(--bg); color:var(--ink); font-family:var(--sans);
         margin:0; padding:1.5rem clamp(2rem, 6vw, 9rem) 3rem; font-size:1rem; }

  header { display:flex; justify-content:space-between; align-items:flex-start;
           gap:1rem; flex-wrap:wrap; margin-bottom:.8rem; }
  h1 { font-size:1.35rem; font-weight:700; letter-spacing:.08em; color:var(--ink);
       margin:.2rem 0 0; text-transform:uppercase; }
  
  #phasebar { display:flex; align-items:center; gap:.55rem; flex-wrap:wrap;
              margin:.55rem 0 0; color:var(--dim); font-size:1rem; }
  .plamp { width:.7em; height:.7em; border-radius:50%; background-color:var(--faint);
           flex:none; transition:background-color .3s; align-self:center; }
  .plamp.rth { background-color:var(--green); box-shadow:0 0 8px rgba(var(--green-rgb),.7); }
  .plamp.eth { background-color:var(--orange); box-shadow:0 0 8px rgba(var(--orange-rgb),.6); }
  .plamp.red { background-color:var(--red); box-shadow:0 0 8px rgba(var(--red-rgb),.7); }
  
  .ibadge { width:24px; height:24px; border-radius:50%; display:inline-flex; flex:none;
            align-items:center; justify-content:center; align-self:center;
            font-size:9px; font-weight:800; color:#fff; letter-spacing:0; }
  .ibadge.sp { background:#C93A3A; }
  .ibadge.nd { background:#2E6BC8; }
  .ibadge.au { background:linear-gradient(135deg,#E8C24A,#B8860B); color:#3E2E00;
               font-size:11px; }
  #next { color:var(--faint); font-variant-numeric:tabular-nums; }
  
  #headleft { flex:1 1 0; }
  #headright { flex:1 1 0; display:flex; justify-content:flex-end; }
  #clockbox { flex:0 0 auto; display:flex; flex-direction:column; align-items:center; gap:.25rem; }
  
  #clock { font-family:'DS-Digital',var(--mono); font-weight:700; font-size:3rem;
           line-height:1.05; letter-spacing:.03em; font-variant-numeric:tabular-nums; }
  
  #clock .dg { font-style:normal; display:inline-block; width:1ch; text-align:center; }
  #clock small { font-family:var(--sans); font-size:1rem; color:var(--dim);
                 letter-spacing:0; margin-left:.45em; vertical-align:.5em; }
  #dateline { color:var(--dim); font-size:1rem; }
  
  #switches { display:flex; flex-direction:column; gap:.45rem; margin-top:.3rem;
              align-items:flex-end; }
  .swrow { display:flex; align-items:center; gap:.7em; cursor:pointer; user-select:none; }
  .swname { color:var(--dim); font-size:1rem; }
  .sw { position:relative; display:inline-block; width:3.15em; height:1.7em; border-radius:99px;
        background-color:var(--neutral); cursor:pointer; transition:background-color .18s; }
  .sw.on { background-color:var(--green); }
  .sw .knob { position:absolute; top:.2em; left:.2em; width:1.3em; height:1.3em; border-radius:50%;
              background:#fff; transition:left .18s; box-shadow:0 1px 3px var(--shadow); }
  .sw.on .knob { left:calc(100% - 1.5em); }

  #warnbar { display:flex; gap:.5rem; flex-wrap:wrap; margin:0 0 1rem; }
  .chip { display:inline-flex; align-items:center; gap:.35em; padding:.22em .6em;
          border-radius:6px; font-size:1rem; background:var(--yellow-bg);
          color:var(--yellow); border:1px solid rgba(var(--yellow-rgb),.25); }
  
  #econbox { background:var(--card); border:1px solid var(--line); border-radius:10px;
             padding:.7rem 1.1rem; margin:0 0 .7rem; }
  #econhead { display:flex; align-items:center; gap:.9rem; flex-wrap:wrap; }
  
  .fold { cursor:pointer; user-select:none; }
  .foldtitle { color:var(--ink); font-size:1.05rem; font-weight:600; letter-spacing:.02em; }
  .foldarrow { margin-left:auto; color:var(--dim); display:inline-flex; }
  .foldarrow svg { width:22px; height:22px; transition:transform .18s ease; }
  .foldarrow.open svg { transform:rotate(180deg); }
  .fold:hover .foldarrow { color:var(--ink); }
  #econblk { color:var(--red); font-weight:600; font-size:1rem; }
  #econlist { margin-top:.4rem; }
  .evrow { display:flex; align-items:baseline; gap:.8rem; padding:.28rem 0;
           border-top:1px solid var(--line); font-size:1rem; color:var(--dim); }
  .evrow time { color:var(--faint); font-family:var(--mono); white-space:nowrap; }
  .evrow .high { color:var(--red); }
  .evrow .med { color:var(--yellow); }
  .evrow .sep { color:var(--faint); }
  .evrow.past { opacity:.38; }
  .evrow .cd { color:var(--ink); white-space:nowrap; }

  
  #cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
  #cards > .card.bigslot { grid-column:1 / -1; }
  
  @media (min-width:861px) {
    
    
    #cards > .card.bigslot .spark { height:min(34vw, 560px); }
  }
  @media (max-width:860px) { #cards { grid-template-columns:1fr; } }
  .card { background:var(--card); border:1px solid var(--line); border-radius:10px;
          padding:.9rem 1.1rem; }
  .card.card-ES { border-color:rgba(var(--red-rgb),.5); }
  .card.card-NQ { border-color:rgba(86,148,222,.55); }
  .card.card-GC { border-color:rgba(212,175,55,.55); }
  .card-head { display:flex; align-items:center; gap:.9rem; flex-wrap:wrap; }
  
  .card { container-type:inline-size; }
  @container (max-width:640px) {
  }
  
  @container (max-width:430px) {
  }
  
  .card.ghosting { border:2px dashed var(--dim); background:transparent; position:relative; }
  .card.ghosting > * { visibility:hidden; }
  .card.ghosting::after { content:'Move to here'; position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center; color:var(--dim);
    font-size:1.1rem; font-weight:600; letter-spacing:.04em; }
  .instr { font-size:1.4rem; font-weight:700; letter-spacing:.03em; }
  #lastupd { color:var(--faint); font-size:1rem; margin-top:.15rem; }
  
  .light { display:inline-flex; align-items:center; gap:.45em; padding:.2em .8em;
           border-radius:99px; font-size:1.05rem; font-weight:600; cursor:default;
           border:1px solid; }
  .light .lamp { font-size:1.35rem; line-height:1; }
  .light.red { color:var(--red); background:var(--red-bg); border-color:rgba(var(--red-rgb),.35); }
  .light.rth { color:var(--green); background:rgba(var(--green-rgb),.10); border-color:rgba(var(--green-rgb),.35); }
  .light.eth { color:var(--orange); background:rgba(var(--orange-rgb),.10); border-color:rgba(var(--orange-rgb),.35); }
  .light.off { color:var(--faint); background:rgba(var(--wash-rgb),.03); border-color:var(--line); }
  .state { color:var(--dim); margin-top:.55rem; font-size:1rem; }
  
  .mainrow { display:flex; gap:.7rem; align-items:stretch; }
  .mainleft { flex:7 1 0; min-width:0; }
  .mainact { flex:3 1 0; min-width:0; position:relative; margin-top:.6rem;
             border:1px solid var(--line); border-radius:6px; }
  
  .mainrow.folded .mainact { flex:0 0 1.5rem; border-style:dashed; }
  .mainrow.folded .mainact-in { display:none; }
  .actfold { position:absolute; top:0; left:0; bottom:0; z-index:2; width:1.3rem;
             line-height:1; font-size:1rem; cursor:pointer; padding:0;
             background:rgba(var(--wash-rgb),.04); border:none;
             border-right:1px solid var(--line); border-radius:5px 0 0 5px;
             color:var(--faint); }
  .mainrow.folded .actfold { position:static; width:100%; height:100%;
                             background:none; border:none; border-radius:6px; }
  
  .actfold:hover, .mainrow.folded .actfold:hover {
    color:var(--ink); background:rgba(var(--wash-rgb),.10); }
  .actfold i { font-style:normal; display:inline-block; }
  .mainact-in { position:absolute; inset:0 0 0 1.3rem; overflow-y:auto;
                padding:.45rem .7rem; }
  .mainact .hunts { margin-top:0; padding-top:0; }
  
  .spark { display:block; width:100%; height:300px; touch-action:pan-y;
           border:1px solid var(--line); border-radius:6px; padding:3px;
           cursor:grab; user-select:none; }
  
  .ckx { position:absolute; inset:0; width:100% !important; height:100% !important;
         pointer-events:none; }
  .ckxsp { border:1px solid transparent; border-radius:6px; padding:3px; }
  .spark:active { cursor:grabbing; }
  
  .ck .up { color:var(--green); }
  .ck .dn { color:var(--red); }
  .ck g.cd line { stroke:currentColor; stroke-width:1; }
  .ck g.cd rect { fill:currentColor; }
  
  body.lt .ck g.cd line { stroke:var(--bar-dn); }
  body.lt .ck g.cd.up rect { fill:var(--bar-up); stroke:var(--bar-dn); stroke-width:1; }
  body.lt .ck g.cd.dn rect { fill:var(--bar-dn); }
  .ck .ema { fill:none; stroke:var(--yellow); stroke-width:1.4; }
  .ck .grid { stroke:rgba(var(--wash-rgb),.06); }
  .ck .axlbl { fill:var(--faint); font-size:10px; font-family:var(--mono); }
  
  .ck .ckwm { fill:var(--ink); opacity:.13; font-size:26px; font-weight:700;
              letter-spacing:.08em; pointer-events:none; }
  #ovchart .axlbl { font-size:14px; }           
  #ovchart .cross text { font-size:14px; }
  .ck .cross line { stroke:rgba(var(--ink-rgb),.4); stroke-dasharray:3 3; }
  .ck .cross rect { fill:var(--tag-bg); stroke:var(--line); }
  .ck .cross text { fill:var(--ink); font-size:10px; font-family:var(--mono); }
  .ck [data-ev] { cursor:pointer; }
  .abs-buy { color:var(--abs-buy); stroke:var(--abs-buy); }
  .abs-sell { color:var(--abs-sell); stroke:var(--abs-sell); }
  
  #ovbox { display:none; position:fixed; inset:0; z-index:50; background:rgba(0,0,0,.55);
           align-items:center; justify-content:center; }
  #ovpanel { background:var(--card); border:1px solid var(--line); border-radius:10px;
             padding:.8rem 1rem 1rem; width:min(94vw, 1200px); }
  #ovhead { display:flex; align-items:baseline; gap:.8rem; margin-bottom:.5rem; }
  #ovtitle { font-size:1.05rem; font-weight:600; }
  #ovhint { color:var(--faint); font-size:.85rem; margin-left:auto; }
  #ovclose, #ovlive { background:none; border:1px solid var(--line); color:var(--dim);
             border-radius:6px; cursor:pointer; font-size:1rem; padding:.1em .6em; }
  #ovclose:hover, #ovlive:hover { color:var(--ink); border-color:var(--dim); }
  #ovlive { color:var(--green); border-color:rgba(var(--green-rgb),.4); }
  #ovchart { cursor:grab; user-select:none; position:relative; }
  #ovchart:active { cursor:grabbing; }
  #ovchart svg { display:block; width:100%; height:auto; }
  .arow[data-ev] { cursor:pointer; }
  .arow[data-ev]:hover { background:rgba(var(--wash-rgb),.04); }
  
  #flashbox { display:flex; flex-direction:column; gap:.5rem; }
  #flashbox:not(:empty) { margin:0 0 1rem; }
  .flash { border-radius:8px; padding:.55rem 1rem; font-size:1.05rem; font-weight:600;
           cursor:pointer; border:1px solid; display:flex; gap:.7em; align-items:baseline;
           animation:flashin .25s ease; }
  .flash time { color:var(--ink); font-weight:400; margin-left:auto; }
  .flash.f-up { color:var(--flash-up); border-color:rgba(var(--flashup-rgb),.45); background:rgba(var(--flashup-rgb),.08); }
  .flash.f-dn { color:var(--flash-dn); border-color:rgba(var(--flashdn-rgb),.45); background:rgba(var(--flashdn-rgb),.08); }
  @keyframes flashin { from { opacity:0; transform:translateY(-6px); } to { opacity:1; } }
  .sparkwrap { position:relative; margin-top:.8rem; }   
  
  .skel { position:relative; overflow:hidden; background:rgba(var(--wash-rgb),.04);
          cursor:default; }
  .skel::after { content:''; position:absolute; inset:0; transform:translateX(-100%);
    background:linear-gradient(90deg, transparent, rgba(var(--wash-rgb),.07), transparent);
    animation:skelmove 1.4s infinite; }
  @keyframes skelmove { 100% { transform:translateX(100%); } }
  .skeltxt { position:absolute; inset:0; display:flex; align-items:center;
             justify-content:center; color:var(--faint); font-size:.95rem; }
  .ckreset { position:absolute; top:30px; right:8px; background:var(--minibg);
             border:1px solid var(--line); color:var(--dim); border-radius:6px;
             padding:.05em .35em; cursor:pointer; font-size:1rem; line-height:1.2; }
  .ckreset:hover { color:var(--ink); border-color:var(--dim); }
  
  .tfbar { position:absolute; top:8px; left:8px; display:flex; gap:5px; opacity:.8; }
  .sparkwrap:hover .tfbar { opacity:1; }
  
  .tfbtn.on { background:rgba(var(--wash-rgb),.16); color:var(--ink); font-weight:600;
              border-color:rgba(var(--wash-rgb),.45); cursor:default; }
  .tfbtn { background:rgba(var(--wash-rgb),.05); border:1px solid rgba(var(--wash-rgb),.16);
           color:var(--dim); border-radius:6px; padding:.22em 0; cursor:pointer;
           font-size:.8rem; line-height:1.35; letter-spacing:.03em; min-width:3em;
           text-align:center; }
  .tfbtn:hover { background:rgba(var(--wash-rgb),.12); color:var(--ink);
                 border-color:rgba(var(--wash-rgb),.32); }
  
  .hunts { margin-top:.7rem; padding-top:4px;
           font-size:12px; color:var(--faint); }
  
  .hunts .anum { color:var(--yellow); font-weight:700; }
  .hunts .acthead { color:var(--dim); letter-spacing:.06em; margin-bottom:.15rem;
                    text-transform:uppercase; }
  .hunts .arow { padding:4px 0; border-top:1px solid var(--line); }
  .hunts .arow.first { color:var(--ink); font-weight:700; }
  .hunts .arow time { color:var(--faint); margin-right:.5em; font-weight:400; }
  .hunt-empty { color:var(--faint); }
  .hunt-up { color:var(--green); }
  .hunt-dn { color:var(--red); }
  .metrics { margin-top:.45rem; display:flex; gap:1.1rem; flex-wrap:wrap;
             font-size:1rem; color:var(--dim); }
  .adr-g { color:var(--green); } .adr-o { color:var(--orange); } .adr-r { color:var(--red); font-weight:600; }
  .surv-line { margin-top:.5rem; display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
  .surv.quiet { color:var(--faint); font-size:1rem; }

  #ctxbox { margin-top:1.5rem; background:var(--card); border:1px solid var(--line);
            border-radius:10px; padding:.9rem 1.1rem; }
  #ctxhead { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
  #ctxbox.closed #ctxtabs, #ctxbox.closed #sectors,
  #ctxbox.closed #tmap, #ctxbox.closed #tmapfoot { display:none; }
  .tab { background:none; border:1px solid var(--line); color:var(--dim); border-radius:6px;
         padding:.25em .7em; cursor:pointer; font-size:1rem; }
  .tab.on { color:var(--ink); border-color:var(--dim); background:rgba(var(--wash-rgb),.04); }
  #ctxnote { margin-left:auto; color:var(--faint); font-size:1rem; }
  #ctxhead .foldarrow { margin-left:0; }
  #sectors { display:flex; gap:.45rem; flex-wrap:wrap; margin:.7rem 0 .5rem; }
  .sec { font-size:1rem; color:var(--dim);
         border:1px solid var(--line); border-radius:5px; padding:.15em .5em; }
  #tmap { position:relative; width:100%; height:clamp(420px,58vh,680px); margin-top:.3rem; }
  .tile { position:absolute; overflow:hidden; border:1px solid var(--bg); border-radius:2px;
          line-height:1.25; padding:2px 4px; cursor:default; }
  .tile b { font-size:1rem; font-weight:600; display:block; color:var(--ink); }
  .tile i { font-style:normal; font-size:1rem; color:rgba(var(--ink-rgb),.75); }
  #gcgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
            gap:.6rem; margin-top:.5rem; }
  .gctile { border:1px solid var(--line); border-radius:8px; padding:.6rem .8rem; }
  .gctile .nm { color:var(--dim); font-size:1rem; }
  .gctile .px { font-size:1.05rem; margin-top:.15rem; }
  .gctile .ch { font-size:1rem; }
  .up { color:var(--green); } .dn { color:var(--red); }
  #tmapfoot { display:flex; align-items:center; margin-top:.5rem; color:var(--faint);
              font-size:1rem; }
  #legend { display:flex; align-items:center; gap:2px; }
  #legend span { width:26px; height:10px; border-radius:2px; display:inline-block; }
  #ctxts { margin-left:auto; }
  #newsbox { margin-top:1.4rem; background:var(--card); border:1px solid var(--line);
             border-radius:10px; padding:.9rem 1.1rem; }
  #newshead { color:var(--ink); font-size:1.15rem; font-weight:600;
              letter-spacing:.06em; text-transform:uppercase; }
  #newssub { margin-left:.8em; text-transform:none; letter-spacing:0;
             font-size:1rem; font-weight:400; color:var(--dim); }
  #news { list-style:none; margin:.5rem 0 0; padding:0; font-size:1rem; }
  #news li { padding:.3rem 0; border-top:1px solid var(--line); display:flex; gap:.6rem;
             align-items:baseline; }
  #news li time { color:var(--faint); font-size:1rem; white-space:nowrap; }
  #news li .src { color:var(--faint); font-size:1rem; white-space:nowrap; }
  #news li a { color:var(--dim); text-decoration:none; }
  #news li a:hover { color:var(--ink); }
  #news li.macro a { color:var(--ink); }
  .dot { color:var(--yellow); }
  .dimli { color:var(--faint); border:none !important; }
  #mute { background:none; border:none; cursor:pointer; font-size:1.3rem;
          padding:0 .15em; line-height:1; }
  #mute:hover { filter:brightness(1.3); }

  footer { margin-top:1.6rem; color:var(--faint); font-size:1rem;
           line-height:1.7; }
  
  #navtabs { display:inline-flex; flex-wrap:wrap; gap:.25rem; margin:0 0 1rem;
             padding:.3rem; max-width:100%;
             background:rgba(var(--wash-rgb),.05); border:1px solid var(--line);
             border-radius:12px; }
  .navtab { display:inline-flex; align-items:center; gap:.55em;
            background-color:transparent; border:none; color:var(--dim); border-radius:9px;
            padding:.45em 1.3em; cursor:pointer; font-size:1.02rem; font-weight:600;
            transition:background-color .15s ease, color .15s ease; }
  .navtab svg { width:18px; height:18px; }
  .navtab:hover { color:var(--ink); }
  .navtab.on { color:var(--ink); background-color:rgba(var(--wash-rgb),.12);
               box-shadow:0 2px 8px var(--shadow); }
  body.tab-fs #tab-monitor, body.tab-ib #tab-monitor,
  body.tab-macro #tab-monitor, body.tab-pt #tab-monitor { display:none; }
  body:not(.tab-fs) #tab-fs { display:none; }
  body:not(.tab-ib) #tab-ib { display:none; }
  body:not(.tab-macro) #tab-macro { display:none; }
  body:not(.tab-pt) #tab-pt { display:none; }

  
  #fshead, #ibhead, #pthead { color:var(--ink); font-size:1.15rem; font-weight:600; letter-spacing:.05em; }
  #fserr, #iberr, #pterr { color:var(--yellow); font-size:1rem; font-weight:400; margin-left:.8em; }
  #ibtabs { display:flex; gap:.45rem; margin:.8rem 0 0; }
  #fsstats, #ibstats, #ptstats { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
             gap:.6rem; margin:1rem 0; }
  .fspanel { background:var(--card); border:1px solid var(--line); border-radius:10px;
             padding:.9rem 1.1rem; margin-bottom:1rem; }
  .fstitle { color:var(--faint); font-size:.85rem; letter-spacing:.05em;
             text-transform:uppercase; margin-bottom:.5rem; }
  #fseq, #ibeq { display:block; width:100%; height:220px; }
  #fsdaily, #ibdaily { display:block; width:100%; height:150px; }
  #fstwrap, #ibtwrap, #ibsigwrap, #ptopenwrap, #pttwrap { max-height:420px; overflow-y:auto; }
  #fstable, #ibtable, #ibsigtable, #ptopen, #pttable { width:100%; border-collapse:collapse; font-size:.95rem; }
  #fstable th, #fstable td, #ptopen th, #ptopen td, #pttable th, #pttable td,
  #ibtable th, #ibtable td, #ibsigtable th, #ibsigtable td { padding:.28rem .5rem; text-align:right;
                             border-top:1px solid var(--line); white-space:nowrap; }
  #fstable th, #ibtable th, #ibsigtable th, #ptopen th, #pttable th { color:var(--faint); font-weight:500;
                border-top:none; position:sticky; top:0; background:var(--card); }
  #fstable th:first-child, #fstable td:first-child,
  #ibtable th:first-child, #ibtable td:first-child,
  #ptopen th:first-child, #ptopen td:first-child,
  #pttable th:first-child, #pttable td:first-child,
  #ibsigtable th:first-child, #ibsigtable td:first-child { text-align:left; }
  #ibsigtable .sig-nt { color:var(--faint); }


  
  #mchead { color:var(--ink); font-size:1.15rem; font-weight:600; letter-spacing:.05em;
            margin-bottom:1rem; }
  #mcsub { margin-left:.9em; font-size:1rem; font-weight:400; color:var(--dim);
           letter-spacing:0; }
  #mcerr { color:var(--yellow); font-size:1rem; font-weight:400; margin-left:.8em; }
  #mcupd { margin-left:.9em; font:inherit; font-size:.85rem; font-weight:600;
           letter-spacing:0; color:var(--accent); background:transparent;
           border:1px solid var(--accent); border-radius:6px; padding:.25rem .7rem;
           cursor:pointer; vertical-align:2px; opacity:.85; }
  #mcupd:hover:not(:disabled) { opacity:1; }
  #mcupd:disabled { color:var(--dim); cursor:default; }
  .mc-sechead { margin:1.4rem 0 .6rem; }
  
  .mctag { margin-left:.6em; font-size:.68rem; font-weight:400; letter-spacing:.05em;
           padding:.1rem .45rem; border-radius:99px; vertical-align:1px; }
  .mctag.live { color:var(--green); border:1px solid rgba(var(--green-rgb),.35); }
  .mctag.judge { color:var(--dim); border:1px solid var(--line); }
  
  .mclamp { display:inline-block; width:.62em; height:.62em; border-radius:50%;
            background-color:var(--faint); margin-right:.5em; vertical-align:.04em;
            transition:background-color .3s; }
  .mclamp.live { background-color:var(--green);
                 box-shadow:0 0 6px rgba(var(--green-rgb),.65); }
  .mclamp.idle { background-color:var(--yellow);
                 box-shadow:0 0 6px rgba(var(--yellow-rgb),.5); }
  .mclegend .mclamp { margin:0 .4em 0 1.2em; }
  .mclegend .mclamp:first-child { margin-left:0; }
  
  .mcrep-ts { color:var(--faint); font-size:.85rem; font-weight:400; }
  .mcrep-body { margin:.6rem 0 0; word-break:break-word; color:var(--dim);
                font-size:.95rem; line-height:1.65; border-top:1px solid var(--line);
                padding-top:.4rem; }
  .mcrep-body p { margin:.55rem 0; }
  .mcrep-body ul { margin:.45rem 0; padding-left:1.25rem; }
  .mcrep-body li { margin:.35rem 0; }
  .mcrep-body b { color:var(--ink); font-weight:600; }
  .mcrep-body code { font-family:var(--mono); font-size:.9em; color:var(--ink);
                     background:var(--card2); border-radius:4px; padding:.05em .35em; }
  .mcrep-body a { color:var(--faint); }
  .mcrep-body a:hover { color:var(--ink); }
  
  #mctrig:not(:empty) { margin:1rem 0; }
  .mc-trig { background:var(--red-bg); color:var(--red); font-weight:600;
             border:1px solid rgba(var(--red-rgb),.4); border-radius:8px;
             padding:.55rem .9rem; margin-bottom:.5rem; }
  #mcthesis { font-size:1rem; line-height:1.75; color:var(--ink); }
  
  #mcquotes, #mcstatic {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(185px,1fr));
    gap:.6rem; }
  #mcstatic { margin-top:.8rem; padding-top:.8rem; border-top:1px solid var(--line); }
  .mcq { background:var(--card2); border:1px solid var(--line2); border-radius:8px;
         padding:.65rem .8rem; display:flex; flex-direction:column; gap:.15rem; }
  .mcq.hot { border-color:rgba(var(--red-rgb),.55); background:var(--red-bg); }
  .mcq .nm { color:var(--faint); font-size:.88rem; letter-spacing:.03em; }
  
  .mcq .pxrow { display:flex; align-items:baseline; gap:.2rem .6rem; flex-wrap:wrap; }
  .mcq .px { font-size:1.25rem; font-weight:600; font-variant-numeric:tabular-nums;
             font-family:var(--mono); }
  .mcq .ch { font-size:.95rem; font-variant-numeric:tabular-nums; margin-left:auto; }
  .mcq .nt { color:var(--faint); font-size:.88rem; margin-top:auto; }
  
  .mcx > summary, .mca > summary, .mcw > summary {
    display:block; list-style:none; cursor:pointer; }
  .mcx > summary::-webkit-details-marker,
  .mca > summary::-webkit-details-marker,
  .mcw > summary::-webkit-details-marker { display:none; }
  .mcx-arw { margin-left:auto; flex:none; width:1.1em; height:1.1em;
             border-right:2px solid var(--faint); border-bottom:2px solid var(--faint);
             transform:rotate(45deg) translate(-.15em,-.15em);
             transition:transform .18s ease; align-self:center; }
  details[open] > summary .mcx-arw {
    transform:rotate(-135deg) translate(-.15em,-.15em); }
  summary:hover .mcx-arw { border-color:var(--ink); }
  .mcx-body { color:var(--dim); font-size:1rem; line-height:1.75; margin-top:.6rem;
              padding-top:.6rem; border-top:1px solid var(--line); }
  .mcx > summary { display:flex; align-items:center; gap:.6rem;
                   color:var(--dim); font-size:1rem; }
  .fshint { margin-left:.7em; color:var(--faint); font-weight:400;
            text-transform:none; letter-spacing:0; }
  #mcfednote .mcx { margin-top:.7rem; }
  .mcb-x { margin-top:.5rem; }
  .mcb-x > summary { font-size:1rem; }

  
  .mcg { background:var(--card2); border:1px solid var(--line2); border-radius:8px;
         padding:.6rem .8rem; margin-bottom:.55rem; }
  .mcg:last-child { margin-bottom:0; }
  .mcg.hit { border-color:rgba(var(--red-rgb),.5); background:var(--red-bg); }
  .mcg-top { display:flex; align-items:baseline; gap:.8rem; flex-wrap:wrap;
             font-variant-numeric:tabular-nums; }
  .mcg-nm { color:var(--dim); font-size:1rem; min-width:7em; }
  .mcg-px { font-size:1.3rem; font-weight:700; }
  .mcg-gap { font-size:1rem; font-weight:600; color:var(--yellow); }
  .mcg.hit .mcg-gap { color:var(--red); }
  .mcg-line { margin-left:auto; color:var(--faint); font-size:1rem; }
  .mcg-barrow { display:flex; align-items:center; gap:.7rem; margin:.45rem 0 .35rem; }
  .mcg-bar { flex:1; height:.5rem; border-radius:4px; background:var(--track);
             overflow:hidden; position:relative; }
  .mcg-bar i { display:block; height:100%; background:var(--yellow);
               transition:width .4s ease; }
  .mcg.hit .mcg-bar i { background:var(--red); }
  
  .mcg-bar u { position:absolute; top:0; height:100%; border-radius:4px;
               transition:left .4s ease, width .4s ease; }
  .mcg-bar u.up { background:var(--green); }
  .mcg-bar u.dn { background:var(--red); }
  .mcg-d { font-size:1rem; font-weight:600; font-variant-numeric:tabular-nums;
           min-width:5.2em; text-align:right; color:var(--faint); flex:none; }
  .mcg-d.up { color:var(--green); }
  .mcg-d.dn { color:var(--red); }
  .mcg-note { color:var(--faint); font-size:1rem; line-height:1.6; margin-top:.3rem; }
  .mcg-empty { color:var(--faint); font-size:1rem; }
  .mcw .mcg { margin-top:.55rem; }
  
  #mcassets { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
  .mca { border:1px solid var(--line2); border-radius:8px; padding:.65rem .85rem;
         background:var(--card2); }
  .mca-top { display:flex; align-items:baseline; gap:.5rem .7rem; flex-wrap:wrap; }
  .mca-nm { font-size:1.02rem; font-weight:600; }
  .mca-px { color:var(--dim); font-size:.95rem; font-variant-numeric:tabular-nums;
            font-family:var(--mono); }
  
  .mca-note { color:var(--dim); opacity:.8; font-size:.85rem; }
  .mca-note::before { content:"· "; opacity:.6; }
  .mca-st { font-size:1rem; font-weight:600; padding:.1em .55em; border-radius:5px;
            border:1px solid var(--line); }
  .mca-st.up { color:var(--green); border-color:rgba(var(--green-rgb),.35); }
  .mca-st.down { color:var(--red); border-color:rgba(var(--red-rgb),.35); }
  .mca-st.warn { color:var(--yellow); border-color:rgba(var(--yellow-rgb),.35); }
  .mca-st.neutral { color:var(--dim); }
  
  .mcp { display:flex; align-items:center; gap:.6rem; margin-top:.4rem;
         font-size:1rem; color:var(--dim); font-variant-numeric:tabular-nums; }
  .mcp:first-of-type { margin-top:.55rem; }
  .mcp .lbl { width:4em; flex:none; }
  .mcp .bar { flex:1; height:.55rem; border-radius:4px; background:var(--track);
              overflow:hidden; }
  .mcp .bar i { display:block; height:100%; border-radius:4px; }
  .mcp .bar i.up { background:var(--green); }
  .mcp .bar i.neutral { background:var(--neutral); }
  .mcp .bar i.down { background:var(--red); }
  .mcp .val { width:3em; flex:none; text-align:right; }
  .mca-why { color:var(--dim); font-size:1rem; line-height:1.75; margin-top:.55rem;
             padding-top:.55rem; border-top:1px solid var(--line); }
  .mca > summary:hover .mca-nm { color:var(--strong); }
  
  .mct-head { color:var(--faint); font-size:.88rem; margin-bottom:.35rem; }
  .mct-err { color:var(--yellow); }
  .mct { display:flex; align-items:center; gap:1rem; padding:.4rem 0;
         border-top:1px solid var(--line); font-variant-numeric:tabular-nums;
         flex-wrap:wrap; }
  .mct .nm { width:5.5em; flex:none; color:var(--dim); }
  .mct .net { width:5.5em; flex:none; font-size:1.1rem; font-weight:700; }
  .mct .poi { width:7em; flex:none; color:var(--faint); font-size:.9rem; }
  .mct .d { color:var(--faint); font-size:.9rem; }
  .mct .d b { font-weight:600; }
  
  .mct .mctw { display:flex; gap:.7rem; flex:1; min-width:24em; }
  .mct .wk { display:flex; flex-direction:column; gap:.05rem; min-width:4.8em; }
  .mct .wk em { font-style:normal; color:var(--faint); font-size:.74rem;
                letter-spacing:.03em; }
  .mct .wk b { font-size:.95rem; font-weight:600; color:var(--dim); }
  .mct .wk b.up { color:var(--green); }
  .mct .wk b.dn { color:var(--red); }
  .mct .wk.last b { font-size:1.05rem; font-weight:700; }
  .mct .wk.sum { border-left:1px solid var(--line); padding-left:.7rem; }
  .mct .wk.sum b { font-weight:500; opacity:.75; }
  .mctr { flex:none; font-size:.85rem; padding:.1rem .5rem; border-radius:99px;
          border:1px solid var(--line); color:var(--dim); }
  .mctr.up { color:var(--green); border-color:rgba(var(--green-rgb),.35); }
  .mctr.dn { color:var(--red); border-color:rgba(var(--red-rgb),.35); }
  .mct-spark { width:110px; height:26px; flex:none; margin-left:auto; }
  .mct-foot { color:var(--faint); font-size:.85rem; line-height:1.6;
              margin-top:.55rem; padding-top:.45rem; border-top:1px solid var(--line); }
  
  .mcwall-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
                 gap:.6rem; }
  .mcwall-grid .mcq { gap:.3rem; }
  .wl { display:flex; align-items:baseline; gap:.5rem;
        font-variant-numeric:tabular-nums; flex-wrap:wrap; }
  .wl .side { flex:none; width:4.2em; font-size:.9rem; font-weight:600; }
  .wl b { font-size:1.15rem; font-family:var(--mono); }
  .wl .cv { color:var(--dim); font-size:.9rem; }
  .wl .oi { margin-left:auto; color:var(--faint); font-size:.88rem; }
  @media (max-width:600px) {
    .mct { gap:.5rem .9rem; }
    .mct .nm { width:4.2em; }
    .mct-spark { width:100%; margin-left:0; height:22px; }
  }

  
  .mcf { display:flex; align-items:center; gap:.8rem; margin:.5rem 0; font-size:1rem; }
  .mcf .who { width:11em; flex:none; color:var(--dim); }
  .mcf .val { width:3.4em; flex:none; text-align:right; font-weight:600;
              font-variant-numeric:tabular-nums; }
  
  .mcf .bar { flex:0 0 38%; display:flex; height:.62rem; border-radius:4px;
              overflow:hidden; background:var(--line); min-width:120px; }
  .mcf .bar i { display:block; height:100%; }
  .mcf .bar i.hold { background:var(--neutral); } .mcf .bar i.hike { background:var(--red); }
  .mcf .bar i.cut { background:var(--green); }
  .mcf .nt { color:var(--faint); flex:1; min-width:0; }
  .mcleg { display:flex; align-items:center; gap:.5em; margin-top:.6rem;
           color:var(--dim); font-size:1rem; }
  .mcleg i { width:1.6em; height:.55rem; border-radius:3px; flex:none; }
  .mcleg i:not(:first-child) { margin-left:.9em; }
  .mcleg i.hold { background:var(--neutral); }
  .mcleg i.hike { background:var(--red); }
  .mcleg i.cut { background:var(--green); }
  #mcfednote { color:var(--dim); font-size:1rem; line-height:1.7; margin-top:.7rem;
               padding-top:.7rem; border-top:1px solid var(--line); }
  
  .mcw { background:var(--card); border:1px solid var(--line); border-radius:10px;
         padding:.9rem 1.1rem; margin-bottom:.8rem; }
  .mcw-top { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; }
  .mcw > summary > .mcg { margin-top:.6rem; margin-bottom:0; }
  .mcw .mcx-body { margin-top:.7rem; }
  .mcw-t { font-size:1.05rem; font-weight:600; }
  .mcw-when { color:var(--faint); font-size:1rem; margin-left:auto; }
  .mcw-chip { font-size:1rem; padding:.1em .55em; border-radius:5px; flex:none;
              border:1px solid var(--line); color:var(--dim); font-weight:600; }
  .mcw-chip.wait { color:var(--dim); }
  .mcw-chip.due { background:var(--yellow-bg); color:var(--yellow);
                  border-color:rgba(var(--yellow-rgb),.35); }
  .mcw-chip.fired { background:var(--red-bg); color:var(--red);
                    border-color:rgba(var(--red-rgb),.35); }
  .mcw-chip.done { color:var(--green); border-color:rgba(var(--green-rgb),.35);
                   background:rgba(var(--green-rgb),.08); }
  .mcw.st-due { border-color:rgba(var(--yellow-rgb),.4); }
  .mcw.st-fired { border-color:rgba(var(--red-rgb),.5); }
  .mcw.st-done { border-color:rgba(var(--green-rgb),.4); }
  .mcw-duelabel { color:var(--faint); font-size:1rem; margin-top:.1rem; }
  .mcw-row.res { background:rgba(var(--green-rgb),.08); border:1px solid rgba(var(--green-rgb),.3);
                 border-radius:6px; padding:.45rem .6rem; margin-top:.55rem; }
  .mcw-row.res .k { color:var(--green); }
  .mcw-row.res .v { color:var(--ink); }
  
  #mcboard { background:var(--card); border:1px solid var(--line); border-radius:10px;
             padding:.8rem 1.1rem; margin-bottom:.9rem; }
  .mcb-head { font-size:1rem; color:var(--ink); }
  .mcb-head b { font-size:1.1rem; }
  .mcb-fired { color:var(--red); font-weight:600; }
  .mcb-due { color:var(--yellow); font-weight:600; }
  .mcb-note { display:block; color:var(--faint); font-size:1rem; margin-top:.3rem;
              line-height:1.6; }
  .mcb-chips { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.7rem; }
  .mcb-chip { display:inline-flex; align-items:center; gap:.45em; font-size:1rem;
              color:var(--dim); text-decoration:none; border:1px solid var(--line);
              border-radius:6px; padding:.25em .7em; }
  .mcb-chip:hover { color:var(--ink); border-color:var(--dim); }
  .mcb-chip i { width:.6em; height:.6em; border-radius:50%; background:var(--neutral); flex:none; }
  .mcb-chip.due i { background:var(--yellow); box-shadow:0 0 6px rgba(var(--yellow-rgb),.6); }
  .mcb-chip.fired i { background:var(--red); box-shadow:0 0 6px rgba(var(--red-rgb),.7); }
  .mcb-chip.done i { background:var(--green); box-shadow:0 0 6px rgba(var(--green-rgb),.6); }
  .mcb-chip.due { color:var(--yellow); border-color:rgba(var(--yellow-rgb),.3); }
  .mcb-chip.fired { color:var(--red); border-color:rgba(var(--red-rgb),.3); }
  .mcb-chip.done { color:var(--green); border-color:rgba(var(--green-rgb),.3); }
  .mcw-status { font-size:1rem; color:var(--faint); }
  .mcw-row { font-size:1rem; line-height:1.75; margin-top:.45rem; display:flex;
             gap:.6rem; }
  .mcw-row .k { flex:none; font-weight:600; color:var(--faint); width:5.2em; }
  .mcw-row.pub .k { color:var(--green); }
  .mcw-row.pend .k { color:var(--yellow); }
  .mcw-row.judge { border-top:1px solid var(--line); margin-top:.6rem; padding-top:.6rem; }
  .mcw-row.judge .k { color:var(--ink); }
  .mcw-row .v { color:var(--dim); }
  .mcw-row.judge .v { color:var(--ink); }
  .mcw-src { margin-top:.55rem; display:flex; gap:.55rem; flex-wrap:wrap;
             font-size:1rem; }
  .mcw-src a { color:var(--faint); text-decoration:none; border:1px solid var(--line);
               border-radius:5px; padding:.05em .5em; }
  .mcw-src a:hover { color:var(--ink); border-color:var(--dim); }
  
  .mcc { display:flex; gap:.8rem; font-size:1rem; padding:.35rem 0;
         border-top:1px solid var(--line); align-items:baseline; }
  .mcc:first-child { border-top:none; }
  .mcc .d { flex:none; width:7em; color:var(--ink); font-weight:600; }
  .mcc .w { flex:none; width:14em; color:var(--ink); }
  .mcc .n { color:var(--dim); }
  #mcfoot { color:var(--faint); font-size:1rem; line-height:1.7; margin-top:1rem; }
  @media (max-width:600px) {
    .mcf .who { width:100%; } .mcf { flex-wrap:wrap; }
    .mcc { flex-wrap:wrap; } .mcc .w { width:auto; }
    .mcw-row { flex-direction:column; gap:.1rem; } .mcw-row .k { width:auto; }
    
    .mcg-top { gap:.5rem .7rem; }
    .mcg-nm { min-width:0; width:100%; }
    .mcg-px { font-size:1.5rem; }
    .mcg-gap { font-size:1.15rem; }
    .mcq .px { font-size:1.3rem; }
    .mcw-t { font-size:1rem; }
    .mcg-line { margin-left:0; width:100%; }
    .mcg-bar { height:.6rem; }
    
    .mct { gap:.4rem .8rem; }
    .mct .nm, .mct .net, .mct .poi { width:auto; }
    .mct .mctw { flex:1 1 100%; min-width:0; flex-wrap:wrap; gap:.4rem .9rem; }
    .mct .wk { min-width:0; }
    .mct .wk.sum { border-left:none; padding-left:0; }
    .mct-spark { margin-left:auto; }
    
    .mcb-chips { display:grid; grid-template-columns:1fr 1fr; gap:.4rem; }
    .mcb-chip { padding:.35em .6em; }
    
    .mcw-top { gap:.4rem .6rem; }
    .mcw-t { width:100%; }
    .mcw-when { margin-left:0; }
    #mcassets { gap:.45rem; }
    .mca { padding:.55rem .6rem; }
    .mca-nm { font-size:.95rem; }
    .mca-st { font-size:.85rem; padding:.08em .4em; }
    .mca-px { font-size:.85rem; }
    .mca-note { font-size:.78rem; }
    .mcp { gap:.4rem; font-size:.88rem; }
    .mcp .lbl { width:3.2em; }
    .mcp .val { width:2.6em; }
    #mcquotes, #mcstatic { grid-template-columns:1fr 1fr; gap:.45rem; }
    #mchead { font-size:1.05rem; }
    #mcsub, #mcerr { display:block; margin-left:0; margin-top:.2rem; }
  }

  
  #minitime { display:none; position:fixed; top:0; left:50%; transform:translateX(-50%);
              z-index:40; background:var(--minibg); border:1px solid var(--line);
              border-top:none; border-radius:0 0 8px 8px; padding:.3rem 1rem .35rem;
              font-size:.85rem; font-weight:600; letter-spacing:.06em; color:var(--ink);
              font-variant-numeric:tabular-nums; pointer-events:none;
              align-items:center; gap:.55rem; white-space:nowrap; }
  #minitime.show { display:flex; }
  
  
  #minitabs { display:none; position:fixed; top:0; left:clamp(2rem, 6vw, 9rem); z-index:41;
              gap:.2rem; padding:.25rem .35rem;
              background:var(--minibg); border:1px solid var(--line);
              border-top:none; border-radius:0 0 10px 10px;
              box-shadow:0 2px 8px var(--shadow); }
  #minitabs.show { display:flex; }
  #minitabs .navtab { padding:.35em .55em; font-size:.9rem; gap:.35em; flex:0 0 auto; }
  #minitabs .navtab svg { width:16px; height:16px; }
  #minitabs .navtab .ntlabel { display:none; }
  #minitabs .navtab.on .ntlabel { display:inline; }
  #minitime .mf-up { color:var(--flash-up); }
  #minitime .mf-dn { color:var(--flash-dn); }

  
  .fab { display:none; }
  .tfpick { display:inline-block; position:relative; }
  .tfpick .fabcur { display:flex; align-items:center; gap:.4em; cursor:pointer;
                    background:rgba(var(--wash-rgb),.06); border:1px solid var(--line);
                    border-radius:7px; padding:.25em .7em; color:var(--ink);
                    font-size:1.05rem; font-weight:700; font-family:inherit;
                    font-variant-numeric:tabular-nums; }
  .tfpick .fabcur i { font-style:normal; font-size:.68rem; font-weight:400;
                      letter-spacing:.1em; color:var(--faint); }
  .tfpick .fabcur:hover { border-color:rgba(var(--wash-rgb),.35); }
  .tfpick .fabmenu { display:none; position:absolute; top:calc(100% + .35rem); left:0;
                     z-index:46; flex-direction:column; gap:.2rem; padding:.3rem;
                     opacity:1; background:var(--card); border:1px solid var(--line);
                     border-radius:10px; box-shadow:0 6px 20px var(--shadow); }
  .tfpick.open .fabmenu { display:flex; }
  .tfpick .fabmenu .tfbtn { min-width:4.6em; padding:.45em .8em; font-size:.95rem; }

  
  #assetbar { display:flex; align-items:center; gap:.8rem; flex-wrap:wrap;
              position:relative;
              background:var(--card); border:1px solid var(--line); border-radius:10px;
              padding:.55rem .8rem; margin-bottom:1rem; }
  .asnav { background:rgba(var(--wash-rgb),.06); border:1px solid var(--line);
           color:var(--dim); border-radius:8px; width:2.2em; height:2.2em;
           font-size:1.15rem; line-height:1; cursor:pointer; flex:none; }
  .asnav:hover { color:var(--ink); border-color:rgba(var(--wash-rgb),.35); }
  .asnav:last-child { margin-left:auto; }
  .asnow { display:flex; align-items:baseline; gap:.6rem; }
  
  .aspick { display:flex; gap:.35rem; align-items:center;
            padding:0 1.1rem; border-left:1px solid var(--line);
            border-right:1px solid var(--line);
            position:absolute; left:50%; transform:translateX(-50%); }
  .asadr { margin-left:.2rem; }
  
  #assetbar .tfpick { margin-left:auto; }
  #assetbar .tfpick + .asnav { margin-left:0; }
  
  @media (max-width:1150px) {
    .aspick { position:static; transform:none; margin-left:auto; }
  }
  .asbtn { display:inline-flex; align-items:center; gap:.45em; cursor:pointer;
           background:none; border:1px solid transparent; border-radius:8px;
           color:var(--faint); padding:.3em .7em; font-size:.95rem; font-weight:600;
           font-family:inherit; }
  .asbtn:hover { color:var(--ink); background:rgba(var(--wash-rgb),.07); }
  .asbtn.on { color:var(--ink); background:rgba(var(--wash-rgb),.10);
              border-color:var(--line); cursor:default; }
  .asbtn .ibadge { width:20px; height:20px; font-size:8px; }
  .asbtn.on .ibadge { box-shadow:0 0 0 2px rgba(var(--wash-rgb),.25); }
  .asadr { color:var(--dim); font-size:1rem; }

  
  #assetfab { display:none; position:fixed; bottom:.9rem; left:.9rem; z-index:45;
              align-items:center; gap:.35rem; background:var(--card);
              border:1px solid var(--line); border-radius:99px;
              padding:.3rem .4rem; box-shadow:0 3px 12px var(--shadow); }
  #assetfab.show { display:flex; }
  #assetfab .afcur { display:flex; align-items:center; gap:.45em; font-weight:700;
                     font-size:1.05rem; padding:0 .25rem; }
  #assetfab .afcur .ibadge { width:20px; height:20px; font-size:8px; }
  #assetfab .asnav { width:2em; height:2em; border-radius:50%; }

  
  #ctxmenu { display:none; position:fixed; z-index:60; min-width:11rem;
             background:var(--card); border:1px solid var(--line); border-radius:8px;
             padding:.25rem; box-shadow:0 6px 20px var(--shadow); }
  #ctxmenu button { display:block; width:100%; text-align:left; cursor:pointer;
                    background:none; border:none; border-radius:5px; color:var(--ink);
                    padding:.45em .7em; font-size:14px; font-family:inherit;
                    white-space:nowrap; }
  #ctxmenu button:hover { background:rgba(var(--wash-rgb),.10); }

  #stale { display:none; position:sticky; top:0; background:var(--red-bg); color:var(--red);
           border:1px solid rgba(var(--red-rgb),.4); border-radius:8px; padding:.5rem .9rem;
           margin-bottom:1rem; font-weight:600; }
  
  @media (max-width:600px) {
    body { padding:1rem 1rem 4.5rem; }   
    
    h1 { font-size:1.1rem; letter-spacing:.05em; }
    #headleft { flex:1 1 auto; min-width:0; }
    #clock { font-size:2rem; }
    #headright { flex:1 1 100%; justify-content:flex-start; }
    #switches { flex-direction:row; align-items:center; flex-wrap:wrap;
                gap:.35rem 1.1rem; margin-top:.5rem; }
    .swrow { gap:.45em; }
    .swname { font-size:.85rem; }
    .sw { width:2.6em; height:1.4em; }
    .sw .knob { top:.17em; left:.17em; width:1.06em; height:1.06em; }
    .sw.on .knob { left:calc(100% - 1.23em); }
    .card { padding:.8rem .8rem; }
    #ovpanel { padding:.7rem .7rem .8rem; }
    
    
    #assetbar .tfpick { display:none; }   
    .fab { display:block; position:fixed; bottom:.9rem; z-index:45; }
    .tfpick { display:inline-block; position:relative; bottom:auto; }
    #emafab { right:.9rem; }
    
    .aspick { display:none; }
    .asnow { order:0; }
    #assetbar .asnav { order:2; }
    #assetbar .asnav:first-child { order:1; margin-left:auto; }
    #assetbar .asnav:last-child { margin-left:0; }
    .asadr { order:3; flex:1 1 100%; }
    
    .mainrow { display:block; }
    
    .actfold { top:0; left:0; right:0; bottom:auto; width:auto; height:1.2rem;
               border-right:none; border-bottom:1px solid var(--line);
               border-radius:5px 5px 0 0; }
    .actfold i { transform:rotate(-90deg); }
    .mainact-in { position:static; max-height:13rem; margin:1.2rem 0 0; }
    .mainrow.folded .mainact { flex:none; }
    .mainrow.folded .actfold { position:static; width:100%; height:1.6rem; }
    .fabcur { display:flex; align-items:center; gap:.45em; cursor:pointer;
              background:var(--minibg); border:1px solid var(--line);
              border-radius:99px; padding:.5em 1em; color:var(--ink);
              font-size:1.05rem; font-weight:700; font-family:inherit;
              font-variant-numeric:tabular-nums; box-shadow:0 3px 12px var(--shadow); }
    .fabcur i { font-style:normal; font-size:.7rem; font-weight:400; letter-spacing:.1em;
                color:var(--faint); text-transform:uppercase; }
    
    .fabmenu { display:none; position:absolute; top:auto; bottom:calc(100% + .45rem);
               left:auto; flex-direction:column; gap:.25rem; padding:.3rem; opacity:1;
               background:var(--card); border:1px solid var(--line);
               border-radius:10px; box-shadow:0 6px 20px var(--shadow); }
    .fab.open .fabmenu { display:flex; }
    
    .tfpick .fabmenu { top:calc(100% + .35rem); bottom:auto; left:0; right:auto; }
    .tfpick .fabcur { box-shadow:none; }

    #emafab .fabmenu { right:0; }
    .fabmenu .tfbtn { min-width:4.8em; padding:.5em .8em; font-size:1rem; }
    #minitabs { left:1rem; }            
    
    #minitime { left:auto; right:1rem; transform:none; border-radius:0 0 8px 8px;
                max-width:calc(100vw - 15rem); overflow:hidden; }
    #navtabs { display:flex; flex-wrap:nowrap; width:100%; }
    .navtab { flex:1 1 0; min-width:0; padding:.5em .3em;
              justify-content:center; gap:.4em; }
    .navtab .ntlabel { display:none; }
    .navtab.on { flex:0 0 auto; padding:.5em .7em; }
    .navtab.on .ntlabel { display:inline; }
    .fspanel { padding:.8rem .8rem; }
  }


.pt-line { stroke-width:1.4; fill:none; }
.pt-pend { stroke-dasharray:7 5; }
.pt-tp { stroke:var(--green); stroke-dasharray:5 4; stroke-width:1.2; fill:none; }
.pt-sl { stroke:var(--red); stroke-dasharray:5 4; stroke-width:1.2; fill:none; }
.pt-buy { stroke:#4A9EFF; }               
body.lt .pt-buy { stroke:#1B5FC1; }
.pt-sell { stroke:var(--red); }
.pt-rect-tp { fill:rgba(var(--green-rgb),.09); stroke:none; }
.pt-rect-sl { fill:rgba(var(--red-rgb),.09); stroke:none; }
body.lt .pt-rect-tp { fill:rgba(var(--green-rgb),.07); }
body.lt .pt-rect-sl { fill:rgba(var(--red-rgb),.07); }

.pt-hit { stroke:#000; stroke-opacity:0; stroke-width:11; cursor:grab; }
.pt-hit:not(.pt-hite):active { cursor:grabbing; }
.pt-txt { font:600 10px ui-monospace,Consolas,monospace; stroke:none; }
.pt-txt-up { fill:var(--green); }
.pt-txt-dn { fill:var(--red); }
.pt-txt-b { fill:#4A9EFF; }
body.lt .pt-txt-b { fill:#1B5FC1; }
.ptb { color:#4A9EFF; }
body.lt .ptb { color:#1B5FC1; }

#ctxmenu .ptm-sep { color:var(--faint); font-size:.72rem; letter-spacing:.06em;
    text-transform:uppercase; padding:.35rem .8rem .2rem; border-top:1px solid var(--line);
    margin-top:.25rem; white-space:nowrap; }
#ctxmenu button.ptm-buy { color:#4A9EFF; }
body.lt #ctxmenu button.ptm-buy { color:#1B5FC1; }
#ctxmenu button.ptm-sell { color:var(--red); }
#ctxmenu .ptm-inrow { display:flex; gap:.5rem; padding:.3rem .8rem .45rem; }
#ctxmenu .ptm-inrow label { display:flex; align-items:center; gap:.3rem;
    color:var(--faint); font-size:12px; }
#ctxmenu .ptm-inrow input { width:3.4em; font:inherit; font-size:12px; text-align:right;
    color:var(--ink);
    background:rgba(var(--wash-rgb),.06); border:1px solid var(--line);
    border-radius:4px; padding:.15rem .3rem; }
#ctxmenu .ptm-inrow input::placeholder { color:var(--faint); opacity:.55; }

#pthead { margin-bottom:1rem; }   
#pttable tr[data-ptt] { cursor:pointer; }
#pttable tr[data-ptt]:hover td { background:rgba(var(--wash-rgb),.07); }
.ptbtn { font:inherit; font-size:.8rem; color:var(--ink); background:transparent;
         border:1px solid var(--line); border-radius:5px; padding:.12rem .55rem;
         cursor:pointer; }
.ptbtn:hover { background:rgba(var(--wash-rgb),.10); }

.ptctx { display:flex; flex-direction:column; gap:2px; white-space:nowrap;
         font-size:.8rem; font-variant-numeric:tabular-nums; }
.ptctx b { display:inline-block; min-width:2.4em; color:var(--dim); font-weight:600; }

#pttoast { position:fixed; left:50%; bottom:1.4rem; transform:translateX(-50%);
    z-index:70; background:var(--card); color:var(--yellow);
    border:1px solid var(--line); border-radius:8px; padding:.5rem .9rem;
    font-size:.9rem; box-shadow:0 4px 16px var(--shadow);
    opacity:0; pointer-events:none; transition:opacity .2s; }
#pttoast.show { opacity:1; }
.pt-hite { cursor:context-menu; }   

.pt-hand { cursor:grab; }
.pt-hand:active { cursor:grabbing; }
.pt-hand rect { stroke:none; }
.pt-hand text { font:700 9px ui-monospace,Consolas,monospace; stroke:none; fill:#fff; }
.pt-hand-tp rect { fill:var(--green); }
.pt-hand-sl rect { fill:var(--red); }
.pt-hand:hover rect { filter:brightness(1.2); }
.pt-dot { stroke-dasharray:1.5 3.5; }               
.pt-hit:hover { stroke-opacity:.14; }               

.pt-cxbtn { cursor:pointer; }
.pt-cxbtn rect { fill:rgba(var(--red-rgb),.16); stroke:var(--red); stroke-width:1.4; }
body.lt .pt-cxbtn rect { fill:rgba(var(--red-rgb),.12); }
.pt-cxbtn text { font:700 10px ui-monospace,Consolas,monospace; fill:var(--red); stroke:none;
                 letter-spacing:.04em; }

.pt-cxbtn:hover rect, .pt-cxbtn.hov rect,
body.lt .pt-cxbtn:hover rect, body.lt .pt-cxbtn.hov rect { fill:var(--red); }
.pt-cxbtn:hover text, .pt-cxbtn.hov text { fill:#fff; }

.pt-hit, .pt-hand { touch-action:none; }
@media (pointer:coarse) {
  .pt-hit { stroke-width:20; }        
}

.sparkwrap, .sparkwrap *, #ovchart, #ovchart *, svg.ck, svg.ck * {
  -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }

.ptgcell { white-space:nowrap; }
.ptg { font:700 .78rem ui-monospace,Consolas,monospace; color:var(--faint);
       background:transparent; border:1px solid var(--line); border-radius:4px;
       padding:.08rem .4rem; margin-left:.2rem; cursor:pointer; }
.ptg:hover { background:rgba(var(--wash-rgb),.10); }
.ptg.on { color:#fff; }
.ptg.on.gA { background:var(--green); border-color:var(--green); }
.ptg.on.gB { background:var(--orange); border-color:var(--orange); }
.ptg.on.gC { background:var(--red); border-color:var(--red); }
.ptnote { max-width:16em; }
.ptnotetxt { display:inline-block; max-width:12em; overflow:hidden;
             text-overflow:ellipsis; white-space:nowrap; vertical-align:middle;
             margin-right:.3rem; }

#ptnotepop { display:none; position:fixed; z-index:70; gap:.4rem; align-items:center;
    background:var(--card); border:1px solid var(--line); border-radius:8px;
    padding:.45rem .55rem; box-shadow:0 6px 20px var(--shadow); }
#ptnotepop input { width:17em; font:inherit; font-size:.9rem; color:var(--ink);
    background:rgba(var(--wash-rgb),.06); border:1px solid var(--line);
    border-radius:5px; padding:.25rem .45rem; }
#ptnotepop .ptcfm { color:var(--ink); font-size:.9rem; white-space:nowrap; }
.ptbtn.ptdanger { color:#fff; background:var(--red); border-color:var(--red); }
.ptbtn.ptdanger:hover { filter:brightness(1.1); }
.pt-txt-rr { fill:var(--faint); }                   

#sndbtn { background:none; border:none; padding:0; margin-left:.6rem;
          cursor:pointer; color:var(--ink); vertical-align:-5px; }
#sndbtn:hover { color:var(--dim); }
#sndbtn.muted, #sndbtn.muted:hover { color:#B23A42; }   
#sndbtn svg { width:22px; height:22px; display:inline-block; }

.asbtn, .afcur { position:relative; }
.hdot { position:absolute; top:1px; right:1px; width:8px; height:8px;
        border-radius:50%; background:var(--red);
        box-shadow:0 0 6px rgba(var(--red-rgb),.7); }

.rz { position:relative; height:8px;   
      display:flex; align-items:flex-start; justify-content:center;
      cursor:pointer; touch-action:none;
      -webkit-user-select:none; user-select:none; }
.rz i { display:flex; align-items:center; justify-content:center;
        width:36px; height:13px; margin-top:-7px;   
        background:var(--line);                     
        border:1px solid var(--line); border-radius:4px; }
.rz i::after { content:''; width:14px; height:3px;   
        border-top:1px solid #fff;
        border-bottom:1px solid #fff; }
.rz:hover i { border-color:var(--faint); background:var(--faint); }
.card:not(.bigslot) .rz { display:none; }   

.mainrow .mainact { margin-bottom:8px; }
#cards > .card.bigslot .spark { min-height:min(34vw, 560px); }

.ckcdp rect { fill:rgba(var(--yellow-rgb),.12); stroke:rgba(var(--yellow-rgb),.35);
              stroke-width:1; }
.ckcdp text { fill:var(--yellow); font:600 11px ui-monospace,Consolas,monospace;
              stroke:none; }
.ptbtn.has { color:var(--yellow); border-color:rgba(var(--yellow-rgb),.45); }  
.ckcdp.sm text { font-size:9px; }   

body.demo .navtab[data-tab="fs"], body.demo .navtab[data-tab="ib"],
body.demo .navtab[data-tab="macro"] { display:none; }

#demobanner { display:none; }
body.demo #demobanner { display:block; text-align:center; font-weight:800;
    font-size:13px; letter-spacing:.22em; padding:.4rem 0;
    color:#fff; background:#7a4f0e;            
    margin:-1.5rem calc(-1 * clamp(2rem, 6vw, 9rem)) 1rem; }
@media (max-width:600px) {
  body.demo #demobanner { margin:-1rem -1rem 1rem; }
}

#meta a { color:var(--dim); text-decoration:none; }
#meta a:hover { color:var(--ink); }
#meta a svg { width:13px; height:13px; fill:currentColor; vertical-align:-2px; }
