/* HCSM Agency CRM Enterprise Agent Portal */
.hcsmcrm-portal {
  width: min(1180px, calc(100% - 32px));
  margin: 30px auto;
  color: #112941;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}
.hcsmcrm-portal-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 26px;
  border-radius: 22px;
  background: linear-gradient(135deg, #f7fbff, #eef7ff);
  border: 1px solid #d9e8f4;
  box-shadow: 0 14px 36px rgba(8,58,99,.08);
}
.hcsmcrm-portal-eyebrow {
  color: #0062B6;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.hcsmcrm-portal-hero h2 {
  margin: 0 0 6px;
  color: #073a6a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.05;
}
.hcsmcrm-portal-hero p {
  margin: 0;
  color: #4f657a;
}
.hcsmcrm-portal-button,
.hcsmcrm-portal-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 20px;
  border-radius: 12px;
  text-decoration: none !important;
  font-weight: 900;
  border: 0;
  cursor: pointer;
}
.hcsmcrm-portal-button {
  background: linear-gradient(135deg, #0062B6, #0D7FD2);
  color: #fff !important;
  box-shadow: 0 12px 24px rgba(0,98,182,.18);
}
.hcsmcrm-portal-outline {
  background: #fff;
  color: #073a6a !important;
  border: 1px solid #d9e8f4;
}
.hcsmcrm-portal-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
  margin: 18px 0;
}
.hcsmcrm-portal-kpis > div,
.hcsmcrm-portal-card {
  background: #fff;
  border: 1px solid #d9e8f4;
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(8,58,99,.06);
}
.hcsmcrm-portal-kpis > div {
  padding: 18px;
}
.hcsmcrm-portal-kpis span {
  display: block;
  color: #5d7082;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.hcsmcrm-portal-kpis strong {
  display: block;
  margin-top: 8px;
  color: #073a6a;
  font-size: 25px;
}
.hcsmcrm-portal-tabs {
  margin-top: 18px;
}
.hcsmcrm-portal-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px;
  border-radius: 16px;
  background: #f7fbff;
  border: 1px solid #d9e8f4;
  margin-bottom: 14px;
}
.hcsmcrm-portal-tab {
  border: 1px solid #d9e8f4;
  background: #fff;
  color: #073a6a;
  border-radius: 999px;
  padding: 10px 15px;
  font-weight: 900;
  cursor: pointer;
}
.hcsmcrm-portal-tab.is-active {
  color: #fff;
  background: linear-gradient(135deg, #0062B6, #0D7FD2);
  border-color: transparent;
}
.hcsmcrm-portal-panel {
  display: none;
}
.hcsmcrm-portal-panel.is-active {
  display: block;
}
.hcsmcrm-portal-card {
  padding: 22px;
  margin: 0 0 18px;
}
.hcsmcrm-portal-card h3 {
  margin: 0 0 14px;
  color: #073a6a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
}
.hcsmcrm-portal-grid,
.hcsmcrm-portal-form-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
.hcsmcrm-portal-grid p {
  margin: 0;
  padding: 12px;
  background: #f7fbff;
  border: 1px solid #d9e8f4;
  border-radius: 12px;
}
.hcsmcrm-portal-form label {
  display: block;
  font-weight: 800;
  color: #112941;
}
.hcsmcrm-portal-form input,
.hcsmcrm-portal-form select,
.hcsmcrm-portal-form textarea {
  width: 100%;
  margin-top: 6px;
  border: 1px solid #cfddea;
  border-radius: 12px;
  padding: 10px 12px;
}
.hcsmcrm-portal-form .full {
  grid-column: 1 / -1;
}
.hcsmcrm-portal-table-wrap {
  overflow-x: auto;
}
.hcsmcrm-portal-table {
  width: 100%;
  border-collapse: collapse;
}
.hcsmcrm-portal-table th,
.hcsmcrm-portal-table td {
  border-bottom: 1px solid #e7eef6;
  padding: 10px;
  text-align: left;
  vertical-align: top;
}
.hcsmcrm-portal-table th {
  background: #f7fbff;
  color: #073a6a;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.hcsmcrm-portal-alert {
  padding: 13px 15px;
  border-radius: 12px;
  margin-bottom: 14px;
  font-weight: 800;
}
.hcsmcrm-portal-alert.success {
  background: #e9f8e1;
  color: #2d6b18;
}
.hcsmcrm-portal-alert.error {
  background: #fff0ee;
  color: #8a1f11;
}
@media(max-width: 900px) {
  .hcsmcrm-portal-hero { display: block; }
  .hcsmcrm-portal-kpis,
  .hcsmcrm-portal-grid,
  .hcsmcrm-portal-form-grid { grid-template-columns: 1fr; }
}


/* v2.0.0 portal checkbox cleanup */
.hcsmcrm-portal input[type="checkbox"] {
  width: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  max-height: 16px !important;
  padding: 0 !important;
  margin: 0 7px 0 0 !important;
  vertical-align: middle !important;
  display: inline-block !important;
  box-sizing: border-box !important;
}


/* v2.2.0 Portal Support */
.hcsmcrm-portal-table small {
  color: #667085;
}


/* v2.5.0 Portal Tasks */
.hcsmcrm-portal-panel[data-panel="tasks"] .hcsmcrm-portal-table td {
  vertical-align: top;
}


/* v5.0.0 Appointment Scheduler */
.hcsmcrm-appointment-public .hcsmcrm-portal-form-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
@media(max-width:900px){ .hcsmcrm-appointment-public .hcsmcrm-portal-form-grid { grid-template-columns: 1fr; } }


/* v6.4.0 Agency Portal Invite Agents */
.hcsmcrm-portal-panel[data-panel="invites"] code {
  background: #f7fbff;
  border: 1px solid #d9e8f4;
  padding: 2px 6px;
  border-radius: 6px;
}

/* v7.2.2 portal login form */
.hcsmcrm-portal-login-card input[type="password"] {
  width: 100%;
  margin-top: 6px;
  border: 1px solid #cfddea;
  border-radius: 12px;
  padding: 10px 12px;
}


/* v7.3.0 Impersonation banner */
.hcsmcrm-impersonation-bar { position:fixed; left:0; right:0; bottom:0; z-index:999999; background:#8a1f11; color:#fff; padding:12px 18px; text-align:center; font-family:Arial,sans-serif; box-shadow:0 -8px 24px rgba(0,0,0,.18); }
.hcsmcrm-impersonation-bar a { color:#fff !important; background:#0062b6; border-radius:8px; padding:7px 12px; margin-left:10px; text-decoration:none !important; font-weight:800; }


/* v7.4.2 agency commission dashboard */
.hcsmcrm-agency-commission-kpis {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.hcsmcrm-portal-card tfoot th {
  background: #f7fbff;
  color: #073a6a;
  font-weight: 900;
}
@media(max-width: 1100px){
  .hcsmcrm-agency-commission-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width: 680px){
  .hcsmcrm-agency-commission-kpis { grid-template-columns: 1fr; }
}
