.locicore-customer-portal {
  --gp-ink: #173431; --gp-brand: #075c59; --gp-muted: #526b67; --gp-line: #ccdad4;
  color: var(--gp-ink); font: 400 1rem/1.65 var(--gl-font-sans, system-ui), sans-serif;
  max-width: 1200px; margin-inline: auto; min-width: 0;
}
.locicore-customer-portal *, .locicore-customer-portal *::before { box-sizing: border-box; }
.locicore-customer-portal h2 { font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.2; margin: 0 0 1rem; }
.locicore-customer-portal h3 { font-size: 1.3rem; margin: 0 0 1rem; }
.locicore-customer-portal p { margin: 0 0 1rem !important; }
.locicore-customer-portal a { color: var(--gp-brand); text-underline-offset: .2em; }
.gl-portal-entry { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.gl-portal-card { min-width: 0; padding: clamp(1.25rem, 4vw, 2.5rem); background: #fff; border: 1px solid var(--gp-line); border-radius: 12px; margin-bottom: 1.5rem; }
.gl-portal-register, .gl-portal-create { background: #e9f1ed; }
.gl-portal-eyebrow { color: var(--gp-muted); font-size: .875rem; font-weight: 600; }
.locicore-customer-portal .gl-portal-button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  padding: .75rem 1.25rem; background: var(--gp-brand); color: #fff; border: 1px solid var(--gp-brand);
  border-radius: 6px; font: inherit; font-weight: 600; line-height: 1.4; text-decoration: none;
  cursor: pointer; white-space: normal; text-align: center;
}
.locicore-customer-portal .gl-portal-button:hover { background: #034542; color: #fff; }
.locicore-customer-portal .gl-portal-button-secondary { background: #fff; color: var(--gp-brand); }
.locicore-customer-portal .gl-portal-button-secondary:hover { background: #e9f1ed; color: var(--gp-brand); }
.gl-portal-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.gl-portal-toolbar h2 { margin: 0; }
.gl-portal-create { margin-block: 2rem; scroll-margin-top: 2rem; }
.gl-portal-create form { max-width: 680px; }
.gl-portal-create label { display: block; font-weight: 600; }
.locicore-customer-portal input:not([type=hidden]):not([type=checkbox]) { display: block; width: 100%; min-height: 48px; margin-top: .4rem; padding: .7rem; background: #fff; color: var(--gp-ink); border: 1px solid #526b67; border-radius: 6px; font: inherit; }
.locicore-customer-portal input[type=checkbox] { width: 20px; height: 20px; vertical-align: middle; accent-color: var(--gp-brand); }
.gl-portal-key form { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.gl-portal-key dl { display: grid; grid-template-columns: minmax(160px, 1fr) 2fr; gap: .5rem 1.5rem; margin-block: 1.5rem; }
.gl-portal-key dt { color: var(--gp-muted); }
.gl-portal-key dd { margin: 0; overflow-wrap: anywhere; }
.locicore-customer-portal table { display: table !important; width: 100%; border-collapse: collapse; font-size: .95rem; }
.locicore-customer-portal caption { text-align: left; font-weight: 600; padding-block: 1rem; }
.locicore-customer-portal th, .locicore-customer-portal td { text-align: left; padding: .65rem; border-bottom: 1px solid var(--gp-line); }
.locicore-customer-portal thead { background: #e9f1ed; }
.gl-portal-secret, .gl-portal-notice { padding: 1.25rem; border: 1px solid var(--gp-brand); border-radius: 8px; background: #e9f1ed; margin-bottom: 1.5rem; }
.locicore-new-api-key { white-space: normal; overflow-wrap: anywhere; user-select: all; }
.gl-portal-links { display: flex; flex-wrap: wrap; gap: 1rem 2rem; border-top: 1px solid var(--gp-line); padding-top: 1.5rem; margin-top: 2rem; }
.locicore-customer-portal :is(a, button, input):focus-visible { outline: 3px solid #006c83; outline-offset: 3px; }
@media (max-width: 767px) {
  .gl-portal-entry { grid-template-columns: 1fr; gap: 0; }
  .gl-portal-key dl { grid-template-columns: 1fr; gap: .25rem; }
  .gl-portal-key dd { margin-bottom: .75rem; }
  .gl-portal-toolbar .gl-portal-button { width: 100%; }
  .locicore-customer-portal th, .locicore-customer-portal td { padding: .5rem .25rem; }
}
