
/* =========================================================
   BoG2026 Registered Firms enhancements v3.7
   - subtle striped background
   - neutral monogram identity tile
   - clearer note about random display order
   ========================================================= */

.firm-register-page{
  position:relative;
  isolation:isolate;
  margin-top:6px;
  padding:26px;
  overflow:hidden;
  border:1px solid #dbe7ec;
  border-radius:28px;
  background:
    radial-gradient(circle at 88% 10%, rgba(14,91,120,.09), transparent 24%),
    radial-gradient(circle at 5% 92%, rgba(239,127,26,.06), transparent 22%),
    repeating-linear-gradient(
      135deg,
      rgba(6,58,102,.032) 0,
      rgba(6,58,102,.032) 1px,
      transparent 1px,
      transparent 15px
    ),
    #f7fafc;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 16px 40px rgba(6,58,102,.055);
}

.firm-register-page::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:-110px;
  right:-90px;
  width:320px;
  height:320px;
  border:1px solid rgba(6,58,102,.05);
  border-radius:50%;
  box-shadow:
    0 0 0 32px rgba(6,58,102,.017),
    0 0 0 68px rgba(6,58,102,.012);
}

.firm-register-intro,
.firm-register-kpis,
.firm-register-tools,
.firm-register-visual-note,
.firm-register-list,
.firm-register-note,
.firm-register-count{
  position:relative;
  z-index:1;
}

.firm-register-order-note{
  margin-left:auto;
  max-width:420px;
  padding:14px 15px;
  border:1px solid #d7e5ea;
  border-radius:16px;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 24px rgba(6,58,102,.05);
}
.firm-register-order-note strong{
  color:var(--navy);
}
.firm-register-order-note p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.48;
}

.firm-register-tools{
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}

.firm-register-visual-note{
  margin:12px 0 16px;
  padding:13px 16px;
  border-left:4px solid var(--orange);
  border-radius:0 14px 14px 0;
  background:rgba(255,248,239,.94);
}
.firm-register-visual-note strong{
  color:var(--navy);
}
.firm-register-visual-note p{
  margin:4px 0 0;
  color:#6a5d51;
  font-size:.9rem;
  line-height:1.45;
}

.firm-register-card{
  overflow:hidden;
  border:1px solid #d7e4ea;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 24px rgba(6,58,102,.055);
}
.firm-register-card + .firm-register-card{
  margin-top:0;
}
.firm-register-card summary{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto 28px;
  align-items:center;
  gap:14px;
  padding:16px 18px;
  list-style:none;
  cursor:pointer;
}
.firm-register-card summary::-webkit-details-marker{display:none}

