.listener-section {
 margin:36px 0 25px;
 }

.listener-section .eyebrow {
 font-size:calc(9px * var(--text-scale,1));
 margin-bottom:8px;
 }

.listener-grid {
 display:grid;
 grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr);
 gap:24px;
 }

.weather-card {
 --weather-start:#e3e9f8;
 --weather-end:#f3f5ff;
 --weather-halo:#a6b2eb55;
 --weather-accent:#5262a2;
 --weather-ink:#25334a;
 --weather-muted:#53637a;
 --weather-border:#c6d0eb;
 position:relative;
 overflow:hidden;
 padding:30px;
 border-radius:16px;
 border:1px solid var(--weather-border);
 background:linear-gradient(145deg,var(--weather-start),var(--weather-end));
 color:var(--weather-ink);
 }

.weather-card::before {
 content:"";
 position:absolute;
 top:-72px;
 right:-72px;
 width:225px;
 height:225px;
 border-radius:50%;
 background:radial-gradient(circle,var(--weather-halo),transparent 70%);
 pointer-events:none;
 }

.weather-card > * {
 position:relative;
 }

.weather-card[data-weather-condition="sunny"] {
 --weather-start:#fff0bc;
 --weather-end:#fff8e5;
 --weather-halo:#f9b52788;
 --weather-accent:#a56708;
 --weather-ink:#503416;
 --weather-muted:#735527;
 --weather-border:#efd17d;
 }

.weather-card[data-weather-condition="partly-cloudy"] {
 --weather-start:#dcedfc;
 --weather-end:#fff3d7;
 --weather-halo:#ffc95eaa;
 --weather-accent:#326d92;
 --weather-ink:#25394e;
 --weather-muted:#4f6479;
 --weather-border:#c4ddec;
 }

.weather-card[data-weather-condition="rainy"] {
 --weather-start:#cde9f8;
 --weather-end:#e5efff;
 --weather-halo:#57acd66b;
 --weather-accent:#216793;
 --weather-ink:#1c3b56;
 --weather-muted:#405f77;
 --weather-border:#a9cfe7;
 }

.weather-card[data-weather-condition="stormy"] {
 --weather-start:#dcd8f5;
 --weather-end:#eee8ff;
 --weather-halo:#9581d977;
 --weather-accent:#634294;
 --weather-ink:#3b2a54;
 --weather-muted:#625070;
 --weather-border:#c8bde5;
 }

.weather-card[data-weather-condition="night"] {
 --weather-start:#25304f;
 --weather-end:#3d345b;
 --weather-halo:#989ade55;
 --weather-accent:#ffe29a;
 --weather-ink:#f8f4ff;
 --weather-muted:#d1d5e9;
 --weather-border:#575674;
 }

.weather-card .widget-kicker,
.weather-card h3 span,
.weather-card p,
.weather-card .weather-range,
.weather-card .widget-note {
 color:var(--weather-muted);
 }

.weather-card .weather-range b {
 color:var(--weather-ink);
 }

.widget-kicker {
 display:flex;
 align-items:center;
 gap:8px;
 font-size:calc(9px * var(--text-scale,1));
 font-weight:800;
 letter-spacing:.1em;
 color:#5c697a;
 }

.widget-kicker .icon {
 width:17px;
 height:17px;
 }

.weather-card h3 {
 color:var(--weather-ink);
 font-size:calc(24px * var(--text-scale,1));
 margin-top:17px;
 }

.weather-card h3 span {
 font-size:calc(15px * var(--text-scale,1));
 color:var(--weather-muted);
 }

.weather-reading {
 display:flex;
 align-items:center;
 gap:24px;
 margin:30px 0 16px;
 }

.weather-reading > .icon {
 width:80px;
 height:80px;
 color:var(--weather-accent);
 stroke-width:1.5;
 }

.weather-reading strong {
 font-size:calc(67px * var(--text-scale,1));
 letter-spacing:-.06em;
 line-height:1;
 }

.weather-reading strong span {
 font-size:calc(26px * var(--text-scale,1));
 font-weight:500;
 vertical-align:top;
 letter-spacing:-.03em;
 }

.weather-card p {
 font-size:calc(14px * var(--text-scale,1));
 color:var(--weather-muted);
 }

.weather-range {
 display:flex;
 gap:26px;
 font-size:calc(11px * var(--text-scale,1));
 color:#657488;
 margin-top:22px;
 }

.weather-range b {
 display:block;
 color:#28364a;
 font-size:calc(18px * var(--text-scale,1));
 margin-top:4px;
 }

.widget-note {
 display:block;
 margin-top:24px;
 font-size:calc(10px * var(--text-scale,1));
 color:#6c7480;
 }

.poll-card {
 padding:30px;
 border:1px solid #e8e4e9;
 border-radius:16px;
 background:#fff;
 }

.poll-card .widget-kicker {
 color:#a23d54;
 }

.poll-card h3 {
 font-size:calc(27px * var(--text-scale,1));
 margin-top:15px;
 }

