.structured-address{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:10px;margin:10px 0 14px}.structured-address label{margin:0}.structured-address select,.structured-address input{width:100%}.admin-feature-toolbar{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:12px 0}.admin-feature-toolbar label{flex:1 1 260px;margin:0}.admin-street-list,.admin-family-list{display:grid;gap:8px;margin-top:12px}.admin-street-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(8,18,31,.72)}.admin-street-row input[type=text]{min-width:0}.admin-street-row .street-active{display:flex;align-items:center;gap:5px;font-size:.8rem}.admin-family-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(8,18,31,.72)}.admin-family-copy{min-width:0}.admin-family-copy b{display:block;font-size:.92rem}.admin-family-copy span,.admin-family-copy small{display:block;color:#aab7c6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-family-copy .family-user{color:#ffb347;font-weight:800}.admin-family-status{display:inline-flex;width:max-content;margin-top:5px;padding:3px 7px;border-radius:999px;background:#17314b;color:#dceaf7;font-size:.65rem;font-weight:900;text-transform:uppercase}.admin-family-status.approved{background:#163d2b;color:#a9f7c5}.admin-family-status.pending{background:#4b3a13;color:#ffe195}.admin-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:12px}.admin-media-card{border:1px solid rgba(255,255,255,.12);border-radius:14px;overflow:hidden;background:rgba(8,18,31,.82)}.admin-media-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.admin-media-copy{padding:10px;display:grid;gap:5px}.admin-media-copy b{font-size:.9rem}.admin-media-copy small{color:#aab7c6}.admin-media-type{display:inline-flex;width:max-content;padding:3px 7px;border-radius:999px;background:#162a3f;color:#dbe8f6;font-size:.68rem;font-weight:800}.admin-feature-empty{padding:18px;text-align:center;color:#9fb0c0}.admin-login-note{margin:8px 0 0;color:#9fb0c0;font-size:.76rem;line-height:1.35}.admin-access-badge{display:flex;align-items:center;gap:8px;max-width:min(430px,46vw);padding:6px 8px 6px 10px;border-radius:12px;background:#ff8a00;color:#07131f;margin-top:6px;box-shadow:0 5px 18px rgba(0,0,0,.24)}.admin-access-context-copy{display:grid;min-width:0;line-height:1.05}.admin-access-context-copy small{font-size:.58rem;font-weight:900;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.admin-access-context-copy b{font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-access-return{border:0;border-radius:9px;padding:6px 8px;background:#07131f;color:#fff;font-size:.64rem;font-weight:900;white-space:nowrap;cursor:pointer}.admin-access-return:hover{filter:brightness(1.18)}@media(max-width:700px){.structured-address{grid-template-columns:minmax(0,1fr) 92px}.admin-street-row{grid-template-columns:minmax(0,1fr) auto}.admin-street-row .street-active{grid-column:1/-1}.admin-family-row{grid-template-columns:minmax(0,1fr)}.admin-family-row .btn{width:100%}.admin-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-media-copy b{font-size:.78rem}}

/* V40 — cadastro oficial de ruas com ordem e vínculo às casas */
.admin-street-row{
  grid-template-columns:92px minmax(0,1fr) auto auto !important;
}
.admin-street-order,
.admin-street-name-wrap{
  min-width:0;
}
.admin-street-order span,
.admin-street-name-wrap>span{
  display:block;
  margin:0 0 4px;
  color:#9fb0c0;
  font-size:.68rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.admin-street-order input{
  width:100%;
  min-width:0;
}
.admin-street-name-wrap input{
  width:100%;
  min-width:0;
}
.admin-street-name-wrap small{
  display:block;
  margin-top:4px;
  color:#9fb0c0;
  font-size:.68rem;
}

@media(max-width:700px){
  .admin-street-row{
    grid-template-columns:78px minmax(0,1fr) !important;
  }
  .admin-street-row .street-active,
  .admin-street-row .street-save{
    grid-column:auto !important;
  }
  .admin-street-row .street-save{
    width:100%;
  }
}

/* V43 — correção de layout mobile da Administração/Ruas */
#adminDialog{
  overflow-x:hidden !important;
}
#adminDialog .modal-card,
#adminDialog .admin-card,
#adminPanel,
#adminPanel .admin-pane{
  min-width:0 !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
#adminPanel .admin-tabs{
  width:100% !important;
  max-width:100% !important;
  display:flex !important;
  gap:4px !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  scrollbar-width:none !important;
  box-sizing:border-box !important;
}
#adminPanel .admin-tabs::-webkit-scrollbar{display:none !important}
#adminPanel .admin-tabs button{
  flex:0 0 auto !important;
  min-width:92px !important;
  white-space:nowrap !important;
}
#admin-streets .notice,
#admin-streets .admin-feature-toolbar,
#admin-streets .admin-street-list{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.admin-street-row{
  grid-template-columns:minmax(0,1fr) auto auto !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.admin-street-name-wrap{
  min-width:0 !important;
}
.admin-street-name-wrap input{
  width:100% !important;
  max-width:100% !important;
}
.admin-street-row .street-active{
  white-space:nowrap !important;
}
@media(max-width:700px){
  #adminDialog .admin-card{
    padding-left:14px !important;
    padding-right:14px !important;
  }
  #adminPanel .admin-tabs{
    margin-left:0 !important;
    margin-right:0 !important;
    padding:4px !important;
  }
  #adminPanel .admin-tabs button{
    min-width:96px !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }
  .admin-feature-toolbar{
    display:grid !important;
    grid-template-columns:1fr !important;
    align-items:stretch !important;
  }
  .admin-feature-toolbar label,
  .admin-feature-toolbar .btn{
    width:100% !important;
    max-width:100% !important;
  }
  .admin-street-row{
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:8px !important;
  }
  .admin-street-row .admin-street-name-wrap{
    grid-column:1 / -1 !important;
  }
  .admin-street-row .street-active{
    grid-column:1 !important;
    align-self:center !important;
  }
  .admin-street-row .street-save{
    grid-column:2 !important;
    width:auto !important;
    min-width:112px !important;
  }
}