.firm-register-logo{
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  border-radius:16px;
  background:linear-gradient(145deg,#eef7fa,#fbfdfe);
  border:1px solid #d6e7ee;
  color:var(--navy);
  font-size:.98rem;
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.firm-register-main{
  display:flex;
  min-width:0;
  flex-direction:column;
}
.firm-register-main strong{
  margin-top:3px;
  color:#1e3448;
  font-size:.93rem;
  line-height:1.35;
}
.firm-certificate{
  color:var(--teal);
  font-size:.9rem;
  font-weight:850;
  letter-spacing:.05em;
}
.firm-register-meta{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px;
  color:var(--muted);
  font-size:.9rem;
}
.firm-category-chip{
  padding:5px 8px;
  border-radius:999px;
  background:#edf6fa;
  color:var(--navy);
  font-weight:750;
}
.firm-state-chip{
  padding:5px 8px;
  border-radius:999px;
  background:#f4f7f9;
  color:#5d7182;
}
.firm-register-arrow{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:9px;
  background:#f1f6f8;
  color:var(--navy);
  font-size:1rem;
  transition:.16s ease;
}
.firm-register-card[open] .firm-register-arrow{
  transform:rotate(45deg);
}
.firm-register-detail{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  padding:0 18px 18px;
  border-top:1px solid #edf2f5;
}
.firm-register-detail > div{
  padding-top:15px;
}
.firm-register-detail small{
  display:block;
  color:var(--orange);
  font-size:.9rem;
  font-weight:850;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.firm-register-detail p{
  margin:5px 0 0;
  color:#526579;
  font-size:.9rem;
  line-height:1.48;
}
.firm-website-link{
  display:inline-block;
  margin-top:6px;
  color:var(--teal);
  font-size:.9rem;
  font-weight:700;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.firm-website-link:hover{
  color:var(--navy);
  text-decoration:underline;
}
.firm-register-note{
  background:rgba(255,247,237,.96);
}

@media(max-width:900px){
  .firm-register-intro{
    align-items:flex-start;
    flex-direction:column;
  }
  .firm-register-order-note{
    margin-left:0;
    max-width:none;
    width:100%;
  }
  .firm-register-detail{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .firm-register-page{
    margin:0 -4px;
    padding:16px;
    border-radius:20px;
    background:
      repeating-linear-gradient(
        135deg,
        rgba(6,58,102,.03) 0,
        rgba(6,58,102,.03) 1px,
        transparent 1px,
        transparent 14px
      ),
      #f7fafc;
  }
  .firm-register-page::before{
    display:none;
  }
  .firm-register-card summary{
    grid-template-columns:50px minmax(0,1fr) 28px;
  }
  .firm-register-meta{
    grid-column:2;
    justify-content:flex-start;
  }
  .firm-register-arrow{
    grid-column:3;
    grid-row:1 / span 2;
  }
}


/* =========================================================
   BoG2026 Registered Firms — full address and contact v3.8
   ========================================================= */
.firm-register-detail{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.firm-address-text{
  white-space:pre-line;
}
.firm-address-block,
.firm-contact-block{
  border-top:1px solid #edf2f5;
}
.firm-contact-list{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
  margin-top:7px;
}
.firm-contact-link{
  display:inline-flex;
  max-width:100%;
  align-items:center;
  min-height:34px;
  padding:7px 10px;
  border:1px solid #d9e6ec;
  border-radius:10px;
  background:#f7fafc;
  color:var(--teal);
  font-size:.9rem;
  font-weight:720;
  line-height:1.35;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.firm-contact-link:hover{
  border-color:#9fc4d3;
  background:#eef7fa;
  color:var(--navy);
}
.firm-contact-missing{
  display:block;
  color:#7b8792;
  font-size:.9rem;
  font-style:italic;
}
@media(max-width:760px){
  .firm-register-detail{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   BoG2026 Registered Firms — equal form controls v3.9
   ========================================================= */
.firm-register-tools{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:end!important;
  gap:14px!important;
}

.firm-register-tools label{
  display:grid!important;
  grid-template-rows:auto 48px!important;
  gap:7px!important;
  min-width:0;
}

.firm-register-tools label > span{
  display:flex;
  align-items:flex-end;
  min-height:18px;
  color:#40556a;
  font-size:.9rem;
  font-weight:800;
  line-height:1.2;
}

.firm-register-tools input,
.firm-register-tools select{
  box-sizing:border-box!important;
  width:100%!important;
  height:48px!important;
  min-height:48px!important;
  margin:0!important;
  padding:0 14px!important;
  border:1px solid #cfdde5!important;
  border-radius:12px!important;
  background-color:#fff!important;
  color:#23384b!important;
  font-family:inherit!important;
  font-size:.9rem!important;
  font-weight:600!important;
  line-height:48px!important;
  box-shadow:none!important;
}

.firm-register-tools input:focus,
.firm-register-tools select:focus{
  border-color:#6ea9bf!important;
  outline:3px solid rgba(14,108,139,.14)!important;
  outline-offset:1px!important;
}

.firm-register-tools select{
  cursor:pointer;
}

.firm-register-kpis{
  align-items:stretch;
}

.firm-kpi{
  display:flex!important;
  min-height:88px!important;
  flex-direction:column;
  justify-content:center;
}

@media(max-width:700px){
  .firm-register-tools{
    grid-template-columns:1fr!important;
  }

  .firm-register-tools label{
    grid-template-rows:auto 48px!important;
  }
}


/* =========================================================
   BoG2026 Registered Firms — State filter v4.1
   ========================================================= */
.firm-register-tools{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

@media(max-width:900px){
  .firm-register-tools{
    grid-template-columns:1fr 1fr!important;
  }

  .firm-register-tools .firm-search{
    grid-column:1/-1;
  }
}

@media(max-width:620px){
  .firm-register-tools{
    grid-template-columns:1fr!important;
  }

  .firm-register-tools .firm-search{
    grid-column:auto;
  }
}

/* Live eGEOReg loading/empty/error states and updated-timestamp note */
.firm-register-loading,
.firm-register-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:32px 20px;
  border:1px dashed #d7e4ea;
  border-radius:18px;
  background:#fff;
  color:#5a6b75;
  font-size:.92rem;
  text-align:center;
}
.firm-register-empty{
  flex-direction:column;
}
.firm-register-empty strong{
  color:var(--navy);
  font-size:1rem;
}
.firm-register-empty .btn{
  margin-top:6px;
}
.firm-register-updated-note{
  position:relative;
  z-index:1;
  margin:-6px 0 4px;
  color:#7a8891;
  font-size:.9rem;
}
