*{box-sizing:border-box}html,body{color:#eef3f6;-webkit-tap-highlight-color:transparent;background:#0b1d2a;height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#app{flex-direction:column;height:100dvh;display:flex}.top-bar{background:#0e2436;border-bottom:1px solid #1d3a52;justify-content:space-between;align-items:center;padding:10px 14px;font-size:15px;font-weight:600;display:flex}.locale-toggle{color:#eef3f6;background:0 0;border:1px solid #3a5a75;border-radius:6px;padding:4px 10px;font-size:13px}.screen{-webkit-overflow-scrolling:touch;flex:1;position:relative;overflow-y:auto}.screen[hidden]{display:none}.leg-card{cursor:pointer;border-bottom:1px solid #16324a;padding:14px 16px}.leg-card.leg-tbd{opacity:.6}.leg-card.leg-current{background:#123048;border-left:4px solid #f0a500}.leg-header{color:#9fb8cb;justify-content:space-between;font-size:13px;display:flex}.leg-title{margin:4px 0 8px;font-size:17px}.leg-summary{color:#b7cbdb;font-size:14px}.badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.badge-confirmed{display:none}.badge-planned{color:#f0d060;background:#3a3210;border:1px dashed #f0d060}.badge-tbd{color:#aaa;background:#333;border:1px dashed #888}.milestone-list{margin:0;padding:0;list-style:none}.milestone-row{border-radius:6px;gap:10px;padding:6px 4px;font-size:14px;display:flex}.milestone-row.milestone-current{background:#f0a50022;font-weight:700}.milestone-row.milestone-next{background:#fff1}.m-time{color:#9fb8cb;min-width:44px}.m-flag{color:#ff6b6b}.map-banner{z-index:5;text-align:center;background:#0e2436ee;border:1px solid #3a5a75;border-radius:8px;padding:10px 12px;font-size:13px;position:absolute;top:8px;left:8px;right:8px}.map-banner button{background:#f0a500;border:none;border-radius:6px;margin-left:8px;padding:4px 10px;font-weight:600}.place-marker{background:#c0392b;border:2px solid #fff;border-radius:50%;width:14px;height:14px}.place-marker-current{background:#f0a500;width:18px;height:18px}.detail-sheet{z-index:20;background:#10293e;border-top-left-radius:16px;border-top-right-radius:16px;max-height:75vh;padding:10px 18px 24px;transition:transform .2s ease-out;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%);box-shadow:0 -4px 24px #0008}.detail-sheet.open{transform:translateY(0)}.sheet-handle{background:#3a5a75;border-radius:2px;width:36px;height:4px;margin:4px auto 10px}.sheet-close{color:#eef3f6;background:0 0;border:none;font-size:18px;position:absolute;top:8px;right:12px}.detail-time{font-size:22px;font-weight:700}.countdown{color:#f0a500;font-size:14px;font-weight:500}.detail-weather{background:#0c2135;border:1px solid #1d3a52;border-radius:10px;margin-top:10px;padding:10px 12px;font-size:14px}.detail-weather.loading{color:#9fb8cb;border-style:dashed;font-style:italic}.weather-row{padding:2px 0}.weather-clothing{margin-top:4px;font-weight:600}.weather-meta{color:#7f97a8;align-items:center;gap:8px;margin-top:6px;font-size:11px;display:flex}.weather-refresh{color:#eef3f6;background:0 0;border:1px solid #3a5a75;border-radius:6px;padding:1px 8px;font-size:11px}.detail-where,.detail-booking,.detail-warnings,.detail-context,.detail-emergency,.detail-blocking{margin-top:10px;font-size:14px;line-height:1.5}.detail-blocking{background:#4a2a0022;border:1px solid #f0a500;border-radius:8px;padding:8px 10px}.detail-warnings{color:#ff9b6b}.detail-localtip{background:#10331f;border:1px solid #2b5c3a;border-radius:8px;margin-top:10px;padding:8px 10px;font-size:14px;line-height:1.5}.detail-context.small{color:#9fb8cb;font-size:12px}.detail-context.warn{color:#ff9b6b}.nav-btn{color:#0b1d2a;background:#f0a500;border-radius:8px;margin:12px 8px 0 0;padding:10px 16px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.nav-btn.secondary{color:#eef3f6;background:0 0;border:1px solid #3a5a75}.detail-sights h4{color:#9fb8cb;text-transform:uppercase;margin:14px 0 4px;font-size:13px}.tab-bar{background:#0e2436;border-top:1px solid #1d3a52;display:flex}.tab-btn{padding:10px 0 calc(10px + env(safe-area-inset-bottom));color:#9fb8cb;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;font-size:13px;display:flex}.tab-btn.active{color:#f0a500}.tab-icon{font-size:20px}
