:root{
  --bg:#0b1220; --panel:#111a29; --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.05);
  --text:#e8eef7; --muted:#90a4bf; --shadow:0 18px 50px rgba(0,0,0,.34);
  --good:#22c55e; --warn:#f59e0b; --bad:#ef4444;
}
*{box-sizing:border-box} html,body{margin:0;padding:0}
body{font-family:Inter,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at top, rgba(76,201,255,.08), transparent 28%), linear-gradient(180deg,#08101c 0%,#101826 100%);min-height:100vh}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
.app-shell{max-width:1360px;margin:0 auto;padding:14px 10px 22px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.brand{display:flex;align-items:center;gap:12px;background:rgba(17,26,41,.95);border:1px solid var(--line);border-radius:20px;padding:12px 14px;box-shadow:var(--shadow)}
.brand-badge{width:40px;height:40px;border-radius:12px;background:linear-gradient(180deg,#31c6ff,#169ef5);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:white}
.brand-badge.big{width:58px;height:58px;font-size:28px;margin:0 auto 12px}
.brand h1{margin:0;font-size:22px;letter-spacing:-.03em}
.brand-sub{margin-top:2px;color:var(--muted);font-size:12px}
.top-actions,.toolbar,.actions-mini,.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.btn{border:none;cursor:pointer;border-radius:12px;padding:11px 14px;font-weight:800;color:white;background:linear-gradient(180deg,#35beff,#169ef5);display:inline-block}
.btn.good{background:linear-gradient(180deg,#22c55e,#16a34a)}
.btn-light{background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--text)}
.btn-sm{padding:8px 10px;font-size:13px;border-radius:10px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.stat-card,.panel,.summary-card,.question-box{background:rgba(17,26,41,.95);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.stat-card{padding:14px}
.stat-label{font-size:12px;color:var(--muted);margin-bottom:6px}.stat-value{font-size:28px;font-weight:800}
.tabs{display:flex;gap:8px;overflow:auto;padding-bottom:4px;margin-bottom:14px}
.tab-btn{white-space:nowrap;border:none;cursor:pointer;border-radius:999px;padding:11px 14px;background:rgba(255,255,255,.04);color:var(--text);border:1px solid var(--line);font-weight:800}
.tab-btn.active{background:linear-gradient(180deg, rgba(76,201,255,.18), rgba(30,167,255,.10));border-color:rgba(76,201,255,.35)}
.panel{display:none;overflow:hidden}
.panel.active{display:block}
.panel-head{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line)}
.panel-head h2{margin:0;font-size:20px}
.panel-body{padding:14px}
.table-wrap{background:rgba(255,255,255,.02);border:1px solid var(--line2);border-radius:18px;overflow:auto}
table{width:100%;border-collapse:collapse;min-width:900px}
th,td{padding:12px 10px;border-bottom:1px solid var(--line2);text-align:left;vertical-align:top;font-size:13px}
th{position:sticky;top:0;background:#121c2b;color:#cfe0f5;font-size:12px;text-transform:uppercase;letter-spacing:.04em;z-index:2}
.muted{color:var(--muted)} .small{font-size:12px}
.search{min-width:260px;max-width:360px;width:100%}
.icon-btn,.close-btn{width:32px;height:32px;border:none;cursor:pointer;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.04);color:#e8eef7;border:1px solid var(--line);font-size:15px}
.icon-btn.bad{color:#ffd5d5}
.empty{padding:26px;border:1px dashed rgba(255,255,255,.12);border-radius:18px;text-align:center;color:var(--muted);background:rgba(255,255,255,.02)}
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}
.login-card{width:100%;max-width:420px;background:rgba(17,26,41,.96);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:22px;text-align:center}
.login-form,.form-grid,.mini-stack{display:grid;gap:12px}
.login-form label,.form-grid label{display:block;text-align:left;font-size:13px}
input,select,textarea{width:100%;border:none;outline:none;border-radius:12px;padding:12px;background:#0c1420;color:var(--text);border:1px solid rgba(255,255,255,.08);margin-top:6px}
textarea{min-height:140px;resize:vertical}
.error-text{color:#ffb9b9;font-size:12px}
.modal-backdrop{position:fixed;inset:0;background:rgba(3,9,18,.64);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:14px;z-index:50}
.modal-backdrop.show{display:flex}
.modal{width:100%;max-width:900px;max-height:90vh;overflow:auto;background:rgba(17,26,41,.98);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.modal.lg{max-width:1200px}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(17,26,41,.98)}
.modal-body{padding:16px 18px}
.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid-three{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.vote-page{display:grid;grid-template-columns:420px 1fr;gap:14px}
.sticky-box{position:sticky;top:14px}
.summary-title{font-size:14px;font-weight:800;margin-bottom:8px}
.summary-card,.question-box{padding:12px}
.mt-14{margin-top:14px}
.owner-search-list{display:grid;gap:8px;max-height:260px;overflow:auto}
.owner-pick{padding:10px 12px;border-radius:12px;border:1px solid var(--line2);background:rgba(255,255,255,.02);cursor:pointer}
.owner-pick.active,.owner-pick:hover{background:rgba(76,201,255,.10);border-color:rgba(76,201,255,.25)}
.decision-sheet{max-width:980px;margin:0 auto;padding:20px;font-family:"Times New Roman",serif;color:#000;background:#fff}
.decision-sheet h1,.decision-sheet h2,.decision-sheet h3{margin:0 0 10px;text-align:center}
.decision-sheet table{min-width:0}
.decision-sheet .meta-table td,.decision-sheet .questions-table td,.decision-sheet .questions-table th{border:1px solid #000;padding:6px;font-size:13px}
.decision-sheet .questions-table .num{width:40px text-align:center;}.decision-sheet .questions-table .mark{width:70px;text-align:center}
@media print{
  .no-print{display:none!important}
  body{background:#fff}
  .decision-sheet{padding:0}
}
@media (max-width:980px){
  .stats-grid{grid-template-columns:1fr 1fr}
  .vote-page,.grid-two,.grid-three{grid-template-columns:1fr}
  .sticky-box{position:static}
}
@media (max-width:520px){
  .stats-grid{grid-template-columns:1fr}
}

body{font-size:15px;line-height:1.15}
.btn,.icon-btn,.tab-btn,.owner-pick,input,select,textarea{transition:all .18s ease}
.btn:hover,.tab-btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
.btn:active,.icon-btn:active,.tab-btn:active,.owner-pick:active{transform:translateY(1px) scale(.98)}
.btn{box-shadow:0 8px 22px rgba(22,158,245,.18)}
.btn.good{box-shadow:0 8px 22px rgba(34,197,94,.16)}
.btn.warn{box-shadow:0 8px 22px rgba(245,158,11,.16)}
.btn.bad{box-shadow:0 8px 22px rgba(239,68,68,.16)}
.btn.secondary,.btn-light{background:rgba(255,255,255,.06)}
.btn:hover,.icon-btn:hover,.owner-pick:hover{box-shadow:0 10px 24px rgba(0,0,0,.18)}
.tab-btn.active{box-shadow:0 0 0 1px rgba(76,201,255,.2) inset, 0 10px 24px rgba(76,201,255,.12); color:#fff}
.panel-head h2,.summary-title,.question-title{letter-spacing:-.02em}
.summary-card,.question-box{background:rgba(22,34,52,.98)}
.question-title{font-size:16px}
.radio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.radio-option label{min-height:52px;font-size:14px;border-radius:14px;font-weight:900}
.radio-option input:checked + label{box-shadow:0 0 0 1px rgba(76,201,255,.18) inset, 0 10px 22px rgba(76,201,255,.14); color:#fff}
.radio-option:nth-child(1) input:checked + label{background:linear-gradient(180deg, rgba(34,197,94,.28), rgba(34,197,94,.12)); border-color:rgba(34,197,94,.4)}
.radio-option:nth-child(2) input:checked + label{background:linear-gradient(180deg, rgba(239,68,68,.28), rgba(239,68,68,.12)); border-color:rgba(239,68,68,.4)}
.radio-option:nth-child(3) input:checked + label{background:linear-gradient(180deg, rgba(245,158,11,.28), rgba(245,158,11,.12)); border-color:rgba(245,158,11,.4)}
.owner-pick{background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08)}
.owner-pick.active{background:linear-gradient(180deg, rgba(76,201,255,.24), rgba(30,167,255,.14)); border-color:rgba(76,201,255,.45); color:#fff; box-shadow:0 0 0 1px rgba(76,201,255,.18) inset,0 12px 28px rgba(76,201,255,.15)}
.search,input,select,textarea{font-size:15px}
.global-loader{position:fixed;inset:0;background:rgba(4,10,20,.55);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;z-index:9999}
.global-loader.hidden{display:none}
.loader-spinner{width:46px;height:46px;border-radius:50%;border:4px solid rgba(255,255,255,.18);border-top-color:#4cc9ff;animation:spin .8s linear infinite}
.loader-text{font-weight:800;color:#fff}
@keyframes spin{to{transform:rotate(360deg)}}
.vote-page{display:grid;grid-template-columns:360px 1fr;gap:14px}
.sticky-box{position:sticky;top:14px}
.compact-meta{display:grid;gap:8px}
.readable{font-size:15px;line-height:1.6}
@media (max-width:980px){.vote-page{grid-template-columns:1fr}.sticky-box{position:static}}


/* Patch 3 */
:root{ --accent:#4cc9ff; --accent-strong:#7ad9ff; }
body{ color:#eef6ff; }
.panel,.summary-card,.question-box,.stat-card,.brand{ background:rgba(14,26,46,.96); }
.question-box + .question-box{ margin-top:16px; }
.summary-card + .summary-card{ margin-top:14px; }
.btn,.tab-btn,.icon-btn,.owner-pick{ transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, filter .16s ease; }
.btn:hover,.tab-btn:hover,.icon-btn:hover,.owner-pick:hover{ filter:brightness(1.07); }
.btn:active,.tab-btn:active,.icon-btn:active,.owner-pick:active{ transform:translateY(1px) scale(.985); }
.radio-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:stretch; }
.radio-option{ display:block; }
.vote-choice-label{ display:flex!important; align-items:center; justify-content:center; min-height:54px; width:100%; padding:0 10px; text-align:center; }
.radio-option.yes .vote-choice-label{ background:linear-gradient(180deg, rgba(34,197,94,.10), rgba(34,197,94,.04)); border-color:rgba(34,197,94,.20); }
.radio-option.no .vote-choice-label{ background:linear-gradient(180deg, rgba(239,68,68,.10), rgba(239,68,68,.04)); border-color:rgba(239,68,68,.20); }
.radio-option.abstain .vote-choice-label{ background:linear-gradient(180deg, rgba(245,158,11,.10), rgba(245,158,11,.04)); border-color:rgba(245,158,11,.20); }
.radio-option.yes input:checked + .vote-choice-label{ background:linear-gradient(180deg, #22c55e, #16a34a); border-color:#22c55e; box-shadow:0 10px 22px rgba(34,197,94,.26); }
.radio-option.no input:checked + .vote-choice-label{ background:linear-gradient(180deg, #ef4444, #dc2626); border-color:#ef4444; box-shadow:0 10px 22px rgba(239,68,68,.24); }
.radio-option.abstain input:checked + .vote-choice-label{ background:linear-gradient(180deg, #f59e0b, #d97706); border-color:#f59e0b; box-shadow:0 10px 22px rgba(245,158,11,.24); }
.ballot-entry-form .question-box{ padding:18px; }
.grid-two.mt-14{ margin-top:14px; }
.stats-main-card{ margin-bottom:14px; }
.stats-question-card{ padding:16px 18px; }
.stats-badges{ display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.badge{ display:inline-flex; align-items:center; padding:8px 14px; border-radius:999px; font-size:13px; font-weight:800; border:1px solid rgba(255,255,255,.08); }
.badge.yes{ background:rgba(34,197,94,.16); color:#bff7d3; border-color:rgba(34,197,94,.25); }
.badge.no{ background:rgba(239,68,68,.16); color:#ffd2d2; border-color:rgba(239,68,68,.25); }
.badge.abstain{ background:rgba(245,158,11,.16); color:#ffe7be; border-color:rgba(245,158,11,.25); }
.badge.result{ background:rgba(76,201,255,.14); color:#dff8ff; border-color:rgba(76,201,255,.28); }
.badge.result.result-yes{ background:rgba(34,197,94,.18); color:#d8ffea; border-color:rgba(34,197,94,.28); }
.badge.result.result-no{ background:rgba(239,68,68,.18); color:#ffe3e3; border-color:rgba(239,68,68,.28); }
.badge.result.result-abstain{ background:rgba(245,158,11,.18); color:#fff0d1; border-color:rgba(245,158,11,.28); }
.owner-pick.active{ background:linear-gradient(180deg, rgba(76,201,255,.30), rgba(30,167,255,.18)); box-shadow:0 0 0 1px rgba(76,201,255,.22) inset, 0 10px 24px rgba(76,201,255,.18); }
.tab-btn.active,.btn,.btn.good,.btn.warn,.btn.bad{ color:#fff; }
.readable,.summary-card,.question-title{ font-size:16px; }
.public-shell{ max-width:1200px; margin:0 auto; padding:20px 14px 40px; }
.public-hero{ position:relative; overflow:hidden; border:1px solid var(--line); border-radius:28px; padding:28px; background:linear-gradient(180deg, rgba(14,26,46,.98), rgba(11,18,32,.98)); box-shadow:var(--shadow); }
.public-hero::before,.public-hero::after{ content:''; position:absolute; border-radius:50%; filter:blur(20px); opacity:.45; }
.public-hero::before{ width:260px; height:260px; background:rgba(76,201,255,.22); top:-80px; right:-40px; animation:floaty 6s ease-in-out infinite; }
.public-hero::after{ width:180px; height:180px; background:rgba(34,197,94,.18); bottom:-60px; left:-30px; animation:floaty 8s ease-in-out infinite reverse; }
@keyframes floaty{ 0%,100%{ transform:translateY(0px) translateX(0px);} 50%{ transform:translateY(18px) translateX(8px);} }
.public-title{ position:relative; z-index:1; font-size:34px; font-weight:900; letter-spacing:-.04em; margin:0 0 10px; }
.public-sub{ position:relative; z-index:1; color:#c7d8ee; max-width:820px; line-height:1.6; }
.public-grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:16px; margin-top:18px; }
.public-card{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:22px; padding:18px; position:relative; z-index:1; }
.public-kpi{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:18px; }
.public-kpi-item{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:18px; padding:14px; }
.public-kpi-label{ color:#9eb4d2; font-size:12px; margin-bottom:8px; }
.public-kpi-value{ font-size:28px; font-weight:900; }
.public-progress{ height:14px; border-radius:999px; overflow:hidden; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); margin-top:12px; }
.public-progress-fill{ height:100%; background:linear-gradient(90deg, #4cc9ff, #22c55e); box-shadow:0 0 18px rgba(76,201,255,.3); }
.public-results{ display:grid; gap:12px; margin-top:18px; }
.public-result-row{ padding:16px; border-radius:18px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); }
.public-result-head{ font-weight:800; margin-bottom:10px; }
.public-orb-wrap{ display:flex; align-items:center; justify-content:center; min-height:260px; }
.public-orb{ width:180px; height:180px; border-radius:50%; background:radial-gradient(circle at 30% 30%, rgba(122,217,255,.95), rgba(76,201,255,.18) 55%, rgba(34,197,94,.10) 100%); box-shadow:0 0 40px rgba(76,201,255,.28), inset 0 0 30px rgba(255,255,255,.14); animation:pulseOrb 2.8s ease-in-out infinite; position:relative; }
.public-orb::after{ content:''; position:absolute; inset:-16px; border-radius:50%; border:1px solid rgba(76,201,255,.18); animation:ringPulse 2.8s ease-out infinite; }
@keyframes pulseOrb{ 0%,100%{ transform:scale(1);} 50%{ transform:scale(1.05);} }
@keyframes ringPulse{ 0%{ transform:scale(.92); opacity:.75;} 100%{ transform:scale(1.18); opacity:0; } }
.public-badges{ display:flex; flex-wrap:wrap; gap:10px; margin-top:10px; }
@media (max-width:980px){ .public-grid,.public-kpi{ grid-template-columns:1fr 1fr; } }
@media (max-width:720px){ .public-grid,.public-kpi{ grid-template-columns:1fr; } .public-title{ font-size:28px; } }


/* Patch 4 */
.question-preview-list{display:grid;gap:10px;margin-top:12px}
.question-preview-item{padding:12px 14px;border-radius:14px;border:1px solid rgba(76,201,255,.22);background:linear-gradient(180deg, rgba(76,201,255,.09), rgba(76,201,255,.03)); color:#eaf6ff}
.ballot-entry-form .question-box{margin-top:16px;padding:20px 18px}
.ballot-entry-form .question-title{font-size:19px;line-height:1.5;margin-bottom:16px;color:#f3f9ff}
.ballot-entry-form .radio-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:12px !important;align-items:stretch}
.ballot-entry-form .radio-option{position:relative}
.ballot-entry-form .radio-option input[type=radio]{position:absolute !important;opacity:0 !important;pointer-events:none !important;width:0 !important;height:0 !important}
.vote-choice-label{display:flex !important;align-items:center;justify-content:center;text-align:center;width:100%;min-height:54px;padding:14px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.10);font-size:16px;font-weight:900;letter-spacing:.01em;cursor:pointer;user-select:none}
.ballot-entry-form .radio-option.yes .vote-choice-label{background:rgba(34,197,94,.12)}
.ballot-entry-form .radio-option.no .vote-choice-label{background:rgba(239,68,68,.12)}
.ballot-entry-form .radio-option.abstain .vote-choice-label{background:rgba(245,158,11,.12)}
.ballot-entry-form .radio-option.yes input:checked + .vote-choice-label{background:linear-gradient(180deg,#28cf6e,#169a4b);border-color:#28cf6e;color:#fff;box-shadow:0 12px 24px rgba(34,197,94,.28)}
.ballot-entry-form .radio-option.no input:checked + .vote-choice-label{background:linear-gradient(180deg,#ff5c5c,#d93131);border-color:#ff5c5c;color:#fff;box-shadow:0 12px 24px rgba(239,68,68,.28)}
.ballot-entry-form .radio-option.abstain input:checked + .vote-choice-label{background:linear-gradient(180deg,#ffb62e,#dc8b00);border-color:#ffb62e;color:#fff;box-shadow:0 12px 24px rgba(245,158,11,.28)}
.badge{white-space:nowrap}
.stats-badges{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:14px}
.stats-question-card{margin-top:14px}
.public-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-top:18px}
.public-house{display:grid;gap:8px;border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:14px;background:linear-gradient(180deg, rgba(15,30,54,.98), rgba(10,19,35,.98))}
.public-house-roof{height:16px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#617284,#495869);border:1px solid rgba(255,255,255,.08);border-bottom:0}
.public-house-head,.public-house-floor{display:grid;grid-template-columns:42px 1fr 1fr;gap:0}
.public-house-head{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#d9e8fb}
.public-house-head > div{padding:8px;text-align:center;border-bottom:1px solid rgba(255,255,255,.08)}
.public-house-head > div:first-child{text-align:center}
.public-house-floor{border-bottom:1px solid rgba(255,255,255,.06)}
.public-house-floor-label{display:flex;align-items:center;justify-content:center;color:#d2e0f1;font-weight:800;background:rgba(255,255,255,.03);border-right:1px solid rgba(255,255,255,.06)}
.public-house-entrance{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:6px}
.public-house-entrance + .public-house-entrance{border-left:1px solid rgba(255,255,255,.06)}
.public-flat{min-height:34px;border-radius:6px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#233447,#182535);display:flex;align-items:center;justify-content:center;font-size:10px;color:#8fa5c3}
.public-flat.is-on{background:linear-gradient(180deg,#ffe792,#ffd24b);border-color:#f4c938;color:#3a2f00;box-shadow:0 0 16px rgba(255,216,90,.26)}
@media (max-width:980px){
  .public-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .ballot-entry-form .radio-grid{grid-template-columns:1fr !important}
  .vote-choice-label{min-height:48px;font-size:15px}
}


/* Patch 5 */
.question-preview-list{display:grid;gap:12px;margin-top:12px}
.question-preview-item{
  padding:14px 16px;
  border-radius:16px;
  border:2px solid rgba(76,201,255,.26);
  background:linear-gradient(180deg, rgba(76,201,255,.11), rgba(76,201,255,.04));
  color:#f4fbff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
  line-height:1.55;
  font-size:15px;
}
.ballot-entry-form .question-box{margin-top:18px;padding:22px 18px;border-radius:18px}
.ballot-entry-form .question-title{font-size:19px;line-height:1.6;margin-bottom:16px;color:#f7fbff}
.ballot-entry-form input[type=radio]{display:none !important;opacity:0 !important;visibility:hidden !important;position:absolute !important;pointer-events:none !important;width:0 !important;height:0 !important;-webkit-appearance:none !important;appearance:none !important}
.ballot-entry-form .radio-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:12px !important}
.ballot-entry-form .radio-option{position:relative}
.vote-choice-label{
  display:flex !important;align-items:center;justify-content:center;text-align:center;width:100%;
  min-height:56px;padding:14px 12px;border-radius:16px;border:1px solid rgba(255,255,255,.1);
  font-size:16px;font-weight:900;letter-spacing:.02em;cursor:pointer;user-select:none;
}
.ballot-entry-form .radio-option.yes .vote-choice-label{background:rgba(34,197,94,.14)}
.ballot-entry-form .radio-option.no .vote-choice-label{background:rgba(239,68,68,.14)}
.ballot-entry-form .radio-option.abstain .vote-choice-label{background:rgba(245,158,11,.14)}
.ballot-entry-form .radio-option.yes input:checked + .vote-choice-label{background:linear-gradient(180deg,#2fd976,#169d4e);border-color:#2fd976;color:#fff;box-shadow:0 12px 24px rgba(34,197,94,.28)}
.ballot-entry-form .radio-option.no input:checked + .vote-choice-label{background:linear-gradient(180deg,#ff6767,#d93232);border-color:#ff6767;color:#fff;box-shadow:0 12px 24px rgba(239,68,68,.28)}
.ballot-entry-form .radio-option.abstain input:checked + .vote-choice-label{background:linear-gradient(180deg,#ffbe3b,#dd8b00);border-color:#ffbe3b;color:#fff;box-shadow:0 12px 24px rgba(245,158,11,.28)}
.stats-badges{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:16px}
.badge{white-space:nowrap;padding:9px 14px;border-radius:999px;font-size:14px;font-weight:800}
.badge.yes{background:rgba(34,197,94,.18);color:#bff5cf;border:1px solid rgba(34,197,94,.25)}
.badge.no{background:rgba(239,68,68,.18);color:#ffd6d6;border:1px solid rgba(239,68,68,.25)}
.badge.abstain{background:rgba(245,158,11,.18);color:#ffe6bc;border:1px solid rgba(245,158,11,.25)}
.badge.result{background:rgba(76,201,255,.18);color:#d8f4ff;border:1px solid rgba(76,201,255,.28)}
.badge.result-yes{background:rgba(34,197,94,.18);color:#bff5cf;border:1px solid rgba(34,197,94,.25)}
.badge.result-no{background:rgba(239,68,68,.18);color:#ffd6d6;border:1px solid rgba(239,68,68,.25)}
.badge.result-abstain{background:rgba(245,158,11,.18);color:#ffe6bc;border:1px solid rgba(245,158,11,.25)}
.public-shell{max-width:1200px;margin:0 auto;padding:20px 14px 28px}
.public-hero{background:rgba(17,26,41,.95);border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:var(--shadow)}
.public-title{margin:0 0 8px;font-size:34px;line-height:1.1}
.public-sub{color:#d3e5f7;line-height:1.5}
.public-kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.public-kpi-item{background:rgba(255,255,255,.03);border:1px solid var(--line2);border-radius:16px;padding:12px}
.public-kpi-label{font-size:12px;color:var(--muted);margin-bottom:4px}
.public-kpi-value{font-size:24px;font-weight:800}
.public-progress{margin-top:14px;height:12px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.06);border:1px solid var(--line2)}
.public-progress-fill{height:100%;background:linear-gradient(90deg,#31c6ff,#22c55e)}
.public-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:18px}
.public-card{background:rgba(17,26,41,.95);border:1px solid var(--line);border-radius:22px;padding:16px;box-shadow:var(--shadow)}
.public-result-row{padding:14px 0;border-bottom:1px solid var(--line2)}
.public-result-row:last-child{border-bottom:none}
.public-result-head{font-size:18px;font-weight:800;line-height:1.55;color:#f6fbff}
.public-house{
  display:grid;
  grid-template-columns:40px 1fr 1fr;
  gap:0;
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
  padding:14px 12px 12px;
  background:linear-gradient(180deg, rgba(15,30,54,.98), rgba(10,19,35,.98));
}
.public-house-roof{
  grid-column:1 / -1;height:18px;border-radius:10px 10px 0 0;
  background:linear-gradient(180deg,#627486,#495869);border:1px solid rgba(255,255,255,.08);border-bottom:none;margin:0 18px 10px;
}
.public-house-head{grid-column:1 / -1;display:grid;grid-template-columns:40px 1fr 1fr;color:#dff3ff;font-weight:800;font-size:12px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}
.public-house-head > div{padding:6px 8px;text-align:center}
.public-house-floor{display:grid;grid-column:1 / -1;grid-template-columns:40px 1fr 1fr;min-height:42px;border-top:1px solid rgba(255,255,255,.05)}
.public-house-floor-label{display:flex;align-items:center;justify-content:center;color:#d7e8f8;font-weight:800;border-right:1px solid rgba(255,255,255,.05)}
.public-house-entrance{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px}
.public-flat{
  min-height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,#1d2d42,#101b2b);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.public-flat.voted{
  background:linear-gradient(180deg,#ffe78e,#ffd15a);
  border-color:#f5ca48;
  box-shadow:0 0 18px rgba(255,220,120,.35), inset 0 1px 0 rgba(255,255,255,.2);
}
@media (max-width:980px){.public-kpi{grid-template-columns:1fr 1fr}}
@media (max-width:720px){.public-kpi{grid-template-columns:1fr}.public-title{font-size:26px}.public-house-floor{min-height:36px}.public-house-entrance{gap:4px;padding:4px}}


/* Patch 6 constructor */
.hidden-textarea{display:none !important}
.questions-builder{
  display:grid;
  gap:12px;
}
.constructor-item{
  padding:14px;
  border-radius:18px;
  border:2px solid rgba(76,201,255,.20);
  background:linear-gradient(180deg, rgba(76,201,255,.11), rgba(76,201,255,.04));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
.constructor-item-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.constructor-index{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(76,201,255,.14);
  border:1px solid rgba(76,201,255,.24);
  font-size:12px;
  font-weight:800;
  color:#dff8ff;
}
.constructor-text{
  min-height:64px;
  padding:14px 16px;
  border-radius:14px;
  background:rgba(6,17,32,.55);
  border:1px solid rgba(255,255,255,.08);
  color:#f6fbff;
  line-height:1.6;
  font-size:15px;
  outline:none;
  white-space:pre-wrap;
}
.constructor-text:focus{
  border-color:rgba(76,201,255,.36);
  box-shadow:0 0 0 3px rgba(76,201,255,.10);
}
.constructor-text:empty:before{
  content:attr(data-placeholder);
  color:#86a0c0;
}
.ballot-entry-form input[type=radio],
.ballot-entry-form .radio-option input[type=radio]{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  position:absolute !important;
  pointer-events:none !important;
  width:0 !important;
  height:0 !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}
@media (max-width:720px){
  .constructor-item-top{align-items:flex-start}
  .constructor-text{min-height:56px}
}
