:root{--bg:#f8fafc;--ink:#142338;--muted:#637286;--blue:#1c66cb;--light:#eaf2fc;--line:#dde5ed;--white:#fff;--green:#277558;--amber:#936519;font-family:ui-sans-serif,system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select{font:inherit}a{color:var(--blue)}.wrap{max-width:1140px;margin:auto;padding:0 24px}.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.nav{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{text-decoration:none;color:var(--ink);font-weight:900;font-size:20px;display:flex;align-items:center;gap:8px}.brandmark{background:var(--blue);color:white;border-radius:9px;font-size:18px;padding:6px 9px}.beta{font-size:11px;font-weight:600;color:#5d7089;background:#edf2f8;padding:3px 7px;border-radius:5px}.nav nav{display:flex;gap:26px}.nav nav a{text-decoration:none;font-size:13px;color:#415369;font-weight:700}.nav nav a:hover{color:var(--blue)}.hero{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:24px;padding:70px 0 55px}.eyebrow{font-size:12px;font-weight:850;color:var(--blue);letter-spacing:.13em;margin:0 0 12px}.hero h1{font-size:clamp(28px,4vw,48px);line-height:1.35;letter-spacing:-.04em;margin:0 0 20px}.hero em{font-style:normal;color:var(--blue)}.lede{color:var(--muted);font-size:16px;line-height:1.9;max-width:580px}.primary{background:var(--blue);color:#fff;text-decoration:none;border-radius:12px;display:inline-block;padding:13px 24px;font-weight:800;margin-top:12px}.hero-graphic{height:280px;background:linear-gradient(140deg,#ddeaff,#f0f5fc);border-radius:32px;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden}.hero-graphic:before{content:"";position:absolute;width:290px;height:290px;border-radius:50%;border:48px solid #d1e2ff;right:-70px;top:-90px}.ballot{z-index:1;transform:rotate(-9deg);width:150px;height:195px;background:white;border-radius:15px;box-shadow:0 22px 50px #335a9d25;padding:22px;display:flex;flex-direction:column;gap:14px}.ballot>span{font-size:12px;letter-spacing:.18em;font-weight:900;color:#7794b6}.check{font-size:52px;color:#268668;line-height:1}.ballot-line{height:9px;border-radius:6px;background:#e9eff7}.ballot-line.short{width:65%}.bubble{position:absolute;right:12%;bottom:24px;z-index:2;background:#fff;padding:12px 18px;border-radius:14px;font-size:13px;font-weight:750;box-shadow:0 6px 25px #335a9d1c}.section{padding:50px 0;scroll-margin-top:90px}.section h2{margin:0 0 10px;font-size:clamp(24px,3vw,32px);letter-spacing:-.035em}.muted{color:var(--muted);font-size:14px;line-height:1.8}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.updated{font-size:12px;color:var(--muted);white-space:nowrap}.search-panel{background:#fff;border:1px solid var(--line);border-radius:18px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px;padding:22px;margin-top:24px;box-shadow:0 6px 22px #233b5907}.field{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:800;color:#374b62}.field input,.field select{width:100%;background:#fff;border:1px solid #ced9e5;border-radius:10px;padding:13px;color:#1c3048;min-height:48px}.field input:focus,.field select:focus{outline:2px solid #91befb}.controls{display:flex;justify-content:space-between;align-items:center;margin:22px 0;gap:12px}.tabs{display:flex;gap:6px}.tab{background:transparent;border:1px solid var(--line);border-radius:100px;padding:10px 15px;font-size:13px;font-weight:700;cursor:pointer;color:#52667e}.tab.active{background:#173f76;color:white;border-color:#173f76}.count{font-size:12px;color:var(--muted)}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:21px;display:flex;flex-direction:column;gap:11px;min-height:245px}.card h3{margin:0;font-size:20px;line-height:1.35}.date{font-size:22px;font-weight:900;letter-spacing:-.02em}.type{color:#697c8e;font-size:12px;font-weight:700}.badge{font-size:11px;font-weight:800;line-height:1;display:inline-block;padding:6px 9px;border-radius:50px;align-self:flex-start;background:#eaf1f9;color:#2a5c91}.badge.confirmed{background:#e6f4ee;color:var(--green)}.badge.expiry{background:#fff2d8;color:var(--amber)}.card .bottom{border-top:1px solid var(--line);padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto}.card .bottom a{font-size:12px;font-weight:750;text-decoration:none}.card .bottom a:hover{text-decoration:underline}.card .bottom small{font-size:11px;color:var(--muted)}.notice{background:#eef4fb;border:1px solid #d8e5f5;padding:15px 20px;border-radius:12px;margin-top:20px;color:#48627f;font-size:13px;line-height:1.8}.empty{grid-column:1/-1;background:white;border:1px dashed var(--line);border-radius:14px;padding:32px;color:var(--muted);text-align:center}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}.guide-grid details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.guide-grid summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;font-weight:800;font-size:14px;list-style:none}.guide-grid summary::-webkit-details-marker{display:none}.guide-grid summary span{font-size:20px;color:var(--blue)}.guide-grid details p{font-size:13px;line-height:1.9;color:#4d6076}.policy{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:22px 0}.policy>div{background:white;border:1px solid var(--line);border-radius:14px;padding:22px}.policy h3{font-size:15px;margin:0 0 10px}.policy p{font-size:13px;line-height:1.8;color:var(--muted);margin:0}.footnote{font-size:12px}footer{background:#152f50;color:white;margin-top:42px;padding:22px 0}footer .wrap{display:flex;justify-content:space-between;gap:15px;font-size:12px}footer span{color:#b6c8dc}@media(max-width:750px){.wrap{padding:0 16px}.nav{min-height:60px}.nav nav{gap:12px}.nav nav a{font-size:11px}.hero{grid-template-columns:1fr;padding:42px 0 30px}.hero-graphic{height:155px}.hero-graphic .ballot{transform:rotate(-9deg) scale(.65)}.bubble{right:6%;bottom:20px}.section{padding:32px 0}.section-head{display:block}.updated{margin-top:10px}.search-panel{grid-template-columns:1fr;gap:12px;padding:16px}.card-grid{grid-template-columns:1fr}.card{min-height:190px}.guide-grid{grid-template-columns:1fr}.policy{grid-template-columns:1fr}.controls{align-items:flex-start;flex-direction:column}.date{font-size:20px}footer .wrap{flex-direction:column}.nav nav a:last-child{display:none}}

/* 0.2: Historical-election status and politician profiles */
.badge.past{background:#ecf0f4;color:#5b6876}
.person-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}
.person-preview{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:12px;min-height:155px}
.person-preview:hover,.person-preview:focus-visible{border-color:#77acee;box-shadow:0 8px 25px #17447e12}
.person-preview strong{font-size:24px}.person-preview>span:last-child{font-size:13px;font-weight:700;color:var(--blue)}
.person-preview-label{color:var(--muted);font-size:12px;font-weight:750}
.person-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;margin-top:28px}
.person-main,.person-aside{min-width:0}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:18px}
.panel h2{font-size:19px;margin:0 0 16px}.person-name{font-size:clamp(30px,4vw,42px);margin:0 0 8px}
.person-brief{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.person-tag{font-size:12px;background:#eef4fb;border-radius:100px;padding:6px 10px;color:#3a5775;font-weight:700}
.fact-row{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}
.fact-row:last-child{border-bottom:0}.fact-row dt{color:var(--muted);font-weight:700}.fact-row dd{margin:0}
.link-list{list-style:none;margin:0;padding:0}.link-list li{padding:12px 0;border-bottom:1px solid var(--line)}.link-list li:last-child{border:0}
.link-list a{text-decoration:none;font-weight:750;font-size:14px}.link-list span{display:block;color:var(--muted);font-size:12px;margin-top:5px}
.disclosure-note{background:#f0f5fc;border-radius:12px;padding:16px;font-size:13px;color:#49617e;line-height:1.75}
.backlink{font-size:13px;font-weight:750;text-decoration:none}.analysis-pending{color:var(--muted);font-size:14px;line-height:1.75}
@media(max-width:750px){.person-preview-grid,.person-layout{grid-template-columns:1fr}.panel{padding:18px}.fact-row{grid-template-columns:1fr;gap:2px}}

/* v0.3: claim-level provenance and automated source checks */
.fact-value{line-height:1.65}
.fact-sources{margin-top:5px;font-size:12px;line-height:1.6;color:var(--muted)}
.fact-source-heading{font-weight:750;color:#52677f}
.fact-sources a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.fact-source-missing{color:#8b6b36}
.source-monitor-summary{font-size:12px;line-height:1.65;color:var(--muted);background:#f4f7fb;border-radius:9px;padding:10px 12px;margin:0 0 8px}
.source-status{display:block;color:var(--muted);font-size:11px;line-height:1.6;margin-top:5px}
@media(max-width:750px){.fact-sources{font-size:12px}}
