/* AXESS Portal — login, register, forgot/reset password, dashboard */
:root {
  --axess-dark: #1f2937;
  --axess-dark-2: #374151;
  --axess-border: #d1d5db;
  --axess-text: #202124;
  --axess-muted: #6b7280;
  --axess-accent: #ec2027;
  --axess-accent-dark: #c81b21;
  --axess-pass: #166534;
  --axess-pass-bg: #dcfce7;
  --axess-review: #991b1b;
  --axess-review-bg: #fee2e2;
  --axess-radius: 10px;
  --axess-radius-sm: 6px;
  --axess-shadow: 0 8px 28px rgba(0,0,0,.08);
  --axess-font-body: "Poppins", Arial, Helvetica, sans-serif;
  --axess-font-heading: "Roboto", Arial, Helvetica, sans-serif;
}

.axess-auth, .axess-auth *,
.axess-dashboard, .axess-dashboard *,
.axess-gate, .axess-gate * { box-sizing: border-box; }

.axess-auth, .axess-dashboard, .axess-gate {
  color: var(--axess-text);
  font-family: var(--axess-font-body);
  font-size: 15px;
  line-height: 1.4;
}

/* Outer wrapper on the plugin's full-width "no title" page template —
   the theme's own content column is bypassed, so this provides the
   breathing room around the centered card/dashboard below. */
.axess-portal-main {
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 32px 16px;
}
@media (max-width: 480px) {
  .axess-portal-main { padding: 20px 12px; }
}
/* The split-screen auth shell goes edge-to-edge — it manages its own
   internal spacing, so the page template's padding would just add an
   unwanted gray margin around it. */
.axess-portal-main:has(> .axess-auth) { padding: 0; }

