:root{--nav:#0f2342;--blue:#2563eb;--purple:#6d5dfc;--green:#10b981;--red:#ef4444;--orange:#f59e0b;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--soft:#f7f9fd;--card:#fff;--shadow:0 18px 45px rgba(15,35,66,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(180deg,#f7faff,#eef4ff);color:var(--text)}a{text-decoration:none;color:inherit}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:24px}.logo{width:46px;height:46px;border-radius:14px;background:#fff;display:grid;place-items:center;color:white;font-size:24px;overflow:hidden;border:1px solid var(--line);box-shadow:0 8px 20px rgba(15,35,66,.08)}.logo img{width:100%;height:100%;object-fit:contain;padding:4px}.muted{color:var(--muted)}.form-group{margin:16px 0}.form-group label{display:block;font-weight:700;margin-bottom:7px}.input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:14px;background:#fff;color:#0f172a}.btn{border:0;border-radius:14px;padding:11px 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:8px;background:#eef2ff;color:#3730a3}.btn.primary{background:linear-gradient(135deg,#6d5dfc,#2563eb);color:#fff}.btn.green{background:#10b981;color:#fff}.btn.red{background:#fee2e2;color:#b91c1c}.btn.dark{background:#0f2342;color:white}.btn.block{width:100%;justify-content:center}.app{display:flex;min-height:100vh}.sidebar{width:270px;background:#102647;color:#dbeafe;padding:22px 18px;position:fixed;top:0;bottom:0;left:0;overflow:auto}.sidebar .brand{color:#fff;font-size:20px;margin-bottom:26px}.nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;color:#bfdbfe;margin:4px 0;font-weight:700}.nav a.active,.nav a:hover{background:rgba(255,255,255,.11);color:#fff}.main{margin-left:270px;width:calc(100% - 270px);padding:22px}.topbar{height:66px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:22px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;box-shadow:0 12px 25px rgba(15,35,66,.05);position:sticky;top:14px;z-index:2}.search{max-width:420px}.avatar{width:38px;height:38px;border-radius:50%;background:#dbeafe;display:grid;place-items:center;font-weight:900;color:#1d4ed8}.page-title{font-size:28px;margin:26px 0 6px}.grid{display:grid;gap:18px}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:20px}.stat{display:flex;justify-content:space-between;align-items:flex-start}.stat .num{font-size:28px;font-weight:900}.stat .label{color:var(--muted);font-weight:700}.stat .icon{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#eef2ff;color:#4f46e5;font-size:22px}.two-col{grid-template-columns:1.35fr .9fr}.three-col{grid-template-columns:1.2fr .8fr .8fr}.map{height:360px;background:linear-gradient(135deg,#e8f1ff,#f7fff8);border:1px solid var(--line);border-radius:20px;position:relative;overflow:hidden}.map:before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(148,163,184,.18) 1px,transparent 1px),linear-gradient(rgba(148,163,184,.18) 1px,transparent 1px);background-size:38px 38px;transform:rotate(-7deg) scale(1.4)}.pin{position:absolute;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:#fff;border:6px solid rgba(16,185,129,.35);box-shadow:0 12px 25px rgba(0,0,0,.12);z-index:1}.pin.red{border-color:rgba(239,68,68,.35)}.pin.blue{border-color:rgba(37,99,235,.35)}.safezone{position:absolute;border-radius:50%;opacity:.2;z-index:0}.safezone.green{background:#10b981}.safezone.blue{background:#2563eb}.safezone.red{background:#ef4444}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);font-size:14px}.table th{color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900}.badge.success{background:#dcfce7;color:#166534}.badge.warning,.badge.trial{background:#fef3c7;color:#92400e}.badge.danger{background:#fee2e2;color:#991b1b}.badge.premium{background:#ede9fe;color:#5b21b6}.badge.basic{background:#dbeafe;color:#1d4ed8}.badge.trial{background:#fef3c7;color:#92400e}.list{display:flex;flex-direction:column;gap:12px}.list-item{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:16px;padding:12px;background:#fff}.alert-dot{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#fee2e2;color:#dc2626}.alert-dot.green{background:#dcfce7;color:#16a34a}.alert-dot.orange{background:#ffedd5;color:#ea580c}.actions{display:flex;gap:8px;flex-wrap:wrap}.toolbar{display:flex;align-items:center;justify-content:space-between;margin:18px 0}.flash{background:#dcfce7;color:#166534;border:1px solid #86efac;border-radius:14px;padding:12px 14px;margin:14px 0;font-weight:700}.modal-card{max-width:900px}.section-title{font-weight:900;font-size:18px;margin:0 0 12px}.empty{text-align:center;padding:35px;color:#64748b}.footer-note{margin-top:25px;color:#94a3b8;font-size:12px}.kpi-change{font-size:12px;color:#16a34a;font-weight:800}.danger-text{color:#dc2626}.phone-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.phone-card{border:1px solid var(--line);border-radius:24px;padding:18px;background:#fff}.phone-frame{border:8px solid #111827;border-radius:34px;min-height:420px;padding:16px;background:#fff}.kid-hero{background:linear-gradient(135deg,#10b981,#86efac);border-radius:22px;padding:22px;color:white;min-height:150px}.sos{width:150px;height:150px;margin:35px auto;border-radius:50%;background:#ef4444;color:#fff;font-size:34px;font-weight:900;display:grid;place-items:center;box-shadow:0 0 0 20px #fee2e2}.api-box{background:#0f172a;color:#dbeafe;border-radius:18px;padding:16px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}@media(max-width:1100px){.sidebar{position:static;width:100%;height:auto}.app{display:block}.main{margin-left:0;width:100%}.grid.cards,.two-col,.three-col,.phone-preview{grid-template-columns:1fr}.topbar{position:static}.table{display:block;overflow:auto}} 

.logo-only{justify-content:center}.brand.logo-only .logo{width:72px;height:72px;border-radius:20px}.sidebar .brand.logo-only{justify-content:flex-start;margin-bottom:28px}.sidebar .brand.logo-only .logo{width:62px;height:62px}.brand.center{text-align:center}.money-card.paid{border-color:#bbf7d0}.money-card.unpaid{border-color:#fed7aa}


/* v8 logo display fix */
.brand.logo-only .logo{width:180px;height:60px;border:none;border-radius:0;background:transparent;box-shadow:none;overflow:visible;display:flex;align-items:center;justify-content:flex-start}
.brand.logo-only .logo img{width:180px;height:auto;max-height:60px;object-fit:contain;padding:0;display:block}
.sidebar .brand.logo-only .logo{width:185px;height:62px}
.sidebar .brand.logo-only .logo img{width:185px;max-height:62px}
.login-card .brand.logo-only.center{justify-content:center}
.login-card .brand.logo-only.center .logo{justify-content:center;width:210px;height:70px;margin:0 auto 8px}
.login-card .brand.logo-only.center .logo img{width:210px;max-height:70px}

/* v10 payment and plan controls */
.payment-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.proof-img{max-width:180px;border:1px solid var(--line);border-radius:16px;padding:8px;background:#fff}.base-price{font-size:13px;color:var(--muted);font-weight:800}.kid-limit{color:var(--muted);font-weight:900;margin:6px 0}.settings-note{background:#eff6ff;border:1px solid #bfdbfe;border-radius:16px;padding:12px 14px;color:#1d4ed8;font-weight:800}
@media(max-width:1100px){.payment-summary{grid-template-columns:1fr}}
