/* Saved updates have one shared surface. News zoom animates only its message
   focus, leaving controls and the dashboard still. Highlight/reduced motion
   retain the same readable emphasis without movement. */
:root .results-update-bar{
 --update-surface:#edf3f7;--update-ink:#294658;--update-line:#a6bac9;
 --update-dot:#587386;--update-ring:#a36b2266;--update-accent:#885407;
 --update-panel:#fff;--update-panel-ink:#20384c;--update-control:#f3f6f9;
 --update-control-ink:#19394f;--update-control-line:#829aab;
 display:flex;align-items:stretch;position:relative;overflow:visible;
 min-height:36px;background:var(--update-surface);
 border-top:1px solid var(--update-line);border-bottom:1px solid var(--update-line);
}
:root[data-theme=night] .results-update-bar{
 --update-surface:#1e3346;--update-ink:#e8f1f7;--update-line:#496174;
 --update-dot:#a9c1d2;--update-ring:#f5d27966;--update-accent:#f5d279;
 --update-panel:#152b3d;--update-panel-ink:#edf4f9;--update-control:#213b50;
 --update-control-ink:#f1f6fb;--update-control-line:#819caf;
}
:root .results-update-bar>#live-banner{
 flex:1 1 0;min-width:0;min-height:0;align-self:stretch;
 display:flex;align-items:center;justify-content:space-between;gap:10px;
 padding:3px 16px;border:0;background:var(--update-surface);color:var(--update-ink);
 font-size:11px;line-height:1.2;font-weight:400;
 animation:none;transform:none;opacity:1;box-shadow:none;overflow:visible;
}
:root .results-update-bar>#live-banner[data-update-active=true]:not([data-update-effect=off]){
 --update-surface:#fff1cd;--update-ink:#493913;--update-dot:#986819;
 background:var(--update-surface);color:var(--update-ink);
 box-shadow:inset 4px 0 var(--update-accent),inset 0 -1px var(--update-accent);
}
:root[data-theme=night] .results-update-bar>#live-banner[data-update-active=true]:not([data-update-effect=off]){
 --update-surface:#3b311d;--update-ink:#ffe9af;--update-dot:#f5d279;
}
#result-update-message{
 display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;align-content:center;
 column-gap:5px;row-gap:1px;min-width:0;color:inherit;
 font-size:inherit;line-height:inherit;overflow-wrap:anywhere;
}
#result-update-message .result-update-label{
 display:inline;margin:0;padding:2px 4px;border:1px solid transparent;border-radius:3px;background:none;
 color:inherit;font-size:10px;font-weight:800;letter-spacing:.035em;white-space:nowrap;
}
#live-banner[data-update-active=true]:not([data-update-effect=off]) .result-update-label{
 border-color:var(--update-accent);background:var(--update-ink);color:var(--update-surface);
}
#result-update-message .result-update-focus{
 display:flex;flex:1 1 240px;min-width:0;flex-wrap:wrap;align-items:center;
 column-gap:6px;row-gap:1px;transform-origin:left center;
}
#result-update-message .result-update-area{font-size:1.12em}
#result-update-message .result-update-action{font-weight:750}
#result-update-message .result-update-total b{font-size:1.12em}
#result-update-message .result-update-count{font-size:10px;font-variant-numeric:tabular-nums;font-weight:650}
#result-update-message :is(.result-update-area,.result-update-total){font-weight:750}
#result-update-message :is(.result-update-time,.result-update-total,.result-update-delta){font-variant-numeric:tabular-nums}
#result-update-message .result-update-time{font-size:10px;white-space:nowrap}
#result-update-message .result-update-context{font-weight:400}
#result-update-message .result-update-changes{min-width:0;overflow-wrap:anywhere}
#result-update-message .result-update-indicator{
 display:inline-block;flex:0 0 7px;width:7px;height:7px;margin:2px 3px 2px 1px;
 border-radius:50%;background:var(--update-dot);box-shadow:none;animation:none;
}
#live-banner[data-update-active=true][data-update-effect=pulse] .result-update-indicator{
 animation:result-update-status-pulse 5s ease-out infinite;
 animation-delay:var(--update-effect-elapsed,0s);
}
#live-banner[data-update-active=true][data-update-effect=pulse] .result-update-focus{
 animation:result-update-news-zoom 5s cubic-bezier(.2,.7,.25,1) infinite;
 animation-delay:var(--update-effect-elapsed,0s);
}
#live-banner[data-update-paused=true] :is(.result-update-focus,.result-update-indicator){animation-play-state:paused!important}
@keyframes result-update-news-zoom{
 0%{transform:translateY(4px) scale(.94);opacity:.72}
 14%,92%{transform:translateY(0) scale(1);opacity:1}
 100%{transform:translateY(4px) scale(.94);opacity:.72}
}
@keyframes result-update-status-pulse{
 0%{box-shadow:0 0 0 0 var(--update-ring)}
 28%,100%{box-shadow:0 0 0 5px transparent}
}
#result-update-controls{position:relative;flex:none;align-self:center;margin:0;color:inherit}
#result-update-controls>summary{
 display:inline-flex;align-items:center;justify-content:center;gap:4px;
 min-height:22px;padding:3px 5px;margin:0;border:1px solid var(--update-control-line);
 border-radius:3px;list-style:none;cursor:pointer;white-space:nowrap;
 background:transparent;color:inherit;font-size:10px;font-weight:650;line-height:1.2;
}
#result-update-controls>summary::-webkit-details-marker{display:none}
#result-update-controls>summary::after{content:'\25be';font-size:10px}
#result-update-controls[open]>summary::after{content:'\25b4'}
.results-update-bar:has(#result-update-controls[open]){z-index:180}
#result-update-controls .result-update-effects-panel{
 display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;
 position:absolute;z-index:181;top:calc(100% + 7px);right:0;
 width:min(280px,calc(100vw - 28px));max-height:calc(100dvh - 130px);
 overflow:auto;padding:14px;border:1px solid var(--update-control-line);border-radius:5px;
 background:var(--update-panel);color:var(--update-panel-ink);
 box-shadow:0 6px 20px #071b2b33;font-size:12px;line-height:1.4;
}
#result-update-controls .result-update-effects-panel label{
 display:grid;gap:5px;min-width:0;margin:0;color:var(--update-panel-ink);
 font-size:12px;line-height:1.3;font-weight:650;
}
#result-update-controls :is(select,button){
 min-width:0;min-height:30px;margin:0;padding:5px 7px;
 border:1px solid var(--update-control-line);border-radius:3px;
 background:var(--update-control);color:var(--update-control-ink);
 font-size:12px;line-height:1.3;
}
#result-update-controls select{width:100%}
#result-update-controls button{grid-column:1/-1;cursor:pointer;font-weight:650}
#result-update-controls .result-update-effects-panel :is(p,small){grid-column:1/-1;margin:0;color:var(--update-panel-ink);font-size:11px;line-height:1.4}
#result-update-controls :is(summary,select,button):focus-visible{outline:2px solid #1687ac;outline-offset:2px}
:root[data-theme=night] #result-update-controls :is(summary,select,button):focus-visible{outline-color:#ffe397}
@media(max-width:650px){
 :root .results-update-bar>#live-banner{flex-basis:100%;padding:7px 14px;gap:8px}
 #result-update-message{font-size:11px;line-height:1.35;row-gap:3px}
 #result-update-controls{align-self:flex-start}
 #result-update-controls>summary{min-height:26px}
}
@media(prefers-reduced-motion:reduce){
 #live-banner :is(.result-update-indicator,.result-update-focus){animation:none!important;transform:none!important;opacity:1!important}
 #live-banner[data-update-active=true]:not([data-update-effect=off]) .result-update-indicator{box-shadow:0 0 0 2px var(--update-ring)}
}

