:root{color:#17211d;background:#f6f4ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}.app-shell{min-height:100vh}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px clamp(18px,4vw,56px);background:#f6f4eff0;border-bottom:1px solid rgba(23,33,29,.1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand,.site-header nav button{display:inline-flex;align-items:center;gap:8px;min-height:42px;border:0;color:#17211d;background:transparent}.brand{flex-shrink:0;font-weight:800;letter-spacing:0}.site-header nav{display:flex;align-items:center;gap:8px}.site-header nav button{padding:0 12px;border-radius:8px}.site-header nav button:hover{background:#17211d14}.site-header .nav-primary{color:#fff;background:#165f50}.site-header .nav-primary:hover{background:#124e42}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.62fr);gap:clamp(28px,5vw,72px);align-items:center;min-height:calc(100vh - 75px);padding:clamp(44px,7vw,92px) clamp(20px,6vw,88px);background:linear-gradient(120deg,#ffffff85,#fff0 44%),linear-gradient(135deg,#f6f4ef,#e9f0ea 56%,#d8e6e0)}.hero-content,.section-inner,.search-page{max-width:1180px}.eyebrow{margin:0 0 10px;color:#7a3f1d;font-size:.82rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{margin:0;letter-spacing:0;line-height:1.08}.hero h1,.search-heading h1{max-width:780px;font-size:clamp(2.6rem,8vw,6.4rem)}.hero-copy{max-width:680px;margin:24px 0 0;color:#43524b;font-size:clamp(1.08rem,2vw,1.35rem)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:34px}.primary-button,.secondary-link,.back-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;border-radius:8px;font-weight:800;text-decoration:none}.primary-button{border:0;padding:0 20px;color:#fff;background:#165f50;box-shadow:0 10px 24px #165f5038}.primary-button:hover{background:#124e42}.primary-button:disabled{cursor:not-allowed;opacity:.68}.secondary-link,.back-button{border:1px solid rgba(23,33,29,.14);padding:0 16px;color:#17211d;background:#ffffff94}.hero-panel,.election-summary,.candidate-card,.info-tile{border:1px solid rgba(23,33,29,.12);border-radius:8px;background:#ffffffc7;box-shadow:0 22px 54px #2b38331a}.hero-panel{padding:clamp(24px,4vw,36px);max-width:420px;justify-self:end}.panel-topline,.panel-detail,.result-count{display:inline-flex;align-items:center;gap:9px}.panel-topline{color:#165f50;font-weight:800}.status-dot{width:10px;height:10px;border-radius:999px;background:#2ba46f}.hero-panel h2{margin:28px 0 0;font-size:clamp(2rem,4vw,3.45rem)}.panel-detail{width:100%;margin-top:12px;color:#43524b;font-weight:700}.explain-band,.sources-section{padding:clamp(54px,7vw,94px) clamp(20px,6vw,88px)}.explain-band{background:#fff}.section-inner{margin:0 auto}.section-inner h2{max-width:760px;font-size:clamp(2rem,4vw,3.4rem)}.steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px}.info-tile{padding:22px;background:#f8faf8;box-shadow:none}.tile-icon,.summary-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:8px;color:#165f50;background:#dfece6}.info-tile h3{margin-top:22px;font-size:1.2rem}.info-tile p{margin:10px 0 0;color:#52615a}.sources-section{background:#f6f4ef}.source-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(280px,1fr);gap:24px;align-items:start}.source-note{max-width:520px;margin:16px 0 0;color:#52615a}.source-list{display:grid;gap:12px}.source-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px;padding:14px 16px;border:1px solid rgba(23,33,29,.12);border-radius:8px;color:#17211d;background:#fff;text-decoration:none}.source-list a:hover{border-color:#165f5080}.search-page{margin:0 auto;padding:42px clamp(18px,5vw,48px) 82px}.search-heading{display:grid;justify-items:center;margin-bottom:30px;text-align:center}.back-button{justify-self:start;min-height:38px;margin-bottom:24px;padding:0 12px}.search-layout{display:grid;grid-template-columns:minmax(0,760px);justify-content:center}.search-form{display:grid;gap:20px;padding:clamp(22px,4vw,34px);border:1px solid rgba(23,33,29,.12);border-radius:8px;background:#fff;box-shadow:0 24px 70px #2b383321}.field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.46fr);gap:16px}label{display:grid;gap:8px;color:#314039;font-size:.94rem;font-weight:800}input,select{width:100%;min-height:50px;border:1px solid rgba(23,33,29,.18);border-radius:8px;padding:0 13px;color:#17211d;background:#fbfcfb;outline:0}input:focus,select:focus{border-color:#165f50;box-shadow:0 0 0 4px #165f5024}.form-submit{width:100%;min-height:54px;margin-top:4px}.error-message{margin:0;color:#9a2f27;font-weight:800}.privacy-inline{margin:-4px 0 0;color:#52615a;font-size:.9rem}.privacy-inline button{border:0;padding:0;color:#165f50;background:transparent;font:inherit;font-weight:800;text-decoration:underline}.legal-page{max-width:920px;margin:0 auto;padding:42px clamp(18px,5vw,48px) 82px}.legal-heading{display:grid;gap:12px;max-width:760px;margin-bottom:28px}.legal-heading h1{font-size:clamp(2.4rem,6vw,4.8rem)}.legal-heading p{margin:0;color:#43524b;font-size:1.08rem}.legal-content{display:grid;gap:22px;padding:clamp(22px,4vw,36px);border:1px solid rgba(23,33,29,.12);border-radius:8px;background:#fff;box-shadow:0 24px 70px #2b38331c}.legal-content section{display:grid;gap:10px}.legal-content h2{font-size:1.25rem}.legal-content p,.legal-content ul{margin:0;color:#43524b}.legal-content ul{display:grid;gap:8px;padding-left:22px}.legal-content a{color:#165f50;font-weight:800}.election-summary{padding:24px}.election-summary p{margin:18px 0 4px;color:#165f50;font-weight:800}.election-summary h2{font-size:2rem}.election-summary dl,.candidate-facts{display:grid;gap:14px;margin:22px 0 0}dt{color:#718079;font-size:.78rem;font-weight:800;text-transform:uppercase}dd{margin:2px 0 0;color:#24312c;font-weight:700}.results-section{max-width:1060px;margin:34px auto 0}.result-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px;border-radius:8px;color:#fff;background:#17211d}.result-banner h2{font-size:clamp(1.8rem,4vw,3rem)}.result-banner p{margin:8px 0 0;color:#ffffffc2}.result-banner .eyebrow{color:#9bd3bd}.result-count{flex-shrink:0;min-height:44px;padding:0 14px;border-radius:8px;color:#17211d;background:#fff;font-weight:800}.candidate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px}.candidate-card{padding:20px;background:#fff}.candidate-header{display:grid;grid-template-columns:58px minmax(0,1fr);gap:14px;align-items:center}.candidate-header h3{font-size:1.28rem}.candidate-header p{margin:4px 0 0;color:#52615a;font-weight:800}.party-mark{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:8px;color:#fff;font-size:.76rem;font-weight:900}.party-cdu{background:#111}.party-spd{background:#d71920}.party-gruene{background:#3f9c35}.party-linke{background:#be3075}.party-afd{background:#009ee0}.party-fdp{color:#17211d;background:#ffed00}.party-volt{background:#582c83}.party-bsw{background:#7b1f32}.party-default{background:#165f50}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:860px){.hero,.source-layout{grid-template-columns:1fr}.hero{min-height:auto}.hero-panel{justify-self:stretch;max-width:none}.steps-grid,.candidate-grid,.search-layout{grid-template-columns:1fr}}@media(max-width:560px){.site-header{align-items:stretch;flex-direction:column}.site-header nav{justify-content:space-between}.field-grid{grid-template-columns:1fr}.result-banner{align-items:stretch;flex-direction:column}.result-count{justify-content:center}}
