/* 0.3.2 — Result, tiebreak and month effects are viewport-sized surfaces.
   The action dock never belongs to the reading flow. Continuous reading; the final layout layer fits columns and spacing.
   No text clipping, ellipsis or hidden scrollbar as a fix. */
.focus-shell .center-table{container-type:inline-size;container-name:stage}
.focus-shell .focus-stage{display:flex;flex-direction:column;overflow:hidden;gap:8px}
.focus-shell .phase-screen{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%;max-width:1100px;margin:0 auto;background:#f2eee2;color:#2b4034;border:1px solid #dfd9c9;border-radius:12px;overflow:hidden;box-shadow:0 3px 0 #999f8c,0 6px 0 #364b3d,0 15px 24px #0002}
.phase-head{flex:0 0 auto;padding:19px 24px 16px;border-bottom:1px solid #314e3820;display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(130deg,#f9f5eb,#eeecdf)}
.phase-head>div{min-width:0}
.phase-head .eyebrow{color:#68795c;display:flex;gap:7px;align-items:center;font-size:10px;letter-spacing:1.1px;line-height:1.4;margin:0}
.phase-head .eyebrow .icon{width:15px;height:15px}
.focus-shell .phase-head h2{font:400 clamp(28px,2.7vw,38px)/1.12 var(--serif);color:#243b30;margin:7px 0 0;letter-spacing:-.4px;overflow-wrap:anywhere}
.phase-caption{font-size:12px;line-height:1.5;text-align:right;flex:0 1 170px;color:#657258;min-width:0}
.phase-content{position:relative;flex:1;min-height:0;min-width:0;overflow:hidden;padding:20px 24px}
.reader-natural{min-width:0;width:100%}
.phase-screen .reader-natural{display:flex;flex-direction:column;gap:16px}
.phase-screen .resolution-layout,.phase-screen .tie-layout,.phase-screen .end-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px;align-items:start}
.report-main,.report-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.report-side{padding-left:22px;border-left:1px solid #62735733}
.read-block{min-width:0;margin:0;flex-shrink:0;overflow-wrap:anywhere}
.report-label{font-size:10px;line-height:1.45;letter-spacing:1px;color:#617357;margin:0 0 8px;font-weight:600}
.focus-shell .phase-screen .chosen-quote{background:#fffaf2;border:1px solid #627d502b;border-left:4px solid #678462;border-radius:7px;padding:14px 16px;font-size:20px;line-height:1.45;margin:0;color:#2d4938}
.focus-shell .phase-screen .result-narrative,.phase-explanation{font-size:18px;line-height:1.55;color:#475940;margin:0}
.focus-shell .phase-screen .effect-chips{margin:0;gap:8px;justify-content:flex-start}
.focus-shell .phase-screen .effect-chip{font-size:14px;line-height:1.35;padding:8px 10px;border:1px solid #4e694527;background:#e0e8d5;color:#314c35;white-space:normal}
.focus-shell .phase-screen .effect-chip.negative{background:#f2e0d4;color:#863f32;border-color:#b9613830}
.focus-shell .phase-screen .effect-chip strong{margin-left:4px;font-size:17px}
.focus-shell .phase-screen .scheduled-note{margin:0;padding:12px 14px;background:#e5dcc32e;border:1px dashed #a0834150;gap:10px;font-size:14px;line-height:1.55;color:#60553b}
.focus-shell .phase-screen .scheduled-note>.icon{width:18px;height:18px;flex-shrink:0}
.focus-shell .phase-screen .tally{margin:0;gap:6px;align-items:stretch}
.focus-shell .phase-screen .tally-cell{padding:10px 3px;min-width:0;border-radius:7px;border:1px solid #485f442a;background:#f9f6ed;color:#465c40;font-size:14px}
.focus-shell .phase-screen .tally-cell strong{font:400 32px/1.12 var(--serif);color:inherit;margin:4px 0}
.focus-shell .phase-screen .tally-cell>span{font-size:10px;line-height:1.25;color:inherit}
.focus-shell .phase-screen .tally-cell.winner{background:#335c46;color:#fff9eb;border-color:#335c46;box-shadow:0 2px 0 #163c2a}
.focus-shell .phase-screen .blank-tally{border:1px dashed #7c88766b;background:transparent}
.focus-shell .phase-screen .vote-ledger{background:transparent;margin:0;padding:0;border:0;border-radius:0;color:#344f3d}
.focus-shell .phase-screen .vote-ledger-title,.focus-shell .phase-screen .public-votes b{color:#2f5540}
.focus-shell .phase-screen .vote-ledger-title strong{font-size:13px}
.focus-shell .phase-screen .vote-ledger p{color:#62725c;font-size:13px;line-height:1.55;margin:8px 0 0}
.focus-shell .phase-screen .public-votes{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.focus-shell .phase-screen .public-votes>span{border:1px solid #7b906541;background:#ffffff70;border-radius:6px;min-width:0;padding:7px 9px;display:flex;gap:9px;align-items:center}
.focus-shell .phase-screen .public-votes i{color:#3e5441;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.focus-shell .phase-screen .public-votes b{font-size:15px;white-space:nowrap}
.tie-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0}
.focus-shell .phase-screen .tie-option{font-size:18px;line-height:1.45;padding:13px;min-height:74px;background:#fffaf1;border-color:#83947160;color:#2d4734;display:flex;align-items:center;text-align:left}
.focus-shell .phase-screen .tie-option:hover:not(:disabled){background:#e6eddf;border-color:#456d49}
.focus-shell .phase-screen .tie-option:focus-visible{outline:3px solid #577952;outline-offset:-3px}
.focus-shell .phase-screen .tie-option:disabled{opacity:1;background:#eeeade;color:#56644d;cursor:default}
.focus-shell .phase-screen .tie-option .option-letter{border-color:#6e896a50;background:#e6ecdb;color:#375641;font-size:18px;min-width:30px;width:30px;height:30px}
.phase-dock{flex:0 0 auto;min-width:0;background:#e5e8da;border-top:1px solid #65765338;padding:11px 20px 13px}
.phase-dock-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;min-height:44px}
.phase-dock-actions:empty{display:none}
.phase-dock .dock-help{margin-right:auto;max-width:65%;font-size:12px;line-height:1.45;color:#667259;display:flex;align-items:center;gap:6px;overflow-wrap:anywhere}
.phase-dock .dock-help .icon{width:15px;height:15px;flex-shrink:0}
.phase-dock .btn{font-size:15px;min-height:44px;white-space:normal;border-color:#647a5745;color:#39563b}
.phase-dock .btn.primary{background:#345940;color:#fffbee;border-color:#345940;box-shadow:0 2px 0 #173823;min-width:170px}
.phase-dock .btn.primary:hover{background:#274b34}
.phase-dock .phase-waiting{font-size:14px;color:#456145;text-align:left;margin:0;padding:0;justify-content:flex-end}
.focus-shell .notice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.focus-shell .phase-screen .notice-card{padding:18px;margin:0;background:#fffaf1;border-radius:8px;border:1px solid #3f5d342e;border-top:4px solid var(--cat);min-width:0}
.focus-shell .phase-screen .notice-card .eyebrow{font-size:10px;color:#66775a;display:flex;gap:6px;align-items:center;line-height:1.5}
.focus-shell .phase-screen .notice-card h3{font:400 27px/1.18 var(--serif);color:#2c4935;margin:9px 0 10px}
.focus-shell .phase-screen .notice-card p{font-size:18px;line-height:1.5;margin:0 0 14px;color:#465c40}
.notice-source{font-size:12px;color:#718165;line-height:1.45;margin-top:12px}
.end-score-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.focus-shell .end-score-grid .metric{padding:14px;box-shadow:none;background:#fffaf1;border:1px solid #647c472e}
.focus-shell .end-score-grid .metric-name{font-size:12px;gap:4px}
.focus-shell .end-score-grid .metric-name .icon{width:13px;height:13px}
.focus-shell .end-score-grid .metric-value{font-size:30px}
.focus-shell .end-score-grid .track{display:none}
.focus-shell .end-score-grid .metric-foot{font-size:8px;letter-spacing:.1px;flex-wrap:wrap}
.year-reflection{padding-top:8px;border-top:1px solid #546f4030}
.year-reflection h3{font:400 25px/1.25 var(--serif);margin:10px 0;color:#355136}
.year-reflection p{font-size:16px;line-height:1.55;margin:0 0 12px}
.year-reflection .btn{color:#395a3c;border-color:#6b865452;font-size:13px;min-height:40px}
/* Category stage remains the familiar four card backs, not an endless column. */
.focus-shell .category-screen{background:transparent;color:#e5dfc7;border:0;box-shadow:none}
.category-screen .phase-head{background:transparent;border:0;justify-content:center;text-align:center;padding:6px 12px 14px}
.category-screen .phase-head .eyebrow{justify-content:center;color:#c4b787}
.focus-shell .category-screen .phase-head h2{color:#eee4c9}
.category-screen .phase-content{padding:3px 16px 12px}
.focus-shell .category-screen .decks-grid{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:790px;margin:0 auto;padding:8px 16px 14px;gap:18px}
.focus-shell .category-screen .deck-choice{min-height:135px;padding:18px 15px}
.category-screen .phase-dock{border:0;background:transparent;padding:4px 10px 0}
.category-screen .phase-dock-actions{min-height:26px;justify-content:center}
.category-screen .phase-dock .dock-help{color:#b7c3a8;margin:0;max-width:100%;font-size:13px;text-align:center}
.physical-ready-layout .field{color:#456041;font-size:14px;margin:0}
.physical-ready-layout .field input,.physical-ready-layout .field select{color:#284a33;background:#fffcf5;border:1px solid #687e5260;min-height:44px;font-size:16px}
.physical-ready-layout .physical-vote-settings{gap:15px;margin-top:15px}
.physical-ready-layout .rules-note{color:#637556;background:#dee6cf55;border-color:#6d845339;font-size:14px}
@container stage (max-width:850px){
 .phase-screen .resolution-layout,.phase-screen .tie-layout,.phase-screen .end-layout{grid-template-columns:minmax(0,1fr) 240px;gap:18px}
 .report-side{padding-left:16px}
 .phase-caption{font-size:11px;flex-basis:120px}
}
@container stage (max-width:670px){
 .phase-screen .resolution-layout,.phase-screen .tie-layout,.phase-screen .end-layout{grid-template-columns:1fr;gap:15px}
 .report-side{border:0;padding:0;gap:12px}
 .phase-head{padding:14px 16px 12px;gap:10px}
 .phase-head h2{font-size:29px}
 .phase-caption{display:none}
 .phase-content{padding:14px 16px}
 .tie-options{grid-template-columns:1fr}
 .focus-shell .phase-screen .tie-option{font-size:17px;min-height:59px;padding:11px}
 .focus-shell .phase-screen .tally-cell{padding:6px 3px}
 .focus-shell .phase-screen .tally-cell strong{font-size:27px}
 .focus-shell .phase-screen .chosen-quote{font-size:18px;padding:11px 13px}
 .focus-shell .phase-screen .result-narrative,.phase-explanation{font-size:17px;line-height:1.5}
 .phase-dock{padding:9px 14px 11px}
 .phase-dock-actions{gap:8px;flex-wrap:wrap}
 .phase-dock-actions .dock-help{max-width:100%;flex:1 1 100%;font-size:11px}
 .phase-dock .btn{font-size:14px}
 .phase-dock .phase-continue{width:100%}
 .focus-shell .phase-screen .effect-chip{font-size:13px;padding:6px 8px}
 .focus-shell .notice-grid{grid-template-columns:1fr}
 .focus-shell .category-screen .decks-grid{padding:5px 6px 12px;gap:17px}
 .focus-shell .category-screen .deck-choice{padding:14px 8px;min-height:139px}
 .focus-shell .category-screen .deck-choice h3{font-size:27px}
 .focus-shell .category-screen .deck-choice>.icon{width:23px;height:23px}
 .focus-shell .category-screen .deck-choice small{font-size:8px}
 .category-screen .phase-head h2{font-size:29px}
 .phase-screen .public-votes{gap:6px}
}
@media(max-height:760px){
 .phase-head{padding-top:12px;padding-bottom:11px}
 .focus-shell .phase-head h2{font-size:30px}
 .phase-content{padding-top:13px;padding-bottom:13px}
 .phase-dock{padding-top:8px;padding-bottom:9px}
 .report-main{gap:12px}
 .focus-shell .phase-screen .chosen-quote{font-size:18px;line-height:1.45;padding:11px 13px}
 .focus-shell .phase-screen .result-narrative,.phase-explanation{font-size:17px;line-height:1.5}
 .focus-shell .phase-screen .tally-cell{padding:7px 3px}
 .focus-shell .phase-screen .tally-cell strong{font-size:27px}
 .focus-shell .phase-screen .tie-option{font-size:17px;min-height:64px;padding:10px}
 .focus-shell .category-screen .deck-choice{min-height:120px;padding:12px}
 .focus-shell .category-screen .decks-grid{gap:15px}
 .focus-shell .category-screen .deck-choice h3{font-size:27px}
}
@media(max-width:850px){
 .phase-head .eyebrow{font-size:9px;letter-spacing:.7px}
 .focus-shell .phase-head h2{font-size:29px;line-height:1.15}
 .phase-dock .btn{min-height:44px}
 .focus-shell .phase-screen .public-votes>span{font-size:12px;padding:6px 8px}
 .focus-shell .phase-screen .public-votes i{font-size:12px}
 .focus-shell .phase-screen .effect-chips{gap:6px}
 .focus-shell .phase-screen .scheduled-note{font-size:13px;padding:10px 11px}
 .focus-shell .phase-screen .notice-card{padding:14px}
 .focus-shell .phase-screen .notice-card p{font-size:17px}
 .phase-screen .end-score-grid{gap:9px}
 .phase-dock .btn.primary{min-width:130px}
}
@media(max-height:480px){
 .phase-head{padding:8px 14px}
 .focus-shell .phase-head h2{font-size:26px;margin-top:4px}
 .phase-head .eyebrow{font-size:9px}
 .phase-content{padding:8px 14px}
 .phase-dock{padding:6px 12px}
 .phase-dock-actions{min-height:38px;flex-wrap:nowrap}
 .phase-dock .dock-help{display:none}
 .phase-dock .btn{min-height:36px;padding:6px 9px;font-size:13px}
 .phase-head .phase-caption{display:none}
 .focus-shell .category-screen .decks-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:5px 8px}
 .focus-shell .category-screen .deck-choice{min-height:110px;padding:10px 5px}
 .focus-shell .category-screen .deck-choice h3{font-size:22px;margin:10px 0}
 .focus-shell .category-screen .deck-choice .card-count{font-size:7px}
}
@media(prefers-reduced-motion:reduce){.phase-screen *{scroll-behavior:auto!important}}

.physical-ready-form{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;margin:0}
.focus-shell .physical-ballot{flex:1;min-height:0;overflow:hidden}
.physical-ballot .reader-natural .physical-options{height:215px;min-height:160px;max-height:28vh}
@media(max-width:850px){.physical-ready-layout .physical-vote-settings{grid-template-columns:1fr;gap:14px}.physical-ballot .reader-natural .physical-options{height:200px}}
/* Revealed effects stay still while reading or changing pages; card draw keeps its animation. */
.focus-shell .phase-screen .notice-card{animation:none}