/* Buttons (self-contained — auth pages don't load the calculator stylesheet) */
.axess-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  appearance: none;
  border: 1px solid var(--axess-border);
  background: #fff;
  color: var(--axess-text);
  border-radius: var(--axess-radius-sm);
  padding: 12px 20px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease, transform .05s ease, opacity .15s ease;
}
.axess-btn span { color: inherit; }
.axess-btn:hover { border-color: #9ca3af; background: #f9fafb; }
.axess-btn:active { transform: translateY(1px); }
.axess-btn:focus-visible { outline: 3px solid rgba(236,32,39,.35); outline-offset: 1px; }
.axess-btn[disabled] { opacity: .6; cursor: default; pointer-events: none; }
.axess-btn--primary { background: var(--axess-accent); border-color: var(--axess-accent); color: #fff; }
.axess-btn--primary:hover { background: var(--axess-accent-dark); border-color: var(--axess-accent-dark); }
.axess-btn--secondary { background: #fff; color: var(--axess-dark-2); }
.axess-btn--block { width: 100%; }

/* Auth shell: hero + card, full-bleed split-screen */
.axess-auth {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 1fr);
  min-height: 100vh;
  width: 100%;
}

.axess-auth__hero {
  /* Sticky + viewport height, not just centered within the grid row — on
     a tall form (Register has 8 fields) the grid row grows well past
     100vh, and centering within that full tall row put the hero text
     below the fold instead of visually centered on screen. Pinning the
     hero to the viewport keeps it centered no matter how long the form
     stretches, and it scrolls normally again once the form is shorter. */
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 48px 44px;
  display: flex;
  align-items: center;
  background:
    linear-gradient(135deg, rgba(31,41,55,.15) 0%, rgba(236,32,39,.35) 45%, rgba(31,41,55,.85) 46%, rgba(17,24,39,.96) 100%),
    linear-gradient(160deg, #111827 0%, #1f2937 55%, #0f172a 100%);
  color: #fff;
  min-height: 320px;
}
.axess-auth__hero-inner { max-width: 420px; }
.axess-auth__eyebrow {
  display: inline-block;
  letter-spacing: 2px;
  font-size: 12px;
  font-weight: 700;
  color: var(--axess-accent);
  margin-bottom: 14px;
}
.axess-auth__hero h1 {
  margin: 0 0 14px;
  font-family: var(--axess-font-heading);
  font-size: 34px;
  line-height: 1.15;
  font-weight: 700;
  color: var(--axess-accent);
}
.axess-auth__hero p {
  margin: 0 0 20px;
  color: #d1d5db;
  font-size: 15px;
}
.axess-auth__hero-product {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 0 0 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.15);
}
.axess-auth__hero-product-name {
  font-family: var(--axess-font-heading);
  font-size: 16px;
  font-weight: 400;
  color: #fff;
}
.axess-auth__hero-product-name strong { font-weight: 700; }
.axess-auth__hero-product-tagline { font-size: 12px; color: #9ca3af; }
.axess-auth__features {
  list-style: none;
  display: flex;
  gap: 22px;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}
.axess-auth__features li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #e5e7eb;
}
.axess-auth__feature-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: var(--axess-accent);
}

.axess-auth__panel {
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 32px;
}
.axess-auth__card {
  width: 100%;
  max-width: 380px;
}
.axess-auth__card--wide { max-width: 460px; }
.axess-auth__card--flush { max-width: none; margin: 0; }


.axess-auth__title { margin: 0 0 4px; font-family: var(--axess-font-heading); font-size: 22px; font-weight: 700; color: var(--axess-text); }
.axess-auth__subtitle { margin: 0 0 20px; font-size: 13.5px; color: var(--axess-muted); }

.axess-field { display: block; margin-bottom: 16px; }
.axess-field > span { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 400; color: var(--axess-dark-2); }
.axess-field input {
  width: 100%;
  border: 1px solid var(--axess-border);
  border-radius: var(--axess-radius-sm);
  padding: 11px 12px;
  font: inherit;
  font-size: 14px;
  background: #fff;
  outline: none;
}
.axess-field input:focus-visible { outline: 2px solid var(--axess-accent); outline-offset: -1px; border-color: var(--axess-accent); }
.axess-field input[disabled] { background: #f3f4f6; color: var(--axess-muted); }
.axess-field-help { margin: -6px 0 16px; font-size: 11.5px; color: var(--axess-muted); }
.axess-field select {
  width: 100%;
  border: 1px solid var(--axess-border);
  border-radius: var(--axess-radius-sm);
  padding: 11px 12px;
  font: inherit;
  font-size: 14px;
  background: #fff;
  outline: none;
  appearance: auto;
}
.axess-field select:focus-visible { outline: 2px solid var(--axess-accent); outline-offset: -1px; border-color: var(--axess-accent); }

.axess-field__password { position: relative; }
.axess-field__password input { padding-right: 42px; }
.axess-field__toggle-pwd {
  position: absolute;
  top: 50%;
  right: 6px;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--axess-muted);
  cursor: pointer;
  border-radius: var(--axess-radius-sm);
}
.axess-field__toggle-pwd:hover { color: var(--axess-dark-2); }
.axess-field__toggle-pwd:focus-visible { outline: 2px solid var(--axess-accent); outline-offset: 1px; }
.axess-field__toggle-pwd svg { display: block; width: 18px; height: 18px; }

.axess-field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}

.axess-field-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: -4px 0 18px;
  flex-wrap: wrap;
}
.axess-checkbox { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--axess-dark-2); }
.axess-link { color: var(--axess-accent-dark); font-weight: 500; font-size: 13px; text-decoration: none; }
.axess-link:hover { text-decoration: underline; }

