:root {
  --bg1: #dcfce7;
  --bg2: #bbf7d0;
  --bg3: #f0fdf4;
  --card: #f8fafc;
  --soft: #e2e8f0;
  --text: #0f172a;
  --muted: #475569;
  --border: #059669;
  --accent: #22c55e;
  --accent-dark: #14532d;
  --blue: #2563eb;
  --red: #dc2626;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, system-ui, Arial, sans-serif; color: var(--text); background: radial-gradient(circle at top, var(--bg1) 0%, var(--bg2) 26%, var(--bg3) 58%, #ecfdf5 100%); }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.page { min-height: 100vh; }
.topbar {
  position: sticky; top: 0; z-index: 40; background: rgba(248,250,252,.92); backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(5,150,105,.35);
}
.topbar-inner {
  max-width: 1280px; margin: 0 auto; padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-badge { width: 44px; height: 44px; border-radius: 16px; background: linear-gradient(135deg,#16a34a 0%,#22c55e 60%,#86efac 100%); display:flex; align-items:center; justify-content:center; font-weight:800; }
.brand-title { font-size: 22px; font-weight: 800; }
.brand-sub { font-size: 12px; color: var(--muted); }
.nav, .nav-right { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.btn {
  border: 1px solid rgba(5,150,105,.35); background: var(--card); color: var(--text); padding: 11px 16px; border-radius: 16px; font-weight: 600;
}
.btn-primary { background: var(--accent); border-color: transparent; color: #052e16; }
.btn-blue { background: var(--blue); border-color: transparent; color: #fff; }
.btn-red { background: var(--red); border-color: transparent; color: #fff; }
.btn-ghost { background: var(--soft); }
.btn-small { padding: 8px 12px; border-radius: 14px; font-size: 13px; }
.layout { max-width: 1280px; margin: 0 auto; padding: 24px; }
.hero {
  border: 1px solid rgba(5,150,105,.35); border-radius: 30px; padding: 26px; color: white;
  background: linear-gradient(135deg,#14532d 0%,#166534 38%,#22c55e 100%);
  display:flex; justify-content:space-between; gap:20px; align-items:flex-end; flex-wrap:wrap;
}
.hero h1 { margin: 0; font-size: 38px; }
.hero p { margin: 8px 0 0; color: #dcfce7; }
.search-card, .panel, .card {
  background: var(--card); border: 1px solid rgba(5,150,105,.35); border-radius: 28px; box-shadow: 0 12px 24px rgba(0,0,0,.08);
}
.search-card { padding: 16px; margin-top: 22px; }
.search-row { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.input-wrap { display:flex; align-items:center; gap:10px; background: #e2e8f0; border:1px solid rgba(5,150,105,.35); padding: 14px 16px; border-radius: 16px; flex:1; }
.input-wrap input, .input-wrap select, textarea { border:none; background:transparent; outline:none; width:100%; color:var(--text); }
.grid-home { display:grid; gap:24px; margin-top: 22px; grid-template-columns: 1.12fr .88fr; }
.map-box { padding: 16px; }
.fake-map { position:relative; min-height: 640px; border-radius:24px; overflow:hidden; border:1px solid rgba(5,150,105,.35); background: radial-gradient(circle at top,#bbf7d0 0%,#dcfce7 84%); }
.pin { position:absolute; display:flex; align-items:center; gap:8px; background: #fff; padding:6px 8px; border-radius:999px; box-shadow:0 8px 18px rgba(0,0,0,.12); }
.pin.partner { background: #eff6ff; border:1px solid #2563eb; }
.pin-dot { width:36px; height:36px; border-radius:14px; display:flex; align-items:center; justify-content:center; background: linear-gradient(135deg,#16a34a 0%,#22c55e 60%,#86efac 100%); }
.pin.partner .pin-dot { background: var(--blue); color: #fff; }
.pin-pill { background: var(--accent); color:#052e16; padding: 6px 10px; border-radius:999px; font-size:12px; font-weight:700; }
.pin.partner .pin-pill { background: var(--blue); color:#fff; }
.list-box { padding: 18px; }
.scroll { overflow:auto; }
.station-card { padding: 18px; border-radius: 24px; border:1px solid rgba(5,150,105,.35); background: var(--card); margin-bottom: 16px; }
.station-card.partner { border-color: #2563eb; background: linear-gradient(135deg,#eff6ff 0%,#dbeafe 58%,#bfdbfe 100%); }
.meta { font-size: 14px; color: #166534; }
.meta.partner { color: #1d4ed8; }
.title { font-size: 22px; font-weight: 700; margin-top: 6px; }
.muted { color: var(--muted); }
.badge { display:inline-flex; align-items:center; padding: 5px 10px; border-radius:999px; font-size:12px; font-weight:700; }
.badge.partner { background: var(--blue); color: #fff; }
.price-pill { background: var(--accent); color:#052e16; padding: 12px 16px; border-radius: 16px; font-weight: 700; }
.price-pill.partner { background: var(--blue); color:#fff; }
.actions { display:flex; gap:10px; flex-wrap:wrap; margin-top: 16px; }
.two-col { display:grid; grid-template-columns: .95fr 1.05fr; gap:24px; }
.compare-left { padding: 24px; color:#fff; background: linear-gradient(135deg,#14532d 0%,#166534 48%,#22c55e 100%); border-radius:30px; border:1px solid rgba(5,150,105,.35); }
.compare-right { padding: 20px; }
.form-note { background: rgba(248,250,252,.92); color: var(--text); border:1px solid rgba(5,150,105,.35); border-radius: 16px; padding: 14px 16px; }
.compare-results .station-card { background: linear-gradient(135deg,#f0fdf4 0%,#dcfce7 55%,#bbf7d0 100%); }
.compare-results .station-card.partner { background: linear-gradient(135deg,#eff6ff 0%,#dbeafe 58%,#bfdbfe 100%); }
.metrics { display:grid; grid-template-columns: repeat(4,1fr); gap:12px; margin-top:18px; }
.metric { padding: 12px; border:1px solid rgba(5,150,105,.35); border-radius: 16px; background:#fff; }
.operator-card { border:1px solid rgba(5,150,105,.35); border-radius: 16px; padding: 14px; background:#fff; margin-top:12px; }
.operator-card.partner { border-color: #2563eb; background:#eff6ff; }
.page-grid { display:grid; gap:24px; grid-template-columns: .9fr 1.1fr; }
.section-title { font-size: 20px; font-weight: 700; margin: 0 0 14px; }
.chips { display:flex; gap:8px; flex-wrap:wrap; }
.chip { padding:6px 10px; border-radius:999px; border:1px solid rgba(5,150,105,.35); background:#dcfce7; font-size:12px; font-weight:700; }
.account-grid, .stats-grid, .admin-grid, .grid-3, .grid-4 { display:grid; gap:16px; }
.account-grid { grid-template-columns: repeat(2,1fr); }
.stats-grid { grid-template-columns: repeat(3,1fr); }
.grid-3 { grid-template-columns: repeat(3,1fr); }
.grid-4 { grid-template-columns: repeat(4,1fr); }
.info-card { padding: 16px; border-radius: 18px; border:1px solid rgba(5,150,105,.35); background:#e2e8f0; }
.admin-shell { display:grid; grid-template-columns: 280px 1fr; min-height: calc(100vh - 74px); }
.sidebar { background:#f8fafc; border-right:1px solid rgba(5,150,105,.35); padding:20px; }
.sidebar .nav-btn { width:100%; justify-content:flex-start; display:flex; gap:10px; align-items:center; margin-bottom:8px; }
.main-admin { padding: 24px; display:grid; gap:24px; }
.stat-vertical { text-align:center; padding: 18px; border-radius:24px; border:1px solid rgba(5,150,105,.35); background:#f8fafc; }
.big-number { font-size: 34px; font-weight: 800; }
.modal {
  position: fixed; inset:0; background: rgba(2,6,23,.45); display:flex; align-items:center; justify-content:center; padding:16px; z-index:100;
}
.modal-card { width:min(820px,100%); background:#f8fafc; border:1px solid rgba(5,150,105,.35); border-radius:28px; padding:24px; }
.hidden { display:none !important; }
.tabs { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.small { font-size:12px; }
.pre { white-space: pre-wrap; word-break: break-word; background:#fff; border-radius:16px; border:1px solid rgba(5,150,105,.35); padding:14px; }
@media (max-width: 1100px) {
  .grid-home, .two-col, .page-grid, .admin-shell { grid-template-columns: 1fr; }
  .metrics, .grid-4, .stats-grid, .grid-3, .account-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .layout, .main-admin { padding: 16px; }
  .topbar-inner { padding: 12px 16px; }
  .hero h1 { font-size: 28px; }
  .metrics, .grid-4, .stats-grid, .grid-3, .account-grid { grid-template-columns: 1fr; }
}
