:root{--text-sm: 12px;--text-md: 14px;--text-lg: 16px;--text-xl: 18px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--bg: #f4f6f8;--surface: #ffffff;--surface-2: #eef1f5;--text: #1c2128;--muted: #5f6b7a;--border: #d5dae1;--primary: #1a66d9;--primary-text: #ffffff;--primary-soft: #e6effc;--danger: #c62828;--danger-soft: #fdecea;--warn-bg: #fff4e5;--warn-text: #8a4b00;--error-bg: #fdecea;--cached: #7b4bd6;--tentative: #d9650a;--tentative-text: #ffffff;--ok: #2e9e5b;--near: #e0a100;--shadow: 0 6px 20px rgb(0 0 0 / .12);--font-sans: system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Noto Sans JP", sans-serif;color-scheme:light;font-family:var(--font-sans);font-size:var(--text-md);line-height:1.5;color:var(--text);background:var(--bg)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0f1216;--surface: #181c22;--surface-2: #222830;--text: #e6e8eb;--muted: #9aa3ad;--border: #2f363f;--primary: #5b9bff;--primary-text: #0b1220;--primary-soft: #1c2a40;--danger: #ff6b6b;--danger-soft: #3b1d1d;--warn-bg: #3a2a12;--warn-text: #ffcf8a;--error-bg: #3b1d1d;--cached: #b392f0;--tentative: #f08a3c;--tentative-text: #1a0e04;--shadow: 0 6px 20px rgb(0 0 0 / .45);color-scheme:dark}}:root[data-theme=dark]{--bg: #0f1216;--surface: #181c22;--surface-2: #222830;--text: #e6e8eb;--muted: #9aa3ad;--border: #2f363f;--primary: #5b9bff;--primary-text: #0b1220;--primary-soft: #1c2a40;--danger: #ff6b6b;--danger-soft: #3b1d1d;--warn-bg: #3a2a12;--warn-text: #ffcf8a;--error-bg: #3b1d1d;--cached: #b392f0;--tentative: #f08a3c;--tentative-text: #1a0e04;--shadow: 0 6px 20px rgb(0 0 0 / .45);color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--primary)}h1,h2,h3,h4{line-height:1.3}button,.button{font:inherit;font-size:var(--text-md);padding:6px var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;text-decoration:none;display:inline-block;line-height:1.4}button:hover:not(:disabled),.button:hover{background:var(--surface-2)}button:focus-visible,.button:focus-visible,summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text);font-weight:600}button.primary:hover:not(:disabled){background:var(--primary);filter:brightness(1.08)}button.danger{color:var(--danger)}button.ghost{background:transparent;border-color:transparent}button.ghost:hover:not(:disabled){background:var(--surface-2)}.sub-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px 10px;font-size:var(--text-sm);font-weight:600;color:var(--primary);background:var(--primary-soft);border:1px solid transparent;border-radius:999px}.sub-btn:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary)}.sub-btn.danger{color:var(--danger);background:var(--danger-soft)}.sub-btn.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.icon-btn{width:30px;height:30px;padding:0;display:inline-grid;place-items:center;font-size:var(--text-lg);line-height:1;border-radius:50%;border-color:transparent;background:transparent}.icon-btn.danger{color:var(--muted)}.icon-btn.danger:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.road-toggle,.branch-toggle{display:inline-flex;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.road-toggle button,.branch-toggle button{border:none;border-radius:0;background:transparent;color:var(--muted)}.road-toggle button{padding:3px 10px;font-size:var(--text-sm)}.branch-toggle button{padding:5px 14px;font-size:var(--text-md);font-weight:600}.road-toggle button+button,.branch-toggle button+button{border-left:1px solid var(--border)}.road-toggle button.on,.branch-toggle button.on,.road-toggle button.on:hover,.branch-toggle button.on:hover{background:var(--primary);color:var(--primary-text)}input,select,textarea{font:inherit;font-size:var(--text-md);padding:6px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text);min-width:0}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}@media(pointer:coarse){input,select,textarea{font-size:16px}}.time-picker{position:relative;display:inline-block}.time-value{font-variant-numeric:tabular-nums;font-weight:600;min-width:72px;text-align:center}.time-value.empty{color:var(--muted);font-weight:400}.time-value[aria-expanded=true]{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.time-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:30;width:min(280px,calc(100vw - 32px));padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.time-label{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-1)}.time-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-1)}.time-grid button,.time-days button{padding:6px 0;font-variant-numeric:tabular-nums;text-align:center;border-color:transparent;background:var(--surface-2)}.time-days{display:flex;flex-wrap:wrap;gap:var(--space-1)}.time-days button{padding:4px 10px;font-size:var(--text-sm);display:inline-flex;flex-direction:column;align-items:center;line-height:1.3}.time-days button small{font-size:var(--text-sm);font-weight:400;opacity:.8}.time-grid button.on,.time-days button.on,.time-grid button.on:hover,.time-days button.on:hover{background:var(--primary);color:var(--primary-text);font-weight:600}.page{min-height:100vh;display:flex;flex-direction:column}.page.narrow{max-width:720px;margin:0 auto;padding:0 var(--space-4)}.header{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:10px var(--space-4);border-bottom:1px solid var(--border);background:var(--surface)}.header h1{font-size:var(--text-xl);margin:0}.header-tools{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin-left:auto}.theme-toggle{white-space:nowrap}.menu{position:relative}.menu summary{list-style:none;padding:6px var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}.menu summary:hover{background:var(--surface-2)}.menu summary::-webkit-details-marker{display:none}.menu-items{position:absolute;right:0;top:calc(100% + 4px);z-index:30;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.menu-items button{text-align:left;border-color:transparent;background:transparent}.menu-items button:hover:not(:disabled){background:var(--surface-2)}.banner{padding:10px var(--space-4)}.banner.error{background:var(--error-bg)}.layout{flex:1;display:grid;grid-template-columns:minmax(340px,460px) 1fr;min-height:0}.panel{overflow-y:auto;padding:var(--space-4);border-right:1px solid var(--border);max-height:calc(100vh - 110px)}.map-wrap{position:relative;min-height:320px}.map{position:absolute;top:0;right:0;bottom:0;left:0}@media(max-width:768px){.layout{grid-template-columns:1fr}.map-wrap{order:-1;height:42vh}.panel{max-height:none;border-right:none}}.trip-title{width:100%;font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-3)}.day-tabs{display:flex;gap:6px;flex-wrap:wrap;position:sticky;top:calc(-1 * var(--space-4));z-index:20;margin:0 calc(-1 * var(--space-4)) var(--space-3);padding:var(--space-2) var(--space-4);background:var(--bg);border-bottom:1px solid var(--border)}.day-section{scroll-margin-top:72px;padding-bottom:20px;margin-bottom:20px;border-bottom:2px solid var(--border)}.day-section:last-child{border-bottom:none}.day-title{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--text-lg);margin:0 0 var(--space-2);padding-left:var(--space-2);border-left:4px solid var(--border)}.day-section.active .day-title{border-left-color:var(--primary)}.day-title small{font-size:var(--text-sm);font-weight:400;color:var(--muted)}.tab{display:flex;flex-direction:column;align-items:center;gap:0;padding:var(--space-1) 10px}.tab small{font-size:var(--text-sm);color:var(--muted)}.tab.active{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.tab.add{color:var(--primary)}.day-head{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:var(--space-2)}.day-head label{display:flex;flex-direction:column;font-size:var(--text-sm);color:var(--muted);gap:2px}.day-head .danger{margin-left:auto}.field-inline{display:inline-flex;align-items:center;gap:var(--space-2)}.day-head label.field-inline{flex-direction:column;align-items:flex-start;gap:2px}.stops{list-style:none;padding:0;margin:0 0 var(--space-3)}.stop{position:relative;display:grid;grid-template-columns:28px 1fr auto;gap:var(--space-2);padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.stop-num{width:26px;height:26px;border-radius:50%;background:var(--primary);color:var(--primary-text);display:grid;place-items:center;font-size:var(--text-sm);font-weight:600}.stop-num:hover{background:var(--primary)}.drag-handle{padding:0;border:none;cursor:grab;touch-action:manipulation;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.drag-handle:active{cursor:grabbing}.sortable{position:relative}.sortable.dragging{z-index:5;opacity:.85}.sortable.revealed .stop{animation:stop-reveal 1.6s ease-out}@keyframes stop-reveal{0%,40%{box-shadow:0 0 0 3px var(--primary)}to{box-shadow:0 0 0 3px transparent}}.sortable.dragging .stop{box-shadow:var(--shadow)}.stop-name{font-size:var(--text-lg);font-weight:600;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.stop-link{padding:0;border:none;background:none;font:inherit;font-weight:600;color:inherit;text-align:left;cursor:pointer}.stop-link:hover{color:var(--primary);text-decoration:underline;background:none}.place-name{display:block;flex:1 1 200px;min-width:0}.place-name gmp-place-details-compact{display:block;width:calc(100% + 12px);margin:-14px 0 -14px -12px;border:none;background:transparent;color-scheme:inherit;--gmp-mat-font-title-small: 600 20px/28px var(--font-sans)}.place-name.clickable{cursor:pointer}.badge{font-size:var(--text-sm);font-weight:500;padding:0 6px;border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--muted)}.stop-times{display:flex;gap:var(--space-3);font-variant-numeric:tabular-nums;margin:var(--space-1) 0 6px}.stop-inputs{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.late{color:var(--warn-text);background:var(--warn-bg);padding:0 6px;border-radius:var(--radius-sm);font-size:var(--text-sm)}.memo-field{flex:1 1 100%;display:flex;gap:var(--space-2);align-items:flex-start}.memo-label{flex:none;padding-top:7px;font-size:var(--text-sm);color:var(--muted)}.memo-field .memo{flex:1;min-width:0;resize:none;overflow:hidden;line-height:1.5}.stop-actions{display:flex;flex-direction:column;gap:var(--space-1);margin:-4px -4px 0 0}.leg{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:6px 0 6px 36px;font-size:var(--text-sm);color:var(--muted)}.leg .insert-btn{margin-left:auto}.insert-search{padding:0 0 6px 36px}.insert-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-1) 0}.road-note{font-size:var(--text-sm);font-weight:600;color:var(--primary)}.branch{border:1px dashed var(--primary);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-2) 6px;margin:6px 0}.branch-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:6px}.branch-handle{width:28px;height:28px;border-radius:50%;padding:0;font-size:var(--text-lg);color:var(--primary);border:1px solid var(--primary);background:var(--surface)}.branch-tools{display:inline-flex;flex-wrap:wrap;gap:var(--space-2);margin-left:auto}.branch .stops{margin:0}.branch .place-search{margin-top:var(--space-1)}.branch-end{margin:var(--space-1) 0 0}.place-search{position:relative;margin:var(--space-2) 0}.insert-search .place-search{margin:0}.place-search-input{width:100%}.place-search-list{position:absolute;left:0;right:0;top:100%;z-index:20;margin:2px 0 0;padding:var(--space-1) 0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);max-height:50vh;overflow-y:auto}.place-search-list li{display:flex;flex-direction:column;padding:var(--space-2) var(--space-3);cursor:pointer}.place-search-list li.active,.place-search-list li:hover{background:var(--surface-2)}.place-search-main{font-size:var(--text-md)}.place-search-secondary{font-size:var(--text-sm);color:var(--muted)}.place-search-error{color:var(--danger);font-size:var(--text-sm);margin-top:var(--space-1)}.compute{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:var(--space-3) 0}.stale{color:var(--warn-text);font-size:var(--text-sm)}.error{color:var(--danger);font-size:var(--text-sm)}.total{color:var(--muted)}.button.nav{margin-top:var(--space-1)}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:var(--text-sm)}.empty{text-align:center;padding:32px 0;color:var(--muted)}.settings{padding:var(--space-4) 0}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:14px}.field small{color:var(--muted);font-size:var(--text-sm)}.check{display:flex;gap:var(--space-2);align-items:flex-start;margin-bottom:14px}.actions{display:flex;gap:var(--space-2);margin-bottom:18px}.sync{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px;margin-bottom:18px}.sync h3{margin:0 0 var(--space-2);font-size:var(--text-lg)}.sync h4{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-md)}.sync p{margin:6px 0}.sync-row{display:flex;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-2) 0}.sync-row input{flex:1;min-width:200px}.sync .notice{padding:var(--space-2) 10px;border-radius:var(--radius-md);background:var(--warn-bg);color:var(--warn-text)}.members{list-style:none;padding:0;margin:var(--space-1) 0}.members li{display:flex;gap:var(--space-2);align-items:center;padding:var(--space-1) 0}.guide{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px}.guide summary{cursor:pointer;font-weight:600}.guide li{margin:6px 0}code{background:var(--surface-2);padding:1px var(--space-1);border-radius:4px;word-break:break-all}.footer{font-size:var(--text-sm);color:var(--muted);padding:10px var(--space-4);border-top:1px solid var(--border)}.usage summary{display:flex;align-items:center;gap:var(--space-2)}.usage-mini{width:64px;height:6px;border-radius:3px;background:var(--border);overflow:hidden}.usage-panel{min-width:300px;max-width:min(360px,calc(100vw - 32px));gap:10px;font-size:var(--text-sm)}.usage-row{display:flex;flex-direction:column;gap:3px}.usage-row .head{display:flex;justify-content:space-between;gap:var(--space-2)}.usage-bar{height:8px;border-radius:4px;background:var(--border);overflow:hidden}.usage-fill{height:100%;border-radius:inherit}.usage-fill.ok{background:var(--ok)}.usage-fill.near{background:var(--near)}.usage-fill.over{background:var(--danger)}.usage-note{color:var(--muted);font-size:var(--text-sm);margin:0}.usage-note summary{cursor:pointer}.usage-hash{display:block;width:100%;margin-top:4px;font-family:ui-monospace,monospace;font-size:12px}.stop.tentative{border-style:dashed;border-color:var(--tentative)}.badge.tentative{color:var(--tentative-text);background:var(--tentative);border-color:var(--tentative)}.tentative-name{font-weight:600;flex:1;min-width:120px}.stop-address{font-size:var(--text-sm);color:var(--muted);margin-top:2px}.stop-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:6px 0}.tentative-form{display:flex;flex-direction:column;gap:var(--space-2);padding:10px;margin:var(--space-2) 0;border:1px dashed var(--tentative);border-radius:var(--radius-lg);background:var(--surface)}.tentative-form .road-toggle{align-self:flex-start}.tentative-form .hint,.tentative-form .error{margin:0}.tentative-row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.tentative-address{flex:1;min-width:160px}.map-banner{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:5;display:flex;gap:10px;align-items:center;max-width:calc(100% - 24px);padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);font-size:var(--text-sm)}.value-cached{color:var(--cached)}.value-stale{color:var(--warn-text);font-weight:600}.day-break{display:flex;align-items:baseline;gap:var(--space-2);margin:6px 0;padding:var(--space-1) var(--space-2);font-size:var(--text-md);font-weight:700;color:var(--primary);border-top:2px dashed var(--primary);scroll-margin-top:72px}.day-break small{font-size:var(--text-sm);font-weight:400;color:var(--muted)}.stop-times:has(.day-break.in-stop){flex-wrap:wrap}.day-break.in-stop{flex-basis:100%;margin:var(--space-1) 0;padding:6px 0 0;border-top:none}.day-break.in-stop:before{content:"";position:absolute;left:-8px;right:-8px;margin-top:-6px;border-top:2px dashed var(--primary)}
