/* Passive 1920×1080 stage furniture. No hit targets, continuous animation,
   external font or expensive backdrop filter. The stage owns final scaling. */
.tv-info{
 position:absolute;inset:0;z-index:700;pointer-events:none;
 --tv-info-ink:#345653;--tv-info-muted:#59716c;--tv-info-rule:rgba(74,105,95,.19);
 --tv-info-accent:#527c72;--tv-info-cloud:#e1e7dc;--tv-info-cloud-shade:#a8bdb9;
 --tv-info-cloud-light:#f5f3e5;--tv-info-sun:#e7c784;--tv-info-sun-ray:#d4aa63;
 --tv-info-rain:#66969e;--tv-info-snow:#9ebcb7;--tv-info-fog:#93aaa5;
 --tv-info-arrow:#527c7b;--tv-info-arrow-light:#99b7ab;
 color:var(--tv-info-ink);font-family:inherit;font-size:18px;line-height:1.2;
 font-variant-numeric:tabular-nums;font-weight:500;text-rendering:optimizeLegibility;
}
.tv-info[data-night='true']{
 --tv-info-ink:#e5e8d9;--tv-info-muted:#b6c9bc;--tv-info-rule:rgba(192,213,192,.18);
 --tv-info-accent:#b2cbb7;--tv-info-cloud:#bbcfc8;--tv-info-cloud-shade:#719595;
 --tv-info-cloud-light:#e0e7d6;--tv-info-sun:#ddbd7d;--tv-info-sun-ray:#c0a56d;
 --tv-info-rain:#91bac1;--tv-info-snow:#d5e3d5;--tv-info-fog:#a5bdb4;
 --tv-info-arrow:#a3c8ba;--tv-info-arrow-light:#d2dec0;
}
.tv-info .tv-info-panel{
 position:absolute;box-sizing:border-box;padding:16px 18px;overflow:hidden;
 border:1px solid rgba(237,241,220,.8);border-radius:18px;
 background:rgba(246,244,229,.91);box-shadow:0 4px 16px rgba(37,65,57,.10);
}
.tv-info[data-night='true'] .tv-info-panel{
 background:rgba(27,46,49,.92);border-color:rgba(165,191,166,.29);
 box-shadow:0 4px 16px rgba(8,22,24,.13);
}
.tv-info-weather{top:24px;right:24px;width:360px;height:210px;}
.tv-info-boat{bottom:24px;left:24px;width:310px;height:190px;}
.tv-info-wind{bottom:24px;right:24px;width:170px;height:112px;}
.tv-info-kicker{margin:0;color:var(--tv-info-muted);font-size:18px;line-height:22px;font-weight:600;letter-spacing:.035em;}
.tv-info-title{margin:3px 0 0;font-size:22px;line-height:26px;font-weight:650;overflow-wrap:anywhere;}
.tv-info-today{display:flex;align-items:center;gap:12px;min-width:0;min-height:66px;margin:5px 0;}
.tv-info-icon{display:block;flex:0 0 68px;width:68px;height:60px;}
.tv-info-icon>svg{display:block;width:100%;height:100%;overflow:visible;}
.tv-info-today-text{flex:1 1 0;min-width:0;}
.tv-info-today-text .tv-info-secondary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tv-info-temp{font-size:34px;font-weight:650;line-height:39px;letter-spacing:-.025em;white-space:nowrap;}
.tv-info-secondary{margin:0;color:var(--tv-info-muted);font-size:18px;line-height:22px;overflow-wrap:anywhere;}
.tv-info-next{border-top:1px solid var(--tv-info-rule);padding-top:8px;margin-top:5px;min-width:0;}
.tv-info-next-heading{display:flex;align-items:center;gap:8px;min-width:0;height:32px;}
.tv-info-next-heading .tv-info-icon{flex:0 0 32px;width:32px;height:30px;}
.tv-info-next-heading .tv-info-title{flex:1 1 0;min-width:0;margin:0;font-size:18px;line-height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tv-info-range{flex:0 0 auto;font-size:18px;line-height:22px;white-space:nowrap;}
.tv-info-next .tv-info-secondary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tv-info-slide{min-width:0;font-size:18px;line-height:22px;opacity:1;transform:translateY(0);animation:tv-info-reveal .45s ease-out both;}
@keyframes tv-info-reveal{from{opacity:0;transform:translateY(3px);}to{opacity:1;transform:translateY(0);}}
.tv-info-meta{margin:5px 0 0;color:var(--tv-info-muted);font-size:18px;line-height:22px;}
.tv-info-progress{display:flex;gap:6px;align-items:center;min-height:3px;margin-top:7px;}
.tv-info-dot{display:block;flex:1 1 0;max-width:30px;height:3px;border-radius:3px;background:var(--tv-info-rule);}
.tv-info-dot[data-active='true']{background:var(--tv-info-accent);}
.tv-info-boat .tv-info-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:25px;max-height:50px;}
.tv-info-vessel{float:right;display:block;width:72px;height:58px;margin:3px -2px 3px 8px;overflow:hidden;}
.tv-info-vessel>svg{display:block;width:100%;height:100%;}
.tv-info-vessel *{animation:none!important;}
.tv-info-boat .tv-info-secondary,.tv-info-boat .tv-info-meta{margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tv-info-destination{margin:4px 0 0;font-size:18px;line-height:22px;color:var(--tv-info-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tv-info .tv-info-wind{padding:12px 14px;}
.tv-info-wind .tv-info-kicker{padding-right:56px;}
.tv-info-arrow{position:absolute;right:13px;top:31px;display:block;width:46px;height:46px;transform-origin:50% 50%;}
.tv-info-arrow>svg{display:block;width:100%;height:100%;}
.tv-info-wind::after{content:'N';position:absolute;right:30px;top:11px;color:var(--tv-info-muted);font-size:18px;font-weight:600;line-height:20px;}
.tv-info-speed{display:block;margin-top:3px;font-size:26px;line-height:30px;font-weight:650;white-space:nowrap;}
.tv-info-from{display:block;margin-top:3px;color:var(--tv-info-muted);font-size:18px;line-height:22px;}
.reduced-motion .tv-info-slide{animation:none;transform:none;}
@media(prefers-reduced-motion:reduce){body:not(.full-motion) .tv-info-slide{animation:none;transform:none;}}
