/* Shared density: retain readable type, complete data and usable controls. */
body main,body.focused-site main{padding-top:16px;padding-bottom:28px}
body .focus-header{padding-block:8px}
body main .page-header.page-header{padding:14px 20px;margin-bottom:12px;border-radius:10px}
body main .page-header.page-header :is(h1,h2){font-size:clamp(27px,2.8vw,36px);margin:0;line-height:1.2}
body main .page-header.page-header :is(.eyebrow,.ps-eyebrow,.pm-kicker){margin-bottom:3px!important}
body main .page-header.page-header .poll-intro-note{margin-top:5px;font-size:12px;line-height:1.45}
body .section-heading{margin-bottom:8px;gap:6px 14px}
body .profile-summary-row{margin:6px 0;gap:6px 12px}
body .profile-summary-row>p{flex-basis:400px}
body .profile-card-grid{gap:10px;margin-top:12px}
body .profile-card{padding:14px;gap:12px}
body .profile-card-role{margin-bottom:5px}
body .profile-card .profile-chips{margin:6px 0;gap:4px}
body .profile-card-status{margin:5px 0}
body .profile-directory-link{margin:16px 0 0;font-size:13px}
body .other-profiles{margin-top:16px}
body .back{margin-bottom:12px}
body .scoring-profile{gap:24px}
body .scoring-status{padding:12px 16px;margin-block:12px}
body .scoring-method{margin:20px 0;padding:18px}
body .scoring-dimensions{margin:12px 0}
body .scoring-dimensions>div{padding:10px 0}
body .scoring-source-list li{margin:12px 0}
body .evidence{padding:16px;margin-block:12px}
body .prose{margin-block:20px}
body .prose p{line-height:1.6;margin-block:10px}
/* Native disclosures work with touch, keyboard and without JavaScript. */
body main .ui-info{margin:6px 0;color:var(--muted,#56647b);font-size:12px;line-height:1.5}
body main .ui-info>summary{display:list-item;width:fit-content;max-width:100%;padding:6px 0;min-height:32px;cursor:pointer;list-style:none;color:#355674;font:600 12px/1.5 system-ui,sans-serif}
body main .ui-info>summary::-webkit-details-marker{display:none}
body main .ui-info>summary::after{content:' +';font-weight:400}
body main .ui-info[open]>summary::after{content:' −'}
body main .ui-info .ui-info-content{background:#eef3f8;border-left:2px solid #9dafc3;border-radius:0 5px 5px 0;padding:10px 14px;margin:2px 0 10px;max-width:75ch;color:#40536c;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
body main .ui-info-content p{font:inherit;margin:6px 0}
body main .ui-info-content p:first-child{margin-top:0}
body main .ui-info-content p:last-child{margin-bottom:0}
body main .ps-method-card>summary{font:600 15px/1.5 system-ui,sans-serif;padding:2px 0;cursor:pointer}
body main :is(.polling-page,.polling-summary-page) .polling-view-nav{margin-bottom:12px;padding:3px;border-radius:10px}
body main :is(.polling-page,.polling-summary-page) .polling-view-nav a{padding:8px 14px}
body main :is(.ps-tabs,.polling-tabs){margin-bottom:12px;gap:6px}
body main :is(.ps-tabs a,.polling-tabs button){padding:10px 8px;min-height:40px}
body main .ps-filters{gap:10px;margin-bottom:12px}
body main .ps-date summary{padding:8px 0}
body main :is(.ps-chart,.ps-method-card,.polling-card){padding:18px 20px;border-radius:12px}
body main .ps-chart-heading{gap:10px;margin-bottom:8px}
body main .ps-chart-heading h2{font-size:26px;margin:0}
body main .ps-coverage span{padding:4px 9px}
body main .ps-source-line{margin:6px 0;gap:6px 14px}
body main .ps-display-tools{margin:10px 0 6px;padding-top:10px;gap:10px}
body main .polling-summary-row>summary{padding:12px 0;min-height:76px;gap:12px}
body main .ps-person-name{margin-bottom:6px;font-size:16px}
body main .ps-row-caption{margin-top:4px}
body main .ps-result{font-size:22px}
body main .ps-method-card{margin-top:14px}
body main .ps-method{margin-top:8px}
body main .ps-method>summary{padding:10px 0}
body main .ps-footnote{margin-top:10px;line-height:1.55}
body main .polling-toolbar{margin-bottom:10px}
body main .polling-page .polling-timeline{padding:12px;margin-bottom:12px}
body main .polling-page .polling-selection-tools{margin:10px 0}
body main .polling-workspace{gap:14px}
body main .polling-main-chart{padding:18px}
body main .polling-main-chart h2{margin-bottom:12px}
body main .polling-main-chart .polling-legend{margin:12px 0;gap:6px 14px}
body main .polling-below{margin-top:14px}
body main .polling-page .polling-below>summary{font-size:19px;padding:4px 0;min-height:36px}
body main .ref-notice{padding:10px 14px;margin:12px 0}
body main .ref-party-links{margin:12px 0 16px}
body main .ref-party{margin:20px 0}
body main .ref-card{padding:14px}
body main .ref-tags{margin:6px 0}
body main .ref-summary{margin:8px 0 10px}
body main .ref-method{padding:10px 0}
body main .cmp-notice{padding:10px 14px;margin:10px 0;font-size:13px}
body main [data-regalian-dashboard]{padding:18px;margin-block:12px}
body main [data-regalian-dashboard] .rg-stats{margin-block:10px}
body main [data-regalian-dashboard] .rg-controls{margin-block:12px;gap:10px}
body main [data-regalian-dashboard] .rg-stat{padding:8px 12px}
body main .compare-dashboard{padding:18px;margin:12px 0}
body footer,body.focused-site footer{padding-block:16px;gap:8px 20px}
/* Do not let offscreen country labels create horizontal scrolling. */
body .country-flag-name{clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
@media(max-width:650px){
 body main,body.focused-site main{padding-top:12px}
 body main .page-header.page-header{padding:12px 16px}
 body .section-heading{align-items:flex-start;gap:4px}
 body .profile-summary-row>p{flex-basis:100%}
 body main :is(.ps-chart,.ps-method-card,.polling-card){padding:14px;border-radius:10px}
 body main .polling-summary-row>summary{grid-template-columns:38px minmax(0,1fr) 72px 10px;gap:8px;padding:10px 0;min-height:72px}
 body main .ps-person-name{font-size:14px}
 body main .ps-result{font-size:20px}
 body main .ps-row-detail{margin-left:0}
 body main .ps-tabs a,body main .polling-tabs button{padding:10px 3px;font-size:12px;min-height:44px}
 body main .ui-info>summary{padding:10px 0;min-height:44px}
 body main .ui-info-content{max-width:100%;padding:10px 12px}
 body main [data-regalian-dashboard]{padding:12px}
 body .profile-card{padding:12px;gap:10px}
}
@media print{body main details.ui-info>.ui-info-content{display:block}body main .ui-info>summary::after{content:none}}

/* Age controls keep their state when folded; desktop starts expanded. */
body .age-filters>summary{min-height:44px;cursor:pointer;font-weight:700;padding:10px 0}
body .age-selection{font-size:12px;font-weight:400;color:var(--muted,#56647b)}
@media(max-width:650px){
 body .age-filters{margin:8px 0;padding:0 12px}
 body .age-filters>summary{font-size:13px}
 body .age-filters .age-filter-row{gap:6px}
 body .age-filters .age-mini-chart{flex-basis:100%}
 body main .polling-summary-page .poll-intro{padding:10px 14px;margin-bottom:6px}
 body main .polling-summary-page .poll-intro h1{font-size:25px}
 body main .polling-summary-page .poll-intro .ps-eyebrow{display:none}
 body main .polling-summary-page .poll-intro-note{margin-top:3px;font-size:11px}
 body main .polling-summary-page .polling-view-nav{margin:4px 0 6px;padding:0;gap:4px}
 body main .polling-summary-page .polling-view-nav a{padding:6px 8px;min-height:44px}
 body main .polling-summary-page .ps-tabs{margin-bottom:6px}
 body main .polling-summary-page .ps-filters{margin:4px 0 8px;gap:6px;align-items:center}
 body main .polling-summary-page .ps-date,body main .polling-summary-page .ps-apply{margin-top:0}
 body main .polling-summary-page .ps-filters :is(select,input){font-size:16px}
 body main .polling-summary-page .ps-chart{display:flex;flex-direction:column;padding:12px}
 body main .polling-summary-page .ps-chart-heading{gap:4px;margin-bottom:4px}
 body main .polling-summary-page .ps-chart-heading h2{font-size:23px}
 body main .polling-summary-page .ps-chart-heading .ps-eyebrow{display:none}
 body main .polling-summary-page .ps-chart-heading .ps-sub{margin:3px 0;font-size:11px}
 body main .polling-summary-page .ps-coverage{margin:0;gap:8px}
 body main .polling-summary-page .ps-coverage span{padding:0;background:none;font-size:11px}
 body main .polling-summary-page .ps-display-tools{margin:4px 0;padding-top:0;gap:8px}
 body main .polling-summary-page .ps-display-tools select{font-size:16px}
 /* Full source attributions and reading notes follow the portraits on phones. */
 body main .polling-summary-page .ps-chart>.ps-source-line,
 body main .polling-summary-page .ps-chart>.ui-info{order:1}
}