.axess-auth__switch { margin: 18px 0 0; font-size: 13.5px; text-align: center; color: var(--axess-muted); }
.axess-auth__switch a { color: var(--axess-accent-dark); font-weight: 500; text-decoration: none; }
.axess-auth__switch a:hover { text-decoration: underline; }
.axess-auth__secure { margin: 22px 0 0; padding-top: 16px; border-top: 1px solid #f1f5f9; text-align: center; font-size: 11.5px; color: var(--axess-muted); }

.axess-form-message, .axess-notice {
  margin: 0 0 16px;
  padding: 11px 14px;
  border-radius: var(--axess-radius-sm);
  font-size: 13px;
  font-weight: 600;
}
.axess-notice--error, .axess-form-message.is-error { background: var(--axess-review-bg); color: var(--axess-review); }
.axess-notice--success, .axess-form-message.is-success { background: var(--axess-pass-bg); color: var(--axess-pass); }

/* Access-denied gate shown instead of the calculator */
.axess-gate {
  max-width: 560px;
  margin: 24px auto;
  padding: 28px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: var(--axess-radius);
  box-shadow: var(--axess-shadow);
  text-align: center;
}
.axess-gate--inline { margin: 0 0 20px; max-width: none; text-align: left; }
.axess-gate__text { margin: 0 0 16px; color: var(--axess-dark-2); font-size: 14px; }
.axess-gate--inline .axess-gate__text { margin-bottom: 10px; }

/* Dashboard — sidebar nav + content */
.axess-dashboard--sidebar {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  min-height: 700px;
}

.axess-dashboard__sidebar {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 18px 14px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: var(--axess-radius);
  box-shadow: var(--axess-shadow);
  position: sticky;
  top: 20px;
}
.axess-dashboard__brand { padding: 0 8px; font-family: var(--axess-font-heading); font-size: 16px; font-weight: 700; color: var(--axess-dark); display: flex; flex-direction: column; line-height: 1.3; }
.axess-dashboard__brand span { color: var(--axess-accent); }
.axess-dashboard__brand small { font-size: 11.5px; font-weight: 400; color: var(--axess-muted); }
.axess-dashboard__brand--plain {
  font-size: 18px;
  padding-bottom: 14px;
  margin-bottom: 4px;
  border-bottom: 1px solid #e5e7eb;
}

.axess-dashboard__nav { display: flex; flex-direction: column; gap: 4px; }
.axess-dashboard__nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  appearance: none;
  border: 0;
  background: transparent;
  padding: 10px 12px;
  border-radius: var(--axess-radius-sm);
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--axess-dark-2);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.axess-dashboard__nav-item span { color: inherit; }
.axess-dashboard__nav-icon { flex: none; display: inline-flex; color: var(--axess-muted); transition: color .15s ease; }
.axess-dashboard__nav-item:hover { background: #f9fafb; }
.axess-dashboard__nav-item.is-active { background: var(--axess-accent); color: #fff; }
.axess-dashboard__nav-item.is-active .axess-dashboard__nav-icon { color: #fff; }

.axess-dashboard__sidebar-footer { margin-top: auto; padding-top: 14px; border-top: 1px solid #e5e7eb; display: flex; flex-direction: column; gap: 10px; }
.axess-dashboard__user { display: flex; align-items: center; gap: 10px; padding: 0 8px; }
.axess-dashboard__user-avatar {
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: var(--axess-dark-2);
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.axess-dashboard__user-name { font-size: 12.5px; font-weight: 500; color: var(--axess-dark-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.axess-dashboard__logout {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: var(--axess-radius-sm);
  font-size: 13px;
  font-weight: 500;
  color: var(--axess-review);
  text-decoration: none;
  transition: background-color .15s ease;
}
.axess-dashboard__logout span { color: inherit; }
.axess-dashboard__logout:hover { background: var(--axess-review-bg); }

.axess-dashboard__content { min-width: 0; }

.axess-dashboard__panel { display: none; }
.axess-dashboard__panel.is-active { display: block; animation: axessPanelIn .28s ease; }
@keyframes axessPanelIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Overview */
.axess-overview__welcome { display: flex; align-items: center; gap: 16px; margin: 4px 0 24px; }
.axess-overview__avatar {
  flex: none;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  background: var(--axess-accent);
  color: #fff;
  font-family: var(--axess-font-heading);
  font-size: 20px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.axess-overview__welcome h1 { margin: 0; font-family: var(--axess-font-heading); font-size: 21px; font-weight: 700; color: var(--axess-text); }
.axess-overview__welcome p { margin: 3px 0 0; font-size: 13px; color: var(--axess-muted); }

.axess-quick-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.axess-quick-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 20px 20px 22px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: var(--axess-radius);
  box-shadow: var(--axess-shadow);
  text-align: left;
  text-decoration: none;
  color: inherit;
  font-family: inherit;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  animation: axessCardIn .3s ease backwards;
}
.axess-quick-grid .axess-quick-card:nth-child(2) { animation-delay: .05s; }
.axess-quick-grid .axess-quick-card:nth-child(3) { animation-delay: .1s; }
@keyframes axessCardIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.axess-quick-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0,0,0,.09); border-color: var(--axess-accent); }
.axess-quick-card__icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #fdecec;
  color: var(--axess-accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
.axess-quick-card strong { font-size: 14.5px; font-weight: 700; color: var(--axess-text); }
.axess-quick-card__desc { font-size: 12.5px; color: var(--axess-muted); line-height: 1.4; }
.axess-quick-card__go {
  position: absolute;
  top: 18px;
  right: 18px;
  color: var(--axess-muted);
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity .18s ease, transform .18s ease, color .18s ease;
}
.axess-quick-card:hover .axess-quick-card__go { opacity: 1; transform: translateX(0); color: var(--axess-accent); }

.axess-dashboard__more { max-width: 1100px; margin: 18px auto 0; }
.axess-dashboard__more-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px 20px;
  border: 1px dashed var(--axess-border);
  border-radius: var(--axess-radius);
  color: var(--axess-muted);
  background: #f9fafb;
}
.axess-dashboard__more-card strong { color: var(--axess-dark-2); font-size: 13.5px; }
.axess-dashboard__more-card span { font-size: 12.5px; }

/* Nav badge (pending-approval count) */
.axess-dashboard__nav-badge {
  margin-left: auto;
  flex: none;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: #fff;
  color: var(--axess-accent);
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.axess-dashboard__nav-item:not(.is-active) .axess-dashboard__nav-badge { background: var(--axess-accent); color: #fff; }

/* "Soon" badge — nav item (sidebar) and quick-access card (Overview) */
.axess-dashboard__nav-soon {
  margin-left: auto;
  flex: none;
  padding: 2px 7px;
  border-radius: 999px;
  background: #f3f4f6;
  color: var(--axess-muted);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .3px;
}
.axess-dashboard__nav-item.is-active .axess-dashboard__nav-soon { background: rgba(255,255,255,.2); color: #fff; }
.axess-quick-card__badge {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 999px;
  background: #f3f4f6;
  color: var(--axess-muted);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .3px;
  vertical-align: middle;
}

/* "Coming soon" placeholder panel */
.axess-coming-soon {
  max-width: 420px;
  margin: 48px auto;
  text-align: center;
  padding: 0 16px;
}
.axess-coming-soon__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  background: #fee2e2;
  color: var(--axess-accent);
  margin-bottom: 18px;
}
.axess-coming-soon__icon svg { width: 26px; height: 26px; }
.axess-coming-soon h2 { margin: 0 0 8px; font-family: var(--axess-font-heading); font-size: 20px; font-weight: 700; color: var(--axess-text); }
.axess-coming-soon p { margin: 0; color: var(--axess-muted); font-size: 14px; }

/* Small button size (table row actions) */
.axess-btn--xs { padding: 6px 12px; font-size: 12px; }

/* [User Approvals] filters, table, pills, pagination */
.axess-users-panel { max-width: none; }
.axess-users-filters {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin: 18px 0;
}
.axess-users-filters__tabs {
  display: flex;
  gap: 4px;
  padding: 4px;
  background: #f3f4f6;
  border-radius: var(--axess-radius-sm);
}
.axess-users-filters__tab {
  padding: 7px 14px;
  border-radius: calc(var(--axess-radius-sm) - 2px);
  font-size: 13px;
  font-weight: 500;
  color: var(--axess-dark-2);
  text-decoration: none;
}
.axess-users-filters__tab:hover { background: rgba(255,255,255,.6); }
.axess-users-filters__tab.is-active { background: #fff; color: var(--axess-text); box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.axess-users-filters__search { display: flex; gap: 8px; }
.axess-users-filters__search input[type="search"] {
  border: 1px solid var(--axess-border);
  border-radius: var(--axess-radius-sm);
  padding: 8px 12px;
  font: inherit;
  font-size: 13px;
  min-width: 220px;
}

.axess-users-table-wrap { overflow-x: auto; border: 1px solid #e5e7eb; border-radius: var(--axess-radius); }
.axess-users-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.axess-users-table th {
  text-align: left;
  padding: 10px 14px;
  background: #f9fafb;
  color: var(--axess-muted);
  font-weight: 600;
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: .3px;
  white-space: nowrap;
  border-bottom: 1px solid #e5e7eb;
}
.axess-users-table td {
  padding: 12px 14px;
  border-bottom: 1px solid #f1f5f9;
  color: var(--axess-dark-2);
  vertical-align: middle;
}
.axess-users-table tr:last-child td { border-bottom: 0; }
.axess-users-table__empty { text-align: center; color: var(--axess-muted); padding: 32px 14px !important; }
.axess-users-table__actions { display: flex; gap: 6px; white-space: nowrap; }

.axess-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2px;
}
.axess-pill--approved { color: var(--axess-pass); background: var(--axess-pass-bg); }
.axess-pill--pending { color: #92400e; background: #fef3c7; }
.axess-pill--rejected { color: var(--axess-review); background: var(--axess-review-bg); }

.axess-users-pagination { display: flex; gap: 4px; margin-top: 16px; }
.axess-users-pagination__link {
  min-width: 30px;
  height: 30px;
  padding: 0 6px;
  border-radius: var(--axess-radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--axess-dark-2);
  text-decoration: none;
  border: 1px solid var(--axess-border);
}
.axess-users-pagination__link.is-active { background: var(--axess-accent); border-color: var(--axess-accent); color: #fff; }

.axess-users-status-select {
  border: 1px solid var(--axess-border);
  border-radius: var(--axess-radius-sm);
  padding: 6px 8px;
  font: inherit;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--axess-dark-2);
  background: #fff;
  cursor: pointer;
}
.axess-users-status-select:disabled { opacity: .6; cursor: default; }

/* Modals (User View / Edit) */
.axess-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.axess-modal[hidden] { display: none; }
.axess-modal__backdrop { position: absolute; inset: 0; background: rgba(17,24,39,.55); animation: axessFadeIn .15s ease; }
.axess-modal__box {
  position: relative;
  width: 100%;
  max-width: 460px;
  max-height: 85vh;
  overflow-y: auto;
  background: #fff;
  border-radius: var(--axess-radius);
  box-shadow: 0 24px 60px rgba(0,0,0,.25);
  padding: 28px;
  animation: axessModalIn .18s ease;
}
@keyframes axessFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes axessModalIn { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
.axess-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 28px;
  height: 28px;
  border: 0;
  background: #f3f4f6;
  border-radius: 999px;
  font-size: 18px;
  line-height: 1;
  color: var(--axess-muted);
  cursor: pointer;
}
.axess-modal__close:hover { background: #e5e7eb; color: var(--axess-text); }
.axess-modal__box h3 { margin: 0 0 18px; font-family: var(--axess-font-heading); font-size: 18px; font-weight: 700; color: var(--axess-text); padding-right: 24px; }
.axess-modal__details { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin: 0 0 20px; }
.axess-modal__details dt { margin: 0 0 2px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--axess-muted); }
.axess-modal__details dd { margin: 0; font-size: 13.5px; color: var(--axess-text); word-break: break-word; }

@media (max-width: 480px) {
  .axess-modal__details { grid-template-columns: 1fr; }
  .axess-modal__box { padding: 22px; }
}

@media (max-width: 640px) {
  .axess-users-table th { display: none; }
  .axess-users-table, .axess-users-table tbody, .axess-users-table tr, .axess-users-table td { display: block; width: 100%; }
  .axess-users-table tr { padding: 10px 14px; border-bottom: 1px solid #e5e7eb; }
  .axess-users-table td { border-bottom: 0; padding: 4px 0; }
  .axess-users-table td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .3px;
    color: var(--axess-muted);
    margin-bottom: 2px;
  }
  .axess-users-table__actions { margin-top: 6px; }
}

/* [axess_account_menu] — header account icon + dropdown */
.axess-account-menu {
  position: relative;
  display: inline-block;
  font-family: var(--axess-font-body);
  font-size: 15px;
  line-height: 1.4;
}
.axess-account-menu__trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  appearance: none;
  border: 1px solid var(--axess-border);
  background: #fff;
  border-radius: 999px;
  padding: 5px 14px 5px 5px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--axess-dark-2);
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}
.axess-account-menu__trigger span { color: inherit; }
.axess-account-menu__trigger:hover { border-color: var(--axess-accent); }
.axess-account-menu__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: #f3f4f6;
  color: var(--axess-muted);
}
.axess-account-menu__avatar {
  flex: none;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--axess-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.axess-account-menu__dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 250px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: var(--axess-radius);
  box-shadow: 0 16px 36px rgba(0,0,0,.14);
  padding: 8px;
  z-index: 9999;
  animation: axessDropdownIn .15s ease;
}
@keyframes axessDropdownIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.axess-account-menu__user { padding: 8px 10px 10px; border-bottom: 1px solid #f1f5f9; margin-bottom: 6px; }
.axess-account-menu__user strong { display: block; font-size: 13.5px; font-weight: 700; color: var(--axess-text); }
.axess-account-menu__user span { display: block; font-size: 12px; color: var(--axess-muted); margin-top: 2px; }
.axess-account-menu__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: var(--axess-radius-sm);
  font-size: 13.5px;
  font-weight: 500;
  color: var(--axess-dark-2);
  text-decoration: none;
}
.axess-account-menu__item span { color: inherit; }
.axess-account-menu__item:hover { background: #f9fafb; }
.axess-account-menu__item svg { flex: none; color: var(--axess-muted); }
.axess-account-menu__item--danger,
.axess-account-menu__item--danger span { color: var(--axess-review); }
.axess-account-menu__item--danger svg { color: var(--axess-review); }
.axess-account-menu__item--danger:hover { background: var(--axess-review-bg); }
.axess-account-menu__divider { border: 0; border-top: 1px solid #f1f5f9; margin: 6px 0; }

@media (max-width: 860px) {
  .axess-auth { grid-template-columns: 1fr; min-height: 0; }
  /* Stacked layout — the hero is no longer a side column, so it shouldn't
     pin to the viewport; let it scroll away normally above the form. */
  .axess-auth__hero { position: static; height: auto; padding: 36px 28px; min-height: 220px; }
  .axess-auth__hero h1 { font-size: 26px; }
  .axess-field-grid { grid-template-columns: 1fr; }

  .axess-dashboard--sidebar { grid-template-columns: 1fr; gap: 14px; min-height: 0; }
  .axess-dashboard__sidebar { position: static; }
  .axess-quick-grid { grid-template-columns: 1fr; }

  .axess-account-menu__trigger span:not(.axess-account-menu__avatar) { display: none; }
  .axess-account-menu__trigger { padding: 5px; }
}

@media (max-width: 480px) {
  .axess-auth__panel { padding: 28px 18px; }
  .axess-auth__features { gap: 14px; }

  .axess-overview__welcome { align-items: flex-start; flex-direction: column; gap: 10px; }
  .axess-overview__welcome h1 { font-size: 18px; }
  .axess-account-menu__dropdown { min-width: 220px; right: -8px; }
}