/* V49 — ações da família no Admin */
.admin-family-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
}
.admin-family-actions .btn{
  min-width:150px;
}
@media(max-width:700px){
  .admin-family-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
  }
  .admin-family-actions .btn{
    width:100%;
    min-width:0;
  }
}




/* V170 — dados cadastrais completos na aba Famílias */
.admin-family-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}
.admin-family-title-row b{
  min-width:0;
  font-size:.95rem;
  line-height:1.25;
}
.admin-family-order{
  flex:0 0 auto;
  padding:4px 8px;
  border:1px solid rgba(255,193,118,.28);
  border-radius:999px;
  background:rgba(243,154,46,.08);
  color:#ffc176!important;
  font-size:.65rem!important;
  font-weight:900;
  white-space:nowrap;
}
.admin-family-info-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px 12px;
}
.admin-family-info-grid>div{
  min-width:0;
  padding:7px 8px;
  border-radius:9px;
  background:rgba(255,255,255,.025);
}
.admin-family-info-grid span{
  display:block!important;
  margin-bottom:2px;
  color:#8fa2b5!important;
  font-size:.61rem!important;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.admin-family-info-grid strong{
  display:block;
  overflow:hidden;
  color:#eef4f8;
  font-size:.75rem;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:normal;
  overflow-wrap:anywhere;
}
.admin-family-info-grid .admin-family-status{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin:0;
  padding:3px 7px;
  font-size:.62rem;
}
.admin-family-info-wide{
  grid-column:1/-1;
}
.admin-family-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  align-items:center;
}
@media(max-width:700px){
  .admin-family-row{
    gap:11px;
  }
  .admin-family-info-grid{
    grid-template-columns:1fr;
    gap:6px;
  }
  .admin-family-info-wide{
    grid-column:auto;
  }
  .admin-family-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
}


