/* Astra dashboard — quiet chrome, luminous glass, tactile card stack. */
.sd2{--bar-h:94px;max-width:510px;margin:auto;padding:22px 18px calc(128px + var(--sa-b));overflow:clip visible}
.sd2 small,.sd2 .cur{font-size:.5em}
.sd2-head{padding:0 4px 14px}
.sd2-logos{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px;height:32px}
.sd2-sd .sd-logo{display:flex;align-items:center;gap:8px}.sd2-sd .sd-mark{width:27px;height:27px;flex:none}.sd2-sd .sd-word{width:139px;height:auto;max-height:16px;display:block}.sd2-sd .sd-logo{max-width:180px}
.sd2-head-right{display:flex;align-items:center;gap:14px}
.sd2-exit{width:32px;height:32px;display:grid;place-items:center;color:var(--dim);border:1px solid var(--line);border-radius:50%}.sd2-exit svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.sd2-eyebrow{color:var(--dim);font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px}
.sd2-hello{font-size:30px;letter-spacing:-1.2px;font-weight:500;line-height:1.15;margin:0 0 10px}
.sd2-summary{color:var(--dim);font-size:12px;line-height:1.55;max-width:330px;letter-spacing:-.1px}.sd2-summary b{font-weight:500}.summary-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;margin-right:5px;vertical-align:2px}
.sd2-upd{font-size:10px;color:var(--dim);margin:12px 0 19px;letter-spacing:.02em}
.sd2-pills{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border:1px solid rgba(255,255,255,.075);border-radius:17px;background:rgba(255,255,255,.025);box-shadow:inset 0 1px 1px rgba(255,255,255,.035);margin-bottom:13px}
.pill2{display:flex;align-items:center;justify-content:center;min-height:38px;border-radius:12px;color:var(--dim);font-size:13px;font-weight:500;transition:transform .25s var(--ease-spring)}
.sd2-pills .pill2.on{color:var(--txt);background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.035));box-shadow:inset 0 1px 1px rgba(255,255,255,.2),0 2px 6px #0005;position:relative}
.sd2-pills .pill2.on:after{content:'';position:absolute;bottom:-1px;left:28%;right:28%;height:1px;background:linear-gradient(90deg,transparent,var(--c1),var(--c2),transparent);box-shadow:0 2px 8px var(--c2)}
.pill2:active{transform:scale(.96)}
.sd2-cmp{display:flex;align-items:center;gap:8px}.sd2-cmp .kicker{font:400 10px var(--font-ui);text-transform:none;letter-spacing:0}.sd2-cmp-options{display:flex;gap:3px;flex:1;justify-content:flex-end}.pill2.sm{min-height:34px;padding:0 10px;font-size:10px;border:1px solid transparent}.sd2-cmp .pill2.on{color:var(--txt2);border-color:var(--glass-brd);background:rgba(255,255,255,.035)}
.sd2-sub{font-size:9px;color:var(--dim);margin-top:14px;letter-spacing:.02em}
.sd2-bar{position:sticky;top:0;z-index:40;margin:0 -2px 18px;padding:12px 2px 10px;background:linear-gradient(180deg,rgba(5,6,10,.98) 60%,rgba(5,6,10,.94));border-bottom:1px solid rgba(255,255,255,.05)}
.sd2-bar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:0 3px}.sd2-bar-head h2{font-size:12px;letter-spacing:.01em;font-weight:500}.sd2-scroll-cue{font-size:9px;font-weight:400;color:var(--dim);margin-left:7px}
.sd2-sortbtn{display:flex;align-items:center;justify-content:center;gap:5px;border:0;background:none;color:var(--txt2);font:500 11px var(--font-ui);padding:3px 4px;min-height:28px;cursor:pointer}.sd2-sortbtn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.sd2-bar .chips{display:flex;gap:6px;overflow:visible;padding:0}.sd2-bar .chip{height:30px;font-size:10px;font-weight:400;padding:0 12px;cursor:pointer;box-shadow:none;background:rgba(255,255,255,.025);border-color:var(--line)}.sd2-bar .chip.on{color:var(--txt);background:rgba(255,255,255,.105);border-color:rgba(255,255,255,.19)}
.stack{position:relative;display:flex;flex-direction:column;gap:0;isolation:isolate}
.card2{--accent:var(--c1);--accent2:var(--c2);position:sticky;top:110px;display:block;margin:0 0 -12px;padding:22px 22px 40px;min-height:202px;border-radius:25px;transform-origin:50% 0;outline:none;cursor:pointer;overflow:hidden;isolation:isolate;color:var(--txt);-webkit-tap-highlight-color:transparent;scroll-margin-top:112px}
.stack>.card2.glass{background:linear-gradient(155deg,rgba(255,255,255,.035),transparent 45%),#080b12;border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 -6px 28px #0006,0 14px 30px #0008;backdrop-filter:none;-webkit-backdrop-filter:none}
.card2::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-2;background:radial-gradient(ellipse 75% 35% at 18% 110%,color-mix(in srgb,var(--accent) 60%,transparent),transparent 90%),radial-gradient(ellipse 70% 45% at 95% 112%,color-mix(in srgb,var(--accent2) 85%,transparent),transparent 90%);opacity:.75}
.card2::after{content:'';position:absolute;left:10%;right:8%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),var(--accent2),transparent);opacity:.65;pointer-events:none;z-index:-1}
.card2[data-key=gp]{--accent:#04e5ac;--accent2:#29a4fe}.card2[data-key=net]{--accent:#f4813b;--accent2:#e43488}.card2[data-key=perf]{--accent:#ed43e1;--accent2:#7843ff}.card2[data-key=shops],.card2[data-key=ss],.card2[data-key=stock]{--accent:#f2b144;--accent2:#dd5d32}.card2[data-key=proc],.card2[data-key=bars]{--accent:#a778ff;--accent2:#4569ef}.card2[data-key=alerts],.card2[data-key=att]{--accent:#f27f75;--accent2:#a44d73}
.card2:focus-visible{outline:2px solid var(--c1);outline-offset:3px}
.c2-tab{display:grid;grid-template-columns:36px 1fr 16px;grid-template-rows:auto auto;column-gap:10px;align-items:center;margin-bottom:19px;position:relative}.c2-tab:after{content:'↗';grid-area:1/3/3/4;color:var(--dim);font-size:17px;align-self:start;font-weight:300}.c2-tab .neon-ic{grid-area:1/1/3/2;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;position:relative;isolation:isolate;color:color-mix(in srgb,var(--accent) 35%,white);background:radial-gradient(ellipse at 30% 18%,color-mix(in srgb,var(--accent) 22%,#222636),#080a14 67%);border:1px solid color-mix(in srgb,var(--accent) 25%,#27303d);box-shadow:inset 0 1px 1px #ffffff55,inset 0 -2px 6px color-mix(in srgb,var(--accent2) 25%,transparent),0 4px 12px #0008}
.c2-tab .neon-ic:after{content:'';position:absolute;inset:-2px;border-radius:50%;z-index:-1;background:conic-gradient(from 40deg,transparent 10%,var(--accent2),transparent 38%,transparent 64%,var(--accent),#fff9 80%,transparent 84%);mask:radial-gradient(farthest-side,transparent calc(100% - 1px),#000 100%);opacity:.8}.c2-tab .neon-ic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.c2-tab .kicker{font-size:12px;font-weight:500;letter-spacing:.005em;text-transform:none;color:var(--txt);grid-column:2}.c2-cap{font-size:9px;color:var(--dim);line-height:1.4;grid-column:2;margin-top:4px}
.c2-kid{font-size:11px;line-height:1.55;color:var(--txt2);margin:7px 0 11px}.c2-kid.dim{font-size:10px;color:var(--dim)}.c2-fig{display:flex;align-items:baseline;gap:6px;margin:12px 0 14px;flex-wrap:wrap}.c2-fig .led{font-size:51px;letter-spacing:-1.7px;text-shadow:none;display:inline-flex;align-items:baseline;gap:8px}.c2-fig .led .cur{font:400 13px var(--font-ui);letter-spacing:0;color:var(--txt2);margin:0;opacity:1}.c2-fig .led .u{font:400 15px var(--font-ui);letter-spacing:-.2px;margin:0;color:var(--txt2);opacity:1}.c2-fig.sm .led{font-size:30px;gap:4px}.c2-fig.sm .led .cur{font-size:10px}.c2-fig.sm .led .u{font-size:10px}.c2-word{font-size:12px;color:var(--txt2)}
.c2-chg{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 4px}.c2-chg .chip{font-size:10px;font-weight:500;height:23px;padding:0 8px;box-shadow:none}.c2-vs{font-size:10px;line-height:1.45;color:var(--dim)}
.sd2 .good,.sd2 .up,#sx .up,#sx .good{color:var(--good)}.sd2 .bad,.sd2 .down,#sx .bad,#sx .down,.c2-fig.is-bad .led{color:var(--bad)}
.card2[data-key=today]{min-height:204px}.card2[data-key=today]::before{background:radial-gradient(ellipse 70% 30% at 15% 110%,#17b8dbb0,transparent 95%),radial-gradient(ellipse 60% 45% at 100% 115%,#8356ffcc,transparent 95%)}
.stack .c2-detail{display:none}.stack [data-key=shops] .c2-list:not(.c2-detail) .c2-li:nth-child(n+4){display:none}.stack [data-key=att] .c2-li:nth-child(n+4){display:none}.stack [data-key=alerts] .nt:nth-child(n+3){display:none}
.c2-open{font-size:10px;color:var(--txt2);display:flex;align-items:center;gap:8px;margin-top:17px;letter-spacing:.01em}.c2-open:after{content:'→';font-size:14px;color:var(--accent)}
.c2-flow,.c2-stats{display:grid;gap:0;margin:16px 0 8px;overflow:hidden}.c2-row,.c2-stats>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}.c2-row span,.c2-stats span{color:var(--txt2)}.c2-row b,.c2-stats b{font:500 12px var(--font-ui);white-space:nowrap}.c2-row.tot{font-weight:600;color:var(--txt);border-bottom:none}.c2-stats{grid-template-columns:1fr 1fr;gap:9px 16px}.c2-stats>div{flex-direction:column;align-items:flex-start;gap:6px}.c2-stats span{font-size:9px;color:var(--dim)}.c2-stats em{font-style:normal;color:var(--dim);font-size:9px}
.c2-sub{display:flex;justify-content:space-between;align-items:center;margin:19px 0 7px;gap:12px}.c2-sub .kicker{font-size:9px;letter-spacing:.1em}.c2-sub .c2-cap{text-align:right}
.c2-list{display:flex;flex-direction:column}.c2-li{position:relative;display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);font-size:11px;min-height:51px}.c2-li:last-child{border-bottom:0}.c2-li.fetchable{cursor:pointer}.c2-li.fetchable:active{opacity:.7}.c2-rk{font-family:var(--font-num);flex:none;width:19px;color:var(--dim);font-size:18px}.c2-nm{flex:1;min-width:0;line-height:1.4}.c2-nm em,.c2-v em{display:block;font:400 9px/1.4 var(--font-ui);color:var(--dim);margin-top:4px}.c2-v{flex:none;text-align:right;font-size:11px;font-weight:500}.c2-barw{position:absolute;left:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--c2),var(--c3));opacity:.5}.c2-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}.c2-duo .kicker{font-size:9px;letter-spacing:.09em}.c2-duo .c2-fig{margin:10px 0}
.c2-trend{margin-top:18px}.c2-spark,.c2-bars{width:100%;display:block;overflow:visible}.c2-leg{display:flex;justify-content:space-between;gap:12px;color:var(--dim);font-size:8px;line-height:1.6;margin-top:7px}.c2-leg span{display:inline-flex;gap:5px;align-items:center}.c2-leg i{width:10px;height:2px;border-radius:2px;background:var(--good);flex:none}.c2-leg i.lg-ly{background:none;border-top:1px dashed var(--dim);height:0}
.c2-notes{display:flex;flex-direction:column;gap:8px}.nt{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.nt>span{flex:1;min-width:0;font-size:11px;line-height:1.5}.nt b{font-weight:500}.nt em{display:block;font:400 10px/1.5 var(--font-ui);color:var(--dim);margin-top:4px}.nt .hide{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--txt2);font-size:11px;cursor:pointer}.fx-wait{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--dim)}.fx-wait i{width:7px;height:7px;border-radius:50%;background:var(--c1)}#alert-on{margin-top:12px;font-size:11px}
.sd2-foot{margin:46px 0 0;text-align:center;color:var(--dim);font-size:9px;line-height:1.8}
.sd2-dock.glass{position:fixed;left:50%;bottom:calc(12px + var(--sa-b));transform:translateX(-50%);z-index:60;width:min(calc(100% - 36px),430px);display:flex;justify-content:space-around;padding:7px 7px 5px;gap:4px;border-radius:24px;background:linear-gradient(175deg,rgba(30,31,40,.94),rgba(10,12,20,.96));border:1px solid rgba(255,255,255,.17);box-shadow:inset 0 1px 1px #ffffff12,0 14px 40px #000b;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.dk{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:0 3px 4px;color:var(--dim);font:400 8px var(--font-ui);transition:transform .25s var(--ease-spring)}.dk-icon{width:35px;height:35px;display:grid;place-items:center;position:relative;border-radius:50%}.dk svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.dk-home{color:var(--txt)}.dk-home .dk-icon{background:radial-gradient(circle at 40% 22%,#34323e,#12121a 80%);box-shadow:inset 0 0 0 1px #ffffff12,0 0 9px #6458c833}.dk-home .dk-icon:before{content:'';position:absolute;inset:-1px;border-radius:50%;background:conic-gradient(#ffe9b9 0deg,transparent 35deg,#7b4aff 80deg,transparent 130deg,#68dcff 190deg,#fff 220deg,transparent 250deg,#ec887b 300deg,#ffe9b9);mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1px));animation:dock-light 10s linear infinite}.dk-home svg{width:16px;height:16px;fill:#e3e4ed;stroke-width:.7}.dk:active{transform:scale(.91)}@keyframes dock-light{to{transform:rotate(360deg)}}
/* Detail sheets carry the complete underlying information and per-row fetch actions. */
#sx{max-width:540px;max-height:89dvh;background:linear-gradient(170deg,#191b29,#090c14 48%);border-radius:28px 28px 0 0;box-shadow:0 -20px 100px #000c,inset 0 1px 1px #fff2;overscroll-behavior:contain}
#sx .sheet2-head{gap:10px;padding:13px 23px 18px;border-bottom:1px solid var(--line)}#sx-title{flex:1;font-size:17px;font-weight:500;letter-spacing:-.4px;line-height:1.3}#sx .sheet2-x{width:33px;height:33px;flex:none;font-size:14px}#sx .sheet2-body{padding:6px 23px 25px}#sx .c2-fig .led{font-size:52px}#sx .c2-fig.sm .led{font-size:32px}#sx .c2-tab,#sx .c2-open,#sx .c2-reorder{display:none}.sx-card{padding:8px 0 10px}.sx-actionbar{flex:none;padding:13px 23px calc(15px + var(--sa-b));border-top:1px solid var(--line);background:#0a0d16}.sx-actionbar:empty{display:none}.sx-actionbar .sdcat-actions{margin:0}.sx-back{border:1px solid var(--line);background:#ffffff06;color:var(--txt2);border-radius:20px;padding:7px 10px;font-size:11px;cursor:pointer}.sh-k{color:var(--dim);font-size:9px;text-transform:uppercase;letter-spacing:.13em;margin:21px 0 7px}.sh-v{font-size:12px;line-height:1.65;color:var(--txt2)}.sh-now{font-size:16px;line-height:1.5;font-weight:500}.sh-c{padding-left:16px;font-size:11px;line-height:1.7;color:var(--txt2)}.sig{margin:20px 0 8px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;font-size:11px;line-height:1.5;color:var(--txt2);background:#ffffff03}.sig.g{color:var(--good);background:#3ee6a007;border-color:#3ee6a022}.sig.r{color:var(--bad);background:#ff5a6e07;border-color:#ff5a6e22}.sig:empty{display:none}.sh-t{width:100%;border-collapse:collapse;font-size:11px}.sh-t td{padding:13px 0;border-bottom:1px solid var(--line);line-height:1.5}.sh-t td.k{color:var(--txt2);padding-right:12px}.sh-t td.v{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.sh-t tr.c td{font-size:9px;text-transform:uppercase;color:var(--dim);letter-spacing:.08em;padding-top:22px}.sh-f{font-size:10px;line-height:1.7;color:var(--dim);margin-top:20px}
/* Native scroll supplies the stick; JS only scales the two covered cards. */
.card2.c2-in{animation:c2in .8s var(--ease-out) both;animation-delay:calc(var(--i,0)*65ms)}@keyframes c2in{from{opacity:0;transform:translateY(38px) scale(.965)}to{opacity:1;transform:none}}
.sd2.intro-wait .stack{visibility:hidden}.sd2.intro-wait .sd2-bar{opacity:0}.sd2.intro-ready .sd2-bar{transition:opacity .5s}
.sd2-hint{display:none;color:var(--txt2);font-size:11px;line-height:1.6;margin:0 4px 18px}.sd2.sorting .sd2-hint{display:block}.sd2-sortbtn.on{color:var(--c1)}.stack.sorting{gap:8px}.stack.sorting>.card2{position:relative;top:auto!important;min-height:0;padding:11px 13px;margin:0;transform:none;opacity:1!important;border-radius:17px;cursor:default}.stack.sorting>.card2>:not(.c2-tab):not(.c2-reorder){display:none}.stack.sorting .c2-tab{margin:0;grid-template-columns:36px 1fr 75px;min-height:42px}.stack.sorting .c2-tab:after,.stack.sorting .c2-cap{display:none}.stack.sorting .c2-tab .kicker{font-size:11px}.stack.sorting .card2:before{opacity:.25}.c2-reorder{display:none}.stack.sorting .c2-reorder{display:flex;position:absolute;right:10px;top:11px;gap:2px}.c2-reorder button{width:28px;height:42px;border:0;border-radius:10px;background:none;color:var(--dim);font-size:16px;cursor:pointer}.c2-reorder button:hover{color:var(--txt);background:#ffffff09}.c2-grip{display:none}.stack.sorting .c2-grip{display:block;width:28px;height:42px;touch-action:none;cursor:grab;background:radial-gradient(circle,var(--txt2) 1px,transparent 1.5px) center/6px 6px;mask:linear-gradient(#000,#000) center/12px 20px no-repeat;opacity:.55}.card2.dragging{z-index:50;box-shadow:0 12px 35px #000b,0 0 0 1px var(--c1)!important;transition:none!important;animation:none!important}
@media(min-width:900px){.sd2{max-width:1160px;padding:35px 30px 145px;display:grid;grid-template-columns:240px minmax(0,1fr);column-gap:46px;align-items:start}.sd2-head{position:sticky;top:35px;grid-row:1/5;padding:0}.sd2-logos{margin-bottom:48px}.sd2-head-right{gap:7px}.sd2-exit{width:26px;height:26px}.sd2-sd .sd-word{width:120px}.sd2-sd .sd-mark{width:23px;height:23px}.sd2-hello{font-size:34px}.sd2-summary{font-size:12px;line-height:1.8;margin-bottom:16px}.sd2-upd{font-size:9px;margin-bottom:30px}.sd2-cmp{align-items:flex-start;flex-direction:column}.sd2-cmp-options{width:100%;justify-content:space-between}.sd2-sub{margin-top:25px;line-height:1.6}.sd2-bar{grid-column:2;margin-top:0;top:0;padding-top:0;background:var(--bg0);padding-bottom:16px}.sd2-bar-head{margin:0 0 16px}.sd2-bar-head h2{font-size:17px}.sd2-bar .chips{gap:9px}.sd2-bar .chip{font-size:11px;padding:0 15px}.stack{grid-column:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.stack>.card2{position:relative!important;top:auto!important;margin:0;min-height:235px;padding:22px 23px 26px;transform:none;opacity:1!important;visibility:visible!important}.card2[data-key=gp]{grid-row:span 2;min-height:488px;display:flex;flex-direction:column}.card2[data-key=gp] .c2-trend{margin-top:auto;padding-top:38px}.card2[data-key=gp] .c2-spark{height:115px}.card2[data-key=gp] .c2-tab{margin-bottom:35px}.card2[data-key=gp] .c2-fig .led{font-size:61px}.sd2-foot{grid-column:2}.sd2-hint{grid-column:2}.stack.sorting{grid-template-columns:1fr 1fr}.stack.sorting>.card2{min-height:0;display:block;grid-row:auto}.sd2-dock{bottom:18px}#sx{border-radius:28px;bottom:22px;max-height:calc(100dvh - 44px)}}
@media(max-width:359px){.sd2{padding-left:12px;padding-right:12px}.sd2-hello{font-size:27px}.card2{padding-left:17px;padding-right:17px}.sd2-bar .chip{padding:0 9px;font-size:9px}.c2-fig .led{font-size:44px}.c2-tab .kicker{font-size:11px}.sd2-scroll-cue{display:none}}
@media(prefers-reduced-motion:reduce){.card2,.card2.c2-in,.dk,.pill2,.dk-home .dk-icon:before{animation:none!important;transition:none!important}.stack>.card2{position:relative!important;top:auto!important;transform:none!important;opacity:1!important;visibility:visible!important}#sx,#sx-scrim{transition:none!important}}
/* Round 2: concentrated edge light, tighter opening, fully clear sheet actions. */
body:has(.sd2) .sd-bg{opacity:.45}
.sd2{padding-top:17px}.sd2-head{padding-bottom:5px}.sd2-logos{margin-bottom:19px}.sd2-eyebrow{font-size:9px;margin-bottom:6px}.sd2-hello{margin-bottom:8px}.sd2-summary{font-size:11px;line-height:1.5}.sd2-upd{margin:9px 0 14px}.sd2-pills{margin-bottom:8px}.sd2-sub{margin-top:8px}
.sd2-bar{margin-bottom:15px;padding-top:10px;background:rgba(5,6,10,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:12px 12px 0 0}.sd2-bar-head{margin-bottom:7px}
.card2{padding-top:20px;padding-bottom:38px}.c2-tab{margin-bottom:15px}.card2[data-key=today]{min-height:182px}.card2[data-key=today] .c2-open,.card2[data-cat=sales]:not([data-key=bars]) .c2-open{display:none}
.card2::before,.card2[data-key=today]::before{opacity:.9;background:radial-gradient(ellipse 30% 18% at 72% 111%,#e6fcff 0%,color-mix(in srgb,var(--accent2) 85%,white) 26%,var(--accent2) 48%,transparent 100%),radial-gradient(ellipse 55% 27% at 18% 113%,color-mix(in srgb,var(--accent) 60%,white) 12%,var(--accent) 35%,transparent 100%),radial-gradient(ellipse 80% 47% at 100% 118%,color-mix(in srgb,var(--accent2) 65%,transparent),transparent 100%)}
.card2[data-key=today]::after{left:0;right:0;height:44px;bottom:0;background:radial-gradient(ellipse 24% 65% at 75% 100%,#d8d8ff85,transparent 100%);opacity:.6}.card2[data-key=gp]::before{opacity:.7}
.c2-tab .neon-ic{box-shadow:inset 0 1px 1px #ffffff66,inset 0 -3px 8px color-mix(in srgb,var(--accent2) 32%,transparent),0 0 16px color-mix(in srgb,var(--accent) 8%,transparent),0 4px 12px #0008}
#sx{transform:translateY(calc(100% + 48px))}#sx.open{transform:translateY(0)}
#sx .sx-actionbar .sdcat-acts{margin:0;gap:6px}#sx .sx-actionbar .btn2{min-height:43px;font-size:12px;font-weight:500}#sx .sx-actionbar .btn2 svg{width:18px;height:18px}.sx-actionbar{padding-top:11px;padding-bottom:calc(12px + var(--sa-b))}
body:has(#sx.open) .sdcat{visibility:hidden}
.stack.sorting .c2-tab{display:flex;padding-right:84px;gap:10px}.stack.sorting .c2-tab .kicker{line-height:1.4}.stack.sorting .c2-tab .neon-ic{flex:none}.sd2.sorting .sd2-hint{padding-top:4px;margin-bottom:20px}.sd2.sorting .sd2-scroll-cue{display:none}.c2-offscreen *,.c2-offscreen::before,.c2-offscreen::after{animation-play-state:paused!important}
@media(min-width:900px){.sd2{padding-top:35px}.sd2-head{padding:0}.sd2-logos{margin-bottom:44px}.sd2-hello{font-size:32px}.sd2-eyebrow{font-size:9px}.sd2-upd{margin:18px 0 28px}.sd2-summary{font-size:12px}.sd2-sub{margin-top:22px}.sd2-bar{border-radius:0;padding-top:0}.card2[data-key=gp]{min-height:488px}.card2[data-key=gp] .c2-trend{padding-top:24px}.stack>.card2{padding-bottom:28px}}
/* Round 3: ref i01 pools of light below the information, ref i00 fine instruments. */
.card2{padding-bottom:48px}
.card2::before,.card2[data-key=today]::before{background:radial-gradient(ellipse 23% 13% at 77% 101%,#f0faff 0%,color-mix(in srgb,var(--accent2) 45%,white) 22%,var(--accent2) 48%,transparent 100%),radial-gradient(ellipse 48% 23% at 12% 105%,color-mix(in srgb,var(--accent) 40%,white) 8%,var(--accent) 35%,transparent 100%),radial-gradient(ellipse 70% 42% at 88% 117%,var(--accent2),transparent 100%);opacity:.9}
.card2[data-key=today]::before{background:radial-gradient(ellipse 30% 20% at 78% 103%,#e6e4ff 0%,#b19bff 25%,#773cff 47%,transparent 100%),radial-gradient(ellipse 43% 22% at 10% 105%,#bafff1 8%,#00bccf 42%,transparent 100%),radial-gradient(ellipse 85% 40% at 85% 114%,#39229d,transparent 100%)}
.card2[data-key=today]{padding-bottom:42px}.card2[data-key=gp]::before{opacity:.8}.card2[data-key=stock] .led{font-size:38px}.card2[data-key=stock] .led .u{font-size:12px}
.c2-fig .led{font-size:49px}.c2-fig .led .u{font-size:14px}.c2-kid{font-size:12px}.c2-cap{font-size:10px}.c2-vs{font-size:11px}.c2-tab .kicker{font-size:13px}.c2-open{margin-top:19px}.c2-fig.sm .led{font-size:30px}
.card2.c2-in::before{animation:c2light 1.1s var(--ease-out) both;animation-delay:calc(var(--i,0)*65ms)}@keyframes c2light{from{transform:translate3d(10%,20%,0) scale(1.15);opacity:.1}to{transform:none;opacity:.9}}
.stack.sorting .card2::before{opacity:.22}.stack.sorting .card2{padding-bottom:11px}
@media(min-width:900px){.stack>.card2{padding-bottom:50px}.stack>.card2[data-key=today]{min-height:235px}.card2[data-key=gp]{min-height:488px}.stack.sorting>.card2{padding-bottom:11px}.sd2-bar{background:rgba(5,6,10,.7)}}
@media(prefers-reduced-motion:reduce){.card2.c2-in::before{animation:none!important}}

#sx .fetchable[role=button]{cursor:pointer}#sx .fetchable[role=button]:focus-visible{outline:1px solid var(--c1);outline-offset:3px;border-radius:5px}

/* sdd-fonts: readability pass (25 Oct) — sizes, line-height and contrast only. */
.sd2-eyebrow{font-size:13px;color:var(--txt2)}.sd2-summary{font-size:15px;line-height:1.5;max-width:360px;color:var(--txt2)}.sd2-upd{font-size:13px}.pill2{font-size:15px}.sd2-cmp .kicker{font-size:14px}.pill2.sm{font-size:13px;padding:0 9px}.sd2-sub{font-size:13px;line-height:1.5}
.sd2-bar-head h2{font-size:16px}.sd2-scroll-cue{font-size:13px}.sd2-sortbtn{font-size:14px}.sd2-bar .chip{font-size:13px;padding:0 10px;white-space:nowrap}
.c2-tab:after{font-size:19px}.c2-tab .kicker{font-size:17px;line-height:1.3}.c2-cap{font-size:13px;line-height:1.4;color:var(--txt2)}.c2-kid{font-size:15px;line-height:1.5}.c2-kid.dim{font-size:14px}
.c2-fig .led{font-size:52px}.c2-fig .led .cur{font-size:15px}.c2-fig .led .u{font-size:16px}.c2-fig.sm .led{font-size:33px}.c2-fig.sm .led .cur,.c2-fig.sm .led .u{font-size:13px}.card2[data-key=stock] .led{font-size:40px}.card2[data-key=stock] .led .u{font-size:13px}.c2-word{font-size:15px}
.c2-chg .chip{font-size:13px;height:27px;padding:0 9px}.c2-vs{font-size:13px;line-height:1.45}.c2-open{font-size:14px}.c2-open:after{font-size:16px}
.c2-row,.c2-stats>div{font-size:15px}.c2-row b,.c2-stats b{font-size:15px}.c2-stats span,.c2-stats em{font-size:13px}.c2-sub .kicker,.c2-duo .kicker{font-size:13px}
.c2-li{font-size:15px}.c2-rk{font-size:20px;width:22px}.c2-nm em,.c2-v em{font-size:13px}.c2-v{font-size:15px}.c2-leg{font-size:13px;line-height:1.5}
.nt>span{font-size:15px}.nt em{font-size:13px}.nt .hide{font-size:13px}.fx-wait{font-size:14px}#alert-on{font-size:14px}.sd2-foot{font-size:13px;line-height:1.7}
.dk{font-size:12.5px;white-space:nowrap;color:var(--txt2)}.dk>span:last-child{overflow:hidden;text-overflow:ellipsis;max-width:100%}
#sx-title{font-size:20px}#sx .c2-fig .led{font-size:54px}#sx .c2-fig.sm .led{font-size:34px}.sx-back{font-size:13px}.sh-k{font-size:13px;letter-spacing:.1em}.sh-v{font-size:15px;line-height:1.6}.sh-now{font-size:18px}.sh-c{font-size:14px;line-height:1.65}.sig{font-size:14px}.sh-t{font-size:14px}.sh-t tr.c td{font-size:13px}.sh-f{font-size:13px;line-height:1.6}#sx .sx-actionbar .btn2{font-size:14px}
.sd2-hint{font-size:14px}.stack.sorting .c2-tab .kicker{font-size:15px}
@media(min-width:900px){.sd2-summary{font-size:15px;line-height:1.7}.sd2-upd{font-size:13px}.sd2-eyebrow{font-size:13px}.sd2-bar-head h2{font-size:19px}.sd2-bar .chip{font-size:14px;padding:0 15px}.card2[data-key=gp] .c2-fig .led{font-size:64px}}
@media(max-width:359px){.sd2-bar .chip{font-size:13px;padding:0 7px}.c2-fig .led{font-size:46px}.c2-tab .kicker{font-size:16px}.dk{font-size:12px}.pill2.sm{padding:0 6px}}
.c2-stats b small,.c2-row b small,.c2-li b small{font-size:13px}.dk{font-size:13px;padding:0 1px 4px}
@media(max-width:359px){.dk{font-size:12px}}
/* sdd-alive: living aurora (transform/opacity only, staggered, paused off-screen) + no-scroll pop-up sheet */
.card2::before,.card2[data-key=today]::before{inset:-20%;--ao:.9;transform-origin:50% 85%;background:radial-gradient(ellipse 16.43% 9.29% at 69.29% 86.43%,#f0faff 0%,color-mix(in srgb,var(--accent2) 45%,white) 22%,var(--accent2) 48%,transparent 100%),radial-gradient(ellipse 34.29% 16.43% at 22.86% 89.29%,color-mix(in srgb,var(--accent) 40%,white) 8%,var(--accent) 35%,transparent 100%),radial-gradient(ellipse 50% 30% at 77.14% 97.86%,var(--accent2),transparent 100%)}
.card2[data-key=today]::before{background:radial-gradient(ellipse 21.43% 14.29% at 70% 87.86%,#e6e4ff 0%,#b19bff 25%,#773cff 47%,transparent 100%),radial-gradient(ellipse 30.71% 15.71% at 21.43% 89.29%,#bafff1 8%,#00bccf 42%,transparent 100%),radial-gradient(ellipse 60.71% 28.57% at 75% 95.71%,#39229d,transparent 100%)}
.card2[data-key=gp]::before{--ao:.8}.card2::after{--bo:.65}.card2[data-key=today]::after{--bo:.6}
.stack:not(.sorting)>.card2:not(.c2-in):not(.slot-eyes)::before{animation:var(--an,c2aurora) var(--ad,10.5s) ease-in-out var(--adl,0s) infinite alternate}
.stack:not(.sorting)>.card2:not(.c2-in):not(.slot-eyes)::after{animation:c2breath var(--bd,9s) ease-in-out var(--adl,0s) infinite alternate}
.stack>.card2:nth-child(5n+1){--ad:8.5s}.stack>.card2:nth-child(5n+2){--ad:13s;--an:c2aurora2}.stack>.card2:nth-child(5n+3){--ad:10.5s}.stack>.card2:nth-child(5n+4){--ad:15.5s;--an:c2aurora2}.stack>.card2:nth-child(5n){--ad:12s}
.stack>.card2:nth-child(3n+2){--adl:1.7s}.stack>.card2:nth-child(3n){--adl:3.4s}
.stack>.card2:nth-child(4n+2){--bd:11.5s}.stack>.card2:nth-child(4n+3){--bd:14s}.stack>.card2:nth-child(4n){--bd:10s}
@keyframes c2aurora{0%{transform:none;opacity:var(--ao,.9)}35%{transform:translate3d(3.5%,-1.5%,0) rotate(2.5deg) scale(1.05);opacity:calc(var(--ao,.9)*1.08)}70%{transform:translate3d(-2%,1.5%,0) rotate(-1.5deg) scale(1.03);opacity:calc(var(--ao,.9)*.84)}100%{transform:translate3d(-3.5%,2.5%,0) rotate(-3deg) scale(1.07);opacity:calc(var(--ao,.9)*.96)}}
@keyframes c2aurora2{0%{transform:none;opacity:var(--ao,.9)}40%{transform:translate3d(-3.5%,1.5%,0) rotate(-2.5deg) scale(1.06);opacity:calc(var(--ao,.9)*.82)}75%{transform:translate3d(2.5%,-1.5%,0) rotate(2deg) scale(1.02);opacity:calc(var(--ao,.9)*1.06)}100%{transform:translate3d(3%,2%,0) rotate(3deg) scale(1.05);opacity:var(--ao,.9)}}
@keyframes c2breath{0%{opacity:var(--bo,.65)}50%{opacity:calc(var(--bo,.65)*.6)}100%{opacity:calc(var(--bo,.65)*1.15)}}
@media(prefers-reduced-motion:reduce){.card2::before,.card2::after{animation:none!important}}
/* sdd-alive (25 Oct): full-screen pop-up that grows out of the tapped card; 'Show more' then vertical scroll only */
#sx{top:0;bottom:0;left:0;right:0;height:100dvh;max-height:none;max-width:none;border-radius:0;overflow:hidden;transform:none;transition:none;visibility:hidden;opacity:0;transform-origin:0 0;will-change:transform,opacity}
#sx.open,#sx.closing{visibility:visible;opacity:1}#sx.closing{pointer-events:none}#sx::before{display:none}
.sx-ghost{position:fixed;z-index:81;border-radius:25px;background:linear-gradient(170deg,#191b29,#090c14 48%);box-shadow:0 0 0 1px #ffffff1a,0 20px 80px #000a;transform-origin:0 0;pointer-events:none;will-change:transform,opacity}
#sx .sheet2-head{padding:calc(var(--sa-t,0px) + 12px) 18px 9px}#sx .sheet2-body{position:relative;overflow:hidden;overflow-x:hidden;padding:2px 18px 10px;min-height:0}
#sx.more .sheet2-body{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
#sx .sx-show{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;min-height:54px;margin:12px 0 4px;padding:12px 18px;border:1px solid color-mix(in srgb,var(--accent,#9bf) 70%,transparent);border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent,#9bf) 26%,#0d1020),color-mix(in srgb,var(--accent,#9bf) 12%,#0a0c16));box-shadow:0 0 22px color-mix(in srgb,var(--accent,#9bf) 28%,transparent),inset 0 1px 1px #fff3;color:#fff;font:600 16px var(--font-ui);letter-spacing:.02em;cursor:pointer;transition:scale .18s var(--ease-out,ease-out)}
#sx .sx-show:after{content:'';width:9px;height:9px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-3px) rotate(45deg)}
#sx .sx-show:focus-visible{outline:2px solid #fff;outline-offset:2px}
#sx .sx-actionbar{padding:9px 18px calc(10px + var(--sa-b,0px))}
.sx-card{padding:0 0 4px;max-width:100%;overflow-x:hidden}.sx-card *{max-width:100%}
#sx .c2-fig{margin:2px 0 4px}#sx .c2-vs{margin-top:2px}
#sx .sh-k{margin:12px 0 4px}#sx .sig{margin:10px 0 4px;padding:7px 10px}#sx .sh-f{margin-top:8px}
#sx .sh-t td{padding:7px 0;line-height:1.35}#sx .sh-t td.k{padding-right:10px;width:50%;overflow-wrap:break-word}#sx .sh-t td.v{white-space:normal;overflow-wrap:anywhere}#sx .sh-t tr.c td{text-transform:none;letter-spacing:0;padding-top:6px}
#sx .c2-flow,#sx .c2-stats{margin:8px 0 4px}#sx .c2-row,#sx .c2-stats>div{padding:6px 0}#sx .c2-row b,#sx .c2-stats b{white-space:normal;min-width:0;overflow-wrap:anywhere}#sx .c2-row span{overflow-wrap:break-word}#sx .nw{white-space:nowrap!important;overflow-wrap:normal!important}#sx .c2-row span{flex:1 1 auto;min-width:min(50%,8em)}
#sx .c2-sub{margin:10px 0 4px}#sx .c2-li{padding:7px 0;min-height:0}#sx .c2-nm{overflow-wrap:break-word;min-width:min(45%,7em)}#sx .c2-v{overflow-wrap:anywhere}#sx .c2-v{max-width:48%}
#sx .nt{padding:7px 0}#sx .c2-notes{gap:2px}#sx .nt .hide{width:28px;height:28px}
#sx .c2-trend{margin-top:8px}#sx .c2-leg{font-size:13px;margin-top:4px;flex-wrap:wrap;gap:4px 12px}#sx .c2-open{display:none}
/* press feedback within one frame: cards and buttons dip, rows tint (scale property: cards.js owns .card2 transform) */
.stack>.card2{transition:scale .2s var(--ease-out,ease-out)}.stack>.card2.prs{scale:.975;transition:none}
#sx button,#sx .btn2{transition:scale .18s var(--ease-out,ease-out),transform .35s var(--ease-spring),opacity .2s,background-color .18s}#sx button.prs,#sx .btn2.prs{scale:.95;transition:none}
#sx tr.prs>td,#sx .c2-li.prs,#sx .c2-row.prs,#sx .nt.prs,#sx .fetchable.prs{background-color:#ffffff12}#sx tr>td,#sx .c2-li,#sx .c2-row,#sx .fetchable{transition:background-color .2s}
#sx .sh-t tr.c td{text-align:left;padding:1px 0 4px 14px;color:var(--txt2);border-bottom:0}#sx .sh-t tr:has(+tr.c) td{border-bottom:0;padding-bottom:2px}#sx .sh-t tr.c:not(:has(+tr.c)) td{border-bottom:1px solid var(--line);padding-bottom:7px}
@media(min-width:700px){#sx{top:22px;bottom:22px;height:auto;max-width:560px;border-radius:28px}#sx .sheet2-head{padding-top:14px}}
@media(prefers-reduced-motion:reduce){.stack>.card2,#sx button{transition:none!important}}
/* sdd-smooth: the decorative loops hold still while the intro swivels the cards in (they resume on landing) */
.sd-intro-seq .card2::before,.sd-intro-seq .card2::after,.sd-intro-seq .dk-home .dk-icon:before{animation-play-state:paused!important}
.sd-intro-seq :is(.sd2-bar,.sd2-dock){backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.sd-intro-seq :is(.sd2-live,.sd2-rt-dot,.sd2-et-dot,.sd2-et-go),.sd-intro-seq :is(.sd2-live,.sd2-et-go)::before,.sd-intro-seq :is(.sd2-live,.sd2-et-go)::after{animation-play-state:paused!important}

/* jt2a: iPhone scroll shake — glow animations hold still while the page moves (html.sd-scrolling, set by cards.js), and no backdrop blur on the sticky bar / fixed dock on phones */
/* scrollfix 28 Oct: scoped to main.sd2 (the dock is outside it and is never restyled by a scroll) */
.sd2.sd-scrolling .card2::before,.sd2.sd-scrolling .card2::after,.sd2.sd-scrolling :is(.sd2-live,.sd2-rt-dot,.sd2-et-dot,.sd2-et-go),.sd2.sd-scrolling :is(.sd2-live,.sd2-et-go)::before,.sd2.sd-scrolling :is(.sd2-live,.sd2-et-go)::after{animation-play-state:paused!important}
/* pin2 28 Oct: on phones the scroll class is on #stack (never on a bar ancestor) */
#stack.sd-scrolling .card2::before,#stack.sd-scrolling .card2::after,#stack.sd-scrolling :is(.sd2-rt-dot,.sd2-et-dot,.sd2-et-go,.sd-hl,.sd-warm,.sd-dim,.sd-wdim,.sd-whl,.sd-rim-a,.sd-rim-r,.j-glow,.j-bloom,.sd2-et-name .dot),#stack.sd-scrolling .sd2-et-go::before,#stack.sd-scrolling .sd2-et-go::after{animation-play-state:paused!important}
@media (pointer:coarse) and (max-width:899px){.sd2-bar,.sd2-dock{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.sd2-bar{background:rgba(5,6,10,.95)}}
/* jt3: MacBook scroll shake — the same scroll-idle gate now runs on desktop too (cards.js); the header logo shimmer and the eye-tile dot hold still while the page moves as well. Explicit classes only (a "*" here would restyle the whole page on every toggle). The blur stays: everything under it is frozen while scrolling. */
.sd2.sd-scrolling :is(.sd-hl,.sd-warm,.sd-dim,.sd-wdim,.sd-whl,.sd-rim-a,.sd-rim-r,.j-glow,.j-bloom,.sd2-et-name .dot){animation-play-state:paused!important}
/* jt4 (26 Oct): Mac desktop idle shake — the moving aurora/breath glows sit on their own layers so the card text above them is never re-drawn; fixed-width digits on figures */
@media (hover:hover) and (pointer:fine){
  .stack>.card2::before,.stack>.card2::after{will-change:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}
  .stack>.card2{-webkit-font-smoothing:antialiased}
  .card2 .c2-fig,.card2 .c2-v,.card2 .c2-stats b,.card2 .c2-row b{font-variant-numeric:tabular-nums}
}

#sx .c2-row b{flex-shrink:0}

/* sk5: scroll shake (iPhone Safari + Safeer's Mac Safari) — the deck scrolls like a plain native page on every width:
   cards never stick/stack or move with the scroll (they still slide in once via c2in), and nothing re-blurs the page while it moves
   (sticky bar, fixed dock, hidden full-screen scrims/sheets lose their backdrop blur; open sheets keep theirs) */
.stack>.card2{position:relative!important;top:auto!important}
@media (max-width:899px){.stack>.card2{margin:0 0 14px;padding-bottom:24px}}
.sd2-bar,.sd2-dock{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.sd2-bar{background:rgba(5,6,10,.95)}
.sheet2-scrim:not(.open),.sheet2:not(.open){backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
/* sdd-sfd-audit: desktop (Mac) tiles fade in only — no 38px rise + 3.5% zoom of the whole grid after every load (real Safari jitlog).
   !important beats the animation's transform, so c2in still runs (opacity) and its animationend still clears .c2-in */
@media (min-width:900px) and (pointer:fine){.stack>.card2.c2-in{transform:none!important}}
