/* 散步規劃器以固定工具列與獨立捲動清單縮短操作距離。 */
dialog.route-builder-dialog{width:min(960px,calc(100vw - 40px));max-width:960px;height:min(760px,calc(100dvh - 40px));max-height:calc(100dvh - 40px);padding:0;overflow:hidden}
dialog.route-builder-dialog[open]{display:flex;flex-direction:column}
.route-builder-dialog>.dialog-head{flex:0 0 auto;position:static;padding:20px 26px 17px}
.route-builder-dialog>.dialog-body{padding:0;min-height:0;flex:1;overflow:hidden;display:flex}
.route-builder{--rb-selected:#e7ecde;--rb-border:#c5d0b6;display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;margin:0;color:var(--ink)}
.rb-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;flex:0 0 auto;padding:19px 26px 18px;border-bottom:1px solid var(--line);background:var(--surface)}
.rb-field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:11px}
.rb-field>span{display:flex;align-items:center;gap:7px;color:var(--ink)}
.rb-field b{color:var(--orange);font-weight:500}
.rb-field small{color:var(--muted);font-size:10px;font-weight:400}
.rb-field input,.rb-field textarea{width:100%;min-width:0;height:40px;min-height:40px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);font-size:12px;line-height:1.5;resize:none;overflow:auto}
.rb-field input[aria-invalid=true]{border-color:var(--orange)}
.rb-field input:focus,.rb-field textarea:focus{border-color:#8a9a78;outline:2px solid #9cac8522;outline-offset:1px}
.rb-columns{display:grid;grid-template-columns:1.06fr 1fr;flex:1;min-height:0;min-width:0}
.rb-pick,.rb-order{display:flex;flex-direction:column;min-height:0;min-width:0;padding:20px 21px 0}
.rb-pick{padding-left:26px;border-right:1px solid var(--line)}
.rb-order{background:#f0f2e9;padding-right:26px}
.rb-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:9px;flex:0 0 auto;margin-bottom:14px}
.rb-panel-heading>div{display:flex;align-items:center;gap:9px;min-width:0}
.rb-panel-heading h3{font-family:var(--serif);font-size:16px;line-height:1.5;margin:0;letter-spacing:.2px}
.rb-step{font-size:8px;font-weight:600;color:var(--orange);letter-spacing:1px;flex-shrink:0}
.rb-result-count{font-size:9px;color:var(--muted);white-space:nowrap}
.rb-count-badge{display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:50%;background:#e0e7d4;color:var(--green);font-size:11px}
.rb-search{display:flex;align-items:center;gap:8px;flex:0 0 auto;height:37px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:0 10px;margin-bottom:10px}
.route-builder svg{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.rb-search>svg{width:15px;height:15px;color:#89957d}
.rb-search input{width:100%;min-width:0;outline:0;border:0;background:transparent;padding:8px 0;color:var(--ink);font-size:11px}
.rb-search:focus-within{border-color:#8a9a78;box-shadow:0 0 0 2px #9cac851a}
.rb-filters{display:flex;gap:6px;flex:0 0 auto;margin-bottom:11px}
.rb-filters button{padding:5px 10px;border:1px solid var(--line);border-radius:20px;background:transparent;color:var(--muted);font-size:9px;white-space:nowrap;line-height:1.6}
.rb-filters button[aria-pressed=true]{color:var(--green);border-color:#bdc9ae;background:#e7ecdd}
.rb-place-list,.rb-order-list{overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;flex:1;padding:0 2px 15px 0;scrollbar-width:thin;scrollbar-color:#c5ceba transparent}
.rb-place{position:relative;display:flex;align-items:center;gap:11px;width:100%;min-width:0;min-height:80px;margin-bottom:9px;padding:10px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:left;color:var(--ink);transition:border-color .16s,background .16s}
.rb-place:hover{border-color:#aebc9c;background:#f4f5ed}
.rb-place.is-selected{background:var(--rb-selected);border-color:var(--rb-border);box-shadow:inset 3px 0 0 #6d855a}
.rb-place:focus-visible,.rb-stop-actions button:focus-visible,.rb-mobile-tabs button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.rb-place-image{width:54px;height:54px;flex:0 0 54px;overflow:hidden;border-radius:6px;background:#e8eadf}
.rb-place-image img{width:100%;height:100%;object-fit:cover}
.rb-place-image.is-illustration img{object-fit:contain}
.rb-place-copy{min-width:0;flex:1;padding-right:1px}
.rb-place-copy strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:11px;font-weight:500;line-height:1.65;overflow-wrap:anywhere}
.rb-place-copy>span{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px;color:var(--muted);font-size:9px;line-height:1.5}
.rb-place-copy i{font-style:normal;color:#a6ae9b}
.rb-place-state{display:grid;place-items:center;width:24px;height:24px;border:1px solid #cfd7c2;border-radius:50%;color:#95a184;background:transparent;flex:0 0 24px}
.rb-place-state svg{width:13px;height:13px}
.rb-place.is-selected .rb-place-state{background:var(--green);border-color:var(--green);color:var(--paper)}
.rb-picked-order{position:absolute;top:5px;left:5px;padding:2px 5px;border-radius:3px;background:var(--green);color:var(--paper);font-size:7px;letter-spacing:.4px;line-height:1.4}
.rb-order-help{margin:0 0 14px;font-size:10px;line-height:1.7;color:var(--muted);flex:0 0 auto}
.rb-stop{position:relative;display:grid;grid-template-columns:21px 42px minmax(0,1fr) auto;align-items:center;column-gap:8px;min-height:77px;padding:9px 0;margin-bottom:3px;border-bottom:1px solid #dfe4d7}
.rb-stop.is-unavailable{grid-template-columns:21px minmax(0,1fr) auto}
.rb-stop-number{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;font-size:9px;background:#dfe7d2;color:var(--green)}
.rb-stop-image{width:42px;height:42px;border-radius:5px;object-fit:cover;background:#e7eadc}
.rb-stop-copy{min-width:0}
.rb-stop-copy strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;font-size:10px;font-weight:500;line-height:1.65}
.rb-stop-copy>span{display:block;margin-top:5px;font-size:8px;line-height:1.5;color:var(--muted)}
.rb-stop-actions{display:grid;grid-template-columns:26px 26px;gap:3px;flex-shrink:0}
.rb-stop-actions button{width:26px;height:26px;display:grid;place-items:center;border:1px solid transparent;border-radius:4px;color:#7a8a6f;padding:0;background:transparent}
.rb-stop-actions button:last-child{grid-column:1/-1;justify-self:center}
.rb-stop-actions button:hover:not(:disabled){background:#e1e7d6;border-color:#ced8c0;color:var(--green)}
.rb-stop-actions button:last-child:hover:not(:disabled){color:var(--orange)}
.rb-stop-actions button:disabled{opacity:.25;cursor:default}
.rb-stop-actions svg{width:13px;height:13px}
.rb-navigation-note{font-size:9px;line-height:1.7;color:#8b765c;border-top:1px solid var(--line);padding:9px 0 11px;margin:0;flex:0 0 auto}
.rb-navigation-note[hidden]{display:none}
.rb-empty{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:160px;height:100%;padding:24px 10px;color:var(--muted)}
.rb-empty>span:not(.rb-empty-mark),.rb-empty>strong{font-family:var(--serif);font-size:15px;font-weight:500;color:#738365;line-height:1.8}
.rb-empty p{font-size:10px;line-height:1.9;margin:11px 0 0;max-width:225px}
.rb-empty-mark{display:grid;place-items:center;width:57px;height:57px;border-radius:50%;border:1px solid #d1dac3;margin-bottom:17px;color:#8a9b77}
.rb-empty-mark svg{width:25px;height:25px;stroke-width:1.2}
.rb-pick-first{display:none;margin-top:18px;padding:7px 0;border-bottom:1px solid #adba9e;font-size:10px;color:var(--green)}
.rb-feedback{flex:0 0 auto;margin:0;padding:9px 26px;background:#f6e9df;color:#9a4e32;border-top:1px solid #ead4c3;font-size:11px;line-height:1.7;overflow-wrap:anywhere}
.rb-feedback[hidden]{display:none}
.rb-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;flex:0 0 auto;position:relative;padding:17px 26px;border-top:1px solid var(--line);background:var(--surface)}
.rb-summary{min-width:0}
.rb-summary>span{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);white-space:nowrap}
.rb-summary svg{width:16px;height:16px;color:#8b9b79}
.rb-summary strong{font-weight:600;color:var(--green)}
.rb-summary small{display:block;font-size:9px;line-height:1.7;color:var(--muted);margin-top:5px}
.rb-footer-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.rb-cancel,.rb-save{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;padding:9px 15px;white-space:nowrap;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);font-size:11px;line-height:1.5}
.rb-cancel:hover{background:var(--light)}
.rb-save{background:var(--green);border-color:var(--green);color:var(--paper)}
.rb-save:hover:not(:disabled){filter:brightness(.93)}
.rb-save svg{width:15px;height:15px}
.rb-save:disabled{opacity:.45;cursor:default}
.rb-mobile-tabs{display:none}
.dark-mode .route-builder{--rb-selected:#34462e;--rb-border:#5a7049}
.dark-mode .rb-order{background:#26372a}
.dark-mode .rb-count-badge,.dark-mode .rb-stop-number{background:#3b5032;color:#c1d5ae}
.dark-mode .rb-place:hover{background:#30422c;border-color:#637c51}
.dark-mode .rb-filters button[aria-pressed=true]{background:#35482f;border-color:#627b51;color:#c0d7ab}
.dark-mode .rb-stop{border-color:var(--line)}
.dark-mode .rb-stop-actions button:hover:not(:disabled){background:#3b5033;border-color:#536d47}
.dark-mode .rb-feedback{background:#492e23;color:#edc0a2;border-color:#6f4936}
.dark-mode .rb-empty-mark{border-color:#506145}
@media(max-width:760px){.rb-columns{grid-template-columns:1fr 1fr}.rb-fields{gap:12px;padding-inline:20px}.rb-pick{padding-left:20px;padding-right:15px}.rb-order{padding-left:15px;padding-right:20px}.rb-panel-heading h3{font-size:14px}.rb-result-count{font-size:8px}.rb-place{gap:8px;padding:9px;min-height:75px}.rb-place-image{width:48px;height:48px;flex-basis:48px}.rb-place-state{width:21px;height:21px;flex-basis:21px}.rb-place-copy strong{font-size:10px}.rb-stop{grid-template-columns:18px 35px minmax(0,1fr) auto;column-gap:6px}.rb-stop-image{width:35px;height:35px}.rb-stop-actions{grid-template-columns:23px 23px;gap:0}.rb-stop-actions button{width:23px;height:23px}.rb-footer{padding-inline:20px}.rb-summary small{font-size:8px}}
@media(max-width:699px){dialog.route-builder-dialog{width:calc(100vw - 20px);height:calc(100dvh - 28px);max-height:calc(100dvh - 28px);max-width:560px}.route-builder-dialog>.dialog-head{padding:16px 18px 13px}.route-builder-dialog>.dialog-head h2{font-size:20px}.rb-fields{grid-template-columns:1fr;gap:10px;padding:15px 18px 14px}.rb-field{gap:6px;font-size:10px}.rb-field input,.rb-field textarea{height:38px;min-height:38px;font-size:16px;padding:8px 10px}.rb-note-field>span{font-size:9px}.rb-note-field textarea{font-size:13px}.rb-mobile-tabs{display:flex;flex:0 0 auto;gap:0;margin:0;padding:0 18px;border-bottom:1px solid var(--line);background:var(--paper)}.rb-mobile-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;flex:1;position:relative;padding:12px 8px 11px;font-size:11px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.rb-mobile-tabs button[aria-selected=true]{color:var(--green);border-bottom-color:#6f885c}.rb-mobile-tabs [data-rb-tab-count]{font-size:9px;min-width:18px;height:18px;display:grid;place-items:center;background:#e3ead8;border-radius:50%;color:#647952}.rb-columns{display:flex;min-height:0;flex:1}.rb-pick,.rb-order{width:100%;padding:16px 18px 0;min-width:0;min-height:0;flex:1}.rb-pick{border-right:0}.route-builder[data-view=pick] .rb-order,.route-builder[data-view=order] .rb-pick{display:none}.rb-panel-heading{margin-bottom:12px}.rb-panel-heading h3{font-size:16px}.rb-result-count{font-size:9px}.rb-place{padding:10px 12px;gap:11px;min-height:76px;margin-bottom:8px}.rb-place-image{width:52px;height:52px;flex-basis:52px}.rb-place-copy strong{font-size:12px}.rb-place-copy>span{font-size:10px}.rb-place-state{width:25px;height:25px;flex-basis:25px}.rb-place-state svg{width:14px;height:14px}.rb-place-list,.rb-order-list{padding-right:3px}.rb-search{height:38px}.rb-search input{font-size:13px}.rb-filters button{font-size:10px;padding:5px 12px}.rb-picked-order{font-size:8px}.rb-order-help{font-size:10px;margin-bottom:10px}.rb-stop{grid-template-columns:22px 45px minmax(0,1fr) auto;column-gap:9px;min-height:83px}.rb-stop-number{width:22px;height:22px;font-size:10px}.rb-stop-image{width:45px;height:45px}.rb-stop-copy strong{font-size:12px}.rb-stop-copy>span{font-size:9px}.rb-stop-actions{grid-template-columns:31px 31px;gap:1px}.rb-stop-actions button{width:31px;height:31px}.rb-stop-actions svg{width:15px;height:15px}.rb-stop-actions button:last-child{height:25px}.rb-pick-first{display:block}.rb-empty{padding:16px 10px;min-height:130px}.rb-empty-order{min-height:210px}.rb-feedback{padding:8px 18px;font-size:10px}.rb-footer{padding:13px 18px max(13px,env(safe-area-inset-bottom));gap:10px;align-items:center}.rb-summary>span{font-size:10px;gap:5px}.rb-summary small{display:none}.rb-footer-actions{gap:7px}.rb-cancel,.rb-save{font-size:11px;padding:10px 12px;min-height:40px}.rb-save{gap:6px}.rb-save svg{width:14px;height:14px}.rb-cancel{padding-inline:9px}.dark-mode .rb-mobile-tabs [data-rb-tab-count]{background:#3d5033;color:#c4d7b1}}
@media(max-width:370px){.rb-footer{padding-inline:13px}.rb-fields,.rb-pick,.rb-order{padding-inline:14px}.rb-mobile-tabs{padding-inline:14px}.rb-summary svg{display:none}.rb-footer-actions{gap:5px}.rb-cancel{font-size:10px;padding-inline:7px}.rb-save{font-size:10px;padding-inline:10px}.rb-stop{grid-template-columns:20px 38px minmax(0,1fr) auto;column-gap:7px}.rb-stop-image{width:38px;height:38px}.rb-stop-actions{grid-template-columns:28px 28px}.rb-stop-actions button{width:28px;height:29px}}
@media(prefers-reduced-motion:reduce){.rb-place{transition:none}}
