/* Contenido de la comunidad, cuentas, pasaporte, misiones y formularios en panel. */
.community-section { margin-top: 2rem; }
.community-section > h2 { margin-bottom: .4rem; }
#practical-title { margin-top: 1.75rem; }
.community-box {
  margin-top: .75rem;
  padding: 1.1rem;
  border: 1px solid var(--linea);
  border-radius: var(--radio);
  background: var(--panel);
}
.community-box > h2 { margin-bottom: .4rem; }
.community-box > p { color: var(--texto-2); font-size: .9375rem; }
.community-box > p + p, .community-box > ul + p { margin-top: .4rem; }
.community-box > ul { color: var(--texto-2); font-size: .9375rem; }
.community-box > button, .community-box > form, .community-box > a { margin-top: .6rem; }
.community-box > summary, details.community-box > summary { font-weight: 600; }
details > form, details > p { margin-top: .6rem; }
.community-note { margin: .4rem 0; color: var(--texto-3); font-size: .8125rem; }
.community-form { display: grid; gap: .75rem; max-width: 560px; }
.community-form label { display: grid; gap: .25rem; }
.community-form label.check-label { display: flex; align-items: center; gap: .5rem; font-weight: 400; }
.community-form label.negocios-acepto { display: block; font-weight: 400; }
.community-form label.negocios-acepto input { display: inline-block; margin-right: .4rem; vertical-align: -2px; }
.community-form button[type="submit"], .community-form > button { justify-self: start; }
.form-status { color: var(--texto-2); font-size: .875rem; }
.form-status:empty { display: none; }
.campo-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.community-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1px; margin: .75rem 0; overflow: hidden; border: 1px solid var(--linea); border-radius: var(--radio); background: var(--linea); }
.community-stats > div { padding: .8rem .9rem; background: var(--panel); }
.community-stats strong { display: block; font-size: 1.05rem; font-weight: 600; letter-spacing: -.01em; }
.community-stats p, .community-stats small { color: var(--texto-3); font-size: .8125rem; }
.contribution-list { display: grid; gap: .1rem; margin-top: .5rem; }
.contribution-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.contribution-heading span:not(.visit-badge) { color: var(--texto-3); font-family: var(--fuente-mono); font-size: .75rem; white-space: nowrap; }
.contribution-text { margin: .35rem 0; font-size: .9375rem; }
.contribution-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: .5rem 0; font-size: .875rem; }
.rating { color: var(--texto); font-weight: 600; font-size: .9375rem; }
.community-photo { max-height: 420px; margin-top: .5rem; border-radius: var(--radio-s); filter: var(--filtro-foto); }
.community-answer { margin: .6rem 0; padding-left: .8rem; border-left: 2px solid var(--linea-fuerte); }
.practical-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .6rem; }
.practical-grid .community-box { margin: 0; }
.practical-grid h3 { margin-bottom: .3rem; }
.data-freshness { display: inline-block; margin: .3rem 0; padding: .1rem .5rem; border-radius: 4px; font-size: .75rem; font-weight: 500; }
.data-freshness--recent { background: var(--exito-suave); color: var(--exito); }
.data-freshness--check { background: var(--aviso-suave); color: var(--aviso); }
.data-freshness--old { background: var(--panel-3); color: var(--texto-2); }
.confirm-status { color: var(--texto-2); font-size: .8125rem; }
.confirm-status:empty, #favorite-status:empty, #visit-status:empty { display: none; }
#favorite-status, #visit-status { margin: .4rem 0; color: var(--texto-2); font-size: .875rem; }
.visit-badge {
  display: inline-block;
  margin-left: .25rem;
  padding: .05rem .45rem;
  border-radius: 4px;
  background: var(--exito-suave);
  color: var(--exito);
  font-size: .75rem;
  font-weight: 500;
  vertical-align: 1px;
}
.profile-photo { width: 88px; height: 88px; margin: .6rem 0; border-radius: 50%; object-fit: cover; }

/* Tablas de costos */
.costos-tabla { margin: 1rem 0; overflow-x: auto; border: 1px solid var(--linea); border-radius: var(--radio); background: var(--panel); }
.costos-tabla table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.costos-tabla th, .costos-tabla td { padding: .65rem .8rem; border-bottom: 1px solid var(--linea); text-align: left; }
.costos-tabla thead th { color: var(--texto-3); font-size: .75rem; font-weight: 500; white-space: nowrap; }
.costos-tabla td { font-family: var(--fuente-mono); font-size: .8125rem; white-space: nowrap; }
.costos-tabla tr:last-child th, .costos-tabla tr:last-child td { border-bottom: 0; }

/* Pasaporte */
.passport-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: .6rem; margin: 1rem 0; }
.passport-stamp { padding: .85rem; border: 1px dashed var(--linea-fuerte); border-radius: var(--radio); background: var(--panel); }
.passport-stamp h2 { margin-bottom: .2rem; font-size: .9375rem; }
.passport-stamp a { color: inherit; }
.passport-state { color: var(--texto-3); font-size: .75rem; }
.passport-stamp--done { border: 1px solid var(--acento); background: var(--acento-suave); }
.passport-stamp--done .passport-state { color: var(--acento-fuerte); font-weight: 600; }
.passport-card { margin-bottom: 1rem; padding: 1.25rem; border: 1px solid var(--linea); border-radius: var(--radio-l); background: var(--panel); }
#pasaporte-progreso { font-family: var(--fuente-mono); font-size: .875rem; }

/* Misiones */
.misiones-filtro { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .5rem; max-width: none; margin: 1rem 0; }
.misiones-filtro label { flex: 0 1 280px; }
.mision h2 { font-size: 1.05rem; }
.mision h3 { margin-top: .6rem; color: var(--texto-2); font-size: .8125rem; font-weight: 500; }
.mision ul { display: flex; flex-wrap: wrap; gap: .25rem .9rem; margin-top: .2rem; padding: 0; list-style: none; font-size: .9rem; }

/* Cerca de aquí */
.cerca-grupos { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: .6rem; align-items: start; }
.cerca-grupo { margin-top: 0; }
.cerca-grupo ul { margin-top: .4rem; padding: 0; list-style: none; }
.cerca-grupo li { padding: .5rem 0; border-top: 1px solid var(--linea); }
.cerca-fila { display: flex; justify-content: space-between; gap: .75rem; font-size: .9375rem; }
.cerca-fila strong { font-weight: 500; }
.cerca-distancia { flex: none; color: var(--texto-3); font-family: var(--fuente-mono); font-size: .75rem; }
.cerca-grupo small { display: block; color: var(--texto-3); }
.cerca-enlaces { display: flex; flex-wrap: wrap; gap: .1rem .7rem; font-size: .8125rem; }
.practical-grid .community-note, .practical-grid .contribution-text { overflow-wrap: anywhere; }
