/* 2026 介面改版：只改呈現，保留原有資料與操作程式。 */
:root {
  --bg:#f7f7f2; --surface:#fffefa; --surface2:#f2f4ef; --line:#dce4dc;
  --text:#183c34; --muted:#60776d; --brand:#087765; --brand2:#0b947c;
  --brandSoft:#e5f3e9; --onBrand:#fff; --shadow:0 12px 34px rgba(22,57,45,.065);
  --r:18px;
}
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--text); line-height:1.58; }
button,select,input { font-family:inherit; }
.topbar { position:sticky; top:0; min-height:76px; padding:12px clamp(18px,3vw,56px); gap:clamp(16px,2.5vw,42px); background:rgba(255,254,250,.96); border-bottom:1px solid var(--line); box-shadow:0 5px 24px rgba(22,57,45,.045); backdrop-filter:blur(12px); }
.logo { font-size:19px; letter-spacing:-.03em; }
.logo .mark { width:42px; height:42px; border-radius:12px; background:#0d604f; box-shadow:none; font-size:21px; }
.logo small { border:0; background:#e4efe7; color:#397060; border-radius:99px; padding:3px 9px; font-size:11px; letter-spacing:0; }
.search { flex:1; max-width:680px; margin-inline:auto; }
.search input { height:48px; padding-left:44px; background:#f4f7f3; border:1px solid #d9e4da; border-radius:12px; font-size:14px; }
.search svg { left:15px; }
.search input:focus { background:#fff; box-shadow:0 0 0 4px rgba(8,119,101,.12); }
.tb-actions { gap:8px; }
.tb-actions .btn { height:42px; border-radius:10px; font-size:13px; }

.hero { max-width:none; margin:0; min-height:260px; padding:42px max(clamp(22px,4.5vw,72px),calc((100vw - 1600px)/2)); border-radius:0; box-shadow:none; background:radial-gradient(circle at 80% 15%,rgba(130,205,164,.20),transparent 32%),linear-gradient(118deg,#103f36,#0a6655 66%,#0e7964); align-items:center; }
.hero::before { width:520px; height:520px; right:12%; top:-350px; }
.hero::after { width:440px; height:440px; right:-100px; bottom:-360px; }
.hero-eyebrow { font-size:12px; letter-spacing:.17em; color:#bce9ca; }
.hero h1 { font-size:clamp(32px,3vw,48px); line-height:1.22; letter-spacing:-.05em; margin:9px 0 14px; }
.hero p { font-size:15px; color:#d8eee5; }
.hero-facts { flex-basis:258px; border-radius:16px; padding:19px 22px; background:rgba(255,255,255,.12); }
.hero-facts strong { font-size:22px; }

.start-panel { max-width:1600px; margin:-27px auto 0; padding:0 24px; position:relative; z-index:2; }
.start-inner { background:var(--surface); border:1px solid var(--line); border-radius:18px; box-shadow:0 18px 40px rgba(12,66,51,.12); display:grid; grid-template-columns:235px minmax(0,1fr); align-items:center; gap:22px; padding:22px 26px; }
.start-intro span { display:block; color:var(--brand); font-size:11px; font-weight:800; letter-spacing:.12em; }
.start-intro h2 { margin:3px 0 2px; font-size:19px; line-height:1.3; }
.start-intro p { margin:0; color:var(--muted); font-size:12px; }
.start-actions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.start-action { min-height:64px; padding:9px 12px; display:flex; align-items:center; justify-content:space-between; gap:8px; text-align:left; color:var(--text); font-weight:700; font-size:14px; text-decoration:none; background:#f5f8f3; border:1px solid #e1e9dd; border-radius:12px; cursor:pointer; }
.start-action:hover,.start-action:focus-visible { background:#e8f5eb; border-color:#91c9aa; color:#075d4d; }
.start-action .action-icon { flex:none; width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:#dcefe3; color:#176d58; font-size:18px; }
.start-action .action-arrow { color:#7b9e8d; font-size:18px; }

.srcbar { max-width:1552px; width:calc(100% - 48px); margin:18px auto 0; padding:11px 16px; background:transparent; box-shadow:none; border:0; border-radius:0; border-bottom:1px solid var(--line); font-size:12px; }
.data-guide,.review-panel { max-width:1552px; width:calc(100% - 48px); }
.data-guide { margin-top:10px; background:#edf6ed; border-color:#d5e7d7; border-left-color:#68a77d; border-radius:10px; }
.data-guide summary { color:#2c604a; }
.layout { max-width:1600px; grid-template-columns:284px minmax(0,1fr); gap:28px; padding:24px 24px 70px; }
.sidebar { top:100px; max-height:calc(100vh - 120px); border-radius:16px; border-color:#dbe6dc; padding:20px; box-shadow:0 8px 28px rgba(24,61,45,.055); }
.sidebar h2 { font-size:18px; margin:0 0 14px; }
.fgroup { padding:14px 0; }
.fgroup .t { color:#315548; font-size:12px; letter-spacing:.02em; }
.fgroup select { height:42px; border-radius:9px; background:#fafcf9; }
.chip { min-height:34px; padding:5px 10px; border-radius:8px; background:#fff; color:#37564a; font-size:12px; }
.chip.on { background:#e1f3e9; border-color:#5fae89; color:#075943; box-shadow:none; }
.toggle { font-size:13px; }

main { min-width:0; }
.results-heading { display:flex; justify-content:space-between; align-items:end; gap:16px; margin:0 0 14px; }
.results-heading .eyebrow { font-size:11px; font-weight:800; color:var(--brand); letter-spacing:.12em; }
.results-heading h2 { margin:2px 0 0; font-size:27px; line-height:1.3; letter-spacing:-.035em; }
.results-heading p { margin:0; color:var(--muted); font-size:12px; }
.kpis { grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; margin-bottom:21px; }
.kpi { min-height:84px; padding:12px 14px; border-radius:12px; box-shadow:none; background:#fffefa; }
.kpi .n { font-size:23px; }
.kpi .l { font-size:11px; }
.kpi:first-child { background:#164c40; border-color:#164c40; color:#fff; }
.kpi:first-child .l { color:#d4ebe0; }
.toolbar { margin:0 0 12px; padding:10px 0 0; border-top:1px solid var(--line); }
.tabs { background:#e9efe8; border:0; border-radius:10px; padding:4px; box-shadow:none; }
.tab { min-height:38px; padding:7px 17px; border-radius:8px; font-weight:600; }
.tab.on { background:#fff; color:#0e6352; box-shadow:0 2px 8px rgba(27,69,48,.10); }
.toolbar select { min-height:42px; background:#fff; }
.activechips { margin-bottom:12px; }
.grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.card { min-height:218px; padding:20px; border-radius:14px; border:1px solid #dce6dc; box-shadow:0 3px 14px rgba(27,60,44,.035); gap:7px; }
.card:hover { border-color:#72b58e; box-shadow:0 12px 26px rgba(27,60,44,.09); transform:translateY(-2px); }
.card h3 { font-size:16px; line-height:1.45; margin:3px 0; word-break:normal; overflow-wrap:anywhere; }
.card .small.muted { font-size:12.5px; line-height:1.5; }
.card .badges { padding-right:30px; }
.card .tb { border-radius:5px; font-size:11px; padding:2px 7px; }
.card .meta { margin-top:auto; }
.card-foot { border-top:1px solid #e6ede5; padding-top:12px; margin-top:6px; }
.favbtn { top:12px; right:12px; border-radius:8px; background:#f4f7f1; }
.favbtn:hover { background:#e9f3e6; }
.grade { border-radius:5px; }
.tablewrap,.panel { border-radius:14px; box-shadow:none; }
.panel { padding:20px; }
.panel h3 { font-size:16px; }
#map { border-radius:14px; }
.detail { width:min(600px,100%); }

@media(max-width:1250px) {
  .start-inner { grid-template-columns:190px minmax(0,1fr); }
  .start-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:1023px) {
  .hero { padding:34px 24px 55px; }
  .start-panel { margin-top:-26px; }
  .layout { display:block; padding:20px 24px 70px; }
  .sidebar { position:fixed; top:0; max-height:none; border-radius:0 16px 16px 0; z-index:90; }
  .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .topbar { min-height:0; padding:10px 14px; gap:8px; flex-wrap:wrap; }
  .logo { font-size:17px; flex:1; }
  .logo .mark { width:36px; height:36px; font-size:17px; }
  .tb-actions .btn { height:38px; }
  .search { max-width:none; order:3; flex:0 0 100%; }
  .search input { height:44px; }
  .hero { min-height:0; padding:27px 20px 48px; margin:0; border-radius:0; }
  .hero h1 { font-size:29px; }
  .hero h1 br { display:none; }
  .hero p { font-size:13px; }
  .hero-facts { display:none; }
  .start-panel { padding:0 12px; margin-top:-24px; }
  .start-inner { display:block; padding:17px; border-radius:14px; }
  .start-intro { margin-bottom:12px; }
  .start-intro h2 { font-size:16px; }
  .start-intro p { display:none; }
  .start-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
  .start-action { min-height:54px; font-size:12px; padding:7px; }
  .start-action .action-icon { width:30px; height:30px; font-size:16px; }
  .start-action .action-arrow { display:none; }
  .srcbar,.data-guide,.review-panel { width:calc(100% - 24px); }
  .srcbar { margin-top:12px; padding:8px 2px; gap:4px 10px; font-size:11px; }
  .layout { padding:20px 12px 80px; }
  .results-heading { margin-bottom:12px; }
  .results-heading h2 { font-size:21px; }
  .results-heading p { display:none; }
  .kpis { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-bottom:16px; }
  .kpi { min-height:67px; padding:9px; }
  .kpi .n { font-size:19px; }
  .kpi .l { font-size:10px; }
  .toolbar { margin-top:0; }
  .grid { grid-template-columns:minmax(0,1fr); gap:10px; }
  .card { min-height:0; padding:16px; }
  .card:hover { transform:none; }
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) { --bg:#111b18; --surface:#1c2923; --surface2:#26372e; --line:#354a3e; --text:#e8f2eb; --muted:#afc3b4; --brand:#6dd4aa; --brand2:#4ec49c; --brandSoft:#254a39; --onBrand:#09261a; }
  :root:not([data-theme="light"]) .start-action,:root:not([data-theme="light"]) .card,:root:not([data-theme="light"]) .kpi,:root:not([data-theme="light"]) .search input,:root:not([data-theme="light"]) .fgroup select { background:var(--surface); border-color:var(--line); color:var(--text); }
  :root:not([data-theme="light"]) .start-action .action-icon { background:#315744; color:#a4e7be; }
  :root:not([data-theme="light"]) .tabs { background:#27372f; }
  :root:not([data-theme="light"]) .tab.on { background:#375446; color:#e4f7e9; }
  :root:not([data-theme="light"]) .topbar { background:rgba(28,41,35,.96); }
}
:root[data-theme="dark"] { --bg:#111b18; --surface:#1c2923; --surface2:#26372e; --line:#354a3e; --text:#e8f2eb; --muted:#afc3b4; --brand:#6dd4aa; --brand2:#4ec49c; --brandSoft:#254a39; --onBrand:#09261a; }
:root[data-theme="dark"] .start-action,:root[data-theme="dark"] .card,:root[data-theme="dark"] .kpi,:root[data-theme="dark"] .search input,:root[data-theme="dark"] .fgroup select { background:var(--surface); border-color:var(--line); color:var(--text); }
:root[data-theme="dark"] .start-action .action-icon { background:#315744; color:#a4e7be; }
:root[data-theme="dark"] .tabs { background:#27372f; }
:root[data-theme="dark"] .tab.on { background:#375446; color:#e4f7e9; }
:root[data-theme="dark"] .topbar { background:rgba(28,41,35,.96); }
@media print { .start-panel { display:none; } .hero { color:var(--text); background:#fff; } }

/* 精簡導覽：搜尋優先，資料摘要分層 */
.topbar .search { max-width:860px; }
.tb-actions { flex:none; margin-left:auto; }
.hero { min-height:220px; padding-top:32px; padding-bottom:48px; }
.hero h1 { font-size:clamp(30px,2.7vw,43px); }
.start-inner { padding:18px 24px; box-shadow:0 10px 28px rgba(12,66,51,.08); }
.srcbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 24px; align-items:center; padding:14px 4px 12px; }
.srcbar > span:last-child { grid-column:1 / -1; color:var(--muted); font-size:12px; }
.srcbar > span:nth-child(2) { text-align:right; white-space:nowrap; }
.review-panel { margin-top:10px; }
@media(max-width:700px) {
 .topbar .search { margin:0; }
 .hero { min-height:0; padding:24px 20px 44px; }
 .hero h1 { font-size:29px; }
 .start-inner { padding:16px; }
 .srcbar { grid-template-columns:minmax(0,1fr); gap:5px; padding:12px 2px; }
 .srcbar > span:nth-child(2) { text-align:left; }
 .srcbar > span:last-child { font-size:11px; line-height:1.6; }
}
/* 地圖探索工作區：清楚標記、同步結果、保留操作視野 */
body.map-mode>.hero,body.map-mode>.start-panel,body.map-mode>.srcbar,body.map-mode>.data-guide,body.map-mode>.review-panel,body.map-mode .results-heading,body.map-mode #kpis{display:none}
body.map-mode .layout{max-width:1760px;padding-top:16px;align-items:start}
body.map-mode .toolbar{margin-top:0;margin-bottom:12px}
body.map-mode #sort{display:none}
body.map-mode #v-map{scroll-margin-top:92px;border:1px solid var(--line);border-radius:22px;background:var(--surface);padding:18px;box-shadow:0 12px 40px rgba(20,60,46,.06)}
.map-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.map-eyebrow{display:block;font-size:12px;font-weight:650;letter-spacing:.08em;color:var(--muted)}
.map-topline h2{font-size:25px;line-height:1.4;margin:3px 0;color:var(--text)}
.map-topline p,.map-result-heading p{font-size:13px;color:var(--muted);margin:3px 0;line-height:1.6}
.map-topline>.btn{white-space:nowrap;min-height:44px}
body.map-mode #map{height:clamp(380px,57vh,720px);min-height:380px;border-radius:16px;box-shadow:none;border:1px solid var(--line);background:#e8efe9}
#map .leaflet-tile-pane{filter:saturate(.48) contrast(.93)}
#map .leaflet-control-zoom{border:1px solid #d4e0dc;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #173d2e20}
#map .leaflet-control-zoom a{width:42px;height:42px;line-height:42px;color:#154d3d;background:#fff}
#map .leaflet-control-attribution{font-size:10px}
.care-marker{background:none;border:0}
.care-pin{display:grid;place-items:center;width:32px;height:32px;border:3px solid #fff;border-radius:13px 13px 13px 4px;background:var(--pin);color:white;font-size:13px;font-weight:800;box-shadow:0 3px 8px #163b3840;transform:rotate(-10deg)}
.care-marker:hover .care-pin,.care-marker:focus .care-pin,.care-marker.is-selected .care-pin{outline:3px solid #172f45;outline-offset:3px;transform:translateY(-3px);box-shadow:0 6px 18px #153b3850}
.care-cluster{display:grid!important;place-items:center;background:#e1f0e9dd;border:1px solid #fff;border-radius:50%;box-shadow:0 2px 12px #1b49302b;color:#fff}
.care-cluster>span{display:grid;place-items:center;min-width:36px;height:36px;padding:0 5px;background:#11634f;border:2px solid #fff;border-radius:50%;font-size:13px;font-weight:750}
.care-cluster:focus{outline:3px solid #174063;outline-offset:3px}
#map .leaflet-popup-content-wrapper{border-radius:18px;color:#193c32;background:#fff;box-shadow:0 12px 40px #143f3633}
.care-popup h3{font-size:17px;line-height:1.5;margin:6px 0 10px}.care-popup p{font-size:13px;line-height:1.6;margin:12px 0}.care-popup>.btn{width:100%;margin-top:14px;min-height:42px;background:#11634f;color:#fff}
.map-key{margin:12px 0;padding:10px 12px;background:var(--surface2);border-radius:10px;font-size:13px}.map-key summary{cursor:pointer;color:var(--muted)}.map-key .legend{line-height:1.7}
.map-result-heading{margin:20px 0 12px}.map-result-heading h2{font-size:18px;margin:0 0 4px}
.map-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.map-result{min-width:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:10px;transition:border-color .15s,box-shadow .15s}
.map-result:hover,.map-result.selected{border-color:var(--brand);box-shadow:0 4px 20px #17614c12}.map-result.selected{outline:2px solid var(--brand);outline-offset:1px}
.map-result-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between;color:var(--muted);font-size:12px}
.map-result h3{margin:0;font-size:15px;line-height:1.55}.map-result h3 button{display:block;background:none;border:0;color:var(--text);padding:0;font:inherit;font-weight:700;text-align:left;cursor:pointer;overflow-wrap:anywhere}
.map-result p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.map-result-foot{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:auto;padding-top:8px}.map-result-foot .btn{min-height:38px}
.map-result button:focus-visible,.map-topline button:focus-visible{outline:3px solid #287fb2;outline-offset:3px}
.map-empty{grid-column:1/-1;padding:26px;border:1px dashed var(--line);border-radius:14px;text-align:center;color:var(--muted)}.map-empty p{font-size:13px}.map-results+#mapMore{display:block;margin:16px auto 0}.map-results+#mapMore[hidden]{display:none}
@media(max-width:1200px){.map-results{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){body.map-mode .layout{padding:8px}body.map-mode #v-map{padding:12px;border-radius:18px}.map-topline{align-items:flex-start;gap:10px}.map-topline h2{font-size:20px}.map-topline>.btn{font-size:12px;padding:9px}.map-eyebrow{font-size:11px}.map-topline p{font-size:12px}body.map-mode #map{height:50dvh;min-height:330px}.map-results{grid-template-columns:1fr}.map-result{padding:14px}.map-result h3{font-size:16px}.map-key{margin-top:10px}.map-topline{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.care-pin,.map-result{transition:none}}
.care-popup .muted,.care-popup .map-eyebrow{color:#526b61}#map .leaflet-popup-scrolled{border:0}

/* Keep Leaflet layers below detail drawers and dialogs. */
#map { isolation:isolate; }

.nearby-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.nearby-controls label{display:block;margin-bottom:6px}.nearby-controls .note{margin:8px 0 0;line-height:1.6}.distance-label{color:var(--brand);font-size:13px;font-weight:600}.map-topline{flex-wrap:wrap}.nearby-actions [hidden]{display:none}

/* 輕量手繪感插圖與一致的入口圖示 */
.hero{position:relative;overflow:hidden}
.hero-copy,.hero-facts{position:relative;z-index:1}
.hero-art{position:absolute;width:min(31vw,420px);height:auto;right:clamp(230px,25vw,410px);bottom:7px;pointer-events:none;opacity:.9;filter:drop-shadow(0 10px 18px rgba(5,46,36,.09))}
.start-action .action-icon{border:1px solid #c9dfce;background:#e4f0e5;border-radius:11px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.start-action .action-icon svg{width:19px;height:19px;stroke-linecap:round;stroke-linejoin:round}
.start-action:hover .action-icon,.start-action:focus-visible .action-icon{background:#d5e9d9;transform:translateY(-1px)}
@media(max-width:1100px){.hero-art{right:235px;width:280px;opacity:.55}}
@media(max-width:700px){.hero-art{width:150px;right:-20px;bottom:-11px;opacity:.23}.hero-copy{position:relative;z-index:1}.start-action .action-icon svg{width:17px;height:17px}}
@media(prefers-reduced-motion:reduce){.start-action .action-icon{transform:none!important}}

/* 閱讀節奏：標題留白、內文舒展、數字與標籤各有層次 */
body{line-height:1.7;text-rendering:optimizeLegibility}
.hero h1{max-width:15em;font-family:"Noto Serif TC","Songti TC","Microsoft JhengHei",serif;font-weight:600;line-height:1.34;letter-spacing:-.015em;text-wrap:balance}
.hero-eyebrow{font-weight:600;letter-spacing:.19em}
.hero p{max-width:43em;line-height:1.85;letter-spacing:.01em}
.hero-facts span{font-size:11px;letter-spacing:.08em;font-weight:600}
.hero-facts strong{font-weight:650;line-height:1.35;letter-spacing:.025em}
.start-intro h2,.results-heading h2,.map-topline h2{font-family:"Noto Serif TC","Songti TC","Microsoft JhengHei",serif;font-weight:600;letter-spacing:.005em;line-height:1.43;text-wrap:pretty}
.start-intro p,.results-heading p{line-height:1.75}
.start-intro>span,.results-heading .eyebrow{font-weight:650;letter-spacing:.13em}
.start-action{font-weight:600;line-height:1.4;letter-spacing:.01em}
.srcbar{line-height:1.7;letter-spacing:.005em}
.kpi .n{font-weight:650;line-height:1.18;letter-spacing:-.025em}
.kpi .l{line-height:1.55;letter-spacing:.02em}
.card h3{font-size:16px;font-weight:650;line-height:1.62;letter-spacing:.005em;text-wrap:pretty}
.card>.small.muted{line-height:1.72}
.card-foot .own{font-size:12px;line-height:1.65}
.card .meta{line-height:1.6}
.detail .dhead h2{font-family:"Noto Serif TC","Songti TC","Microsoft JhengHei",serif;font-size:20px;font-weight:600;line-height:1.5;word-break:normal;overflow-wrap:anywhere}
.detail .panel h3{font-weight:650;letter-spacing:.015em;line-height:1.5}
.map-result h3,.care-popup h3{font-weight:650;line-height:1.6;letter-spacing:.005em}
@media(max-width:700px){.hero h1{font-size:28px;line-height:1.43;letter-spacing:-.01em}.hero p{line-height:1.75}.start-intro h2{font-size:17px}.results-heading h2{font-size:22px}.card h3{font-size:15.5px;line-height:1.65}.kpi .n{font-size:19px}}

/* 結果採編輯式條列，減少整頁重複的卡片外框 */
.kpi:not(:first-child){background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:13px 9px 12px}
.grid{column-gap:28px;row-gap:0}
.card{min-height:195px;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;padding:19px 31px 18px 0;transition:background-color .15s,border-color .15s}
.card:hover{background:color-mix(in srgb,var(--brandSoft) 28%,transparent);border-color:var(--brand);box-shadow:none;transform:none}
.card-foot{border-top:0;padding-top:9px;margin-top:3px}
.favbtn{right:0;top:16px}
@media(max-width:700px){.grid{row-gap:0}.card{min-height:0;padding:17px 34px 18px 2px}.kpi:not(:first-child){padding:9px 4px}}
@media(prefers-reduced-motion:reduce){.card{transition:none}}

/* 品牌識別：地圖定位、嫩葉與展開的指引頁 */
.logo .mark{position:relative;flex:none;overflow:hidden;background:linear-gradient(145deg,#174f43 0%,#0a705b 72%,#1a8068 100%);border:1px solid rgba(238,250,237,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 5px 12px rgba(13,67,50,.14)}
.logo .mark::before{content:"";position:absolute;width:34px;height:34px;left:-12px;top:-15px;border:1px solid rgba(255,255,255,.18);border-radius:50%}
.logo .mark::after{content:"";position:absolute;inset:3px;border:1px solid rgba(244,248,228,.12);border-radius:9px;pointer-events:none}
.logo .brand-symbol{position:relative;z-index:1;width:34px;height:34px;display:block;filter:drop-shadow(0 1px 1px rgba(4,41,31,.12))}
@media(max-width:700px){.logo .brand-symbol{width:30px;height:30px}.logo .mark::after{border-radius:7px}}
/* 手機標題依語意自然換行，避免「服務」被拆開 */
@media(max-width:700px){.hero h1{text-wrap:initial;font-size:27px;max-width:none}}

/* 私密留言：以信箋般的留白與細線融入原頁 */
.message-board{max-width:900px;margin:46px auto 30px;padding:31px 36px;background:#f8f6ef;border:1px solid #dcd8c8;border-radius:4px;box-shadow:0 10px 30px rgba(52,62,43,.045)}
.message-board[hidden]{display:none}.message-board-kicker{font-size:11px;letter-spacing:.22em;color:#6a796a;font-weight:700}.message-board h2{margin:7px 0 8px;font:600 24px/1.4 "Noto Serif TC","Songti TC",serif;color:#26463d}.message-board-intro p{margin:0 0 23px;color:#5b695e;font-size:14px;line-height:1.8}.message-board form{display:grid;gap:15px}.message-board label{display:grid;gap:6px;font-size:13px;font-weight:650;color:#354a41}.message-board label span{font-weight:400;color:#7a857b}.message-board input,.message-board textarea{width:100%;font:inherit;font-weight:400;line-height:1.6;color:#273a33;background:#fff;border:1px solid #cbd4ca;border-radius:4px;padding:10px 12px}.message-board textarea{resize:vertical}.message-board input:focus,.message-board textarea:focus{outline:2px solid #659d86;outline-offset:2px}.message-board-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.message-board-foot{display:flex;align-items:center;justify-content:space-between;gap:16px}.message-board-foot p{margin:0;color:#66756b;font-size:12px;line-height:1.6}.message-board-foot button{white-space:nowrap}@media(max-width:700px){.message-board{margin:34px 0 18px;padding:24px 20px}.message-board h2{font-size:21px}.message-board-foot{align-items:flex-start;flex-direction:column}}

/* 檢視切換：短距離淡入，保留原本操作與資料 */
#v-list:not([hidden]),#v-table:not([hidden]),#v-map:not([hidden]),#v-stats:not([hidden]){animation:view-enter .24s cubic-bezier(.2,.7,.2,1) both}
@keyframes view-enter{from{opacity:.72;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.results-heading{scroll-margin-top:92px}
.site-credit{max-width:1552px;margin:-35px auto 24px;padding:16px 24px 22px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:13px;color:#688075;font-size:12px;letter-spacing:.08em}.credit-rule{width:18px;height:1px;background:#b5c7b9}
@media(max-width:700px){.results-heading{scroll-margin-top:72px}.site-credit{margin:-48px 12px 80px;padding:16px 8px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}#v-list:not([hidden]),#v-table:not([hidden]),#v-map:not([hidden]),#v-stats:not([hidden]){animation:none}}

/* 官方紀錄查詢收在詳情中，避免拉長主頁 */
.public-record-check{margin-top:15px;border-top:1px solid var(--line);padding-top:12px}.public-record-check summary{cursor:pointer;color:var(--brand);font-size:13px;font-weight:650;line-height:1.6}.public-record-check summary span{font-size:11px;color:var(--muted);font-weight:400;margin-left:5px}.public-record-body{padding:8px 0 0}.public-record-body>p{font-size:12px;line-height:1.75;color:var(--muted);margin:7px 0}.public-record-links{display:flex;flex-wrap:wrap;gap:8px}.public-record-links a{display:inline-flex;align-items:center;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font-size:12px;text-decoration:none;color:var(--brand)}.public-record-links a:hover,.public-record-links a:focus-visible{border-color:var(--brand);background:var(--brandSoft)}.public-record-query strong{font-weight:600;color:var(--text)}

/* 台灣地形圖：保留官方圖資色階，讓道路與山脈層次可讀。 */
#map .leaflet-tile-pane{filter:none}
body.map-mode #map{height:clamp(400px,60dvh,680px);border-radius:12px;border-color:#b8cdc9;background:#dcebed}
.map-topline{align-items:center;margin-bottom:14px;gap:20px}
.map-topline h2{font-size:26px;letter-spacing:.06em;font-weight:650}
.map-topline .map-eyebrow{letter-spacing:.18em;font-size:11px;color:var(--muted)}
.map-topline #mapTotal{color:var(--text);font-size:13px;margin-top:8px}
.map-topline #mapMissing{font-size:12px}
.map-top-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.map-top-actions .btn{min-height:42px;font-size:12px}
.map-atlas-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.map-basemaps{display:flex;gap:3px;padding:3px;border:1px solid var(--line);background:var(--surface2);border-radius:10px}
.map-basemaps button{display:flex;align-items:center;gap:7px;min-height:38px;padding:7px 17px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}
.map-basemaps button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:0 1px 5px #183c3020;font-weight:700}
.map-basemaps svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.map-region-label{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.map-region-label select{max-width:150px;min-height:40px;padding:6px 28px 6px 10px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;font:inherit}
.map-atlas-tools :focus-visible{outline:3px solid #287fb2;outline-offset:2px}
.map-caption{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:9px 2px 0;font-size:11px;color:var(--muted);line-height:1.6}
.map-compass{width:32px;display:grid;justify-items:center;background:#fffdf5e8;border:1px solid #bfcdc4;border-radius:20px;padding:6px 3px;color:#294e4b;box-shadow:0 2px 8px #294e4b18}
.map-compass span{font-size:10px;font-weight:700}.map-compass svg{width:18px;height:26px}
.care-pin{border-radius:50% 50% 50% 8px;transform:rotate(-45deg);font-size:0;position:relative;width:30px;height:30px;border-width:2px;box-shadow:0 3px 7px #173d3c50}
.care-pin::after{content:"";width:8px;height:8px;background:white;border-radius:50%;border:1px solid #ffffff80}
.care-marker:hover .care-pin,.care-marker:focus .care-pin,.care-marker.is-selected .care-pin{transform:translateY(-3px) rotate(-45deg)}
.care-cluster{background:#fbfcf5e8;border:1px solid #567b7060;box-shadow:0 3px 12px #163d3c25}
.care-cluster>span{background:#215e53;min-width:34px;height:34px;border:1px solid #e7f1e8;font-size:12px;font-variant-numeric:tabular-nums}
#map .leaflet-control-zoom{border-radius:9px;box-shadow:0 2px 8px #173d2e20}
#map .leaflet-control-attribution{background:#fffdf3ed;color:#37594f;max-width:calc(100% - 75px);line-height:1.5;font-size:10px}
@media(max-width:700px){.map-topline h2{font-size:22px}.map-top-actions{margin-left:0;width:100%}.map-top-actions .btn{flex:1}.map-topline{gap:10px}.map-atlas-tools{gap:7px}.map-basemaps button{padding:7px 10px}.map-region-label{gap:5px;font-size:11px}.map-region-label select{max-width:112px;padding-right:18px}body.map-mode #map{height:53dvh;min-height:360px}.map-caption{font-size:10px}}

#map .leaflet-tile-pane{filter:saturate(.65) contrast(.96)}
#map .leaflet-control-attribution{max-width:none}
.care-pin::after{display:none}
.care-pin b{font-family:system-ui,sans-serif;font-size:11px;font-weight:700;transform:rotate(45deg);line-height:1}

@media(max-width:700px){body.map-mode #v-map{scroll-margin-top:122px}}

/* 資料基準日集中於備註，首頁保留清楚的服務入口。 */
.data-guide .roster-baseline{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;line-height:1.8}
.data-guide .roster-baseline a{color:inherit;text-underline-offset:3px}
.data-guide .srcbar{width:100%;max-width:none;margin:8px 0;padding:8px 0;scroll-margin-top:120px}
.hero .hero-art{right:clamp(24px,5vw,84px)}

/* 查詢中的小小陪伴：向量插圖不增加外部圖片請求。 */
.care-vignette{width:72px;height:58px;flex:none;margin-right:12px}
.results-heading{justify-content:flex-start}.results-heading>p{margin-left:auto;max-width:320px}
.empty-illustration{display:block;width:110px;height:88px;margin:0 auto 14px}
.care-empty{padding:38px 22px;background:var(--surface);border:1px dashed var(--line);border-radius:16px}
.care-empty h3{font-family:"Noto Serif TC","Microsoft JhengHei",serif;color:var(--text);font-size:20px;margin:0 0 10px}
.care-empty p{font-size:14px;line-height:1.9;max-width:360px;margin:auto;color:var(--muted)}
.connection-note{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:2000;width:min(90vw,540px);padding:12px 18px;border:1px solid #d2bf8f;border-radius:12px;background:#fff9e9;color:#605034;box-shadow:0 5px 24px #293b3020;font-size:13px;line-height:1.7}
.connection-note[hidden]{display:none}
.tabs .tab,.start-action,.btn{transition:background-color .16s,color .16s,box-shadow .16s}
@media(max-width:700px){.care-vignette{width:52px;height:46px;margin-right:8px}.results-heading{flex-wrap:wrap;gap:0}.results-heading>p{max-width:none;width:100%;margin:8px 0 0}.connection-note{bottom:76px}.care-empty{padding:28px 18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}.tabs .tab,.start-action,.btn{transition:none}}

/* 2026-09-24 Claude 稽核修正：標題對比、備註框、載入狀態、無撥號、鍵盤焦點 */
.hero h1{color:#fff}
.data-guide{margin:10px auto 0;padding:10px 16px;border:1px solid #d5e7d7;border-left:4px solid #68a77d}
:root[data-theme="dark"] .data-guide{border-color:#3e806d}
.loading-state{padding:48px 16px;text-align:center;color:var(--muted)}
.qa .qa-disabled{opacity:.45;cursor:not-allowed}
label.cmp{min-height:36px;display:inline-flex;align-items:center;gap:6px}
[role="button"][tabindex]:focus-visible{outline:3px solid var(--brand,#0f766e);outline-offset:2px}

/* 手機首頁：縮短主視覺，讓搜尋與結果更早出現 */
@media(max-width:640px){.hero{padding:18px 20px 38px}.hero h1{font-size:23px;line-height:1.35;margin:4px 0 0}.hero p,.hero-eyebrow{display:none}.hero-art{display:none}.start-panel{margin-top:-24px}.start-intro p{display:none}}