.poll-subtitle {
 color:var(--muted);
 font-size:calc(13px * var(--text-scale,1));
 margin:10px 0 20px;
 }

.poll-options {
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:10px;
 margin-bottom:22px;
 }

.poll-options label {
 display:flex;
 align-items:center;
 gap:10px;
 padding:13px;
 border:1px solid #e6e3e8;
 border-radius:9px;
 font-size:calc(12px * var(--text-scale,1));
 cursor:pointer;
 }

.poll-options label:has(input:checked) {
 background:#fff0f2;
 border-color:var(--primary);
 }

.poll-options input {
 accent-color:var(--primary);
 width:16px;
 height:16px;
 flex-shrink:0;
 }

.poll-card .button {
 min-height:43px;
 padding:10px 17px;
 font-size:calc(12px * var(--text-scale,1));
 }

.poll-result {
 margin-bottom:14px;
 }

.poll-result > div:first-child {
 display:flex;
 justify-content:space-between;
 gap:12px;
 font-size:calc(12px * var(--text-scale,1));
 }

.poll-result > div:first-child span {
 color:#9d3a50;
 font-weight:800;
 }

.poll-bar {
 height:6px;
 border-radius:5px;
 background:#f1edf2;
 margin-top:8px;
 overflow:hidden;
 }

.poll-bar > span {
 display:block;
 height:100%;
 background:var(--primary);
 border-radius:5px;
 }

.poll-feedback {
 font-size:calc(12px * var(--text-scale,1));
 color:#536476;
 margin:20px 0 12px;
 }

.poll-reset {
 border:0;
 padding:0;
 background:none;
 cursor:pointer;
 }

.share-tools {
 display:flex;
 flex-wrap:wrap;
 gap:8px;
 margin:20px 0;
 }

.share-button {
 display:inline-flex;
 align-items:center;
 gap:7px;
 padding:8px 12px;
 background:#f5f6f8;
 color:#4a5665;
 border:1px solid #e4e7ec;
 border-radius:8px;
 font-size:calc(11px * var(--text-scale,1));
 font-weight:700;
 cursor:pointer;
 }

.share-button:hover {
 color:var(--primary-dark);
 background:#fff1f2;
 }

.share-button .icon {
 width:16px;
 height:16px;
 }

.footer-share {
 white-space:nowrap;
 }

@media(max-width:950px) {
 .listener-grid {
 grid-template-columns:minmax(220px,.7fr) minmax(0,1fr);
 gap:18px;
 }
 .weather-card,.poll-card {
 padding:24px;
 }
 .poll-options {
 grid-template-columns:1fr;
 }
 .weather-reading {
 gap:15px;
 }
 .weather-reading strong {
 font-size:calc(56px * var(--text-scale,1));
 }
 .weather-reading > .icon {
 width:62px;
 height:62px;
 }
 .footer-main {
 gap:14px;
 }
 }

@media(max-width:760px) {
 .listener-grid {
 grid-template-columns:1fr;
 }
 .listener-section .section-heading {
 flex-wrap:wrap;
 }
 .listener-section h2 {
 font-size:calc(25px * var(--text-scale,1));
 }
 .poll-card h3 {
 font-size:calc(24px * var(--text-scale,1));
 }
 .weather-card {
 padding:25px;
 }
 .weather-reading {
 margin:24px 0 14px;
 }
 .weather-reading strong {
 font-size:calc(65px * var(--text-scale,1));
 }
 .widget-note {
 font-size:calc(9px * var(--text-scale,1));
 }
 }

/* A enquete não herda o espaçamento e a cor dos asteriscos dos formulários. */
.poll-options label {
 margin:0;
 }

.poll-options label span {
 color:var(--ink);
 font-weight:600;
 }

.poll-options input {
 padding:0;
 border-radius:50%;
 }

.poll-card form .button {
 margin-top:0;
 }

/* Votação real: conteúdo longo e barras acessíveis nos quatro temas. */
.poll-card{min-width:0}.poll-card h3,.poll-options span,.poll-result strong{overflow-wrap:anywhere}
.poll-options label{min-width:0}.poll-options span{min-width:0}
.poll-progress{display:block;width:100%;height:8px;border:0;border-radius:8px;overflow:hidden;margin-top:8px;appearance:none;background:var(--line,#e7e4ea);color:var(--primary);accent-color:var(--primary)}
.poll-progress::-webkit-progress-bar{background:var(--line,#e7e4ea);border-radius:8px}
.poll-progress::-webkit-progress-value{background:var(--primary);border-radius:8px}
.poll-progress::-moz-progress-bar{background:var(--primary);border-radius:8px}
.poll-error{color:var(--ink);border-left:3px solid var(--primary);padding:10px 12px;margin:14px 0;font-size:14px;overflow-wrap:anywhere}
.poll-card[aria-busy="true"] button{opacity:.65;cursor:progress}.poll-result small{font-size:.85em;font-weight:400}
