.graphic-ticker{--ticker-scale:1;position:relative;height:calc(var(--ticker-height,84px)*var(--ticker-scale));width:100%;color:var(--ticker-fg,#fff);overflow:visible;font-size:calc(var(--ticker-font-size,32px)*var(--ticker-scale));font-family:"Arial Rounded MT Bold","Trebuchet MS",sans-serif;isolation:isolate}
.graphic-ticker[hidden]{display:none!important}.graphic-ticker[data-font=sans]{font-family:Arial,sans-serif}.graphic-ticker[data-font=condensed]{font-family:"Arial Narrow","Roboto Condensed",Arial,sans-serif;font-stretch:condensed}
.graphic-ticker-viewport{height:100%;width:100%;overflow:hidden;position:relative;background:var(--ticker-bg,#6500a8);border-top:calc(3px*var(--ticker-scale)) solid var(--ticker-accent,#ffcb32);border-radius:calc(12px*var(--ticker-scale));box-shadow:0 4px 20px #20003230;box-sizing:border-box}
.ticker-heading{position:absolute;bottom:calc(100% - 3px*var(--ticker-scale));left:calc(18px*var(--ticker-scale));display:flex;align-items:center;gap:calc(16px*var(--ticker-scale));height:calc(68px*var(--ticker-scale));max-width:calc(100% - 36px*var(--ticker-scale));padding:calc(6px*var(--ticker-scale)) calc(22px*var(--ticker-scale));box-sizing:border-box;border-radius:calc(14px*var(--ticker-scale)) calc(14px*var(--ticker-scale)) 0 0;border:calc(3px*var(--ticker-scale)) solid var(--ticker-accent,#ffcb32);border-bottom:0;background:#fff;color:#5a0098;z-index:2;box-shadow:0 -3px 18px #20003225}
.ticker-heading-copy{display:flex;flex-direction:column;gap:.12em;min-width:0}.ticker-heading-copy>b{font-size:.76em;text-transform:uppercase;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticker-heading-copy>small{font-size:.52em;font-weight:800}.ticker-competition-logo{width:calc(90px*var(--ticker-scale));height:100%;object-fit:contain;flex-shrink:0}
.graphic-ticker-track{display:flex;width:max-content;height:100%;animation:graphicTickerCrawl 40s linear infinite;will-change:transform}.graphic-ticker-group{display:flex;align-items:stretch;min-width:var(--ticker-view-width,100vw);padding-right:calc(24px*var(--ticker-scale));gap:calc(24px*var(--ticker-scale));flex-shrink:0;box-sizing:border-box}.graphic-ticker-item{display:flex;position:relative;align-items:center;gap:calc(18px*var(--ticker-scale));padding:calc(7px*var(--ticker-scale)) calc(24px*var(--ticker-scale)) calc(10px*var(--ticker-scale));height:100%;flex-shrink:0;white-space:nowrap;background:#ffffff0d;border-right:1px solid #ffffff30;box-sizing:border-box}
.ticker-item-body,.ticker-team{display:flex;align-items:center;gap:calc(16px*var(--ticker-scale))}.ticker-crest,.ticker-article-image{width:calc(52px*var(--ticker-scale));height:calc(52px*var(--ticker-scale));object-fit:contain}.ticker-initial{display:grid;place-items:center;border:2px solid var(--ticker-accent);border-radius:50%;width:1.6em;height:1.6em;font-size:.7em;font-weight:900;background:#ffffff18;flex-shrink:0}.ticker-team b{font-size:.95em}.ticker-score{font-size:1.35em;font-weight:900;color:var(--ticker-accent);padding:0 .2em;font-variant-numeric:tabular-nums}.ticker-match-info{font-weight:800;display:flex;flex-direction:column;gap:.12em;line-height:1.1;padding-left:.4em}.ticker-status{font-size:.48em;letter-spacing:.035em}.ticker-match-info>small{font-size:.43em;font-weight:500}.ticker-match-info.is-live{color:#baff84}.ticker-match-info.is-live .ticker-status:before{content:"● ";animation:tickerPulse 2s infinite}.ticker-when{display:flex;align-items:baseline;gap:.45em;white-space:nowrap}.ticker-when>span{font-size:.6em}.ticker-when>strong{font-size:1em;color:var(--ticker-accent);font-weight:900;font-variant-numeric:tabular-nums}.ticker-timezone{font-size:.4em;font-weight:700;opacity:.9}
.ticker-copy{display:flex;align-items:baseline;gap:.6em}.ticker-copy>small{font-size:.9em;font-weight:800;opacity:1;line-height:1.2}.ticker-position{font-size:1.35em;color:var(--ticker-accent);font-weight:900}.ticker-metric{color:var(--ticker-accent);font-size:1.3em}.ticker-weather-icon{width:1.7em;height:1.7em}.ticker-weather-icon svg{height:100%;width:100%}.ticker-event-time{display:flex;flex-direction:column;gap:.1em}.ticker-flag{font-size:.38em;border:1px solid currentColor;padding:.4em;border-radius:.5em;color:var(--ticker-accent)}.ticker-heading-credit{font-family:Arial,sans-serif;font-size:.7em;font-weight:500}
.graphic-ticker[data-mode=cards] .graphic-ticker-track{width:100%;animation:none}.graphic-ticker[data-mode=cards] .graphic-ticker-item{width:100%;animation:tickerCardIn var(--ticker-transition,500ms) ease-out}.graphic-ticker[data-mode=cards] .ticker-item-body{flex:1;min-width:0;justify-content:center}.graphic-ticker[data-mode=cards] .ticker-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;width:100%}.graphic-ticker[data-mode=cards] .ticker-team{min-width:0;max-width:none;justify-content:center}.graphic-ticker[data-mode=cards] .ticker-team b{overflow:hidden;text-overflow:ellipsis}.graphic-ticker[data-mode=cards] .ticker-copy{min-width:0;overflow:hidden}.graphic-ticker[data-mode=cards] .ticker-title,.graphic-ticker[data-mode=cards] .ticker-copy>small{overflow:hidden;text-overflow:ellipsis}
@keyframes graphicTickerCrawl{to{transform:translateX(-50%)}}@keyframes tickerCardIn{from{opacity:0;transform:translateY(12%)}to{opacity:1;transform:none}}@keyframes tickerPulse{50%{opacity:.4}}@media(prefers-reduced-motion:reduce){.ticker-card,.ticker-match-info.is-live .ticker-status:before{animation:none!important}}
#ticker.graphic-ticker{display:block;padding:0;font-weight:normal;background:transparent;border:0;box-shadow:none;border-radius:0;overflow:visible}#stage.landscape.downloaded.with-ticker>#ticker.graphic-ticker{height:calc(var(--ticker-height,84px)*var(--ticker-scale));top:auto!important}

.ticker-console{display:grid;gap:18px;min-width:0}.ticker-console [hidden]{display:none!important}.ticker-console>.heading{margin-bottom:0}.ticker-console [data-notice]{padding:12px 16px;border:1px solid #705085;border-radius:9px;background:#301d40;font-size:12px;margin:0}.ticker-console .ticker-origin{padding:14px 18px;background:#aa7aff15;border:1px solid #a77aff35;border-radius:10px;color:var(--muted);font-size:12px;margin:0}
.ticker-main-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0;border-bottom:1px solid var(--line);padding:5px 0 12px}.ticker-main-tabs button{background:transparent;color:var(--muted);font-size:12px;gap:9px;white-space:nowrap}.ticker-main-tabs button[aria-selected=true]{color:var(--text,#fff);background:#382448;border-color:#a77aff}.ticker-main-tabs button>i{font-style:normal;font-size:18px}.ticker-main-tabs button>span{background:none;padding:0;font-size:inherit}.ticker-main-tabs button>b{font-size:10px;font-weight:600;background:#ffffff12;border-radius:5px;padding:1px 6px}
.ticker-console [data-tab-panel]{min-width:0;max-width:100%}.ticker-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.ticker-console .panel{margin:0 0 20px}.ticker-console .panel>h3{font-size:16px;margin-bottom:14px}.ticker-provider-grid>.panel{height:100%}.ticker-provider{min-width:0;gap:14px}.ticker-console .playlist-card{margin:0;padding:22px;background:linear-gradient(145deg,#2b2038,#1b1625);border-color:var(--line)}.ticker-console .ticker-provider{border-top:4px solid #b498ff}.ticker-console .ticker-provider-open{border-top-color:#62d8b5}.ticker-console .ticker-provider-news{border-top-color:#ff7eac}.ticker-card-heading{display:flex;align-items:center;gap:13px;justify-content:space-between}.ticker-provider-icon{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:12px;background:#aa7aff18;color:#d3bfff;font-size:26px}.ticker-card-heading>div{min-width:0;flex:1}.ticker-card-heading h3{font-size:17px;line-height:1.35;margin:4px 0 0;overflow-wrap:anywhere}.ticker-badge{display:inline-block;align-self:flex-start;width:fit-content;color:#cdb8ee;background:#aa7aff14;border:1px solid #aa7aff30;border-radius:20px;padding:3px 9px;font-size:10px;font-weight:700}.ticker-provider-open .ticker-badge{color:#9be8ce;background:#62d8b518;border-color:#62d8b535}.ticker-provider-news .ticker-badge{color:#ffc0d7;background:#ff7eac15;border-color:#ff7eac35}.ticker-console h4{font-size:12px;margin:4px 0 0}.ticker-console a{font-size:12px;color:var(--purple,#cbb0f5)}.ticker-capabilities{display:flex;gap:7px;flex-wrap:wrap}.ticker-capabilities>span{font-size:10px;padding:4px 8px;background:#ffffff08;border:1px solid #ffffff18;border-radius:6px;color:#d4c8e1}.ticker-league-buttons{display:flex;gap:7px;flex-wrap:wrap}.ticker-console .ticker-league-buttons button{font-size:11px;padding:8px 11px}.ticker-console label{display:flex;flex-direction:column;gap:7px;font-size:11px}.ticker-console label.check{flex-direction:row;align-items:center;font-size:11px}.ticker-console input:not([type=checkbox]),.ticker-console select{width:100%;min-height:38px;min-width:0;margin-top:0}.ticker-console input[type=color]{height:42px;padding:6px}.ticker-console label>small{font-size:10px;color:var(--muted)}.ticker-console .ticker-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ticker-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.ticker-console .ticker-extra{margin:20px 0;padding:18px 22px}.ticker-extra>summary,.ticker-source-card summary{cursor:pointer;font-weight:650;font-size:12px;color:#d9c5f0}.ticker-extra[open]>summary{margin-bottom:18px}.ticker-extra .ticker-provider-grid{margin-top:16px}.ticker-extra .ticker-provider{display:flex;flex-direction:column;gap:14px}.ticker-console .ticker-list-heading{margin:26px 0 16px}.ticker-list-heading h3{font-size:17px}.ticker-list-heading .muted{margin-top:7px}.ticker-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.ticker-source-grid>.empty{grid-column:1/-1;padding:25px;border:1px dashed var(--line);border-radius:12px}.ticker-source-card{display:flex;flex-direction:column;gap:14px}.ticker-source-title{min-width:0}.ticker-source-card .ticker-card-heading .check{margin:0;white-space:nowrap;flex-shrink:0}.ticker-source-card details{border-top:1px solid var(--line);padding-top:13px}.ticker-source-card details[open]>summary{margin-bottom:16px}.ticker-source-card .ticker-form-grid{margin-bottom:15px}.ticker-source-card .ticker-source-picks{margin:12px 0}.ticker-source-card .check{margin:0}.ticker-source-card .ticker-source-advanced{margin-top:15px}.ticker-source-logo{width:90px;height:58px;object-fit:contain}.ticker-source-status{font-size:11px;color:var(--muted);line-height:1.6;min-height:18px;margin:0}.ticker-console .ticker-error{color:#ffabc2!important}.ticker-card-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;border-top:1px solid var(--line);padding-top:13px;margin-top:auto}.ticker-card-actions .delete{color:#ff9db5}.ticker-console .ticker-card-actions button{font-size:11px;padding:7px 11px}.ticker-news-candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.ticker-news-candidate{gap:12px}.ticker-news-candidate h3{font-size:15px}.ticker-news-candidate>button{margin-top:auto}.ticker-source-picks{display:flex;gap:12px;flex-wrap:wrap}.ticker-pick-group{margin-top:18px}.ticker-pick-group h4{margin-bottom:12px}.ticker-console .ticker-pick{border:1px solid var(--line);border-radius:9px;padding:10px 13px;margin:0;background:#ffffff04}.ticker-pick small{color:var(--muted);font-size:10px}.ticker-pick:has(input:checked){border-color:#aa7aff80;background:#aa7aff12}
.ticker-preview{background:repeating-conic-gradient(#e5dfe9 0% 25%,#faf7fc 0% 50%) 0/24px 24px;padding:85px 0 20px;min-height:190px;border-radius:12px;overflow:hidden;margin-top:20px}.ticker-preview .graphic-ticker-group{min-width:100%}.ticker-overlay-link{display:block;word-break:break-all;margin:15px 0}.ticker-console [data-timezone-note]{margin-top:12px}.ticker-console [data-config=timezone]{margin:8px 0 0}.client-workspace .ticker-console .playlist-card{background:linear-gradient(145deg,#25343e,#1b2532);border-color:#42616b}.client-workspace .ticker-main-tabs button[aria-selected=true]{background:#245965;border-color:#6acac2}
@media(max-width:1000px){.ticker-news-candidates{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.ticker-provider-grid,.ticker-source-grid,.ticker-news-candidates{grid-template-columns:1fr}.ticker-main-tabs{gap:5px}.ticker-main-tabs button{padding:9px 11px}.ticker-console .heading{flex-wrap:wrap}.ticker-console .playlist-card{padding:18px}}@media(max-width:420px){.ticker-console .ticker-form-grid{grid-template-columns:1fr}.ticker-main-tabs button{font-size:11px}.ticker-card-heading{gap:9px}}
#stage.local.with-ticker #ticker.graphic-ticker{display:block!important;position:absolute;bottom:2vh;left:2vh;width:calc(100% - 4vh);z-index:8}
#stage #ticker.graphic-ticker{font-size:calc(var(--ticker-font-size,32px)*var(--ticker-scale))}
.ticker-source-status{display:grid;gap:6px}.ticker-source-status small{font-size:11px;color:#b8afc7}.ticker-source-health{font-size:11px;line-height:1.4;color:#c3b5d2}.ticker-source-health.healthy{color:#a7f0ca}.ticker-source-health.failed{color:#ffb2c6}.ticker-source-samples{border:1px solid #514362;border-radius:8px;background:#130f1c;margin:12px 0;padding:12px;font-size:12px;line-height:1.6}.ticker-source-samples>small{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#c8b7e1}.ticker-source-samples ul{margin:7px 0 0;padding-left:18px}.ticker-source-samples li+li{margin-top:5px}.ticker-source-samples p{margin:6px 0 0}.ticker-emission-row{display:grid;grid-template-columns:28px 1fr auto auto;align-items:center;gap:14px;padding:14px;background:#211a2d;border:1px solid #4c3d60;border-radius:10px;margin-top:10px}.ticker-emission-row label{margin:0!important}.ticker-emission-row.unavailable{border-style:dashed}.ticker-order-number{color:#cba8ff;font-weight:800}.ticker-row-actions{display:flex;gap:6px}.ticker-row-actions button{padding:7px 12px}.ticker-sports-news{margin-top:20px}.ticker-sports-news .ticker-news-candidates{grid-template-columns:repeat(2,minmax(0,1fr))}.ticker-sports-news h4{font-size:14px;margin-top:0}.ticker-sports-news button{margin-top:14px;display:block}@media(max-width:760px){.ticker-emission-row{grid-template-columns:22px 1fr auto}.ticker-emission-row>.ticker-source-health{grid-column:2;grid-row:2}.ticker-row-actions{grid-column:3;grid-row:1/3}.ticker-sports-news .ticker-news-candidates{grid-template-columns:1fr}}

.ticker-city-group{border:1px solid var(--line,#4c3c60);border-radius:10px;margin:14px 0;padding:12px}.ticker-city-group legend{font-weight:800;font-size:13px;padding:0 8px}.ticker-city-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:4px 14px}.ticker-city-list .check{font-size:13px;margin:7px 0}

/* Unified ribbon navigation: the same sections locally and in central control. */
.ribbon-console{display:grid;gap:20px;min-width:0}.ribbon-console .ribbon-heading{margin:0}.ribbon-console>.ribbon-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:7px;background:#1d1628;border:1px solid #4c385e;border-radius:14px}.ribbon-tabs button{display:flex;align-items:center;gap:9px;padding:13px 17px;border-radius:9px;background:transparent;border:1px solid transparent;color:#c3b6cf;font-weight:750;font-size:13px}.ribbon-tabs button i{font-style:normal;font-size:18px}.ribbon-tabs button[aria-selected=true]{background:#6a00a8;color:white;border-color:#c48df1;box-shadow:inset 0 -3px #ffcf35}.ribbon-tabs button:focus-visible{outline:3px solid #ffda59;outline-offset:2px}.ribbon-console .ticker-main-tabs{display:none!important}.ribbon-console .ticker-console>.heading>div:first-child{display:none}.ribbon-console .ticker-console>.heading{justify-content:flex-end;margin-bottom:0}.ribbon-console .ticker-list-heading{margin-top:4px}.ribbon-console .ribbon-texts>.panel{border:0;padding:0;margin:0;background:transparent}.ribbon-console .ribbon-texts h1{font-size:23px}.ribbon-console .message-grid{margin-top:18px}.ribbon-manual-row>div{display:grid;gap:4px}.ribbon-manual-row small{font-size:11px;color:#b5a2c7}.client-workspace .ribbon-tabs{background:#162a30;border-color:#47707a}.client-workspace .ribbon-tabs button[aria-selected=true]{background:#245965;border-color:#76d4cd}.ribbon-texts>[hidden]{display:none!important}@media(max-width:600px){.ribbon-tabs button{padding:10px 12px;gap:6px;font-size:12px}.ribbon-manual-row .ticker-row-actions button:first-child{display:none}}
