/* Election extension inherits the approved shared template. */
:root{--af-brand-red:#e01719;--af-entry-blue:var(--election-background);--af-entry-blue-pressed:var(--election-pressed);--af-return-red:#df3035;--af-return-red-pressed:#c9252b;--af-return-ink:#fff;--election-background:#003C71;--election-pressed:#00284B;--election-silver:#C0C5C8}
.landing-footer{text-align:center}
.landing-publish-date{display:block;color:#62646a;font:400 .6875rem/var(--af-publication-line) Roboto,Arial,sans-serif}
#election-entry{width:66.666667%;margin:0 auto;padding:0;min-width:0}
.election-pill{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:8px 16px;border:2px solid var(--election-silver);border-radius:999px;background:var(--election-background);box-shadow:inset 0 0 0 2px var(--election-background),inset 0 0 0 3px #c0c5c840;color:white;font:700 15px/1.25 Roboto,Arial,sans-serif;letter-spacing:.12em;transition:background var(--af-search-fade) ease-in-out}
.election-pill:hover,.election-pill:active{background:var(--election-pressed)}
.election-symbol{display:block;width:38px;height:38px;flex:none;color:var(--election-silver)}
.election-symbol svg{width:100%;height:100%}.election-pill-label{flex:1;white-space:nowrap;text-align:center}.election-pill>svg{width:18px;height:18px;flex:none;color:var(--election-silver)}
.election-date-tag{font:600 11px/1.2 Roboto,Arial,sans-serif;letter-spacing:.02em;white-space:nowrap;color:var(--election-silver)}
.has-election-entry #landing{--af-election-bottom:max(0px,calc((env(safe-area-inset-bottom,0px) + 10px) * .35 - 6px));--af-election-footer:calc(44px + var(--af-publication-line) + var(--af-election-bottom));grid-template-rows:6svh 43svh minmax(0,1fr) var(--af-election-footer);padding-bottom:0;--af-tile-gap:clamp(8px,1.4svh,12px);--af-tile-size:min(113px,calc((100dvh - 49svh - var(--af-election-footer) - 3.9 * var(--af-tile-label) - 5 * var(--af-tile-gap) - 8px) / 3))}
.has-election-entry #landing .identity{grid-template-rows:14svh 3.5svh 19svh 6.5svh}
.has-election-entry #landing .wordmark{height:14svh}
.has-election-entry #landing .eye{height:19svh}
.has-election-entry #landing h1{font-size:clamp(23px,3.8svh,34px);margin:0}
.has-election-entry #streams{align-content:center}
/* Use 65% of the former bottom safe-area gap; retain a 44px tap target.
   Keep the footer in normal grid flow so the stream grid clears both items. */
.has-election-entry .landing-footer{padding-bottom:var(--af-election-bottom)}
.sheet-settled .landing-footer,.reader-open .landing-footer,.search-editing .landing-footer{visibility:hidden}
.election-home #landing{grid-template-rows:6svh 43svh minmax(0,1fr) var(--af-election-footer)}
.election-home #streams{grid-template-rows:repeat(3,max-content);align-content:center;padding-bottom:0}
.election-brand-card{display:flex;justify-content:center;align-items:center;gap:20px;width:100%;background:var(--election-background);color:white;border:0;border-radius:0;padding:12px 20px;clip-path:none}
.election-brand-symbol{width:clamp(54px,12svh,96px);flex:none;color:var(--election-silver)}.election-brand-symbol svg{width:100%;display:block}
.election-brand-card strong{font:700 clamp(27px,6vw,36px)/1.1 Editorial,Georgia,serif;display:block;letter-spacing:.02em}.election-brand-card span:not(.election-brand-symbol){display:block;font:700 14px/1.6 Roboto,Arial,sans-serif;letter-spacing:.13em}.election-brand-card small{display:block;font:400 12px/1.8 Roboto,Arial,sans-serif;letter-spacing:.05em;color:var(--election-silver)}
.election-issue-tile:disabled{cursor:default;color:#616570}.election-issue-tile:disabled img{opacity:.55}.election-issue-tile small{font:400 10px/1.2 Roboto,Arial,sans-serif;color:#616570}
.election-home-details{grid-column:1/-1;min-width:0;text-align:center}.election-home-details .utility-text-link{margin:0 auto;font-size:12px}.election-home-details .election-review-note{font-size:10px;margin:8px 0}
.election-dates{font:400 12px/1.4 Roboto,Arial,sans-serif;color:#41444a}.election-dates summary{padding:8px;cursor:pointer;min-height:36px}.election-dates p{display:flex;justify-content:space-between;gap:12px;margin:4px 0}.election-dates strong{font-weight:400}
.election-issue #sheet .stream-heading{padding-top:8px}.election-issue #feed-list{padding:0}.election-issue-content{padding:4px 0 16px;color:var(--af-ink)}
.election-issue-content>h2{font:700 var(--af-headline-size)/1.15 Editorial,Georgia,serif;margin:18px 0}.election-issue-hook{font-size:var(--af-body-size);line-height:var(--af-body-leading);text-align:left}
.election-issue-content h3,.election-impact h3,.election-story-sources h3,.election-voting h3{font:700 22px/1.25 Editorial,Georgia,serif;text-align:center;margin:28px 0 14px}
.election-state-power,.election-comparison-scope{font:400 13px/1.5 Roboto,Arial,sans-serif;color:#616570;text-align:center;margin:14px 0}
.election-read-story{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;margin:28px 0 20px;padding:12px 20px;border-radius:999px;background:var(--election-background);color:#fff;font:600 16px/1.4 Roboto,Arial,sans-serif;text-align:center;text-decoration:none}
.election-read-story:hover,.election-read-story:active{background:var(--election-pressed)}.election-read-story:focus-visible{outline:2px solid var(--election-background);outline-offset:4px}.election-read-story svg{width:20px;height:20px;flex:none}
.election-review-note,.election-test-note{font:400 12px/1.5 Roboto,Arial,sans-serif;color:#616570;text-align:center;padding:8px 4px;margin:0}
.election-party-row{padding:16px 0;border-bottom:1px solid #deddd8}.election-party-row h4{font:700 16px/1.4 Roboto,Arial,sans-serif;margin:0 0 6px;text-align:left}.election-party-row p{font:400 14px/1.5 Roboto,Arial,sans-serif;margin:6px 0}.election-party-row .election-stance{font-weight:600}.election-party-row .election-source-line{font-size:11px;color:#616570}.election-source-line a{color:inherit;overflow-wrap:anywhere;text-underline-offset:3px}
.election-party-table summary,.election-household-grid summary,.election-settings-details summary{min-height:44px;padding:12px 0;cursor:pointer;font:600 13px/1.5 Roboto,Arial,sans-serif;color:#41444a}
.election-household-grid{border-top:1px solid #deddd8;margin-top:12px;min-width:0}.election-household-head,.election-household-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,4fr);gap:10px;padding:14px 0;border-bottom:1px solid #deddd8}.election-household-head>div,.election-household-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.election-household-head{font:600 11px/1.4 Roboto,Arial,sans-serif}.election-household-values{font:400 12px/1.5 Roboto,Arial,sans-serif}.election-household-values>div{overflow-wrap:anywhere;min-width:0}.election-household-label{font:600 13px/1.4 Roboto,Arial,sans-serif;min-width:0}.election-household-label small{display:block;font:400 11px/1.4 Roboto,Arial,sans-serif;margin:5px 0;color:#616570}.election-household-label small:last-child{font-style:italic}
.election-party-switcher{display:none}.election-assumptions{font:400 12px/1.5 Roboto,Arial,sans-serif;color:#616570;margin-top:16px}.election-assumptions p{margin:8px 0}.election-impact>p{font-size:15px;line-height:1.5}.election-impact>.election-test-note{font-size:12px}.election-top-stories .feed-text-row{width:100%}.election-last-checked{font:400 11px/1.5 Roboto,Arial,sans-serif;color:#616570;text-align:center;margin:24px 0}.election-authorisation{font:400 11px/1.5 Roboto,Arial,sans-serif;text-align:center;min-height:12px}
.election-empty{font:400 14px/1.5 Roboto,Arial,sans-serif;color:#616570;text-align:center;padding:16px 0}.election-punchline{text-align:center;margin:18px 0;color:#df001b;font:700 17px/1.4 Roboto,Arial,sans-serif}.election-headline{font:700 var(--af-headline-size)/1.15 Editorial,Georgia,serif;text-align:center;margin:16px 0 20px}.election-story-label{max-width:360px;margin:12px auto}.election-story-label .election-pill{min-height:44px;font-size:11px;letter-spacing:.08em}.election-story-label .election-symbol{width:28px;height:28px}.election-story-label .election-date-tag{display:none}
.election-settings-details{margin:16px 0}.election-setting-status{text-align:center}.election-form-message{white-space:pre-line;font-size:13px;line-height:1.5}.election-settings-details li{font-size:13px;line-height:1.5;margin:8px 0}.election-settings-details select,.election-settings-details textarea{font:400 16px/1.4 Roboto,Arial,sans-serif;max-width:100%;padding:10px;border:1px solid #deddd8;border-radius:6px;background:#fff}
@media(max-width:600px){.election-household-head{display:none}.election-household-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.election-household-values{display:block;font-size:14px}.election-household-values .mobile-party-hidden{display:none}.election-party-switcher{display:flex;align-items:center;justify-content:space-between;gap:16px;font:600 13px/1.5 Roboto,Arial,sans-serif;padding:12px 0;border-bottom:1px solid #deddd8}.election-party-switcher select{min-height:44px;font:600 16px/1.4 Roboto,Arial,sans-serif;max-width:75%;border:1px solid #deddd8;border-radius:6px;padding:8px 12px;background:#fff;color:var(--af-ink)}}
@media(max-width:480px){.election-pill{min-height:52px;padding:7px 11px;gap:8px;font-size:13px;letter-spacing:.08em}.election-symbol{width:30px;height:30px}.election-date-tag{display:none}}
@media(prefers-reduced-motion:reduce){.election-pill{transition:none}}

/* A slim visible pill inside a comfortable tap target. */
#election-entry .election-pill{position:relative;isolation:isolate;min-height:44px;height:44px;padding:6px 14px;gap:8px;border:0;background:transparent;box-shadow:none;font-size:clamp(10px,2.9vw,13px);font-weight:600;letter-spacing:.055em;color:#fff}
#election-entry .election-pill::before{content:"";position:absolute;z-index:-1;inset:6px 0;border-radius:999px;background:var(--af-entry-blue);box-shadow:0 1px 2px #003c7114;transition:background var(--af-search-fade) ease-in-out}
#election-entry .election-pill:hover::before,#election-entry .election-pill:active::before{background:var(--af-entry-blue-pressed)}
#election-entry .election-symbol{width:19px;height:24px;color:#fff}
#election-entry .election-pill-label{white-space:normal;text-wrap:balance}
#election-entry .election-date-tag{display:none}
#election-entry .election-pill>svg{width:14px;height:14px;color:#d8e6f2}
@media(prefers-reduced-motion:reduce){#election-entry .election-pill::before{transition:none}}

/* Victorian home inherits the Australian home geometry without a second grid. */
.election-home .election-brand-card{margin:0;border-inline:0;font:inherit;cursor:pointer}
.election-home .election-brand-symbol{width:clamp(42px,9svh,76px)}
.election-home #election-entry .election-return::before{background:var(--af-return-red)}
.election-home #election-entry .election-return:hover::before,.election-home #election-entry .election-return:active::before{background:var(--af-return-red-pressed)}
.election-return .return-arrow{display:flex;width:19px;justify-content:center;transform:rotate(180deg)}
.election-return .return-arrow svg{width:14px;height:14px}
.election-return .return-arrow-spacer{width:19px;flex:none}
.election-home #streams .stream span{height:1.3em;white-space:nowrap}

/* A softer brand red with white lettering, consistent with AlgoFlip navigation. */
.election-home #election-entry .election-return{color:var(--af-return-ink)}

/* Shared breathing room below the slogan; keep icon grid and footer anchored.
   Reallocate a small part of the heading band rather than entering browser chrome. */
.has-election-entry #landing{--af-banner-gap:clamp(4px,1svh,8px)}
.has-election-entry #landing .identity{grid-template-rows:14svh 3.5svh var(--af-banner-gap) 19svh calc(6.5svh - var(--af-banner-gap))}
.has-election-entry #landing .wordmark{grid-row:1}
.has-election-entry #landing .slogan{grid-row:2}
.has-election-entry #landing .eye{grid-row:4}
.has-election-entry #landing h1{grid-row:5}


