.icon-btn{color:var(--text-faint);cursor:pointer;border-radius:var(--radius-md);width:28px;height:28px;transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.icon-btn:hover{color:var(--text-secondary);background:var(--bg-surface-hover)}.icon-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.icon-btn.danger:hover{color:var(--danger);background:var(--danger-muted)}.icon-btn:disabled{opacity:.4;cursor:default;pointer-events:none}.map-ctrl-btn{border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border-strong);width:36px;height:36px;color:var(--text-muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.map-ctrl-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.map-ctrl-btn:hover:not(:disabled){background:var(--bg-surface-hover);color:var(--text-secondary)}.map-ctrl-btn.active{border-color:var(--accent-border);background:var(--accent-muted);color:var(--accent)}.map-ctrl-btn.active:hover:not(:disabled){background:#f9731638}.map-ctrl-btn:disabled{opacity:.4;cursor:default}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right{z-index:-1}.route-controls{top:var(--space-4);right:var(--space-4);gap:var(--space-2);z-index:var(--z-overlay);flex-direction:column;display:flex;position:absolute}@media (width<=767px){.route-controls{display:none}}.routes-dialogue__overlay{z-index:var(--z-overlay);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.routes-dialogue{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);flex-direction:column;width:480px;max-width:90vw;max-height:80vh;display:flex;overflow:hidden}.routes-dialogue__header{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);flex-shrink:0;display:flex}.routes-dialogue__title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);flex:1}.routes-dialogue__new-btn{padding:var(--space-1) var(--space-3);background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--accent);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:var(--transition-fast)}.routes-dialogue__new-btn:hover{background:#f9731638}.routes-dialogue__close-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--text-md);transition:var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.routes-dialogue__close-btn:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.routes-dialogue__list{padding:var(--space-2) 0;flex:1;overflow-y:auto}.routes-dialogue__empty{padding:var(--space-5) var(--space-4);color:var(--text-muted);font-size:var(--text-sm);text-align:center}.routes-dialogue__row{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-subtle);transition:background-color var(--transition-fast);display:flex}.routes-dialogue__row:last-child{border-bottom:none}.routes-dialogue__row:hover{background:var(--bg-surface-hover)}.routes-dialogue__row--active{background:var(--bg-active)}.routes-dialogue__row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.routes-dialogue__row-name-line{align-items:center;gap:var(--space-2);display:flex}.routes-dialogue__row-name{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.routes-dialogue__active-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--accent);background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-full);padding:1px var(--space-2);flex-shrink:0}.routes-dialogue__row-meta{font-size:var(--text-sm);color:var(--text-muted)}.routes-dialogue__row-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.routes-dialogue__load-btn{padding:var(--space-1) var(--space-2);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:var(--transition-fast)}.routes-dialogue__load-btn:hover{background:var(--bg-surface-hover)}.routes-dialogue__icon-btn{width:26px;height:26px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.routes-dialogue__icon-btn:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.routes-dialogue__dirty-warning{width:100%;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--text-muted);background:var(--bg-surface);border-top:1px solid var(--border-subtle)}.routes-dialogue__dirty-warning button{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.routes-dialogue__import-btn{padding:var(--space-1) var(--space-2);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:var(--transition-fast)}.routes-dialogue__import-btn:hover{background:var(--bg-surface-hover)}.routes-dialogue__file-error{padding:var(--space-1) var(--space-3);color:var(--danger);font-size:var(--text-sm);margin:0}.routes-dialogue__row-name--editable{cursor:text;border-radius:var(--radius-sm);padding:1px var(--space-1);transition:background var(--transition-fast)}.routes-dialogue__row-name--editable:hover{background:var(--bg-surface-hover)}.routes-dialogue__row-name-input{background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:2px var(--space-1);font-size:var(--text-sm);color:var(--text-primary);outline:none;width:100%;max-width:200px}.planning-panel{background:var(--bg-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);font-family:var(--font-sans);font-size:var(--text-base);box-shadow:var(--shadow-panel);flex-direction:column;display:flex}.planning-panel__handle{z-index:var(--z-base);transition:background var(--transition-fast);background:0 0;position:absolute}.planning-panel__handle--right{cursor:col-resize;width:4px;height:100%;top:0;right:0}.planning-panel__handle--top{cursor:row-resize;width:100%;height:4px;top:0;left:0}.planning-panel__handle:hover{background:var(--accent-border)}.planning-panel__reopen{background:var(--bg-overlay);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;z-index:var(--z-panel);font-size:var(--text-sm);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute}.planning-panel__reopen:hover{background:var(--accent-muted);color:var(--text-primary);border-color:var(--accent-border)}.planning-panel__reopen--left{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none;width:20px;height:56px;top:50%;left:0;transform:translateY(-50%)}.planning-panel__reopen--bottom{border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-bottom:none;width:56px;height:20px;bottom:0;left:50%;transform:translate(-50%)}.planning-panel__header{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);flex-shrink:0;min-height:44px;display:flex}.planning-panel__name{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-fast);flex:1;overflow:hidden}.planning-panel__name:hover{background:var(--bg-surface-hover)}.planning-panel__name-input{background:var(--bg-surface);border:1px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-md);font-weight:var(--weight-semibold);font-family:var(--font-sans);padding:var(--space-1) var(--space-2);box-shadow:var(--focus-ring);outline:none;flex:1}.planning-panel__icon-btn{width:32px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--text-lg);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:flex}.planning-panel__icon-btn:hover{color:var(--text-secondary);background:var(--bg-surface-hover)}.planning-panel__icon-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.planning-panel__search{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);flex-shrink:0;position:relative}.planning-panel__search-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-size:var(--text-base);font-family:var(--font-sans);padding:var(--space-2) var(--space-3);transition:border-color var(--transition-fast);outline:none}.planning-panel__search-input::placeholder{color:var(--text-faint)}.planning-panel__search-input:focus{border-color:var(--accent-border);box-shadow:var(--focus-ring)}.planning-panel__search-dropdown{left:var(--space-3);right:var(--space-3);top:calc(100% - var(--space-2));background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-popover);z-index:var(--z-popup);position:absolute;overflow:hidden}.planning-panel__search-result{text-align:left;border:none;border-bottom:1px solid var(--border-subtle);width:100%;padding:var(--space-2) var(--space-3);cursor:pointer;transition:background var(--transition-fast);background:0 0;flex-direction:column;gap:2px;display:flex}.planning-panel__search-result:last-child{border-bottom:none}.planning-panel__search-result:hover{background:var(--bg-surface-hover)}.planning-panel__search-result-name{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--text-primary)}.planning-panel__search-result-sub{font-size:var(--text-sm);color:var(--text-muted)}.planning-panel__list{flex:1;min-height:0;overflow-y:auto}.planning-panel__empty{padding:var(--space-5) var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--text-base);line-height:1.6}.planning-panel__footer{gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;display:flex}.planning-panel__get-directions{width:100%;padding:var(--space-2) var(--space-3);background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-md);color:var(--accent);font-size:var(--text-base);font-weight:var(--weight-semibold);font-family:var(--font-sans);cursor:pointer;min-height:36px;transition:background var(--transition-fast)}.planning-panel__get-directions:hover:not(:disabled){background:#f9731638}.planning-panel__get-directions:disabled{opacity:.4;cursor:default}.planning-panel__get-directions--stale{border-color:var(--accent)}.planning-panel__optimize{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);display:flex}.planning-panel__optimize-options{gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);padding-left:var(--space-4);flex-direction:column;display:flex}.planning-panel__begin-traveling{width:100%;padding:var(--space-2) var(--space-3);background:var(--accent);border-radius:var(--radius-md);color:#fff;font-size:var(--text-base);font-weight:var(--weight-semibold);font-family:var(--font-sans);cursor:pointer;min-height:36px;transition:background var(--transition-fast);border:none}.planning-panel__begin-traveling:hover:not(:disabled){background:var(--accent-hover)}.planning-panel__begin-traveling:disabled{opacity:.4;cursor:default}.stop-row{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-surface);border-radius:var(--radius-sm);transition:background var(--transition-fast);display:flex}.stop-row:hover{background:var(--bg-surface-hover)}.stop-row__badge{background:var(--accent);width:20px;height:20px;color:var(--bg-base);font-size:var(--text-xs);font-weight:var(--weight-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.stop-row__content{flex:1;min-width:0}.stop-row__name{font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);padding:2px var(--space-1);white-space:nowrap;text-overflow:ellipsis;transition:background var(--transition-fast);overflow:hidden}.stop-row__name:hover{background:var(--bg-surface-hover)}.stop-row__name-input{background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius-sm);width:100%;padding:2px var(--space-1);font-size:var(--text-sm);color:var(--text-primary);outline:none}.stop-row__sublabel{font-size:var(--text-sm);color:var(--text-muted)}.stop-row__menu-wrap{flex-shrink:0;position:relative}.stop-row__menu-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;font-size:var(--text-base);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.stop-row__menu-btn:hover{background:var(--bg-surface-hover);color:var(--text-secondary)}.stop-row__menu{right:0;top:calc(100% + var(--space-1));background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-popover);z-index:calc(var(--z-overlay) + 2);min-width:160px;position:absolute;overflow:hidden}.stop-row__menu-item{text-align:left;width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;display:block}.stop-row__menu-item:hover:not(:disabled){background:var(--bg-surface-hover)}.stop-row__menu-item:disabled{opacity:.4;cursor:default}.stop-row__menu-item--danger{color:var(--danger)}.stop-row__menu-divider{background:var(--border);height:1px;margin:var(--space-1) 0}.stop-row--confirming{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-surface);border-radius:var(--radius-sm);display:flex}.stop-row__confirm-text{font-size:var(--text-sm);color:var(--text-secondary);flex:1}.stop-row__confirm-cancel,.stop-row__confirm-remove{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;border:1px solid var(--border)}.stop-row__confirm-cancel{background:var(--bg-surface);color:var(--text-secondary)}.stop-row__confirm-remove{background:var(--danger);color:var(--text-primary);border-color:var(--danger)}.segment-row{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) 48px;display:flex}.segment-row__connector{color:var(--border-strong);font-size:var(--text-sm)}.segment-row__duration{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.segment-row__dot{color:var(--text-faint);font-size:var(--text-xs)}.segment-row__distance{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.add-stop-row{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-4);border:none;border-top:1px dashed var(--border);color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);text-align:left;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;display:flex}.add-stop-row:hover{color:var(--text-primary);background:var(--bg-surface-hover)}.add-stop-row__icon{font-size:var(--text-lg);color:var(--accent);line-height:1;font-weight:var(--weight-medium)}.add-stop-row__label{font-weight:var(--weight-medium)}.exploration-panel{background:var(--bg-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-right:1px solid var(--border-subtle);width:320px;height:100%;box-shadow:var(--shadow-panel);flex-direction:column;display:flex;position:relative;overflow:hidden}.exploration-panel__header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--space-2);flex-shrink:0;min-height:44px;display:flex}.exploration-panel__back-btn{padding:var(--space-1) var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-base);font-family:var(--font-sans);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;flex:none}.exploration-panel__back-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.exploration-panel__title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.exploration-panel__leg-tabs{gap:var(--space-1);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);scrollbar-width:none;flex-shrink:0;display:flex;overflow-x:auto}.exploration-panel__leg-tabs::-webkit-scrollbar{display:none}.exploration-panel__tab{padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0;flex-shrink:0}.exploration-panel__tab:hover:not(.exploration-panel__tab--active){background:var(--bg-surface-hover);color:var(--text-primary)}.exploration-panel__tab--active{background:var(--accent);color:#fff;border-color:var(--accent)}.exploration-panel__poi-list{flex:1;min-height:0;overflow-y:auto}.exploration-panel__empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-faint);font-size:var(--text-base)}.exploration-panel__error{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-danger,#ef4444);font-size:var(--text-sm);align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.exploration-panel__retry-btn{border:1px solid var(--color-danger,#ef4444);color:var(--color-danger,#ef4444);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-4);cursor:pointer;font-size:var(--text-sm);transition:var(--transition-fast);background:0 0}.exploration-panel__retry-btn:hover{background:#ef44441a}.exploration-panel__footer{gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-subtle);flex-shrink:0;display:flex}.exploration-panel__primary-btn{padding:var(--space-2) 0;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:var(--text-base);font-weight:var(--weight-semibold);font-family:var(--font-sans);cursor:pointer;min-height:36px;transition:background var(--transition-fast);border:none;flex:1}.exploration-panel__primary-btn:hover:not(:disabled){background:var(--accent-hover)}.exploration-panel__primary-btn:disabled{opacity:.4;cursor:default}.legs-panel{background:var(--bg-overlay);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-panel);padding:var(--space-4) var(--space-5);min-width:280px;max-width:90vw;z-index:var(--z-panel);position:absolute;bottom:4rem;left:50%;transform:translate(-50%)}.legs-panel__from-to{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint);margin-bottom:var(--space-1);align-items:center;gap:var(--space-1);display:flex}.legs-panel__dist-dur{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-1)}.legs-panel__eta{font-family:var(--font-mono);font-size:var(--text-md)}.legs-panel__eta--on-time{color:var(--text-muted)}.legs-panel__eta--early{color:var(--success)}.legs-panel__eta--late{color:var(--danger)}.legs-panel__eta-offset{color:var(--text-faint)}.legs-panel__no-data{color:var(--text-muted)}.legs-panel__stop-btn{margin-top:var(--space-3);background:var(--danger-muted);border:1px solid var(--danger);border-radius:var(--radius-md);width:100%;color:var(--danger);font-weight:var(--weight-semibold);font-size:var(--text-sm);font-family:var(--font-sans);padding:var(--space-2) var(--space-3);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-1);min-height:36px;transition:background var(--transition-fast);display:flex}.legs-panel__stop-btn:hover{background:#ef444433}.poi-card{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast);display:flex}.poi-card:hover{background:var(--bg-surface-hover)}.poi-card__info{flex-direction:column;gap:2px;min-width:0;display:flex}.poi-card__name{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.poi-card__meta{font-size:var(--text-sm);color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.poi-card__tag-btn{cursor:pointer;font-size:var(--text-lg);color:var(--text-faint);padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;flex-shrink:0;line-height:1}.poi-card__tag-btn:hover{background:var(--bg-surface-hover)}.poi-card__tag-btn--tagged{color:var(--color-star)}.driving-overlay{align-items:flex-end;gap:var(--space-2);z-index:var(--z-panel);flex-direction:column;display:flex;position:absolute;bottom:8rem;right:.75rem}.driving-overlay__round-btn{border-radius:var(--radius-full);border:1px solid var(--border-strong);background:var(--bg-overlay);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;display:flex}.driving-overlay__round-btn:hover{background:var(--bg-surface-hover)}.driving-overlay__round-btn--listening{background:var(--accent);color:#fff;border-color:var(--accent)}.driving-overlay__settings-panel{background:var(--bg-overlay);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-3);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-width:160px}.driving-overlay__settings-label{font-size:var(--text-xs);color:var(--text-faint);margin-bottom:var(--space-1)}.driving-overlay__interval-btn{text-align:left;width:100%;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-xs);font-family:var(--font-sans);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;display:block}.driving-overlay__interval-btn--active{background:var(--accent-muted);color:var(--accent)}.driving-overlay__interval-btn:hover:not(.driving-overlay__interval-btn--active){background:var(--bg-surface-hover)}.layers-popover{margin-top:var(--space-2);background:var(--bg-overlay);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-3);width:240px;max-height:520px;z-index:var(--z-overlay);box-shadow:var(--shadow-popover);position:absolute;top:100%;right:0;overflow-y:auto}.lp-toggle{cursor:pointer;flex-shrink:0;align-items:center;display:inline-flex}.lp-toggle__input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.lp-toggle__track{background:var(--border-strong);border-radius:var(--radius-full);width:28px;height:16px;transition:background var(--transition-fast);display:block;position:relative}.lp-toggle__track:after{content:"";background:var(--text-muted);border-radius:var(--radius-full);width:12px;height:12px;transition:transform var(--transition-fast), background var(--transition-fast);position:absolute;top:2px;left:2px}.lp-toggle__input:checked+.lp-toggle__track{background:var(--accent)}.lp-toggle__input:checked+.lp-toggle__track:after{background:var(--text-primary);transform:translate(12px)}.lp-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:2px 0;display:flex}.lp-row--top{align-items:flex-start}.lp-row--checkbox{gap:var(--space-2)}.lp-label{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.4}.lp-label--master{color:var(--text-primary);font-weight:var(--weight-semibold)}.lp-label--block{margin-bottom:var(--space-1);display:block}.lp-divider{background:var(--border);height:1px;margin:var(--space-2) 0}.lp-expansion{padding-left:var(--space-2);margin-top:var(--space-1)}.lp-expand-btn{color:var(--text-faint);font-size:var(--text-xs);cursor:pointer;margin-bottom:var(--space-1);background:0 0;border:none;padding:0}.lp-expand-btn:hover{color:var(--text-muted)}.lp-all-none{align-items:center;gap:var(--space-1);margin-bottom:var(--space-2);display:flex}.lp-all-none button{color:var(--accent);font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;padding:0}.lp-all-none button:hover{color:var(--accent-hover)}.lp-all-none span{color:var(--text-faint);font-size:var(--text-xs)}.lp-type-list{flex-direction:column;gap:1px;display:flex}.lp-type-row{align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0;display:flex}.lp-type-row:hover{color:var(--text-primary)}.lp-checkbox{accent-color:var(--accent);cursor:pointer;flex-shrink:0;width:12px;height:12px}.lp-type-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.lp-slider{width:100%;accent-color:var(--accent);cursor:pointer;margin-top:var(--space-1);display:block}.lp-slider--off{accent-color:var(--text-muted);opacity:.4;cursor:default;pointer-events:none}.lp-slider-row{align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.lp-slider-row .lp-slider{flex:1;margin-top:0}.lp-slider-value{color:var(--accent);font-size:var(--text-xs);font-weight:var(--weight-medium);text-align:right;flex-shrink:0;min-width:24px}.lp-slider-value--off{color:var(--text-faint);font-weight:var(--weight-regular)}.place-details-panel{z-index:var(--z-base);background:var(--bg-panel);transition:transform var(--transition-slow);flex-direction:column;display:flex;position:absolute;inset:0;transform:translate(100%)}.place-details-panel--open{transform:translate(0)}.place-details-panel__header{background:var(--bg-surface);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2);padding:0 var(--space-3);flex-shrink:0;min-height:44px;display:flex;position:sticky;top:0}.place-details-panel__back-btn{color:var(--accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:var(--space-2) 0;background:0 0;border:none;flex-shrink:0}.place-details-panel__name{color:var(--text-primary);font-size:var(--text-md);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.place-details-panel__body{gap:var(--space-3);padding:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.place-details-panel__type-chip{background:var(--accent-bg);color:var(--accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;align-self:flex-start;display:inline-block}.place-details-panel__address{flex-direction:column;gap:2px;display:flex}.place-details-panel__address-line{color:var(--text-secondary);font-size:var(--text-base)}.place-details-panel__details{gap:var(--space-3);border-top:1px solid var(--border-subtle);padding-top:var(--space-3);flex-direction:column;display:flex}.place-details-panel__detail-block{flex-direction:column;gap:2px;display:flex}.place-details-panel__detail-label{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em}.place-details-panel__detail-value{color:var(--text-primary);font-size:var(--text-base)}.place-details-panel__footer{background:var(--bg-panel);border-top:1px solid var(--border);gap:var(--space-2);padding:var(--space-3);flex-shrink:0;display:flex;position:sticky;bottom:0}.place-details-panel__add-stop-btn{background:var(--accent);min-height:44px;color:var(--text-primary);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--transition-fast);border:none;flex:1}.place-details-panel__add-stop-btn:hover:not(:disabled){background:var(--accent-hover)}.place-details-panel__add-stop-btn:disabled{opacity:.4;cursor:default}.place-details-panel__star-btn{background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-md);cursor:pointer;width:44px;height:44px;font-size:var(--text-lg);color:var(--color-star);transition:background var(--transition-fast);flex-shrink:0}.place-details-panel__star-btn:hover:not(:disabled),.place-details-panel__star-btn--tagged{background:var(--accent-bg)}.poi-card--hovered{background:var(--bg-active)}@media (width<=767px){.planning-panel,.exploration-panel{border-radius:var(--mobile-panel-radius) var(--mobile-panel-radius) 0 0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;font-size:var(--text-base-mobile);position:fixed;left:0;right:0;overflow-y:auto}.planning-panel.is-snapping,.exploration-panel.is-snapping{transition:top var(--transition-slow)}.planning-panel__handle,.planning-panel__reopen--left,.planning-panel__reopen--bottom,.planning-panel__header .planning-panel__icon-btn:last-child{display:none}.icon-btn{width:var(--touch-target-sm);height:var(--touch-target-sm)}.map-ctrl-btn{width:var(--touch-target-md);height:var(--touch-target-md)}.planning-panel input,.planning-panel textarea,.planning-panel select,.exploration-panel input,.exploration-panel textarea,.exploration-panel select{font-size:max(var(--ios-font-zoom-min), var(--text-base))}.driving-overlay{padding-top:var(--safe-top)}.mapboxgl-map{touch-action:pan-x pan-y}}.pending-stop-row{padding:var(--space-2) var(--space-3);position:relative}.pending-stop-row__input{width:100%;padding:var(--space-2) var(--space-3);background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-primary);box-sizing:border-box;outline:none}.pending-stop-row__input::placeholder{color:var(--text-muted)}.pending-stop-row__dropdown{top:calc(100% - var(--space-2));left:var(--space-3);right:var(--space-3);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-popover);z-index:calc(var(--z-overlay) + 2);position:absolute;overflow:hidden}.pending-stop-row__result{text-align:left;width:100%;padding:var(--space-2) var(--space-3);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;flex-direction:column;display:flex}.pending-stop-row__result:hover{background:var(--bg-surface-hover)}.pending-stop-row__result-name{font-size:var(--text-sm);color:var(--text-primary)}.pending-stop-row__result-sub{font-size:var(--text-xs);color:var(--text-muted)}