/* Additional treatments use the same bounded event clock. Controls stay still;
   reduced motion below is the existing shared override for every treatment. */
#live-banner[data-update-active=true][data-update-effect=fade] .result-update-focus{animation:result-update-fade 5s ease-in-out infinite;animation-delay:var(--update-effect-elapsed,0s)}
#live-banner[data-update-active=true][data-update-effect=fade-zoom] .result-update-focus{animation:result-update-fade-zoom 5s cubic-bezier(.2,.7,.25,1) infinite;animation-delay:var(--update-effect-elapsed,0s)}
#live-banner[data-update-active=true][data-update-effect=slide] .result-update-focus{animation:result-update-slide 5s ease-out infinite;animation-delay:var(--update-effect-elapsed,0s)}
#live-banner[data-update-active=true]:is([data-update-effect=fade],[data-update-effect=fade-zoom],[data-update-effect=slide]) .result-update-indicator{animation:result-update-status-pulse 5s ease-out infinite;animation-delay:var(--update-effect-elapsed,0s)}
@keyframes result-update-fade{0%,100%{opacity:.12}18%,82%{opacity:1}}
@keyframes result-update-fade-zoom{0%,100%{opacity:.12;transform:scale(.86)}18%,82%{opacity:1;transform:scale(1)}}
@keyframes result-update-slide{0%,100%{opacity:.15;transform:translateY(5px)}18%,82%{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){#live-banner :is(.result-update-indicator,.result-update-focus){animation:none!important;transform:none!important;opacity:1!important}}
