:root {
	--kff-red: #990909;
	--kff-red-dark: #7d0707;
	--kff-border: #eadada;
	--kff-text: #222222;
	--kff-muted: #6b6b6b;
	--kff-bg-soft: #fff8f8;
	--kff-green: #16803a;
}
.kff-vote-root { max-width:680px; margin:22px auto; font-family:inherit; color:var(--kff-text); line-height:1.45; }
.kff-vote-root [hidden] { display:none !important; }
.kff-vote-root *, .kff-vote-root *::before, .kff-vote-root *::after { box-sizing:border-box; }
.kff-vote-card, .kff-vote-results { background:#fff; border:1px solid var(--kff-border); border-radius:12px; box-shadow:0 3px 14px rgba(0,0,0,.04); }
.kff-vote-main { padding:20px; text-align:center; border-top:4px solid var(--kff-red); }
.kff-vote-kicker { color:var(--kff-red); font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; margin-bottom:5px; }
.kff-vote-title { margin:0; font-size:clamp(24px,4vw,32px); line-height:1.2; color:var(--kff-text); }
.kff-vote-meta { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; margin:10px 0 14px; }
.kff-vote-meta span { display:inline-flex; align-items:center; padding:5px 10px; border:1px solid var(--kff-border); border-radius:999px; background:#fff; font-size:13px; font-weight:600; }
.kff-vote-status { padding:9px 12px; border-radius:8px; background:var(--kff-bg-soft); color:var(--kff-red-dark); font-weight:700; font-size:14px; }
.kff-vote-status.is-error { background:#fff4f4; color:#8f0000; }
.kff-vote-status.is-ended { display:flex; flex-direction:column; align-items:center; gap:2px; padding:12px; }
.kff-ended-main { font-size:15px; color:var(--kff-red-dark); }
.kff-ended-sub { color:#555; font-size:12px; font-weight:600; }
.kff-vote-question { font-size:18px; font-weight:700; margin:18px 0 3px; }
.kff-vote-help { margin:0 0 8px; color:var(--kff-muted); font-size:12px; font-weight:600; }
.kff-vote-countdown-wrap { display:flex; justify-content:center; align-items:baseline; gap:8px; margin-bottom:16px; color:var(--kff-muted); font-size:13px; }
.kff-vote-countdown { color:var(--kff-red); font-size:20px; font-variant-numeric:tabular-nums; letter-spacing:.03em; }
.kff-vote-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.kff-vote-option { appearance:none; -webkit-appearance:none; border:1px solid var(--kff-red); background:#fff; color:var(--kff-red); min-height:50px; border-radius:9px; font-size:19px; font-weight:800; cursor:pointer; transition:background .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease; }
.kff-vote-option:hover, .kff-vote-option:focus-visible { background:#fff5f5; color:var(--kff-red-dark); outline:none; }
.kff-vote-option:active { transform:scale(.98); }
.kff-vote-option.is-selected, .kff-vote-option.is-voted { background:var(--kff-red); color:#fff; box-shadow:0 2px 7px rgba(153,9,9,.18); }
.kff-vote-option.is-disabled, .kff-vote-option:disabled { cursor:not-allowed; opacity:.48; }
.kff-vote-option.is-voted.is-disabled { opacity:1; }
.kff-vote-actions { margin-top:13px; display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:9px 12px; }
.kff-vote-selected-count { color:var(--kff-muted); font-size:12px; font-weight:700; }
.kff-vote-save { appearance:none; -webkit-appearance:none; border:1px solid var(--kff-red); border-radius:8px; background:var(--kff-red); color:#fff; min-height:40px; padding:8px 22px; font-size:14px; font-weight:800; cursor:pointer; transition:background .15s ease,opacity .15s ease,transform .15s ease; }
.kff-vote-save:hover, .kff-vote-save:focus-visible { background:var(--kff-red-dark); outline:none; }
.kff-vote-save:active { transform:scale(.98); }
.kff-vote-save:disabled { cursor:not-allowed; opacity:.42; }
.kff-vote-message { min-height:24px; margin-top:11px; display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:5px 12px; font-size:13px; color:var(--kff-red-dark); font-weight:600; }
.kff-vote-saved { color:var(--kff-green); font-size:14px; font-weight:800; }
.kff-vote-after { color:#555; font-weight:600; }
.kff-vote-results { margin-top:14px; padding:16px; }
.kff-results-heading { margin:0 0 2px; font-size:18px; text-align:left; }
.kff-results-note { margin:0 0 12px; color:var(--kff-muted); font-size:11px; text-align:left; }
.kff-result-item { border:1px solid var(--kff-border); border-radius:9px; background:#fff; overflow:hidden; margin-top:9px; }
.kff-result-item:first-child { margin-top:0; }
.kff-result-item summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 13px; font-weight:800; color:var(--kff-text); background:#fff; }
.kff-result-item summary::-webkit-details-marker { display:none; }
.kff-result-item[open] summary { border-bottom:1px solid var(--kff-border); background:var(--kff-bg-soft); }
.kff-result-summary { color:var(--kff-red); font-size:12px; font-weight:700; text-align:right; }
.kff-result-body { padding:12px 13px 14px; }
.kff-result-close { color:var(--kff-muted); font-size:12px; margin-bottom:10px; text-align:left; }
.kff-bar-row { display:grid; grid-template-columns:24px minmax(0,1fr) 48px; align-items:center; gap:8px; margin:7px 0; }
.kff-bar-number { font-weight:800; text-align:center; color:var(--kff-red-dark); }
.kff-bar-track { height:10px; background:#f3e9e9; border-radius:999px; overflow:hidden; }
.kff-bar-fill { height:100%; min-width:0; background:var(--kff-red); border-radius:999px; transition:width .25s ease; }
.kff-bar-pct { text-align:right; font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; }
.kff-vote-note { margin:10px 4px 0; text-align:center; font-size:11px; color:var(--kff-muted); }
@media(max-width:480px) {
	.kff-vote-root { margin:16px auto; }
	.kff-vote-main { padding:16px 13px; }
	.kff-vote-options { gap:7px; }
	.kff-vote-option { min-height:47px; font-size:18px; }
	.kff-vote-actions { flex-direction:column; gap:7px; }
	.kff-vote-save { width:100%; }
	.kff-vote-message { flex-direction:column; gap:2px; }
	.kff-vote-results { padding:12px; }
	.kff-result-item summary { align-items:flex-start; flex-direction:column; gap:3px; }
	.kff-result-summary { text-align:left; }
}
@media(prefers-reduced-motion:reduce) { .kff-vote-option, .kff-vote-save, .kff-bar-fill { transition:none; } }
