:root {
  --bg-0: #f8fbff;
  --bg-1: #eaf3ff;
  --card: rgba(255,255,255,.92);
  --stroke: rgba(15,23,42,.12);
  --text: #0f172a;
  --muted: rgba(15,23,42,.72);
  --brand: #0c6cf1;
  --brand-2: #12a4d9;
  --radius: 18px;
  --shadow: 0 24px 60px rgba(15,23,42,.15);
  --overlay-opacity: .58;
}
*{box-sizing:border-box}
body.city-tenant{margin:0;min-height:100vh;font-family:"Manrope","Segoe UI",sans-serif;color:var(--text);background:radial-gradient(1200px 700px at 15% 15%, rgba(12,108,241,.2), transparent 60%),radial-gradient(900px 650px at 85% 25%, rgba(18,164,217,.18), transparent 60%),linear-gradient(180deg,var(--bg-0),var(--bg-1));}
.city-shell{min-height:100vh;background-size:cover;background-position:center;position:relative}
.city-overlay{position:absolute;inset:0;background:linear-gradient(115deg, rgba(8,25,46, calc(var(--overlay-opacity) + .12)), rgba(7,27,52, var(--overlay-opacity)));}
.city-content{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:24px 20px 56px}
.city-header{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.city-brand{display:flex;align-items:center;gap:12px}
.city-logo{width:58px;height:58px;object-fit:contain;border-radius:14px;background:#fff;border:1px solid rgba(255,255,255,.35)}
.city-title{margin:0;color:#fff;font-size:1.25rem;letter-spacing:.01em}
.city-subtitle{margin:0;color:rgba(255,255,255,.85);font-size:.9rem}
.city-nav{display:flex;gap:10px;flex-wrap:wrap}
.city-btn{border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.2);color:#fff;text-decoration:none;font-weight:700;padding:10px 14px;border-radius:12px;transition:transform .15s ease, background .2s ease;cursor:pointer}
.city-btn:hover{transform:translateY(-1px);background:rgba(255,255,255,.28)}
.city-btn-primary{border:none;background:linear-gradient(135deg,var(--brand),var(--brand-2));box-shadow:0 15px 28px rgba(4,111,231,.35)}
.city-grid{margin-top:36px;display:grid;gap:18px;grid-template-columns:1fr}
.report-columns{grid-template-columns:1.1fr .9fr;gap:16px;align-items:stretch}
.city-card{background:var(--card);border:1px solid var(--stroke);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}
.city-kicker{margin:0;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700}
.city-h1{margin:10px 0 10px;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.1}
.city-p{margin:0;color:#22324a;line-height:1.65}
.city-cta-row{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}
.city-form label{display:block;margin:10px 0 5px;font-size:.82rem;color:var(--muted);font-weight:700}
.city-form .city-checkline{display:flex;align-items:center;gap:8px;margin:8px 0 4px}
.city-form .city-checkline input[type="checkbox"]{width:18px;height:18px;flex:0 0 auto;margin:0}
.city-form input,.city-form select,.city-form textarea{width:100%;border:1px solid var(--stroke);border-radius:12px;padding:11px;font-size:16px;background:#fff}
.city-form textarea{min-height:110px}
.city-form .row{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.city-map{margin-top:12px;border:1px solid var(--stroke);border-radius:12px;height:260px;background:#f8fafc}
.city-alert{border-radius:12px;padding:10px 12px;border:1px solid rgba(190,24,93,.2);background:rgba(255,241,242,.95);color:#9f1239;margin-bottom:10px}
.city-alert.success{border-color:rgba(22,163,74,.2);background:rgba(240,253,244,.95);color:#166534}
.city-card .city-btn{background:#f8fbff;border-color:rgba(15,23,42,.18);color:#0f172a}
.city-card .city-btn:hover{background:#eef5ff}
.city-card .city-btn-primary{color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2));border:none}
@media (max-width:620px){.city-form .row{grid-template-columns:1fr}.city-content{padding:18px 14px 40px}.city-btn{width:100%;text-align:center}.report-columns{grid-template-columns:1fr}}
