.cia-dashboard{max-width:100%;padding:var(--spacing-md);margin:0 auto}.loading-state,.error-state{text-align:center;padding:var(--spacing-3xl);flex-direction:column;justify-content:center;align-items:center;min-height:400px;display:flex}.loading-spinner{border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;width:60px;height:60px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}.error-state{color:var(--danger-color)}.error-state .btn{margin-top:var(--spacing-lg)}.data-attribution{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--spacing-sm)}.data-attribution a{color:var(--link-color);font-weight:600}.chart-section,.election-section,.rankings-section,.heatmap-section,.network-section{margin:var(--spacing-xl) 0;padding:var(--spacing-xl);background:var(--card-bg);border-radius:var(--border-radius-lg);box-shadow:0 2px 8px var(--card-shadow)}.section-heading{font-size:var(--h2-size);color:var(--primary-color);margin-bottom:var(--spacing-md);border-bottom:2px solid var(--border-color);padding-bottom:var(--spacing-sm)}.section-description{color:var(--text-secondary);margin-bottom:var(--spacing-md);font-size:var(--font-size-base)}.metrics-grid{margin:var(--spacing-lg) 0;padding:var(--spacing-xl);background:var(--card-bg);border-radius:var(--border-radius-lg);box-shadow:0 2px 8px var(--card-shadow)}.metrics-cards{gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.metric-card{background:linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);color:#fff;padding:var(--spacing-xl);border-radius:var(--border-radius);text-align:center;transition:transform .3s,box-shadow .3s,border-color .3s;box-shadow:0 4px 6px #0000001a}.metric-card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #00000026}.metric-icon{margin-bottom:var(--spacing-sm);font-size:2.5rem}.metric-value{font-size:var(--font-size-4xl);font-weight:700;font-family:var(--font-mono);margin:var(--spacing-sm) 0;line-height:1.2}.metric-label{font-size:var(--font-size-sm);opacity:.9;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.risk-alerts{padding:var(--spacing-lg);background:var(--bg-color);border-radius:var(--border-radius);border-left:4px solid var(--warning-color)}.risk-alerts h3{font-size:var(--h4-size);color:var(--header-color);margin-bottom:var(--spacing-md)}.alert-badges{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.alert-badge{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-sm);font-weight:600;font-size:var(--font-size-sm);color:#fff;align-items:center;display:inline-flex}.alert-badge.critical{background-color:var(--danger-color)}.alert-badge.major{background-color:var(--warning-color)}.alert-badge.minor{background-color:var(--info-color)}.badge-count{font-size:var(--font-size-xl);margin-right:var(--spacing-xs);font-weight:700}.chart-container{height:400px;margin:var(--spacing-xl) 0;padding:var(--spacing-lg);background:var(--bg-color);border-radius:var(--border-radius);position:relative}@media (width<=768px){.chart-container{height:300px}}.predictions-grid{gap:var(--spacing-lg);margin:var(--spacing-xl) 0;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.seats-label{color:var(--text-secondary);font-size:.75rem}.prediction-card{background:var(--card-bg);border:2px solid var(--card-border);border-radius:var(--border-radius);padding:var(--spacing-lg);transition:transform .2s,box-shadow .2s}.prediction-card:hover{box-shadow:0 4px 8px var(--card-shadow);transform:translateY(-2px)}.prediction-card.gain{border-left:4px solid var(--success-color)}.prediction-card.loss{border-left:4px solid var(--danger-color)}.prediction-party{font-size:var(--h4-size);color:var(--primary-color);margin-bottom:var(--spacing-sm);font-weight:700}.prediction-seats{margin:var(--spacing-md) 0;justify-content:space-between;align-items:center;display:flex}.seats-current,.seats-predicted{font-size:var(--font-size-2xl);font-weight:600}.seats-arrow{font-size:var(--font-size-xl);color:var(--text-secondary)}.seats-change{font-size:var(--font-size-lg);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-weight:600}.seats-change.positive{color:var(--success-color);background:#0088381a}.seats-change.negative{color:var(--danger-color);background:#dc35451a}.confidence-interval{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--spacing-sm)}.scenarios-grid{gap:var(--spacing-lg);margin-top:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.scenario-card{background:var(--card-bg);border:2px solid var(--card-border);border-radius:var(--border-radius);padding:var(--spacing-lg);position:relative}.scenario-probability{top:var(--spacing-md);right:var(--spacing-md);font-size:var(--font-size-2xl);color:var(--primary-color);font-weight:700;position:absolute}.scenario-name{font-size:var(--h4-size);margin-bottom:var(--spacing-md);padding-right:60px;font-weight:600}.scenario-composition{gap:var(--spacing-xs);margin:var(--spacing-md) 0;flex-wrap:wrap;display:flex}.party-badge{padding:var(--spacing-xs) var(--spacing-sm);background:var(--primary-color);color:#fff;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-weight:600;display:inline-block}.scenario-seats{font-size:var(--font-size-lg);margin:var(--spacing-sm) 0}.scenario-risk-level{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.scenario-majority{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);margin-top:var(--spacing-sm);font-weight:600;display:inline-block}.scenario-majority.yes{color:var(--success-color);background:#00883833}.scenario-majority.no{color:var(--danger-color);background:#dc354533}.rankings-list{gap:var(--spacing-md);margin-top:var(--spacing-xl);display:grid}.ranking-item{align-items:center;gap:var(--spacing-lg);padding:var(--spacing-lg);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius);grid-template-columns:60px 1fr auto;transition:transform .2s,box-shadow .2s;display:grid}.ranking-item:hover{box-shadow:0 2px 8px var(--card-shadow);transform:translate(4px)}.ranking-number{font-size:var(--font-size-3xl);color:var(--primary-color);text-align:center;font-weight:700;font-family:var(--font-mono)}.ranking-info{flex:1}.ranking-name{font-size:var(--h4-size);margin-bottom:var(--spacing-xs);font-weight:600}.ranking-party{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.ranking-role{font-size:var(--font-size-sm);color:var(--text-secondary);font-style:italic}.ranking-score{text-align:right}.score-value{font-size:var(--font-size-3xl);color:var(--primary-color);font-weight:700;font-family:var(--font-mono)}.score-label{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase}.committee-grid{gap:var(--spacing-lg);margin-top:var(--spacing-xl);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.committee-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius);padding:var(--spacing-lg)}.committee-name{font-size:var(--h4-size);color:var(--primary-color);margin-bottom:var(--spacing-sm);font-weight:600}.committee-stats{gap:var(--spacing-sm);margin:var(--spacing-md) 0;font-size:var(--font-size-sm);grid-template-columns:repeat(2,1fr);display:grid}.committee-stat{justify-content:space-between;display:flex}.stat-label{color:var(--text-secondary)}.stat-value{color:var(--text-color);font-weight:600}.committee-issues{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.committee-issues h4{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-xs);text-transform:uppercase}.issue-tag{padding:var(--spacing-xs) var(--spacing-sm);margin:var(--spacing-xs);background:var(--bg-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);display:inline-block}.network-container{background:var(--bg-color);border-radius:var(--border-radius);min-height:400px;padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);color:var(--text-secondary);justify-content:center;align-items:center;font-style:italic;display:flex}@media (width<=768px){.cia-dashboard{padding:var(--spacing-sm)}.metrics-cards{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.metric-card{padding:var(--spacing-lg)}.metric-icon{font-size:2rem}.metric-value{font-size:var(--font-size-3xl)}.metric-label{font-size:var(--font-size-xs)}.ranking-item{gap:var(--spacing-md);grid-template-columns:40px 1fr}.ranking-number{font-size:var(--font-size-2xl)}.ranking-score{text-align:left;margin-top:var(--spacing-sm);grid-column:2}.predictions-grid,.scenarios-grid,.committee-grid{grid-template-columns:1fr}}@media print{.loading-state,.error-state,footer,nav{display:none}.chart-container{page-break-inside:avoid}.metric-card{border:1px solid #ccc}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:high){.metric-card,.prediction-card,.scenario-card,.ranking-item,.committee-card{border:2px solid}}.charts-grid,.chart-grid{gap:var(--spacing-lg);margin:var(--spacing-xl) 0;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));display:grid}@keyframes dashboard-shimmer{0%{background-position:-200%}to{background-position:200%}}.skeleton-dashboard{border-radius:var(--border-radius);background:linear-gradient(90deg,#0088380f 25%,#00883821 50%,#0088380f 75%) 0 0/200% 100%;animation:1.6s infinite dashboard-shimmer;color:#0000!important}.metric-card.skeleton-dashboard{min-height:130px}.chart-container.skeleton-dashboard{min-height:300px}.ranking-item.skeleton-dashboard{min-height:76px}@media (prefers-reduced-motion:reduce){.skeleton-dashboard{opacity:.5;animation:none}}.chart-tooltip,[role=tooltip]{border-radius:var(--border-radius);padding:var(--spacing-sm) var(--spacing-md);color:#e0e0e0;font-size:var(--font-size-sm);font-family:var(--font-main);pointer-events:none;z-index:9999;background:#0a0e27f2;border:1px solid #00d9ff66;max-width:260px;line-height:1.5;animation:.12s tooltip-appear;position:relative;box-shadow:0 4px 16px #00d9ff26,0 2px 6px #0006}@keyframes tooltip-appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chart-tooltip .tooltip-label{font-size:var(--font-size-xs);color:#00d9ffcc;text-transform:uppercase;letter-spacing:.06em;margin-block-end:.25em;font-weight:600}.chart-tooltip .tooltip-value{font-size:var(--font-size-lg);color:#00d9ff;font-weight:700;font-family:var(--font-mono,monospace)}.chart-tooltip .tooltip-secondary{font-size:var(--font-size-xs);color:#e0e0e0b3;margin-block-start:.25em}.chart-tooltip:before{content:"";border:6px solid #0000;border-top-color:#00d9ff66;border-bottom-width:0;position:absolute;inset-block-end:-6px;inset-inline-start:50%;transform:translate(-50%)}@media (forced-colors:active){.chart-tooltip,[role=tooltip]{color:canvastext;box-shadow:none;background:canvas;border:2px solid buttontext}.chart-tooltip .tooltip-value{color:highlight}}@media (prefers-reduced-motion:reduce){.chart-tooltip,[role=tooltip]{animation:none}}.metric-card:focus-within,.prediction-card:focus-within,.scenario-card:focus-within{outline:3px solid var(--primary-color);outline-offset:2px}@media (prefers-color-scheme:dark){.skeleton-dashboard{background:linear-gradient(90deg,#00cc660f 25%,#00cc6624 50%,#00cc660f 75%) 0 0/200% 100%;animation:1.6s infinite dashboard-shimmer}.chart-tooltip,[role=tooltip]{background:#001a1af7;border-color:#0c66;box-shadow:0 4px 16px #00cc6626,0 2px 6px #0009}.chart-tooltip .tooltip-label{color:#00cc66e6}.chart-tooltip .tooltip-value{color:var(--primary-light,#0f8)}}html[data-theme=dark] .chart-section,html[data-theme=dark] .election-section,html[data-theme=dark] .rankings-section,html[data-theme=dark] .heatmap-section,html[data-theme=dark] .network-section,html[data-theme=dark] .metrics-grid{background:var(--card-bg);border:1px solid var(--card-border,var(--border-color));border-radius:var(--border-radius-lg,12px);box-shadow:0 0 12px #00cc6626}html[data-theme=dark] .section-heading{color:var(--primary-color);border-bottom-color:var(--border-color)}html[data-theme=dark] .metric-card{background:linear-gradient(135deg,#00cc6626 0%,#00bb7726 100%);border:1px solid #00cc664d;box-shadow:0 2px 8px #00cc661a}html[data-theme=dark] .metric-card:hover{border-color:#00cc6680;transform:translateY(-2px);box-shadow:0 4px 16px #0c63}html[data-theme=dark] .chart-container{border-radius:var(--border-radius,8px);background:#001a1a99;border:1px solid #00cc6626}html[data-theme=dark] .risk-alerts{border-left-color:var(--warning-color,#b35a00);background:#001a1a80}html[data-theme=light] .chart-section,html[data-theme=light] .election-section,html[data-theme=light] .rankings-section,html[data-theme=light] .heatmap-section,html[data-theme=light] .network-section,html[data-theme=light] .metrics-grid{background:var(--card-bg);box-shadow:var(--card-shadow-resting);border:1px solid var(--card-border,#00000014);border-radius:var(--border-radius-lg,12px)}html[data-theme=light] .chart-container{background:var(--bg-color);border-radius:var(--border-radius,8px)}html[data-theme=light] .metric-card{background:linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);box-shadow:0 2px 8px #00663326}html[data-theme=light] .metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00663340}html[data-theme=light] .section-heading{color:var(--primary-color)}
