:root{--bg:#eefaf5;--surface:rgba(255,255,255,.88);--surface-solid:#fff;--ink:#071b38;--muted:#62716c;--line:rgba(27,128,91,.22);--green:#08ad55;--green-bright:#16dc70;--red:#ef3b4f;--cyan:#15b9dc;--shadow:0 10px 28px rgba(16,74,54,.14);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}html,body{min-height:100%;margin:0}html{height:100%;overflow-x:hidden;overflow-y:auto}body{overflow:visible}body{background:radial-gradient(circle at 50% -10%,#fff 0,#f3fff9 30%,#e9f7f2 68%,#e0f1ec 100%);font-weight:800;-webkit-tap-highlight-color:transparent}.pulse-app{height:100dvh;min-height:520px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);isolation:isolate}.pulse-app:before{content:"";position:fixed;inset:0;z-index:-2;background-image:linear-gradient(rgba(0,149,86,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,149,86,.045) 1px,transparent 1px);background-size:44px 44px}.pulse-app:after{content:"";position:fixed;inset:0;z-index:-1;opacity:.38;background:radial-gradient(circle at 18% 30%,rgba(255,145,0,.12),transparent 32%),radial-gradient(circle at 82% 42%,rgba(0,184,99,.16),transparent 35%)}
button,a{font:inherit}.pulse-header{display:grid;grid-template-columns:86px 1fr 108px;align-items:center;min-height:92px;padding:max(10px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 9px max(18px,env(safe-area-inset-left));border-bottom:1px solid var(--line);background:rgba(255,255,255,.8);box-shadow:0 5px 20px rgba(18,89,62,.08);backdrop-filter:blur(18px);z-index:20}.pulse-back,.pulse-header-actions button{display:grid;place-items:center;border:1px solid rgba(8,130,82,.26);background:rgba(255,255,255,.86);box-shadow:0 5px 14px rgba(17,82,59,.12),inset 0 1px #fff;color:var(--ink)}.pulse-back{width:52px;height:52px;border-radius:16px;text-decoration:none}.pulse-back svg{width:26px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.pulse-brand{display:grid;justify-items:center;gap:2px;color:var(--ink);text-decoration:none}.pulse-brand img{display:block;width:min(260px,42vw);max-height:54px;object-fit:contain}.pulse-brand strong{font-size:.72rem;letter-spacing:.36em;margin-left:.36em}.pulse-header-actions{display:flex;justify-content:flex-end;gap:8px}.pulse-header-actions button{width:48px;height:48px;padding:0;border-radius:15px}.pulse-header-actions svg{width:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pulse-moon{display:none}
.pulse-summary{display:grid;grid-template-columns:1.15fr .85fr;gap:10px;padding:10px max(18px,env(safe-area-inset-right)) 0 max(18px,env(safe-area-inset-left));z-index:10}.pulse-breadth,.pulse-temperature{position:relative;min-height:68px;padding:12px 16px;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:var(--shadow);backdrop-filter:blur(14px);overflow:hidden}.pulse-breadth-bar,.pulse-temperature-bar{height:10px;border-radius:999px;background:linear-gradient(90deg,#11d96e 0 50%,#ff5466 50%);overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.12)}.pulse-breadth-bar i{display:block;width:50%;height:100%;background:linear-gradient(90deg,#10c963,#27ee84);border-right:3px solid #fff;box-shadow:2px 0 8px rgba(0,0,0,.22);transition:width .45s ease}.pulse-breadth p{display:flex;align-items:center;gap:10px;margin:7px 0 0;font-size:clamp(.93rem,2.3vw,1.2rem)}.pulse-breadth p span:first-child{color:#078f48}.pulse-breadth p span:last-child{color:#d52d41}.pulse-breadth em{font-style:normal;color:var(--muted)}.pulse-temperature{display:grid;grid-template-columns:1fr auto;align-items:center}.pulse-temperature>span{font-size:.82rem;letter-spacing:.03em}.pulse-temperature strong{grid-row:1/3;grid-column:2;font-size:clamp(2rem,5vw,3rem);color:#08a755}.pulse-temperature-bar{grid-column:1;margin-right:12px;background:rgba(20,163,101,.13)}.pulse-temperature-bar i{display:block;width:50%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#16d86e,#0dcdd2);box-shadow:0 0 10px rgba(15,211,143,.55);transition:width .45s ease}
.pulse-toolbar{display:flex;justify-content:center;gap:10px;padding:9px 18px;z-index:10}.pulse-segment{display:flex;padding:3px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 5px 15px rgba(13,87,61,.09);backdrop-filter:blur(12px)}.pulse-segment button{min-height:36px;padding:0 17px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:950;white-space:nowrap}.pulse-segment button.is-active{background:linear-gradient(135deg,#0a9960,#12c96b);box-shadow:0 4px 10px rgba(8,149,80,.24),inset 0 1px rgba(255,255,255,.38);color:#fff}.pulse-periods button{min-width:55px}.pulse-metrics button{min-width:86px}
.pulse-map{position:relative;min-height:0;margin:0 max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overflow:hidden;border:1px solid rgba(19,145,96,.28);border-radius:24px;background:linear-gradient(145deg,rgba(249,255,253,.9),rgba(225,249,242,.68));box-shadow:inset 0 1px rgba(255,255,255,.9),inset 0 0 54px rgba(20,181,117,.11),0 12px 30px rgba(15,78,56,.12);touch-action:none}.pulse-map-backdrop{position:absolute;inset:-8%;opacity:.88;background-image:linear-gradient(135deg,transparent 0 28%,rgba(0,209,137,.11) 28.2% 28.45%,transparent 28.7% 55%,rgba(23,187,221,.1) 55.2% 55.45%,transparent 55.7%),radial-gradient(circle at 30% 30%,rgba(13,200,103,.15),transparent 31%),radial-gradient(circle at 72% 64%,rgba(19,177,213,.14),transparent 28%),linear-gradient(rgba(9,145,90,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(9,145,90,.055) 1px,transparent 1px);background-size:auto,auto,auto,38px 38px,38px 38px}.pulse-canvas{position:absolute;inset:0;transform-origin:0 0;will-change:transform}.pulse-node{position:absolute;display:block;padding:0;border:0;background:transparent;transform:translate(-50%,-50%);cursor:pointer;transition:opacity .18s ease}.pulse-node-shell,.pulse-node-inner{position:absolute;inset:0;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.pulse-node-shell{background:linear-gradient(135deg,rgba(255,255,255,.95),var(--node-color) 26%,var(--node-color) 73%,rgba(255,255,255,.78));box-shadow:inset 0 0 0 1px rgba(255,255,255,.75)}.pulse-node-inner{inset:3px;display:grid;align-content:center;justify-items:center;padding:8%;background:var(--node-bg);color:var(--ink);overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.92),inset 0 -18px 34px var(--node-tint)}.pulse-node-inner:after{content:"";position:absolute;inset:2px 18% 51%;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.68),transparent);clip-path:polygon(20% 0,80% 0,100% 62%,75% 100%,25% 100%,0 62%);opacity:.54}.pulse-node.is-up{--node-color:#12d976;--node-tint:rgba(19,215,117,.12);--node-bg:linear-gradient(145deg,rgba(255,255,255,.97),rgba(221,255,239,.91))}.pulse-node.is-down{--node-color:#ff526a;--node-tint:rgba(255,67,92,.1);--node-bg:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,230,235,.92))}.pulse-node.is-flat{--node-color:#20c7de;--node-tint:rgba(24,198,222,.11);--node-bg:linear-gradient(145deg,rgba(255,255,255,.98),rgba(226,250,254,.92))}.pulse-node.is-selected{z-index:5}.pulse-node.is-selected .pulse-node-shell{background:linear-gradient(135deg,#efffff 0,#00e2a0 22%,#19c9ed 74%,#fff 100%);box-shadow:inset 0 0 0 1px #fff}.pulse-node.is-selected .pulse-node-inner{inset:5px;box-shadow:inset 0 1px #fff,inset 0 -20px 38px rgba(0,212,190,.15)}.pulse-node-icon{position:relative;z-index:1;display:grid;place-items:center;width:31%;max-width:58px;min-width:18px;aspect-ratio:1;margin-bottom:2%;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.12);overflow:hidden}.pulse-node-icon img{width:100%;height:100%;object-fit:contain}.pulse-node-symbol,.pulse-node-change,.pulse-node-spark{position:relative;z-index:1}.pulse-node-symbol{font-size:clamp(.58rem,calc(var(--node-size) * .115),1.45rem);font-weight:1000;line-height:1}.pulse-node-change{margin-top:3%;font-size:clamp(.55rem,calc(var(--node-size) * .098),1.25rem);font-weight:1000;line-height:1}.pulse-node.is-up .pulse-node-change{color:#00954c}.pulse-node.is-down .pulse-node-change{color:#db2e44}.pulse-node-spark{width:58%;height:17%;margin-top:4%;overflow:visible}.pulse-node-spark path{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.pulse-node.is-up .pulse-node-spark{color:#08aa55}.pulse-node.is-down .pulse-node-spark{color:#ea3a4d}.pulse-node.is-small .pulse-node-icon{width:38%;margin:0}.pulse-node.is-small .pulse-node-symbol{margin-top:4%}.pulse-node.is-small .pulse-node-spark,.pulse-node.is-tiny .pulse-node-spark{display:none}.pulse-node.is-tiny .pulse-node-inner{padding:4%}.pulse-node.is-tiny .pulse-node-icon{width:48%;min-width:14px;margin:0}.pulse-node.is-tiny .pulse-node-symbol{display:none}.pulse-node.is-tiny .pulse-node-change{font-size:clamp(.48rem,calc(var(--node-size) * .12),.72rem)}
.pulse-loading,.pulse-empty{position:absolute;inset:0;z-index:7;display:grid;place-content:center;justify-items:center;gap:13px;background:rgba(244,255,250,.78);backdrop-filter:blur(6px);text-align:center}.pulse-loading[hidden],.pulse-empty[hidden],.pulse-detail[hidden]{display:none!important}.pulse-loading i{width:42px;height:42px;border:5px solid rgba(7,169,84,.16);border-top-color:var(--green);border-radius:50%;animation:pulse-spin .8s linear infinite}.pulse-loading span,.pulse-empty strong{font-size:.9rem}.pulse-empty button{min-height:42px;padding:0 18px;border:0;border-radius:12px;background:var(--green);color:#fff}.pulse-reset{position:absolute;right:14px;bottom:14px;z-index:8;display:grid;width:46px;height:46px;place-items:center;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);color:var(--ink)}.pulse-reset svg{width:24px;fill:none;stroke:currentColor;stroke-width:2}.pulse-hint{position:absolute;bottom:17px;left:50%;z-index:6;margin:0;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.75);box-shadow:0 4px 12px rgba(0,0,0,.08);color:var(--muted);font-size:.65rem;transform:translateX(-50%);transition:opacity .35s ease}.pulse-hint.is-hidden{opacity:0}
.pulse-detail{position:absolute;right:24px;bottom:24px;z-index:30;width:min(420px,calc(100% - 48px));padding:18px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 20px 54px rgba(6,55,39,.25);backdrop-filter:blur(20px)}.pulse-detail-handle{display:none}.pulse-detail-close{position:absolute;right:12px;top:10px;width:32px;height:32px;border:0;background:transparent;color:var(--muted);font-size:1.45rem}.pulse-detail-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding-right:25px}.pulse-detail-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:#fff;box-shadow:0 4px 10px rgba(0,0,0,.12);overflow:hidden}.pulse-detail-icon img{width:100%;height:100%;object-fit:contain}.pulse-detail-heading div{display:grid}.pulse-detail-heading small{color:var(--muted);font-size:.68rem}.pulse-detail-heading strong{font-size:1.12rem}.pulse-favorite{width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#0d3156;font-size:1.55rem}.pulse-detail-quote{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:11px 0 6px}.pulse-detail-quote strong{font-size:clamp(1.55rem,4vw,2.3rem);line-height:1}.pulse-detail-quote span{padding:7px 10px;border-radius:10px;font-size:1.08rem}.pulse-detail-quote span.is-up{background:rgba(9,187,91,.1);color:#07914a}.pulse-detail-quote span.is-down{background:rgba(239,59,79,.1);color:#d42e43}.pulse-detail-chart{display:block;width:100%;height:84px;overflow:visible}.pulse-detail-chart .grid{stroke:rgba(17,107,78,.11);stroke-width:1}.pulse-detail-chart .area{fill:rgba(11,187,94,.09)}.pulse-detail-chart .line{fill:none;stroke:#09a957;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.pulse-detail-chart.is-down .area{fill:rgba(239,59,79,.08)}.pulse-detail-chart.is-down .line{stroke:#e43a4e}.pulse-detail-chart .loading-line{stroke:rgba(18,126,91,.18);stroke-width:8;stroke-linecap:round}.pulse-detail-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.68rem}.pulse-search-dialog{width:min(520px,calc(100% - 24px));max-height:min(650px,82dvh);padding:0;border:1px solid var(--line);border-radius:22px;background:var(--surface-solid);box-shadow:0 26px 70px rgba(4,45,31,.34);color:var(--ink)}.pulse-search-dialog::backdrop{background:rgba(4,18,15,.44);backdrop-filter:blur(5px)}.pulse-search-dialog form{padding:18px}.pulse-search-dialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.pulse-search-dialog header strong{font-size:1.1rem}.pulse-search-dialog header button{width:38px;height:38px;border:0;background:transparent;color:var(--muted);font-size:1.5rem}.pulse-search-dialog input{width:100%;min-height:48px;padding:0 15px;border:1px solid var(--line);border-radius:13px;background:#f4faf7;color:var(--ink);font-size:1rem;font-weight:800;outline:none}.pulse-search-results{display:grid;gap:7px;margin-top:12px;overflow:auto;max-height:450px}.pulse-search-result{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;min-height:54px;padding:7px 10px;border:1px solid rgba(14,120,80,.12);border-radius:12px;background:#fff;color:var(--ink);text-align:left}.pulse-search-result img{width:38px;height:38px;object-fit:contain;border-radius:50%}.pulse-search-result span{display:grid}.pulse-search-result small{color:var(--muted)}.pulse-search-result b.is-up{color:#07914a}.pulse-search-result b.is-down{color:#d42e43}
html[data-theme="dark"]{--bg:#071017;--surface:rgba(12,24,31,.9);--surface-solid:#0d171e;--ink:#f6fbff;--muted:#9aa9b2;--line:rgba(69,190,145,.25);--shadow:0 12px 30px rgba(0,0,0,.34)}html[data-theme="dark"] body{background:radial-gradient(circle at 50% -10%,#0c2530 0,#08161d 37%,#060d12 100%)}html[data-theme="dark"] .pulse-app:before{background-image:linear-gradient(rgba(28,194,127,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(28,194,127,.055) 1px,transparent 1px)}html[data-theme="dark"] .pulse-header{background:rgba(7,15,21,.87);box-shadow:0 5px 20px rgba(0,0,0,.3)}html[data-theme="dark"] .pulse-back,html[data-theme="dark"] .pulse-header-actions button{background:rgba(13,28,36,.9);box-shadow:0 5px 14px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.06)}html[data-theme="dark"] .pulse-brand img{filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}html[data-theme="dark"] .pulse-sun{display:none}html[data-theme="dark"] .pulse-moon{display:block}html[data-theme="dark"] .pulse-map{background:linear-gradient(145deg,rgba(4,13,19,.88),rgba(4,27,30,.72));box-shadow:inset 0 1px rgba(78,232,190,.18),inset 0 0 76px rgba(0,137,104,.12),0 12px 30px rgba(0,0,0,.35)}html[data-theme="dark"] .pulse-node.is-up{--node-bg:linear-gradient(145deg,rgba(8,42,34,.97),rgba(5,22,25,.96));--node-tint:rgba(0,255,153,.1)}html[data-theme="dark"] .pulse-node.is-down{--node-bg:linear-gradient(145deg,rgba(52,18,30,.97),rgba(18,13,23,.96));--node-tint:rgba(255,43,91,.11)}html[data-theme="dark"] .pulse-node.is-flat{--node-bg:linear-gradient(145deg,rgba(7,36,48,.97),rgba(5,17,27,.96));--node-tint:rgba(0,213,255,.1)}html[data-theme="dark"] .pulse-node-inner:after{opacity:.18}html[data-theme="dark"] .pulse-loading,html[data-theme="dark"] .pulse-empty{background:rgba(6,15,20,.82)}html[data-theme="dark"] .pulse-hint{background:rgba(8,21,27,.78)}html[data-theme="dark"] .pulse-detail{background:rgba(8,19,26,.95)}html[data-theme="dark"] .pulse-favorite,html[data-theme="dark"] .pulse-search-result{background:#101d24;color:var(--ink)}html[data-theme="dark"] .pulse-search-dialog input{background:#071218;color:var(--ink)}
.pulse-detail-chart .candle-up line{stroke:#08a957;stroke-width:2}.pulse-detail-chart .candle-up rect{fill:#0cb361}.pulse-detail-chart .candle-down line{stroke:#e43a4e;stroke-width:2}.pulse-detail-chart .candle-down rect{fill:#eb4053}
@keyframes pulse-spin{to{transform:rotate(1turn)}}
@media(max-width:760px){.pulse-app{grid-template-rows:auto auto auto minmax(0,1fr)}.pulse-header{grid-template-columns:58px 1fr 92px;min-height:72px;padding-top:max(8px,env(safe-area-inset-top));padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}.pulse-back{width:44px;height:44px;border-radius:13px}.pulse-brand img{width:min(205px,48vw);max-height:42px}.pulse-brand strong{font-size:.56rem}.pulse-header-actions{gap:5px}.pulse-header-actions button{width:42px;height:42px;border-radius:12px}.pulse-summary{gap:7px;padding:7px 9px 0}.pulse-breadth,.pulse-temperature{min-height:58px;padding:9px 11px;border-radius:14px}.pulse-breadth p{gap:6px;margin-top:6px;font-size:.82rem}.pulse-temperature>span{font-size:.68rem}.pulse-temperature strong{font-size:1.85rem}.pulse-toolbar{display:grid;gap:6px;padding:7px 9px}.pulse-segment{width:100%;justify-content:stretch;padding:2px;border-radius:11px}.pulse-segment button{flex:1;min-width:0;min-height:32px;padding:0 5px;font-size:.72rem;border-radius:9px}.pulse-map{margin:0 5px max(5px,env(safe-area-inset-bottom));border-radius:18px}.pulse-hint{display:none}.pulse-reset{right:9px;bottom:9px;width:42px;height:42px}.pulse-detail{position:fixed;right:6px;bottom:max(6px,env(safe-area-inset-bottom));left:6px;width:auto;padding:14px 14px 12px;border-radius:22px}.pulse-detail-handle{display:block;width:42px;height:5px;margin:-5px auto 9px;border-radius:999px;background:rgba(91,111,104,.25)}.pulse-detail-heading{padding-right:25px}.pulse-detail-chart{height:68px}.pulse-detail-meta{font-size:.62rem}.pulse-search-dialog form{padding:14px}}
@media(max-height:680px) and (orientation:landscape){.pulse-header{min-height:58px;padding-top:6px;padding-bottom:6px}.pulse-brand img{max-height:34px}.pulse-brand strong{display:none}.pulse-summary{position:absolute;left:74px;top:6px;width:300px;padding:0;z-index:25}.pulse-breadth,.pulse-temperature{min-height:46px;padding:7px 10px}.pulse-breadth-bar,.pulse-temperature-bar{height:7px}.pulse-breadth p{margin-top:4px;font-size:.68rem}.pulse-temperature strong{font-size:1.45rem}.pulse-toolbar{padding:5px 9px}.pulse-map{border-radius:14px}.pulse-detail{right:12px;bottom:12px;left:auto;width:min(350px,44vw)}.pulse-detail-chart{height:55px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Shared fixed-bar pattern used by BitBull and StockBull. */
.pulse-app{grid-template-rows:auto auto auto auto minmax(0,1fr)}
.pulse-header{position:sticky;top:0;grid-template-columns:minmax(104px,1fr) auto minmax(104px,1fr);min-height:72px;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));background:rgba(255,255,255,.94);backdrop-filter:blur(18px)}
.pulse-board-switch{justify-self:start;display:inline-flex;width:128px;height:44px;align-items:center;justify-content:center;gap:7px;padding:5px 10px;border:1px solid rgba(91,108,101,.25);border-radius:13px;color:#078b43;background:rgba(255,255,255,.92);box-shadow:0 4px 13px rgba(16,43,70,.08),0 0 15px rgba(10,154,85,.12);font-size:1rem;text-decoration:none}
.pulse-board-switch img{display:block;width:88px;height:29px;object-fit:contain}
.pulse-brand{display:flex;width:clamp(160px,19vw,230px);align-items:center;justify-content:center;gap:7px}
.pulse-brand>img:not(.pulse-brand-icon){width:min(174px,15vw);max-height:50px}
.pulse-brand .pulse-brand-icon{width:44px;height:44px;object-fit:contain}
.pulse-page-title{display:grid;min-height:27px;place-items:center;color:var(--ink);font-size:.66rem;font-weight:1000;letter-spacing:.38em;text-indent:.38em}
.pulse-header-actions{justify-self:end;align-items:center;gap:7px}
.pulse-header-actions .pulse-theme-toggle{display:grid;width:48px;height:48px;place-items:center;border:1px solid rgba(8,130,82,.3);border-radius:14px;color:#f39800;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(232,248,239,.92));box-shadow:0 4px 12px rgba(7,133,62,.13),inset 0 1px #fff}
.pulse-theme-toggle .theme-icon{grid-area:1/1;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:opacity .18s ease,transform .22s ease}
.pulse-theme-toggle .theme-icon-sun circle{fill:currentColor;stroke:none}.pulse-theme-toggle .theme-icon-moon{opacity:0;transform:rotate(-24deg) scale(.62)}.pulse-theme-toggle[aria-pressed="true"] .theme-icon-sun{opacity:0;transform:rotate(28deg) scale(.62)}.pulse-theme-toggle[aria-pressed="true"] .theme-icon-moon{opacity:1;transform:rotate(0) scale(1)}
.pulse-power-control{display:inline-flex;min-height:48px;padding:5px 9px;align-items:center;gap:7px;border:1px solid rgba(8,126,66,.22);border-radius:14px;color:#47504b;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(232,248,239,.92));box-shadow:0 4px 12px rgba(7,133,62,.13),inset 0 1px #fff;font-size:.72rem;font-weight:950}
.pulse-power-control button{position:relative;width:44px!important;height:26px!important;padding:0;border:0!important;border-radius:999px!important;background:#b8bec2!important;box-shadow:inset 0 1px 3px rgba(26,34,30,.2)!important}.pulse-power-control button i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(17,29,23,.3);transition:transform .2s ease}.pulse-power-control button[aria-checked="true"]{background:#0aa357!important}.pulse-power-control button[aria-checked="true"] i{transform:translateX(18px)}.pulse-power-control b{min-width:23px;color:#68716c;font-size:.69rem;text-align:center}
.pulse-toolbar{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr);width:min(820px,100%);justify-self:center;gap:7px;padding:6px 10px}.pulse-segment{width:100%;padding:2px}.pulse-segment button{flex:1;min-width:0;min-height:34px;padding:0 7px}.pulse-periods button,.pulse-metrics button{min-width:0}
html[data-theme="dark"] .pulse-board-switch,html[data-theme="dark"] .pulse-power-control,html[data-theme="dark"] .pulse-theme-toggle{border-color:#35423c;color:#dce5e0;background:linear-gradient(145deg,#1d2b25,#121d18);box-shadow:0 4px 12px rgba(0,0,0,.34)}html[data-theme="dark"] .pulse-theme-toggle{color:#ffd260}
@media(max-width:760px){.pulse-app{grid-template-rows:auto auto auto auto minmax(0,1fr)}.pulse-header{grid-template-columns:minmax(88px,1fr) auto minmax(88px,1fr);min-height:66px;padding:7px 8px}.pulse-board-switch{width:96px;height:40px;gap:4px;padding:4px 6px}.pulse-board-switch img{width:66px;height:25px}.pulse-brand{width:clamp(126px,38vw,158px);gap:4px}.pulse-brand .pulse-brand-icon{width:36px;height:36px}.pulse-brand>img:not(.pulse-brand-icon){width:min(112px,28vw);max-height:38px}.pulse-header-actions{gap:5px}.pulse-power-control{min-height:44px;padding:4px 6px;border-radius:12px}.pulse-power-control>span{display:none}.pulse-header-actions .pulse-theme-toggle{width:44px;height:44px;border-radius:12px}.pulse-page-title{min-height:23px;font-size:.56rem}.pulse-toolbar{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr);gap:4px;padding:5px}.pulse-segment{border-radius:10px}.pulse-segment button{min-height:31px;padding:0 2px;font-size:.63rem;border-radius:8px}}
@media(max-width:430px){.pulse-power-control b{display:none}.pulse-power-control{padding-inline:5px}.pulse-brand{width:124px}.pulse-brand .pulse-brand-icon{width:32px;height:32px}.pulse-board-switch{width:88px}.pulse-board-switch img{width:61px}.pulse-toolbar .pulse-metrics button{font-size:.6rem}}

/* Compact mobile power-save control. Desktop keeps the full labelled switch. */
.mobile-power-glyph{display:none}
.power-save-notice{display:none;position:fixed;top:calc(env(safe-area-inset-top) + 62px);left:50%;z-index:10000;min-width:max-content;padding:8px 13px;border:1px solid rgba(8,126,66,.22);border-radius:999px;color:#18362a;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(5,75,46,.2);font-size:.74rem;font-weight:950;opacity:0;pointer-events:none;transform:translate(-50%,-8px);transition:opacity .18s ease,transform .18s ease}.power-save-notice.is-visible{opacity:1;transform:translate(-50%,0)}html[data-theme="dark"] .power-save-notice{border-color:#35423c;color:#eef8f3;background:rgba(18,29,24,.96)}
@media(max-width:760px){
  .pulse-brand{position:absolute;top:50%;left:50%;grid-column:1/-1;z-index:1;transform:translate(-50%,-50%)}
  .pulse-header-actions{position:relative;grid-column:3;justify-self:end;z-index:2}
  .pulse-board-switch{position:relative;grid-column:1;z-index:2}
  .pulse-power-control{flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:12px;background:transparent;box-shadow:none}
  .pulse-power-control>span,.pulse-power-control>b{display:none}
  .pulse-power-control button{display:grid;width:44px!important;height:44px!important;place-items:center;border:1px solid rgba(8,130,82,.3)!important;border-radius:12px!important;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(232,248,239,.94))!important;box-shadow:0 4px 12px rgba(7,133,62,.13),inset 0 1px #fff!important;color:#4f5a55}
  .pulse-power-control button i{display:none}
  .pulse-power-control button .mobile-power-glyph{display:block;font-size:.78rem;font-weight:1000;line-height:1;letter-spacing:-.04em;text-transform:lowercase}
  .pulse-power-control button[aria-checked="true"]{color:#fff;background:linear-gradient(145deg,#079452,#12bf68)!important;box-shadow:0 0 0 1px rgba(4,175,92,.22),0 0 14px rgba(11,211,111,.3),inset 0 1px rgba(255,255,255,.35)!important}
  html[data-theme="dark"] .pulse-power-control button{border-color:#35423c!important;background:linear-gradient(145deg,#1d2b25,#121d18)!important;box-shadow:0 4px 12px rgba(0,0,0,.34)!important;color:#cbd7d1}
  html[data-theme="dark"] .pulse-power-control button[aria-checked="true"]{color:#fff;background:linear-gradient(145deg,#078d4f,#10b961)!important;box-shadow:0 0 14px rgba(13,207,107,.26)!important}
  .power-save-notice{display:block}
}
@media(max-width:430px){
  .pulse-power-control,.pulse-power-control button,.pulse-header-actions .pulse-theme-toggle{flex-basis:40px;width:40px!important;height:40px!important;min-width:40px;min-height:40px}
}

/* BULL PULSE optical glass heatmap.
   The glass is built from static translucent layers instead of per-card blur,
   keeping the map responsive on mobile devices. */
.pulse-map{
  border-color:rgba(16,153,100,.34);
  background:
    radial-gradient(circle at 16% 18%,rgba(255,159,25,.23),transparent 28%),
    radial-gradient(circle at 82% 26%,rgba(13,205,124,.25),transparent 32%),
    radial-gradient(circle at 58% 84%,rgba(29,181,221,.2),transparent 34%),
    linear-gradient(145deg,#f9fffc 0%,#e6f9f1 43%,#e8f6fb 72%,#fff7e7 100%);
  box-shadow:inset 0 1px rgba(255,255,255,.96),inset 0 0 72px rgba(18,177,114,.1),0 12px 30px rgba(15,78,56,.14);
}
.pulse-map-backdrop{
  inset:-10%;
  opacity:1;
  background-image:
    radial-gradient(ellipse at 22% 35%,rgba(255,255,255,.72),transparent 25%),
    radial-gradient(ellipse at 78% 66%,rgba(0,191,155,.16),transparent 28%),
    linear-gradient(rgba(5,126,88,.075) 1px,transparent 1px),
    linear-gradient(90deg,rgba(5,126,88,.075) 1px,transparent 1px);
  background-size:auto,auto,36px 36px,36px 36px;
}
.pulse-node{isolation:isolate}
.pulse-node-shell{
  background:
    linear-gradient(145deg,rgba(255,255,255,.98) 0 8%,rgba(255,255,255,.36) 17%,transparent 27% 70%,rgba(255,255,255,.72) 84% 90%,rgba(255,255,255,.98) 100%),
    linear-gradient(115deg,var(--node-color),rgba(255,255,255,.92) 26%,var(--node-color) 54%,var(--node-deep) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.94),inset 0 0 12px rgba(255,255,255,.48);
}
.pulse-node-shell:before{
  content:"";
  position:absolute;
  inset:4%;
  clip-path:inherit;
  background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.9),transparent 25%),radial-gradient(circle at 82% 80%,var(--node-glow),transparent 34%);
  opacity:.84;
}
.pulse-node-inner{
  inset:4px;
  padding:7%;
  background:
    linear-gradient(128deg,rgba(255,255,255,.45) 0 7%,rgba(255,255,255,.07) 18% 61%,rgba(255,255,255,.26) 75%,rgba(255,255,255,.08) 100%),
    radial-gradient(circle at 74% 80%,var(--node-glow),transparent 47%),
    rgba(246,255,251,.2);
  box-shadow:inset 1px 2px 2px rgba(255,255,255,.95),inset -2px -3px 7px rgba(2,61,50,.14),inset 0 0 22px rgba(255,255,255,.18);
}
.pulse-node-inner:before{
  content:"";
  position:absolute;
  inset:8% 13% 56%;
  pointer-events:none;
  clip-path:polygon(17% 0,83% 0,100% 58%,73% 100%,27% 100%,0 58%);
  background:linear-gradient(155deg,rgba(255,255,255,.72),rgba(255,255,255,.09) 58%,transparent 74%);
  opacity:.8;
}
.pulse-node-inner:after{
  inset:auto 8% 5% 36%;
  height:29%;
  clip-path:polygon(0 31%,100% 0,73% 100%,15% 87%);
  background:linear-gradient(145deg,transparent,rgba(255,255,255,.42));
  opacity:.52;
}
.pulse-node.is-up{--node-color:#13f37d;--node-deep:#00a952;--node-glow:rgba(12,255,134,.26);--node-tint:rgba(12,255,134,.2);--node-bg:transparent}
.pulse-node.is-down{--node-color:#ff4962;--node-deep:#d91539;--node-glow:rgba(255,36,75,.24);--node-tint:rgba(255,36,75,.18);--node-bg:transparent}
.pulse-node.is-flat{--node-color:#25d8ed;--node-deep:#069aae;--node-glow:rgba(14,215,239,.23);--node-tint:rgba(14,215,239,.18);--node-bg:transparent}
.pulse-node.is-selected .pulse-node-shell{
  background:
    linear-gradient(145deg,#fff 0 8%,rgba(255,255,255,.4) 18%,transparent 32% 67%,rgba(255,255,255,.86) 86% 92%,#fff 100%),
    linear-gradient(115deg,var(--node-color),rgba(255,255,255,.98) 28%,var(--node-color) 58%,var(--node-deep));
  box-shadow:inset 0 0 0 1px #fff,inset 0 0 15px rgba(255,255,255,.65);
  filter:drop-shadow(0 0 7px var(--node-color));
}
.pulse-node.is-selected .pulse-node-inner{inset:5px;box-shadow:inset 1px 2px 2px #fff,inset -2px -3px 8px rgba(2,61,50,.17),inset 0 0 25px var(--node-glow)}
.pulse-node-icon{background:rgba(255,255,255,.9);box-shadow:0 3px 9px rgba(1,37,31,.16),inset 0 1px 1px rgba(255,255,255,.9)}
.pulse-node-symbol,.pulse-node-change{z-index:2;text-shadow:0 1px 1px rgba(255,255,255,.72)}
.pulse-node.is-up .pulse-node-change{color:#008f47;text-shadow:0 0 8px rgba(18,241,121,.28)}
.pulse-node.is-down .pulse-node-change{color:#d82542;text-shadow:0 0 8px rgba(255,55,87,.24)}
.pulse-node-spark{display:none!important}

html[data-theme="dark"] .pulse-map{
  border-color:rgba(49,210,156,.28);
  background:
    radial-gradient(circle at 17% 16%,rgba(243,142,0,.14),transparent 29%),
    radial-gradient(circle at 80% 25%,rgba(0,234,143,.17),transparent 34%),
    radial-gradient(circle at 57% 86%,rgba(0,156,213,.17),transparent 35%),
    linear-gradient(145deg,#07131c 0%,#071e20 47%,#071826 75%,#11140f 100%);
  box-shadow:inset 0 1px rgba(133,255,217,.16),inset 0 0 82px rgba(0,116,90,.12),0 12px 30px rgba(0,0,0,.4);
}
html[data-theme="dark"] .pulse-map-backdrop{
  background-image:
    radial-gradient(ellipse at 22% 35%,rgba(45,207,156,.1),transparent 25%),
    radial-gradient(ellipse at 78% 66%,rgba(0,151,205,.12),transparent 28%),
    linear-gradient(rgba(50,207,158,.065) 1px,transparent 1px),
    linear-gradient(90deg,rgba(50,207,158,.065) 1px,transparent 1px);
  background-size:auto,auto,36px 36px,36px 36px;
}
html[data-theme="dark"] .pulse-node-inner{
  color:#f7fbff;
  background:
    linear-gradient(128deg,rgba(255,255,255,.22) 0 6%,rgba(255,255,255,.035) 18% 63%,rgba(255,255,255,.12) 78%,rgba(255,255,255,.025) 100%),
    radial-gradient(circle at 74% 80%,var(--node-glow),transparent 46%),
    rgba(1,13,20,.23);
  box-shadow:inset 1px 2px 2px rgba(255,255,255,.42),inset -2px -3px 8px rgba(0,0,0,.42),inset 0 0 24px rgba(255,255,255,.04);
}
html[data-theme="dark"] .pulse-node-inner:after{opacity:.28}
html[data-theme="dark"] .pulse-node-icon{background:rgba(255,255,255,.92)}
html[data-theme="dark"] .pulse-node-symbol,html[data-theme="dark"] .pulse-node-change{text-shadow:0 2px 5px rgba(0,0,0,.72)}
html[data-theme="dark"] .pulse-node.is-up .pulse-node-change{color:#38ff99;text-shadow:0 0 8px rgba(17,255,137,.42)}
html[data-theme="dark"] .pulse-node.is-down .pulse-node-change{color:#ff6076;text-shadow:0 0 8px rgba(255,55,91,.42)}
html[data-power-save="true"] .pulse-node.is-selected .pulse-node-shell{filter:none}

/* BULL PULSE crystal sphere format v2 */
.pulse-map{background:linear-gradient(145deg,#fbfffd 0%,#eafaf3 42%,#e8f7fb 72%,#fff9eb 100%)}
.pulse-map-backdrop{inset:-13%;overflow:hidden}
.pulse-map-backdrop:before{
  content:"";position:absolute;inset:-20% -18%;
  background:url('/optimized/bitbull-header-icon-v2.webp') center 48%/min(94vw,920px) auto no-repeat;
  opacity:.055;filter:saturate(.94);transform:rotate(-6deg);transform-origin:center;
}
.pulse-map-backdrop:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(112deg,transparent 11%,rgba(255,255,255,.62) 25%,transparent 36% 64%,rgba(255,255,255,.34) 75%,transparent 87%);
  opacity:.58;
}
.pulse-node{border-radius:50%;isolation:isolate;contain:layout paint style}
.pulse-node-shell,.pulse-node-inner{clip-path:none;border-radius:50%}
.pulse-node-shell{
  background:
    radial-gradient(circle at 29% 18%,rgba(255,255,255,.98) 0 4%,rgba(255,255,255,.64) 8%,transparent 22%),
    radial-gradient(circle at 72% 79%,var(--node-glow),transparent 34%),
    conic-gradient(from 205deg,var(--node-deep),rgba(255,255,255,.94) 15%,var(--node-color) 30%,rgba(255,255,255,.98) 47%,var(--node-color) 66%,rgba(255,255,255,.86) 82%,var(--node-deep));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.94),inset 0 0 9px rgba(255,255,255,.8),0 0 8px var(--node-glow);
}
.pulse-node-shell:before{
  inset:3%;clip-path:none;border-radius:50%;
  background:linear-gradient(128deg,rgba(255,255,255,.96) 0 5%,rgba(255,255,255,.18) 17%,transparent 31% 68%,rgba(255,255,255,.48) 83%,rgba(255,255,255,.9));opacity:.82;
}
.pulse-node-inner{
  inset:4px;padding:0;display:block;overflow:hidden;
  background:
    radial-gradient(circle at 32% 24%,rgba(255,255,255,.72),transparent 17%),
    radial-gradient(circle at 68% 78%,var(--node-glow),transparent 42%),
    linear-gradient(128deg,rgba(255,255,255,.42),rgba(255,255,255,.055) 34% 67%,rgba(255,255,255,.28)),
    rgba(242,255,250,.13);
  box-shadow:inset 3px 4px 7px rgba(255,255,255,.92),inset -5px -7px 12px rgba(0,72,57,.15),inset 0 0 24px rgba(255,255,255,.24);
}
.pulse-node-inner:before{
  inset:5% 13% 66% 20%;clip-path:none;border-radius:50%;
  background:linear-gradient(150deg,rgba(255,255,255,.88),rgba(255,255,255,.12) 64%,transparent);filter:blur(.2px);opacity:.82;
}
.pulse-node-inner:after{
  content:"";position:absolute;z-index:5;inset:3%;height:auto;border-radius:50%;clip-path:none;pointer-events:none;
  background:linear-gradient(116deg,transparent 0 29%,rgba(255,255,255,.34) 38%,transparent 47% 100%);opacity:.6;
}
.pulse-node-refraction{
  position:absolute;z-index:0;inset:-12%;border-radius:50%;pointer-events:none;
  background-image:url('/optimized/bitbull-header-icon-v2.webp');background-repeat:no-repeat;background-size:245%;background-position:var(--refract-x) var(--refract-y);
  opacity:.085;transform:scaleX(-1) scale(1.24) rotate(5deg);filter:saturate(1.25) contrast(1.05);
  mix-blend-mode:multiply;
}
.pulse-node-labels{position:absolute;inset:0;z-index:4;width:100%;height:100%;overflow:visible;pointer-events:none}
.pulse-node-labels path{fill:none}
.pulse-node-labels text{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;font-weight:1000;paint-order:stroke fill;stroke:rgba(255,255,255,.22);stroke-width:.32px;letter-spacing:.02em}
.pulse-node-labels .pulse-node-symbol{fill:#071b38;font-size:13px;text-shadow:0 1px 1px rgba(255,255,255,.9)}
.pulse-node-labels .pulse-node-change{font-size:10.8px}
.pulse-node.is-up .pulse-node-labels .pulse-node-change{fill:#008e49;text-shadow:0 0 2px rgba(20,255,133,.48)}
.pulse-node.is-down .pulse-node-labels .pulse-node-change{fill:#d92342;text-shadow:0 0 2px rgba(255,51,87,.43)}
.pulse-node.is-flat .pulse-node-labels .pulse-node-change{fill:#087f99;text-shadow:0 0 2px rgba(36,216,239,.4)}
.pulse-node-icon{
  position:absolute;z-index:3;left:50%;top:50%;width:39%;min-width:0;max-width:none;margin:0;transform:translate(-50%,-50%) scaleX(1.08);
  border-radius:50%;background:rgba(255,255,255,.86);box-shadow:0 4px 11px rgba(1,37,31,.18),inset 0 1px 2px rgba(255,255,255,.96);overflow:hidden;
}
.pulse-node-icon:after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(120deg,rgba(255,255,255,.46),transparent 39% 70%,rgba(255,255,255,.14));pointer-events:none}
.pulse-node.is-selected{z-index:6}
.pulse-node.is-selected .pulse-node-shell{filter:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.95),inset 0 0 12px rgba(255,255,255,.8),0 0 11px var(--node-color)}
.pulse-node.is-selected .pulse-node-inner{inset:5px}
.pulse-node.is-small .pulse-node-icon{width:42%;margin:0}
.pulse-node.is-small .pulse-node-labels .pulse-node-symbol{font-size:14px}
.pulse-node.is-small .pulse-node-labels .pulse-node-change{font-size:11.2px}
.pulse-node.is-tiny .pulse-node-inner{padding:0}
.pulse-node.is-tiny .pulse-node-icon{width:47%;min-width:0;margin:0}
.pulse-node.is-tiny .pulse-node-labels .pulse-node-symbol{display:block;font-size:15px}
.pulse-node.is-tiny .pulse-node-labels .pulse-node-change{font-size:12px}
html[data-theme="dark"] .pulse-map-backdrop:before{opacity:.075;filter:saturate(1.2) brightness(.9)}
html[data-theme="dark"] .pulse-node-inner{background:radial-gradient(circle at 31% 22%,rgba(255,255,255,.3),transparent 18%),radial-gradient(circle at 69% 79%,var(--node-glow),transparent 43%),linear-gradient(128deg,rgba(255,255,255,.17),rgba(255,255,255,.025) 35% 68%,rgba(255,255,255,.1)),rgba(1,13,20,.18)}
html[data-theme="dark"] .pulse-node-refraction{opacity:.12;mix-blend-mode:screen}
html[data-theme="dark"] .pulse-node-labels .pulse-node-symbol{fill:#f6fbff;stroke:rgba(0,0,0,.28);text-shadow:0 2px 2px rgba(0,0,0,.72)}
html[data-power-save="true"] .pulse-node-refraction{opacity:.045;filter:none}
html[data-power-save="true"] .pulse-node-shell{box-shadow:inset 0 0 0 1px rgba(255,255,255,.78)}

/* Production optical-glass asset: keep the centre clear and colour only the rim. */
.pulse-map-backdrop:before{
  inset:-12% -10%;
  background-position:center 50%;
  background-size:min(108vw,980px) auto;
  opacity:.19;
  filter:saturate(1.02);
  transform:none;
}
.pulse-map-backdrop:after{display:none}
.pulse-node-shell{
  background:url('/assets/pulse-glass-sphere-v1.webp?v=1') center/100% 100% no-repeat;
  box-shadow:0 0 0 1px rgba(255,255,255,.42),0 0 8px var(--node-glow),0 7px 13px rgba(3,67,49,.12);
}
.pulse-node-shell:before{
  inset:3.5%;
  background:radial-gradient(circle at 50% 104%,var(--node-glow),transparent 32%);
  opacity:.34;
}
.pulse-node-inner{
  inset:5%;
  background:radial-gradient(circle at 50% 104%,var(--node-glow),transparent 29%);
  box-shadow:none;
}
.pulse-node-inner:before{display:none}
.pulse-node-inner:after{
  inset:0;
  background:linear-gradient(116deg,transparent 0 33%,rgba(255,255,255,.2) 40%,transparent 47% 100%);
  opacity:.42;
}
.pulse-node-refraction{
  inset:-18%;
  background-size:230%;
  opacity:.13;
  transform:scaleX(-1) scale(1.28) rotate(5deg);
  filter:saturate(1.18) contrast(1.06);
}
.pulse-node-labels .pulse-node-symbol{font-size:12.5px;letter-spacing:0}
.pulse-node-labels .pulse-node-change{font-size:10.5px;letter-spacing:0}
.pulse-node-icon{
  width:41%;
  background:transparent;
  box-shadow:0 3px 8px rgba(1,37,31,.14);
  transform:translate(-50%,-50%) scaleX(1.04);
}
.pulse-node-icon:after{background:linear-gradient(120deg,rgba(255,255,255,.28),transparent 37% 74%,rgba(255,255,255,.08))}
.pulse-node.is-selected .pulse-node-shell{
  background:url('/assets/pulse-glass-sphere-v1.webp?v=1') center/100% 100% no-repeat;
  box-shadow:0 0 0 2px rgba(255,255,255,.7),0 0 13px var(--node-color),0 9px 16px rgba(3,67,49,.16)
}
.pulse-node.is-selected .pulse-node-inner{inset:5%}
.pulse-node.is-small .pulse-node-labels .pulse-node-symbol{font-size:13px}
.pulse-node.is-small .pulse-node-labels .pulse-node-change{font-size:11px}
.pulse-node.is-tiny .pulse-node-labels .pulse-node-symbol{font-size:13.5px}
.pulse-node.is-tiny .pulse-node-labels .pulse-node-change{font-size:11.5px}
html[data-theme="dark"] .pulse-map-backdrop:before{opacity:.2;filter:saturate(1.16) brightness(.82)}
html[data-theme="dark"] .pulse-node-inner{background:radial-gradient(circle at 50% 104%,var(--node-glow),transparent 31%);box-shadow:none}
html[data-theme="dark"] .pulse-node-shell{box-shadow:0 0 0 1px rgba(255,255,255,.2),0 0 10px var(--node-glow),0 8px 15px rgba(0,0,0,.32)}
html[data-theme="dark"] .pulse-node.is-selected .pulse-node-shell{background:url('/assets/pulse-glass-sphere-v1.webp?v=1') center/100% 100% no-repeat;box-shadow:0 0 0 2px rgba(255,255,255,.42),0 0 15px var(--node-color),0 9px 18px rgba(0,0,0,.36)}
html[data-power-save="true"] .pulse-node-shell{box-shadow:0 0 0 1px rgba(255,255,255,.34),0 5px 9px rgba(3,67,49,.1)}
.pulse-map{touch-action:manipulation}
.pulse-canvas{transform:none!important;will-change:auto}

/* BTC three-layer optical-glass prototype: refraction / live data / generated glass. */
.pulse-node.is-btc-prototype{overflow:visible;contain:layout style;isolation:isolate}
.pulse-node.is-btc-prototype .pulse-node-shell,
.pulse-node.is-btc-prototype.is-selected .pulse-node-shell{
  inset:3%;
  background:radial-gradient(circle at 50% 72%,var(--node-glow),transparent 48%);
  box-shadow:0 11px 19px rgba(3,50,43,.16),0 0 16px var(--node-glow);
}
.pulse-node.is-btc-prototype .pulse-node-inner,
.pulse-node.is-btc-prototype.is-selected .pulse-node-inner{
  inset:7%;
  background:radial-gradient(circle at 50% 77%,var(--node-glow),transparent 55%);
  box-shadow:none;
}
.pulse-node.is-btc-prototype .pulse-node-refraction{
  inset:-28%;
  background-size:185%;
  background-position:var(--refract-x) var(--refract-y);
  opacity:.2;
  transform:scaleX(-1) scale(1.4) rotate(7deg);
  filter:saturate(1.35) contrast(1.12) blur(.15px);
}
.pulse-node.is-btc-prototype .pulse-node-labels{z-index:4;filter:drop-shadow(0 1px 1px rgba(255,255,255,.92))}
.pulse-node.is-btc-prototype .pulse-node-labels .pulse-node-symbol{font-size:14px;letter-spacing:.015em;stroke:rgba(255,255,255,.58);stroke-width:.48px}
.pulse-node.is-btc-prototype .pulse-node-labels .pulse-node-change{font-size:12px;letter-spacing:.005em;stroke:rgba(255,255,255,.38);stroke-width:.42px}
.pulse-node.is-btc-prototype .pulse-node-icon{
  z-index:3;width:44%;
  background:#f7931a;
  box-shadow:0 7px 14px rgba(102,55,0,.23),inset 0 2px 4px rgba(255,255,255,.7);
  transform:translate(-50%,-50%) scaleX(1.08) scaleY(1.04);
}
.pulse-node.is-btc-prototype .pulse-node-lens{position:absolute;z-index:4;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.pulse-node.is-btc-prototype .pulse-node-lens path{fill:none}
.pulse-node.is-btc-prototype .pulse-node-lens text{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;font-weight:1000;paint-order:stroke fill;letter-spacing:.01em}
.pulse-node.is-btc-prototype .pulse-node-lens .pulse-node-symbol{fill:#071b38;font-size:15px;stroke:rgba(255,255,255,.72);stroke-width:.55px}
.pulse-node.is-btc-prototype .pulse-node-lens .pulse-node-change{font-size:12.7px;stroke:rgba(255,255,255,.48);stroke-width:.5px}
.pulse-node.is-btc-prototype.is-up .pulse-node-lens .pulse-node-change{fill:#008e49}
.pulse-node.is-btc-prototype.is-down .pulse-node-lens .pulse-node-change{fill:#d92342}
.pulse-node.is-btc-prototype.is-flat .pulse-node-lens .pulse-node-change{fill:#087f99}
.pulse-node-lens-icon{display:block;width:100%;height:100%;border-radius:50%;background:#f7931a;box-shadow:0 6px 13px rgba(102,55,0,.22),inset 0 2px 4px rgba(255,255,255,.72);overflow:hidden;transform:scaleX(1.08) scaleY(1.04)}
.pulse-node-lens-icon img{display:block;width:100%;height:100%;object-fit:contain}
.pulse-node.is-btc-prototype .pulse-node-glass-overlay{
  position:absolute;z-index:7;inset:-5%;display:block;width:110%;height:110%;object-fit:contain;pointer-events:none;
  filter:drop-shadow(0 8px 10px rgba(2,54,45,.14));
}
html[data-theme="dark"] .pulse-node.is-btc-prototype .pulse-node-refraction{opacity:.24;mix-blend-mode:screen}
html[data-theme="dark"] .pulse-node.is-btc-prototype .pulse-node-lens .pulse-node-symbol{fill:#f6fbff;stroke:rgba(0,0,0,.34)}
html[data-theme="dark"] .pulse-node.is-btc-prototype .pulse-node-glass-overlay{filter:drop-shadow(0 9px 13px rgba(0,0,0,.38)) saturate(1.08)}
html[data-power-save="true"] .pulse-node.is-btc-prototype .pulse-node-glass-overlay{filter:drop-shadow(0 5px 7px rgba(2,54,45,.12))}

/* BULL PULSE cards reuse BitBull's crisp official marks without circular masks. */
.pulse-node.is-pulse-card{
  overflow:visible;
  contain:layout style;
  isolation:isolate;
  border-radius:27%;
  -webkit-tap-highlight-color:transparent;
}
.pulse-node.is-pulse-card .pulse-card-halo{
  position:absolute;
  z-index:0;
  inset:3%;
  border-radius:26%;
  background:transparent;
  box-shadow:
    0 0 calc(var(--node-size) * .08) calc(var(--node-size) * .012) var(--node-color),
    0 0 calc(var(--node-size) * .19) calc(var(--node-size) * .04) var(--node-color);
  opacity:var(--glow-opacity);
  pointer-events:none;
}
.pulse-node.is-pulse-card .pulse-card-core{
  position:absolute;
  z-index:1;
  inset:0;
  display:block;
  padding:5% 7% 4%;
  overflow:visible;
  border-radius:25%;
  color:#071b38;
  background:rgba(255,255,255,.97);
  box-shadow:
    inset 0 0 0 var(--edge-size) var(--node-color),
    inset 0 0 calc(var(--node-size) * .075) calc(var(--node-size) * .008) var(--node-inner-glow),
    inset 0 0 calc(var(--node-size) * .17) var(--node-glow),
    0 3px 9px rgba(5,39,31,.16);
}
.pulse-node.is-pulse-card .pulse-card-symbol,
.pulse-node.is-pulse-card .pulse-card-change{
  position:relative;
  z-index:2;
  max-width:100%;
  overflow:hidden;
  font-weight:1000;
  line-height:1;
  text-align:center;
  text-overflow:clip;
  white-space:nowrap;
}
.pulse-node.is-pulse-card .pulse-card-symbol{
  position:absolute;
  top:6%;
  right:7%;
  left:7%;
  font-size:var(--symbol-size);
  letter-spacing:-.035em;
  transform:skewX(-10deg);
}
.pulse-node.is-pulse-card .pulse-card-icon{
  position:absolute;
  top:18%;
  left:17%;
  z-index:1;
  display:grid;
  width:66%;
  height:53%;
  place-items:center;
  background:transparent;
  overflow:visible;
  transform:none;
}
.pulse-node.is-pulse-card .pulse-card-icon img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  filter:none;
  transform:translateY(var(--icon-shift-y,0)) scale(var(--icon-scale,1));
  transform-origin:center;
  image-rendering:auto;
}
.pulse-node.is-pulse-card .pulse-card-change{
  position:absolute;
  right:7%;
  bottom:5%;
  left:7%;
  color:#118da4;
  font-size:var(--change-size);
  letter-spacing:-.035em;
  text-shadow:0 1px 0 rgba(255,255,255,.95);
}
.pulse-node.is-pulse-card.is-up{--node-color:#17ef7d;--node-glow:rgba(23,239,125,.22);--node-inner-glow:rgba(23,239,125,.30)}
.pulse-node.is-pulse-card.is-down{--node-color:#ff0a46;--node-glow:rgba(255,10,70,.29);--node-inner-glow:rgba(255,10,70,.34)}
.pulse-node.is-pulse-card.is-flat{--node-color:#22cbe3;--node-glow:rgba(34,203,227,.19);--node-inner-glow:rgba(34,203,227,.27)}
.pulse-node.is-pulse-card.is-down .pulse-card-halo{opacity:calc(var(--glow-opacity) + .08);filter:saturate(1.2)}
.pulse-node.is-pulse-card.is-up .pulse-card-change{color:#00a957}
.pulse-node.is-pulse-card.is-down .pulse-card-change{color:#e32143}
.pulse-node.is-pulse-card.is-flat .pulse-card-change{color:#118da4}
.pulse-node.is-pulse-card.is-selected .pulse-card-core{
  box-shadow:
    inset 0 0 0 var(--edge-size) var(--node-color),
    inset 0 0 calc(var(--node-size) * .08) calc(var(--node-size) * .01) var(--node-inner-glow),
    inset 0 0 calc(var(--node-size) * .19) var(--node-glow),
    0 3px 10px rgba(5,39,31,.18);
}
.pulse-node.is-pulse-card[data-symbol="SAND"],
.pulse-node.is-pulse-card[data-symbol="GALA"],
.pulse-node.is-pulse-card[data-symbol="ARB"]{--icon-scale:.86;--icon-shift-y:-3%}
.pulse-node.is-pulse-card:focus-visible{outline:2px solid var(--node-color);outline-offset:3px}
.pulse-node.is-pulse-card.is-large .pulse-card-icon{top:14%;left:23%;width:54%;height:44%}
.pulse-node.is-pulse-card.is-xl .pulse-card-icon{top:13%;left:23%;width:54%;height:46%}
.pulse-node.is-pulse-card.is-large[data-symbol="BTC"],
.pulse-node.is-pulse-card.is-large[data-symbol="DOGE"],
.pulse-node.is-pulse-card.is-large[data-symbol="RENDER"],
.pulse-node.is-pulse-card.is-large[data-symbol="IMX"],
.pulse-node.is-pulse-card.is-large[data-symbol="ADA"],
.pulse-node.is-pulse-card.is-large[data-symbol="AVAX"],
.pulse-node.is-pulse-card.is-xl[data-symbol="BTC"],
.pulse-node.is-pulse-card.is-xl[data-symbol="DOGE"],
.pulse-node.is-pulse-card.is-xl[data-symbol="RENDER"],
.pulse-node.is-pulse-card.is-xl[data-symbol="IMX"],
.pulse-node.is-pulse-card.is-xl[data-symbol="ADA"],
.pulse-node.is-pulse-card.is-xl[data-symbol="AVAX"]{--icon-scale:.90;--icon-shift-y:-4%}
.pulse-node.is-pulse-card[data-symbol="BTC"],
.pulse-node.is-pulse-card[data-symbol="ADA"],
.pulse-node.is-pulse-card[data-symbol="LINK"],
.pulse-node.is-pulse-card[data-symbol="RENDER"],
.pulse-node.is-pulse-card[data-symbol="DOGE"]{--icon-scale:.90;--icon-shift-y:-4%}
.pulse-node.is-pulse-card.is-rank-one{--icon-scale:1.04;--icon-shift-y:0}
.pulse-node.is-pulse-card.is-rank-one .pulse-card-icon{top:18%;left:15%;width:70%;height:56%}
.pulse-node.is-pulse-card.is-rank-one[data-symbol="XRP"],
.pulse-node.is-pulse-card.is-rank-one[data-symbol="ATOM"]{--icon-scale:.94}
.pulse-node.is-pulse-card.is-small .pulse-card-core{padding:5% 6% 4%}
.pulse-node.is-pulse-card.is-small .pulse-card-icon{top:20%;left:16%;width:68%;height:57%;transform:none}
.pulse-node.is-pulse-card.is-tiny .pulse-card-core{padding:5%}
.pulse-node.is-pulse-card.is-tiny .pulse-card-symbol{display:block;top:7%;right:5%;left:5%}
.pulse-node.is-pulse-card.is-tiny .pulse-card-icon{top:22%;left:19%;width:62%;height:52%;transform:none}
.pulse-node.is-pulse-card.is-tiny .pulse-card-change{right:5%;bottom:6%;left:5%}
html[data-theme="dark"] .pulse-node.is-pulse-card .pulse-card-core{color:#071b38;background:rgba(255,255,255,.96)}
html[data-theme="dark"] .pulse-node.is-pulse-card .pulse-card-halo{opacity:calc(var(--glow-opacity) + .08)}
html[data-power-save="true"] .pulse-node.is-pulse-card .pulse-card-halo{box-shadow:0 0 7px 2px var(--node-color);opacity:.38}
.pulse-canvas.is-physics-active .pulse-node.is-pulse-card{will-change:transform}
.pulse-canvas.is-morphing .pulse-node.is-pulse-card{transition:width 7s cubic-bezier(.45,0,.55,1),height 7s cubic-bezier(.45,0,.55,1),opacity .6s ease;will-change:transform,width,height,opacity}
.pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-core{transition:padding 7s cubic-bezier(.45,0,.55,1)}
.pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-symbol{transition:top 7s cubic-bezier(.45,0,.55,1),right 7s cubic-bezier(.45,0,.55,1),left 7s cubic-bezier(.45,0,.55,1),font-size 7s cubic-bezier(.45,0,.55,1)}
.pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-icon{transition:top 7s cubic-bezier(.45,0,.55,1),left 7s cubic-bezier(.45,0,.55,1),width 7s cubic-bezier(.45,0,.55,1),height 7s cubic-bezier(.45,0,.55,1)}
.pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-icon img{transition:transform 7s cubic-bezier(.45,0,.55,1)}
.pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-change{transition:right 7s cubic-bezier(.45,0,.55,1),bottom 7s cubic-bezier(.45,0,.55,1),left 7s cubic-bezier(.45,0,.55,1),font-size 7s cubic-bezier(.45,0,.55,1)}
.pulse-canvas.is-morphing .pulse-node.is-pulse-card.is-leaving{opacity:0;pointer-events:none}
html[data-power-save="true"] .pulse-canvas.is-morphing .pulse-node.is-pulse-card,
html[data-power-save="true"] .pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-core,
html[data-power-save="true"] .pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-symbol,
html[data-power-save="true"] .pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-icon,
html[data-power-save="true"] .pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-icon img,
html[data-power-save="true"] .pulse-canvas.is-morphing .pulse-node.is-pulse-card .pulse-card-change{transition:none}
@media (prefers-reduced-motion:reduce){.pulse-node.is-pulse-card,.pulse-node.is-pulse-card .pulse-card-core,.pulse-node.is-pulse-card .pulse-card-symbol,.pulse-node.is-pulse-card .pulse-card-icon,.pulse-node.is-pulse-card .pulse-card-icon img,.pulse-node.is-pulse-card .pulse-card-change{transition:none}}

/* Keep every phone header control inside the safe area. */
@media(max-width:430px){
  .pulse-header{grid-template-columns:94px minmax(0,1fr) 94px;gap:3px;padding-right:max(6px,env(safe-area-inset-right));padding-left:max(6px,env(safe-area-inset-left))}
  .pulse-board-switch{width:82px;padding-inline:4px}.pulse-board-switch img{width:57px}
  .pulse-brand{width:118px;max-width:100%}.pulse-brand .pulse-brand-icon{width:30px;height:30px}.pulse-brand>img:not(.pulse-brand-icon){width:min(86px,24vw)}
  .pulse-header-actions{min-width:0;gap:3px}.pulse-power-control{min-height:40px;padding-inline:4px}.pulse-power-control button{width:40px!important}.pulse-power-control button[aria-checked="true"] i{transform:translateX(14px)}
  .pulse-header-actions .pulse-theme-toggle{width:40px;height:40px}
}

/* Phone landscape is a real five-row workspace. Do not pull summary controls
   into the fixed header: that hid the map and mixed controls after rotation. */
@media (orientation:landscape) and (max-height:520px) and (hover:none) and (pointer:coarse){
  html,body{height:100%;min-height:0;overflow:hidden}
  .pulse-app{width:100%;height:100dvh;min-height:0;grid-template-rows:48px 18px 52px 39px minmax(0,1fr);overflow:hidden}
  .pulse-header{position:relative;top:auto;grid-template-columns:minmax(92px,1fr) auto minmax(92px,1fr);min-height:48px;padding:max(3px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) 3px max(8px,env(safe-area-inset-left))}
  .pulse-board-switch{width:88px;height:34px;padding:3px 6px;border-radius:10px}
  .pulse-board-switch img{width:60px;height:22px}
  .pulse-brand{width:140px;gap:4px}
  .pulse-brand .pulse-brand-icon{width:32px;height:32px}
  .pulse-brand>img:not(.pulse-brand-icon){width:104px;max-height:34px}
  .pulse-brand strong{display:none}
  .pulse-header-actions{gap:4px}
  .pulse-power-control{min-height:34px;padding:3px 5px;border-radius:10px}
  .pulse-power-control>span{display:none}
  .pulse-power-control button{width:38px!important;height:26px!important}
  .pulse-power-control button i{width:20px;height:20px}
  .pulse-power-control button[aria-checked="true"] i{transform:translateX(12px)}
  .pulse-header-actions .pulse-theme-toggle{width:34px;height:34px;border-radius:10px}
  .pulse-header-actions .pulse-theme-toggle svg{width:19px;height:19px}
  .pulse-page-title{min-height:18px;font-size:.5rem;line-height:18px}
  .pulse-summary{position:static;left:auto;top:auto;width:auto;min-width:0;height:auto;grid-template-columns:1.15fr .85fr;gap:6px;padding:3px max(8px,env(safe-area-inset-right)) 2px max(8px,env(safe-area-inset-left));z-index:10}
  .pulse-breadth,.pulse-temperature{min-height:47px;padding:6px 10px;border-radius:12px}
  .pulse-breadth-bar,.pulse-temperature-bar{height:7px}
  .pulse-breadth p{margin-top:4px;font-size:.67rem}
  .pulse-temperature>span{font-size:.62rem}
  .pulse-temperature strong{font-size:1.38rem}
  .pulse-toolbar{position:static;width:100%;grid-template-columns:minmax(0,5fr) minmax(0,3fr);gap:4px;padding:3px 8px}
  .pulse-segment{padding:2px;border-radius:9px}
  .pulse-segment button{min-height:29px;padding:0 3px;border-radius:7px;font-size:.61rem}
  .pulse-map{min-height:0;margin:0 5px max(4px,env(safe-area-inset-bottom));border-radius:13px}
  .pulse-detail{right:8px;bottom:8px;left:auto;width:min(330px,44vw)}
}

/* Lower-level pages use one clear, icon-only back action. */
.pulse-board-switch{
  width:48px;
  height:48px;
  justify-content:center;
  gap:0;
  padding:0;
  border-radius:14px;
  font-size:1.85rem;
  font-weight:900;
  line-height:1;
}
@media(max-width:760px){
  .pulse-board-switch{width:44px;height:44px;padding:0;border-radius:12px;font-size:1.75rem}
}
@media (orientation:landscape) and (max-height:520px) and (hover:none) and (pointer:coarse){
  .pulse-board-switch{width:34px;height:34px;padding:0;border-radius:10px;font-size:1.45rem}
}

/* Unified BitBull controls and market-summary hierarchy. */
.pulse-page-title{
  min-height:34px;
  font-size:.9rem;
  letter-spacing:.34em;
  text-indent:.34em;
}
.pulse-board-switch,
.pulse-power-control,
.pulse-header-actions .pulse-theme-toggle,
.pulse-breadth,
.pulse-temperature,
.pulse-segment,
.pulse-detail{
  border-color:rgba(8,142,67,.32);
  background:linear-gradient(145deg,rgba(255,255,255,.97) 24%,rgba(243,251,246,.95) 100%);
  box-shadow:0 3px 9px rgba(7,133,62,.12),inset 0 0 3px rgba(21,186,91,.2),inset 0 0 10px rgba(21,186,91,.11),inset 0 1px 0 #fff;
}
.pulse-breadth p{margin:0 0 7px}
.pulse-breadth-bar{
  --breadth:50%;
  background:linear-gradient(90deg,#12dc70 0 var(--breadth),#ff4960 var(--breadth) 100%);
}
.pulse-breadth-bar i{display:none}
html[data-theme="dark"] .pulse-board-switch,
html[data-theme="dark"] .pulse-power-control,
html[data-theme="dark"] .pulse-header-actions .pulse-theme-toggle,
html[data-theme="dark"] .pulse-breadth,
html[data-theme="dark"] .pulse-temperature,
html[data-theme="dark"] .pulse-segment,
html[data-theme="dark"] .pulse-detail{
  border-color:rgba(52,203,119,.34);
  background:linear-gradient(145deg,rgba(27,37,33,.96),rgba(18,32,25,.94));
  box-shadow:0 3px 10px rgba(0,0,0,.3),inset 0 0 3px rgba(52,203,119,.2),inset 0 0 11px rgba(52,203,119,.1),inset 0 1px 0 rgba(255,255,255,.05);
}
@media(max-width:760px){
  .pulse-page-title{min-height:30px;font-size:.72rem;line-height:30px}
  .pulse-breadth p{margin:0 0 6px}
}
@media (orientation:portrait) and (max-width:760px){
  .pulse-app{grid-template-rows:auto auto auto minmax(0,1fr)}
  .pulse-page-title{display:none}
}
@media (orientation:landscape) and (max-height:520px) and (hover:none) and (pointer:coarse){
  .pulse-app{grid-template-rows:48px 22px 52px 39px minmax(0,1fr)}
  .pulse-page-title{min-height:22px;font-size:.62rem;line-height:22px}
  .pulse-breadth p{margin:0 0 4px}
}

/* Both scopes share the UTC calendar basis above their period controls. */
.pulse-time-basis{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:0 3px;color:var(--ink);font-size:.7rem;line-height:1.4}.pulse-time-basis strong{font-weight:900;white-space:nowrap}.pulse-time-basis span{font-size:.65rem;color:var(--muted);font-weight:650}
@media(max-width:760px){.pulse-time-basis{gap:7px;font-size:.65rem}.pulse-time-basis span{font-size:.6rem}}

/* Explicit rows let all recovered control space belong to the map. */
html .pulse-app{min-height:0;grid-template-areas:"header" "notes" "summary" "views" "toolbar" "map";grid-template-rows:auto auto auto auto auto minmax(0,1fr)}
.pulse-header{grid-area:header}
.pulse-header-notes{grid-area:notes;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:4px max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));line-height:1.35}
.pulse-header-notes .pulse-time-basis{flex:0 1 auto;display:flex;align-items:center;gap:8px;padding:0;text-align:left;font-size:.65rem}
.pulse-header-notes .pulse-time-basis span{font-size:.62rem}
.pulse-header-notes #pulseScopeNote{flex:0 1 auto;max-width:58%;margin:0;color:var(--muted);font-size:.62rem;font-weight:700;text-align:right;overflow-wrap:anywhere}
.pulse-summary{grid-area:summary;padding-top:6px}
.pulse-view-controls{grid-area:views;display:flex;justify-content:center;align-items:center;gap:12px;padding:5px 10px 0}
.pulse-view-controls .pulse-segment{width:auto;flex:0 1 auto;min-width:0}
.pulse-view-controls :is(a,button){display:flex;align-items:center;justify-content:center;min-width:68px;min-height:32px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:.76rem;font-weight:950;white-space:nowrap;text-decoration:none;cursor:pointer}
.pulse-view-controls :is(a[aria-current="page"],button[aria-pressed="true"]){background:linear-gradient(135deg,#0a9960,#12c96b);box-shadow:0 4px 10px rgba(8,149,80,.24),inset 0 1px rgba(255,255,255,.38);color:#fff}
.pulse-view-controls :is(a,button):focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.pulse-toolbar{grid-area:toolbar;padding-top:4px;padding-bottom:5px}
#pulseDataStatus{grid-area:map;align-self:start;z-index:12;margin:6px 18px 0;color:var(--muted);font-size:.65rem;line-height:1.3;pointer-events:none}
#pulseDataStatus:empty{display:none}
html .pulse-map{grid-area:map}
@media(max-width:760px){
  .pulse-header-notes{gap:8px;padding:3px max(6px,env(safe-area-inset-right)) 0 max(6px,env(safe-area-inset-left))}
  .pulse-header-notes .pulse-time-basis{display:flex;flex-direction:column;align-items:flex-start;gap:0;max-width:43%;font-size:.57rem}
  .pulse-header-notes .pulse-time-basis span{font-size:.53rem}
  .pulse-header-notes #pulseScopeNote{max-width:55%;font-size:.53rem}
  .pulse-summary{padding-top:5px}
  .pulse-view-controls{gap:8px;padding:4px 5px 0}
  .pulse-view-controls :is(a,button){min-width:57px;min-height:30px;padding:0 10px;border-radius:8px;font-size:.68rem}
  .pulse-toolbar{padding:3px 5px 4px}
}
@media(orientation:landscape) and (max-height:520px) and (hover:none) and (pointer:coarse){
  .pulse-header-notes .pulse-time-basis{flex-direction:row;gap:6px;max-width:none}
  .pulse-header-notes #pulseScopeNote{max-width:58%}
  .pulse-summary{padding-top:3px}
  .pulse-breadth,.pulse-temperature{min-height:43px;padding-top:5px;padding-bottom:5px}
  .pulse-view-controls{padding-top:3px}
  .pulse-view-controls :is(a,button){min-height:25px}
  .pulse-toolbar{padding-top:2px;padding-bottom:3px}
  .pulse-toolbar button{min-height:26px}
}

/* Six explicit time controls remain legible on narrow phones. */
@media(max-width:600px){
  .pulse-toolbar{grid-template-columns:minmax(0,1fr);gap:4px}
  .pulse-periods button{font-size:.65rem;padding-inline:2px}
  .pulse-toolbar .pulse-metrics button{font-size:.65rem}
}

/* Map-only view fills the area below the retained header. */
.pulse-expand-toggle{position:absolute;top:10px;right:10px;z-index:40;display:inline-flex;align-items:center;justify-content:center;gap:2px;width:max-content;min-width:0;height:auto;min-height:0;padding:2px 3px;border:1px solid rgba(10,130,78,.28);border-radius:8px;color:#153e2c;background:rgba(248,255,251,.94);box-shadow:0 3px 14px #0003;font:inherit;font-size:.64rem;font-weight:900;line-height:1.1;white-space:nowrap;cursor:pointer;touch-action:manipulation}
.pulse-expand-toggle svg{width:12px;height:12px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pulse-collapse-icon{display:none}
.pulse-expand-toggle:focus-visible{outline:3px solid #15cf82;outline-offset:2px}
html[data-theme="dark"] .pulse-expand-toggle{color:#eafff4;background:rgba(12,28,22,.94);border-color:#3d7258}
#pulseDataStatus{max-width:calc(100% - 145px)}
html[data-pulse-expanded="true"] .pulse-app{grid-template-areas:"header" "map";grid-template-rows:auto minmax(0,1fr)}
html[data-pulse-expanded="true"] :is(.pulse-header-notes,.pulse-summary,.pulse-view-controls,.pulse-toolbar){display:none}
html[data-pulse-expanded="true"] .pulse-map{margin:0;border-radius:0;border:0}
html[data-pulse-expanded="true"] .pulse-expand-icon{display:none}
html[data-pulse-expanded="true"] .pulse-collapse-icon{display:block}
@media(max-width:760px){.pulse-expand-toggle{top:7px;right:7px}}

/* unified-header.css forces six rows with !important; expanded maps need two. */
html[data-pulse-expanded="true"] body .pulse-app{grid-template-rows:calc(var(--bull-header-height) + env(safe-area-inset-top,0px)) minmax(0,1fr)!important}
.pulse-expand-toggle::before{content:"";position:absolute;inset:-8px -4px}

/* The common footer follows the viewport-sized map in normal mode. */
html:not([data-pulse-expanded="true"]) .pulse-map{touch-action:pan-y}
html[data-pulse-expanded="true"],html[data-pulse-expanded="true"] body{height:100%;overflow:hidden}
html[data-pulse-expanded="true"] body #site-footer.bull-footer{display:none}

/* Fixed decorative backgrounds must not intercept links after the map. */
.pulse-app::before,.pulse-app::after{pointer-events:none}
