@charset "UTF-8";:root{--primary-rgb: 193, 88, 65;--success-rgb: 76, 175, 80;--secondary-rgb: 160, 160, 160;--light-gray-rgb: 245, 245, 245;--medium-gray-rgb: 224, 224, 224;--text-dark-rgb: 51, 51, 51;--white-rgb: 255, 255, 255;--blue-rgb: 70, 130, 180;--primary-red: rgb(var(--primary-rgb));--light-gray: rgb(var(--light-gray-rgb));--medium-gray: rgb(var(--medium-gray-rgb));--dark-gray: rgb(var(--secondary-rgb));--text-dark: rgb(var(--text-dark-rgb));--gray: rgb(85, 85, 85);--white: rgb(var(--white-rgb));--green: rgb(var(--success-rgb));--blue: rgb(var(--blue-rgb));--font-family: Noto Sans TC, 黑體-繁, Apple LiGothic Medium, PingFang, 微軟正黑體, Microsoft JhengHei, WenQuanYi Zen Hei, helvetica, Arial, sans-serif;--border-radius-md: 6px;--success-color: var(--green);--primary-color: var(--primary-red);--secondary-color: var(--dark-gray);--background-color: var(--white);--surface-color: var(--light-gray);--border-color: var(--medium-gray);--text-color: var(--text-dark);--primary-background: rgba(var(--primary-rgb), .15);--primary-light: rgba(var(--primary-rgb), .05);--primary-medium: rgba(var(--primary-rgb), .2);--primary-border: rgba(var(--primary-rgb), .3);--primary-stripe: rgba(var(--primary-rgb), .08);--success-background: rgba(var(--success-rgb), .15);--success-border: rgba(var(--success-rgb), .6);--success-stripe: rgba(var(--success-rgb), .08);--secondary-background: rgba(var(--secondary-rgb), .15);--secondary-border: rgba(102, 102, 102, .6);--white-light: rgba(var(--white-rgb), .3);--white-medium: rgba(var(--white-rgb), .5);--white-strong: rgba(var(--white-rgb), .8);--white-bright: rgba(var(--white-rgb), .9);--border-light: rgba(var(--medium-gray-rgb), .3);--border-medium: rgba(var(--medium-gray-rgb), .5);--transition-normal: .3s ease}@layer reset,base,layout,components,utilities,animations;@layer components{.container{max-width:1000px;margin:0 auto;padding:20px;background-color:#fff9f7;min-height:100vh;box-shadow:0 0 10px #0000001a}@media (max-width: 768px){.container{padding:10px}}.inner-wrapper{padding-inline:20px;margin-inline:auto;display:flex;flex-direction:column;gap:15px}@media (max-width: 768px){.inner-wrapper{padding-inline:10px}}.header{background-color:var(--primary-color);color:var(--white);padding:20px;margin-bottom:15px;border-radius:var(--border-radius-md);box-shadow:1px 1px 5px #0003;position:relative;overflow:hidden}@media (max-width: 768px){.header{padding:15px}}.header:before{content:"";position:absolute;width:200px;height:200px;background-color:var(--white);border-radius:50%;bottom:-140px;left:50%;z-index:0;animation:bubbleFloat 8s ease-in-out infinite}@media (max-width: 768px){.header:before{width:100px;height:100px;bottom:-50px;left:-50px;animation:bubbleFloatMobile 5s ease-in-out infinite}}.header:after{content:"";position:absolute;width:120px;height:120px;background-color:var(--white);border-radius:50%;top:-60px;right:-60px;z-index:0;animation:bubbleFloatSmall 6s ease-in-out infinite reverse}@media (max-width: 768px){.header:after{width:60px;height:60px;top:-30px;right:-30px;animation:bubbleFloatSmallMobile 3.5s ease-in-out infinite reverse}}.header-content{display:flex;justify-content:space-between;align-items:flex-end;width:100%;position:relative;z-index:1}@media (max-width: 768px){.header-content{flex-direction:column;align-items:flex-start;gap:10px}}.header-left{flex:1}@media (max-width: 768px){.header-left{display:grid;gap:5px;width:100%;grid-template-areas:"title title" "badge status";align-items:center;position:relative}}.header-right{display:flex;align-items:flex-end;flex-direction:column;justify-content:flex-end;margin-left:20px;gap:12px}@media (max-width: 768px){.header-right{margin-left:0;width:100%;min-height:40px;flex-direction:row;justify-content:space-between}}.main-title{font-size:48px;font-weight:700;margin-bottom:14px;position:relative;text-shadow:0 0 5px var(--primary-color);display:flex;align-items:center;gap:15px}@media (max-width: 900px){.main-title{font-size:36px}}.main-title:before{content:"";display:block;width:50px;height:2px;position:absolute;bottom:-5px;left:0;background-color:var(--white)}@media (max-width: 768px){.main-title:before{bottom:-14px}}@media (max-width: 768px){.main-title{font-size:28px;display:contents}.main-title .title{grid-area:title}}.live-badge{background-color:#f44;color:var(--white);font-size:16px;font-weight:700;padding:6px 12px;border-radius:20px;border:2px solid var(--white);text-transform:uppercase;letter-spacing:1px;box-shadow:0 2px 4px #0000004d;animation:pulse 2s infinite;transition:opacity var(--transition-normal),transform var(--transition-normal)}@media (max-width: 768px){.live-badge{font-size:12px;padding:4px 8px;width:50px;grid-area:badge}}.live-badge[style*="display: none"]{opacity:0;transform:scale(.8)}.status{font-size:24px;transition:color var(--transition-normal)}@media (max-width: 768px){.status{font-size:14px;grid-area:status;flex:1;text-align:right;align-self:flex-end}}.update-time{color:var(--white-bright);margin:0;text-align:right;font-weight:400}@media (max-width: 768px){.update-time{font-size:14px}}.auto-refresh-toggle{position:relative;z-index:2}.toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;transition:opacity var(--transition-normal)}.toggle-label:has(input:disabled){cursor:not-allowed;opacity:.7}.toggle-label:hover .toggle-slider{transform:scale(1.05)}.toggle-label:active .toggle-slider{transform:scale(.95)}.toggle-label input[type=checkbox]{display:none}.toggle-label input[type=checkbox]:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.toggle-label input[type=checkbox]:disabled+.toggle-slider:before{opacity:.6}.toggle-label input[type=checkbox]:checked+.toggle-slider{background-color:var(--white-bright);border-color:var(--white)}.toggle-label input[type=checkbox]:checked+.toggle-slider:before{transform:translate(24px);background-color:var(--primary-color)}@media (max-width: 768px){.toggle-label input[type=checkbox]:checked+.toggle-slider:before{transform:translate(12px)}}.toggle-slider{position:relative;width:48px;height:24px;background-color:var(--white-light);border-radius:12px;transition:all var(--transition-normal);border:2px solid var(--white-medium)}.toggle-slider:before{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background-color:var(--white);border-radius:50%;transition:all var(--transition-normal);box-shadow:0 2px 4px #0003}@media (max-width: 768px){.toggle-slider{width:30px;height:17px}.toggle-slider:before{width:10px;height:10px}}.toggle-text{color:var(--white);font-size:14px;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.3);transition:opacity var(--transition-normal)}@media (max-width: 768px){.toggle-text{font-size:12px}}.candidates{background-color:var(--background-color);padding:20px;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:20px}@media (max-width: 768px){.candidates{padding:0;border-radius:0}}@media (max-width: 768px){.candidates__section .label-section{display:none}}.candidates__header{background-color:var(--primary-color);color:var(--white);padding:10px 20px;border-radius:8px 8px 0 0;margin-bottom:0}@media (max-width: 768px){.candidates__header{padding:5px 15px}}.candidates__title{font-size:24px;font-weight:500;margin:0}@media (max-width: 768px){.candidates__title{font-size:22px;line-height:1.4}}.candidates__region{margin-bottom:20px}@media (max-width: 768px){.candidates__region{margin-bottom:10px}}.candidates__region-title{font-size:20px;font-weight:500;color:var(--primary-color);padding:10px;margin:0 0 10px;transition:background-color var(--transition-normal);border-bottom:1px solid var(--primary-color);scroll-margin-top:88px}@media (max-width: 768px){.candidates__region-title{font-size:20px;margin-bottom:0;padding:5px 10px}}.region-selector{background-color:var(--primary-light);padding:15px 20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:10px;position:sticky;background-color:#fff9f7;top:0;z-index:11}@media (max-width: 768px){.region-selector{gap:8px;padding:10px}}.region-selector label{font-size:16px;color:var(--text-color);font-weight:500;white-space:nowrap}@media (max-width: 768px){.region-selector label{font-size:14px}}.region-select{padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:16px;background-color:var(--background-color);color:var(--text-color);min-width:150px;cursor:pointer;transition:border-color .2s ease}@media (max-width: 768px){.region-select{width:100%;min-width:auto;font-size:14px;padding:12px 10px}}.region-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-medium)}.region-select:hover{border-color:var(--primary-color)}.region-select option{padding:8px}.candidates__table{background-color:var(--background-color);border-radius:var(--border-radius-md);overflow:hidden;box-shadow:0 1px 2px #0000001a}@media (max-width: 768px){.candidates__table{border-radius:0;box-shadow:none}}.candidates__table-header{display:grid;grid-template-columns:2fr 1fr 2.5fr 2.5fr 1.3fr;background-color:var(--surface-color);border-bottom:2px solid var(--border-color)}@media (max-width: 768px){.candidates__table-header{display:none}}.candidates__header-cell{padding:10px;font-weight:500;color:var(--text-color);text-align:center;font-size:16px}.candidates__table-body,.candidates__container{background-color:var(--background-color)}.candidates__row{display:grid;grid-template-columns:2fr 1fr 2.5fr 2.5fr 1.3fr;border-bottom:1px solid var(--border-color);transition:background-color .2s ease}@media (hover: hover){.candidates__row:hover{background-color:var(--primary-light)}}.candidates__row:last-child{border-bottom:none}@media (max-width: 768px){.candidates__row:last-child{border-bottom:1px solid var(--border-color)}}@media (max-width: 768px){.candidates__row{display:grid;grid-template-columns:50px 1fr 95px;grid-template-areas:"photo name result" "photo district result" "progress progress progress" "threshold threshold threshold";gap:0 8px;padding:10px;margin-bottom:0;align-items:center;position:relative}}.candidates__cell{padding:5px 10px;display:flex;align-items:center;justify-content:center;font-size:18px}@media (max-width: 768px){.candidates__cell{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-right:none;border-bottom:1px solid var(--border-medium);font-size:20px}.candidates__cell:before{content:attr(data-label);font-weight:500;color:var(--primary-color);min-width:80px;font-size:18px;align-self:flex-start}.candidates__cell--vote:before{display:none}.candidates__cell:last-child{border-bottom:none}}.candidates__cell--name{justify-content:flex-start;gap:12px}.candidates__cell--district{color:var(--text-color);font-weight:500}@media (max-width: 768px){.candidates__cell--district{font-size:15px;padding:0;border:0;opacity:.6}.candidates__cell--district:before{display:none}}.candidates__cell--vote{color:var(--text-color);font-weight:500;padding:8px;flex-direction:column;align-items:stretch;gap:4px;min-width:200px}@media (max-width: 768px){.candidates__cell--vote{padding:10px 0 0;border:0;grid-area:progress}.candidates__cell--vote:before{display:none}}.candidates__cell--threshold{display:none}.candidates__photo{width:50px;height:50px;border-radius:50%;overflow:hidden;background-color:var(--surface-color);flex-shrink:0}@media (max-width: 768px){.candidates__photo{grid-area:photo}}.candidates__photo-img{width:100%;height:100%;object-fit:cover}.candidates__name{font-size:20px;font-weight:500;color:var(--text-color)}@media (max-width: 768px){.candidates__name{font-size:18px}}.candidates__party{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--white);border-radius:50%;font-size:14px;font-weight:700}.candidates__party-img{max-width:25px}.vote-bars{display:flex;flex-direction:column;gap:3px;width:100%;position:relative}@media (max-width: 768px){.vote-bars{display:grid;grid-template-columns:70px 1fr;grid-template-rows:auto auto;gap:8px 0;align-items:center}}.vote-label{display:none}@media (max-width: 768px){.vote-label{display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;text-align:center;color:var(--white);border-radius:4px 0 0 4px;height:28px;text-shadow:0 1px 2px rgba(0,0,0,.5);border-right:1px solid var(--border-color)}.vote-label--agree{background-color:var(--primary-color);grid-column:1;grid-row:1}.vote-label--disagree{background-color:var(--secondary-color);grid-column:1;grid-row:2}}.vote-bar{position:relative;height:28px;background-color:#f5f5f5;border-radius:4px;border:1px solid #e0e0e0}@media (max-width: 768px){.vote-bar{grid-column:2;border:0}.vote-bar--agree{grid-row:1}.vote-bar--disagree{grid-row:2}}.vote-bar--agree .vote-bar__fill{background-color:var(--primary-color)}.vote-bar--disagree .vote-bar__fill{background-color:var(--secondary-color)}.vote-bar__fill{height:100%;display:flex;align-items:center;justify-content:flex-start;padding:12px 1px;transition:width var(--transition-normal);position:relative;width:var(--fill-width)}@media (max-width: 768px){.vote-bar__fill{border-radius:0 4px 4px 0}}.vote-bar__count{font-size:20px;font-weight:600;white-space:nowrap;z-index:2;padding:0 5px;max-width:85px;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.vote-bar__count{font-size:14px;line-height:1.5;max-width:70px}}.vote-bar__count--outside{color:var(--secondary-color);text-shadow:0 0 2px var(--white-strong);text-shadow:1px 1px 2px rgba(255,255,255,.8),-1px -1px 2px rgba(255,255,255,.8),1px -1px 2px rgba(255,255,255,.8),-1px 1px 2px rgba(255,255,255,.8)}.vote-bar__count--overlay{color:var(--white);text-shadow:1px 1px 2px rgba(0,0,0,.4),-1px -1px 2px rgba(0,0,0,.4),1px -1px 2px rgba(0,0,0,.4),-1px 1px 2px rgba(0,0,0,.4)}.vote-bar__threshold{position:absolute;top:0;height:100%;width:2px;background-color:var(--blue);z-index:3;transform:scaleX(1.5)}@media (max-width: 768px){.vote-bar__threshold{transform:scaleX(1.5)}}.vote-bar__threshold:after{content:"";position:absolute;top:-4px;left:-4px;width:10px;height:6px;background-color:var(--blue)}.vote-bar__threshold:before{content:attr(data-threshold);position:absolute;top:-20px;left:-7px;font-size:10px;color:var(--blue);font-weight:600;white-space:nowrap}@media (max-width: 768px){.vote-bar__threshold:before{font-size:12px;top:-22px}}.candidates__cell--result{color:var(--secondary-color);display:flex;align-items:center;justify-content:center}.candidates__cell--result span{display:inline-block;border-radius:var(--border-radius-md);padding:2px 4px;text-align:center;font-size:14px}@media (max-width: 768px){.candidates__cell--result span{display:flex;align-items:center}.candidates__cell--result span:before{font-size:16px;padding:3px}}.candidates__cell--result span:before{font-size:16px;line-height:1;font-weight:500}.status-pending{border:1px solid var(--secondary-color);background-color:var(--secondary-background)}.status-pending:before{content:"尚未公布";color:var(--secondary-color)}.status-failed{border:1px solid var(--primary-color);background-color:var(--primary-background)}.status-failed:before{content:"罷免否決";color:var(--primary-color)}.status-failed--self{border:2px dashed var(--primary-color);background:repeating-linear-gradient(45deg,var(--primary-stripe),var(--primary-stripe) 4px,transparent 4px,transparent 8px)}.status-failed--self:before{content:"自宣否決";color:var(--primary-color)}.status-passed{border:1px solid var(--success-color);background-color:var(--success-background)}.status-passed:before{content:"罷免通過";color:var(--success-color)}.status-passed--self{border:2px dashed var(--success-color);background:repeating-linear-gradient(45deg,var(--success-stripe),var(--success-stripe) 4px,transparent 4px,transparent 8px)}.status-passed--self:before{content:"自宣通過";color:var(--success-color)}.label-section{display:flex;justify-content:flex-start;gap:20px;padding:0 10px;margin-top:10px;font-size:14px}@media (max-width: 768px){.label-section{padding:0;margin-top:8px;gap:15px}}.label-item{display:flex;align-items:center;gap:6px}.label-color{width:12px;height:12px;border-radius:2px}.label-color.passed{background-color:var(--primary-color)}.label-color.failed{background-color:var(--secondary-color)}.label-text{color:var(--text-color);font-weight:500}}@layer utilities{.ios-iframe .candidates__region-title{scroll-margin-top:88px;padding-top:20px}.ios-iframe .candidates__region:first-child .candidates__region-title{margin-top:-20px}@media (max-width: 768px){.candidates__cell--name{display:contents;padding-bottom:0;padding-top:0;border-bottom:0}.candidates__cell--name:before{display:none}.candidates__cell--party{display:none}.candidates__cell--result{padding:0;grid-area:result;margin-left:auto;justify-content:flex-end}.candidates__cell--result:before{display:none}.candidates__cell--threshold{display:flex;grid-area:threshold;padding:4px 0;font-size:12px;color:var(--primary-color);border-bottom:1px solid var(--border-light);justify-content:flex-start;align-items:center}.candidates__cell--threshold:before{content:"通過門檻：";font-weight:500;color:var(--primary-color);font-size:14px}}}@layer animations{@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}to{transform:scale(1);opacity:1}}@keyframes bubbleFloat{0%{transform:translate(0) scale(1);opacity:.08}25%{transform:translate(15px,-8px) scale(1.01);opacity:.1}50%{transform:translate(8px,-15px) scale(.99);opacity:.08}75%{transform:translate(-8px,-8px) scale(1.01);opacity:.06}to{transform:translate(0) scale(1);opacity:.08}}@keyframes bubbleFloatSmall{0%{transform:translate(0) scale(1);opacity:.06}33%{transform:translate(-12px,8px) scale(1.02);opacity:.08}66%{transform:translate(-6px,15px) scale(.98);opacity:.04}to{transform:translate(0) scale(1);opacity:.06}}@keyframes bubbleFloatMobile{0%{transform:translate(0) scale(1);opacity:.1}50%{transform:translate(5px,-5px) scale(1.01);opacity:.12}to{transform:translate(0) scale(1);opacity:.1}}@keyframes bubbleFloatSmallMobile{0%{transform:translate(0) scale(1);opacity:.08}50%{transform:translate(-4px,3px) scale(1.03);opacity:.1}to{transform:translate(0) scale(1);opacity:.08}}}@layer reset,base,layout,components,utilities,animations;@layer reset{*{margin:0;padding:0;box-sizing:border-box}html{scroll-padding-top:68px;scroll-behavior:smooth}@media (max-width: 768px){html{scroll-padding-top:53px}}body{font-family:var(--font-family);background-color:var(--background-color);color:var(--text-color);line-height:1.6}@supports (-webkit-touch-callout: none){body{padding-top:0;--parent-sticky-offset: 0px}@media screen and (max-width: 768px){body{padding-top:var(--parent-sticky-offset, 0px)}}}body.ios-iframe{padding-top:var(--parent-sticky-offset, 88px)}}@layer components{.container{max-width:1000px;margin:0 auto;padding:20px;background-color:#fff9f7;min-height:100vh;box-shadow:0 0 10px #0000001a}@media (max-width: 768px){.container{padding:10px}}.inner-wrapper{padding-inline:20px;margin-inline:auto;display:flex;flex-direction:column;gap:15px}@media (max-width: 768px){.inner-wrapper{padding-inline:10px}}.header{background-color:var(--primary-color);color:var(--white);padding:20px;margin-bottom:15px;border-radius:var(--border-radius-md);box-shadow:1px 1px 5px #0003;position:relative;overflow:hidden}@media (max-width: 768px){.header{padding:15px}}.header:before{content:"";position:absolute;width:200px;height:200px;background-color:var(--white);border-radius:50%;bottom:-140px;left:50%;z-index:0;animation:bubbleFloat 8s ease-in-out infinite}@media (max-width: 768px){.header:before{width:100px;height:100px;bottom:-50px;left:-50px;animation:bubbleFloatMobile 5s ease-in-out infinite}}.header:after{content:"";position:absolute;width:120px;height:120px;background-color:var(--white);border-radius:50%;top:-60px;right:-60px;z-index:0;animation:bubbleFloatSmall 6s ease-in-out infinite reverse}@media (max-width: 768px){.header:after{width:60px;height:60px;top:-30px;right:-30px;animation:bubbleFloatSmallMobile 3.5s ease-in-out infinite reverse}}.header-content{display:flex;justify-content:space-between;align-items:flex-end;width:100%;position:relative;z-index:1}@media (max-width: 768px){.header-content{flex-direction:column;align-items:flex-start}}.header-left{flex:1}@media (max-width: 768px){.header-left{display:grid;gap:5px;width:100%;grid-template-areas:"title title" "badge status";align-items:center;position:relative}}.header-right{display:flex;align-items:flex-end;flex-direction:column;justify-content:flex-end;margin-left:10px;gap:12px}@media (max-width: 768px){.header-right{margin-left:0;width:100%;flex-direction:row;justify-content:space-between}}.main-title{font-size:46px;font-weight:700;margin-bottom:14px;position:relative;text-shadow:0 0 5px var(--primary-color);display:flex;align-items:center;gap:15px}@media (max-width: 900px){.main-title{font-size:32px}}.main-title:before{content:"";display:block;width:50px;height:2px;position:absolute;bottom:-5px;left:0;background-color:var(--white)}@media (max-width: 768px){.main-title:before{bottom:-14px}}@media (max-width: 768px){.main-title{font-size:28px;display:contents}.main-title .title{grid-area:title}}.live-badge{background-color:#f44;color:var(--white);font-size:16px;font-weight:700;padding:6px 12px;border-radius:20px;border:2px solid var(--white);text-transform:uppercase;letter-spacing:1px;box-shadow:0 2px 4px #0000004d;animation:pulse 2s infinite;transition:opacity var(--transition-normal),transform var(--transition-normal)}@media (max-width: 768px){.live-badge{font-size:12px;padding:4px 8px;width:50px;grid-area:badge}}.live-badge[style*="display: none"]{opacity:0;transform:scale(.8)}.status{font-size:24px;transition:color var(--transition-normal)}@media (max-width: 768px){.status{font-size:14px;grid-area:status;flex:1;text-align:right;align-self:flex-end}}.update-time{color:var(--white-bright);margin:0;text-align:right;font-weight:400}@media (max-width: 768px){.update-time{font-size:14px}}.auto-refresh-toggle{position:relative;z-index:2}.toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;transition:opacity var(--transition-normal)}.toggle-label:has(input:disabled){cursor:not-allowed;opacity:.7}.toggle-label:hover .toggle-slider{transform:scale(1.05)}.toggle-label:active .toggle-slider{transform:scale(.95)}.toggle-label input[type=checkbox]{display:none}.toggle-label input[type=checkbox]:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.toggle-label input[type=checkbox]:disabled+.toggle-slider:before{opacity:.6}.toggle-label input[type=checkbox]:checked+.toggle-slider{background-color:var(--white-bright);border-color:var(--white)}.toggle-label input[type=checkbox]:checked+.toggle-slider:before{transform:translate(24px);background-color:var(--primary-color)}@media (max-width: 768px){.toggle-label input[type=checkbox]:checked+.toggle-slider:before{transform:translate(12px)}}.toggle-slider{position:relative;width:48px;height:24px;background-color:var(--white-light);border-radius:12px;transition:all var(--transition-normal);border:2px solid var(--white-medium)}.toggle-slider:before{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background-color:var(--white);border-radius:50%;transition:all var(--transition-normal);box-shadow:0 2px 4px #0003}@media (max-width: 768px){.toggle-slider{width:30px;height:17px}.toggle-slider:before{width:10px;height:10px}}.toggle-text{color:var(--white);font-size:14px;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.3);transition:opacity var(--transition-normal)}@media (max-width: 768px){.toggle-text{font-size:12px}}.section-heading{background-color:var(--primary-color);color:var(--white);padding:10px 20px;border-radius:8px 8px 0 0;margin-bottom:0;font-size:24px;font-weight:500}@media (max-width: 768px){.section-heading{padding:5px 15px;font-size:22px;line-height:1.4}}.section-container{background-color:var(--background-color);border-radius:var(--border-radius-md);box-shadow:1px 1px 2px #0003}.vote-summary{display:flex;gap:20px;align-items:stretch;padding:20px}@media (max-width: 768px){.vote-summary{display:grid;padding:10px;grid-template-areas:"a a" "b c";gap:10px;margin-bottom:10px}}.summary-card{flex:1;padding:15px 20px;border-radius:var(--border-radius-md);box-shadow:1px 1px 5px #0003;text-align:center;display:flex;flex-direction:column;justify-content:space-between;min-height:140px;gap:5px}@media (max-width: 768px){.summary-card{min-width:auto;min-height:inherit;padding:10px 15px}}.summary-card.count-card{background-color:var(--primary-color);color:var(--white);text-align:center;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center}@media (max-width: 768px){.summary-card.count-card{grid-area:a;display:flex;flex-direction:row;text-align:left;gap:5px;text-align:center;align-items:center;justify-content:center;padding:5px 10px;background:#fff;box-shadow:0 2px 4px #0000001a;color:var(--primary-color)}.summary-card.count-card .card-header{flex:2}.summary-card.count-card .card-number{font-size:26px;line-height:1;text-align:center;flex:1}}.summary-card.status-card{display:flex;flex-direction:column;align-items:center;justify-content:space-around;gap:5px}.summary-card.status-card.passed{background-color:var(--background-color);color:var(--success-color);border-top:6px solid var(--success-border)}.summary-card.status-card.failed{background-color:var(--background-color);color:var(--secondary-color);border-top:6px solid var(--secondary-border)}.card-icon{display:flex;align-items:center;justify-content:center;color:var(--white)}@media (max-width: 768px){.card-icon{color:var(--primary-color)}}.card-icon svg{width:48px;height:48px}@media (max-width: 768px){.card-icon svg{width:36px;height:36px}}@media (max-width: 768px){.card-icon{flex-shrink:0;flex:1}}.card-header{font-size:22px;font-weight:500}@media (max-width: 768px){.card-header{font-size:20px}}.card-number{font-size:56px;font-weight:700;line-height:1}@media (max-width: 768px){.card-number{font-size:32px;line-height:1.45}}.status-icon{font-size:40px;font-weight:700;line-height:1}@media (max-width: 768px){.status-icon{font-size:32px}}.status-text{font-size:24px;font-weight:500}@media (max-width: 768px){.status-text{font-size:20px}}.status-no{font-size:56px;font-weight:600;line-height:1}@media (max-width: 768px){.status-no{font-size:32px}}.status-card.passed .status-icon{color:var(--success-color)}.status-card.failed .status-icon{color:var(--secondary-color)}.referendum-section .referendum-content{min-height:100px}.referendum-container{display:flex;flex-direction:column;gap:20px}@media (max-width: 768px){.referendum-container{gap:15px}}.referendum-card{background-color:var(--background-color);padding:15px;width:100%}@media (max-width: 768px){.referendum-card{border-radius:0;box-shadow:none;padding:10px}}.referendum-card__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px;gap:10px}@media (max-width: 768px){.referendum-card__header{display:grid;grid-template-areas:"image title status" "image description description";grid-template-columns:60px 1fr 80px;gap:5px}}.referendum-card__info{display:flex;align-items:flex-start;gap:15px;flex:1}@media (max-width: 768px){.referendum-card__info{display:contents}}.referendum-card__photo{width:80px;height:80px;border-radius:50%;overflow:hidden;background-color:var(--surface-color);flex-shrink:0}.referendum-card__photo img{width:100%;height:100%;object-fit:cover}@media (max-width: 768px){.referendum-card__photo{width:60px;height:60px;grid-area:image}}.referendum-card__details{flex:1;min-width:0}@media (max-width: 768px){.referendum-card__details{display:contents}}.referendum-card__title{font-size:20px;font-weight:500;color:var(--text-color);margin-bottom:4px;line-height:1.2}@media (max-width: 768px){.referendum-card__title{font-size:18px;grid-area:title;margin-bottom:0;align-self:center}}.referendum-card__area{font-size:16px;color:var(--secondary-color);font-weight:400}@media (max-width: 768px){.referendum-card__area{font-size:14px}}.referendum-card__description{font-size:16px;color:var(--text-color);font-weight:400;margin-top:8px;line-height:1.4}@media (max-width: 768px){.referendum-card__description{grid-area:description;margin-top:0}}.referendum-card__result{display:flex;align-items:center;justify-content:center;min-width:90px;height:32px;border-radius:var(--border-radius-md);font-size:18px;font-weight:500;text-align:center;flex-shrink:0}@media (max-width: 768px){.referendum-card__result{min-width:80px;font-size:16px;grid-area:status}}.referendum-card__result.status-referendum-pending{border:1px solid var(--secondary-color);background-color:var(--secondary-background);color:var(--secondary-color)}.referendum-card__result.status-referendum-pending:before{content:"尚未公布"}.referendum-card__result.status-referendum-passed{border:1px solid var(--success-color);background-color:var(--success-background);color:var(--success-color)}.referendum-card__result.status-referendum-passed:before{content:"公投通過"}.referendum-card__result.status-referendum-failed{border:1px solid var(--primary-color);background-color:var(--primary-background);color:var(--primary-color)}.referendum-card__result.status-referendum-failed:before{content:"公投否決"}.referendum-card__progress{margin-bottom:15px}@media (max-width: 768px){.referendum-card__progress{margin-bottom:10px}}.referendum-card__threshold{display:flex;align-items:center;justify-content:flex-start;gap:8px;font-size:16px;color:var(--text-color)}@media (max-width: 768px){.referendum-card__threshold{font-size:14px;padding:8px 0}}.recall-section .recall-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;padding:20px}@media (max-width: 768px){.recall-section .recall-grid{grid-template-columns:1fr;gap:15px;padding:0}}.recall-card{background-color:var(--background-color);border-radius:var(--border-radius-md);border:1px solid var(--border-color);padding:15px;box-shadow:0 2px 4px #0000001a;transition:transform .2s ease,box-shadow .2s ease}@media (max-width: 768px){.recall-card{border-radius:0;box-shadow:none;padding:15px}}.recall-card__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:10px}.recall-card__info{display:flex;align-items:flex-start;gap:12px;flex:1}.recall-card__photo{width:60px;height:60px;border-radius:50%;overflow:hidden;background-color:var(--surface-color);flex-shrink:0}.recall-card__photo img{width:100%;height:100%;object-fit:cover}@media (max-width: 768px){.recall-card__photo{width:50px;height:50px}}.recall-card__details{flex:1;min-width:0}.recall-card__name{font-size:20px;font-weight:500;color:var(--text-color);margin-bottom:4px;line-height:1.2}@media (max-width: 768px){.recall-card__name{font-size:18px}}.recall-card__area{font-size:16px;color:var(--text-color);font-weight:400}.recall-card__result{display:flex;align-items:center;justify-content:center;min-width:90px;height:32px;border-radius:var(--border-radius-md);font-size:18px;font-weight:500;text-align:center;flex-shrink:0}@media (max-width: 768px){.recall-card__result{min-width:80px;height:28px;font-size:16px}}.recall-card__result.status-pending{border:1px solid var(--secondary-color);background-color:var(--secondary-background);color:var(--secondary-color)}.recall-card__result.status-pending:before{content:"尚未公布"}.recall-card__result.status-passed{border:1px solid var(--success-color);background-color:var(--success-background);color:var(--success-color)}.recall-card__result.status-passed:before{content:"罷免通過"}.recall-card__result.status-failed{border:1px solid var(--primary-color);background-color:var(--primary-background);color:var(--primary-color)}.recall-card__result.status-failed:before{content:"罷免否決"}.recall-card__result.status-passed--self{border:2px dashed var(--success-color);background:repeating-linear-gradient(45deg,var(--success-background),var(--success-background) 4px,transparent 4px,transparent 8px);color:var(--success-color)}.recall-card__result.status-passed--self:before{content:"自宣通過"}.recall-card__result.status-failed--self{border:2px dashed var(--primary-color);background:repeating-linear-gradient(45deg,var(--primary-background),var(--primary-background) 4px,transparent 4px,transparent 8px);color:var(--primary-color)}.recall-card__result.status-failed--self:before{content:"自宣否決"}.recall-card__progress{margin-bottom:10px}.progress-merged{display:flex;flex-direction:column;gap:4px}.progress-percentage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:15px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3);white-space:nowrap;z-index:2;transition:color var(--transition-normal)}.progress-percentage--filled{color:var(--white)}.progress-percentage--empty{position:relative;transform:none;left:auto;top:auto;text-shadow:none}.progress-percentage--empty.progress-percentage--agree{color:var(--primary-color)}.progress-percentage--empty.progress-percentage--disagree{color:var(--secondary-color)}.progress-merged__bar{height:30px;border-radius:15px;overflow:hidden;border:1px solid var(--border-color);display:flex;position:relative;background-color:var(--surface-color)}@media (max-width: 768px){.progress-merged__bar{height:32px;border-radius:16px}}.progress-merged__segment{height:100%;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal);position:relative;min-width:0;cursor:pointer}.progress-merged__segment--agree{background-color:var(--primary-color);color:var(--white);border-top-left-radius:inherit;border-bottom-left-radius:inherit}.progress-merged__segment--disagree{background-color:var(--secondary-color);color:var(--white);border-top-right-radius:inherit;border-bottom-right-radius:inherit}.progress-merged__segment[style*="width: 0"] .progress-percentage,.progress-merged__segment[style*="width: 0.0"] .progress-percentage{display:none}.progress-merged__votes{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500}@media (max-width: 768px){.progress-merged__votes{font-size:12px}}.vote-count{display:flex;flex-flow:column;line-height:1.43;font-size:20px}.vote-count:before{content:" ";font-size:70%}.vote-count--agree{color:var(--primary-color);text-align:left;align-items:flex-start}.vote-count--agree:before{content:"同意"}.vote-count--disagree{color:var(--gray);text-align:right;align-items:flex-end}.vote-count--disagree:before{content:"不同意"}.recall-card__threshold{display:flex;align-items:center;justify-content:flex-start;gap:4px;font-size:16px;color:var(--text-color)}@media (max-width: 768px){.recall-card__threshold{padding:0}}.threshold-text{font-weight:500}.threshold-value{font-weight:600;line-height:1.2;color:var(--success-color)}.threshold-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background-color:var(--success-color);color:var(--white);font-size:12px;font-weight:700;opacity:0;transform:scale(.8);transition:all var(--transition-normal)}@media (max-width: 768px){.threshold-icon{width:18px;height:18px;font-size:10px}}.threshold-icon.show{opacity:1;transform:scale(1)}.threshold-icon:before{content:"✓"}.loading-message{text-align:center;padding:20px;color:var(--secondary-color);font-size:16px;font-weight:500}.error-message{text-align:center;padding:20px;color:var(--primary-color);background-color:var(--background-color);border-radius:var(--border-radius-md);margin:16px 0}.error-message p{margin:0 0 16px;font-size:16px;font-weight:500;line-height:1.5}@media (max-width: 768px){.error-message{padding:16px;margin:12px 0}.error-message p{font-size:14px}}.small-note{text-align:left;color:var(--text-color);font-size:14px;display:block;padding:0 20px 20px}@media (max-width: 768px){.small-note{padding:10px 15px;font-size:12px}}}@layer animations{@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}to{transform:scale(1);opacity:1}}@keyframes bubbleFloat{0%{transform:translate(0) scale(1);opacity:.08}25%{transform:translate(15px,-8px) scale(1.01);opacity:.1}50%{transform:translate(8px,-15px) scale(.99);opacity:.08}75%{transform:translate(-8px,-8px) scale(1.01);opacity:.06}to{transform:translate(0) scale(1);opacity:.08}}@keyframes bubbleFloatSmall{0%{transform:translate(0) scale(1);opacity:.06}33%{transform:translate(-12px,8px) scale(1.02);opacity:.08}66%{transform:translate(-6px,15px) scale(.98);opacity:.04}to{transform:translate(0) scale(1);opacity:.06}}@keyframes bubbleFloatMobile{0%{transform:translate(0) scale(1);opacity:.1}50%{transform:translate(5px,-5px) scale(1.01);opacity:.12}to{transform:translate(0) scale(1);opacity:.1}}@keyframes bubbleFloatSmallMobile{0%{transform:translate(0) scale(1);opacity:.08}50%{transform:translate(-4px,3px) scale(1.03);opacity:.1}to{transform:translate(0) scale(1);opacity:.08}}}
