@charset "UTF-8";
:root{--paper:#F2F2F2;--white:#fff;--ink:#171C23;--muted:#586C8A;--line:#D6DCE5;--teal:#333F50;--teal-dark:#171C23;--mint:#F2F2F2;--orange:#A64200;--orange-bg:#fff2e7;--red:#ac4141;--shadow:0 12px 38px #172c3b0a;--radius:18px;--soft-bg:#F0F1F2;--softest-bg:#FAFAFB;--soft-border:#D6DCE5;--soft-line:#E5E8EB;--hover-bg:#F2F4F5;--selected-bg:#E9ECF0;--focus-wash:#333F5022;--chart-x:#333F50;--chart-y:#586C8A;--chart-y-dark:#333F50;--chart-y-text:#333F50;--panel-deep:#171C23;--panel-muted:#D1D2D3;--panel-wash:#51555A;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.6}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button,input,select,textarea,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--teal);outline-offset:4px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.3;letter-spacing:-.9px;margin-bottom:12px;font-weight:750}h2{font-size:21px;line-height:1.4;margin-bottom:10px}h3{font-size:16px;margin-bottom:12px}p{margin-bottom:16px}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{color:var(--teal);font-size:11px;font-weight:750;letter-spacing:2px;margin-bottom:13px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:650;border:1px solid var(--line);border-radius:50px;padding:3px 9px;white-space:nowrap;background:var(--white);color:var(--muted)}.badge.open{background:var(--mint);border-color:var(--soft-border);color:var(--teal)}.badge.closed{background:var(--softest-bg);color:var(--muted)}.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.btn{border:1px solid var(--line);border-radius:9px;background:var(--white);padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:650;line-height:1.6;text-decoration:none;white-space:nowrap;transition:background .15s,transform .15s}.btn:hover{background:var(--hover-bg);text-decoration:none}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn.primary:hover{background:var(--teal-dark)}.btn.ghost{background:transparent}.btn.danger{color:var(--red)}.btn.small{padding:5px 10px;font-size:12px}.btn.wide{width:100%;padding:13px}.btn.icon{width:34px;height:34px;padding:0;font-size:18px}.btn:active{transform:translateY(1px)}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spacer{flex:1}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:25px;box-shadow:var(--shadow)}.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.section-title h2,.section-title h3{margin:0}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.field>span,.field>label{font-size:13px;font-weight:650}.field small{font-size:12px;color:var(--muted)}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 12px;color:var(--ink);background:#fff;outline:none;min-height:42px}input:focus,textarea:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--focus-wash)}input:disabled{background:var(--softest-bg);color:var(--muted)}textarea{resize:vertical;line-height:1.8}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.alert{padding:12px 15px;border-radius:10px;background:var(--orange-bg);color:#8a522e;font-size:13px;margin-bottom:20px;border:1px solid #f4dfcf}.alert.error{background:#fff0ed;border-color:#f2d5d1;color:#9e3535}.alert.success{background:var(--mint);border-color:var(--soft-border);color:var(--teal)}.empty{text-align:center;padding:58px 25px;color:var(--muted)}.empty .empty-icon{display:block;color:var(--teal);font-size:42px;margin-bottom:16px}.empty h2,.empty h3{color:var(--ink)}.empty p{max-width:400px;margin:0 auto 22px}.boot{min-height:80vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;color:var(--muted);font-size:13px}.loader{display:inline-block;width:24px;height:24px;border:2px solid var(--line);border-top-color:var(--teal);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 42px;background:#ffffffb8}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);font-size:16px;font-weight:750;letter-spacing:-.3px}.brand:hover{text-decoration:none}.topbar .sub{font-size:11px;font-weight:500;color:var(--muted);margin-left:14px;padding-left:14px;border-left:1px solid var(--line)}.page{max-width:1440px;margin:auto;padding:40px 42px 70px}.page-heading{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-bottom:30px}.page-heading p{margin:0;color:var(--muted);font-size:13px}.admin-layout{display:grid;grid-template-columns:248px minmax(0,1fr);gap:30px}.sidebar{padding-top:5px}.sidebar-label{font-size:11px;letter-spacing:1px;color:var(--muted);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.event-item{display:block;width:100%;border:1px solid transparent;background:transparent;text-align:left;padding:15px 16px;border-radius:12px;margin-bottom:7px}.event-item:hover{background:var(--hover-bg)}.event-item.active{background:var(--selected-bg);border-color:var(--soft-border)}.event-item strong{display:block;font-size:14px;margin-bottom:7px;line-height:1.45;word-break:break-word}.event-item .event-meta{font-size:11px;color:var(--muted);display:flex;gap:10px}.sidebar-note{margin-top:32px;padding:17px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);line-height:1.85}.tabs{display:flex;border-bottom:1px solid var(--line);gap:30px;margin:0 0 24px}.tab{padding:13px 0;border:0;border-bottom:2px solid transparent;background:transparent;font-weight:650;font-size:13px;color:var(--muted);margin-bottom:-1px}.tab.active{color:var(--teal);border-bottom-color:var(--teal)}.event-heading{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:16px}.event-heading h2{margin-bottom:7px;font-size:25px;letter-spacing:-.5px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.stat{border:1px solid var(--line);background:#fff;border-radius:13px;padding:20px 22px}.stat .stat-label{color:var(--muted);font-size:12px;margin-bottom:6px}.stat .stat-value{font-size:29px;font-weight:720;letter-spacing:-1px;line-height:1.3}.stat .stat-unit{font-size:12px;color:var(--muted);font-weight:450;margin-left:5px;letter-spacing:0}.stats .stat:last-child .stat-value{color:var(--teal)}.case-list{display:flex;flex-direction:column;gap:10px}.case-row{border:1px solid var(--line);border-radius:12px;padding:17px;display:flex;align-items:center;gap:15px;background:#fff}.case-code{width:39px;height:39px;border:1px solid var(--soft-border);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--teal);font-weight:750;background:var(--soft-bg);flex-shrink:0;overflow:hidden}.case-info{min-width:0;flex:1}.case-info strong{font-size:14px;display:block;margin-bottom:4px;word-break:break-word}.case-info p{font-size:11px;color:var(--muted);margin:0}.case-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.current-label{font-size:10px;font-weight:650;color:var(--orange);margin-left:6px}.summary-table{width:100%;border-collapse:collapse;font-size:13px}.summary-table th{font-size:11px;color:var(--muted);font-weight:550;text-align:left;background:var(--softest-bg);white-space:nowrap}.summary-table th,.summary-table td{padding:13px 15px;border-bottom:1px solid var(--line);vertical-align:middle}.summary-table tbody tr:last-child td{border-bottom:0}.summary-table td.number{font-variant-numeric:tabular-nums;font-weight:650;color:var(--teal)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.table-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:28px 0 12px}.table-heading h3{margin:0}.table-note{font-size:11px;color:var(--muted);margin:12px 0}.case-editor-row{display:grid;grid-template-columns:82px 1fr 100px 34px;gap:10px;align-items:center;margin-bottom:10px}.case-editor-labels{display:grid;grid-template-columns:82px 1fr 100px 34px;gap:10px;font-size:11px;color:var(--muted);margin-bottom:7px}.config-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:23px;padding-top:20px;gap:15px}.config-footer p{font-size:11px;color:var(--muted);margin:0}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-intro{background:var(--panel-deep);color:#fff;padding:60px max(40px,9vw);display:flex;justify-content:center;flex-direction:column;position:relative;overflow:hidden}.login-intro .eyebrow{color:var(--panel-muted)}.login-intro h1{font-size:43px;letter-spacing:-1.5px;max-width:390px;margin-bottom:23px;line-height:1.35}.login-intro p{color:var(--panel-muted);font-size:14px;line-height:1.95;max-width:370px}.login-art{display:flex;align-items:end;gap:15px;height:130px;margin-top:40px;opacity:.75}.login-art i{width:45px;border:1px solid var(--panel-muted);background:var(--panel-wash);border-radius:6px 6px 0 0}.login-art i:nth-child(1){height:40%}.login-art i:nth-child(2){height:65%}.login-art i:nth-child(3){height:90%}.login-art i:nth-child(4){height:60%}.login-art i:nth-child(5){height:100%}.login-form-side{display:flex;align-items:center;justify-content:center;padding:40px}.login-box{width:100%;max-width:350px}.login-box .brand{margin-bottom:45px}.login-box h2{font-size:25px;margin-bottom:7px}.login-box .muted{font-size:13px;margin-bottom:28px}.login-box .field{margin-bottom:22px}.login-box .login-note{font-size:11px;line-height:1.9;color:var(--muted);margin-top:24px}.modal-backdrop{position:fixed;inset:0;background:#102b3f6b;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(3px)}.modal{width:100%;max-width:620px;background:#fff;border-radius:20px;padding:30px;box-shadow:0 30px 100px #102b3f40;max-height:90vh;overflow:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.modal-header h2{margin:0;font-size:22px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.qr-image{display:block;width:250px;max-width:100%;height:auto;aspect-ratio:1;object-fit:contain;margin:10px auto 20px;border:1px solid var(--line);border-radius:12px;padding:10px}.copy-field{display:flex;gap:8px}.copy-field input{font-size:11px;min-width:0}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);background:var(--teal-dark);color:#fff;border-radius:10px;padding:12px 22px;z-index:200;font-size:13px;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;box-shadow:0 8px 24px #0002}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast.error{background:#973f39}.voter-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.voter{padding:12px 14px;background:var(--softest-bg);border-radius:9px;min-width:0}.voter strong{display:block;font-size:14px;word-break:break-word}.voter small{color:var(--muted);font-size:11px}.screen-topbar{padding:20px 36px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#fff}.screen-topbar h1{font-size:20px;margin:0}.screen-topbar .eyebrow{font-size:10px;margin-bottom:2px}.live-status{display:inline-flex;align-items:center;gap:7px;color:var(--teal);font-size:11px;white-space:nowrap}.live-status.waiting{color:var(--orange)}.screen{max-width:1600px;margin:auto;padding:28px 36px 45px}.screen-title{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:25px}.screen-title h2{font-size:30px;margin:6px 0 7px;letter-spacing:-.7px}.screen-title p{font-size:13px;color:var(--muted);margin:0}.case-select{max-width:360px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.chart-card{padding:28px 28px 20px;background:#fff;border:1px solid var(--line);border-radius:20px}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.chart-header h3{font-size:18px;margin:0}.chart-average{font-size:30px;letter-spacing:-1px;font-weight:720;color:var(--teal)}.chart-average small{font-size:11px;letter-spacing:0;color:var(--muted);font-weight:450;margin-left:7px}.chart-card.y-chart .chart-average{color:var(--chart-y-text)}.screen-bottom{margin-top:20px;display:flex;justify-content:space-between;align-items:center;gap:15px}.screen-bottom p{font-size:12px;color:var(--muted);margin:0}.screen-count{font-size:36px;font-weight:700;letter-spacing:-1.5px;line-height:1.2}.screen-count span{font-size:13px;font-weight:450;letter-spacing:0;color:var(--muted);margin-left:7px}.qr-mini{display:flex;align-items:center;gap:14px}.qr-mini img{width:82px;height:82px;border:1px solid var(--line);background:#fff;padding:4px;border-radius:7px}.qr-mini strong{display:block;font-size:14px}.qr-mini small{color:var(--muted);font-size:11px}.matrix-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.matrix-chart{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 12px 8px;min-width:0}.matrix-chart svg{display:block;width:100%;height:auto;max-height:70vh}.matrix-legend{display:flex;flex-direction:column;gap:7px;max-height:69vh;overflow:auto;padding-right:4px}.matrix-item{display:flex;gap:11px;align-items:center;border:1px solid var(--line);background:#fff;padding:12px;border-radius:10px;width:100%;text-align:left}.matrix-item:hover,.matrix-item.selected{border-color:var(--teal);background:var(--selected-bg)}.matrix-item .case-code{width:34px;height:34px;border-radius:50%;font-size:11px}.matrix-item strong{font-size:12px;display:block}.matrix-item small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.matrix-item.no-votes{opacity:.7}.matrix-note{font-size:11px;color:var(--muted);margin:16px 0 0}.matrix-tooltip{margin-top:14px;background:var(--soft-bg);border:1px solid var(--soft-border);border-radius:12px;padding:16px;font-size:13px}.matrix-tooltip strong{display:block;margin-bottom:6px}.matrix-tooltip p{margin:0;color:var(--muted);font-size:12px}.matrix-point{cursor:pointer}.matrix-point:hover circle,.matrix-point:focus circle{stroke:var(--teal-dark);stroke-width:3}.matrix-point text{pointer-events:none}.vote-body{min-height:100vh;background:linear-gradient(180deg,var(--soft-bg) 0,var(--paper) 220px)}.vote-header{padding:23px 24px 18px;max-width:560px;margin:auto;display:flex;align-items:center;gap:10px}.vote-header .vote-header .vote-header .brand{font-size:14px;gap:9px}.vote-content{max-width:560px;padding:16px 22px 45px;margin:auto}.vote-event{font-size:12px;color:var(--teal);margin-bottom:12px;font-weight:600}.vote-content h1{font-size:27px;letter-spacing:-.6px;margin:10px 0 15px;line-height:1.45}.vote-intro{font-size:13px;color:var(--muted);line-height:1.8}.identity-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:27px;margin-top:28px;box-shadow:var(--shadow)}.identity-card h2{font-size:20px}.identity-card p{font-size:12px;color:var(--muted)}.identity-chip{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:var(--soft-bg);border:1px solid var(--soft-border);border-radius:10px;margin:23px 0 25px;font-size:12px}.identity-chip strong{font-weight:650;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-btn{border:0;padding:0;background:none;color:var(--teal);font-size:12px;text-decoration:underline}.score-block{background:#fff;border:1px solid var(--line);border-radius:16px;padding:23px 20px;margin-bottom:16px}.score-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.score-title h2{font-size:16px;margin:0}.score-title .step{color:var(--muted);font-size:11px}.score-options{display:flex;gap:9px}.score-option{flex:1;aspect-ratio:1;max-height:63px;border:1px solid var(--soft-border);border-radius:12px;background:var(--softest-bg);color:var(--ink);font-size:23px;font-weight:600;display:flex;align-items:center;justify-content:center;transition:.15s}.score-option:hover{border-color:var(--teal)}.score-option.selected{border-color:var(--teal);background:var(--teal);color:#fff;box-shadow:0 4px 10px var(--focus-wash)}.score-scale{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:11px}.vote-submit{margin-top:24px;padding:14px;font-size:15px;border-radius:12px}.vote-privacy{font-size:11px;line-height:1.9;color:var(--muted);text-align:center;margin:18px 5px}.vote-success{background:var(--soft-bg);border:1px solid var(--soft-border);border-radius:13px;padding:18px 20px;margin:22px 0}.vote-success h3{color:var(--teal);font-size:16px;margin:0 0 6px}.vote-success p{font-size:12px;margin:0;color:var(--muted)}.vote-footer{text-align:center;font-size:10px;letter-spacing:.5px;color:var(--muted);margin-top:30px}.vote-case-link{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);background:#fff;border-radius:13px;margin-bottom:10px;color:var(--ink)}.vote-case-link:hover{border-color:var(--teal);text-decoration:none}.vote-case-link .case-info strong{font-size:14px}.vote-case-link .arrow{font-size:20px;color:var(--muted)}.network-banner{background:var(--orange-bg);padding:8px 15px;color:#96603b;font-size:12px;text-align:center}.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:var(--muted)}
@media(min-width:1600px){.screen{padding-top:40px}.screen-title{margin-bottom:35px}.chart-card{padding:34px 40px 24px}}
@media(max-width:1100px){.page{padding:30px 26px}.topbar{padding:0 26px}.admin-layout{grid-template-columns:210px minmax(0,1fr);gap:22px}.case-row{flex-wrap:wrap}.case-actions{width:100%;justify-content:flex-end}.matrix-layout{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.screen,.screen-topbar{padding-left:24px;padding-right:24px}.chart-card{padding:20px}.screen-title h2{font-size:25px}.chart-average{font-size:26px}.login-intro{padding-left:7vw;padding-right:7vw}.login-intro h1{font-size:35px}}
@media(max-width:760px){h1{font-size:27px}.topbar{height:65px;padding:0 19px}.topbar .sub{display:none}.topbar .toolbar{gap:6px}.page{padding:26px 18px 50px}.page-heading{align-items:flex-start;margin-bottom:23px;gap:12px}.page-heading .btn{font-size:12px;padding:8px 11px}.page-heading p{font-size:12px}.admin-layout{display:block}.sidebar{margin-bottom:25px}.sidebar-events{display:flex;overflow-x:auto;gap:8px;padding-bottom:8px}.event-item{min-width:185px;width:185px;margin:0;padding:12px}.sidebar-note{display:none}.sidebar-label{margin-bottom:10px}.event-heading h2{font-size:22px}.event-heading{align-items:start}.event-heading .toolbar{gap:6px;justify-content:flex-end}.event-heading .btn{font-size:11px;padding:6px 9px}.stats{gap:8px}.stat{padding:15px 12px;border-radius:11px}.stat .stat-value{font-size:24px}.stat .stat-label{font-size:10px}.stat .stat-unit{font-size:10px}.card{padding:19px;border-radius:14px}.case-row{padding:14px;gap:11px}.case-code{width:35px;height:35px}.case-actions .btn{font-size:11px}.case-info strong{font-size:13px}.case-editor-row,.case-editor-labels{grid-template-columns:58px 1fr 76px 28px;gap:6px}.case-editor-row input,.case-editor-row select{padding:8px;font-size:12px}.case-editor-row .btn.icon{width:28px}.field-row{gap:12px}.config-footer{align-items:flex-start}.config-footer p{max-width:55%}.modal-backdrop{padding:14px}.modal{padding:23px;max-height:92vh;border-radius:17px}.modal-header h2{font-size:20px}.screen-topbar{padding:15px 18px;align-items:start;flex-wrap:wrap}.screen-topbar h1{font-size:16px}.screen-topbar .toolbar{gap:7px}.screen-topbar .btn{font-size:11px;padding:6px 9px}.screen{padding:23px 17px}.screen-title{display:block;margin-bottom:20px}.screen-title h2{font-size:24px}.screen-title .case-select{margin-top:18px;max-width:none}.chart-grid{grid-template-columns:1fr;gap:15px}.chart-card{border-radius:15px;padding:22px}.screen-bottom{flex-wrap:wrap;gap:20px}.screen-count{font-size:30px}.qr-mini{margin-left:auto}.qr-mini img{width:70px;height:70px}.matrix-layout{display:block}.matrix-legend{display:grid;grid-template-columns:1fr 1fr;margin-top:16px;max-height:none;gap:8px;padding-right:0}.matrix-item{padding:10px;gap:8px}.matrix-item strong{font-size:11px}.matrix-item small{font-size:9px}.matrix-item .case-code{width:28px;height:28px;flex-shrink:0}.matrix-chart{padding:10px 0 5px}.matrix-chart svg{max-height:none}.login-page{display:block}.login-intro{padding:35px 30px 30px;min-height:260px}.login-intro h1{font-size:28px;max-width:none;margin-bottom:15px}.login-intro p{font-size:12px;margin:0;max-width:450px}.login-art{display:none}.login-intro .eyebrow{margin-bottom:10px}.login-form-side{padding:35px 28px}.login-box{max-width:390px}.login-box .brand{display:none}.login-box h2{font-size:22px}.voter-list{grid-template-columns:1fr 1fr}.table-heading{align-items:flex-start;gap:10px}.table-heading .toolbar{justify-content:flex-end}.table-heading h3{font-size:15px}.summary-table th,.summary-table td{padding:12px;font-size:12px}.score-option{font-size:23px;border-radius:10px}.vote-content{padding:12px 22px 40px}.vote-content h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.screen-topbar .toolbar,.screen-bottom,.btn,.live-status{display:none!important}body{background:#fff}.screen{padding:0}.matrix-layout{grid-template-columns:1fr 260px}.matrix-chart,.matrix-item{break-inside:avoid}.matrix-legend{max-height:none}.screen-title{margin-bottom:10px}}
/* A matrix point opens the complete, independently calculated score evidence. */
.score-detail-modal{max-width:920px}.matrix-detail-intro{font-size:13px;color:var(--muted);margin-bottom:20px}.dimension-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dimension-detail{background:var(--softest-bg);border:1px solid var(--line);border-radius:13px;padding:19px}.dimension-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.dimension-heading h3{margin:0;font-size:16px}.dimension-heading>strong{font-size:27px;line-height:1.2;color:var(--teal);font-variant-numeric:tabular-nums}.dimension-heading>strong small{display:block;text-align:right;font-size:10px;font-weight:500;color:var(--muted);margin-top:3px}.dimension-votes{font-size:11px;color:var(--muted);margin:13px 0}.dimension-votes b{color:var(--ink)}.dimension-counts{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.dimension-count{border:1px solid var(--soft-border);border-radius:8px;background:#fff;padding:8px 3px;color:var(--ink)}.dimension-count:hover,.dimension-count.active{border-color:var(--teal);background:var(--selected-bg)}.dimension-count>span{font-size:10px;color:var(--muted);display:block}.dimension-count>strong{font-size:19px;font-variant-numeric:tabular-nums;display:block;margin-top:3px}.dimension-count small{font-size:9px;color:var(--muted);font-weight:500;margin-left:2px}.dimension-formula{border-top:1px solid var(--soft-border);margin-top:17px;padding-top:13px}.dimension-formula>span{font-size:10px;color:var(--muted);display:block;margin-bottom:4px}.dimension-formula>strong{font-size:15px;font-weight:650;display:block;color:var(--teal);font-variant-numeric:tabular-nums}.dimension-formula>small{font-size:10px;color:var(--muted);display:block;margin-top:5px}.matrix-detail-table-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 0 12px}.matrix-detail-table-title h3{margin:0;font-size:16px}.matrix-detail-empty{padding:26px 15px;background:var(--paper);border-radius:10px}.matrix-detail-empty p{margin:0}
@media(max-width:620px){.dimension-grid{grid-template-columns:1fr}.dimension-detail{padding:17px}.dimension-heading>strong{font-size:25px}.score-detail-modal{padding:20px}.score-detail-modal .modal-header h2{font-size:19px}.matrix-detail-table-title h3{font-size:14px}}
/* A fixed 16:9 slide view uses only its scoped presentation link. */
.embed-page{width:100vw;height:100dvh;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--paper)}.embed-frame{--u:min(1vw,1.777778vh);width:min(100vw,177.777778vh);height:min(100vh,56.25vw);aspect-ratio:16/9;min-height:0;overflow:hidden;background:var(--paper);padding:calc(var(--u)*2.6);display:flex;flex-direction:column;gap:calc(var(--u)*1.55);font-size:calc(var(--u)*1.05)}.embed-header{display:flex;justify-content:space-between;align-items:center;gap:calc(var(--u)*2);flex-shrink:0;min-height:calc(var(--u)*6.7)}.embed-eyebrow{font-size:calc(var(--u)*.9);color:var(--muted);margin-bottom:calc(var(--u)*.6)}.embed-header h1{font-size:calc(var(--u)*2.35);line-height:1.3;letter-spacing:calc(var(--u)*-.045);margin:0;display:flex;align-items:center;gap:calc(var(--u)*1.05)}.embed-case-code{font-size:calc(var(--u)*1.2);font-weight:700;min-width:calc(var(--u)*3.3);height:calc(var(--u)*3.3);padding:0 calc(var(--u)*.5);border-radius:calc(var(--u)*.8);background:var(--soft-bg);color:var(--teal);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.embed-header .live-status{font-size:calc(var(--u)*.85);gap:calc(var(--u)*.5)}.embed-header .dot{width:calc(var(--u)*.45);height:calc(var(--u)*.45)}.embed-present-body{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) calc(var(--u)*16);gap:calc(var(--u)*1.4)}.embed-frame .chart-card{min-height:0;padding:calc(var(--u)*1.65);display:flex;flex-direction:column;border-radius:calc(var(--u)*1.3);box-shadow:none}.embed-frame .chart-header{gap:calc(var(--u)*.7);margin:0 0 calc(var(--u)*1.35);flex-shrink:0;align-items:start}.embed-frame .chart-header h3{font-size:calc(var(--u)*1.45);line-height:1.5;margin:0}.embed-frame .chart-average{font-size:calc(var(--u)*2.45);white-space:nowrap;letter-spacing:calc(var(--u)*-.06);line-height:1.1}.embed-frame .chart-average small{display:block;text-align:right;font-size:calc(var(--u)*.7);margin:calc(var(--u)*.45) 0 0;letter-spacing:0}.embed-qr-panel{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--soft-bg);border:1px solid var(--soft-border);border-radius:calc(var(--u)*1.3);padding:calc(var(--u)*1)}.embed-qr-title{font-size:calc(var(--u)*1.2);font-weight:650;margin-bottom:calc(var(--u)*1.1)}.embed-qr-panel img{display:block;width:calc(var(--u)*12.5);height:calc(var(--u)*12.5);padding:calc(var(--u)*.3);background:#fff;border:1px solid var(--soft-border);border-radius:calc(var(--u)*.6)}.embed-qr-panel p{font-size:calc(var(--u)*.8);line-height:1.8;color:var(--muted);margin:calc(var(--u)*1) 0 calc(var(--u)*1.8)}.embed-participant-count{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u)*.45);margin-bottom:calc(var(--u)*1.2)}.embed-participant-count strong{font-size:calc(var(--u)*3);line-height:1;color:var(--teal);font-variant-numeric:tabular-nums}.embed-participant-count span{font-size:calc(var(--u)*.85);color:var(--muted)}.embed-frame .badge{font-size:calc(var(--u)*.75);padding:calc(var(--u)*.15) calc(var(--u)*.6)}.embed-frame .badge .dot{width:calc(var(--u)*.4);height:calc(var(--u)*.4)}.embed-footer{display:flex;justify-content:space-between;align-items:center;gap:calc(var(--u)*1.5);font-size:calc(var(--u)*.8);color:var(--muted);flex-shrink:0;padding-top:calc(var(--u)*.15)}.embed-matrix-body{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) calc(var(--u)*23);gap:calc(var(--u)*2)}.embed-matrix-plot{min-width:0;min-height:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:calc(var(--u)*1.25);padding:calc(var(--u)*.5);display:flex;align-items:center;justify-content:center}.embed-matrix-plot svg{display:block;width:100%;height:100%;max-height:100%!important}.embed-matrix-list{display:flex;flex-direction:column;gap:calc(var(--u)*.9);min-height:0;overflow:auto;padding-right:calc(var(--u)*.25)}.embed-list-heading{font-size:calc(var(--u)*.93);font-weight:650;color:var(--muted);margin-bottom:calc(var(--u)*.4)}.embed-matrix-item{display:flex;gap:calc(var(--u)*.85);align-items:flex-start;padding:calc(var(--u)*1.25);border:1px solid var(--line);border-radius:calc(var(--u)*.9);background:#fff;text-align:left;flex-shrink:0;width:100%}.embed-matrix-item:hover,.embed-matrix-item.selected{border-color:var(--teal);background:var(--selected-bg)}.embed-matrix-code{width:calc(var(--u)*2.65);height:calc(var(--u)*2.65);min-width:calc(var(--u)*2.65);border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:calc(var(--u)*.85);font-weight:700;margin-top:calc(var(--u)*.1)}.embed-matrix-item-content{display:flex;flex-direction:column;gap:calc(var(--u)*.35);min-width:0}.embed-matrix-item-content>strong{font-size:calc(var(--u)*1.05);line-height:1.65;word-break:break-word;margin-bottom:calc(var(--u)*.3)}.embed-matrix-item-content>span{font-size:calc(var(--u)*.88);color:var(--muted)}.embed-matrix-item-content b{font-variant-numeric:tabular-nums;color:var(--teal);font-weight:650}.embed-matrix-item-content>small{font-size:calc(var(--u)*.76);color:var(--muted);margin-top:calc(var(--u)*.3)}.embed-error{align-items:center;justify-content:center;gap:calc(var(--u)*1)}.embed-error h1{font-size:calc(var(--u)*2);margin:0}.embed-error p{font-size:calc(var(--u)*1.1);color:var(--muted);margin:0 0 calc(var(--u)*1)}.embed-error .btn{font-size:calc(var(--u)*1);padding:calc(var(--u)*.7) calc(var(--u)*1.3)}
/* Activity colours are assigned from the shared theme map in app.js. */
.theme-picker{border:0;padding:0;margin:1px 0 24px;min-width:0}.theme-picker>legend{font-size:13px;font-weight:650;padding:0;margin-bottom:11px}.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.theme-option{position:relative;display:block;cursor:pointer;min-width:0}.theme-option>input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0;pointer-events:none}.theme-option-inner{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;min-height:110px}.theme-option input:checked+.theme-option-inner{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal);background:var(--softest-bg)}.theme-option input:focus-visible+.theme-option-inner{outline:3px solid var(--teal);outline-offset:3px}.theme-option-inner>strong{font-size:12px;font-weight:650}.theme-option-inner>small{font-size:10px;line-height:1.65;color:var(--muted)}.theme-swatches{display:flex;gap:4px;margin-bottom:3px}.theme-swatches i{display:block;height:13px;flex:1;border-radius:3px}.theme-preview{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:15px 17px;color:var(--ink);margin-top:12px}.theme-preview-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.theme-preview-title>span{font-size:10px;color:var(--muted)}.theme-preview-title>strong{font-size:12px;color:var(--teal)}.theme-preview-content{display:flex;align-items:center;gap:18px}.theme-preview-chart{flex:1;min-width:0}.theme-preview-chart>span{font-size:10px;font-weight:550}.theme-preview-button{display:block;background:var(--teal);color:#fff;border-radius:7px;padding:8px 12px;font-size:10px;white-space:nowrap;align-self:end;margin-bottom:4px}.theme-picker .table-note{margin-bottom:0;font-size:10px}.theme-tag{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}.theme-tag i{width:7px;height:7px;border-radius:50%}
@media(max-width:500px){.theme-options{gap:6px}.theme-option-inner{padding:10px 8px;min-height:112px}.theme-option-inner>small{font-size:9px}.theme-preview{padding:13px}.theme-preview-content{gap:12px}.theme-preview-button{padding:7px;font-size:9px}.theme-preview-title>strong{font-size:11px}}
/* Shared, comparable horizontal distributions for browser and slide views. */
.score-chart{padding:24px 26px}.score-chart .chart-header{align-items:start;gap:16px;margin-bottom:17px}.score-chart .chart-header h3{min-width:0;overflow-wrap:anywhere;line-height:1.5}.score-chart .chart-average{flex-shrink:0;line-height:1.15}.score-bars-heading,.score-bar-row{display:grid;grid-template-columns:38px minmax(0,1fr) 76px;gap:12px;align-items:center}.score-bars-heading{font-size:10px;line-height:1.5;color:var(--muted);padding-bottom:9px;border-bottom:1px solid var(--soft-line)}.score-bars-heading>span:last-child{text-align:right}.score-bars{display:grid;gap:5px;padding-top:7px}.score-bar-row{width:100%;min-height:34px;padding:6px 0;border:0;border-radius:6px;background:transparent;text-align:left;font-size:13px;font-weight:500}.score-bar-row:hover{background:var(--softest-bg)}.score-bar-row:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.score-bar-label{font-size:12px;font-weight:550;white-space:nowrap}.score-bar-track{display:block;height:7px;min-width:0;border-radius:20px;background:var(--soft-bg);overflow:hidden}.score-bar-fill{display:block;height:100%;min-width:0;border-radius:20px;background:var(--chart-x);transition:width .2s}.score-chart.y-chart .score-bar-fill{background:var(--chart-y)}.score-bar-values{display:flex;align-items:center;justify-content:flex-end;gap:9px;white-space:nowrap;min-width:0;font-variant-numeric:tabular-nums}.score-bar-count{font-size:13px;font-weight:650;color:var(--ink)}.score-bar-count small{font-size:10px;font-weight:400;color:var(--muted)}.score-bar-percent{font-size:10px;color:var(--muted);min-width:27px;text-align:right}.embed-present .score-chart{align-self:center;height:auto;justify-content:flex-start;padding:calc(var(--u)*1.8)}.embed-frame .score-chart .chart-header{margin-bottom:calc(var(--u)*1.5)}.embed-frame .score-bars-heading,.embed-frame .score-bar-row{grid-template-columns:calc(var(--u)*2.9) minmax(0,1fr) calc(var(--u)*5.9);gap:calc(var(--u)*.9)}.embed-frame .score-bars-heading{font-size:calc(var(--u)*.73);padding-bottom:calc(var(--u)*.65)}.embed-frame .score-bars{flex:none;gap:calc(var(--u)*.4);padding-top:calc(var(--u)*.6)}.embed-frame .score-bar-row{min-height:calc(var(--u)*2.8);padding:calc(var(--u)*.5) 0;border-radius:calc(var(--u)*.4)}.embed-frame .score-bar-label{font-size:calc(var(--u)*.98)}.embed-frame .score-bar-track{height:calc(var(--u)*.48)}.embed-frame .score-bar-values{gap:calc(var(--u)*.7)}.embed-frame .score-bar-count{font-size:calc(var(--u)*1.05)}.embed-frame .score-bar-count small{font-size:calc(var(--u)*.77)}.embed-frame .score-bar-percent{font-size:calc(var(--u)*.76);min-width:calc(var(--u)*2)}.theme-preview-bars{display:grid;height:auto;gap:5px;border:0;margin-top:9px}.theme-preview-bar-row{display:grid;grid-template-columns:8px minmax(0,1fr);gap:6px;align-items:center;min-height:5px}.theme-preview-bar-row>span:first-child{font-size:8px;line-height:1;color:var(--muted)}.theme-preview-bar-track{display:block;height:4px;border-radius:5px;overflow:hidden;background:var(--soft-bg)}.theme-preview-bars .theme-preview-bar-track i{display:block;height:100%;flex:none;border-radius:5px;background:var(--chart-x)}.theme-preview-chart-y .theme-preview-bars .theme-preview-bar-track i{background:var(--chart-y)}
/* A transient, non-interactive preview never intercepts a chart click. */
.score-voter-tooltip{position:fixed;z-index:90;width:270px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:hidden;border:1px solid var(--soft-border);border-radius:12px;padding:14px 15px;background:#fff;color:var(--ink);box-shadow:0 12px 35px #0002;pointer-events:none;font-size:12px;line-height:1.55}.score-voter-tooltip[hidden]{display:none}.score-voter-tooltip-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:9px}.score-voter-tooltip-title>strong{font-size:12px;font-weight:650;overflow-wrap:anywhere}.score-voter-tooltip-title>span{font-size:11px;color:var(--muted);white-space:nowrap;padding-top:1px}.score-voter-tooltip-names{display:grid;gap:6px;max-height:242px;overflow:hidden}.score-voter-tooltip-names>span{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}.score-voter-tooltip-names strong{font-size:11px;font-weight:500;overflow-wrap:anywhere;min-width:0}.score-voter-tooltip-names small{font:9px ui-monospace,SFMono-Regular,monospace;color:var(--muted);flex-shrink:0}.score-voter-tooltip-footer{margin-top:10px;font-size:10px;color:var(--muted);line-height:1.6;border-top:1px solid var(--soft-line);padding-top:8px}.score-voter-tooltip-empty{font-size:11px;color:var(--muted);margin:4px 0 0}
@media(max-width:760px){.score-chart{padding:22px}.score-bars-heading,.score-bar-row{grid-template-columns:34px minmax(0,1fr) 72px;gap:9px}.score-bars{gap:4px}.score-bar-row{min-height:35px}.score-bar-track{height:6px}.score-voter-tooltip{width:250px}}
/* Give the two dimensions a larger separation than the QR column. */
.chart-grid{column-gap:clamp(30px,3vw,44px)}.score-chart .chart-header{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:start}.embed-present-body{grid-template-columns:minmax(0,1fr) calc(var(--u)*2.8) minmax(0,1fr) calc(var(--u)*1.2) calc(var(--u)*16);gap:0}.embed-present-body>.score-chart:first-child{grid-column:1}.embed-present-body>.score-chart:nth-child(2){grid-column:3}.embed-present-body>.embed-qr-panel{grid-column:5}.embed-frame .score-chart .chart-header{gap:calc(var(--u)*1);margin-bottom:calc(var(--u)*1.4)}.embed-frame .chart-header h3{font-size:calc(var(--u)*1.75);line-height:1.4}.embed-frame .score-bars-heading,.embed-frame .score-bar-row{grid-template-columns:calc(var(--u)*3.8) minmax(0,1fr) calc(var(--u)*7.2);gap:calc(var(--u)*.85)}.embed-frame .score-bars-heading{font-size:calc(var(--u)*.82)}.embed-frame .score-bars{gap:calc(var(--u)*.25)}.embed-frame .score-bar-row{font-size:calc(var(--u)*1.2);line-height:1.35;min-height:calc(var(--u)*2.6);padding:calc(var(--u)*.35) 0}.embed-frame .score-bar-label{font-size:calc(var(--u)*1.25)}.embed-frame .score-bar-count{font-size:calc(var(--u)*1.3)}.embed-frame .score-bar-count small{font-size:calc(var(--u)*.95)}.embed-frame .score-bar-percent{font-size:calc(var(--u)*.9)}
@media(min-width:761px){.screen .score-bars{gap:2px}.screen .score-bar-row{min-height:29px;padding:4px 0;line-height:1.4}}
