:root{--brand-primary: #00809D;--brand-accent: #FF7601;--brand-support: #FCECDD;--neutral-900: #004251;--neutral-050: #F7F9FC;--color-text-primary: var(--neutral-900);--color-text-secondary: #6B7280;--color-text-muted: #9CA3AF;--color-text-light: #F7F9FC;--color-background-primary: var(--neutral-050);--color-background-secondary: #FFFFFF;--color-border-light: #E5E7EB;--color-border-medium: #D1D5DB;--brand-primary-light: #00809D;--brand-primary-dark: #005f73;--brand-accent-light: #F3A26D;--brand-accent-dark: #FF7601;--brand-support-light: #f9f2ed;--brand-support-dark: #FCECDD;--font-family-primary: -apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;--font-size-h1: 22px;--font-weight-h1: 600;--line-height-h1: 1.3;--font-size-h2: 16px;--font-weight-h2: 600;--line-height-h2: 1.4;--font-size-body: 14px;--font-weight-body: 400;--line-height-body: 1.5;--font-size-caption: 12px;--font-weight-caption: 400;--line-height-caption: 1.4;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .05em;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 20px;--spacing-xl: 24px;--spacing-xxl: 32px;--spacing-xxxl: 40px;--padding-sm: var(--spacing-sm);--padding-md: var(--spacing-md);--padding-lg: var(--spacing-lg);--padding-xl: var(--spacing-xl);--margin-sm: var(--spacing-sm);--margin-md: var(--spacing-md);--margin-lg: var(--spacing-lg);--margin-xl: var(--spacing-xl);--gap-sm: var(--spacing-sm);--gap-md: var(--spacing-md);--gap-lg: var(--spacing-lg);--gap-xl: var(--spacing-xl);--section-spacing: var(--spacing-xl);--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--border-radius-xl: 16px;--c-light: #fff;--c-dark: #000;--c-bg: #e8e8e9;--c-content: #223;--c-action: #0052f5;--c-glass: #bbbbbc;--glass-reflex-dark: 1;--glass-reflex-light: 1;--saturation: 150%}html,body,#root,.app{margin:0;padding:0;width:100%;height:100svh;font-size:16px;font-family:var(--font-family-primary);font-weight:var(--font-weight-body);line-height:var(--line-height-body);color:var(--color-text-primary);background-color:var(--color-background-primary)}.typography-h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-h1);line-height:var(--line-height-h1);letter-spacing:var(--letter-spacing-tight);margin:0}.typography-h2{font-size:var(--font-size-h2);font-weight:var(--font-weight-h2);line-height:var(--line-height-h2);letter-spacing:var(--letter-spacing-normal);margin:0}.typography-body{font-size:var(--font-size-body);font-weight:var(--font-weight-body);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-normal);margin:0}.typography-caption{font-size:var(--font-size-caption);font-weight:var(--font-weight-caption);line-height:var(--line-height-caption);letter-spacing:var(--letter-spacing-wide);margin:0}h1,.h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-h1);line-height:var(--line-height-h1);letter-spacing:var(--letter-spacing-tight);margin:0}h2,.h2{font-size:var(--font-size-h2);font-weight:var(--font-weight-h2);line-height:var(--line-height-h2);letter-spacing:var(--letter-spacing-normal);margin:0}h3,.h3{font-size:var(--font-size-body);font-weight:var(--font-weight-h2);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-normal);margin:0}p,.p{font-size:var(--font-size-body);font-weight:var(--font-weight-body);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-normal);margin:0}small,.small{font-size:var(--font-size-caption);font-weight:var(--font-weight-caption);line-height:var(--line-height-caption);letter-spacing:var(--letter-spacing-wide);margin:0}.spacing-xs{margin:var(--spacing-xs)}.spacing-sm{margin:var(--spacing-sm)}.spacing-md{margin:var(--spacing-md)}.spacing-lg{margin:var(--spacing-lg)}.spacing-xl{margin:var(--spacing-xl)}.padding-xs{padding:var(--spacing-xs)}.padding-sm{padding:var(--spacing-sm)}.padding-md{padding:var(--spacing-md)}.padding-lg{padding:var(--spacing-lg)}.padding-xl{padding:var(--spacing-xl)}.gap-sm{gap:var(--gap-sm)}.gap-md{gap:var(--gap-md)}.gap-lg{gap:var(--gap-lg)}.gap-xl{gap:var(--gap-xl)}.header{display:flex;justify-content:center;align-items:center;position:relative}.header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-h1);line-height:var(--line-height-h1);letter-spacing:var(--letter-spacing-tight);text-shadow:0 1px 2px rgba(0,0,0,.2);margin:0}.header-file-input{display:none}.geojson{padding:8px 16px;background:rgba(255,255,255,.9);border:1px solid rgba(0,0,0,.1);border-radius:6px;color:var(--color-text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000001a;backdrop-filter:blur(6px)}.geojson:hover:not(:disabled){background:rgba(255,255,255,1);box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.geojson:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0000001a}.geojson:disabled{opacity:.5;cursor:default;box-shadow:none}.header-file-name{max-width:240px;font-size:12px;color:var(--color-text-secondary, #555);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width: 767px){.header .center{display:none}.geojson{padding:6px 12px;font-size:12px}.header-file-name{display:none}}.map-container{position:relative;width:100%;height:100vh}.map{width:100%;height:100%;position:relative}.custom-marker{cursor:pointer;transition:transform .2s ease}.custom-marker:hover{transform:scale(1.1)}.marker-pin{position:relative;display:flex;align-items:center;justify-content:center}.marker-pin-icon{font-size:24px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.map-loading-overlay{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.95);backdrop-filter:blur(4px);border-radius:var(--border-radius-lg);padding:var(--padding-md) var(--spacing-lg);box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:var(--gap-sm);z-index:1000;border:1px solid var(--color-border-light);font-size:var(--font-size-body);color:var(--brand-primary);min-width:180px}.map-3d-button{position:absolute;top:210px;right:10px;width:29px;height:29px;background:#fff;border:none;border-radius:4px;box-shadow:0 0 0 2px #0000001a;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:11px;color:#333;transition:all .2s ease;z-index:1;outline:none}.map-3d-button:hover{background:var(--color-background-secondary);box-shadow:0 0 0 2px #00000026}.map-3d-button:active{background:var(--color-border-light)}.map-3d-button.active{background:var(--brand-primary-light);color:var(--color-background-secondary)}.map-3d-button.active:hover{background:var(--brand-primary-dark)}.map-3d-icon{font-family:Noto Sans JP,sans-serif;user-select:none;pointer-events:none}.tooltip{font-size:14px;color:var(--color-text-primary)}.map-tooltip{position:absolute;pointer-events:none;backdrop-filter:blur(20px);background:rgba(255,255,255,.75);border-radius:var(--border-radius-lg);border:1px solid var(--color-border-light);padding:10px 12px;transform:translate(12px,12px);max-width:260px;z-index:10}.map-tooltip .title{font-weight:600;margin-bottom:6px;font-size:13px;letter-spacing:.01em}.map-tooltip .body{display:flex;flex-direction:column;gap:4px}.map-tooltip .item{display:flex;gap:6px}.map-tooltip .item span{font-size:var(--font-size-body);color:var(--color-text-secondary)}.map-tooltip .empty{opacity:.7}.header{position:absolute;top:var(--spacing-sm);left:0;width:100%;display:flex;justify-content:center;align-items:center;z-index:1000;color:var(--color-text-primary);pointer-events:auto}.header h1{pointer-events:none}.maplibregl-ctrl-top-right{top:64px!important}a{color:inherit;text-decoration:none}.weather{position:absolute;left:var(--spacing-sm);top:70px;z-index:2;font-size:3rem;box-sizing:border-box;color:var(--brand-accent);background:radial-gradient(120% 120% at 30% 20%,rgba(255,255,255,.35) 0%,rgba(255,255,255,.18) 60%,rgba(255,255,255,.1) 100%);border:1px solid rgba(255,255,255,.28);border-radius:100%;box-shadow:0 10px 24px #0000002e,inset 0 1px #ffffff59;backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);padding:var(--padding-sm);height:96px;width:96px;display:flex;justify-content:center;align-items:center}.app{position:relative;width:100vw;height:100vh;overflow:hidden}.main-content{transition:opacity .3s ease,filter .3s ease}.content-wrapper{display:flex;width:100%;height:100vh}.map-section{flex:1;position:relative}.map-section .map-popup{position:absolute;z-index:1000}.deck-tooltip{overflow:hidden!important;box-shadow:0 6px 6px #0003,0 0 20px #0000001a!important;transition:all .4s cubic-bezier(.175,.885,.32,2.2)!important;border-radius:var(--border-radius-xl)!important;padding:var(--padding-md)!important;background:rgba(255,255,255,.75)!important}.liquidGlass-text{z-index:3;font-size:2rem;color:var(--color-text-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-h2);line-height:var(--line-height-h2);position:relative;background:rgba(255,255,255,.3)}.tooltip-header{font-weight:700;margin-bottom:4px}.tooltip-header.personal{color:var(--brand-accent)}.tooltip-info,.tooltip-peak-times{margin-top:4px;font-size:var(--font-size-h2);font-weight:var(--font-weight-body);line-height:var(--line-height-h2);color:var(--color-text-muted)}.floating-control-stack{position:fixed;top:24px;left:24px;width:min(240px,calc(100vw - 48px));display:flex;flex-direction:column;gap:var(--gap-md);z-index:905}.floating-control-stack>*{pointer-events:auto}.floating-control-stack .event-time-selector{position:static;inset:auto;width:100%;max-width:none}.floating-control-stack .control-card{display:flex;padding:var(--padding-lg);border-radius:var(--border-radius-lg);backdrop-filter:blur(20px);box-shadow:0 12px 30px #0000002e,0 6px 18px #0000001f;backdrop-filter:blur(18px);flex-direction:column;gap:var(--gap-sm)}.floating-control-stack .geojson-actions{display:flex;flex-wrap:wrap;gap:var(--gap-sm)}.floating-control-stack .geojson-file-list{display:flex;flex-wrap:wrap;gap:6px;max-width:100%}.floating-control-stack .geojson-file-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:rgba(0,0,0,.05);border-radius:999px;font-size:12px;color:var(--color-text-secondary, #555);white-space:nowrap}.floating-control-stack .geojson-file-chip button{border:none;background:transparent;color:inherit;cursor:pointer;font-size:12px;line-height:1;padding:0}.floating-control-stack .geojson-file-chip button:hover{color:var(--color-text-primary, #222)}.floating-control-stack .header-file-name{max-width:100%}.export-svg-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(255,255,255,.9);border:1px solid rgba(0,0,0,.1);border-radius:6px;color:var(--color-text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000001a;pointer-events:auto;justify-content:center}.export-svg-button:hover{background:rgba(255,255,255,1);box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.export-svg-button:active{transform:translateY(0);box-shadow:0 1px 2px #0000001a}.export-svg-button svg{flex-shrink:0}@media (max-width: 1024px){.floating-control-stack{left:16px;right:16px;width:auto}.floating-control-stack .control-card{padding:var(--padding-md)}}@media (max-width: 768px){.floating-control-stack{inset:auto 16px 160px;width:auto;gap:var(--gap-md)}.floating-control-stack .event-time-selector{bottom:auto;width:100%}.floating-control-stack .export-svg-button{width:100%}.floating-control-stack .geojson-actions{flex-direction:column;align-items:stretch}.floating-control-stack .control-card,.export-svg-button span{display:none}}@media (max-width: 480px){.floating-control-stack{bottom:120px;left:12px;right:12px}}
