:root{
  --bg: #f3f7fa; --panel: #ffffff; --panel-2: #e9eff5; --line: #d6e0e8;
  --accent: #0a3d62; --accent-2: #07517d; --accent-soft: #cfe0ec; --accent-dim: #eef4f8;
  --text: #16232c; --muted: #55677a; --muted-2: #93a4b3; --bad: #b3402f;
}

.section-box{ background: var(--panel-2); border: 1px solid var(--line); border-radius: 10px; padding: 18px; margin-bottom: 18px; }
.label{ display: block; font-size: 13px; font-weight: 700; margin-bottom: 10px; color: var(--text); }

.search-row{ display: flex; gap: 10px; flex-wrap: wrap; }
.input-box{ flex: 1; min-width: 220px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; box-sizing: border-box; font-family: 'JetBrains Mono', monospace; font-size: 13.5px; background: #fff; color: var(--text); }
.input-box:focus{ outline: none; border-color: var(--accent-2); box-shadow: 0 0 0 3px rgba(7,81,125,.12); }

.app{ padding: 12px 22px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; border: none; border-radius: 8px; cursor: pointer; font-weight: 600; font-size: 13.5px; font-family: 'Inter', sans-serif; white-space: nowrap; transition: filter .15s ease, box-shadow .15s ease; box-shadow: 0 2px 8px rgba(10,61,98,.25); }
.app:hover{ filter: brightness(1.08); }
.app:disabled{ opacity: .6; cursor: default; filter: none; box-shadow: none; }

.main{ display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; align-items: stretch; }
@media (max-width: 820px){ .main{ grid-template-columns: 1fr; } }

.left, .right{ background: var(--panel); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.left{ padding: 16px; }
.right{ min-height: 350px; padding: 0; position: relative; }

.grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }

.stat-card{ position: relative; background: var(--panel-2); border: 1px solid var(--line); border-left: 4px solid var(--accent-2); border-radius: 8px; padding: 13px 14px; animation: iplm-fade .25s ease-in; }
.card-title{ font-size: 10.5px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; }
.word{ font-size: 15px; font-weight: 700; color: var(--text); line-height: 1.4; word-break: break-word; }
.word.mono{ font-family: 'JetBrains Mono', monospace; font-size: 14px; }

.loader{ grid-column: 1 / -1; text-align: center; padding: 34px 16px; color: var(--muted); animation: iplm-pulse 1s infinite; }
.error-box{ grid-column: 1 / -1; background: #f8e2df; color: var(--bad); border-radius: 8px; padding: 14px 16px; font-weight: 600; font-size: 13.5px; text-align: center; }

@keyframes iplm-pulse{ 0%{ opacity: .35; } 50%{ opacity: 1; } 100%{ opacity: .35; } }
@keyframes iplm-fade{ from{ opacity: 0; transform: translateY(4px); } to{ opacity: 1; transform: translateY(0); } }

#map{ width: 100%; height: 100%; min-height: 350px; }

.note{ margin-top: 16px; font-size: 12px; color: var(--muted); line-height: 1.6; background: var(--panel-2); border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; }
