:root{--ink:#172e29;--forest:#223f37;--mint:#eee9dc;--lime:#c2a567;--paper:#f1eee4;--muted:#68716a;--line:#d8d7ca}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif;font-size:16px}button,input,select{font:inherit}button,select{cursor:pointer}button{border:0}button:focus-visible,input:focus-visible,select:focus-visible,.grid:focus-visible{outline:3px solid #666666;outline-offset:3px}[hidden]{display:none!important}.topbar{min-height:62px;padding:10px 3vw;display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line);background:#fbfaf6}.brandMark{width:38px;height:38px;border-radius:10px;background:var(--forest);color:var(--lime);display:grid;place-items:center;font-weight:800}.topbar strong{display:block;font-size:16px}.topbar span{font-size:13px;color:var(--muted)}main{padding:14px 3vw 10px}.controls{background:#24443b;color:#fffdf6;border:1px solid #24443b;border-radius:12px;padding:15px 22px;margin-bottom:12px}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{font:700 12px Arial;letter-spacing:.15em;color:#c2a567}h1{font-size:24px;letter-spacing:-.035em;margin:4px 0 0}.mode{display:flex;padding:4px;border:1px solid #718278;border-radius:8px;gap:4px}.mode button{border-radius:7px;padding:11px 17px;background:transparent;color:#d5dfd6;font-size:15px}.mode button[aria-pressed=true]{background:#f2eddf;color:#223f37;font-weight:700}.mode span{font-size:12px;margin-left:5px}.filterrow{margin-top:12px;display:flex;align-items:end;gap:16px}.filterrow label{font-size:14px;color:#d5dfd6;min-width:150px}.filterrow select{display:block;margin-top:5px;border:1px solid #dddddd;background:white;color:var(--ink);width:100%;padding:11px 36px 11px 13px;border-radius:9px;min-height:46px}.result{display:flex;align-items:baseline;gap:9px;padding:8px 12px}.result strong{font-size:26px;color:#e2c58c;font-variant-numeric:tabular-nums}.result span{font-size:14px;color:#d5dfd6}.primary,.secondary{padding:12px 18px;border-radius:9px;font-weight:700;min-height:46px}.primary{background:var(--lime);color:var(--forest)}.secondary{background:#f1ece2;color:var(--forest)}#choose{margin-left:auto}#chosenCount{font-size:13px;margin-left:14px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.chip{background:#f9f5ec;color:#51473c;border:1px solid #d4c9b7;border-radius:6px;padding:6px 10px;font-size:14px}.chip button{background:none;color:#70685c;margin-left:10px;min-width:24px;min-height:24px}.comparison{background:#fffdf9;border:1px solid var(--line);border-radius:14px;overflow:hidden}.tablebar{padding:10px 15px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.tablebar strong{font-size:16px}.tablebar span{font-size:13px;color:var(--muted)}.grid{overflow:auto;height:calc(100dvh - 270px);max-height:none;min-height:420px;scrollbar-color:#999999 #f1ece2}table{border-spacing:0;table-layout:fixed;width:max-content;min-width:100%;font-size:15px;line-height:1.5}th,td{width:265px;min-width:265px;max-width:265px;padding:10px 15px;text-align:left;vertical-align:top;border-right:1px solid #e7e1d6;border-bottom:1px solid #e7e1d6;overflow-wrap:anywhere}thead th{position:sticky;top:0;z-index:3;background:var(--mint);color:var(--forest);font-size:17px;border-bottom:2px solid #d4c9b7}thead th:first-child{z-index:5}tr>th:first-child{position:sticky;left:0;width:210px;min-width:210px;max-width:210px;background:#f7f4ed;z-index:2;font-weight:500}thead tr>th:first-child{background:var(--mint);z-index:5;font-weight:700;font-size:15px}tbody tr:nth-child(even)>td{background:#fdfbf7}.section th,.section td{background:#24443b!important;color:#fffdf6;font-weight:700!important;padding-top:9px;padding-bottom:9px}.broad th{background:var(--mint)!important;color:var(--forest);font-weight:700!important}.broad td{padding-top:20px;padding-bottom:20px;line-height:1.9;min-height:100px}.missing{color:#a39e94}.source a{color:var(--forest);margin-right:12px;text-underline-offset:3px}.empty{padding:72px 24px;text-align:center;color:var(--muted)}footer{font-size:13px;line-height:1.7;color:var(--muted);padding:12px 1px}dialog{border:1px solid var(--line);border-radius:18px;padding:24px;max-width:620px;width:calc(100% - 32px);max-height:90vh;color:var(--ink);box-shadow:0 24px 80px #20202033}dialog::backdrop{background:#20202080}.dialoghead{display:flex;justify-content:space-between;gap:15px}h2{margin:0;font-size:24px}.dialoghead p{font-size:14px;color:var(--muted);line-height:1.5}.icon{background:#f1ece2;border-radius:50%;width:36px;height:36px;flex-shrink:0}.searchlabel,.pickerfilters label{display:block;font-size:14px}.searchlabel input,.pickerfilters select{display:block;width:100%;padding:11px 12px;border:1px solid #d4c9b7;border-radius:8px;background:white;margin-top:6px}.pickerfilters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:14px}#pickStatus{font-size:14px;margin:14px 0;color:var(--forest)}.options{max-height:35vh;overflow:auto;border-top:1px solid var(--line)}.option{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line);cursor:pointer}.option input{accent-color:var(--forest);width:19px;height:19px;flex-shrink:0}.option strong{font-size:16px;font-weight:500}.option small{display:block;color:var(--muted);font-size:13px;margin-top:4px}.option:has(input:disabled){opacity:.45;cursor:not-allowed}.dialogfoot{display:flex;justify-content:space-between;gap:12px;padding-top:18px}.primary:disabled{opacity:.4;cursor:not-allowed}@media(max-width:700px){.topbar{padding:12px 18px}.topbar strong{font-size:14px}main{padding:16px 12px}.controls{padding:20px 16px}.heading{align-items:start;flex-direction:column;gap:16px}.mode{width:100%}.mode button{flex:1;padding:10px 6px}.filterrow{flex-wrap:wrap;gap:12px;margin-top:16px}.filterrow label{min-width:0;flex:1 1 40%}.result{padding:0}.result strong{font-size:25px}#choose{margin-left:auto}.tablebar{padding:12px}.tablebar strong{font-size:14px}.tablebar span{font-size:12px}.grid{height:72dvh;max-height:none;min-height:480px}th,td{min-width:230px;width:230px;max-width:230px;padding:12px}tr>th:first-child{min-width:145px;width:145px;max-width:145px;font-size:14px}.broad td{font-size:15px}h1{font-size:24px}.pickerfilters{grid-template-columns:1fr 1fr}.pickerfilters label:first-child{grid-column:1/-1}}

#district[data-empty="true"]{color:#8a8378}


.statusWarning{display:block;font-size:12px;color:#80652f;margin-top:5px;font-weight:400}

.accountBar{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.accountBar span{overflow-wrap:anywhere}.loginPanel{max-width:500px;margin:7vh auto;padding:32px;background:#fffdf9;border:1px solid var(--line);border-radius:16px}.loginPanel h1{font-size:30px}.loginPanel p{line-height:1.7;color:var(--muted)}.loginPanel form{display:grid;gap:18px;margin-top:25px}.loginPanel label,.addMemberForm label{display:block;font-size:16px}.loginPanel input,.addMemberForm input{display:block;width:100%;padding:13px;border:1px solid var(--line);border-radius:8px;margin-top:7px;background:white}.loginActions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.textButton{color:var(--forest);background:transparent;text-decoration:underline;padding:10px}.addMemberForm{display:flex;gap:12px;align-items:end;margin:20px 0}.addMemberForm label{flex:1}.memberList{max-height:40vh;overflow:auto}.memberRow{display:flex;gap:10px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.memberRow>div{flex:1;min-width:0}.memberRow strong{overflow-wrap:anywhere;font-size:16px}.memberRow small{display:block;font-size:14px;color:var(--muted);margin-top:5px}.syncPanel{margin-top:24px;border-top:1px solid var(--line);padding-top:12px}.syncPanel p{line-height:1.6;color:var(--muted);font-size:14px}#adminNotice,#loginNotice{color:#80652f;line-height:1.6}#dataDate{font-size:13px;color:#d5dfd6}button:disabled{cursor:not-allowed;opacity:.5}@media(max-width:700px){.topbar{flex-wrap:wrap}.accountBar{width:100%;justify-content:flex-start}.loginPanel{margin:25px 12px;padding:24px}.addMemberForm{align-items:stretch;flex-direction:column}.memberRow{flex-wrap:wrap}.memberRow>div{flex-basis:100%}}


.tableActions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tableActions button{white-space:nowrap}#exportNotice{font-size:13px;color:var(--muted)}@media(max-width:700px){.tablebar{flex-wrap:wrap;gap:12px}.tableActions>span:first-child{display:none}}
