:root{--panel-width:390px;--bg:#f7f9fc;--line:#e3e8ef;--text:#152238;--muted:#6b7280;--shadow:0 10px 30px rgba(15,23,42,.16)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;color:var(--text);overflow:hidden}#app{position:relative;width:100%;height:100%;background:var(--bg)}#map{position:absolute;top:0;left:var(--panel-width);right:0;bottom:0;z-index:1}#sidePanel{position:absolute;top:0;left:0;width:var(--panel-width);height:100%;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);z-index:1000;box-shadow:var(--shadow);display:flex;flex-direction:column}.header{padding:18px 18px 14px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#102a43,#1d4ed8);color:white}.header h1{margin:0 0 8px;font-size:22px;line-height:1.25;letter-spacing:-.03em}.header p{margin:0;font-size:13px;opacity:.92}.officialLinks{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:#f8fafc}.officialLinks a{display:flex;align-items:center;justify-content:center;min-height:34px;border:1px solid #d8e0eb;border-radius:8px;background:white;color:#102a43;text-decoration:none;font-size:12px;font-weight:700;line-height:1.2;text-align:center}.officialLinks a:hover{background:#eef6ff;border-color:#bfdbfe}.panelControls{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-bottom:1px solid var(--line)}.panelControls button{border:1px solid var(--line);background:white;border-radius:10px;padding:9px 10px;font-size:13px;cursor:pointer}.panelControls button:hover{background:#f1f5f9}#itinerary{overflow-y:auto;padding:12px}.dayCard{border:1px solid var(--line);border-left:8px solid var(--day-color);border-radius:14px;margin-bottom:10px;background:white;overflow:hidden}.dayTop{display:flex;align-items:center;gap:10px;padding:12px 12px 8px;cursor:pointer}.dayBadge{flex:0 0 auto;width:54px;height:54px;border-radius:14px;background:var(--day-color);color:white;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;line-height:1.1;font-size:15px}.dayTitle{flex:1;min-width:0}.dayTitle h2{margin:0 0 4px;font-size:16px;line-height:1.28;letter-spacing:-.02em}.dayTitle p{margin:0;font-size:12px;color:var(--muted)}.dayBody{padding:0 12px 12px 76px}.dayBody ul{margin:0;padding-left:0;list-style:none}.dayBody li{margin:6px 0;font-size:13px;line-height:1.35}.dayBody li button{width:100%;text-align:left;border:0;background:transparent;padding:3px 0;cursor:pointer;color:var(--text);font-size:13px}.dayBody li button:hover{color:var(--day-color);font-weight:700}.stay{margin-top:8px;padding:8px 10px;border-radius:10px;background:#f8fafc;color:#334155;font-size:12px}.routeNote{margin-top:8px;padding:8px 10px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:12px;line-height:1.35}.googleRouteBtn{width:100%;margin-top:8px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e3a8a;padding:8px 10px;font-size:12px;font-weight:700;line-height:1.3;cursor:pointer;text-align:center}.googleRouteBtn:hover{background:#dbeafe;border-color:#93c5fd}#togglePanel{display:none;position:absolute;top:14px;left:14px;z-index:1200;border:0;background:#102a43;color:white;border-radius:999px;padding:10px 13px;box-shadow:var(--shadow);font-size:16px}.floatingLegend{background:rgba(255,255,255,.96);padding:12px 14px;border-radius:14px;box-shadow:var(--shadow);font-size:13px;line-height:1.55}.legendLine{display:inline-block;width:24px;height:4px;border-radius:4px;margin-right:7px;vertical-align:middle}.leaflet-popup-content{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;line-height:1.5}.popupTitle{font-weight:800;font-size:15px}.popupMeta{color:#64748b;font-size:12px}.popupCoord{margin-top:6px;color:#334155;font-size:12px}@media(max-width:820px){#map{left:0}#sidePanel{width:min(88vw,390px);transform:translateX(-105%);transition:transform .25s ease}body.panel-open #sidePanel{transform:translateX(0)}#togglePanel{display:block}body.panel-open #togglePanel{left:calc(min(88vw,390px) + 10px)}.officialLinks{grid-template-columns:repeat(2,1fr);gap:6px;padding:8px 10px}.officialLinks a{min-height:31px;font-size:11px}.leaflet-control-zoom{margin-top:62px!important}}
.floatingLegend {
  max-width: 320px;
}

.legendToggle {
  border: 0;
  background: #102a43;
  color: white;
  border-radius: 999px;
  padding: 9px 14px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--shadow);
}

.legendContent {
  margin-top: 8px;
}

.floatingLegend.collapsed {
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.floatingLegend.collapsed .legendContent {
  display: none;
}
.dayCheck {
  display: flex;
  align-items: center;
  justify-content: center;
}

.dayCheck input {
  width: 20px;
  height: 20px;
  accent-color: var(--day-color);
  cursor: pointer;
}
.typeBtn {
  border:1px solid var(--line);
  background:white;
  border-radius:10px;
  padding:8px;
  cursor:pointer;
}

.typeBtn.active {
  background:#102a43;
  color:white;
}
.auroraToggle,
.supplyToggle {
  grid-column: 1 / -1;
  font-weight: 700;
}

.auroraToggle.active {
  background: #2e1065;
  border-color: #6d28d9;
  color: white;
}

.supplyToggle.active {
  background: #7c2d12;
  border-color: #f97316;
  color: white;
}

@media(max-width:820px){
  .panelControls{gap:6px;padding:10px}
  .panelControls button{padding:7px 8px;font-size:12px;border-radius:8px}
  .auroraToggle,.supplyToggle{grid-column:auto}
  .googleRouteBtn{padding:7px 8px;font-size:12px;border-radius:8px}
}
.routeSummary {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 12px;
  line-height: 1.35;
  border: 1px solid transparent;
}

.routeSummary.unchecked {
  background: #f8fafc;
  color: #475569;
  border-color: #e2e8f0;
}

.routeSummary.rough {
  background: #eef6ff;
  color: #1e3a8a;
  border-color: #bfdbfe;
}

.routeSummary.checked {
  background: #ecfdf5;
  color: #065f46;
  border-color: #a7f3d0;
}

.routeSummary.risky {
  background: #fff7ed;
  color: #9a3412;
  border-color: #fed7aa;
}