/* V171 — lista compacta e filtros para 50–100 famílias */
.admin-family-notice{
  margin-bottom:8px!important;
  padding:9px 10px!important;
  font-size:.7rem!important;
  line-height:1.35!important;
}
.admin-family-filters{
  position:sticky;
  top:0;
  z-index:4;
  display:grid;
  grid-template-columns:minmax(190px,2fr) repeat(3,minmax(130px,1fr)) auto auto;
  gap:7px;
  align-items:end;
  margin:0 0 8px;
  padding:8px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(7,17,31,.97);
  box-shadow:0 8px 18px rgba(0,0,0,.18);
}
.admin-family-filters label{
  min-width:0;
  margin:0!important;
}
.admin-family-filters label>span{
  display:block;
  margin:0 0 3px;
  color:#90a3b6;
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.admin-family-filters input,
.admin-family-filters select{
  width:100%;
  min-width:0;
  height:34px;
  padding:5px 8px;
  font-size:.7rem;
}
.admin-family-filters .btn{
  min-width:0!important;
  height:34px;
  padding:5px 9px!important;
  font-size:.66rem!important;
  white-space:nowrap;
}
.admin-family-results-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:4px 2px 7px;
  color:#93a6b9;
}
.admin-family-results-head strong{
  color:#ffc176;
  font-size:.7rem;
}
.admin-family-results-head small{
  font-size:.6rem;
}
.admin-family-list-compact{
  gap:5px!important;
  margin-top:0!important;
}
.admin-family-row-compact{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:8px!important;
  padding:8px 9px!important;
  border-radius:10px!important;
}
.admin-family-row-compact .admin-family-title-row{
  align-items:center;
  margin-bottom:5px!important;
}
.admin-family-title-main{
  display:flex;
  min-width:0;
  align-items:center;
  gap:7px;
}
.admin-family-title-main>b{
  overflow:hidden;
  min-width:0;
  font-size:.79rem!important;
  line-height:1.15!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-family-row-compact .admin-family-order{
  padding:2px 6px;
  font-size:.57rem!important;
}
.admin-family-row-compact .admin-family-status{
  flex:0 0 auto;
  margin:0!important;
  padding:2px 5px!important;
  font-size:.52rem!important;
}
.admin-family-compact-line{
  display:grid;
  grid-template-columns:1.25fr .9fr .9fr 1.15fr;
  gap:5px;
}
.admin-family-compact-line>span{
  min-width:0;
  padding:4px 6px;
  border-radius:7px;
  background:rgba(255,255,255,.022);
}
.admin-family-compact-line i{
  display:block;
  margin-bottom:1px;
  color:#8296aa;
  font-size:.49rem;
  font-style:normal;
  font-weight:850;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.admin-family-compact-line strong{
  display:block;
  overflow:hidden;
  color:#eaf1f6;
  font-size:.64rem;
  font-weight:750;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-family-address-line{
  overflow:hidden;
  margin-top:4px;
  color:#9db0c1;
  font-size:.59rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-family-actions-compact{
  display:flex!important;
  flex-direction:column;
  justify-content:center!important;
  gap:5px!important;
  width:auto!important;
}
.admin-family-actions-compact .btn{
  width:auto!important;
  min-width:68px!important;
  padding:5px 7px!important;
  font-size:.6rem!important;
}

@media(max-width:900px){
  .admin-family-filters{
    grid-template-columns:minmax(160px,1.6fr) repeat(2,minmax(120px,1fr));
  }
  .admin-family-filters label:nth-of-type(4){
    grid-column:auto;
  }
  .admin-family-filters .btn{
    width:100%;
  }
}
@media(max-width:700px){
  .admin-family-filters{
    position:static;
    grid-template-columns:1fr 1fr;
    gap:6px;
  }
  .admin-family-search{
    grid-column:1/-1;
  }
  .admin-family-results-head{
    align-items:flex-start;
    flex-direction:column;
    gap:2px;
  }
  .admin-family-row-compact{
    grid-template-columns:minmax(0,1fr)!important;
    gap:6px!important;
    padding:7px!important;
  }
  .admin-family-title-main{
    gap:5px;
  }
  .admin-family-title-main>b{
    font-size:.76rem!important;
  }
  .admin-family-compact-line{
    grid-template-columns:1fr 1fr;
    gap:4px;
  }
  .admin-family-actions-compact{
    display:grid!important;
    grid-template-columns:1fr 42px;
    width:100%!important;
  }
  .admin-family-actions-compact .btn{
    width:100%!important;
    min-width:0!important;
  }
  .admin-family-notice{
    display:none;
  }
}

@media(max-width:700px){.admin-access-badge{max-width:92vw;gap:6px;padding:5px 6px 5px 8px}.admin-access-context-copy small{font-size:.52rem}.admin-access-context-copy b{font-size:.66rem}.admin-access-return{font-size:.58rem;padding:5px 6px}.top-actions .admin-access-badge{order:-1;flex-basis:100%;margin-inline:auto}}


/* V210 — senha de famílias e ações lado a lado */
.admin-family-actions-compact{
  display:grid!important;
  grid-template-columns:76px 116px 38px!important;
  align-items:center!important;
  justify-content:end!important;
  gap:5px!important;
}
.admin-family-actions-compact .btn{
  width:100%!important;
  min-width:0!important;
  white-space:nowrap!important;
}
.admin-family-actions-compact .admin-delete-family{
  padding-left:5px!important;
  padding-right:5px!important;
}
.admin-family-password-dialog{
  width:min(460px,calc(100vw - 20px))!important;
}
.admin-family-password-card{
  width:100%!important;
  max-width:100%!important;
}
.admin-family-password-card label{
  display:grid;
  gap:5px;
  margin-top:10px;
}
@media(max-width:700px){
  .admin-family-actions-compact{
    grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 42px!important;
    width:100%!important;
  }
  .admin-family-actions-compact .btn{
    font-size:.58rem!important;
    padding:6px 5px!important;
  }
}


/* V220 — último acesso e aparelhos/instalações por família */
.admin-family-access-line{display:flex;align-items:center;gap:8px;min-width:0;margin-top:5px;padding:5px 7px;border:1px solid rgba(91,180,255,.12);border-radius:8px;background:rgba(48,115,164,.07);color:#a9c5da;font-size:.58rem;line-height:1.25}
.admin-family-access-line>b{flex:0 0 auto;color:#dff1ff;font-size:.6rem}
.admin-family-access-line>span{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}
.admin-family-access-line.is-empty{color:#8598aa;background:rgba(255,255,255,.018);border-color:rgba(255,255,255,.07)}
.admin-family-device-details{margin-top:4px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.018)}
.admin-family-device-details>summary{padding:5px 7px;color:#9eb7ca;font-size:.56rem;font-weight:800;cursor:pointer;list-style-position:inside}
.admin-family-device-list{display:grid;gap:4px;padding:0 6px 6px}
.admin-family-device-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:5px 6px;border-radius:6px;background:rgba(255,255,255,.025)}
.admin-family-device-row b{overflow:hidden;min-width:0;color:#dbe8f2;font-size:.56rem;text-overflow:ellipsis;white-space:nowrap}
.admin-family-device-row span{flex:0 0 auto;color:#8097aa;font-size:.53rem}
@media(max-width:700px){.admin-family-access-line{align-items:flex-start;flex-direction:column;gap:2px;font-size:.57rem}.admin-family-access-line>span{width:100%;white-space:normal}.admin-family-device-row{align-items:flex-start;flex-direction:column;gap:2px}}

/* V240 — status e limpeza administrativa da posição da casa */
.admin-family-map-status{display:inline-flex;align-items:center;gap:5px;width:max-content;max-width:100%;padding:4px 7px;border-radius:999px;font-size:.62rem;font-weight:850;line-height:1.2}
.admin-family-map-status.is-positioned{background:rgba(102,210,146,.12);border:1px solid rgba(102,210,146,.25);color:#a9e8be}
.admin-family-map-status.is-missing{background:rgba(255,177,73,.10);border:1px solid rgba(255,177,73,.28);color:#ffc176}
.admin-clear-house-position{white-space:nowrap}
@media(max-width:620px){.admin-family-map-status{width:100%;border-radius:9px;justify-content:flex-start}.admin-family-actions-compact .admin-clear-house-position{grid-column:1/-1;width:100%}}
