:root{--chrome-font: Inter, "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, system-ui, sans-serif;--chrome-width: 1180px;--chrome-gutter: 28px;--chrome-header-height: 78px;--chrome-brand-size: 16px;--chrome-caption-size: 11px;--chrome-footer-size: 12px;--canvas: #0b1220;--panel: #172337;--panel-alt: #19283c;--soft: #24344b;--line: #304157;--ink: #edf3fb;--muted: #a0b2c8;--accent: #70ddc7;--accent-strong: #91ead8;--primary-ink: #0b2730;--header-line: #26374c;--footer-ink: #829bb0;--footer-link: #b3c4d8;color-scheme:dark;scrollbar-gutter:stable;font-family:var(--chrome-font);color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit}::selection{background:#4a827b;color:#fff}.site-shell{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse 70% 30% at 72% 0%,rgb(38 96 112 / 22%),transparent 80%),var(--canvas)}.page-container{width:min(100%,var(--chrome-width));min-width:0;min-height:100vh;flex:1;display:flex;flex-direction:column;margin:0 auto;padding:0 var(--chrome-gutter)}.site-header{display:flex;min-height:var(--chrome-header-height);align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--header-line)}.site-brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);font-size:var(--chrome-brand-size);font-weight:800;letter-spacing:.02em}.brand-mark{display:grid;width:36px;height:36px;flex:none;place-items:center;border-radius:10px;color:#9ef2df;background:#244755;font-size:26px;line-height:1}.header-caption{color:#859bb3;font-size:var(--chrome-caption-size);font-weight:700;letter-spacing:.12em}.site-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:24px;padding:38px 0 60px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:28px 0 32px;border-top:1px solid var(--header-line);color:var(--footer-ink);font-size:var(--chrome-footer-size);font-weight:500;letter-spacing:.02em}.site-footer a{margin-left:auto;color:var(--footer-link);text-decoration:none;white-space:nowrap}.site-footer a:hover{color:var(--accent)}.page-intro{display:grid;gap:12px;padding:16px 0 6px}.section-kicker{margin:0;color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.16em}h1,h2,p{margin:0}.page-intro h1{font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:750;line-height:1.25;letter-spacing:-.04em}.page-description{max-width:740px;color:var(--muted);font-size:.9rem;line-height:1.9}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.stat,.panel{min-width:0;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,var(--panel-alt),#142033)}.stat{display:flex;min-height:135px;flex-direction:column;gap:9px;padding:22px 24px}.stat-label{color:var(--muted);font-size:.76rem;font-weight:650}.stat strong{color:var(--ink);font-size:clamp(1.6rem,3vw,2rem);line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.stat strong small{color:#92a9bd;font-size:.8rem;font-weight:500;letter-spacing:normal}.stat-sub{color:#8da5bc;font-size:.73rem}.workspace{display:grid;grid-template-columns:minmax(0,1.52fr) minmax(318px,1fr);align-items:start;gap:18px}.panel{overflow:hidden}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:23px 24px 18px}.panel-top>div{display:grid;gap:7px}.panel h2{font-size:1.15rem;font-weight:750;line-height:1.4;letter-spacing:-.025em}.button{display:inline-flex;min-height:43px;align-items:center;justify-content:center;gap:8px;padding:10px 17px;border:1px solid var(--line);border-radius:9px;font-size:.85rem;font-weight:700;transition:background .16s,border-color .16s}.button--primary{border-color:var(--accent);background:var(--accent);color:var(--primary-ink)}.button--primary:hover:not(:disabled){border-color:var(--accent-strong);background:var(--accent-strong)}.button--secondary{border-color:var(--line);background:var(--soft);color:var(--ink)}.button--secondary:hover:not(:disabled){border-color:#58798d;background:#304660}.map-surface{position:relative;height:min(63vh,625px);min-height:470px;margin:0 13px;overflow:hidden;border:1px solid #314359;border-radius:12px;background:#e9eff6;isolation:isolate}.leaflet-map{z-index:0;width:100%;height:100%}.map-state,.map-empty{position:absolute;z-index:420;color:#355169;font-size:.8rem;line-height:1.75;text-align:center}.map-empty{top:14px;left:50%;width:min(93%,390px);padding:12px 15px;transform:translate(-50%);border:1px solid #dfe8f0;border-radius:9px;background:#fffffff2;box-shadow:0 4px 15px #20314a1a;pointer-events:none}.map-state{top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#eaf0f7}.map-footer{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:14px 22px 18px;color:#8ba2b8;font-size:.72rem;line-height:1.65}.side-section{padding:24px}.side-section+.side-section{border-top:1px solid var(--line)}.side-section>.section-kicker{margin-bottom:8px}.side-section h2{margin-bottom:17px}.drop-zone{border:1px dashed #537385;border-radius:12px;padding:23px 16px;background:#102335;text-align:center;transition:background .16s,border-color .16s}.drop-zone:focus-within,.drop-zone:hover{border-color:var(--accent);background:#183448}.upload-symbol{display:grid;width:45px;height:45px;place-items:center;margin:0 auto 12px;border-radius:11px;background:#244755;color:#9ef2df;font-size:28px;line-height:1}.drop-zone strong{color:var(--ink);font-size:.92rem}.drop-zone p{margin:7px 0 16px;color:var(--muted);font-size:.76rem;line-height:1.8}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sample-button{display:block;min-height:35px;margin:13px auto 0;border:0;background:transparent;color:var(--accent);font-size:.8rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}.sample-button:hover:not(:disabled){color:var(--accent-strong)}.privacy-note,.bottom-note{color:var(--muted);font-size:.76rem;line-height:1.9}.privacy-note{margin-top:17px}.errors{margin-top:14px;padding:13px 14px;border:1px solid #91555c;border-radius:9px;background:#42252b;color:#ffc5c3;font-size:.82rem;line-height:1.7;overflow-wrap:anywhere}.errors p+p{margin-top:6px}.activity-heading{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:12px}.activity-heading>div:first-child{display:grid;gap:7px}.activity-heading h2{margin:0}.activity-heading h2 span{color:#91a6bd;font-size:.8rem;font-weight:500}.activity-tools{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}.activity-tools button,.clear-button{min-height:35px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:var(--soft);color:var(--ink);font-size:.74rem;font-weight:650}.activity-tools button:hover:not(:disabled){background:#304660;border-color:#58798d}.empty-list{margin-top:19px;padding:40px 12px;border:1px dashed var(--line);border-radius:10px;background:#101b2a;color:var(--muted);font-size:.84rem;line-height:1.9;text-align:center}.ride-list{display:grid;gap:10px;max-height:570px;overflow-y:auto;padding:0;margin:18px 0 0;list-style:none}.ride-item{display:flex;align-items:flex-start;gap:12px;min-width:0;padding:14px 13px;border:1px solid var(--line);border-radius:11px;background:#101c2e}.ride-check{display:inline-flex;align-items:center;gap:8px;padding-top:4px;cursor:pointer}.ride-check input{width:17px;height:17px;margin:0;accent-color:var(--accent)}.ride-dot{display:inline-block;flex:none;width:9px;height:9px;border-radius:50%}.ride-content{min-width:0;flex:1}.ride-title{padding:0;border:0;background:transparent;color:var(--ink);font-size:.87rem;font-weight:750;text-align:left;line-height:1.4;overflow-wrap:anywhere}.ride-title:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.ride-date{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:7px;color:var(--muted);font-size:.75rem}.format-tag{border-radius:5px;padding:3px 6px;background:#253d4b;color:#93ddcf;font-size:.66rem;font-weight:800}.ride-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:10px;color:var(--muted);font-size:.76rem}.ride-meta strong{color:var(--accent);font-size:1rem;font-variant-numeric:tabular-nums}.ride-extra{margin-top:6px;color:#8aa0b7;font-size:.72rem;line-height:1.65}.muted-ride{opacity:.5}.remove-button{flex:none;min-width:26px;min-height:26px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#a0b2c8;font-size:21px;line-height:1}.remove-button:hover{border-color:#91555c;color:#ffc5c3}.clear-button{display:block;margin:16px 0 0 auto;border-color:#704a55;background:#35252e;color:#ffb9b8}.clear-button:hover{background:#482d38}.bottom-note{padding:0 2px}.leaflet-container{font-family:var(--chrome-font)}.leaflet-container a{color:#275b87}.leaflet-control-zoom a{color:#314763}@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);gap:14px}.panel-top,.side-section{padding:19px}.map-surface{height:540px}}@media(max-width:820px){.workspace{grid-template-columns:1fr}.side-panel{order:-1}.stats-grid{gap:10px}.stat{padding:18px;min-height:118px}.map-surface{height:490px}}@media(max-width:620px){:root{--chrome-gutter: 17px;--chrome-header-height: 67px}.header-caption{display:none}.site-main{gap:19px;padding:26px 0 44px}.page-intro{padding-top:8px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{min-height:106px;padding:16px}.stat:last-child{grid-column:1 / -1;min-height:93px}.stat strong{font-size:1.65rem}.panel-top{align-items:flex-start}.panel-top .button{padding:9px 11px;min-height:39px;font-size:.76rem}.map-surface{height:400px;min-height:350px;margin:0 9px}.map-footer{padding:12px 15px 16px}.site-footer{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}.color-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:0 24px 16px}.color-controls-label{color:var(--muted);font-size:.78rem;font-weight:650}.color-mode-buttons{display:flex;flex-wrap:wrap;gap:8px}.color-mode-button{min-height:36px;padding:7px 14px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--ink);font-size:.78rem;font-weight:700}.color-mode-button:hover{border-color:#58798d}.color-mode-button.is-active{border-color:var(--accent);background:#244755;color:#adfae8}.color-legend{display:flex;flex-wrap:wrap;gap:9px 15px;margin:0 24px 16px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#102335}.color-legend-item{display:inline-flex;align-items:center;gap:7px;color:var(--ink);font-size:.74rem;white-space:nowrap}.color-swatch{display:inline-block;flex:none;width:12px;height:12px;border:1px solid #ffffff42;border-radius:3px}.ride-color-control{display:flex;align-items:center;flex-wrap:wrap;gap:6px 9px;margin-top:10px;color:var(--muted);font-size:.72rem}.ride-color-control select{min-width:0;max-width:100%;min-height:34px;padding:5px 29px 5px 9px;border:1px solid var(--line);border-radius:7px;background:var(--soft);color:var(--ink);font-size:.75rem}.ride-color-control select:hover{border-color:#58798d}@media(max-width:1050px){.color-controls{padding:0 19px 16px}.color-legend{margin:0 19px 16px}}@media(max-width:620px){.color-controls{padding:0 16px 14px}.color-legend{margin:0 16px 14px}}.export-controls{display:flex;flex-wrap:wrap;gap:10px;padding:0 22px 12px}.export-controls .button{flex:1 1 190px}.export-note{padding:0 22px 21px;color:var(--muted);font-size:.72rem;line-height:1.7}.export-error{margin:0 22px 12px;padding:10px 12px;border:1px solid #91555c;border-radius:8px;background:#42252b;color:#ffc5c3;font-size:.78rem}@media(max-width:620px){.export-controls{padding:0 15px 12px}.export-note{padding:0 15px 16px}.export-error{margin:0 15px 12px}}
