/* Identity overview and day disclosures; all rules stay inside the finished screen. */
#finished{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-padding-block:12px 100px}
#finished .night-recap{flex:none;min-height:auto;overflow:visible}
html.wolfcue-glass #finished .final-identities{padding:12px 6px 8px;margin:0 0 16px;border:1px solid var(--v-line);border-radius:22px;background:var(--v-sheen),rgb(13 32 46 / .78);box-shadow:var(--v-edge);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
#finished .final-identities>.recap-section-title{display:flex;align-items:center;gap:12px;min-height:44px;margin:0 4px;cursor:default}
#finished .final-identities>h4{margin:12px 4px 8px;font-size:14px;line-height:1.5}
#finished .final-identity-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
html.wolfcue-glass #finished .final-identity-card{position:relative;display:block;height:clamp(172px,43vw,252px);min-height:172px;padding:0;overflow:hidden;isolation:isolate}
html.wolfcue-glass #finished .final-identity-card::before{content:'';position:absolute;inset:-8px;background-image:var(--identity-art);background-size:cover;background-position:center;filter:blur(6px) brightness(.74) saturate(.85);pointer-events:none;z-index:-1}
html.wolfcue-glass #finished .final-identity-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgb(6 19 30 / .74),transparent 36%,transparent 80%,rgb(6 19 30 / .25)),linear-gradient(to right,rgb(6 19 30 / .65),transparent 35%);pointer-events:none;z-index:1}
html.wolfcue-glass #finished .final-identity-card>.recap-image{position:absolute;inset:0;align-self:auto;width:100%;height:100%;margin:0;display:block;mask-image:radial-gradient(ellipse 85% 80% at 58% 52%,#000 40%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 85% 80% at 58% 52%,#000 40%,transparent 100%);pointer-events:none;z-index:0}
#finished .final-identity-card .recap-fused-art{width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto}
#finished .final-identity-card .recap-person{display:contents;text-align:left}
#finished .identity-number{position:absolute;z-index:2;top:5px;left:5px;width:23px;height:23px;display:grid;place-items:center;border:1px solid var(--v-line);border-radius:50%;background:rgb(18 42 59 / .82);color:var(--v-ink);font-size:12px;line-height:1;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 rgb(244 248 249 / .18)}
#finished .identity-name{position:absolute;z-index:2;top:35px;left:5px;max-height:calc(100% - 40px);writing-mode:vertical-rl;text-orientation:upright;font-size:clamp(11px,2.8vw,15px);font-weight:650;line-height:1.4;letter-spacing:.025em;text-shadow:0 1px 3px #071923,0 0 5px #071923}
#finished .identity-status{position:absolute;z-index:2;top:7px;left:30px;right:3px;color:var(--v-ink);font-size:clamp(12px,2.8vw,13px);line-height:1.4;text-align:center;overflow-wrap:anywhere;text-shadow:0 1px 3px #071923}
#finished .identity-original{position:absolute;z-index:2;left:24px;right:4px;bottom:5px;color:var(--v-ink);font-size:10.5px;line-height:1.4;text-align:right;overflow-wrap:anywhere;text-shadow:0 1px 3px #071923}
html.wolfcue-glass #finished .final-identity-card.is-dead{background:linear-gradient(rgb(4 13 21 / .4),rgb(4 13 21 / .4)),var(--v-sheen),rgb(20 44 60 / .65);border-color:rgb(178 219 229 / .22)}
#finished .final-identity-card.is-dead>.recap-image{filter:brightness(.52) saturate(.3)}
html.wolfcue-glass #finished .final-identity-card.is-dead::before{filter:blur(6px) brightness(.38) saturate(.2)}
html.wolfcue-glass #finished .recap-window{display:flex;flex-direction:column;height:min(680px,calc(var(--app-height,100dvh) * .78),calc(var(--app-height,100dvh) - 112px));min-height:min(300px,calc(var(--app-height,100dvh) - 112px));min-width:0;margin:0 0 12px;border:1px solid rgb(178 219 229 / .3);border-radius:22px;background:linear-gradient(135deg,rgb(178 219 229 / .055),transparent 45%),rgb(13 32 46 / .86);box-shadow:inset 0 1px 0 rgb(244 248 249 / .23),0 12px 30px rgb(4 19 31 / .2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);overflow:hidden;isolation:isolate}
#finished .recap-window-header{flex:none;min-width:0;padding:14px 14px 0;background:linear-gradient(120deg,rgb(178 219 229 / .06),transparent);border-bottom:1px solid rgb(178 219 229 / .18)}
#finished .recap-window .recap-title{display:flex;align-items:center;gap:9px;margin:0 0 8px;font-size:17px;font-weight:650;letter-spacing:.04em;color:var(--v-ink);line-height:1.5}
#finished .recap-window .recap-title::before{content:'';width:3px;height:16px;border-radius:3px;background:var(--v-blue);box-shadow:0 0 10px rgb(178 219 229 / .2)}
#finished .recap-day-tabs{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:0 0 8px;touch-action:pan-x pinch-zoom;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--v-line) transparent}
#finished .recap-day-tabs[hidden]{display:none}
html.wolfcue-glass #finished .recap-day-tab{position:relative;flex:none;min-width:76px;min-height:44px;padding:8px 12px;border-radius:11px;white-space:nowrap;font-size:14px;line-height:1.5;background:transparent;box-shadow:none;color:var(--v-muted);border:1px solid transparent;backdrop-filter:none;-webkit-backdrop-filter:none;text-shadow:none}
html.wolfcue-glass #finished .recap-day-tab[aria-selected=true]{background:linear-gradient(180deg,rgb(178 219 229 / .025),rgb(178 219 229 / .11));border-color:transparent;color:var(--v-ink);box-shadow:none}
#finished .recap-day-tab[aria-selected=true]::after{content:'';position:absolute;height:2px;left:13px;right:13px;bottom:0;border-radius:2px;background:var(--v-blue);pointer-events:none}
#finished :is(.recap-day-tab,.recap-days):focus-visible{outline:2px solid var(--v-ink);outline-offset:-3px}
#finished .recap-days{flex:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--v-line) transparent}
#finished .recap-day{min-width:0;padding-top:12px}
#finished .recap-day[hidden]{display:none}
#finished .recap-day-body{padding:0 10px 12px}
#finished .recap-day .recap-segment{margin-bottom:16px}
html.wolfcue-glass #finished .recap-day .event-card{border-color:rgb(178 219 229 / .27);box-shadow:inset 0 1px 0 rgb(244 248 249 / .17);background:linear-gradient(135deg,rgb(178 219 229 / .045),transparent),rgb(20 44 60 / .5)}
html.wolfcue-glass #finished .recap-day .night-result{border:0;border-bottom:1px solid rgb(178 219 229 / .16);border-radius:0;background:transparent;box-shadow:none;padding:10px 0 14px;margin:0 2px 12px}
#finished .recap-day-body>.recap-segment:last-child{margin-bottom:0}
#finished .recap-day-body>.recap-segment:last-child::before{bottom:20px}
#finished .recap-empty{padding:16px;color:var(--v-muted)}
/* Scope the modern ballot palette to recap only; election/editor rules stay unchanged. */
#finished :is(.vote-records,.vote-result){--ink:var(--v-ink);--muted:var(--v-muted);--gold:var(--v-blue);--purple:rgb(18 42 59 / .65);--line:var(--v-line);color:var(--v-ink)}
html.wolfcue-glass #finished .vote-records{border:0;border-top:1px solid rgb(178 219 229 / .18);border-radius:12px;background:rgb(20 44 60 / .25);box-shadow:none;padding:5px 10px 10px}
#finished .vote-records>details{padding:0;border:0;background:transparent}
#finished .vote-records :is(summary,h4,strong){color:var(--v-ink)}
#finished .vote-records .vote-result{border:0;background:transparent;padding:6px 0;color:var(--v-ink)}
#finished .vote-records .vote-result-heading{color:var(--v-muted)}
#finished .vote-records .vote-result-candidate{border-color:var(--v-line);background:rgb(21 46 62 / .42)}
#finished .vote-records .vote-highest{border-color:var(--v-blue);background:linear-gradient(135deg,rgb(178 219 229 / .13),transparent),rgb(34 70 88 / .65)}
#finished .vote-records :is(.vote-result-people,.vote-result-abstain,.vote-people){color:var(--v-muted)}
#finished .vote-records summary{min-height:44px;cursor:pointer;touch-action:manipulation}
#finished .vote-records summary:focus-visible{outline:2px solid var(--v-ink);outline-offset:2px;border-radius:6px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){html.wolfcue-glass #finished .recap-window,html.wolfcue-glass #finished .vote-records{background-color:rgb(18 42 59 / .96)}}
@media(max-width:360px){#finished .final-identity-grid{gap:4px}#finished .identity-number{left:4px;top:5px;width:21px;height:21px;font-size:11px}#finished .identity-status{left:26px;right:2px}#finished .identity-name{left:4px}#finished .recap-day-body{padding:0 5px 10px}}

/* Current recap: all identities on the page, complete history in its own dialog. */
#finished .recap-open{display:block;width:100%;min-height:56px;margin:14px 0 18px;text-align:left;padding-inline:20px}
#finished .recap-open::after{content:'›';float:right;font-size:24px;line-height:1}
#finished .recap-dialog{width:min(960px,calc(100vw - 20px));max-width:none;height:min(880px,calc(var(--app-height,100dvh) - 32px));max-height:calc(100dvh - 20px);padding:0;overflow:hidden;border-radius:24px}
#finished .recap-dialog[open]{display:flex;flex-direction:column}
html.wolfcue-glass #finished .recap-dialog .recap-window{width:100%;height:100%;min-height:0;flex:1;margin:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
#finished .recap-dialog .recap-close{float:right;min-width:44px;min-height:44px;padding:4px 10px;margin:0 0 8px 8px;line-height:1;font-size:24px}
#finished section.final-identities>.recap-section-title{margin-top:0;cursor:default}
#finished .akw-helper-list,#finished .akw-recap-ballots{grid-column:1/-1;position:relative;margin:0;padding:7px 8px;color:var(--v-muted);font-size:12px;line-height:1.7}
#finished .akw-recap-ballots{display:flex;flex-wrap:wrap;gap:4px 14px;border-top:1px solid var(--v-line)}
.akw-recap-ballots .agree,.akw-recap-ballots .disagree{color:#B2DBE5}
#akwBallotDialog [data-voters]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}
#akwBallotDialog [data-voters] button{min-height:52px;padding:8px 4px;font-size:14px}
#akwBallotDialog .akw-opinion.agree{color:#DDF4F5}#akwBallotDialog .akw-opinion.disagree{color:#F6C3CC}
