/* SIN DOM v1.16 / BLUE NOISE. Stadium energy, history, responsive fixtures and zone semantics. */
:root{--sd-electric:#2c9ef7;--sd-coral:#e6745c;--sd-amber:#ecc17d}
.sd-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
/* Historical hardware: each trophy class gets its own authored line icon. */
.sd-legacy-strip{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(100deg,#031021 5%,#0d2b57 54%,#071631);border-bottom:1px solid rgba(244,201,115,.45)}
.sd-legacy-strip::before{content:"";position:absolute;inset:0;opacity:.16;background:repeating-linear-gradient(116deg,transparent 0 74px,#5c91e1 75px,transparent 76px 148px);pointer-events:none}
.sd-legacy-inner{position:relative;min-height:106px;display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:clamp(12px,4vw,65px)}
.sd-legacy-intro{font:900 21px/.9 Unbounded,Manrope,sans-serif;color:var(--sd-gold);letter-spacing:-.11em;display:flex;flex-direction:column;gap:8px}
.sd-legacy-intro i{display:block;width:54px;height:3px;background:#e7bf75;transform:skewX(-19deg)}
.sd-legacy-awards{display:flex;align-items:center;justify-content:space-around;gap:clamp(10px,3vw,54px)}
.sd-legacy-award{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;color:#f1c87c;min-width:0;transition:transform .22s ease}
.sd-legacy-award:not(:last-child)::after{content:"";position:absolute;right:calc(-1 * clamp(10px,3vw,54px) / 2);height:30px;border-right:1px solid rgba(242,201,130,.2)}
.sd-legacy-award strong{font:900 clamp(26px,4.7vw,56px)/1 Unbounded,sans-serif;letter-spacing:-.09em;color:#fff;font-variant-numeric:tabular-nums}
.sd-award-svg{display:block;width:clamp(23px,3.5vw,39px);height:clamp(23px,3.5vw,39px);flex:none;filter:drop-shadow(0 0 11px rgba(234,187,89,.20))}
.sd-legacy-more{font:800 9px/1.4 Manrope,sans-serif;color:#c4d5ea;letter-spacing:.12em;white-space:nowrap}.sd-legacy-more:hover{color:#f3c973}
.trophy-icon .sd-award-svg{width:44px;height:44px;color:#edc375}
/* Competition-specific stadium light. Never change Levski crest or brand color. */
.sd-stadium-hero.theme-europa{--sd-energy:244,123,45;--sd-energy-solid:#f27a36}
.sd-stadium-hero.theme-efbet{--sd-energy:36,151,248;--sd-energy-solid:#319dff}
.sd-stadium-hero.theme-cup{--sd-energy:227,191,115;--sd-energy-solid:#e4c27e}
.sd-stadium-hero.theme-generic{--sd-energy:53,137,214;--sd-energy-solid:#4299e8}
.sd-stadium-hero:before{background:radial-gradient(ellipse 70% 43% at 77% 28%,rgba(var(--sd-energy,45,141,245),.34),transparent 76%),radial-gradient(ellipse 50% 60% at 6% 95%,rgba(var(--sd-energy,45,141,245),.16),transparent 73%),linear-gradient(100deg,rgba(1,8,23,.84) 0%,rgba(2,11,30,.59) 50%,rgba(1,8,23,.72) 100%),linear-gradient(0deg,#041127 1%,transparent 46%)}
.sd-stadium-hero .fan-matchday{position:relative;isolation:isolate;box-shadow:0 21px 80px rgba(0,0,0,.48),0 -4px 31px rgba(var(--sd-energy,45,141,245),.18),inset 0 1px 0 rgba(255,255,255,.09);border-top-color:var(--sd-energy-solid,#e9bd73)!important}
.sd-stadium-hero .fan-matchday::before{content:"";position:absolute;z-index:-1;inset:-3px -3px 65%;pointer-events:none;background:radial-gradient(ellipse 68% 70% at 55% 0%,rgba(var(--sd-energy,45,141,245),.18),transparent 85%);animation:sd-ambient-pulse 8s ease-in-out infinite alternate}
.sd-stadium-hero .fan-matchday::after{content:"";pointer-events:none;position:absolute;top:-3px;left:-1px;width:38%;height:3px;background:linear-gradient(90deg,transparent,var(--sd-energy-solid,#e9bd73),transparent);animation:sd-border-sweep 9s ease-in-out infinite alternate}
.sd-stadium-hero .fan-kickoff{filter:drop-shadow(0 0 14px rgba(var(--sd-energy,45,141,245),.18))}
.sd-stadium-hero .fan-pulse{background:var(--sd-energy-solid,#e9bd73);box-shadow:0 0 0 3px rgba(var(--sd-energy,45,141,245),.15),0 0 20px rgba(var(--sd-energy,45,141,245),.7)}
.sd-matchday-takeover .sd-stage-title>span{color:var(--sd-energy-solid,#e9bd73)}
.sd-matchday-takeover .sd-stage-title h1 em{text-shadow:0 0 25px rgba(var(--sd-energy,45,141,245),.3)}
.sd-matchday-takeover .fan-matchday{box-shadow:0 22px 88px rgba(0,0,0,.5),0 0 60px rgba(var(--sd-energy,45,141,245),.27)}
.sd-stadium-hero .sd-stage-title:before{content:"";position:absolute;left:-14px;top:18px;bottom:18px;width:2px;background:linear-gradient(transparent,var(--sd-energy-solid,#e9bd73),transparent);opacity:.65}
.sd-stage-title h1{line-height:1.04}
/* A compact timeline: the badge occupies a dedicated immutable slot, never floats with team text. */
.sd-next-list{border-top:3px solid #122c53}
.sd-next-row{display:grid;grid-template-columns:54px minmax(0,1fr) 48px 79px 20px;gap:clamp(8px,1.9vw,20px);align-items:center;min-height:90px;padding:18px 9px 18px 14px;border-bottom:1px solid #ced7e7;position:relative}
.sd-next-row::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;background:#c8a461;transform:scaleY(0);transform-origin:center;transition:transform .22s}
.sd-next-row:hover::before,.sd-next-row:focus-visible::before{transform:scaleY(1)}
.sd-next-date{min-width:0}.sd-next-date strong{font-size:clamp(23px,3.2vw,35px)}.sd-next-date small{font-size:10px;line-height:1.5;white-space:nowrap}
.sd-next-opponent{display:flex;align-items:center;min-width:0;overflow:hidden;gap:0}.sd-next-opponent>span{display:flex;flex-direction:column;min-width:0;gap:7px}.sd-next-opponent strong{white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.3}.sd-next-opponent small{letter-spacing:.1em}
.sd-next-crest{width:48px;height:48px;min-width:0;display:grid;place-items:center;justify-self:center;align-self:center}
.sd-next-crest .crest-rail.crest-shell{width:40px!important;height:40px!important;max-width:40px!important;min-width:40px!important;display:grid!important;place-items:center!important;margin:0!important;position:relative!important;flex:none!important;transform:none!important}
.sd-next-crest .crest-rail .crest-image{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important;margin:0!important;position:static!important}
.sd-next-time{font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end}
.sd-next-arrow{justify-self:end}.sd-next-row:focus-visible{outline:2px solid #a97d3c;outline-offset:-2px}
/* Tables: group colors indicate the season stage, not guaranteed European qualification or relegation. */
.sd-table-rank{display:flex;align-items:center;gap:4px;min-width:0}
.sd-zone-dot{display:block;width:5px;height:14px;flex:0 0 5px;background:#7793b6;border-radius:2px}
.sd-zone-direct .sd-zone-dot{background:#58ac87}.sd-zone-playoff .sd-zone-dot{background:#e2b365}.sd-zone-bottom .sd-zone-dot{background:#d96572}
.sd-table-row.sd-row-levski{box-shadow:inset 3px 0 0 #edd18b!important;background:linear-gradient(90deg,#123e78,#122d56)!important}
.sd-table-row.sd-row-levski .sd-zone-dot{box-shadow:0 0 7px currentColor}
.sd-zone-legend{display:flex;flex-wrap:wrap;gap:7px 11px;align-items:center;color:#afc2db}
.sd-zone-legend span{display:inline-flex;gap:5px;align-items:center;white-space:nowrap;font-size:9px}
.sd-zone-legend span::before{content:"";width:5px;height:11px;background:#d3ac68;display:inline-block;border-radius:2px}
.sd-zone-legend .sd-leg-direct::before{background:#58ac87}.sd-zone-legend .sd-leg-playoff::before{background:#e2b365}.sd-zone-legend .sd-leg-bottom::before{background:#d96572}
/* Publisher-provided RSS article images, optional and never cached by SIN DOM. */
.sd-story-image-wrap{position:relative;display:block;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#21599b,#081933 72%);isolation:isolate}
.sd-story-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.84) contrast(1.07);transition:transform .55s ease,filter .55s ease}
.sd-image-placeholder{position:absolute;z-index:0;inset:0;display:grid;place-items:center;font:900 clamp(40px,12vw,115px)/1 Unbounded,sans-serif;color:transparent;-webkit-text-stroke:1px rgba(220,188,117,.21);letter-spacing:-.15em}
.sd-story-image-wrap.has-image:not(.is-missing) .sd-image-placeholder{display:none}
.sd-story-image-wrap.is-missing img{display:none}
.sd-card-image{height:clamp(110px,14vw,180px);margin:-22px -22px 5px;border-bottom:1px solid #aabbd52c}
.fan-story .story-click{overflow:hidden}.fan-story:hover .sd-story-image{transform:scale(1.045);filter:saturate(1.1) contrast(1.06)}
.sd-editorial-figure .sd-editorial-media{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.sd-editorial-figure .sd-editorial-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#031225 0%,rgba(3,18,37,.16) 90%);z-index:1}
.sd-editorial-figure .sd-story-image{filter:saturate(.84) contrast(1.09)}
.sd-editorial-figure>span:last-child{z-index:1;pointer-events:none}
.sd-editorial-feature{border-top:3px solid #e6b766;border-radius:0!important}
.sd-editorial-feature .sd-editorial-body{background:linear-gradient(0deg,rgba(2,9,27,.67),transparent)}
.sd-editorial-brief .fan-story{border-radius:0;border-left:3px solid rgba(235,191,118,.62)}
/* The news feed itself is an editorial wall with deliberate variation. */
.fan-news-hero{background:linear-gradient(116deg,#06142d,#133f76 62%,#06142d)}
.fan-news-grid .fan-story:first-child{border-top:3px solid #e9bf73}
/* Bold club graphic language, asymmetric rather than many identical containers. */
.sd-tables-section{position:relative;background:linear-gradient(140deg,#08214a,#041226 75%)}
.sd-tables-section::before{content:"";position:absolute;top:10px;right:-2vw;width:36vw;height:20vw;border:1px solid rgba(106,157,229,.09);transform:skew(-16deg);pointer-events:none}
.sd-pulse-strip{position:relative;box-shadow:inset 0 4px 0 rgba(237,195,115,.12)}
@keyframes sd-ambient-pulse{from{opacity:.5;transform:scale(1)}to{opacity:1;transform:scale(1.07)}}
@keyframes sd-border-sweep{0%{transform:translateX(0);opacity:.2}100%{transform:translateX(195%);opacity:.78}}
@media(max-width:1000px){.sd-legacy-inner{grid-template-columns:60px 1fr auto;gap:15px}.sd-legacy-more{font-size:8px}}
@media(max-width:690px){
 .sd-legacy-inner{min-height:72px;grid-template-columns:0 minmax(0,1fr) 0;gap:0;padding-top:4px;padding-bottom:4px}
 .sd-legacy-intro,.sd-legacy-more{display:none}.sd-legacy-awards{gap:2px;justify-content:space-between}
 .sd-legacy-award{gap:5px;flex:1}.sd-legacy-award strong{font-size:clamp(24px,7.3vw,37px)}.sd-award-svg{width:clamp(21px,7vw,31px);height:clamp(21px,7vw,31px)}.sd-legacy-award:not(:last-child)::after{right:0;height:25px}
 .sd-stadium-hero .fan-matchday{border-top-width:3px!important}
 .sd-next-row{grid-template-columns:36px minmax(0,1fr) 32px 51px 12px;gap:7px;min-height:77px;padding:13px 2px 13px 5px}
 .sd-next-date strong{font-size:23px}.sd-next-date small{font-size:8px}
 .sd-next-opponent strong{font-size:clamp(9px,2.8vw,11px);letter-spacing:-.035em;line-height:1.26}
 .sd-next-opponent small{font-size:8px;letter-spacing:.02em}.sd-next-opponent>span{gap:5px}
 .sd-next-crest{width:32px;height:39px}.sd-next-crest .crest-rail.crest-shell{width:30px!important;height:30px!important;min-width:30px!important;max-width:30px!important}
 .sd-next-time{font-size:9px}.sd-next-arrow .ui-icon{width:12px;height:12px}
 .sd-zone-legend{gap:6px 10px}.sd-zone-legend span{font-size:8px}
 .sd-table-rank{gap:2px}.sd-zone-dot{width:4px;flex-basis:4px;height:12px}
 .sd-card-image{height:155px;margin:-17px -17px 4px}
 .sd-editorial-figure .sd-editorial-media{display:block}.sd-editorial-feature{min-height:400px}
}
@media(max-width:360px){
 .sd-next-row{grid-template-columns:32px minmax(0,1fr) 27px 39px 10px;gap:4px;padding-inline:2px}
 .sd-next-date strong{font-size:20px}.sd-next-opponent strong{font-size:9px}.sd-next-time{font-size:8px}
 .sd-next-crest{width:27px}.sd-next-crest .crest-rail.crest-shell{width:25px!important;height:25px!important;min-width:25px!important;max-width:25px!important}
 .sd-legacy-award strong{font-size:25px}.sd-award-svg{width:22px;height:22px}
}
@media(prefers-reduced-motion:reduce){
 .sd-stadium-hero .fan-matchday::before,.sd-stadium-hero .fan-matchday::after{animation:none!important}
 .sd-next-row,.sd-next-row::before,.sd-story-image,.sd-legacy-award{transition:none!important}
}
/* Visual QA: prevent oversized decorative 1914 outlines from creating horizontal panning. */
.sd-stadium-caption{right:0;max-width:100%;overflow:hidden}
.sd-tables-section{overflow:hidden}
@media(max-width:690px){
 .sd-legacy-inner{display:flex;align-items:center;justify-content:center;gap:0}
 .sd-legacy-awards{width:100%;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
 .sd-legacy-award{width:100%;min-width:0;justify-content:center;gap:6px}
}
/* Explicit nesting override: the historical 1914 caption must not style image wrappers. */
.sd-editorial-figure .sd-image-placeholder{inset:0;top:0;right:0;left:0;bottom:0;display:grid;place-items:center;font:900 clamp(58px,12vw,150px)/1 Unbounded,sans-serif}
