:root{--ink:#153348;--navy:#0b2031;--teal:#087e79;--mint:#65e0cb;--amber:#e6a345;--line:#d9e2e8;--muted:#4d6776;--paper:#f4f7fa;font-family:system-ui,-apple-system,"Noto Sans TC",sans-serif;color:var(--ink);font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,select{font:inherit}button{cursor:pointer;background:white;border:1px solid #a8bbc7;border-radius:7px;padding:.6rem .9rem;min-height:44px;color:var(--ink);font-weight:600}button:hover{background:#eef6f7;border-color:var(--teal)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #d57706;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}a{color:var(--teal);text-underline-offset:3px}header{height:78px;background:var(--navy);color:white;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{color:white;display:flex;gap:12px;align-items:center;text-decoration:none;font-size:18px;font-weight:700}.brandmark{width:40px;height:40px;display:grid;place-items:center;border:1px solid #4ea89e;color:var(--mint);font-size:26px}.brand small{display:block;font-size:12px;letter-spacing:.08em;font-weight:400;color:#bbd2df;margin-top:4px}.header-actions{display:flex;gap:12px;align-items:center}.badge{font-size:13px;border:1px solid #507388;border-radius:20px;padding:5px 10px;color:#d9e9ef}.header-actions button{background:transparent;color:white;border-color:#6b899d}main{display:grid;grid-template-columns:minmax(0,1fr) 370px;height:calc(100dvh - 78px)}.map-wrap{position:relative;min-height:360px;background:#13364b;overflow:hidden}#cesiumContainer{position:absolute;inset:0}.map-top{position:absolute;top:18px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;pointer-events:none}.map-top>label,.map-buttons{pointer-events:auto;background:#ffffffed;padding:9px;border:1px solid #d3e1e8;box-shadow:0 3px 18px #0002;border-radius:9px}.map-top>label{font-size:12px;color:var(--muted);display:grid;gap:3px}.map-top select{border:0;padding:3px 5px;font-weight:650;min-height:30px;width:140px;background:transparent;color:var(--ink)}.map-buttons{display:flex;gap:5px;padding:5px}.map-buttons button{font-size:14px;border:0;background:transparent}.map-legend{position:absolute;left:18px;bottom:55px;background:#fffffff2;border:1px solid var(--line);border-radius:6px;padding:8px 12px;display:flex;gap:14px;flex-wrap:wrap;font-size:12px}.map-legend span{display:flex;gap:6px;align-items:center}.map-legend i{width:10px;height:10px;border-radius:2px}.teal{background:#168c8a}.amber{background:var(--amber)}.blue{background:#639bfd}.map-notice{position:absolute;bottom:84px;left:18px;max-width:min(650px,calc(100% - 36px));padding:10px 14px;background:#0b2031e8;color:white;font-size:14px;line-height:1.6;border-radius:7px}.map-notice:empty{display:none}.map-failure{position:absolute;inset:100px 30px;z-index:4;background:#f4f8fbe8;padding:24px;max-width:550px;height:fit-content;border-radius:9px}.map-failure[hidden]{display:none}aside{overflow-y:auto;padding:0 22px 24px;background:#fff;border-left:1px solid var(--line);scrollbar-gutter:stable}.tabs{display:flex;position:sticky;top:0;padding-top:12px;padding-bottom:12px;background:#fff;z-index:3;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs button{flex:1;border:0;color:var(--muted);border-radius:5px}.tabs button[aria-selected=true]{color:white;background:var(--teal)}.panel-heading{margin-bottom:18px}.eyebrow{color:var(--teal);font-size:12px;font-weight:700;letter-spacing:.12em;margin:0 0 7px}h1,h2{font-size:23px;line-height:1.45;letter-spacing:-.03em;margin:0 0 10px}h3{font-size:16px;line-height:1.5;margin:0 0 9px}.panel-heading p:not(.eyebrow),.source-card p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}.primary{background:var(--teal);border-color:var(--teal);color:white}.primary:hover{background:#086660;color:white}.wide{width:100%;margin:4px 0 10px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}label{display:block;font-size:14px;color:var(--muted);font-weight:550}input[type=number]{width:100%;padding:11px 9px;margin-top:5px;border:1px solid #a8bdc9;border-radius:6px;background:#f8fafb;color:var(--ink);min-width:0}input[type=range]{width:100%;accent-color:var(--teal);min-height:30px;margin-top:6px}.range-label{display:block;margin:12px 0 20px}.range-label output{float:right;font-weight:700;color:var(--ink)}.full{grid-column:1/-1}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.metrics span{display:block;font-size:12px;color:var(--muted);line-height:1.5}.metrics strong{font-size:25px;line-height:1.7;font-variant-numeric:tabular-nums;font-weight:650}.metrics small{font-size:13px;font-weight:400}.helper,.caution{font-size:13px;line-height:1.8;color:var(--muted)}.caution{border-left:3px solid #c68b37;padding-left:12px;margin:18px 0}.secondary{background:var(--paper)}.source-card{border:1px solid var(--line);padding:15px;border-radius:8px;margin-bottom:15px}.status{font-size:12px;display:block;padding:9px 0;color:var(--teal)}.status.error{color:#96371f}.switch{display:flex;align-items:center;gap:8px}.switch input{width:18px;height:18px;accent-color:var(--teal)}.ratio-track{height:8px;background:#e2e8ec;border-radius:5px;overflow:hidden}.ratio-track span{display:block;height:100%;width:33%;background:var(--teal);transition:width .1s}.comparison{padding:14px;border:1px solid var(--line);border-radius:8px;margin:8px 0}.comparison p{font-size:14px;line-height:1.75}.form-status{color:#a43821;font-size:14px;line-height:1.7}.skip{position:fixed;top:-80px;left:20px;z-index:50;padding:12px;background:white}.skip:focus{top:12px}dialog{max-width:740px;width:calc(100% - 32px);max-height:88dvh;overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:24px;color:var(--ink)}dialog::backdrop{background:#00152599}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:sticky;top:-24px;background:white;padding:8px 0}.dialog-head button{flex-shrink:0}dialog p,dialog li{font-size:15px;line-height:1.9}dialog li{margin:8px 0}dialog h3{margin-top:20px}[hidden]{display:none!important}.cesium-widget-credits{background:#ffffffdc!important;font-size:10px!important;color:#1c3445!important;max-width:calc(100% - 8px)}.cesium-credit-logoContainer img{max-height:18px!important}.cesium-viewer-bottom{max-width:calc(100% - 10px)}@media(max-width:980px){main{grid-template-columns:minmax(0,1fr) 330px}aside{padding-left:16px;padding-right:16px}.map-buttons{flex-direction:column}.map-top{left:12px;right:12px}}@media(max-width:700px){header{height:70px;padding:0 12px}.brand{font-size:15px;gap:8px}.brandmark{width:30px;height:34px;font-size:22px}.brand small{font-size:10px}.badge{display:none}.header-actions button{font-size:12px;padding:7px;max-width:95px;min-height:40px}main{display:flex;flex-direction:column;height:auto}.map-wrap{height:48dvh;min-height:330px;flex:none}aside{overflow:visible;border-left:0;padding:0 18px 25px;scrollbar-gutter:auto}.tabs{top:0;margin-bottom:18px}.map-buttons button{font-size:12px;padding:5px 8px;min-height:34px}.map-top{top:10px}.map-legend{bottom:30px;font-size:10px;gap:8px;padding:6px 9px;left:10px}.map-notice{bottom:58px;left:10px;font-size:12px;padding:7px 10px;margin:0;max-width:calc(100% - 20px)}.map-top select{font-size:14px;width:128px}.panel-heading h1,.panel-heading h2{font-size:23px}.metrics{margin-top:16px}.field-grid{gap:12px}dialog{padding:18px}.dialog-head{top:-18px}dialog h2{font-size:21px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.source-card select{width:100%;max-width:100%;white-space:normal}.source-card #vdDetail{overflow-wrap:anywhere}.source-card #vdDetail p{font-size:14px}.source-card .helper{overflow-wrap:anywhere}
