:root{color-scheme:light;--ink:#142c46;--muted:#53677d;--line:#dce5ef;--blue:#145cc5;--paper:#f3f6fb;--accent:#007e77}*{box-sizing:border-box}body{margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--paper)}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 5%;background:white;border-bottom:1px solid var(--line)}a{color:var(--blue)}.brand{text-decoration:none;color:var(--ink);font-weight:750;font-size:20px}.brand span{display:inline-block;font-size:12px;letter-spacing:.08em;margin-left:15px;font-weight:500}.privacy{font-size:13px;color:var(--muted)}main{max-width:1400px;margin:auto;padding:0 4%}.intro{padding:32px 0 20px}.eyebrow{color:var(--accent);font-size:12px;font-weight:750;letter-spacing:.13em;margin:0 0 10px}h1{font-size:clamp(32px,4vw,50px);letter-spacing:-.04em;line-height:1.1;margin:0 0 15px}h1 span{color:var(--accent)}h2{font-size:23px;line-height:1.3;margin:0 0 15px}p{margin:0 0 15px}section{margin-bottom:28px}.setup{display:grid;grid-template-columns:1fr 1.1fr;gap:22px}.card{background:white;padding:25px;border:1px solid var(--line);border-radius:13px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 14px}button,.button{font:inherit;font-size:14px;padding:10px 14px;border:1px solid #bdcde0;border-radius:7px;background:#fff;color:var(--ink);cursor:pointer;display:inline-block;text-decoration:none}button:hover,.button:hover{background:#eaf1fb}.primary{background:var(--blue);color:white;border-color:var(--blue)}.primary:hover{background:#114a9b}label{display:block;font-size:14px;font-weight:600}label.button{font-weight:400}select,input[type=number]{display:block;width:100%;padding:10px 12px;background:white;color:var(--ink);border:1px solid #b7c9de;border-radius:6px;font:inherit;margin-top:6px}input[type=range]{width:100%;accent-color:var(--blue)}select:disabled,input:disabled{background:#eef2f6;color:#576b82}.controls{display:grid;grid-template-columns:1.2fr .8fr;gap:15px}.controls [hidden]{display:none}.explanation{font-size:14px;line-height:1.6;margin:14px 0;color:var(--muted)}.small{font-size:13px;color:var(--muted);line-height:1.6}details{font-size:14px}summary{cursor:pointer;color:var(--blue);padding:8px 0}details p{margin-top:10px}.error{background:#fff0ee;color:#8c231a;border:1px solid #efb9b3;border-radius:7px;padding:15px 20px;margin:15px 0}.notice{background:#fff8e6;border:1px solid #e5cf94;padding:15px;margin:15px 0;font-size:14px}.notice p:last-child{margin:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.metrics>div{border-top:3px solid #1760b7;padding:15px;background:white}.metrics span{display:block;font-size:13px;color:var(--muted)}.metrics strong{font-size:30px;font-weight:650;display:block;margin-top:4px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.section-heading h2{margin-bottom:0}.table-scroll{overflow:auto;margin:15px 0}table{border-collapse:collapse;width:100%;font-size:14px;background:white}th,td{padding:12px 13px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th{background:#eaf0f8;color:#2c4867;font-weight:600}th:first-child,td:first-child{text-align:left}caption{caption-side:bottom;font-size:12px;color:var(--muted);text-align:left;padding:9px}.chamber{display:flex;flex-wrap:wrap;gap:5px;background:white;padding:22px;border:1px solid var(--line);border-radius:10px;min-height:60px}.seat{width:15px;height:15px;border-radius:3px;display:inline-block}.share{height:28px;min-width:0;display:block}.chamber.fractional{flex-wrap:nowrap;gap:0}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:14px;margin:12px 0}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:7px}.walkthrough input{margin:15px 0}output{float:right}.references{font-size:15px;border-top:1px solid var(--line);padding-top:25px}.references li{margin:8px 0}footer{padding:25px 5%;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}:focus-visible{outline:3px solid #008a80;outline-offset:3px}[hidden]{display:none!important}#steps td:last-child{text-align:left;white-space:normal;min-width:200px}.muted{color:#60748a}.current{background:#e5f5f0}.actions input:focus-visible{display:block}@media(max-width:850px){.setup{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}header .privacy{display:none}.brand span{display:block;margin:4px 0 0}.card{padding:20px}.section-heading{align-items:flex-start}.section-heading button{flex-shrink:0}}@media(max-width:500px){main{padding:0 4%}.controls{grid-template-columns:1fr}.metrics strong{font-size:25px}.section-heading{flex-direction:column;gap:12px}.seat{width:11px;height:11px}.chamber{padding:14px;gap:3px}h2{font-size:21px}}@media print{header,.setup,button,.actions,.walkthrough{display:none}body{background:white}main{max-width:none;padding:0}.table-scroll{overflow:visible}.metrics{grid-template-columns:repeat(4,1fr)}a{color:inherit}}

/* Every grid item can shrink; wide tables scroll locally instead of widening the page. */
html,body{max-width:100%;width:100%}main,section,.card,.setup>*,.controls>*,.metrics>*,.lab-controls>*,.rules-grid>*{min-width:0}main{width:100%}select,input,button,.button{max-width:100%}select{min-width:0;text-overflow:ellipsis}input,select{font-size:16px!important}.setup{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.table-scroll{max-width:100%;overscroll-behavior-x:contain}.lab-controls,.rules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.rules-grid article{border-top:3px solid var(--accent);padding-top:12px}.rules-grid h3{font-size:18px}.lab-controls input[type=range]{min-height:32px}.quotient-key span{padding:5px 8px;border:1px solid #b6c4d1;border-radius:4px}.won{background:#d8f0e8;color:#075746}.last-seat{background:#155eb3;color:white}.near{background:#fff0c0;color:#734a00}.excluded{background:#f9e1e1;color:#923030}.quotient-scroll{border:1px solid var(--line);border-radius:8px}.quotient-scroll th:first-child{position:sticky;left:0;z-index:1;min-width:140px;max-width:180px;white-space:normal;background:#eaf0f8}.quotient-scroll tbody th:first-child{background:#fff}.quotient-scroll td{min-width:105px}.quotient-scroll td input{width:120px;margin:0}.quotient-scroll small{display:block;font-size:11px}.quotient-scroll .last-seat{outline:2px solid #06387d;outline-offset:-2px}#cutoff{font-weight:600}button,.button{min-height:44px}h3{line-height:1.3}.rules-grid a{overflow-wrap:anywhere}@media(max-width:850px){.setup,.rules-grid{grid-template-columns:minmax(0,1fr)}.lab-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lab-controls>:first-child{grid-column:1/-1}}@media(max-width:500px){.card{padding:16px}header{padding:14px 4%}.lab-controls{grid-template-columns:minmax(0,1fr)}.actions>button,.actions>.button{flex:1 1 140px}.metrics{gap:8px}.metrics>div{padding:10px}.quotient-scroll th:first-child{min-width:105px;max-width:120px}.quotient-scroll th,.quotient-scroll td{padding:9px}.intro{padding-top:24px}}

.example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.example-card{min-width:0;background:white;border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:8px}.example-card h3{font-size:20px;margin:0}.example-card p{margin:0}.example-card button{margin-top:auto;align-self:flex-start}.example-card.selected{border:2px solid var(--accent);padding:19px}.example-meta{font-size:13px;color:var(--muted)}.example-label{font-size:11px;letter-spacing:.07em;color:var(--accent);font-weight:700}.secondary-examples{border-top:1px solid var(--line);padding-top:22px}.secondary-examples .example-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.real-reference{border-left:5px solid var(--accent)}.real-reference a{overflow-wrap:anywhere}.real-reference ul{padding-left:20px}.real-reference li{margin:8px 0}.real-reference details{margin-top:14px}@media(max-width:850px){.example-grid{grid-template-columns:minmax(0,1fr)}.example-card{padding:18px}.example-card.selected{padding:17px}}@media(max-width:600px){.secondary-examples .example-grid{grid-template-columns:minmax(0,1fr)}.example-card button{width:100%}}
.example-filters{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}.example-filters label{display:grid;gap:8px;font-weight:650}.example-filters select{width:100%;min-width:0}.example-region{font-size:.85rem;font-weight:650;color:#526574;margin:0 0 8px}@media(max-width:650px){.example-filters{grid-template-columns:1fr}}

.lab-controls{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:850px){.lab-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.lab-controls{grid-template-columns:minmax(0,1fr)}}
.section-heading:has(#downloadSimulation){margin-bottom:20px}
.remove-party{display:block;margin-top:7px;font-size:12px;padding:4px 8px;color:#923030}.party-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin:16px 0}.party-form input[type=text]{display:block;width:100%;padding:10px 12px;border:1px solid #b7c9de;border-radius:6px;font:inherit;margin-top:6px}.party-form>*{min-width:0}@media(max-width:650px){.party-form{grid-template-columns:1fr}.party-form button{width:100%}}
