:root {
  color-scheme: light;
  --ink: #07121c;
  --ink-2: #0b1b28;
  --ink-3: #10283a;
  --ink-4: #163448;
  --paper: #f3f6f6;
  --paper-2: #e9eeee;
  --white: #ffffff;
  --muted: #65727d;
  --line: #d4dcdf;
  --line-dark: rgba(255, 255, 255, 0.12);
  --yellow: #ffd51f;
  --yellow-soft: #fff4a5;
  --green: #30d596;
  --cyan: #42c7f0;
  --blue: #358dff;
  --red: #ff4e54;
  --orange: #ff8d3d;
  --amber: #ffc84a;
  --radius: 5px;
  --shadow: 0 30px 80px rgba(7, 18, 28, 0.18);
  --shell: min(1320px, calc(100% - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, dl, dd { margin-top: 0; }
sub { line-height: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 1000; transform: translateY(-160%); background: var(--yellow); color: var(--ink); padding: 10px 14px; font-weight: 800; }
.skip-link:focus { transform: translateY(0); }
.section-shell { width: var(--shell); margin-inline: auto; }
.section-pad { padding: 112px 0; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; height: 76px; border-bottom: 1px solid rgba(255,255,255,.11); background: rgba(7,18,28,.8); backdrop-filter: blur(18px); transition: background 180ms ease, box-shadow 180ms ease; }
.site-header.is-scrolled { background: rgba(7,18,28,.97); box-shadow: 0 8px 28px rgba(0,0,0,.22); }
.nav-shell { width: var(--shell); height: 100%; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand-lockup { display: inline-flex; align-items: center; gap: 14px; min-width: max-content; }
.brand-lockup img { width: 118px; height: auto; filter: brightness(0) invert(1); }
.brand-divider { width: 1px; height: 28px; background: rgba(255,255,255,.28); }
.brand-product { color: rgba(255,255,255,.68); font-size: .74rem; font-weight: 700; letter-spacing: .12em; }
.brand-product strong { display: block; color: var(--yellow); font-size: .95rem; letter-spacing: .01em; }
.primary-nav { display: flex; align-items: center; gap: 22px; color: rgba(255,255,255,.72); font-size: .86rem; font-weight: 680; }
.primary-nav > a:not(.nav-cta) { position: relative; padding: 10px 0; }
.primary-nav > a:not(.nav-cta)::after { content: ""; position: absolute; inset: auto 0 2px; height: 2px; background: var(--yellow); transform: scaleX(0); transform-origin: right; transition: transform 160ms ease; }
.primary-nav > a:hover, .primary-nav > a:focus-visible { color: var(--white); }
.primary-nav > a:hover::after, .primary-nav > a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.nav-cta { background: var(--yellow); color: var(--ink); padding: 11px 15px; font-weight: 850; }
.nav-cta:hover, .nav-cta:focus-visible { background: #ffe55a; color: var(--ink); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; }
.menu-toggle > span:not(.sr-only) { display: block; width: 22px; height: 2px; margin: 5px auto; background: var(--white); }

.eyebrow { display: flex; align-items: center; gap: 11px; margin-bottom: 20px; color: var(--yellow); font-size: .76rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow > span { width: 28px; height: 2px; background: currentColor; }
.eyebrow.dark { color: #705d00; }
.eyebrow.light { color: var(--yellow); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); align-items: end; gap: 72px; margin-bottom: 54px; }
.section-heading h2 { max-width: 840px; margin-bottom: 0; font-size: clamp(2.25rem, 4vw, 4.15rem); line-height: 1.03; letter-spacing: -.05em; }
.section-heading > p { margin-bottom: 4px; color: var(--muted); font-size: 1.04rem; }
.section-heading.inverse { color: var(--white); }
.section-heading.inverse > p { color: #9db1c1; }
.button { min-height: 49px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 13px 20px; border: 1px solid transparent; cursor: pointer; font-weight: 820; transition: transform 160ms ease, background 160ms ease, border-color 160ms ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button-primary { background: var(--yellow); color: var(--ink); }
.button-primary:hover, .button-primary:focus-visible { background: #ffe75c; }
.button-ghost { border-color: rgba(255,255,255,.26); color: var(--white); background: rgba(255,255,255,.035); }
.button-ghost:hover, .button-ghost:focus-visible { border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.08); }

.hero { position: relative; overflow: hidden; padding-top: 76px; background: radial-gradient(circle at 77% 21%, rgba(66,199,240,.13), transparent 26%), radial-gradient(circle at 18% 72%, rgba(255,213,31,.09), transparent 32%), var(--ink); color: var(--white); }
.hero-grid { position: absolute; inset: 76px 0 0; opacity: .36; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(to bottom, black, transparent 94%); }
.hero-layout { position: relative; z-index: 1; min-height: 760px; display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(470px, .98fr); align-items: center; gap: 76px; padding: 82px 0 74px; }
.hero h1 { max-width: 780px; margin-bottom: 27px; font-size: clamp(3rem, 5.1vw, 5.45rem); line-height: .96; letter-spacing: -.06em; }
.hero-lede { max-width: 720px; margin-bottom: 20px; color: #c1ccd5; font-size: clamp(1.05rem, 1.5vw, 1.22rem); line-height: 1.58; }
.hero-product-cue { max-width: 660px; display: flex; align-items: center; gap: 18px; margin-bottom: 24px; padding: 10px 15px 10px 10px; border-left: 3px solid var(--yellow); background: rgba(255,255,255,.055); }
.hero-product-cue img { width: 142px; height: 82px; object-fit: contain; flex: 0 0 auto; filter: drop-shadow(0 10px 16px rgba(0,0,0,.28)); }
.hero-product-cue div { display: flex; flex-direction: column; gap: 4px; }
.hero-product-cue small { color: var(--yellow); font-size: .62rem; font-weight: 900; letter-spacing: .12em; }
.hero-product-cue strong { color: #e6eef2; font-size: .85rem; line-height: 1.35; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; }
.hero-proof { display: flex; gap: 0; padding: 0; margin: 0; list-style: none; }
.hero-proof li { min-width: 136px; padding: 0 22px; border-left: 1px solid rgba(255,255,255,.17); }
.hero-proof li:first-child { padding-left: 0; border-left: 0; }
.hero-proof strong { display: block; color: var(--white); font-size: 1.15rem; }
.hero-proof span { display: block; color: #8195a6; font-size: .78rem; }
.hero-visual { position: relative; min-width: 0; border: 1px solid rgba(255,255,255,.13); background: linear-gradient(145deg, rgba(19,45,63,.94), rgba(6,17,27,.98)); box-shadow: var(--shadow); }
.visual-head { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 18px; border-bottom: 1px solid rgba(255,255,255,.12); color: #8ea2b1; font-size: .75rem; }
.live-indicator { display: inline-flex; align-items: center; gap: 7px; color: var(--green); }
.live-indicator i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px rgba(48,213,150,.1); }
.product-stage { position: relative; min-height: 470px; display: grid; place-items: center; overflow: hidden; }
.product-stage::before, .product-stage::after { content: ""; position: absolute; border: 1px solid rgba(66,199,240,.15); border-radius: 50%; }
.product-stage::before { width: 390px; height: 390px; }
.product-stage::after { width: 510px; height: 510px; }
.product-stage img { position: relative; z-index: 2; width: min(71%, 400px); filter: drop-shadow(0 28px 35px rgba(0,0,0,.42)); }
.signal { position: absolute; z-index: 4; min-width: 142px; padding: 11px 12px; border: 1px solid rgba(255,255,255,.13); background: rgba(5,17,27,.9); box-shadow: 0 12px 32px rgba(0,0,0,.24); }
.signal::after { content: ""; position: absolute; height: 1px; width: 44px; background: rgba(255,255,255,.28); top: 50%; }
.signal span, .signal small { display: block; color: #8ea2b1; font-size: .66rem; }
.signal strong { display: inline-block; margin-right: 4px; color: var(--white); font-size: 1.12rem; }
.signal.is-critical { border-color: rgba(255,78,84,.72); }
.signal.is-critical strong { color: var(--red); }
.signal.is-warning { border-color: rgba(255,200,74,.6); }
.signal.is-warning strong { color: var(--amber); }
.signal.is-action { border-color: rgba(48,213,150,.5); }
.signal.is-action strong { color: var(--green); }
.signal-fire { top: 16%; left: 4%; }
.signal-fire::after, .signal-water::after { left: 100%; }
.signal-ozone { top: 13%; right: 4%; }
.signal-ozone::after, .signal-output::after { right: 100%; }
.signal-water { bottom: 16%; left: 5%; }
.signal-output { right: 4%; bottom: 15%; }
.visual-foot { min-height: 71px; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255,255,255,.12); }
.visual-foot > div { display: flex; flex-direction: column; justify-content: center; padding: 12px 18px; }
.visual-foot > div + div { border-left: 1px solid rgba(255,255,255,.12); }
.visual-foot span { color: #748a9b; font-size: .67rem; text-transform: uppercase; letter-spacing: .09em; }
.visual-foot strong { color: var(--white); font-size: .84rem; }

.hero-news { min-width: 0; border: 1px solid rgba(255,255,255,.14); background: linear-gradient(145deg, rgba(19,45,63,.96), rgba(6,17,27,.99)); box-shadow: var(--shadow); }
.news-board-head { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 20px; border-bottom: 1px solid rgba(255,255,255,.12); }
.news-board-head > div { display: flex; flex-direction: column; }
.news-board-head small { color: var(--yellow); font-size: .6rem; font-weight: 900; letter-spacing: .12em; }
.news-board-head strong { margin-top: 3px; font-size: 1.08rem; }
.news-board-head > span { color: #758c9d; font-size: .7rem; }
.news-card { position: relative; display: grid; grid-template-columns: 112px 1fr; grid-template-rows: auto 1fr auto; column-gap: 16px; padding: 14px 50px 14px 14px; border-bottom: 1px solid rgba(255,255,255,.1); transition: background 160ms ease, transform 160ms ease; }
.news-card::before { content: ""; position: absolute; left: 0; inset-block: 0; width: 4px; background: var(--news-accent, var(--yellow)); }
.news-card::after { content: "↗"; position: absolute; right: 20px; top: 50%; color: var(--news-accent, var(--yellow)); font-size: 1.3rem; transform: translateY(-50%); }
.news-card:hover, .news-card:focus-visible { background: rgba(255,255,255,.055); transform: translateX(4px); }
.news-card > img { grid-row: 1 / -1; width: 112px; height: 96px; object-fit: cover; align-self: center; filter: saturate(.82) contrast(1.04); }
.news-card small, .news-card span { grid-column: 2; display: block; color: #7f96a7; font-size: .65rem; }
.news-card small { color: var(--news-accent, var(--yellow)); font-weight: 850; letter-spacing: .08em; }
.news-card strong { grid-column: 2; display: block; margin: 5px 0 6px; color: #eff5f7; font-size: clamp(.92rem, 1.08vw, 1.04rem); line-height: 1.28; }
.news-card span b { color: var(--news-accent, var(--yellow)); }
.news-fire { --news-accent: var(--red); }
.news-water { --news-accent: var(--cyan); }
.news-heat { --news-accent: var(--orange); }
.news-board-foot { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 20px; }
.news-board-foot > span { font-size: .68rem; }
.news-board-foot > a { color: var(--yellow); font-size: .72rem; font-weight: 850; }

.reg-opportunity { padding: 72px 0 38px; background: linear-gradient(135deg, var(--yellow), #ffe971 64%, #fff2a8); }
.opportunity-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 72px; align-items: stretch; }
.opportunity-lead h2 { margin-bottom: 22px; font-size: clamp(2rem, 3.35vw, 3.55rem); line-height: 1.02; letter-spacing: -.045em; }
.opportunity-lead p:not(.eyebrow) { max-width: 590px; margin-bottom: 20px; color: #3f3b23; }
.opportunity-lead > a { display: inline-flex; gap: 8px; padding-bottom: 3px; border-bottom: 1px solid currentColor; font-size: .88rem; font-weight: 820; }
.investment-window { display: grid; grid-template-columns: .82fr 1.18fr; background: var(--ink); color: var(--white); box-shadow: 0 24px 60px rgba(74,62,0,.18); }
.investment-total { display: flex; flex-direction: column; justify-content: center; padding: 34px; border-right: 1px solid rgba(255,255,255,.12); }
.investment-total > span { color: #8ca0b0; font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; }
.investment-total > strong { margin: 8px 0 0; color: var(--yellow); font-size: clamp(2.5rem, 4vw, 4.4rem); line-height: 1; letter-spacing: -.06em; }
.investment-total > small { color: #afbec8; font-size: .8rem; }
.year-rail { margin-top: 32px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.year-rail i { position: relative; height: 4px; background: rgba(255,255,255,.16); }
.year-rail i::before { content: ""; position: absolute; left: 0; top: -3px; width: 10px; height: 10px; border-radius: 50%; background: var(--yellow); }
.year-rail span { margin-top: 9px; color: #7f94a5; font-size: .65rem; }
.investment-routes { display: grid; }
.investment-routes article { display: grid; grid-template-columns: 96px 1fr; gap: 18px; align-items: center; padding: 26px; }
.investment-routes article + article { border-top: 1px solid rgba(255,255,255,.12); }
.percent-ring { width: 86px; height: 86px; display: grid; place-items: center; border-radius: 50%; position: relative; }
.percent-ring::after { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: var(--ink); }
.ring-20 { background: conic-gradient(var(--yellow) 0 20%, rgba(255,255,255,.12) 20%); }
.ring-10 { background: conic-gradient(var(--cyan) 0 10%, rgba(255,255,255,.12) 10%); }
.percent-ring strong { position: relative; z-index: 1; font-size: 1.08rem; }
.investment-routes span { color: var(--white); font-weight: 820; }
.investment-routes p { margin: 5px 0 0; color: #93a6b6; font-size: .79rem; line-height: 1.45; }
.opportunity-note { margin-top: 28px; color: #62572a; font-size: .76rem; }

.context { background: var(--paper); }
.spen-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.spen-card { min-height: 250px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.36); }
.spen-card > span { display: block; margin-bottom: 42px; color: #8a969e; font-size: .72rem; font-weight: 850; letter-spacing: .12em; }
.spen-card h3 { margin-bottom: 14px; font-size: 1.24rem; line-height: 1.18; letter-spacing: -.025em; }
.spen-card p { margin-bottom: 0; color: var(--muted); font-size: .9rem; }
.safety-statement { display: grid; grid-template-columns: 72px minmax(0, .9fr) minmax(300px, .75fr); gap: 30px; align-items: center; margin-top: 42px; padding: 34px; background: var(--ink); color: var(--white); }
.safety-mark { width: 62px; height: 62px; display: grid; place-items: center; border: 1px solid rgba(255,78,84,.65); color: var(--red); font-size: 2rem; font-weight: 900; }
.safety-statement span { color: var(--red); font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.safety-statement h3 { max-width: 670px; margin: 6px 0 0; font-size: clamp(1.45rem, 2.2vw, 2.25rem); line-height: 1.13; letter-spacing: -.035em; }
.safety-statement p { margin: 0; color: #9fb0bd; }

.fleet { background: linear-gradient(180deg, #07121c, #091a27); color: var(--white); }
.fleet-dashboard { border: 1px solid rgba(94,150,181,.25); background: #071622; box-shadow: 0 34px 100px rgba(0,0,0,.32); }
.dashboard-toolbar { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 14px 10px 18px; border-bottom: 1px solid rgba(100,155,185,.2); }
.dashboard-toolbar > div:first-child { display: flex; flex-direction: column; }
.dashboard-toolbar strong { font-size: .84rem; }
.dashboard-toolbar span { color: #7890a1; font-size: .68rem; }
.dashboard-toolbar span i { display: inline-block; width: 6px; height: 6px; margin-right: 5px; border-radius: 50%; background: var(--green); }
.dashboard-filters { display: flex; gap: 7px; }
.dashboard-filters button { min-width: 118px; display: flex; flex-direction: column; align-items: flex-start; padding: 7px 28px 7px 10px; border: 1px solid rgba(105,159,189,.22); border-radius: 2px; color: #7f94a5; background: #0b1e2c; font-size: .62rem; position: relative; }
.dashboard-filters button::after { content: "⌄"; position: absolute; right: 9px; top: 14px; }
.dashboard-filters button strong { color: #cbd7df; font-size: .69rem; font-weight: 650; }
.fleet-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; padding: 8px; }
.fleet-kpis article { min-width: 0; padding: 14px; border: 1px solid rgba(100,155,185,.18); background: linear-gradient(145deg, #0c202f, #091924); }
.fleet-kpis article > span { display: block; color: #a2b3bf; font-size: .68rem; }
.fleet-kpis article > strong { display: inline-block; margin-top: 3px; font-size: 1.75rem; line-height: 1.1; }
.fleet-kpis article > strong small { color: #7890a1; font-size: .76rem; font-weight: 650; }
.fleet-kpis article > small { display: block; margin-top: 5px; color: #7f94a5; font-size: .61rem; }
.fleet-kpis article > small.positive { color: var(--green); }
.fleet-kpis article > small.negative { color: var(--red); }
.micro-line { height: 18px; display: flex; align-items: flex-end; gap: 3px; float: right; margin-top: 8px; }
.micro-line i { width: 7px; height: 25%; background: var(--cyan); }
.micro-line i:nth-child(2) { height: 43%; }.micro-line i:nth-child(3) { height: 37%; }.micro-line i:nth-child(4) { height: 61%; }.micro-line i:nth-child(5) { height: 52%; }.micro-line i:nth-child(6) { height: 72%; }.micro-line i:nth-child(7) { height: 88%; }
.micro-line.risk i { background: var(--red); }.micro-line.alert i { background: var(--orange); }.micro-line.mail i { background: var(--yellow); }.micro-line.muted i { background: #587083; }
.fleet-main { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(390px, .8fr); gap: 8px; padding: 0 8px 8px; }
.map-panel, .priority-panel, .fleet-bottom > article { border: 1px solid rgba(100,155,185,.19); background: #0a1b28; }
.panel-title { min-height: 47px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 8px 12px; border-bottom: 1px solid rgba(100,155,185,.18); }
.panel-title > div { display: flex; flex-direction: column; }
.panel-title strong { color: #d7e1e7; font-size: .75rem; }
.panel-title span { color: #6f8798; font-size: .61rem; }
.map-zoom { flex-direction: column !important; gap: 2px; }
.map-zoom span { width: 22px; height: 19px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); color: #cbd7df; font-size: .8rem; }
.fleet-map { position: relative; min-height: 420px; overflow: hidden; background: radial-gradient(circle at 45% 47%, rgba(42,112,153,.18), transparent 34%), linear-gradient(rgba(47,103,134,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(47,103,134,.08) 1px, transparent 1px), #081722; background-size: auto, 30px 30px, 30px 30px, auto; }
.map-base { position: absolute; inset: 8% 5% 7%; width: 78%; height: 83%; }
.map-base .territory { fill: url(styles.css); stroke: #315a70; stroke-width: 2; }
.map-base .region { fill: none; stroke: rgba(117,169,196,.28); stroke-width: 1; }
.map-roads { fill: none; stroke: rgba(66,199,240,.18); stroke-width: 1.4; stroke-dasharray: 5 5; }
.map-marker { --marker: var(--amber); position: absolute; left: var(--x); top: var(--y); z-index: 5; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 2px solid rgba(255,255,255,.8); border-radius: 50%; color: var(--ink); background: var(--marker); transform: translate(-50%, -50%); cursor: pointer; font-size: .68rem; font-weight: 900; box-shadow: 0 4px 15px rgba(0,0,0,.42); transition: transform 140ms ease; }
.map-marker i { position: absolute; inset: -7px; border: 1px solid var(--marker); border-radius: 50%; opacity: 0; }
.map-marker:hover, .map-marker:focus-visible, .map-marker.is-selected { transform: translate(-50%, -50%) scale(1.18); z-index: 6; }
.map-marker.is-selected i { opacity: .75; animation: pulse-map 1.8s infinite; }
.map-marker.priority-1 { --marker: var(--red); color: white; }.map-marker.priority-2 { --marker: var(--orange); }.map-marker.priority-3 { --marker: var(--amber); }.map-marker.no-data { --marker: #879aa8; }
@keyframes pulse-map { 0% { transform: scale(.8); opacity: .8; } 100% { transform: scale(1.8); opacity: 0; } }
.map-legend, .event-legend { position: absolute; z-index: 4; padding: 10px; border: 1px solid rgba(100,155,185,.24); background: rgba(5,18,28,.9); color: #a9bac6; font-size: .62rem; }
.map-legend { left: 12px; bottom: 12px; display: flex; flex-wrap: wrap; gap: 9px 13px; max-width: 310px; }
.map-legend span { display: flex; align-items: center; gap: 5px; }
.map-legend i { width: 8px; height: 8px; border-radius: 50%; }.legend-critical { background: var(--red); }.legend-high { background: var(--orange); }.legend-medium { background: var(--amber); }.legend-muted { background: #879aa8; }
.event-legend { right: 12px; bottom: 12px; display: grid; gap: 5px; min-width: 145px; }
.event-legend strong { color: #d2dde4; font-size: .64rem; }.event-legend span { display: flex; align-items: center; gap: 7px; }.event-legend b { width: 16px; height: 16px; display: grid; place-items: center; background: #153448; color: var(--yellow); font-size: .57rem; }
.priority-panel { min-width: 0; }
.priority-panel > .panel-title > span { color: #b9c7d0; }
.incident-table { width: 100%; }
.incident-head, .incident-row { width: 100%; display: grid; grid-template-columns: 1.05fr 1.35fr .7fr 34px; gap: 8px; align-items: center; padding: 8px 10px; }
.incident-head { color: #6f8798; font-size: .6rem; }
.incident-row { border: 0; border-top: 1px solid rgba(100,155,185,.15); color: #aebdc7; background: transparent; text-align: left; cursor: pointer; font-size: .66rem; }
.incident-row:hover, .incident-row:focus-visible, .incident-row.is-selected { background: rgba(66,199,240,.08); }
.incident-row strong { color: #e0e8ed; font-size: .66rem; }.incident-row span { display: flex; align-items: center; gap: 6px; white-space: nowrap; }.event-icon { width: 18px; height: 18px; display: inline-grid; place-items: center; font-style: normal; font-size: .55rem; font-weight: 900; color: #07121c; }.event-icon.fire { background: var(--red); color: white; }.event-icon.water { background: var(--cyan); }.event-icon.ozone { background: var(--yellow); }.event-icon.heat { background: var(--orange); }.event-icon.access { background: var(--amber); }.event-icon.offline { background: #8093a0; }
.tag { display: grid; place-items: center; width: 31px; height: 19px; border-radius: 9px; color: #07121c; font-size: .59rem; }.tag.p1 { background: var(--red); color: white; }.tag.p2 { background: var(--orange); }.tag.p3 { background: var(--amber); }
.selected-incident { margin: 11px; padding: 15px; border: 1px solid rgba(255,78,84,.34); background: linear-gradient(145deg, rgba(255,78,84,.09), rgba(8,25,37,.86)); }
.selected-incident > div:first-child { display: flex; justify-content: space-between; margin-bottom: 9px; }.selected-incident > div:first-child span { color: var(--red); font-size: .62rem; font-weight: 900; letter-spacing: .08em; }.selected-incident time { color: #72899a; font-size: .62rem; }.selected-incident > strong { display: block; margin-bottom: 5px; font-size: .8rem; }.selected-incident > p { margin-bottom: 12px; color: #94a8b6; font-size: .69rem; }.selected-incident dl { margin-bottom: 0; }.selected-incident dl div { display: grid; grid-template-columns: 77px 1fr; gap: 8px; padding: 6px 0; border-top: 1px solid rgba(255,255,255,.08); font-size: .64rem; }.selected-incident dt { color: #738b9d; }.selected-incident dd { margin: 0; color: #c3d0d8; }
.fleet-bottom { display: grid; grid-template-columns: 1.05fr .95fr 1fr; gap: 8px; padding: 0 8px 8px; }
.fleet-bottom > article { min-height: 245px; }
.stack-chart { height: 140px; display: flex; padding: 18px 18px 4px 10px; }
.stack-axis { width: 27px; display: flex; flex-direction: column; justify-content: space-between; color: #5f7889; font-size: .58rem; }
.stack-bars { flex: 1; display: flex; align-items: flex-end; justify-content: space-around; gap: 9px; border-bottom: 1px solid rgba(255,255,255,.16); background: repeating-linear-gradient(to top, transparent 0 31px, rgba(255,255,255,.06) 32px); }
.stack-bars > div { width: 24px; height: 100%; display: flex; flex-direction: column-reverse; position: relative; }
.stack-bars i, .stack-bars b, .stack-bars em { display: block; height: var(--h); }.stack-bars i { background: var(--red); }.stack-bars b { background: var(--orange); }.stack-bars em { background: var(--amber); }.stack-bars small { position: absolute; top: 104%; left: 50%; transform: translateX(-50%); color: #688092; font-size: .58rem; }
.chart-legend { display: flex; gap: 13px; padding: 13px; color: #7890a1; font-size: .61rem; }.chart-legend span { display: flex; align-items: center; gap: 5px; }.chart-legend i { width: 7px; height: 7px; }.chart-legend .red { background: var(--red); }.chart-legend .orange { background: var(--orange); }.chart-legend .yellow { background: var(--amber); }
.donut-layout { display: grid; grid-template-columns: 120px 1fr; align-items: center; gap: 14px; padding: 26px 18px; }
.donut { width: 112px; height: 112px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--red) 0 9.5%, var(--cyan) 9.5% 29.7%, var(--yellow) 29.7% 58.3%, var(--orange) 58.3% 90.4%, #798c99 90.4%); position: relative; }.donut::after { content: ""; position: absolute; inset: 22px; border-radius: 50%; background: #0a1b28; }.donut span { z-index: 1; display: flex; flex-direction: column; align-items: center; color: #718899; font-size: .58rem; }.donut strong { color: white; font-size: 1.25rem; }
.donut-layout ul { padding: 0; margin: 0; list-style: none; }.donut-layout li { display: grid; grid-template-columns: 8px 1fr auto; gap: 7px; align-items: center; margin: 7px 0; color: #94a8b6; font-size: .61rem; }.donut-layout li i { width: 7px; height: 7px; }.donut-layout li i.fire { background: var(--red); }.donut-layout li i.water { background: var(--cyan); }.donut-layout li i.ozone { background: var(--yellow); }.donut-layout li i.heat { background: var(--orange); }.donut-layout li i.access { background: #798c99; }.donut-layout li strong { color: #d8e2e7; }
.cause-bars { display: grid; gap: 13px; padding: 23px 18px; }.cause-bars > div { display: grid; grid-template-columns: 70px 1fr 22px; gap: 9px; align-items: center; color: #8fa4b3; font-size: .62rem; }.cause-bars > div > i { height: 10px; background: #122d40; position: relative; }.cause-bars > div > i b { display: block; width: var(--w); height: 100%; background: linear-gradient(90deg, var(--yellow), var(--red)); }.cause-bars > div > strong { color: #dbe4e9; text-align: right; }

.risks { background: var(--paper); }
.risk-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.risk-card { position: relative; min-height: 330px; padding: 28px; overflow: hidden; border: 1px solid var(--line); background: var(--white); }
.risk-card::after { content: ""; position: absolute; inset: auto 0 0; height: 4px; background: var(--accent); }
.risk-fire { --accent: var(--red); }.risk-water { --accent: var(--cyan); }.risk-ozone { --accent: var(--yellow-deep, #d2aa00); }.risk-heat { --accent: var(--orange); }
.risk-code { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 38px; border: 1px solid var(--line); color: var(--accent); font-weight: 900; }
.risk-card > span { color: var(--accent); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.risk-card h3 { margin: 9px 0 15px; font-size: 1.36rem; line-height: 1.18; letter-spacing: -.03em; }
.risk-card p { margin-bottom: 20px; color: var(--muted); font-size: .9rem; }
.risk-card small { display: block; padding-top: 13px; border-top: 1px solid var(--line); color: #707e88; font-size: .68rem; }
.variable-map { margin-top: 64px; padding: 30px; background: var(--ink); color: var(--white); }
.variable-map-head { display: flex; justify-content: space-between; gap: 24px; padding-bottom: 22px; border-bottom: 1px solid rgba(255,255,255,.12); }.variable-map-head span { color: var(--yellow); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }.variable-map-head strong { font-size: 1rem; }
.variable-diagram { min-height: 520px; display: grid; grid-template-columns: 1fr .85fr 1fr; gap: 30px; align-items: center; padding: 38px 0 30px; }
.variable-column { display: grid; gap: 14px; }.variable-column article { position: relative; padding: 17px; border: 1px solid rgba(255,255,255,.13); background: var(--ink-2); }.variable-column article::after { content: ""; position: absolute; top: 50%; width: 31px; height: 1px; background: rgba(66,199,240,.45); }.variable-column.inputs article::after { left: 100%; }.variable-column.integrations article::after { right: 100%; }
.variable-column span { display: block; margin-bottom: 6px; color: var(--cyan); font-size: .62rem; font-weight: 850; letter-spacing: .09em; }.variable-column strong { display: block; font-size: .91rem; }.variable-column small { display: block; margin-top: 5px; color: #7f94a4; font-size: .68rem; }
.diagram-core { min-height: 390px; position: relative; display: grid; place-items: center; }.diagram-core img { position: relative; z-index: 2; width: 88%; filter: drop-shadow(0 20px 28px rgba(0,0,0,.45)); }.core-orbit { position: absolute; border: 1px solid rgba(66,199,240,.25); border-radius: 50%; }.orbit-one { width: 270px; height: 270px; }.orbit-two { width: 355px; height: 355px; border-style: dashed; }.core-label { position: absolute; z-index: 3; bottom: 11px; min-width: 210px; padding: 10px 14px; border: 1px solid rgba(255,213,31,.38); background: rgba(7,18,28,.92); text-align: center; }.core-label span { color: #859aaa; font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; }.core-label strong { display: block; color: var(--yellow); font-size: 1.25rem; }.core-label small { color: #8ba0af; font-size: .62rem; }
.decision-horizons { display: grid; grid-template-columns: 1fr 70px 1fr; align-items: center; border-top: 1px solid rgba(255,255,255,.12); padding-top: 26px; }.decision-horizons > div { display: grid; grid-template-columns: 85px 1fr; column-gap: 14px; align-items: center; }.decision-horizons > div span { grid-row: 1 / span 2; color: var(--yellow); font-size: .65rem; font-weight: 900; letter-spacing: .12em; }.decision-horizons strong { font-size: .92rem; }.decision-horizons p { margin: 3px 0 0; color: #8297a7; font-size: .72rem; }.decision-horizons > i { height: 1px; background: var(--yellow); position: relative; }.decision-horizons > i::after { content: "›"; position: absolute; right: -2px; top: -13px; color: var(--yellow); font-style: normal; font-size: 1.2rem; }

.operations { background: var(--ink); color: var(--white); }
.realtime-console { border: 1px solid rgba(255,255,255,.13); background: #081722; box-shadow: 0 36px 90px rgba(0,0,0,.25); }
.console-toolbar { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 11px 16px 11px 20px; border-bottom: 1px solid rgba(255,255,255,.12); }.console-toolbar > div:first-child { display: flex; flex-direction: column; }.console-kicker { color: #7c93a4; font-size: .67rem; }.console-toolbar strong { font-size: .88rem; }.scenario-switcher { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }.scenario { min-height: 34px; padding: 7px 11px; border: 1px solid rgba(255,255,255,.13); color: #8da1af; background: #0d2130; cursor: pointer; font-size: .69rem; font-weight: 700; }.scenario:hover, .scenario:focus-visible { color: white; border-color: rgba(255,213,31,.45); }.scenario.is-active { color: var(--ink); background: var(--yellow); border-color: var(--yellow); }
.live-layout { display: grid; grid-template-columns: minmax(0, 1fr) 345px; }
.telemetry-panel { min-width: 0; padding: 14px; border-right: 1px solid rgba(255,255,255,.1); }
.metric-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 8px; }.metric-strip article { padding: 13px; border: 1px solid rgba(255,255,255,.11); background: #0c202e; }.metric-strip article > span { color: #8298a8; font-size: .66rem; }.metric-strip article > strong { display: block; margin: 3px 0 1px; font-size: .79rem; }.metric-strip article > strong b { font-size: 1.45rem; }.metric-strip article > small { color: var(--green); font-size: .62rem; }.metric-strip article.is-warning { border-color: rgba(255,200,74,.5); }.metric-strip article.is-warning > small, .metric-strip article.is-warning b { color: var(--amber); }.metric-strip article.is-critical { border-color: rgba(255,78,84,.55); background: rgba(255,78,84,.06); }.metric-strip article.is-critical > small, .metric-strip article.is-critical b { color: var(--red); }
.threshold-charts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.threshold-chart { min-width: 0; border: 1px solid rgba(255,255,255,.11); background: #091b28; }.chart-head { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 13px; border-bottom: 1px solid rgba(255,255,255,.1); }.chart-head > div { display: flex; flex-direction: column; }.chart-head span { color: #e2e9ed; font-size: .72rem; font-weight: 750; }.chart-head strong { color: #71899a; font-size: .6rem; font-weight: 600; }.chart-head em { padding: 4px 7px; border: 1px solid rgba(255,255,255,.13); color: var(--green); font-size: .62rem; font-style: normal; }.threshold-chart svg { width: 100%; padding: 8px 7px 2px; overflow: visible; }.chart-grid { fill: none; stroke: rgba(255,255,255,.07); stroke-width: 1; }.threshold-lines .threshold { fill: none; stroke-width: 1.2; stroke-dasharray: 6 5; }.threshold-lines .warning { stroke: var(--amber); }.threshold-lines .critical { stroke: var(--red); }.threshold-lines text { fill: #9eabb3; font-size: 9px; text-anchor: end; }.chart-area { stroke: none; opacity: .12; transition: d 350ms ease; }.ozone-area { fill: var(--yellow); }.temp-area { fill: var(--cyan); }.chart-line { fill: none; stroke-width: 3; transition: d 350ms ease; }.ozone-line { stroke: var(--yellow); }.temp-line { stroke: var(--cyan); }.axis-labels text { fill: #5f788a; font-size: 9px; }
.combined-risk { display: grid; grid-template-columns: 132px 1fr; gap: 18px; margin-top: 8px; padding: 17px; border: 1px solid rgba(255,255,255,.11); background: linear-gradient(135deg, #0c202e, #091a27); }.risk-score { min-height: 104px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr; align-items: end; padding: 13px; border-left: 4px solid color-mix(in srgb, var(--green) calc(100% - var(--score)), var(--red) var(--score)); background: rgba(255,255,255,.035); }.risk-score span { grid-column: 1 / -1; color: #8298a8; font-size: .61rem; }.risk-score strong { font-size: 2.5rem; line-height: .9; }.risk-score small { color: #718899; font-size: .75rem; }.risk-formula span { color: var(--yellow); font-size: .62rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.risk-formula strong { display: block; margin: 4px 0 5px; font-size: .83rem; }.risk-formula p { margin: 0; color: #859aaa; font-size: .7rem; }.risk-threshold { grid-column: 1 / -1; display: grid; grid-template-columns: 18px 1fr 26px; gap: 7px; align-items: center; color: #647d8e; font-size: .58rem; }.risk-threshold > i { height: 9px; background: linear-gradient(90deg, rgba(48,213,150,.17), rgba(255,200,74,.22) 70%, rgba(255,78,84,.25)); position: relative; }.risk-threshold b { display: block; height: 100%; width: var(--w); background: linear-gradient(90deg, var(--green), var(--amber) 70%, var(--red)); transition: width 350ms ease; }.risk-threshold em { position: absolute; left: 70%; top: 13px; color: #718899; font-size: .57rem; font-style: normal; transform: translateX(-50%); }
.alarm-panel { min-width: 0; padding: 14px; background: #071520; }.alarm-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border: 1px solid rgba(255,255,255,.11); background: #0c202e; }.alarm-head > div { display: flex; flex-direction: column; }.alarm-head span { color: #8197a7; font-size: .64rem; }.alarm-head strong { font-size: .83rem; }.alarm-head > b { width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid rgba(48,213,150,.45); color: var(--green); font-size: 1.2rem; }.alarm-head.is-alert > b { border-color: rgba(255,78,84,.65); color: var(--red); }.alarm-head.is-alert strong { color: var(--red); }
.io-state { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 8px 0; }.io-state div { padding: 10px; border: 1px solid rgba(255,255,255,.1); background: #0a1d2a; }.io-state span { display: block; color: #71899a; font-size: .6rem; }.io-state strong { display: block; color: var(--green); font-size: .7rem; }.io-state strong.is-warning { color: var(--amber); }.io-state strong.is-alert { color: var(--red); }.io-state strong.is-action { color: var(--cyan); }
.email-alert { padding: 14px; border: 1px solid rgba(48,213,150,.32); background: linear-gradient(145deg, rgba(48,213,150,.07), #0a1e2b); }.email-alert.is-warning { border-color: rgba(255,200,74,.45); background: linear-gradient(145deg, rgba(255,200,74,.08), #0a1e2b); }.email-alert.is-critical { border-color: rgba(255,78,84,.52); background: linear-gradient(145deg, rgba(255,78,84,.1), #0a1e2b); }.email-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 13px; }.email-top span { color: #839aaa; font-size: .62rem; font-weight: 850; letter-spacing: .09em; }.email-top i { display: inline-block; width: 7px; height: 7px; margin-right: 4px; border-radius: 50%; background: var(--green); }.email-alert.is-warning .email-top i { background: var(--amber); }.email-alert.is-critical .email-top i { background: var(--red); }.email-top time { color: #698293; font-size: .6rem; }.email-status { display: inline-block; margin-bottom: 7px; padding: 3px 6px; background: rgba(48,213,150,.13); color: var(--green); font-size: .58rem; font-weight: 900; letter-spacing: .08em; }.email-alert.is-warning .email-status { background: rgba(255,200,74,.13); color: var(--amber); }.email-alert.is-critical .email-status { background: rgba(255,78,84,.15); color: var(--red); }.email-alert > strong { display: block; font-size: .8rem; }.email-alert > p { margin: 6px 0 12px; color: #8da2b1; font-size: .68rem; }.email-alert dl { margin-bottom: 0; }.email-alert dl div { display: grid; grid-template-columns: 50px 1fr; gap: 7px; padding: 5px 0; border-top: 1px solid rgba(255,255,255,.08); font-size: .62rem; }.email-alert dt { color: #677f90; }.email-alert dd { margin: 0; color: #c7d3da; }
.alarm-flow { display: grid; grid-template-columns: 1fr 13px 1fr 13px 1fr 13px 1fr; align-items: center; margin-top: 15px; }.alarm-flow div { display: flex; flex-direction: column; align-items: center; gap: 3px; color: #6c8495; font-size: .55rem; text-align: center; }.alarm-flow div span { width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); color: var(--yellow); }.alarm-flow i { height: 1px; background: rgba(255,255,255,.18); }.console-disclaimer { max-width: 1000px; margin: 16px 0 0; color: #768b9b; font-size: .72rem; }

.planning { background: var(--paper); }
.data-science-flow { display: grid; grid-template-columns: 1fr 38px 1fr 38px 1fr 38px 1fr; align-items: center; padding: 22px; border: 1px solid var(--line); background: var(--white); }.data-science-flow article { padding: 16px; }.data-science-flow article span { color: #8a979f; font-size: .65rem; font-weight: 850; }.data-science-flow article strong { display: block; margin: 4px 0; font-size: 1rem; }.data-science-flow article p { margin: 0; color: var(--muted); font-size: .75rem; }.data-science-flow > i { height: 1px; background: #9fabb2; position: relative; }.data-science-flow > i::after { content: "›"; position: absolute; right: -2px; top: -13px; color: #63737d; font-style: normal; font-size: 1.2rem; }
.planning-analytics { display: grid; grid-template-columns: 1.22fr .78fr; gap: 16px; margin-top: 16px; }.planning-chart, .exposure-chart { min-width: 0; padding: 24px; border: 1px solid var(--line); background: var(--white); }.planning-chart-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 16px; }.planning-chart-head > div { display: flex; flex-direction: column; }.planning-chart-head span { color: #7a8790; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }.planning-chart-head strong { font-size: 1.02rem; }.planning-chart-head > b { color: #8b6d00; font-size: .7rem; }.planning-chart svg { width: 100%; }.light-grid { fill: none; stroke: #e1e7e9; stroke-width: 1; }.renewal-threshold { fill: none; stroke: var(--red); stroke-width: 1.5; stroke-dasharray: 6 5; }.renewal-label { fill: #c33c41; font-size: 10px; text-anchor: end; }.fleet-band { fill: rgba(66,199,240,.15); stroke: none; }.ageing-line { fill: none; stroke: #ad8b00; stroke-width: 4; }.ageing-point { fill: var(--yellow); stroke: var(--ink); stroke-width: 3; }.light-axis text { fill: #89969f; font-size: 10px; }.planning-legend { display: flex; flex-wrap: wrap; gap: 16px; color: #72808a; font-size: .68rem; }.planning-legend span { display: flex; align-items: center; gap: 6px; }.planning-legend i { width: 18px; height: 3px; }.planning-legend .asset { background: #ad8b00; }.planning-legend .fleet-band-key { height: 8px; background: rgba(66,199,240,.25); }.planning-legend .threshold-key { border-top: 1px dashed var(--red); }
.horizontal-chart { display: grid; gap: 21px; margin-top: 30px; }.horizontal-chart > div { display: grid; grid-template-columns: 86px 1fr 39px; align-items: center; gap: 10px; color: #5f6e78; font-size: .68rem; }.horizontal-chart > div > i { height: 15px; position: relative; background: #e9eeef; }.horizontal-chart > div > i b { display: block; width: var(--w); height: 100%; background: linear-gradient(90deg, var(--yellow), var(--orange)); }.horizontal-chart em { position: absolute; left: var(--x); top: -17px; color: #b24043; font-size: .55rem; font-style: normal; transform: translateX(-50%); }.horizontal-chart em::after { content: ""; position: absolute; left: 50%; top: 14px; width: 1px; height: 20px; border-left: 1px dashed var(--red); }.horizontal-chart > div > strong { font-size: .71rem; text-align: right; }.exposure-chart > p { margin: 32px 0 0; padding-top: 17px; border-top: 1px solid var(--line); color: #6f7d87; font-size: .73rem; }
.decision-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 36px; }.decision-card { position: relative; min-height: 250px; padding: 29px; border: 1px solid var(--line); background: rgba(255,255,255,.62); }.decision-card > span { color: #7a8790; font-size: .67rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.decision-card h3 { max-width: 520px; margin: 14px 0 22px; font-size: clamp(1.35rem, 2.2vw, 2.05rem); line-height: 1.12; letter-spacing: -.035em; }.decision-card p { margin-bottom: 16px; color: var(--muted); font-size: .84rem; }.decision-card small { display: block; padding-top: 14px; border-top: 1px solid var(--line); color: #6e7c85; font-size: .7rem; }.decision-featured { border-color: #d7b300; background: linear-gradient(135deg, rgba(255,213,31,.19), white); }.decision-featured::after { content: "MANTENER · REHABILITAR · SUSTITUIR"; position: absolute; right: 20px; top: 20px; color: #8f7800; font-size: .58rem; font-weight: 900; letter-spacing: .08em; }

.framework { background: linear-gradient(180deg, #07121c, #0a1c29); color: var(--white); }
.kpi-radar-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(470px, 1fr); gap: 18px; }.radar-card, .kpi-list { border: 1px solid rgba(255,255,255,.13); background: #0a1b28; }.radar-head { display: flex; justify-content: space-between; gap: 20px; padding: 15px 18px; border-bottom: 1px solid rgba(255,255,255,.11); }.radar-head span { color: #d7e1e7; font-size: .76rem; font-weight: 750; }.radar-head strong { color: #7890a1; font-size: .64rem; }.radar-svg { width: 100%; max-height: 575px; padding: 18px; overflow: visible; }.radar-grid { fill: none; stroke: rgba(255,255,255,.12); stroke-width: 1; }.radar-axis { stroke: rgba(255,255,255,.13); stroke-width: 1; }.radar-area { fill: rgba(255,213,31,.2); stroke: var(--yellow); stroke-width: 3; }.radar-dot { fill: var(--yellow); stroke: #07121c; stroke-width: 3; }.radar-labels text { fill: #879cab; font-size: 11px; }.radar-labels tspan:first-child { fill: var(--yellow); font-weight: 900; }.radar-scale { display: flex; flex-wrap: wrap; gap: 18px; padding: 0 18px 18px; color: #7b92a2; font-size: .65rem; }.radar-scale span { display: flex; align-items: center; gap: 6px; }.radar-scale i { width: 8px; height: 8px; border-radius: 50%; }.radar-scale .direct { background: var(--yellow); }.radar-scale .enable { background: var(--cyan); }.radar-scale .limited { background: #627989; }
.kpi-list { display: grid; }.kpi-list article { display: grid; grid-template-columns: 57px 1fr 70px; gap: 14px; align-items: center; padding: 13px 16px; border-bottom: 1px solid rgba(255,255,255,.1); }.kpi-list article:last-child { border-bottom: 0; }.kpi-list article > span { color: #6f8798; font-size: .68rem; font-weight: 850; }.kpi-list article > div strong { display: block; font-size: .78rem; }.kpi-list article > div p { margin: 2px 0 0; color: #8297a7; font-size: .66rem; }.kpi-list article > b { justify-self: end; padding: 4px 7px; background: rgba(66,199,240,.09); color: var(--cyan); font-size: .58rem; }.kpi-list article.kpi-primary { background: rgba(255,213,31,.045); }.kpi-list article.kpi-primary > span, .kpi-list article.kpi-primary > b { color: var(--yellow); }.kpi-list article.kpi-primary > b { background: rgba(255,213,31,.1); }
.reference-band { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 28px; border: 1px solid rgba(255,255,255,.12); }.reference-band > div { min-height: 205px; padding: 25px; }.reference-band > div + div { border-left: 1px solid rgba(255,255,255,.12); }.reference-band strong { font-size: .84rem; }.reference-band p { margin: 10px 0 17px; color: #8499a8; font-size: .75rem; }.reference-band a { color: var(--yellow); font-size: .7rem; font-weight: 800; }

.architecture { background: var(--paper); }
.partner-lockup { display: grid; grid-template-columns: 185px 28px 180px 1fr; gap: 26px; align-items: center; padding: 24px; border: 1px solid var(--line); background: var(--white); }.partner-lockup img { max-width: 100%; max-height: 52px; object-fit: contain; }.partner-lockup > span { color: #9aa5ab; font-size: 1.7rem; }.partner-lockup > p { margin: 0; color: var(--muted); font-size: .87rem; }.partner-lockup > p strong { color: var(--ink); }
.end-to-end { display: grid; grid-template-columns: 1fr 38px 1fr 38px 1fr 38px 1fr; align-items: center; margin-top: 25px; }.end-to-end article { min-height: 245px; padding: 24px; border: 1px solid var(--line); background: white; }.end-to-end article > span { color: #7a8790; font-size: .64rem; font-weight: 850; letter-spacing: .08em; }.stage-icon { width: 50px; height: 50px; display: grid; place-items: center; margin: 34px 0 19px; background: var(--ink); color: var(--yellow); font-size: 1.1rem; font-weight: 900; }.end-to-end article > strong { display: block; font-size: .95rem; }.end-to-end article > p { margin: 7px 0 0; color: var(--muted); font-size: .75rem; }.end-to-end > i { height: 1px; background: #a9b4ba; position: relative; }.end-to-end > i::after { content: "›"; position: absolute; right: -2px; top: -13px; color: #667680; font-style: normal; font-size: 1.2rem; }
.open-architecture { display: grid; grid-template-columns: .75fr 1.25fr; gap: 48px; align-items: center; margin-top: 25px; padding: 34px; background: var(--ink); color: white; }.open-architecture > div:first-child > span { color: var(--yellow); font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.open-architecture h3 { margin: 8px 0 15px; font-size: clamp(1.45rem, 2.5vw, 2.35rem); line-height: 1.12; letter-spacing: -.035em; }.open-architecture p { margin: 0; color: #8fa3b1; font-size: .86rem; }.integration-layers { display: grid; grid-template-columns: 1fr 34px 1fr 34px 1fr; align-items: center; }.integration-layers > div { min-height: 124px; display: flex; flex-direction: column; justify-content: center; padding: 16px; border: 1px solid rgba(255,255,255,.14); background: var(--ink-2); }.integration-layers span { color: var(--cyan); font-size: .58rem; font-weight: 850; letter-spacing: .08em; }.integration-layers strong { margin: 5px 0; font-size: .78rem; }.integration-layers small { color: #718899; font-size: .61rem; }.integration-layers > i { height: 1px; background: var(--cyan); position: relative; }.integration-layers > i::after { content: "›"; position: absolute; right: -2px; top: -13px; color: var(--cyan); font-style: normal; }

.technical { background: var(--paper-2); }
.technical-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 72px; align-items: start; }.technical-product { position: sticky; top: 105px; }.technical-product h2 { margin-bottom: 30px; font-size: clamp(2.2rem, 3.5vw, 3.75rem); line-height: 1.02; letter-spacing: -.05em; }.technical-product > img { width: min(100%, 530px); margin: 0 auto 20px; filter: drop-shadow(0 24px 35px rgba(7,18,28,.2)); }.product-caption { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 0; border-top: 1px solid #cbd4d7; }.product-caption img { width: 92px; }.product-caption span { color: var(--muted); font-size: .71rem; text-align: right; }
.spec-list { margin: 0; border-top: 1px solid #bdc8cc; }.spec-list > div { display: grid; grid-template-columns: 140px 1fr; gap: 22px; padding: 23px 0; border-bottom: 1px solid #bdc8cc; }.spec-list dt { color: #6b7a84; font-size: .72rem; font-weight: 820; text-transform: uppercase; letter-spacing: .08em; }.spec-list dd { display: grid; grid-template-columns: 160px 1fr; gap: 20px; margin: 0; }.spec-list dd strong { font-size: 1.02rem; }.spec-list dd span { color: var(--muted); font-size: .8rem; }

.contact { position: relative; overflow: hidden; background: var(--ink); color: white; }.contact-glow { position: absolute; width: 650px; height: 650px; right: -230px; top: -250px; border-radius: 50%; background: rgba(66,199,240,.1); filter: blur(60px); }.contact-layout { position: relative; display: grid; grid-template-columns: .75fr 1.25fr; gap: 84px; align-items: start; }.contact-copy h2 { margin-bottom: 23px; font-size: clamp(2.35rem, 4vw, 4.25rem); line-height: 1.02; letter-spacing: -.05em; }.contact-copy > p:not(.eyebrow) { color: #9bb0be; }.contact-copy ul { padding: 0; margin: 30px 0; list-style: none; }.contact-copy li { padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.1); color: #c2cfd6; }.contact-copy li::before { content: "→"; margin-right: 10px; color: var(--yellow); }.contact-copy > a { display: block; color: var(--yellow); font-size: 1.03rem; font-weight: 800; }.contact-copy > span { color: #879aa8; font-size: .8rem; }
.lead-form { padding: 31px; background: white; color: var(--ink); box-shadow: var(--shadow); }.form-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding-bottom: 21px; border-bottom: 1px solid var(--line); }.form-head span { color: #7b8890; font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }.form-head strong { font-size: 1.05rem; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding-top: 23px; }.form-grid label, .consent { display: flex; flex-direction: column; gap: 7px; }.form-grid label > span { color: #5f6d76; font-size: .72rem; font-weight: 750; }.form-grid input, .form-grid select, .form-grid textarea { width: 100%; border: 1px solid #c9d2d5; border-radius: 0; background: #f9fbfb; color: var(--ink); padding: 11px 12px; outline: none; }.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-color: #8f7800; box-shadow: 0 0 0 3px rgba(255,213,31,.22); }.form-grid textarea { resize: vertical; }.form-wide { grid-column: 1 / -1; }.consent { flex-direction: row; align-items: flex-start; gap: 10px; margin: 20px 0; color: #687680; font-size: .68rem; }.consent input { margin-top: 3px; accent-color: #b89600; }.consent a { text-decoration: underline; }.form-submit { width: 100%; border: 0; }.form-note, .form-status { margin: 10px 0 0; color: #76848c; font-size: .65rem; }.form-status { color: #6f5d00; font-weight: 800; }

.site-footer { padding: 56px 0 22px; background: #050d14; color: white; }.footer-grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 55px; }.footer-brand img { width: 134px; filter: brightness(0) invert(1); }.footer-brand p { max-width: 310px; margin: 18px 0 0; color: #728695; font-size: .78rem; }.footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; gap: 8px; }.footer-grid > div > span { margin-bottom: 6px; color: #7b8f9e; font-size: .66rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }.footer-grid a { color: #a7b6c0; font-size: .74rem; }.footer-grid a:hover, .footer-grid a:focus-visible { color: var(--yellow); }.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 40px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.1); color: #617685; font-size: .66rem; }

/* Header ecosystem */
.header-relationships { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.header-mark { min-height: 42px; display: grid; grid-template-columns: auto auto; align-items: center; gap: 8px; padding: 5px 9px; border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.035); }
.header-mark > span { color: #7f94a3; font-size: .52rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.header-mark img { width: 72px; max-height: 28px; object-fit: contain; }
.header-mark:not(.partner-mark), .header-mark.partner-mark { background: rgba(255,255,255,.96); }
.header-mark:not(.partner-mark) > span, .header-mark.partner-mark > span { color: #586771; }
.header-mark.partner-mark img { width: 62px; max-height: 27px; }
.hero-proof li:last-child { min-width: 230px; }
.hero-proof li:last-child strong { font-size: .95rem; }
.hero-layout { grid-template-columns: minmax(0, 1.08fr) minmax(455px, .92fr); gap: 52px; padding: 66px 0 62px; }
.hero h1 { font-size: clamp(2.9rem, 4.4vw, 4.85rem); }
.hero-lede { font-size: clamp(1rem, 1.25vw, 1.12rem); line-height: 1.5; }

/* Spain-to-Europe policy landscape */
.policy-landscape.reg-opportunity { position: relative; isolation: isolate; overflow: hidden; padding: 92px 0 45px; background: linear-gradient(105deg, #7b1117 0%, #a8191f 19%, #53212c 42%, #102b55 61%, #071a3b 100%); color: white; }
.policy-flag { position: absolute; z-index: -1; inset: 0 auto 0 0; width: 54%; opacity: .34; background: linear-gradient(180deg, #aa151b 0 26%, #f1bf00 26% 74%, #aa151b 74%); clip-path: polygon(0 0, 84% 0, 100% 50%, 82% 100%, 0 100%); }
.policy-stars { position: absolute; z-index: -1; inset: 0 0 0 44%; opacity: .32; background-image: radial-gradient(circle, #ffdd54 0 2px, transparent 2.4px), radial-gradient(circle at 70% 26%, rgba(53,141,255,.55), transparent 31%); background-size: 72px 72px, auto; transform: rotate(-5deg) scale(1.1); }
.policy-shell { position: relative; }
.policy-intro { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 70px; align-items: end; margin-bottom: 46px; }
.policy-intro .eyebrow { grid-column: 1 / -1; margin-bottom: -40px; }
.policy-intro h2 { max-width: 840px; margin: 0; font-size: clamp(2.5rem, 4.3vw, 4.55rem); line-height: 1; letter-spacing: -.052em; }
.policy-intro > p:not(.eyebrow) { grid-column: 2; margin: 0 0 4px; color: #c2ced9; font-size: 1rem; }
.policy-flow { display: grid; grid-template-columns: minmax(0, .82fr) 76px minmax(0, 1.18fr); align-items: stretch; padding: 16px; background: linear-gradient(102deg, rgba(255,255,255,.15), rgba(255,255,255,.055) 47%, rgba(20,66,126,.25)); box-shadow: 0 30px 90px rgba(0,0,0,.25); backdrop-filter: blur(12px); }
.spain-opportunity, .europe-kpis { position: relative; min-width: 0; padding: 28px; }
.policy-country { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; }
.policy-country > span { width: 54px; height: 38px; display: grid; place-items: center; border-top: 8px solid #aa151b; border-bottom: 8px solid #aa151b; background: #f1bf00; color: #621016; font-size: .76rem; font-weight: 950; }
.policy-country div { display: flex; flex-direction: column; }
.policy-country small, .europe-head small { color: #ffdf67; font-size: .61rem; font-weight: 900; letter-spacing: .12em; }
.policy-country strong { font-size: 1rem; }
.spain-opportunity h3 { max-width: 520px; margin-bottom: 15px; font-size: clamp(1.65rem, 2.55vw, 2.65rem); line-height: 1.08; letter-spacing: -.04em; }
.spain-opportunity > p { color: #e5d5cf; font-size: .9rem; }
.investment-facts { display: grid; grid-template-columns: 1.55fr .72fr .72fr; gap: 1px; margin: 28px 0; background: rgba(255,255,255,.14); }
.investment-facts > div { min-height: 104px; display: flex; flex-direction: column; justify-content: center; padding: 15px; background: rgba(31,14,23,.55); }
.investment-facts strong { color: #ffe05d; font-size: clamp(1.45rem, 2.2vw, 2.3rem); line-height: 1; }
.investment-facts span { margin-top: 7px; color: #d8c3bf; font-size: .62rem; }
.spain-opportunity > a, .kpi-source { display: inline-flex; gap: 8px; padding-bottom: 3px; border-bottom: 1px solid currentColor; color: #ffe05d; font-size: .75rem; font-weight: 850; }
.policy-link { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 9px; color: rgba(255,255,255,.58); font-size: .53rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.policy-link i { width: 100%; height: 1px; position: relative; background: linear-gradient(90deg, #ffe05d, #67b7ff); }
.policy-link i::after { content: "›"; position: absolute; right: -1px; top: -15px; color: #67b7ff; font-size: 1.35rem; font-style: normal; }
.europe-kpis { background: linear-gradient(145deg, rgba(3,31,71,.48), rgba(8,24,50,.24)); }
.europe-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; }
.europe-head h3 { margin: 5px 0 0; font-size: clamp(1.45rem, 2.15vw, 2.25rem); line-height: 1.08; letter-spacing: -.035em; }
.europe-head > span { max-width: 150px; color: #8fa7c2; font-size: .61rem; text-align: right; }
.policy-radar-wrap { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(190px, .7fr); gap: 18px; align-items: center; }
.policy-radar { min-width: 0; max-height: 355px; padding: 4px; }
.policy-kpi-focus { display: grid; gap: 8px; }
.policy-kpi-focus span { display: flex; flex-direction: column; padding: 10px 11px; border-left: 2px solid #ffdb3a; background: rgba(255,255,255,.055); color: #c8d7e6; font-size: .68rem; }
.policy-kpi-focus b { margin-bottom: 2px; color: #ffdb3a; font-size: .58rem; letter-spacing: .08em; }
.association-strip { display: grid; grid-template-columns: 155px 1fr; gap: 14px; align-items: center; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.13); }
.association-strip > span { color: #8fa7c2; font-size: .61rem; }
.association-strip > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.association-strip a { height: 47px; display: grid; place-items: center; padding: 7px 9px; background: rgba(255,255,255,.94); }
.association-strip img { width: 100%; max-width: 92px; height: 32px; object-fit: contain; }
.kpi-source { margin-top: 16px; color: #8ed5ff; }
.policy-landscape .opportunity-note { margin: 20px 0 0; color: #aebdca; }

/* SP Energy Networks callout */
.spen-intro { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.spen-intro p { margin: 0; color: #52616b; font-size: 1rem; }
.spen-intro p strong { color: var(--ink); }
.spen-intro small { color: #7b8890; font-size: .65rem; }
.button-dark { min-height: 45px; background: var(--ink); color: white; font-size: .78rem; }
.button-dark:hover, .button-dark:focus-visible { background: #163448; }

/* One command surface: fleet and CT */
.command-view-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.command-view-tabs button { min-height: 72px; display: grid; grid-template-columns: 42px 1fr; grid-template-rows: auto auto; column-gap: 12px; align-content: center; padding: 12px 16px; border: 1px solid rgba(100,155,185,.22); background: #0a1b28; color: white; text-align: left; cursor: pointer; }
.command-view-tabs button > span { grid-row: 1 / -1; width: 34px; height: 34px; display: grid; place-items: center; align-self: center; border: 1px solid rgba(255,255,255,.16); color: #7890a1; font-size: .65rem; font-weight: 900; }
.command-view-tabs button strong { font-size: .83rem; }
.command-view-tabs button small { color: #718899; font-size: .64rem; }
.command-view-tabs button.is-active { border-color: rgba(255,213,31,.62); background: linear-gradient(135deg, rgba(255,213,31,.12), #0a1b28); }
.command-view-tabs button.is-active > span { border-color: var(--yellow); background: var(--yellow); color: var(--ink); }
.command-view-panel[hidden] { display: none !important; }
.command-view-panel { animation: view-in 220ms ease; }
@keyframes view-in { from { opacity: .35; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.open-ct-button { width: 100%; margin-top: 12px; padding: 9px 11px; border: 1px solid rgba(255,213,31,.35); background: rgba(255,213,31,.08); color: var(--yellow); cursor: pointer; font-size: .66rem; font-weight: 850; text-align: left; }
.open-ct-button:hover, .open-ct-button:focus-visible { background: var(--yellow); color: var(--ink); }
.command-view-panel .console-disclaimer { margin-bottom: 0; }
.signal-convergence { display: grid; grid-template-columns: 190px 1fr auto; gap: 24px; align-items: center; margin-top: 28px; padding: 22px 24px; border-top: 1px solid #bac6ca; border-bottom: 1px solid #bac6ca; }
.signal-convergence > span { color: #8f7800; font-size: .64rem; font-weight: 900; letter-spacing: .1em; }
.signal-convergence p { margin: 0; color: #586772; font-size: .83rem; }
.signal-convergence a { color: var(--ink); font-size: .72rem; font-weight: 850; white-space: nowrap; }

/* Planning and data ownership */
.ageing-purpose { margin: 17px 0 0; padding: 15px 16px; border-left: 3px solid #c49d00; background: #f6f1d8; color: #596670; font-size: .75rem; }
.ageing-purpose strong { color: var(--ink); }
.technical-architecture { grid-template-columns: .9fr 1.1fr; margin-top: 64px; padding: 42px; }
.architecture-copy .ownership-badge { display: inline-flex; margin-top: 22px; padding: 8px 10px; border: 1px solid rgba(255,213,31,.42); color: var(--yellow); font-size: .62rem; letter-spacing: .07em; }
.architecture-cta { display: inline-flex; align-items: center; gap: 9px; margin-top: 18px; color: var(--white); font-size: .78rem; font-weight: 850; border-bottom: 1px solid rgba(255,255,255,.35); }
.architecture-cta:hover, .architecture-cta:focus-visible { color: var(--yellow); border-color: var(--yellow); }
.architecture-map { min-width: 0; }
.data-destinations { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-bottom: 7px; }
.data-destinations span { min-height: 50px; display: grid; place-items: center; border: 1px solid rgba(66,199,240,.28); background: rgba(66,199,240,.06); color: var(--cyan); font-size: .62rem; font-weight: 900; letter-spacing: .08em; }
.operation-planning-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.operation-planning-grid article { min-height: 165px; padding: 20px; border: 1px solid rgba(255,255,255,.13); background: var(--ink-2); }
.operation-planning-grid small { color: var(--yellow); font-size: .59rem; font-weight: 900; letter-spacing: .1em; }
.operation-planning-grid strong { display: block; margin: 8px 0; font-size: 1rem; }
.operation-planning-grid p { color: #8398a8; font-size: .74rem; }
.footer-bottom a { color: #879baa; }
.footer-bottom a:hover, .footer-bottom a:focus-visible { color: var(--yellow); }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity 580ms ease, transform 580ms ease; }.reveal.is-visible { opacity: 1; transform: none; }.reveal-delay { transition-delay: 110ms; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .reveal { opacity: 1; transform: none; transition: none; } .map-marker.is-selected i { animation: none; } }

@media (max-width: 1180px) {
  .primary-nav { gap: 14px; font-size: .79rem; }
  .hero-layout { grid-template-columns: 1fr 450px; gap: 45px; }
  .investment-window { grid-template-columns: 1fr; }.investment-total { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .fleet-main { grid-template-columns: minmax(0, 1.25fr) minmax(360px, .9fr); }
  .fleet-kpis { grid-template-columns: repeat(3, 1fr); }
  .fleet-kpis article:nth-child(4), .fleet-kpis article:nth-child(5) { grid-column: span 1; }
  .risk-cards { grid-template-columns: 1fr 1fr; }
  .variable-diagram { grid-template-columns: 1fr 1fr; }.diagram-core { grid-column: 1 / -1; grid-row: 1; }.variable-column article::after { display: none; }
  .kpi-radar-layout { grid-template-columns: .9fr 1.1fr; }
}

@media (max-width: 980px) {
  :root { --shell: min(100% - 36px, 900px); }
  .section-pad { padding: 88px 0; }
  .menu-toggle { display: block; cursor: pointer; }
  .primary-nav { position: fixed; inset: 76px 0 auto; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 18px; background: rgba(7,18,28,.99); border-bottom: 1px solid rgba(255,255,255,.12); }
  .primary-nav.is-open { display: flex; }.primary-nav > a { padding: 13px !important; border-bottom: 1px solid rgba(255,255,255,.08); }.primary-nav .nav-cta { margin-top: 9px; text-align: center; }
  .hero-layout { grid-template-columns: 1fr; padding-top: 68px; }.hero-copy { max-width: 790px; }.hero-visual, .hero-news { width: min(100%, 720px); }
  .opportunity-layout { grid-template-columns: 1fr; gap: 38px; }
  .section-heading { grid-template-columns: 1fr; gap: 20px; }
  .spen-grid { grid-template-columns: 1fr 1fr; }.safety-statement { grid-template-columns: 62px 1fr; }.safety-statement > p { grid-column: 2; }
  .fleet-main { grid-template-columns: 1fr; }.fleet-map { min-height: 460px; }.priority-panel { min-height: 0; }.fleet-bottom { grid-template-columns: 1fr 1fr; }.severity-causes { grid-column: 1 / -1; }
  .live-layout { grid-template-columns: 1fr; }.telemetry-panel { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.1); }.alarm-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.alarm-head { grid-column: 1 / -1; }.io-state { margin: 0; }.alarm-flow { grid-column: 1 / -1; }
  .planning-analytics { grid-template-columns: 1fr; }
  .kpi-radar-layout { grid-template-columns: 1fr; }.radar-card { max-width: 680px; width: 100%; }
  .end-to-end { grid-template-columns: 1fr 30px 1fr; gap: 10px; }.end-to-end > i:nth-of-type(2) { display: none; }.end-to-end article:nth-of-type(3) { grid-column: 1; }.end-to-end article:nth-of-type(4) { grid-column: 3; }.open-architecture { grid-template-columns: 1fr; }
  .technical-layout { grid-template-columns: 1fr; }.technical-product { position: static; }.technical-product > img { width: min(70%, 500px); }
  .contact-layout { grid-template-columns: 1fr; gap: 50px; }
}

@media (max-width: 720px) {
  :root { --shell: calc(100% - 28px); }
  body { font-size: 16px; }
  .section-pad { padding: 72px 0; }
  .brand-lockup img { width: 102px; }.brand-product { display: none; }.brand-divider { display: none; }
  .hero-layout { min-height: auto; padding: 62px 0; }.hero h1 { font-size: clamp(2.7rem, 14vw, 4.2rem); }.hero-proof { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; }.hero-proof li { min-width: 0; padding: 0 10px; }.hero-proof span { font-size: .68rem; }.news-board-foot { align-items: flex-start; flex-direction: column; gap: 8px; }.news-card { grid-template-columns: 96px 1fr; column-gap: 13px; padding-right: 42px; }.news-card > img { width: 96px; height: 90px; }.news-card::after { right: 15px; }
  .product-stage { min-height: 420px; }.signal { min-width: 118px; padding: 9px; }.signal::after { width: 20px; }.signal strong { font-size: .92rem; }.visual-foot { grid-template-columns: 1fr; }.visual-foot > div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
  .reg-opportunity { padding-top: 60px; }.investment-total { padding: 26px; }.investment-routes article { grid-template-columns: 78px 1fr; padding: 22px 18px; }.percent-ring { width: 72px; height: 72px; }
  .spen-grid { grid-template-columns: 1fr; }.spen-card { min-height: 0; }.spen-card > span { margin-bottom: 25px; }.safety-statement { grid-template-columns: 1fr; padding: 26px; }.safety-statement > p { grid-column: auto; }
  .dashboard-toolbar { align-items: flex-start; flex-direction: column; }.dashboard-filters { width: 100%; overflow-x: auto; }.dashboard-filters button { flex: 0 0 116px; }.fleet-kpis { grid-template-columns: 1fr 1fr; }.fleet-kpis article:first-child { grid-column: 1 / -1; }.fleet-map { min-height: 430px; }.event-legend { display: none; }.map-base { width: 94%; left: 0; }.map-legend { max-width: calc(100% - 24px); }.fleet-bottom { grid-template-columns: 1fr; }.severity-causes { grid-column: auto; }.incident-head, .incident-row { grid-template-columns: .95fr 1.35fr .7fr 30px; font-size: .6rem; }.selected-incident dl div { grid-template-columns: 68px 1fr; }
  .risk-cards { grid-template-columns: 1fr; }.risk-card { min-height: 0; }.variable-map { padding: 22px 16px; }.variable-map-head { flex-direction: column; }.variable-diagram { grid-template-columns: 1fr; gap: 16px; }.diagram-core { grid-column: auto; grid-row: auto; min-height: 340px; order: -1; }.decision-horizons { grid-template-columns: 1fr; gap: 18px; }.decision-horizons > i { width: 50px; transform: rotate(90deg); justify-self: center; }
  .console-toolbar { align-items: flex-start; flex-direction: column; }.scenario-switcher { justify-content: flex-start; }.metric-strip { grid-template-columns: 1fr 1fr; }.threshold-charts { grid-template-columns: 1fr; }.combined-risk { grid-template-columns: 1fr; }.risk-score { min-height: 90px; }.risk-threshold { grid-column: 1; }.alarm-panel { display: block; }.io-state { margin: 8px 0; }.alarm-flow { margin-top: 18px; }
  .data-science-flow { grid-template-columns: 1fr; }.data-science-flow > i { width: 35px; justify-self: center; transform: rotate(90deg); }.planning-chart, .exposure-chart { padding: 18px; }.planning-chart-head { flex-direction: column; }.decision-grid { grid-template-columns: 1fr; }.decision-featured::after { position: static; display: block; margin-bottom: 12px; }
  .radar-svg { padding: 4px; }.radar-labels text { font-size: 9px; }.kpi-list article { grid-template-columns: 48px 1fr; }.kpi-list article > b { grid-column: 2; justify-self: start; }
  .reference-band { grid-template-columns: 1fr; }.reference-band > div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
  .partner-lockup { grid-template-columns: 1fr 24px 1fr; }.partner-lockup p { grid-column: 1 / -1; }.end-to-end { grid-template-columns: 1fr; gap: 14px; }.end-to-end > i { width: 34px; transform: rotate(90deg); justify-self: center; }.end-to-end article:nth-of-type(3), .end-to-end article:nth-of-type(4) { grid-column: auto; }.open-architecture { padding: 24px; }.integration-layers { grid-template-columns: 1fr; gap: 12px; }.integration-layers > i { width: 32px; justify-self: center; transform: rotate(90deg); }
  .technical-product > img { width: 100%; }.product-caption { align-items: flex-start; flex-direction: column; }.product-caption span { text-align: left; }.spec-list > div { grid-template-columns: 1fr; gap: 8px; }.spec-list dd { grid-template-columns: 1fr; gap: 5px; }
  .lead-form { padding: 22px; }.form-head { align-items: flex-start; flex-direction: column; }.form-grid { grid-template-columns: 1fr; }.form-wide { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr 1fr; }.footer-brand { grid-column: 1 / -1; }.footer-bottom { flex-direction: column; }
}

@media (max-width: 440px) {
  .hero-actions .button { width: 100%; }.hero-proof { grid-template-columns: 1fr; gap: 14px; }.hero-proof li { padding-left: 0; border-left: 0; }.hero-product-cue { align-items: flex-start; }.hero-product-cue img { width: 112px; height: 72px; }.product-stage { min-height: 390px; }.product-stage img { width: 80%; }.signal { min-width: 105px; }.signal-fire, .signal-water { left: 2%; }.signal-ozone, .signal-output { right: 2%; }.news-card { grid-template-columns: 82px 1fr; padding-left: 10px; }.news-card > img { width: 82px; height: 82px; }.news-card strong { font-size: .88rem; }
  .fleet-kpis { grid-template-columns: 1fr; }.fleet-kpis article:first-child { grid-column: auto; }.fleet-map { min-height: 370px; }.map-marker { width: 30px; height: 30px; }.incident-row span { white-space: normal; }.event-icon { display: none; }.map-legend { gap: 6px 9px; }
  .metric-strip { grid-template-columns: 1fr; }
  .alarm-flow { grid-template-columns: 1fr; gap: 6px; }.alarm-flow i { width: 1px; height: 10px; justify-self: center; }
  .horizontal-chart > div { grid-template-columns: 75px 1fr 35px; }
  .footer-grid { grid-template-columns: 1fr; }.footer-brand { grid-column: auto; }
}

@media (max-width: 1180px) {
  .header-relationships { gap: 5px; }
  .header-mark { grid-template-columns: 1fr; padding: 5px 7px; }
  .header-mark > span { display: none; }
  .header-mark img { width: 63px; }
  .header-mark.partner-mark img { width: 55px; }
  .policy-flow { grid-template-columns: minmax(0, .9fr) 54px minmax(0, 1.1fr); }
  .spain-opportunity, .europe-kpis { padding: 22px; }
  .policy-radar-wrap { grid-template-columns: 1fr; }
  .policy-radar { max-height: 320px; }
  .policy-kpi-focus { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 980px) {
  .header-relationships { margin-left: auto; }
  .policy-intro { grid-template-columns: 1fr; gap: 20px; }
  .policy-intro .eyebrow, .policy-intro > p:not(.eyebrow) { grid-column: 1; }
  .policy-intro .eyebrow { margin-bottom: 0; }
  .policy-intro > p:not(.eyebrow) { max-width: 760px; }
  .policy-flow { grid-template-columns: 1fr; gap: 0; }
  .policy-link { min-height: 58px; flex-direction: row; }
  .policy-link i { width: 90px; }
  .policy-flag { width: 100%; height: 48%; clip-path: none; }
  .policy-stars { inset: 42% 0 0; }
  .policy-radar-wrap { grid-template-columns: minmax(0, 1fr) minmax(190px, .7fr); }
  .technical-architecture { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .site-header { height: 70px; }
  .nav-shell { gap: 8px; }
  .header-relationships { gap: 3px; }
  .header-mark { min-height: 36px; padding: 4px 5px; }
  .header-mark img { width: 52px; max-height: 23px; }
  .header-mark.partner-mark img { width: 47px; max-height: 22px; }
  .primary-nav { inset: 70px 0 auto; }
  .hero { padding-top: 70px; }
  .hero h1 { font-size: clamp(2.55rem, 12.4vw, 4rem); }
  .hero-lede { font-size: 1rem; }
  .hero-proof li:last-child { min-width: 180px; }
  .policy-landscape.reg-opportunity { padding: 72px 0 36px; }
  .policy-intro h2 { font-size: clamp(2.2rem, 10vw, 3.5rem); }
  .policy-flow { padding: 8px; }
  .spain-opportunity, .europe-kpis { padding: 20px 15px; }
  .investment-facts { grid-template-columns: 1fr 1fr; }
  .investment-facts > div:first-child { grid-column: 1 / -1; }
  .policy-radar-wrap { grid-template-columns: 1fr; }
  .policy-kpi-focus { grid-template-columns: 1fr 1fr; }
  .association-strip { grid-template-columns: 1fr; }
  .association-strip > div { grid-template-columns: 1fr 1fr; }
  .command-view-tabs { grid-template-columns: 1fr; }
  .signal-convergence { grid-template-columns: 1fr; gap: 10px; }
  .signal-convergence a { white-space: normal; }
  .technical-architecture { margin-top: 42px; padding: 24px; }
  .data-destinations { grid-template-columns: 1fr; }
  .operation-planning-grid { grid-template-columns: 1fr; }
}

@media (max-width: 440px) {
  .brand-lockup img { width: 82px; }
  .header-mark img { width: 43px; }
  .header-mark.partner-mark img { width: 42px; }
  .menu-toggle { width: 38px; padding: 7px; }
  .policy-kpi-focus { grid-template-columns: 1fr; }
  .policy-radar { padding: 0; }
  .association-strip a { height: 44px; }
}
