:is(button,a,input,textarea,select,[tabindex],[role="button"]):focus-visible {
  outline:3px solid #fff!important; outline-offset:3px; box-shadow:0 0 0 5px #182020;
}
.editable { text-decoration:underline dotted; text-underline-offset:4px; }
#polInfo { min-width:0; max-width:100%; }
#polBio { overflow-wrap:anywhere; }
input::placeholder,textarea::placeholder { color:#e3eae6; opacity:1; }
.portrait-edit-cue { position:absolute; bottom:6px; left:50%; transform:translateX(-50%); z-index:2; background:#17251fee; color:#fff; border:1px solid #fff9; border-radius:5px; padding:5px 9px; white-space:nowrap; font-size:13px; }
/* Generic button states must preserve the translation used for centering. */
.portrait-edit-cue:hover { transform:translate(-50%, -1px); background:#274c38; }
.portrait-edit-cue:active { transform:translate(-50%, 0); background:#274c38; }
.bio-edit-hint,.bio-review-date { font-size:14px; line-height:1.5; color:#fff; margin:12px 0; }
.bio-review-date button { background:none; border:0; padding:2px; color:inherit; text-decoration:underline; font:inherit; cursor:pointer; }
.action-feedback { position:fixed; bottom:16px; left:50%; transform:translateX(-50%); z-index:12000; width:min(560px,calc(100vw - 32px)); box-sizing:border-box; display:flex; align-items:center; gap:12px; background:#14221f; color:white; border:1px solid #c5d6cd; border-radius:9px; padding:14px; box-shadow:0 4px 24px #0008; }
.action-feedback button,.info-dialog button { flex-shrink:0; border:1px solid #a6bbae; border-radius:5px; padding:7px 12px; background:#274c38; color:#fff; cursor:pointer; }
.info-dialog { background:#1c2c24; color:#fff; border:1px solid #a6bbae; border-radius:12px; width:min(580px,calc(100vw - 48px)); max-height:80vh; padding:22px; box-sizing:border-box; line-height:1.5; }
.info-dialog::backdrop { background:#000a; }
.info-dialog h2 { margin:0 0 14px; font-size:22px; }
.info-dialog a { color:#bce8ff; text-decoration:underline; }
.submission-item { border-top:1px solid #ffffff40; margin:16px 0; padding:12px 0; }
.submission-item h3,.submission-item p { margin:5px 0; }
.buy-votes-link {background:none;border:0;padding:2px 4px;box-shadow:none;text-decoration:underline;font-size:13px;white-space:nowrap;}
.roster-tools {padding:8px 12px 12px;}
.roster-tools p {margin:0 0 8px;font-size:14px;line-height:1.4;}
.roster-tools input {width:100%;max-width:360px;box-sizing:border-box;}
.roster-tools input::placeholder {color:#595959;opacity:1;}
.row.search-hidden {display:none!important;}
.original-phrase {margin:8px 16px;font-size:14px;overflow-wrap:anywhere;}
.phrase-preview-hint {margin:8px 16px;font-size:14px;line-height:1.4;}
.preview-option-row {flex-wrap:wrap;}
.preview-option-row .optBtn {flex-shrink:0;}
button.phrase-preview-choice {flex:1;min-width:0;margin:0;padding:8px 4px;border:0;background:none;color:inherit;box-shadow:none;text-align:left;white-space:normal;overflow-wrap:anywhere;font-family:inherit;font-weight:inherit;text-transform:none;}
button.phrase-preview-choice:hover,button.phrase-preview-choice:active {background:#ffffff12;transform:none;box-shadow:none;}
.phrase-preview {flex-basis:100%;min-width:0;margin:8px 0 0;padding:10px 12px;background:#0003;border-left:3px solid #ffd54f;box-sizing:border-box;overflow-wrap:anywhere;}
.phrase-preview[hidden] {display:none;}
.phrase-preview p {margin:0;line-height:1.5;}
.phrase-preview .phrase-preview-label {font-size:12px;margin-bottom:5px;}
.phrase-preview mark {background:#ffd54f;color:#17251f;padding:0 2px;}

.phrase-preview-share {margin:10px 0 5px;padding:7px 10px;max-width:100%;white-space:normal;font-size:14px;}
.phrase-preview .phrase-preview-share-status {font-size:12px;}
.phrase-preview-copy-text {display:block;width:100%;max-width:100%;box-sizing:border-box;margin-top:8px;padding:8px;color:#fff;background:#17251f;border:1px solid #a6bbae;font:inherit;}
