:root{--n:#071548;--n2:#0b245f;--accent:#1f5eff;--b:#f2f4f8;--l:#dfe3eb;--m:#717784;--white:#fff;--shadow:0 12px 32px rgba(7,21,72,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:linear-gradient(180deg,#eef2f8 0,#f7f8fb 44%,#f2f4f8 100%);color:#17191f;min-height:100vh}input,select,textarea,button{font:inherit}.page,.login{max-width:720px;margin:auto;padding:24px 20px 118px}.login{min-height:100vh;max-width:430px;display:flex;flex-direction:column;justify-content:center}.brand{text-align:center}.logo{width:95px;height:95px;border-radius:50%;background:var(--n);color:#fff;display:grid;place-items:center;margin:auto;font-size:28px;font-weight:bold;box-shadow:0 12px 30px rgba(7,21,72,.18)}.field{margin:14px 0}.field label{display:block;color:var(--m);font-size:13px;margin-bottom:6px}.field input,.field select,.field textarea,.search input{width:100%;padding:15px;border:1px solid var(--l);border-radius:16px;background:white;outline:none}.field input:focus,.field select:focus,.field textarea:focus,.search input:focus{border-color:#8da9ff;box-shadow:0 0 0 3px rgba(31,94,255,.08)}.btn{width:100%;padding:15px;border:0;border-radius:17px;background:var(--n);color:white;font-weight:bold}.light{background:white;color:var(--n);border:1px solid var(--l)}.link{text-align:right;color:var(--n);font-weight:bold;margin:8px 0 20px;cursor:pointer}.head{display:flex;align-items:center;gap:10px}.head h2{flex:1}.back,.plus{width:48px;height:48px;border-radius:15px;border:1px solid var(--l);background:white}.condo,.row,.card{background:white;border:1px solid var(--l);border-radius:20px}.condo{padding:18px;margin:15px 0;display:flex;gap:12px;align-items:center}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{height:145px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;font-size:18px}.ico{font-size:30px}.tabs{display:flex;gap:8px;overflow:auto;margin-bottom:14px}.tabs button{padding:10px 14px;border-radius:16px;border:1px solid var(--l);background:white}.tabs .on{background:var(--n);color:white}.search{display:flex;gap:8px}.list{margin-top:10px}.row{padding:12px;margin:8px 0;display:flex;gap:12px;align-items:center}.avatar,.photo{width:58px;height:58px;border-radius:50%;object-fit:cover;background:#e7e9ef;display:grid;place-items:center}.photo{width:110px;height:110px;margin:auto}.photoBox{text-align:center}.otp{display:flex;gap:8px;justify-content:center}.otp input{width:44px;height:50px;text-align:center;border:1px solid var(--l);border-radius:50%}.actions{display:flex;gap:8px}.danger{background:#b3261e}.toast{position:fixed;z-index:1000;top:20px;left:50%;transform:translateX(-50%);background:#222;color:white;padding:12px 18px;border-radius:15px}.svgico{width:24px;height:24px;display:block}

/* Tela inicial */
.home-page{max-width:640px;padding-top:18px}.home-top{display:flex;align-items:center;gap:13px;background:rgba(255,255,255,.82);border:1px solid rgba(219,224,234,.95);padding:12px 14px;border-radius:22px;box-shadow:0 8px 24px rgba(7,21,72,.06);backdrop-filter:blur(12px)}.mini-logo{width:48px;height:48px;min-width:48px;border-radius:16px;background:linear-gradient(145deg,var(--n2),var(--n));color:white;display:grid;place-items:center;font-size:15px;font-weight:800;letter-spacing:.5px;box-shadow:0 8px 18px rgba(7,21,72,.18)}.home-condo{min-width:0;flex:1}.home-condo small{display:block;color:#9298a5;font-size:10px;text-transform:uppercase;letter-spacing:.11em;font-weight:700;margin-bottom:2px}.home-condo h2{font-size:16px;line-height:1.15;margin:0;color:#10172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-condo span{display:block;font-size:12px;color:var(--m);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.condo-switch{border:0;background:#f1f4fa;color:var(--n);border-radius:15px;height:42px;min-width:48px;padding:0 9px;display:flex;align-items:center;justify-content:center;gap:0;cursor:pointer}.condo-switch .svgico:first-child{width:20px}.condo-switch .svgico:last-child{width:13px}.menu-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:28px 2px 15px}.eyebrow{font-size:10px;color:#87909f;letter-spacing:.16em;font-weight:800}.menu-heading h1{font-size:29px;line-height:1;margin:5px 0 0;color:#10172a}.menu-bell{width:42px;height:42px;border-radius:14px;background:#fff;border:1px solid var(--l);display:grid;place-items:center;color:var(--n);box-shadow:0 7px 20px rgba(7,21,72,.06)}.menu-bell .svgico{width:20px;height:20px}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.menu-card{appearance:none;border:1px solid rgba(220,225,235,.96);background:rgba(255,255,255,.94);border-radius:22px;min-height:128px;padding:17px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;text-align:left;color:#161c2b;box-shadow:0 9px 26px rgba(7,21,72,.07);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.menu-card:active{transform:scale(.98)}.menu-card:hover{border-color:#cbd5ea;box-shadow:0 12px 30px rgba(7,21,72,.10)}.menu-card>span:last-child{font-size:15px;font-weight:750;line-height:1.2}.menu-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#eef2fa;color:var(--n)}.menu-icon .svgico{width:25px;height:25px}.gate-card{background:linear-gradient(145deg,#0b245f,#071548);color:#fff;border-color:transparent}.gate-card .menu-icon{background:rgba(255,255,255,.13);color:#fff}.gate-card:hover{border-color:transparent}.floating-nav{position:fixed;z-index:500;left:50%;bottom:max(15px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 28px),560px);height:76px;background:rgba(255,255,255,.94);border:1px solid rgba(214,219,229,.98);border-radius:25px;box-shadow:0 18px 44px rgba(7,21,72,.20);display:grid;grid-template-columns:1fr 1fr 72px 1fr 1fr;align-items:center;padding:8px 8px 7px;backdrop-filter:blur(18px)}.nav-item{border:0;background:transparent;color:#8a909c;height:58px;border-radius:17px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;padding:0}.nav-item .svgico{width:21px;height:21px}.nav-item span{font-size:9px;font-weight:700}.nav-item.active{color:var(--n);background:#f0f3f9}.nav-gate{width:62px;height:62px;border-radius:21px;border:5px solid #f4f6f9;background:linear-gradient(145deg,#15367b,#071548);color:#fff;display:grid;place-items:center;justify-self:center;transform:translateY(-18px);box-shadow:0 12px 25px rgba(7,21,72,.28);cursor:pointer}.nav-gate .svgico{width:27px;height:27px}.module-page{max-width:640px}.module-empty{margin-top:48px;background:#fff;border:1px solid var(--l);border-radius:25px;padding:34px 24px;text-align:center;box-shadow:var(--shadow)}.module-empty-icon{width:72px;height:72px;border-radius:23px;background:#eef2fa;color:var(--n);display:grid;place-items:center;margin:0 auto 18px}.module-empty-icon .svgico{width:34px;height:34px}.module-empty h3{margin:0 0 8px;font-size:22px}.module-empty p{color:var(--m);line-height:1.5;margin:0 auto 24px;max-width:360px}

@media(max-width:420px){.page,.login{padding-left:15px;padding-right:15px}.home-page{padding-top:14px}.menu-card{min-height:116px;padding:15px;border-radius:20px}.menu-icon{width:43px;height:43px;border-radius:14px}.menu-card>span:last-child{font-size:14px}.floating-nav{width:calc(100% - 20px);height:72px;border-radius:23px;grid-template-columns:1fr 1fr 68px 1fr 1fr}.nav-gate{width:58px;height:58px}.home-top{border-radius:20px}.menu-heading{margin-top:24px}}
@media(min-width:760px){.menu-grid{gap:15px}.menu-card{min-height:145px}.menu-card>span:last-child{font-size:17px}.menu-icon{width:50px;height:50px}.floating-nav{bottom:20px}}

/* v1.7 - selecao/toque suave: remove azul forte do Android/Chrome */
button,a,.menu-card,.nav-item,.nav-gate,.tabs button,.condo-switch,.back,.plus,.btn{
  -webkit-tap-highlight-color:transparent;
  tap-highlight-color:transparent;
}
button:focus,a:focus{outline:none}
button:focus-visible,a:focus-visible{
  outline:2px solid rgba(74,105,151,.28);
  outline-offset:2px;
}
.menu-card:active{
  background:#f3f5f8;
  border-color:#d7dde7;
  box-shadow:0 5px 15px rgba(7,21,72,.05);
}
.gate-card:active{
  background:linear-gradient(145deg,#314a73,#23385c);
  border-color:transparent;
}
.tabs .on{
  background:#edf1f6;
  color:#334866;
  border-color:#d3dbe7;
  box-shadow:inset 0 0 0 1px rgba(51,72,102,.03);
}
.nav-item.active{
  color:#415775;
  background:#eef1f5;
}
.nav-item:active{
  background:#f0f2f5;
  color:#415775;
}
.condo-switch:active,.back:active,.plus:active,.light:active{
  background:#f1f3f6;
}

/* v1.8 - Abrir Portão com destaque suave, sem azul chapado */
.gate-card{
  background:linear-gradient(145deg,#f8fafc 0%,#eef3f8 100%);
  color:#233a5e;
  border:1px solid #d7e1ec;
  box-shadow:0 9px 26px rgba(7,21,72,.06);
}
.gate-card .menu-icon{
  background:#e6edf6;
  color:#294b78;
  box-shadow:inset 0 0 0 1px rgba(41,75,120,.04);
}
.gate-card:hover{
  background:linear-gradient(145deg,#fbfcfd 0%,#f1f5f9 100%);
  border-color:#cbd8e6;
  box-shadow:0 11px 28px rgba(7,21,72,.08);
}
.gate-card:active{
  background:#e9eff5;
  border-color:#ccd8e4;
  color:#203756;
  box-shadow:0 5px 15px rgba(7,21,72,.05);
}
.gate-card:focus-visible{
  outline:2px solid rgba(73,105,145,.20);
  outline-offset:2px;
}

/* Botão central da barra suspensa: continua destacado, mas claro */
.nav-gate{
  border:5px solid rgba(255,255,255,.96);
  background:linear-gradient(145deg,#f7f9fc,#e8eef5);
  color:#24466f;
  box-shadow:0 10px 24px rgba(7,21,72,.16),0 0 0 1px rgba(199,210,224,.75);
}
.nav-gate:hover{
  background:linear-gradient(145deg,#fbfcfd,#edf2f7);
}
.nav-gate:active{
  background:#e4ebf3;
  color:#203c60;
  box-shadow:0 7px 18px rgba(7,21,72,.13),0 0 0 1px rgba(199,210,224,.75);
}

/* v1.9 - Perfil do morador no menu */
.resident-card{
  width:100%;margin-top:12px;border:1px solid rgba(218,224,234,.96);background:rgba(255,255,255,.94);
  border-radius:22px;padding:12px 14px;display:flex;align-items:center;gap:12px;text-align:left;color:#172033;
  box-shadow:0 8px 24px rgba(7,21,72,.06);cursor:pointer;-webkit-tap-highlight-color:transparent;
}
.resident-card:active{background:#f4f6f9;transform:scale(.995)}
.resident-photo{width:58px;height:58px;min-width:58px;border-radius:18px;object-fit:cover;background:#edf2f8;border:1px solid #dce4ee;display:grid;place-items:center;color:#355477;overflow:hidden}
.resident-photo .svgico{width:29px;height:29px}
.resident-photo-empty{background:linear-gradient(145deg,#f5f8fb,#e8eef5)}
.resident-data{min-width:0;flex:1;display:flex;flex-direction:column}
.resident-label{font-size:9px;letter-spacing:.14em;color:#9299a6;font-weight:800;margin-bottom:3px}
.resident-data>strong{font-size:15px;color:#151c2c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.resident-unit{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}
.resident-unit span{font-size:11px;color:#717987;background:#f2f5f8;border:1px solid #e3e8ef;border-radius:999px;padding:5px 8px}
.resident-unit b{color:#294463;font-weight:800;margin-left:2px}
.resident-edit{width:36px;height:36px;min-width:36px;border-radius:12px;background:#f0f4f8;color:#45617f;display:grid;place-items:center}
.resident-edit .svgico{width:18px;height:18px}

.profile-page{max-width:560px}
.profile-panel{margin-top:16px;background:#fff;border:1px solid var(--l);border-radius:25px;padding:22px;box-shadow:var(--shadow)}
.profile-photo{width:112px;height:112px;border-radius:28px;object-fit:cover;background:#edf2f8;border:1px solid #dce4ee;display:grid;place-items:center;margin:auto;color:#355477;overflow:hidden}
.profile-photo .svgico{width:48px;height:48px}
.profile-photo-empty{background:linear-gradient(145deg,#f5f8fb,#e8eef5)}
.photo-change{margin:10px auto 0;border:0;background:#f0f4f8;color:#294b70;border-radius:12px;padding:9px 14px;font-size:12px;font-weight:750;cursor:pointer}
.profile-name{text-align:center;margin:14px 0 18px;display:flex;flex-direction:column;gap:3px}
.profile-name span{font-size:10px;letter-spacing:.12em;color:#9299a6;font-weight:800;text-transform:uppercase}
.profile-name strong{font-size:20px;color:#162033}
.profile-name small{color:#7d8490}
.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.profile-fields .field{margin:7px 0 16px}

@media(max-width:420px){
  .resident-card{padding:11px 12px;border-radius:19px;gap:10px}
  .resident-photo{width:54px;height:54px;min-width:54px;border-radius:17px}
  .resident-data>strong{font-size:14px}
  .resident-unit{gap:6px;margin-top:6px}
  .resident-unit span{font-size:10px;padding:4px 7px}
  .profile-panel{padding:18px;border-radius:22px}
}
@media(max-width:350px){.profile-fields{grid-template-columns:1fr}}
