/* @file @spec spec://modules/authentication/FEAT-112-device-sessions#contracts.interface */
/* @file @spec spec://modules/mfa/FEAT-130-mfa-totp#contracts.qr */
/* @file @spec spec://modules/mfa/FEAT-130-mfa-totp#contracts.required-policy */
/* @spec spec://modules/interfaces/FEAT-400-hosted-user-interface#contracts.design */
/* @spec spec://modules/admin/FEAT-501-admin-console#contracts.design */
/* @spec spec://modules/interfaces/FEAT-400-hosted-user-interface#contracts.account-design */

/* Account tokens are scoped so auth and console keep their own surfaces. */
.ui-account-page {
  color-scheme: dark;
  --trust-bg: var(--isty-ink);
  --trust-surface: var(--isty-surface-dark);
  --trust-ink: var(--isty-on-dark);
  --trust-muted: var(--isty-on-dark-muted);
  --trust-line: var(--isty-line-dark);
  --trust-violet-strong: var(--isty-violet);
  --trust-focus: var(--isty-violet);
  --trust-focus-shadow: rgba(185, 166, 242, .2);
  background-image: linear-gradient(rgba(245, 240, 230, .03) 1px, transparent 1px), linear-gradient(90deg, rgba(245, 240, 230, .03) 1px, transparent 1px);
  background-size: 72px 72px;
  background-position: center -1px;
}
.ui-account-page .account-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 90px; padding: 20px 40px; border-bottom: 1px solid var(--isty-line-dark); }
.account-header-actions, .account-identity, .account-locale { display: flex; align-items: center; gap: 16px; min-width: 0; }
.ui-account-page .account-identity { color: var(--isty-on-dark); text-decoration: none; font-size: 14px; }
.account-identity strong, .account-identity small { display: block; max-width: 240px; overflow-wrap: anywhere; }
.account-identity small { color: var(--isty-on-dark-muted); font: 11px/1.5 var(--isty-font-mono); }
.account-avatar { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--isty-violet); color: var(--isty-text); font-size: 14px; font-weight: 600; }
.account-avatar.large { width: 64px; height: 64px; font-size: 22px; }
.ui-account-page .account-shell { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; width: min(1200px, calc(100% - 48px)); margin: 48px auto 64px; }
.account-content { min-width: 0; }
.account-nav { display: flex; flex-direction: column; align-self: start; gap: 4px; }
.ui-account-page .account-nav a { display: flex; align-items: center; min-height: 44px; padding: 10px 14px; border-radius: 12px; color: var(--isty-on-dark-2); text-decoration: none; }
.ui-account-page .account-nav a:hover, .ui-account-page .account-nav a[aria-current] { background: rgba(185, 166, 242, .12); color: var(--isty-on-dark); }
.ui-account-page .account-nav a[aria-current] { font-weight: 600; }
.ui-account-page .account-locale a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font: 11px var(--isty-font-mono); color: var(--isty-on-dark-muted); text-decoration: none; border-radius: 10px; }
.ui-account-page .account-locale a[aria-current] { background: rgba(245, 240, 230, .1); color: var(--isty-on-dark); }
.account-locale { gap: 0; }
.ui-account-page .ui-section { gap: 28px; }
.ui-account-page .ui-section.narrow { max-width: none; }
.ui-account-page h1 { margin: 0; font-size: 44px; line-height: 1.15; letter-spacing: -.04em; overflow-wrap: anywhere; }
.ui-account-page h2 { margin: 0; font-size: 22px; line-height: 1.3; letter-spacing: -.02em; }
.ui-account-page .ui-page-header { gap: 14px; margin-bottom: 4px; }
.ui-account-page .ui-page-header > p { max-width: 680px; line-height: 1.55; }
.ui-account-page .ui-eyebrow { color: var(--isty-violet); font: 11px/1.5 var(--isty-font-mono); letter-spacing: .16em; }
.ui-account-page .ui-panel { padding: 22px; background: var(--isty-surface-dark); border-color: var(--isty-line-dark); border-radius: 20px; box-shadow: none; }
.ui-account-page :is(p, dd, code, strong, small) { overflow-wrap: anywhere; }
.ui-account-page .ui-muted { color: var(--isty-on-dark-2); }
.ui-account-page .account-back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin-bottom: 14px; color: var(--isty-on-dark-2); text-decoration: none; }
.ui-account-page :is(button, .button, summary) { min-height: 44px; }
.ui-account-page :is(.account-content, .account-header) :is(button, .button) { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: fit-content; max-width: 100%; padding: 10px 16px; border: 1px solid transparent; border-radius: 12px; background: var(--isty-cream); color: var(--isty-text); font-size: 14px; font-weight: 600; text-decoration: none; box-shadow: none; }
.ui-account-page :is(.account-content, .account-header) :is(button, .button):hover { background: #e7e0d3; }
.ui-account-page :is(.account-content, .account-header) :is(button, .button).secondary { border-color: rgba(245, 240, 230, .22); background: transparent; color: var(--isty-on-dark-2); font-weight: 400; }
.ui-account-page :is(.account-content, .account-header) :is(button, .button).secondary:hover { background: rgba(245, 240, 230, .08); color: var(--isty-on-dark); }
.ui-account-page :is(.account-content, .account-header) :is(button, .button).danger { border-color: rgba(243, 177, 188, .5); background: transparent; color: #f3b1bc; }
.ui-account-page :is(input:not([type=checkbox]):not([type=hidden]), select, textarea) { min-height: 52px; border-radius: 12px; background: var(--isty-ink); border-color: rgba(245, 240, 230, .24); color: var(--isty-on-dark); font-size: 16px; }
.ui-account-page input::placeholder { color: var(--isty-on-dark-muted); }
.ui-account-page input[type=checkbox] { accent-color: var(--isty-violet); }
.ui-account-page label { font-size: 14px; }
.ui-account-page :is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--isty-violet); outline-offset: 3px; box-shadow: 0 0 0 5px var(--trust-focus-shadow); }
.ui-account-page :is(.ui-help, .ui-note) { border-color: var(--isty-line-dark); background: var(--isty-surface-dark); color: var(--isty-on-dark-2); }
.ui-account-page details.ui-help summary { display: flex; align-items: center; padding: 8px 0; color: var(--isty-on-dark-2); cursor: pointer; }
.ui-account-page details::details-content { transition: none; }
.ui-account-page details[open]::details-content { block-size: auto; content-visibility: visible; }
.ui-account-page details .ui-form { margin-top: 16px; }
.ui-account-page .secret-value { background: var(--isty-ink); color: var(--isty-on-dark); border: 1px solid var(--isty-line-dark); border-radius: 10px; padding: 12px; font-family: var(--isty-font-mono); overflow-wrap: anywhere; }
.account-mono, .account-tag { font-family: var(--isty-font-mono); }
.account-mono { font-size: 11px; line-height: 1.6; }
.account-tag { color: var(--isty-sage); font-size: 10.5px; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; }
.account-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.account-section-heading > div { min-width: 0; }
.account-services, .account-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.account-service { display: flex; flex-direction: column; align-items: start; gap: 14px; min-width: 0; }
.account-service p { margin: 0; }
.account-service .account-service-time { font-size: 13px; }
.account-service-time time { color: var(--isty-on-dark); }
.account-service .button { margin-top: auto; }
.account-service-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; width: 100%; }
.account-service-heading img { object-fit: contain; object-position: left center; max-width: 100%; }
.account-service-heading h2 { font-size: 22px; }
.account-service-unopened { border-style: dashed !important; }
.account-summary { display: grid; grid-template-columns: 20px 1fr; align-items: center; gap: 10px; color: var(--isty-on-dark); text-decoration: none; font-size: 14px; }
.account-summary .account-tag { grid-column: 2; }
.ui-account-page .account-list-panel, .ui-account-page .account-profile { padding: 0; overflow: hidden; }
.account-panel-heading, .account-profile-heading { padding: 22px; }
.account-profile-heading { display: flex; align-items: center; gap: 18px; }
.account-profile-heading p { margin: 4px 0 0; }
.account-profile-details { margin: 0; font-size: 14px; }
.account-profile-details > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); align-items: center; gap: 16px; padding: 16px 22px; border-top: 1px solid var(--isty-line-dark); }
.account-profile-details dt { color: var(--isty-on-dark-muted); }
.account-profile-details dd { margin: 0; }
/* @spec spec://modules/interfaces/FEAT-400-hosted-user-interface#contracts.display-name */
.account-profile-value { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; overflow-wrap: anywhere; }
.account-profile-value a { display: inline-flex; min-height: 44px; align-items: center; padding: 10px 14px; border: 1px solid var(--isty-line-dark); border-radius: 12px; color: var(--isty-on-dark-2); text-decoration: none; }
.account-profile-value a:hover { background: rgba(245,240,230,.06); }
.account-action-form { max-width: 480px; }
.profile-contact-editor > h2 { margin-top: 0; }
.profile-pending { margin: 24px 0; padding: 20px; border: 1px solid var(--isty-line-dark); border-radius: 12px; }
.profile-pending > p:first-child { margin-top: 0; }
.profile-cancel-form { margin-top: 18px; }
.profile-code-form .auth-code-field { width: 100%; max-width: 380px; }
.profile-code-form .auth-code-cell { border-color: rgba(245,240,230,.22); background: rgba(18,16,24,.6); color: var(--isty-cream); }
.profile-code-form .auth-code-cell.is-current { border-color: var(--isty-violet); }
.account-mfa-policy .account-section-heading { margin: 0; }
.account-mfa-policy .account-section-heading > div { flex: 1 1 180px; }
.account-mfa-policy h2 { margin-top: 0; }
.ui-account-page .account-content button.account-mfa-switch, .ui-account-page .account-content button.account-mfa-switch:hover { position: relative; flex: 0 0 52px; width: 52px; min-height: 44px; padding: 0; border: 0; background: transparent; }
.account-mfa-switch::before { position: absolute; content: ''; inset: 8px 0; border: 1px solid var(--isty-on-dark-muted); border-radius: 999px; background: var(--isty-surface-dark); }
.account-mfa-switch::after { position: absolute; content: ''; width: 20px; height: 20px; left: 4px; top: 12px; border-radius: 50%; background: var(--isty-cream); }
.account-mfa-switch[aria-checked=true]::before { background: var(--isty-violet); }
.account-mfa-switch[aria-checked=true]::after { left: 28px; background: var(--isty-ink); }
.account-mfa-switch:disabled { opacity: .5; }
.account-profile-details .account-tag { margin-left: 8px; }
.account-event-list { padding: 0; margin: 0; list-style: none; }
.account-event-list li { display: flex; justify-content: space-between; gap: 22px; padding: 16px 22px; border-top: 1px solid var(--isty-line-dark); }
.account-event-list strong { font-weight: 500; }
.account-event-list p { margin: 4px 0 0; }
.account-event-list time { flex: 0 0 auto; color: var(--isty-on-dark-muted); }
.account-method-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 16px; align-items: center; min-width: 0; padding: 18px 22px; border-top: 1px solid var(--isty-line-dark); }
.account-method-row p { margin: 4px 0 0; font-size: 13px; }
.account-method-icon, .account-provider-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: rgba(245, 240, 230, .06); color: var(--isty-violet); }
.account-provider-icon { color: var(--isty-on-dark); font-family: var(--isty-font-mono); }
.account-method-icon .auth-icon { width: 20px; height: 20px; }
.account-passkey { display: grid; grid-template-columns: minmax(0, 1fr) auto; border-top: 1px solid var(--isty-line-dark); }
.account-passkey:has(details[open]) { display: block; }
.account-passkey .account-method-row { border: 0; }
.account-key-actions { display: flex; align-self: center; gap: 8px; padding: 18px 22px 18px 0; flex-wrap: wrap; }
.account-key-actions > details { flex: 0 1 auto; margin: 0; }
.account-key-actions > details[open] { flex: 1 1 240px; }
.account-key-actions .ui-help { padding: 0 12px; }
.account-key-actions .ui-form { padding-bottom: 12px; }
.ui-account-page #passkey-status:empty { padding: 0; margin: 0; border: 0; min-height: 0; }
.account-setup { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 24px; align-items: center; }
.account-setup-ring { position: relative; width: 120px; height: 120px; }
.account-setup-ring svg { width: 120px; height: 120px; transform: rotate(-90deg); }
.account-setup-ring circle { fill: none; stroke: var(--isty-line-dark); stroke-width: 9px; }
.account-setup-ring .account-setup-value { stroke: var(--isty-orange); stroke-linecap: round; }
.account-setup-ring strong { position: absolute; inset: 0; display: grid; place-items: center; font: 600 24px var(--isty-font-mono); }
.account-totp-setup { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.account-totp-setup > * { min-width: 0; }
.ui-account-page .account-form-narrow { max-width: 614px; }
.ui-account-page .account-warning { border-color: rgba(240, 178, 122, .36); }
.ui-account-page .account-warning p { margin: 0; }
.ui-account-page .account-secret-sheet { --trust-ink: var(--isty-text); --trust-muted: var(--isty-muted); --trust-surface: var(--isty-field); --trust-line: var(--isty-line); --trust-violet-strong: var(--isty-violet-ink); background: var(--isty-cream); color: var(--isty-text); padding: 28px; color-scheme: light; }
.ui-account-page .account-secret-sheet h2 { color: var(--isty-text); }
.account-secret-sheet .account-tag { color: var(--isty-sage-ink); }
.account-code-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0; margin: 20px 0; list-style: none; }
.account-code-grid li { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 10px; border: 1px solid var(--isty-line); background: var(--isty-field); min-width: 0; }
.account-code-grid span { font: 10px var(--isty-font-mono); color: var(--isty-muted); }
.ui-account-page .account-code-grid code { background: transparent; color: var(--isty-text); font: 500 14px/1.5 var(--isty-font-mono); padding: 0; overflow-wrap: anywhere; }
.ui-account-page .account-secret-sheet :is(button, .button) { background: var(--isty-ink); color: var(--isty-cream); }
.ui-account-page .account-secret-sheet :is(button, .button).secondary { background: transparent; color: var(--isty-text); border-color: var(--isty-line-strong); }
.account-saved-codes { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--isty-line); padding-top: 18px; margin-top: 18px; }
.account-saved-codes label { display: flex; align-items: center; gap: 12px; min-height: 44px; }
.account-saved-codes input { width: 20px; height: 20px; }
.ui-account-page [hidden] { display: none !important; }
@media (max-width: 1000px) {
  .ui-account-page .account-shell { grid-template-columns: 190px minmax(0, 1fr); gap: 24px; }
  .account-services, .account-summary-grid { grid-template-columns: 1fr; }
  .account-code-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .ui-account-page .account-header { min-height: 80px; padding: 16px; gap: 12px; flex-wrap: wrap; }
  .account-header-actions { gap: 8px; flex-wrap: wrap; }
  .account-identity > span:last-child { display: none; }
  .ui-account-page .account-shell { display: block; width: calc(100% - 32px); margin: 20px auto 40px; }
  .account-nav { flex-direction: row; flex-wrap: wrap; margin-bottom: 28px; gap: 4px; }
  .ui-account-page .account-nav a { padding: 10px 12px; font-size: 14px; }
  .ui-account-page h1 { font-size: 34px; }
  .ui-account-page h2 { font-size: 20px; }
  .ui-account-page .ui-section { gap: 22px; }
  .ui-account-page .ui-panel { padding: 20px; }
  .ui-account-page .account-list-panel, .ui-account-page .account-profile { padding: 0; }
  .account-profile-details > div { grid-template-columns: 1fr; gap: 8px; padding: 18px; }
  .account-profile-heading, .account-panel-heading { padding: 20px; }
  .account-method-row { grid-template-columns: 44px minmax(0, 1fr); padding: 18px; gap: 12px; }
  .account-method-row > :last-child:not(:nth-child(2)) { grid-column: 2; justify-self: start; }
  .account-key-actions { padding: 0 18px 18px; }
  .account-passkey { display: block; }
  .account-key-actions > details { flex-basis: 100%; }
  .account-setup { grid-template-columns: 80px minmax(0, 1fr); gap: 16px; }
  .account-setup-ring, .account-setup-ring svg { width: 80px; height: 80px; }
  .account-setup-ring strong { font-size: 20px; }
  .account-totp-setup { grid-template-columns: 1fr; gap: 28px; }
  .account-code-grid { grid-template-columns: 1fr; }
  .account-event-list li { flex-direction: column; gap: 8px; padding: 16px 20px; }
  .account-saved-codes { flex-wrap: wrap; }
}
@media print {
  .ui-account-page .account-header, .ui-account-page .account-nav, .ui-account-page .account-back, .ui-account-page .account-secret-sheet ~ *, .ui-account-page .account-secret-sheet button, .ui-account-page .account-saved-codes { display: none !important; }
  .ui-account-page .account-shell { display: block; width: 100%; margin: 0; }
  .ui-account-page { background: white; }
  .account-code-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@font-face {
  font-family: Onest;
  src: url("/static/fonts/Onest-variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  /* Фон и текст */
  --isty-ink: #121018;            /* тёмный фон входа и кабинета, тёмная кнопка */
  --isty-ink-2: #17131d;          /* второй тёмный слой */
  --isty-ink-3: #1c1724;          /* тёмная панель (шаги мастера) */
  --isty-ink-hover: #2a2433;      /* тёмная кнопка при наведении */
  --isty-cream: #f5f0e6;          /* светлая карточка формы, текст на тёмном */
  --isty-paper: #f2ece0;          /* фон консоли */
  --isty-paper-2: #efe8d8;        /* фон бренд-листа */
  --isty-chip: #ebe3d3;           /* плашки внутри светлой карточки */
  --isty-field: #fbf8f2;          /* поле ввода на светлой карточке, карточки консоли */
  --isty-text: #1a1620;           /* основной текст на светлом */
  --isty-text-2: #3f3745;         /* вторичный текст в плашках */
  --isty-muted: #5d5363;          /* подписи на светлом, 6.2:1 на paper */

  /* Текст на тёмном — только через прозрачность светлого */
  --isty-on-dark: #f5f0e6;
  --isty-on-dark-2: rgba(245, 240, 230, .78);
  --isty-on-dark-muted: rgba(245, 240, 230, .62); /* минимум для мелкого текста, 6.8:1 */
  --isty-line-dark: rgba(245, 240, 230, .12);
  --isty-line-dark-soft: rgba(245, 240, 230, .08);
  --isty-surface-dark: rgba(245, 240, 230, .035);
  --isty-line: rgba(26, 22, 32, .14);
  --isty-line-strong: rgba(26, 22, 32, .22);

  /* Акценты */
  --isty-violet: #b9a6f2;         /* знак, акцент на тёмном, выделение сервиса */
  --isty-violet-2: #8d71cb;       /* декоративный, не для мелкого текста */
  --isty-violet-ink: #614396;     /* ссылки и фокус на светлом, 6.7:1 */
  --isty-sage: #9eb58f;           /* «работает», успех на тёмном */
  --isty-sage-ink: #4b6542;       /* успех на светлом, «Сервис Isty» */
  --isty-orange: #f0b27a;         /* внимание на тёмном */

  /* Семантические плашки на светлом (фон / текст) */
  --isty-ok-bg: #dfe7d6;    --isty-ok-fg: #2f4429;
  --isty-warn-bg: #f6e2cc;  --isty-warn-fg: #7a3f0e;
  --isty-err-bg: #f3dde2;   --isty-err-fg: #8a2338;
  --isty-info-bg: #e6def9;  --isty-info-fg: #4a2f78;
  --isty-off-bg: rgba(26, 22, 32, .07); --isty-off-fg: #4a4250;
  --isty-danger: #a4324a;

  /* Фокус */
  --isty-focus-ring: 0 0 0 4px rgba(141, 113, 203, .22);
  --isty-focus-ring-dark: 0 0 0 4px rgba(185, 166, 242, .2);

  /* Шрифты: в продукте — локальные файлы в app/static/fonts (OFL), без Google Fonts */
  --isty-font: Onest, system-ui, -apple-system, "Segoe UI", sans-serif;
  --isty-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Радиусы */
  --isty-r-card: 22px;            /* карточка входа */
  --isty-r-panel: 16px;           /* панели кабинета и консоли (кабинет 18px) */
  --isty-r-control: 12px;         /* поля и кнопки входа */
  --isty-r-control-sm: 10px;      /* кнопки и поля консоли */
  --isty-r-pill: 999px;

  /* Тени */
  --isty-shadow-card: 0 40px 100px rgba(0, 0, 0, .5);
  --isty-shadow-sat-lit: 0 0 0 6px rgba(185, 166, 242, .10), 0 24px 60px rgba(0, 0, 0, .35);

  /* Размеры */
  --isty-control-h: 52px;         /* поле и основная кнопка входа */
  --isty-control-h-alt: 48px;     /* второстепенные кнопки входа */
  --isty-control-h-console: 40px; /* кнопки консоли, минимум 36px */
  --isty-target-min: 44px;        /* минимальная зона нажатия */
  --isty-card-w: 440px;           /* карточка входа; согласие и восстановление — 480px */
  --isty-container: 1200px;       /* кабинет */
  --isty-sidebar: 256px;          /* меню консоли */

  /* Сетка фона */
  --isty-grid-line: rgba(245, 240, 230, .035);
  --isty-grid-step: 72px;         /* вход и кабинет; консоль и мастер настройки — 36px */
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("/static/fonts/JetBrainsMono-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
}

:root {
  color-scheme: light;

  --trust-bg: var(--isty-paper-2);
  --trust-surface: var(--isty-cream);
  --trust-ink: var(--isty-ink-2);
  --trust-muted: var(--isty-muted);
  --trust-line: #c3b8aa;
  --trust-violet: var(--isty-violet);
  --trust-violet-2: var(--isty-violet-2);
  --trust-violet-strong: var(--isty-violet-ink);
  --trust-sage: var(--isty-sage);
  --trust-sage-2: #6f8a65;
  --trust-sage-strong: var(--isty-sage-ink);
  --trust-success: #4b6542;
  --trust-warning: #7a5315;
  --trust-danger: var(--isty-danger);
  --trust-radius: 12px;
  --trust-control-radius: 8px;
  --trust-shadow: 0 12px 30px rgba(25, 23, 36, 0.08), 0 2px 4px rgba(25, 23, 36, 0.04);
  --trust-shadow-hover: 0 16px 36px rgba(25, 23, 36, 0.13), 0 3px 6px rgba(25, 23, 36, 0.06);
  --trust-focus: #614396;
  --trust-focus-shadow: rgba(141, 113, 203, 0.24);

  /* Legacy aliases retained for existing templates and integrations. */
  --bg: var(--trust-bg);
  --panel: var(--trust-surface);
  --text: var(--trust-ink);
  --muted: var(--trust-muted);
  --line: var(--trust-line);
  --accent: var(--trust-violet);
  --accent-strong: var(--trust-violet-strong);
  --danger: var(--trust-danger);
  --warning: var(--trust-warning);
  --success: var(--trust-success);
}

/* Native details stay usable without scripting; capable browsers interpolate the content height. */
@supports (interpolate-size: allow-keywords) {
  :is(.ui-help, .nav-group, .technical-details, .auth-heading-row .help-wrap) {
    interpolate-size: allow-keywords;
  }

  :is(.ui-help, .nav-group, .technical-details, .auth-heading-row .help-wrap)::details-content {
    block-size: 0;
    overflow: hidden;
    transition: block-size 220ms ease, content-visibility 220ms allow-discrete;
  }

  :is(.ui-help, .nav-group, .technical-details, .auth-heading-row .help-wrap)[open]::details-content {
    block-size: auto;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  background: var(--trust-bg);
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  margin: 0;
  background: var(--trust-bg);
  color: var(--trust-ink);
  font-family: Onest, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
}

/* Use the canonical Isty logo as a compact, monochrome brand signature. */
:is(.ui-brand, .brand)::before {
  display: inline-block;
  width: 50px;
  height: 30px;
  flex: 0 0 50px;
  background: var(--trust-violet);
  -webkit-mask: url("/static/isty-logo.svg") center / contain no-repeat;
  mask: url("/static/isty-logo.svg") center / contain no-repeat;
  content: "";
}

img,
svg,
video,
canvas {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: var(--trust-violet-strong);
  text-underline-offset: 0.16em;
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
.button,
[type="button"],
[type="submit"],
[type="reset"] {
  min-height: 42px;
}

button,
.button,
[type="button"],
[type="submit"],
[type="reset"] {
  border: 1px solid transparent;
  border-radius: var(--trust-control-radius);
  cursor: pointer;
  font-weight: 700;
  line-height: 1.2;
  transition: background-color 120ms ease, border-color 120ms ease, box-shadow 120ms ease, color 120ms ease, opacity 120ms ease;
}

button,
.button,
[type="submit"],
[type="button"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  padding: 12px 16px;
  border-color: var(--trust-violet);
  background: var(--trust-violet);
  color: var(--trust-ink);
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

button:hover:not(:disabled),
.button:hover,
[type="submit"]:hover:not(:disabled),
[type="button"]:hover:not(:disabled) {
  border-color: var(--trust-violet-strong);
  background: var(--trust-sage);
  color: var(--trust-ink);
}

.ui-form > button[type="submit"],
.auth-card form > button[type="submit"] {
  min-height: 48px;
  border-color: var(--trust-violet-strong);
  background: var(--trust-violet-strong);
  box-shadow: none;
  color: #ffffff;
}

.ui-form > button[type="submit"]:hover:not(:disabled),
.auth-card form > button[type="submit"]:hover:not(:disabled) {
  border-color: #49326f;
  background: #49326f;
  box-shadow: 0 6px 16px rgb(73 50 111 / 0.18);
  color: #ffffff;
  transform: none;
}

button.secondary,
.button.secondary,
.secondary,
[type="button"].secondary,
[type="submit"].secondary {
  border-color: var(--trust-line);
  background: var(--trust-surface);
  color: var(--trust-violet-strong);
}

button.secondary:hover:not(:disabled),
.button.secondary:hover,
.secondary:hover,
[type="button"].secondary:hover:not(:disabled),
[type="submit"].secondary:hover:not(:disabled) {
  border-color: var(--trust-violet);
  background: #eee7db;
  color: var(--trust-violet-strong);
}

button.danger,
.button.danger,
.danger,
[type="button"].danger,
[type="submit"].danger {
  border-color: var(--trust-danger);
  background: var(--trust-danger);
  color: #ffffff;
}

button.danger:hover:not(:disabled),
.button.danger:hover,
.danger:hover,
[type="button"].danger:hover:not(:disabled),
[type="submit"].danger:hover:not(:disabled) {
  border-color: #9f263d;
  background: #9f263d;
}

button:disabled,
.button[aria-disabled="true"],
[type="button"]:disabled,
[type="submit"]:disabled,
[type="reset"]:disabled {
  cursor: not-allowed;
  opacity: 0.56;
}

input,
select,
textarea {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  border: 1px solid var(--trust-line);
  border-radius: var(--trust-control-radius);
  background: var(--trust-surface);
  color: var(--trust-ink);
  padding: 8px 12px;
  transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

textarea {
  min-height: 104px;
  resize: vertical;
}

input::placeholder,
textarea::placeholder {
  color: var(--trust-muted);
  opacity: 1;
}

input[type="checkbox"],
input[type="radio"] {
  width: auto;
  min-height: 0;
  padding: 0;
  accent-color: var(--trust-violet);
}

input[type="hidden"] {
  display: none;
}

.ui-field {
  display: grid;
  min-width: 0;
  gap: 8px;
}

.ui-field > label {
  color: var(--trust-ink);
  font-size: 14px;
  font-weight: 650;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--trust-focus);
  outline-offset: 2px;
}

:where(input, select, textarea):focus-visible {
  border-color: var(--trust-violet);
  box-shadow: 0 0 0 4px var(--trust-focus-shadow);
  outline: 2px solid var(--trust-focus);
  outline-offset: 1px;
}

.password-field {
  position: relative;
  display: block;
  min-width: 0;
}

.password-field input {
  padding-inline-end: 88px;
}

.password-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  min-width: 40px;
  min-height: 40px;
  padding: 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--trust-violet-strong);
  font-size: 13px;
  font-weight: 700;
  transform: translateY(-50%);
}

.password-toggle:hover:not(:disabled) {
  border-color: transparent;
  background: #f0f3ff;
  color: var(--trust-violet-strong);
}

.skip-link {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 10;
  padding: 8px 12px;
  border-radius: var(--trust-control-radius);
  background: var(--trust-ink);
  color: #ffffff;
  transform: translateY(-180%);
  transition: transform 120ms ease;
}

.skip-link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
  box-shadow: 0 0 0 5px var(--trust-sage);
  transform: translateY(0);
}

::selection {
  background: rgba(23, 75, 255, 0.18);
  color: var(--trust-ink);
}

[hidden] {
  display: none !important;
}

@keyframes trust-reveal {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after,
  details::details-content {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 640px) {
  input,
  select,
  textarea {
    min-height: 44px;
    font-size: 16px;
  }

  button,
  .button,
  [type="button"],
  [type="submit"],
  [type="reset"] {
    min-height: 44px;
  }

  .password-toggle {
    min-height: 44px;
  }
}

/* @spec spec://modules/interfaces/FEAT-400-hosted-user-interface#contracts.design */
.ui-brand.isty-brand {
  flex: 0 0 auto;
  gap: 12px;
  padding: 0;
  min-height: var(--isty-target-min);
  color: var(--isty-on-dark);
  letter-spacing: 0;
}
.ui-brand.isty-brand::before {
  width: 56px;
  height: 32px;
  flex-basis: 56px;
  background: var(--isty-violet);
}
.isty-id-badge {
  padding: 4px 6px 4px 8px;
  border: 1px solid var(--isty-line-dark);
  border-radius: 5px;
  font: 600 12px/1 var(--isty-font-mono);
  letter-spacing: .16em;
}
body.ui-auth-page {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  background-color: var(--isty-ink);
  background-image: linear-gradient(var(--isty-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--isty-grid-line) 1px, transparent 1px);
  background-size: var(--isty-grid-step) var(--isty-grid-step);
  background-position: center -1px;
  color: var(--isty-on-dark);
  font-family: var(--isty-font);
}
.ui-auth-page .auth-header {
  position: relative;
  z-index: 2;
  min-height: 92px;
  padding: 24px 40px;
  border: 0;
  background: transparent;
}
.auth-header-actions {
  display: flex;
  align-items: center;
  gap: 28px;
}
.ui-auth-page .ui-locale-switch {
  gap: 4px;
  font: 11px/1 var(--isty-font-mono);
}
.ui-auth-page .ui-locale-switch a {
  position: relative;
  justify-content: center;
  width: 44px;
  min-height: 44px;
  padding: 0;
  border-radius: 8px;
  color: var(--isty-on-dark-muted);
  isolation: isolate;
}
.ui-auth-page .ui-locale-switch a::before {
  position: absolute;
  z-index: -1;
  inset: 6px 0;
  border-radius: inherit;
  content: "";
}
.ui-auth-page .ui-locale-switch a[aria-current="true"],
.ui-auth-page .ui-locale-switch a:hover {
  background: transparent;
  color: var(--isty-on-dark);
}
.ui-auth-page .ui-locale-switch a[aria-current="true"]::before,
.ui-auth-page .ui-locale-switch a:hover::before {
  background: var(--isty-line-dark-soft);
}
.auth-about {
  position: relative;
  color: var(--isty-on-dark-2);
  font-size: 14px;
}
.auth-about > summary {
  display: flex;
  align-items: center;
  min-height: 44px;
  list-style: none;
  cursor: pointer;
}
.auth-about > summary::-webkit-details-marker { display: none; }
.auth-about > p {
  position: absolute;
  right: 0;
  top: 100%;
  width: min(320px, calc(100vw - 40px));
  margin: 8px 0 0;
  padding: 20px;
  border: 1px solid var(--isty-line-dark);
  border-radius: var(--isty-r-panel);
  background: var(--isty-ink-3);
  color: var(--isty-on-dark);
}
.auth-orbits {
  position: absolute;
  inset: 0;
  overflow: clip;
  pointer-events: none;
}
.auth-orbits svg {
  position: absolute;
  left: 50%;
  top: 0;
  width: 1440px;
  height: 900px;
  max-width: none;
  transform: translateX(-50%);
}
.auth-orbit { stroke: var(--isty-on-dark); stroke-width: 1; }
.auth-orbit--inner { opacity: .07; }
.auth-orbit--middle { opacity: .14; }
.auth-orbit--outer { opacity: .08; }
.auth-planet--violet { fill: var(--isty-violet); }
.auth-planet--sage { fill: var(--isty-sage); }
.auth-planet--orange { fill: var(--isty-orange); }
.auth-planet--light { fill: var(--isty-on-dark); opacity: .5; }
.ui-auth-page .ui-auth-shell {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 1 0 auto;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 16px 20px 24px;
  animation: none;
}
.ui-auth-page .ui-auth-shell > .ui-section { width: 100%; max-width: 480px; }
.ui-auth-page .ui-auth-shell .auth-panel,
.ui-auth-page .ui-auth-shell .consent-panel {
  display: block;
  width: 100%;
  max-width: var(--isty-card-w);
  min-width: 0;
  padding: 32px 40px 28px;
  border: 0;
  border-radius: var(--isty-r-card);
  background: var(--isty-cream);
  color: var(--isty-text);
  box-shadow: var(--isty-shadow-card);
  letter-spacing: 0;
}
.ui-auth-page .ui-auth-shell .consent-panel { max-width: 480px; padding: 0; }
.ui-auth-page .ui-auth-consent .consent-content { padding: 32px 40px 28px; }
.ui-auth-page .auth-panel .ui-page-header { gap: 12px; }
.ui-auth-page .auth-panel .ui-page-header h1,
.ui-auth-page .consent-panel h1 {
  margin: 0;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.02em;
}
.ui-auth-page .auth-panel .ui-page-header p,
.ui-auth-page .auth-panel .ui-muted,
.ui-auth-page .auth-panel .ui-hint,
.ui-auth-page .auth-panel .ui-note { color: var(--isty-muted); }
.ui-auth-page .auth-panel .ui-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
}
.ui-auth-page .auth-panel > .ui-form { margin-top: 22px; }
.ui-auth-page .ui-registration-form > * { grid-column: 1; }
.ui-auth-page .auth-panel :is(.ui-field, .ui-form > label) { gap: 8px; }
.ui-auth-page .auth-panel .ui-form > label,
.ui-auth-page .auth-panel .ui-field > label {
  color: var(--isty-text);
  font-size: 14px;
  font-weight: 600;
}
.ui-auth-page .auth-panel :is(input, select, textarea) {
  min-height: var(--isty-control-h);
  border: 1px solid var(--isty-line-strong);
  border-radius: var(--isty-r-control);
  background: var(--isty-field);
  color: var(--isty-text);
  padding: 13px 16px;
  font-size: 16px;
}
.ui-auth-page .auth-panel :is(input, select, textarea):focus {
  border-color: var(--isty-violet-ink);
  outline: none;
  box-shadow: var(--isty-focus-ring);
}
.ui-auth-page .auth-panel :is(input[type="checkbox"], input[type="radio"]) {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  min-height: 0;
  padding: 0;
  accent-color: var(--isty-ink);
}
.ui-auth-page .auth-panel .check-row { min-height: 44px; align-items: center; }
.ui-auth-page .auth-panel .ui-registration-form { gap: 22px; }
.ui-auth-page .auth-panel .ui-grid.two { grid-template-columns: minmax(0, 1fr); }
.ui-auth-page .auth-panel :is(button, .button),
.ui-auth-page .consent-panel :is(button, .button) {
  min-height: var(--isty-control-h);
  padding: 12px 16px;
  border: 1px solid var(--isty-ink);
  border-radius: var(--isty-r-control);
  background: var(--isty-ink);
  color: var(--isty-cream);
  font-size: 16px;
  font-weight: 600;
  box-shadow: none;
}
.ui-auth-page .auth-panel :is(button, .button):hover,
.ui-auth-page .consent-panel :is(button, .button):hover {
  border-color: var(--isty-ink-hover);
  background: var(--isty-ink-hover);
  color: var(--isty-cream);
  box-shadow: none;
}
.ui-auth-page .auth-panel :is(.secondary, .password-toggle),
.ui-auth-page .consent-panel .secondary {
  min-height: var(--isty-control-h-alt);
  border-color: var(--isty-line-strong);
  background: transparent;
  color: var(--isty-text);
}
.ui-auth-page .auth-panel :is(.secondary, .password-toggle):hover,
.ui-auth-page .consent-panel .secondary:hover {
  border-color: var(--isty-line-strong);
  background: var(--isty-chip);
  color: var(--isty-text);
}
.ui-auth-page .auth-panel .password-toggle {
  min-width: 44px;
  min-height: 44px;
  padding: 0 10px;
  border: 0;
  font-size: 12px;
}
.ui-auth-page .auth-panel a { color: var(--isty-violet-ink); }
.ui-auth-page .auth-panel .button { color: var(--isty-cream); }
.ui-auth-page .auth-panel .auth-links a,
.ui-auth-page .auth-panel .auth-secondary a,
.ui-auth-page .auth-panel .auth-link-login,
.ui-auth-page .auth-panel .auth-field-recovery {
  display: inline-flex;
  align-items: center;
  min-height: var(--isty-target-min);
}
.ui-auth-page .auth-panel .auth-mfa-code {
  min-height: 60px;
  font: 600 24px/1 var(--isty-font-mono);
  text-align: center;
  letter-spacing: .35em;
}
.ui-auth-page .auth-panel .auth-mfa-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 22px;
  border: 0;
  border-radius: var(--isty-r-control);
  background: var(--isty-ink);
  color: var(--isty-violet);
}
.ui-auth-page .auth-address {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 22px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--isty-line);
  color: var(--isty-muted);
  font-size: 12px;
  line-height: 1.5;
}
.auth-address svg { flex: 0 0 14px; color: var(--isty-sage-ink); }
.auth-address strong { font: 500 11px/1.5 var(--isty-font-mono); overflow-wrap: anywhere; }
.ui-auth-page .auth-panel summary { min-height: var(--isty-target-min); }
.ui-auth-page .ui-auth-recovery .auth-panel { max-width: 480px; }
.ui-auth-page .auth-error-code { margin: 0; color: var(--isty-violet-ink); font: 500 48px/1 var(--isty-font-mono); }
.ui-auth-page .auth-footer {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  margin: 0;
  padding: 18px 40px 26px;
  border: 0;
  color: var(--isty-on-dark-muted);
  font: 400 11px/1.5 var(--isty-font-mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.ui-auth-page :is(.auth-header, .auth-footer) :focus-visible {
  outline: 2px solid var(--isty-violet);
  outline-offset: 4px;
  box-shadow: var(--isty-focus-ring-dark);
}
.auth-footer-notes,
.auth-footer-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
}
.ui-auth-page .auth-panel :focus-visible,
.ui-auth-page .consent-panel :focus-visible {
  outline: 2px solid var(--isty-violet-ink);
  outline-offset: 3px;
  box-shadow: var(--isty-focus-ring);
}
@media (max-width: 1180px) {
  .auth-orbits { display: none; }
}
@media (max-width: 620px) {
  .auth-about { display: none; }
  .ui-auth-page .auth-header { min-height: 80px; padding: 18px 20px; gap: 12px; }
  .auth-header-actions { gap: 8px; }
  .auth-about { font-size: 12px; }
  .ui-auth-page .ui-auth-shell { align-items: flex-start; padding: 16px 12px 20px; }
  .ui-auth-page .ui-auth-shell .auth-panel,
  .ui-auth-page .ui-auth-consent .consent-content { padding: 28px 22px; }
  .ui-auth-page .auth-panel .ui-page-header h1,
  .ui-auth-page .consent-panel h1 { font-size: 28px; }
  .ui-auth-page .auth-footer { padding: 20px; justify-content: flex-start; gap: 8px 20px; }
}
@media (max-width: 480px) {
  .auth-header-actions { flex-wrap: wrap; justify-content: flex-end; }
  .auth-about { order: 2; }
  .auth-about > summary { min-height: 44px; }
  .ui-auth-page .auth-header { align-items: flex-start; }
}

/* @spec spec://modules/interfaces/FEAT-400-hosted-user-interface#contracts.design */
.ui-auth-page .ui-auth-shell { flex-direction: column; }
.ui-auth-page .auth-panel > .ui-page-header { margin: 0; }
.ui-auth-page .auth-panel > * + * { margin-top: 22px; }
.ui-auth-page .auth-panel .ui-form { gap: 12px; }
.ui-auth-page .auth-panel .ui-page-header { display: flex; flex-direction: column; gap: 10px; }
.ui-auth-page .auth-panel .ui-page-header p { margin: 0; font-size: 15px; line-height: 1.5; }
.ui-auth-page .auth-panel .ui-eyebrow,
.auth-step-context { font: 500 11px/1.5 var(--isty-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.auth-step-context { color: var(--isty-on-dark-muted); }
.auth-service-chip { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--isty-line); border-radius: 14px; background: var(--isty-chip); }
.auth-service-chip img { object-fit: contain; }
.auth-service-chip span { color: var(--isty-muted); font: 400 12px/1.5 var(--isty-font-mono); overflow-wrap: anywhere; }
.auth-service-identity { display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: center; min-width: 0; gap: 12px; }
.auth-service-chip .auth-service-affiliation { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; margin-left: auto; color: var(--isty-sage-ink); font: 600 10.5px/1.5 var(--isty-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.auth-service-affiliation .auth-icon { width: 14px; height: 14px; flex-basis: 14px; }
.ui-auth-page .auth-panel .auth-account-pill { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; min-height: 44px; margin-top: 0; padding: 8px 12px; border-radius: 999px; background: var(--isty-chip); color: var(--isty-text); font: 400 12px/1.5 var(--isty-font-mono); overflow-wrap: anywhere; text-decoration: none; }
.auth-method-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.auth-method-grid > :only-child { grid-column: 1 / -1; }
.auth-icon { flex: 0 0 18px; }
.auth-mfa-icon .auth-icon { width: 24px; height: 24px; }
.ui-auth-page .auth-panel .auth-method-grid .button { min-height: 48px; margin: 0; padding: 10px 12px; color: var(--isty-text); font-size: 15px; }
.ui-auth-page .auth-panel .button.secondary { color: var(--isty-text); }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; color: var(--isty-muted); font: 400 11px/1.5 var(--isty-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.auth-divider::before, .auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--isty-line); }
.ui-auth-page .auth-panel .auth-more-methods { margin-top: 12px; border: 0; padding: 0; }
.auth-more-methods .auth-links { display: flex; flex-direction: column; }
.auth-address-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding-top: 10px; border-top: 1px solid var(--isty-line); }
.ui-auth-page .auth-panel .auth-address-row .auth-address { flex: 1; margin: 0; padding: 0; border: 0; }
.auth-address-row > a { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; }
.auth-field-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.auth-field-heading label { font-size: 14px; font-weight: 600; }
.auth-field-heading a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
.ui-auth-page .auth-panel .auth-code-input { height: 60px; min-width: 0; padding: 0 0 0 .38em; border-radius: 12px; background-color: var(--isty-field); background-image: repeating-linear-gradient(90deg, transparent 0, transparent calc(16.666% - 1px), var(--isty-line-strong) calc(16.666% - 1px), var(--isty-line-strong) 16.666%); font: 600 24px/1 var(--isty-font-mono); letter-spacing: .92em; text-align: center; }
.auth-resend-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.ui-auth-page .auth-panel .auth-text-button { min-height: 44px; width: auto; margin: 0; padding: 0; border: 0; background: transparent; color: var(--isty-violet-ink); font-size: 13px; text-align: left; box-shadow: none; }
.ui-auth-page .auth-panel .auth-text-button:disabled { color: var(--isty-muted); opacity: 1; }
.auth-mail-help { position: relative; font-size: 13px; }
.auth-mail-help summary { display: flex; align-items: center; color: var(--isty-violet-ink); text-decoration: underline; cursor: pointer; white-space: nowrap; }
.auth-mail-help[open] { flex: 1; }
.auth-mail-help p { line-height: 1.5; }
.auth-mail-help a { display: flex; align-items: center; min-height: 44px; }
.auth-trust-note { display: flex; gap: 10px; margin: 10px 0 0; padding: 14px 16px; border-radius: 14px; background: var(--isty-chip); color: var(--isty-muted); font-size: 13px; line-height: 1.5; }
.ui-auth-page .auth-panel .auth-restart { margin: 10px 0 0; font-size: 12px; }
.auth-restart a { display: inline-flex; align-items: center; min-height: 44px; }
.auth-verified-label { color: var(--isty-sage-ink); font: 500 11px/1.5 var(--isty-font-mono); letter-spacing: .08em; text-transform: uppercase; }
.auth-service-connector { stroke: var(--isty-violet); stroke-width: 1.5; }
.auth-satellite { position: relative; margin-top: 10px; padding: 16px; border: 1px solid var(--isty-line-dark); border-radius: 16px; background: var(--isty-surface-dark); color: var(--isty-on-dark); }
.auth-satellite.is-selected { border-color: var(--isty-violet); background: rgba(185,166,242,.09); box-shadow: var(--isty-shadow-sat-lit); }
.auth-satellite-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.auth-satellite img { object-fit: contain; }
.auth-satellite-heading span { font: 400 10px/1.4 var(--isty-font-mono); color: var(--isty-on-dark-muted); overflow-wrap: anywhere; }
.auth-satellite p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 12px 0 0; font: 400 11px/1.5 var(--isty-font-mono); color: var(--isty-on-dark-muted); }
.auth-satellite-request { position: absolute; top: -10px; left: 14px; padding: 2px 8px; border-radius: 5px; background: var(--isty-violet); color: var(--isty-ink); font: 600 10px/1.4 var(--isty-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.auth-service-pills { display: none; max-width: 800px; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 22px; }
.auth-service-pills--compact { display: flex; }
.auth-service-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; max-width: 100%; padding: 8px 18px; border: 1px solid var(--isty-line-dark); border-radius: 999px; background: var(--isty-surface-dark); color: var(--isty-on-dark); font-size: 13px; overflow-wrap: anywhere; }
.auth-service-pill img { object-fit: contain; }
.auth-service-pill.is-selected { border-color: var(--isty-violet); background: rgba(185,166,242,.09); box-shadow: var(--isty-shadow-sat-lit); }
.auth-orbital-pill { display: flex; align-items: center; justify-content: center; min-height: 32px; padding: 3px 12px; border: 1px solid var(--isty-line-dark); border-radius: 999px; background: var(--isty-surface-dark); color: var(--isty-on-dark); font-size: 13px; }
.auth-orbital-pill img { object-fit: contain; }
.auth-orbital-pill.is-selected { border-color: var(--isty-violet); background: rgba(185,166,242,.09); box-shadow: var(--isty-shadow-sat-lit); }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.ui-auth-page .auth-panel > * + .ui-page-header { margin-top: 22px; }
.auth-code-field { position: relative; }
.auth-code-cells { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; height: 60px; pointer-events: none; }
.auth-code-cell { display: grid; place-items: center; min-width: 0; border: 1px solid var(--isty-line-strong); border-radius: 12px; background: var(--isty-field); color: var(--isty-text); font: 600 24px/1 var(--isty-font-mono); }
.auth-code-field:has(input:focus-visible) .auth-code-cell.is-current { border-color: var(--isty-violet-ink); box-shadow: var(--isty-focus-ring); }
.auth-code-field:has(input[aria-invalid=true]) .auth-code-cell { border-color: var(--isty-err-fg); }
.ui-auth-page .auth-panel .auth-code-field input.auth-code-input,
.isty-console-auth .console-auth-card .auth-code-field input.auth-code-input,
.ui-account-page .auth-code-field input.auth-code-input { position: absolute; inset: 0; width: 100%; height: 60px; padding: 0; border: 0; background: transparent; color: transparent; caret-color: transparent; letter-spacing: normal; outline: none; box-shadow: none; }
.auth-state-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--isty-chip); color: var(--isty-violet-ink); font: 600 24px/1 var(--isty-font-mono); }
.ui-auth-page .auth-state-panel .auth-error-code { display: flex; flex-wrap: wrap; gap: 8px; font: 400 12px/1.5 var(--isty-font-mono); color: var(--isty-muted); overflow-wrap: anywhere; }
.auth-radio-list { display: grid; gap: 10px; border: 0; margin: 0; padding: 0; }
.auth-radio-list legend { padding: 0; margin-bottom: 12px; font-size: 14px; font-weight: 600; }
.auth-radio-card { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border: 1px solid var(--isty-line-strong); border-radius: 12px; cursor: pointer; }
.auth-radio-card:has(input:checked) { border-color: var(--isty-violet-ink); background: var(--isty-chip); }
.auth-radio-card input { flex: 0 0 18px; width: 18px; height: 18px; min-height: 0; margin-top: 3px; accent-color: var(--isty-violet-ink); }
.auth-radio-card strong { display: block; font-size: 14px; }
.auth-radio-card small { display: block; margin-top: 4px; color: var(--isty-muted); font-size: 12px; line-height: 1.5; }
.auth-other-methods { margin-top: 10px; }
.ui-auth-page .consent-bridge { display: flex; align-items: center; justify-content: center; gap: 20px; padding-bottom: 22px; }
.consent-service-mark { max-width: 145px; padding: 12px; border: 1px solid var(--isty-line); border-radius: 14px; font-size: 16px; overflow-wrap: anywhere; }
.consent-service-mark img { max-width: 100%; object-fit: contain; }
.consent-bridge > span { color: var(--isty-muted); }
.consent-bridge .isty-brand { padding: 12px; border: 1px solid var(--isty-line); border-radius: 14px; }
.consent-permission-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.consent-permission-columns h2 { font: 600 11px/1.5 var(--isty-font-mono); text-transform: uppercase; letter-spacing: .08em; }
.consent-permission-columns ul { display: grid; gap: 12px; padding-left: 18px; font-size: 13px; line-height: 1.5; }
.consent-permission-columns .consent-will-receive h2 { color: var(--isty-sage-ink); }
.consent-permission-columns .consent-wont-receive { color: var(--isty-muted); }
.auth-password-requirements { display: grid; gap: 6px; margin: 0; padding-left: 20px; color: var(--isty-muted); font-size: 13px; line-height: 1.5; }
.auth-password-requirements li[data-met=true] { color: var(--isty-sage-ink); }
.auth-password-length { width: 100%; height: 8px; }
.auth-password-length::-webkit-meter-bar { border: 0; border-radius: 5px; background: var(--isty-chip); }
.auth-password-length::-webkit-meter-optimum-value { border-radius: 5px; background: var(--isty-sage-ink); }
.consent-bridge .isty-brand::before { background: var(--isty-ink); }
.consent-bridge .isty-id-badge { color: var(--isty-ink); border-color: var(--isty-line-strong); }
.auth-mfa-alternatives { display: grid; gap: 8px; padding-top: 20px; border-top: 1px solid var(--isty-line); }
.auth-mfa-alternatives > p { margin: 0; color: var(--isty-muted); }
.auth-mfa-alternatives > a { display: flex; align-items: center; min-height: 48px; padding: 10px 14px; border: 1px solid var(--isty-line-strong); border-radius: 12px; color: var(--isty-text); font-size: 14px; font-weight: 600; text-decoration: none; }
.auth-back-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
.ui-auth-page .auth-panel .auth-backup-input { font: 500 20px/1.5 var(--isty-font-mono); letter-spacing: .1em; text-align: center; }
@media (max-width: 1180px) { .auth-service-pills { display: flex; } }
@media (max-height: 800px) {
  .auth-orbits foreignObject, .auth-orbits .auth-service-connector { display: none; }
  .auth-service-pills { display: flex; }
}
@media (max-width: 620px) {
  .auth-service-pills { padding: 18px 0 0; margin: 0 0 20px; border-top: 1px solid var(--isty-line-dark); border-radius: 50% 50% 0 0; }
  .ui-auth-page .ui-auth-shell { align-items: center; justify-content: flex-start; }
  .auth-step-context { display: none; }
  .auth-service-pill { padding: 8px 12px; font-size: 12px; }
  .consent-permission-columns { grid-template-columns: 1fr; }
  .ui-auth-page .auth-panel .auth-code-input { letter-spacing: .65em; }
}

/* @spec spec://modules/admin/FEAT-501-admin-console#contracts.design */
.isty-console { --trust-bg: var(--isty-paper); --trust-surface: var(--isty-field); --trust-shadow: none; --trust-radius: 16px; --trust-control-radius: 12px; background: var(--isty-paper); }
.isty-console .admin-layout { --admin-sidebar-width: 256px; }
.isty-console .admin-sidebar { background: var(--isty-ink); border: 0; color: var(--isty-on-dark); }
.isty-console .sidebar-inner { padding: 16px 14px 68px; }
/* @spec spec://modules/admin/FEAT-501-admin-console#contracts.account-layout */
@media (min-width: 901px) {
  .isty-console .admin-sidebar { overflow: hidden; }
  .isty-console .sidebar-inner { height: calc(100vh - 68px); height: calc(100dvh - 68px); min-height: 0; padding-bottom: 16px; overflow: hidden; }
  .isty-console .sidebar-inner > .brand, .isty-console .sidebar-inner > .sidebar-boundary, .isty-console .sidebar-footer { flex-shrink: 0; }
  .isty-console .sidebar-inner > .admin-nav { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; padding-bottom: 8px; scrollbar-color: var(--isty-on-dark-muted) transparent; }
  .isty-console .sidebar-inner > .admin-nav > * { flex-shrink: 0; }
}
.isty-console .brand, .isty-console-auth .brand { min-height: 40px; padding: 4px 10px; gap: 10px; flex-wrap: nowrap; color: var(--isty-on-dark); }
.isty-console .isty-console-brand::before, .isty-console-auth .isty-console-brand::before { display: block; flex: 0 0 48px; width: 48px; height: 28px; background: var(--isty-violet); mask: url('/static/isty-logo.svg') center / contain no-repeat; content: ''; }
.console-brand-badge { padding: 3px 6px; border: 1px solid rgba(245, 240, 230, .3); border-radius: 6px; color: var(--isty-on-dark); font: 600 10.5px/1.3 var(--isty-font-mono); letter-spacing: .16em; text-transform: uppercase; }
.isty-console .sidebar-boundary { display: flex; align-items: start; gap: 8px; margin: 12px 10px 18px; padding: 10px; border: 0; border-radius: 10px; background: rgba(245, 240, 230, .06); color: var(--isty-on-dark-2); font: 10.5px/1.5 var(--isty-font-mono); letter-spacing: .06em; overflow-wrap: anywhere; }
.console-environment-dot { flex: 0 0 6px; width: 6px; height: 6px; margin-top: 5px; border-radius: 50%; background: var(--isty-sage); }
.isty-console .admin-nav { gap: 8px; }
.isty-console .nav-group { border: 0; background: transparent; }
.isty-console .nav-group > summary { min-height: 32px; margin: 4px 0; padding: 10px 10px 6px; border: 0; background: transparent; color: var(--isty-on-dark-muted); font: 10.5px/1.5 var(--isty-font-mono); letter-spacing: .14em; text-transform: uppercase; }
.isty-console .nav-menu { display: grid; gap: 0; padding: 0; background: transparent; }
.isty-console .nav-link { display: flex; align-items: center; min-height: 36px; padding: 8px 10px; border: 0; border-radius: 10px; color: var(--isty-on-dark-2); font-size: 14px; text-decoration: none; box-shadow: none; }
.isty-console .nav-link:hover { background: rgba(245, 240, 230, .06); color: var(--isty-on-dark); }
.isty-console .nav-link.is-current, .isty-console .nav-link[aria-current] { background: rgba(185, 166, 242, .16); color: var(--isty-on-dark); font-weight: 600; box-shadow: none; }
.isty-console .nav-group.is-current-group { background: transparent; border: 0; box-shadow: none; }
.isty-console .sidebar-footer { display: grid; gap: 6px; margin-top: auto; padding: 16px 10px 0; border-top: 1px solid var(--isty-line-dark); color: var(--isty-on-dark-2); }
.isty-console .sidebar-footer-label { display: none; }
.isty-console .sidebar-footer a { min-height: 36px; display: flex; align-items: center; color: var(--isty-on-dark); overflow-wrap: anywhere; text-decoration: none; }
.isty-console .sidebar-footer a[aria-current] { background: rgba(185, 166, 242, .16); border-radius: 10px; }
.console-admin-role { color: var(--isty-on-dark-muted); font: 10.5px/1.4 var(--isty-font-mono); }
.isty-console .console-mobile-account { display: none; }
.isty-console .admin-main { min-width: 0; margin-left: var(--admin-sidebar-width); }
.isty-console .topbar.admin-header { position: static; height: 0; min-height: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.isty-console .admin-header-leading, .isty-console .topbar-account { display: none; }
.isty-console .locale-switcher { position: fixed; z-index: 25; left: 24px; bottom: 16px; background: rgba(245, 240, 230, .06); border-color: var(--isty-line-dark); }
.isty-console .locale-switcher a { min-width: 40px; min-height: 36px; color: var(--isty-on-dark-2); }
.isty-console .locale-switcher a[aria-current] { background: rgba(185, 166, 242, .18); color: var(--isty-on-dark); }
.isty-console .admin-main > .container { width: 100%; max-width: none; padding: 28px 40px 56px; }
.isty-console .page-header { gap: 0; margin: 0 0 18px; }
.isty-console .page-header-kicker { margin-bottom: 6px; color: var(--isty-muted); font: 10.5px/1.4 var(--isty-font-mono); letter-spacing: .14em; text-transform: uppercase; }
.console-heading-line { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.console-heading-line > .help-wrap { margin: 0; }
.isty-console .page-header-row > div:not(.button-row) { min-width: 0; max-width: 100%; }
.isty-console .page-header-row > .button-row { margin-left: auto; }
@media (max-width: 700px) { .console-heading-line > .help-wrap[open] { flex: 1 1 100%; } .console-heading-line > .help-wrap > .help-bubble { position: static; width: 100%; max-width: none; margin-top: 8px; } }
.isty-console .page-heading { margin: 0; font-size: 34px; line-height: 1.15; font-weight: 700; letter-spacing: -.03em; }
.isty-console .page-lead { max-width: 760px; color: var(--isty-muted); font-size: 14px; line-height: 1.5; }
.isty-console .card { padding: 20px; border: 1px solid var(--isty-line); border-radius: 16px; background: var(--isty-field); box-shadow: none; }
.isty-console h2 { font-size: 18px; letter-spacing: -.015em; }
.isty-console h3 { font-size: 15px; }
.isty-console :is(.admin-main, .admin-sidebar) :is(button, .button) { min-height: 40px; padding: 10px 16px; border: 1px solid transparent; border-radius: 12px; background: var(--isty-ink); color: var(--isty-cream); font-size: 14px; font-weight: 600; box-shadow: none; }
.isty-console :is(.admin-main, .admin-sidebar) :is(button, .button):hover { background: var(--isty-ink-hover); }
.isty-console :is(.admin-main, .admin-sidebar) :is(button, .button).secondary { background: transparent; border-color: var(--isty-line-strong); color: var(--isty-text); }
.isty-console :is(.admin-main, .admin-sidebar) :is(button, .button).danger { background: transparent; border-color: #de9dab; color: var(--isty-err-fg); }
.isty-console :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) { min-height: 40px; border-radius: 12px; border-color: var(--isty-line-strong); background: white; color: var(--isty-text); font-size: 14px; }
.isty-console :is(.table-wrap, .ui-table-wrap) { min-width: 0; max-width: 100%; overflow-x: auto; }
.isty-console table { width: 100%; border-collapse: collapse; font-size: 14px; }
.isty-console th { color: var(--isty-muted); font: 10.5px/1.5 var(--isty-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.isty-console :is(th, td) { padding: 14px 16px; border-color: var(--isty-line); }
.isty-console :is(code, pre) { font-family: var(--isty-font-mono); }
.isty-console pre { min-width: 0; max-width: 100%; padding: 18px; border-radius: 12px; background: var(--isty-ink); color: var(--isty-on-dark); overflow: auto; }
.isty-console :is(.status-pill, .pill) { font: 10px/1.4 var(--isty-font-mono); letter-spacing: .08em; text-transform: uppercase; border: 0; border-radius: 999px; }
.isty-console :is(.status-pill, .pill).ok { background: var(--isty-ok-bg); color: var(--isty-ok-fg); }
.isty-console :is(.status-pill, .pill).warn { background: var(--isty-warn-bg); color: var(--isty-warn-fg); }
.isty-console :is(.status-pill, .pill):is(.error, .err) { background: var(--isty-err-bg); color: var(--isty-err-fg); }
.isty-console :is(.status-pill, .pill).info { background: var(--isty-info-bg); color: var(--isty-info-fg); }
.isty-console :is(.status-pill, .pill).off { background: var(--isty-off-bg); color: var(--isty-off-fg); }
.isty-console :is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--isty-violet-ink); outline-offset: 3px; }
.isty-console .admin-sidebar :is(a, button, summary):focus-visible { outline-color: var(--isty-violet); }
.isty-console [hidden] { display: none !important; }
.isty-console .admin-main .tabs { gap: 8px; padding: 0 0 16px; border: 0; background: none; }
.isty-console .admin-main :is(button, a).tab-button { display: inline-flex; align-items: center; min-height: 36px; padding: 8px 14px; border: 1px solid transparent; border-radius: 9px; background: transparent; color: var(--isty-muted); font-weight: 500; text-decoration: none; }
.isty-console .admin-main :is(button, a).tab-button[aria-selected=true], .isty-console .admin-main a.tab-button[aria-current=page] { border-color: var(--isty-line); background: var(--isty-field); color: var(--isty-text); font-weight: 600; }
.isty-console .console-table-panel { max-width: 100%; overflow-x: auto; border: 1px solid var(--isty-line); border-radius: 16px; background: var(--isty-field); }
.isty-console .console-table-panel :is(th, td) { padding: 14px 18px; border-bottom: 1px solid var(--isty-line); vertical-align: middle; }
.isty-console .console-table-panel tbody tr:last-child td { border-bottom: 0; }
.isty-console .console-table-panel tbody tr:hover { background: rgba(185, 166, 242, .07); }
.console-audit-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 18px; border: 1px solid var(--isty-line); border-radius: 16px; background: var(--isty-field); }
.console-audit-summary > div { display: grid; align-content: start; gap: 6px; padding: 16px 18px; }
.console-audit-summary > div + div { border-left: 1px solid var(--isty-line); }
.console-audit-summary span { font-family: var(--isty-font-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--isty-muted); }
.console-audit-summary b { font-size: 24px; font-variant-numeric: tabular-nums; }
.console-audit-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-bottom: 18px; }
.console-audit-filters > label { flex: 1 1 150px; min-width: 0; }
.console-audit-filters > a { display: inline-flex; align-items: center; min-height: 40px; }
.isty-console .console-audit-table { min-width: 760px; }
.isty-console .console-audit-table td { vertical-align: top; }
.console-audit-table td:first-child { white-space: nowrap; font-family: var(--isty-font-mono); font-size: 12px; }
.console-audit-table td:nth-child(2) { min-width: 240px; width: 45%; }
.console-audit-table td:nth-child(3) { max-width: 180px; overflow-wrap: anywhere; }
.console-audit-details { margin-top: 8px; }
.console-audit-details > summary { min-height: 36px; padding: 8px 0; font-size: 12px; color: var(--isty-violet-ink); }
.console-audit-details .details { display: block; margin: 12px 0; font-size: 12px; }
.console-audit-details .details dd { margin: 4px 0 12px; overflow-wrap: anywhere; }
.console-audit-metadata { max-width: 100%; margin: 0; padding: 14px 16px; border-radius: 10px; background: var(--isty-ink); color: var(--isty-cream); font-family: var(--isty-font-mono); font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
.console-guide-header { display: flex; flex-wrap: wrap; align-items: start; gap: 16px 24px; }
.console-guide-header .page-header { flex: 1 1 450px; }
.console-guide-picker { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding-top: 25px; margin-bottom: 20px; max-width: 100%; }
.isty-console .console-guide-picker label { display: block; font-size: 13px; }
.isty-console .console-guide-picker select { width: min(260px, 100%); min-width: 0; }
.console-guide-route { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(165px, 100%), 1fr)); gap: 10px; margin: 0 0 18px; padding: 0; list-style: none; }
.console-guide-route li { display: flex; flex-direction: column; gap: 8px; padding: 16px; border: 1px solid var(--isty-line); border-radius: 12px; background: var(--isty-field); }
.console-guide-route li > span { font: 600 12px var(--isty-font-mono); color: var(--isty-violet-ink); }
.console-guide-route strong { font-size: 15px; }
.console-guide-route small { color: var(--isty-muted); font-size: 13px; line-height: 1.5; }
.console-settings-header { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: 16px; }
.console-settings-header > button { margin-bottom: 20px; }
.console-settings-layout { display: grid; grid-template-columns: 180px minmax(0, 1fr); align-items: start; gap: 24px; }
.console-settings-nav { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 4px; }
.console-settings-nav a { display: flex; align-items: center; min-height: 40px; padding: 8px 12px; border-radius: 10px; color: var(--isty-muted); font-size: 14px; text-decoration: none; }
.console-settings-nav a:hover { background: var(--isty-field); color: var(--isty-text); }
.console-settings-nav a[href="#danger"] { color: var(--isty-err-fg); }
.isty-console .console-settings-form { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.isty-console .console-settings-form > :is(.card, .cardless-note) { width: 100%; max-width: none; margin: 0; scroll-margin-top: 24px; }
.isty-console .console-settings-form > :is(#basic, #danger) { max-width: none; }
.console-settings-form > .card > h2 { margin-top: 0; }
.console-settings-form > .card:target { outline: 2px solid var(--isty-violet-ink); outline-offset: 3px; }
.isty-console label.console-setting-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding: 14px 0; margin: 0; border-bottom: 1px solid var(--isty-line); }
.console-setting-row > span:first-child { display: grid; gap: 5px; }
.console-setting-row strong { font-size: 14px; font-weight: 600; }
.console-setting-row small { color: var(--isty-muted); font-size: 13px; line-height: 1.5; }
.console-switch-target { display: grid; place-items: center; flex: 0 0 44px; min-height: 40px; }
.console-settings-form .console-setting-row + label:not(.console-setting-row) { margin-top: 16px; }
.console-settings-form .form-grid { margin: 16px 0; }
.isty-console .console-settings-methods details > summary { min-height: 40px; }
.console-settings-form #danger { border-color: #de9dab; }
.console-account-profile { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.console-account-profile .console-avatar { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; background: var(--isty-ink); color: var(--isty-violet); font-size: 18px; }
.console-account-profile > div { flex: 1 1 220px; min-width: 0; overflow-wrap: anywhere; }
.console-account-profile b { font-size: 18px; }
.console-account-profile p { margin: 4px 0 0; color: var(--isty-muted); font-size: 13px; }
.console-setup-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr); align-items: start; gap: 20px; margin-bottom: 20px; }
.console-setup-layout > *, .console-setup-aside { min-width: 0; }
.console-setup-layout > section > form { display: grid; gap: 16px; }
.console-setup-aside { display: grid; gap: 16px; }
.console-setup-layout h2 { margin-top: 0; }
.console-setup-layout form > .form-grid { margin: 0; }
.console-setup-layout form > .technical-details { margin-top: 0; }
.isty-console .card.console-empty-note { border-style: dashed; background: transparent; }
.console-empty-note p { color: var(--isty-muted); font-size: 13px; line-height: 1.5; }
.console-section-disclosure { margin-top: 18px; }
.console-section-disclosure > summary, .console-action-details > summary { display: flex; align-items: center; min-height: 40px; cursor: pointer; color: var(--isty-violet-ink); font-size: 14px; font-weight: 600; }
.console-section-disclosure > summary::before, .console-action-details > summary::before { content: '▸'; margin-right: 8px; }
.console-section-disclosure[open] > summary::before, .console-action-details[open] > summary::before { content: '▾'; }
.console-section-disclosure > form, .console-section-disclosure > .table-scroller { margin-top: 16px; }
.console-action-details { min-width: 180px; max-width: 380px; }
.console-action-details > form { margin: 14px 0; }
.console-action-details > form + form { padding-top: 14px; border-top: 1px solid var(--isty-line); }
.console-action-details .details { display: block; font-size: 12px; }
.console-action-details .details dd { margin: 4px 0 12px; overflow-wrap: anywhere; }
.console-action-details :is(code, pre) { overflow-wrap: anywhere; }
.console-action-details pre { white-space: pre-wrap; }
.console-signing-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.console-signing-summary p { margin: 0; color: var(--isty-muted); font-size: 13px; }
.console-signing-summary b { display: block; margin: 6px 0; font-size: 18px; }
.console-crypto-prerequisites { margin: 20px 0; }
.isty-console .console-crypto-prerequisites > h2 { margin: 0 0 10px; color: var(--isty-muted); font: 10.5px/1.5 var(--isty-font-mono); }
.console-crypto-checklist { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 10px; }
.console-crypto-checklist > div { padding: 16px; border: 1px solid var(--isty-line); border-radius: 12px; background: var(--isty-field); }
.console-crypto-checklist b { font-size: 14px; }
.console-crypto-checklist p { margin: 6px 0 0; color: var(--isty-muted); font-size: 13px; line-height: 1.5; }
.console-panel-title { margin: 18px 18px 8px; }
.console-setup-layout .card { margin: 0; }
.console-setup-layout .console-document-form { gap: 18px; }
.console-document-form > :is(h2, p) { margin: 0; }
.console-document-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.console-document-form legend { margin-bottom: 12px; color: var(--isty-muted); font: 10.5px/1.5 var(--isty-font-mono); text-transform: uppercase; letter-spacing: .1em; }
.console-document-list ul { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.console-document-list li + li { border-top: 1px solid var(--isty-line); }
.console-document-list a { display: block; min-height: 44px; padding: 12px 0; font-size: 14px; text-decoration: none; }
.console-document-list a:hover { text-decoration: underline; }
.console-document-list .console-table-sub { font-family: var(--isty-font-mono); font-size: 10px; overflow-wrap: anywhere; }
.console-template-locale { display: inline-flex; gap: 4px; padding: 4px; border-radius: 10px; background: var(--isty-chip); }
.isty-console .admin-main .console-template-locale button { min-width: 44px; padding: 8px; border: 0; border-radius: 7px; background: transparent; color: var(--isty-muted); font: 600 12px var(--isty-font-mono); }
.isty-console .admin-main .console-template-locale button[aria-pressed=true] { background: var(--isty-field); color: var(--isty-text); }
.console-mail-layout { display: grid; grid-template-columns: 180px minmax(0, 1.3fr) minmax(250px, 1fr); grid-template-areas: 'events editor preview' 'events actions preview' 'events history preview'; align-items: start; gap: 20px; }
.console-mail-layout > * { min-width: 0; }
.console-mail-layout > .card { margin: 0; }
.isty-console .card.console-template-events { grid-area: events; position: sticky; top: 24px; display: grid; gap: 4px; padding: 8px; }
.console-template-events a { display: grid; justify-items: start; align-content: center; gap: 6px; min-height: 44px; padding: 10px 12px; border-radius: 10px; color: var(--isty-text); font-size: 14px; text-decoration: none; overflow-wrap: anywhere; }
.console-template-events a:hover { background: var(--isty-chip); }
.console-template-events a[aria-current] { background: var(--isty-ink); color: var(--isty-cream); }
.isty-console .console-template-events a[aria-current] .status-pill { background: var(--isty-violet); color: var(--isty-ink); }
.console-mail-editor { grid-area: editor; }
.console-mail-actions { grid-area: actions; }
.console-mail-history { grid-area: history; }
.console-mail-preview { grid-area: preview; position: sticky; top: 24px; }
.isty-console .console-mail-preview > h2 { margin: 0 0 10px; color: var(--isty-muted); font: 10.5px/1.5 var(--isty-font-mono); }
.console-mail-editor > form { display: grid; gap: 14px; }
.console-mail-editor > form > .form-actions { margin: 0; }
.console-mail-variables { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.console-mail-variables span { color: var(--isty-muted); font-size: 12px; }
.isty-console .admin-main .console-mail-variables button { min-height: 36px; padding: 6px 10px; border-radius: 7px; background: var(--isty-info-bg); color: var(--isty-violet-ink); font: 12px var(--isty-font-mono); }
.mail-template-preview { max-width: 100%; overflow-wrap: anywhere; white-space: pre-wrap; }
.definition-list { display: grid; grid-template-columns: minmax(7rem, .2fr) minmax(0, 1fr); gap: 8px 16px; }
.definition-list dt { color: var(--isty-muted); font-weight: 600; }
.definition-list dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 1280px) { .console-mail-layout { grid-template-columns: 180px minmax(0, 1fr); grid-template-areas: 'events editor' 'events preview' 'events actions' 'events history'; } .console-mail-preview { position: static; } }
@media (max-width: 900px) { .console-mail-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'events' 'editor' 'preview' 'actions' 'history'; } .isty-console .card.console-template-events { position: static; grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); } }
@media (max-width: 600px) { .definition-list { grid-template-columns: minmax(0, 1fr); gap: 4px; } }
@media (max-width: 1050px) { .console-setup-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 1150px) { .console-settings-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; } .console-settings-nav { position: static; flex-direction: row; flex-wrap: wrap; } }
.isty-console .tab-button { text-decoration: none; }
.isty-console .copy-button:not([data-copy-bound]) { display: none; }
@media (max-width: 700px) { .console-audit-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .console-audit-summary > div:nth-child(3) { border-left: 0; } .console-audit-summary > div:nth-child(n+3) { border-top: 1px solid var(--isty-line); } }
.isty-console .console-row-link { display: flex; align-items: center; gap: 14px; min-width: 200px; min-height: 40px; color: var(--isty-text); text-decoration: none; }
.isty-console .console-row-link:hover strong { color: var(--isty-violet-ink); text-decoration: underline; text-underline-offset: 3px; }
.console-avatar { flex: 0 0 36px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--isty-violet); color: var(--isty-ink); font-size: 12px; font-weight: 600; }
.console-service-logo { display: grid; place-items: center; flex: 0 0 68px; width: 68px; height: 36px; }
.console-service-logo img { max-width: 68px; max-height: 28px; width: auto; height: auto; object-fit: contain; }
.console-table-sub { display: block; margin-top: 4px; color: var(--isty-muted); font-size: 12px; line-height: 1.5; }
.console-table-scopes { max-width: 260px; min-width: 160px; overflow-wrap: anywhere; }
.console-status-stack { display: grid; justify-items: start; gap: 4px; min-width: 180px; }
.isty-console .user-list-heading { margin-bottom: 18px; padding: 0; border: 0; background: none; }
.isty-console .user-search-form { align-items: end; }
.isty-console .console-user-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.console-user-filters > label:first-child { flex: 1 1 280px; min-width: 0; }
.console-user-filters > label { flex: 0 1 150px; min-width: 0; }
.console-user-filters > label:has([name="page_size"]) { flex-basis: 90px; }
html:has(body.isty-console) { scroll-behavior: auto; }
.console-user-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; margin-bottom: 24px; }
.console-user-layout > .admin-list-workspace { min-width: 0; }
.isty-console .console-user-table { min-width: 720px; }
.isty-console .console-user-row.is-selected { background: rgba(185, 166, 242, .16); }
.isty-console .console-user-table th, .console-user-table .status-pill { white-space: nowrap; }
.console-user-table td:first-child { min-width: 200px; }
.console-user-table td:nth-child(2) { min-width: 140px; }
.console-user-table td:nth-child(2) .console-table-sub { overflow-wrap: normal; }
.console-user-table td:nth-child(3) { min-width: 180px; }
.console-user-table td:last-child { min-width: 100px; }
.console-user-table .console-status-stack { min-width: 0; }
.console-user-table .console-row-link .status-pill { margin-top: 6px; }
.isty-console .console-user-summary.card { margin: 0; padding: 20px; }
.console-user-summary > header { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.console-user-summary h2 { margin: 0 0 6px; font-size: 17px; overflow-wrap: anywhere; }
.console-user-summary .console-avatar { flex-basis: 48px; width: 48px; height: 48px; }
.console-user-facts { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 10px; margin: 0; font-size: 13px; }
.console-user-facts dt { color: var(--isty-muted); }
.console-user-facts dd { margin: 0; overflow-wrap: anywhere; }
.console-user-summary > section { border-top: 1px solid var(--isty-line); margin-top: 22px; padding-top: 20px; }
.console-user-summary h3 { margin: 0 0 12px; color: var(--isty-muted); font: 11px var(--isty-font-mono); text-transform: uppercase; letter-spacing: .1em; }
.console-user-summary .console-status-stack { min-width: 0; }
.console-user-summary section > a { display: flex; align-items: center; justify-content: center; min-height: 40px; margin-bottom: 8px; font-size: 13px; }
.console-user-summary > a:last-child { display: inline-flex; align-items: center; min-height: 40px; font-size: 12px; }
.isty-console .console-user-editors > .user-detail { padding: 20px; }
@media (min-width: 1200px) { .console-user-layout.has-selection { grid-template-columns: minmax(0, 1fr) 360px; } }
.isty-console .sidebar-footer .console-admin-link { display: flex; gap: 10px; }
.isty-console .sidebar-footer .console-admin-link > span:last-child { min-width: 0; }
.isty-console .sidebar-footer .console-admin-role { display: block; margin-top: 4px; }
.isty-console .sidebar-footer .console-logout { min-height: 36px; color: var(--isty-on-dark-muted); font-size: 12px; }
.isty-console .admin-list-workspace > :is(.section-heading-row, .user-list-heading) { padding: 0; border: 0; border-radius: 0; background: none; }
.isty-console .console-table-panel table { table-layout: auto; }
.console-health-grid, .console-overview-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); gap: 12px; margin-bottom: 24px; }
.console-mail-senders { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 12px; margin-bottom: 20px; }
.console-mail-sender { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.isty-console .console-mail-sender.card { margin: 0; padding: 16px 18px; }
.console-mail-sender .console-table-sub { margin: 0; }
.console-mail-sender .console-mail-address { text-transform: none; }
.console-mail-logo { display: block; width: auto; max-width: 90px; height: 22px; object-fit: contain; object-position: left center; }
.console-mail-sender > a:last-child { display: inline-flex; align-items: center; min-height: 36px; font-size: 12px; }
.console-mail-filter-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.console-mail-filter-row .field-note { margin: 0; }
.console-filter-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.isty-console .console-filter-tabs a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--isty-line-strong); border-radius: 999px; color: var(--isty-text); font-size: 14px; text-decoration: none; }
.isty-console .console-filter-tabs a[aria-current] { color: var(--isty-cream); background: var(--isty-ink); border-color: var(--isty-ink); }
.console-service-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.console-service-search { display: flex; align-items: center; gap: 8px; flex: 0 1 350px; min-width: 0; }
.console-service-search input { min-width: 0; flex: 1; }
.isty-console .console-service-table { min-width: 720px; }
.console-create-client { margin-top: 20px; }
.isty-console .console-mail-progress { min-width: 240px; }
.isty-console .console-mail-progress progress { display: block; width: 100%; height: 6px; margin: 0 0 6px; border: 0; border-radius: 6px; accent-color: var(--isty-violet-ink); overflow: hidden; }
.console-mail-progress progress::-webkit-progress-bar { background: var(--isty-chip); }
.console-mail-progress progress::-webkit-progress-value { background: var(--isty-violet-ink); }
.isty-console .console-mail-results table { min-width: 820px; }
.console-mail-results :is(th, td):first-child { min-width: 220px; }
.console-mail-results :is(th, td):nth-child(2) { min-width: 150px; }
.isty-console .console-health { display: grid; justify-items: start; align-content: start; gap: 8px; margin: 0; padding: 16px 18px; color: var(--isty-text); text-decoration: none; }
.isty-console .console-health:hover { border-color: var(--isty-violet-ink); }
.console-health .console-table-sub { margin: 0; font-size: 13px; }
.console-health code { overflow-wrap: anywhere; font: inherit; }
.isty-console .console-overview-services { min-width: 520px; }
.isty-console .console-overview-events { min-width: 520px; }
.console-overview-events .status-pill { white-space: nowrap; }
.isty-console .console-overview-metrics .card { display: grid; gap: 10px; margin: 0; padding: 18px 20px; }
.console-overview-metrics p, .console-overview-metrics .console-table-sub { margin: 0; }
.console-metric-number { font-size: 32px; font-weight: 700; line-height: 1.15; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.console-overview-columns { display: flex; flex-wrap: wrap; align-items: start; gap: 16px; margin-bottom: 24px; }
.console-overview-primary { display: grid; gap: 16px; flex: 999 1 520px; min-width: 0; }
.console-overview-secondary { display: grid; gap: 16px; flex: 1 1 300px; min-width: 0; }
.isty-console .console-overview-secondary .card { margin: 0; padding: 18px; }
.console-panel-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 16px 18px; }
.isty-console .console-panel-heading h2, .isty-console .console-overview-secondary h2 { margin: 0; font-size: 17px; }
.console-panel-heading a { display: inline-flex; min-height: 36px; align-items: center; font-size: 13px; }
.console-attention-list { display: grid; gap: 12px; margin: 16px 0 0; padding: 0; list-style: none; }
.console-attention-list li { padding: 14px; border-radius: 12px; background: var(--isty-chip); font-size: 13px; line-height: 1.5; }
.console-attention-list p { margin: 6px 0; color: var(--isty-muted); }
.console-attention-list a { display: inline-flex; align-items: center; min-height: 36px; }
.console-launch-summary { display: grid; justify-items: start; gap: 12px; }
.console-launch-summary .section-heading-row { width: 100%; margin: 0; }
.console-launch-summary p { margin: 0; font-size: 13px; }
.console-launch-summary progress { width: 100%; height: 6px; border: 0; border-radius: 4px; accent-color: var(--isty-sage-ink); }
.console-launch-summary progress::-webkit-progress-bar { border-radius: 4px; background: var(--isty-off-bg); }
.console-launch-summary progress::-webkit-progress-value { border-radius: 4px; background: var(--isty-sage-ink); }
.console-launch-summary .technical-details { width: 100%; }
.console-overview-details { margin-bottom: 16px; }
.console-breadcrumb { margin: 0 0 12px; font: 10.5px/1.5 var(--isty-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.console-breadcrumb a { display: inline-flex; align-items: center; min-height: 36px; text-decoration: none; }
.console-client-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 12px; color: var(--isty-muted); font: 12px/1.5 var(--isty-font-mono); }
.console-client-sections { display: flex; flex-wrap: wrap; gap: 22px; margin: 0 0 24px; border-bottom: 1px solid var(--isty-line); }
.console-client-sections a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 0; color: var(--isty-muted); text-decoration: none; }
.console-client-sections a[aria-current] { border-bottom: 2px solid var(--isty-violet-ink); color: var(--isty-text); font-weight: 600; }
.console-client-layout { display: flex; flex-wrap: wrap; align-items: start; gap: 20px; margin-bottom: 24px; }
.console-client-main { flex: 999 1 460px; min-width: 0; }
.isty-console .admin-main .console-client-main form.console-client-form { display: grid; max-width: none; gap: 16px; }
.isty-console .console-client-form .card { display: grid; gap: 16px; margin: 0; }
.isty-console .console-client-form :is(h2, p) { margin: 0; }
.isty-console .console-client-form h2 { font-size: 17px; }
.isty-console .admin-main form label.inline { display: flex; flex-direction: row; align-items: center; gap: 12px; min-height: 40px; }
.isty-console .admin-main form label.inline > input[type=checkbox]:not(.console-switch) { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; }
.isty-console .admin-main form label.inline > input.console-switch { flex: 0 0 44px; width: 44px; height: 26px; }
.isty-console .console-logo-fields > label { padding: 16px; border: 1px dashed var(--isty-line-strong); border-radius: 12px; background: white; }
.console-service-preview { display: grid; gap: 12px; flex: 1 1 300px; min-width: 0; }
.isty-console .console-service-preview h2 { margin: 0; font-size: 10.5px; font-weight: 600; color: var(--isty-muted); }
.console-service-preview > p { margin: 0; font-size: 12px; }
.console-service-stage { display: grid; justify-items: center; gap: 24px; padding: 28px 24px; border-radius: 18px; background: var(--isty-ink); background-image: radial-gradient(ellipse 140% 90% at 50% 120%, transparent 59.6%, rgba(245, 240, 230, .14) 60%, transparent 60.4%); }
.console-satellite { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; width: min(240px, 100%); gap: 12px; padding: 16px; border: 1px solid rgba(185, 166, 242, .9); border-radius: 16px; background: rgba(185, 166, 242, .09); box-shadow: 0 0 0 6px rgba(185, 166, 242, .1); color: var(--isty-on-dark); overflow-wrap: anywhere; }
.console-satellite img { max-width: 100%; height: auto; max-height: 32px; object-fit: contain; }
.console-satellite .console-mono { color: var(--isty-on-dark-muted); font-size: 10.5px; }
.console-satellite p { flex: 1 1 100%; margin: 0; }
.console-service-stage .auth-service-chip { width: 100%; background: var(--isty-cream); }
.console-preview-domain { display: flex; align-items: start; gap: 8px; color: var(--isty-on-dark-2); font-size: 12px; }
.isty-console .console-client-identifier { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0; padding: 16px; }
.console-client-identifier h2, .console-client-identifier p { flex: 1 1 100%; margin: 0; }
.console-client-identifier code { overflow-wrap: anywhere; min-width: 0; }
.console-client-save { position: sticky; z-index: 5; bottom: 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border: 1px solid var(--isty-line); border-radius: 14px; background: var(--isty-field); }
.console-client-save p { flex: 1 1 180px; font-size: 14px; }
.console-client-save.is-dirty { border-color: var(--isty-ink); background: var(--isty-ink); color: var(--isty-on-dark); box-shadow: var(--isty-shadow-card); }
.console-provider-choices { margin-bottom: 24px; }
.console-start-steps { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-bottom: 24px; padding: 16px 20px; border: 1px solid var(--isty-line); border-radius: 16px; background: var(--isty-field); }
.console-start-steps a { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; color: var(--isty-muted); text-decoration: none; font-size: 14px; }
.console-step-number { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--isty-line-strong); border-radius: 50%; font: 12px var(--isty-font-mono); }
.console-start-steps a[aria-current] { color: var(--isty-text); font-weight: 600; }
.console-start-steps a[aria-current] .console-step-number { border-color: var(--isty-ink); background: var(--isty-ink); color: var(--isty-cream); }
.isty-console .console-start-methods > h2 { margin-top: 0; font-size: 22px; }
.isty-console .console-start-methods .console-method-catalog .method-list { grid-template-columns: minmax(0, 1fr); }
.isty-console .console-start-methods .console-method-catalog .method-row { padding: 16px; }
.isty-console .console-start-methods .console-method-catalog .method-row-details > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; }
.isty-console .console-start-methods .console-method-catalog .method-row-copy { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 6px 12px; }
.console-start-methods .console-method-symbol { grid-column: 1; grid-row: 1 / 4; }
.console-start-methods .method-row-copy > :not(.console-method-symbol) { grid-column: 2; }
.isty-console .console-start-methods .console-method-catalog .method-details-label { display: none; }
.console-login-preview { display: grid; gap: 16px; width: 100%; padding: 20px; border-radius: 16px; background: var(--isty-cream); color: var(--isty-text); }
.console-login-preview > strong { font-size: 17px; line-height: 1.2; }
.console-login-preview .auth-service-chip { gap: 6px; padding: 10px; }
.console-login-preview .auth-service-affiliation { font-size: 9px; }
.console-preview-field { height: 36px; border: 1px solid var(--isty-line-strong); border-radius: 8px; background: var(--isty-field); }
.console-preview-primary { display: grid; place-items: center; min-height: 36px; border-radius: 8px; background: var(--isty-ink); color: var(--isty-cream); font-size: 12px; font-weight: 600; }
.console-preview-alternatives { display: flex; flex-wrap: wrap; gap: 6px; }
.console-preview-alternatives span { flex: 1 1 70px; padding: 8px; border: 1px solid var(--isty-line-strong); border-radius: 8px; text-align: center; font-size: 11px; }
@media (max-width: 700px) { .isty-console .console-start-methods .console-method-catalog .method-row-details > summary { grid-template-columns: minmax(0, 1fr); } }
.isty-console .console-provider-choices > h2 { margin: 0 0 12px; color: var(--isty-muted); font-size: 10.5px; }
.isty-console .console-provider-choices .choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 12px; }
.isty-console .console-provider-choice { display: flex; flex-direction: column; align-items: start; gap: 10px; min-width: 0; padding: 18px; border: 1px solid var(--isty-line); border-radius: 16px; background: var(--isty-field); color: var(--isty-text); text-decoration: none; }
.isty-console .console-provider-choice :is(h3, p) { margin: 0; }
.isty-console .console-provider-choice p { color: var(--isty-muted); font-size: 13px; line-height: 1.5; }
.isty-console .console-provider-choice > strong { font-size: 12px; color: var(--isty-violet-ink); }
.console-provider-tile { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--isty-info-bg); color: var(--isty-info-fg); font: 600 11px var(--isty-font-mono); }
.isty-console .console-provider-table .console-provider-callback { max-width: 320px; min-width: 200px; font-size: 11px; overflow-wrap: anywhere; }
.isty-console .console-provider-controls { min-width: 120px; border: 0; }
.isty-console .console-provider-controls .technical-details-body { min-width: 240px; max-width: 360px; }
.isty-console details::details-content { transition: none; }
.isty-console details[open]::details-content { block-size: auto; content-visibility: visible; }
.isty-console .console-provider-controls form { display: grid; gap: 12px; margin-top: 16px; }
.password-toggle:not([data-interface-toggle-bound=true]) { display: none !important; }
.isty-console #saved-providers { padding: 0; }
.isty-console .console-client-save.is-dirty .button.secondary { border-color: var(--isty-line-dark); color: var(--isty-on-dark); }
.isty-console .console-client-save.is-dirty button[type=submit] { background: var(--isty-violet); color: var(--isty-ink); }
.console-budget-details { display: grid; gap: 6px; margin: 18px 0; font-size: 13px; }
.console-budget-details dt { margin-top: 12px; color: var(--isty-muted); }
.console-budget-details dd { margin: 0; overflow-wrap: anywhere; font: 12px/1.6 var(--isty-font-mono); }
/* @spec spec://modules/admin/FEAT-501-admin-console#contracts.mail-layout */
.console-mail-metrics .console-metric-number small { color: var(--isty-muted); font-size: 16px; font-weight: 500; }
.console-mail-metrics .console-kicker { color: var(--isty-muted); font: 600 10.5px/1.5 var(--isty-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.console-mail-metrics meter { width: 100%; height: 8px; accent-color: var(--isty-orange); }
.console-mail-panels { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr); gap: 16px; margin-bottom: 24px; align-items: start; }
.isty-console .console-mail-panels > .card { min-width: 0; margin: 0; padding: 18px 20px; }
.console-mail-panels .section-heading-row { margin-bottom: 8px; flex-wrap: wrap; }
.console-mail-panels .section-heading-row h2 { margin: 0; font-size: 17px; }
.console-mail-sender { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--isty-line); }
.console-mail-sender strong, .console-mail-sender small { display: block; overflow-wrap: anywhere; }
.console-mail-sender small { margin-top: 4px; font: 12px/1.5 var(--isty-font-mono); }
.console-mail-sender-mark { color: var(--isty-violet-ink); font: 12px/1.5 var(--isty-font-mono); }
.console-mail-planned { color: var(--isty-muted); }
.isty-console .console-mail-recent { padding-left: 0; padding-right: 0; }
.console-mail-recent .section-heading-row { padding: 0 16px; }
.console-mail-recent .console-table-empty { white-space: normal; }
.console-mail-settings > summary { min-height: 44px; }
@media (max-width: 900px) { .console-mail-panels { grid-template-columns: minmax(0, 1fr); } }
.isty-console .mail-compose-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.isty-console :is(.mail-compose-grid, .mail-preview-layout) > * { min-width: 0; }
.isty-console .mail-recipient-results { max-height: 288px; padding: 8px; overflow: auto; border: 1px solid var(--isty-line); border-radius: 12px; }
.isty-console .mail-recipient-option { display: flex; align-items: start; gap: 12px; padding: 12px; border-radius: 10px; }
.isty-console .mail-recipient-option:focus-within { outline: 2px solid var(--isty-violet-ink); outline-offset: 2px; }
.isty-console .mail-recipient-option + .mail-recipient-option { border-top: 1px solid var(--isty-line); }
.isty-console .mail-preview-text { max-height: 384px; white-space: pre-wrap; overflow-wrap: anywhere; overflow: auto; }
.isty-console .mail-preview-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(256px, .7fr); gap: 16px; }
.isty-console .mail-job-counts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(140px, 100%), 1fr)); gap: 12px; }
.isty-console .mail-job-count { padding: 16px; border: 1px solid var(--isty-line); border-radius: 12px; background: var(--isty-field); }
.mail-job-count span { color: var(--isty-muted); font: 10.5px/1.5 var(--isty-font-mono); }
.mail-job-count b { display: block; margin-top: 6px; font-size: 24px; }
@media (max-width: 700px) { .isty-console :is(.mail-compose-grid, .mail-preview-layout) { grid-template-columns: minmax(0, 1fr); } }
.isty-console .console-method-catalog { display: grid; gap: 24px; }
.isty-console .admin-main .method-directory form.console-method-catalog { max-width: none; width: 100%; }
.isty-console .console-method-catalog .method-group { margin: 0; padding: 0; border: 0; background: none; }
.isty-console .console-method-catalog .method-group-header { display: block; padding: 0; margin-bottom: 16px; border: 0; background: none; }
.isty-console .console-method-catalog .method-group-header h3 { margin: 0; font: 600 10.5px/1.5 var(--isty-font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--isty-muted); }
.isty-console .console-method-catalog .method-group-header p { margin: 4px 0 0; font-size: 13px; color: var(--isty-muted); }
.isty-console .console-method-catalog .method-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.isty-console .console-method-catalog .method-row { position: relative; display: flex; flex-wrap: wrap; align-content: start; gap: 12px; padding: 18px; border: 1px solid var(--isty-line); border-radius: 16px; background: var(--isty-field); }
.isty-console .console-method-catalog .method-row-details { flex: 1 1 100%; min-width: 0; padding: 0; border: 0; }
.isty-console .console-method-catalog .method-row-details > summary { display: flex; flex-direction: column; align-items: start; gap: 10px; min-height: 0; padding: 0 54px 0 0; background: none; }
.isty-console .console-method-catalog .method-row-copy { display: flex; flex-direction: column; align-items: start; gap: 6px; }
.isty-console .console-method-catalog .method-row-description { font-size: 13px; line-height: 1.5; }
.isty-console .console-method-catalog .method-technical-name { color: var(--isty-muted); font: 10.5px/1.4 var(--isty-font-mono); }
.isty-console .console-method-catalog .method-details-label { font-size: 12px; color: var(--isty-violet-ink); text-decoration: underline; text-underline-offset: 3px; }
.console-method-symbol { display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: 2px; border-radius: 10px; background: var(--isty-chip); }
.console-method-symbol .auth-icon { width: 20px; height: 20px; }
.isty-console .console-method-catalog .console-method-toggle { position: absolute; top: 16px; right: 18px; display: grid; place-items: center; width: 44px; min-height: 40px; margin: 0; padding: 0; }
.isty-console input.console-switch { appearance: none; position: relative; flex: 0 0 44px; width: 44px; height: 26px; margin: 0; padding: 0; border: 0; border-radius: 20px; background: #786f7f; cursor: pointer; }
.isty-console input.console-switch::before { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(0, 0, 0, .18); content: ''; }
.isty-console input.console-switch:checked { background: var(--isty-sage-ink); }
.isty-console input.console-switch:checked::before { transform: translateX(18px); }
.isty-console .console-method-save { display: flex; flex-wrap: wrap; align-items: end; gap: 18px; margin: 0; }
.console-method-save p { flex: 1 1 300px; margin: 0; color: var(--isty-muted); font-size: 13px; }
.console-method-save label { flex: 0 1 220px; }
@media (max-width: 1050px) { .isty-console .console-method-catalog .method-list { grid-template-columns: minmax(0, 1fr); } }
.isty-console-auth { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; background: var(--isty-ink); background-image: linear-gradient(rgba(245, 240, 230, .03) 1px, transparent 1px), linear-gradient(90deg, rgba(245, 240, 230, .03) 1px, transparent 1px); background-size: 72px 72px; }
.isty-console-auth .console-auth-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 40px; }
.console-auth-header-context { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; color: var(--isty-on-dark-muted); }
.console-mono { font: 10.5px/1.5 var(--isty-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.isty-console-auth .console-auth-main { flex: 1 0 auto; display: grid; place-items: center; padding: 32px 16px 60px; width: 100%; }
.isty-console-auth .console-auth-card { width: min(440px, 100%); padding: 32px 40px; border: 0; border-radius: 22px; background: var(--isty-cream); box-shadow: var(--isty-shadow-card); }
.isty-console-auth .console-auth-card h1 { margin: 0 0 24px; font-size: 30px; line-height: 1.15; letter-spacing: -.035em; }
.isty-console-auth .auth-card-header { margin-bottom: 24px; gap: 12px; }
.isty-console-auth .auth-heading-row h1 { margin: 0; }
.isty-console-auth .auth-card-header .page-lead { margin: 0; color: var(--isty-muted); font-size: 13px; line-height: 1.5; }
.isty-console-auth .console-auth-card form { display: grid; gap: 22px; }
.isty-console-auth .console-auth-card :is(input:not([type=checkbox]):not([type=hidden]), button[type=submit]) { min-height: 52px; border-radius: 12px; font-size: 16px; }
.isty-console-auth .console-auth-card button[type=submit] { background: var(--isty-ink); color: var(--isty-cream); }
.isty-console-auth .console-auth-card .auth-code-input { font-family: var(--isty-font-mono); text-align: center; letter-spacing: .7em; }
.isty-console-auth .auth-code-cell { height: 52px; font-size: 22px; }
.isty-console-auth .console-setup-card { display: grid; grid-template-columns: 260px minmax(0, 1fr); width: min(920px, 100%); max-width: 920px; padding: 0; border: 0; border-radius: 22px; overflow: hidden; background: var(--isty-cream); }
.console-setup-intro { display: flex; flex-direction: column; padding: 32px 28px; background: var(--isty-ink-3); color: var(--isty-on-dark); }
.isty-console-auth .console-setup-intro h2 { margin: 8px 0 24px; color: var(--isty-on-dark); font-size: 22px; line-height: 1.25; }
.console-setup-intro p { margin: 0 0 8px; color: var(--isty-on-dark-muted); font-size: 13px; line-height: 1.5; }
.console-setup-steps { display: grid; gap: 24px; margin: 0 0 40px; padding: 0; list-style: none; }
.console-setup-steps li { display: flex; align-items: start; gap: 12px; }
.console-setup-steps li > span { display: grid; flex: 0 0 32px; place-items: center; width: 32px; height: 32px; border: 1px solid var(--isty-line-dark); border-radius: 50%; font: 12px var(--isty-font-mono); }
.console-setup-steps li:first-child > span { background: var(--isty-violet); color: var(--isty-text); }
.console-setup-steps strong { display: block; margin-bottom: 4px; font-size: 14px; }
.console-setup-content { min-width: 0; padding: 36px 40px; }
.isty-console-auth .console-setup-content h1 { margin: 8px 0 24px; font-size: 30px; line-height: 1.15; }
.isty-console-auth .console-setup-content form { display: grid; gap: 22px; }
.isty-console-auth .console-setup-content :is(input:not([type=hidden]), button[type=submit]) { min-height: 52px; border-radius: 12px; font-size: 16px; }
.isty-console-auth .console-setup-content form button[type=submit] { background: var(--isty-ink); color: var(--isty-cream); }
.isty-console-auth .console-auth-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding: 20px 40px; color: var(--isty-on-dark-muted); font: 10.5px/1.5 var(--isty-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.isty-console-auth .console-auth-footer a { color: var(--isty-on-dark-muted); }
.isty-console-auth .locale-switcher { background: transparent; border-color: var(--isty-line-dark); }
.isty-console-auth .locale-switcher a { min-width: 40px; min-height: 36px; color: var(--isty-on-dark-muted); }
.isty-console-auth .locale-switcher a[aria-current] { background: rgba(245, 240, 230, .1); color: var(--isty-on-dark); }
@media (max-width: 900px) {
  .isty-console .admin-main { margin-left: 0; }
  .isty-console .admin-sidebar, .isty-console .sidebar-resizer { display: none; }
  .isty-console .topbar.admin-header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; height: auto; min-height: 64px; padding: 12px 16px; border-bottom: 1px solid var(--isty-line); background: var(--isty-paper); }
  .isty-console .admin-header-leading { display: flex; }
  .isty-console .locale-switcher { position: static; background: var(--isty-chip); border-color: var(--isty-line); }
  .isty-console .locale-switcher a { color: var(--isty-text); }
  .isty-console .locale-switcher a[aria-current] { color: var(--isty-text); background: var(--isty-field); }
  .isty-console .admin-main > .container { padding: 24px 16px 40px; }
  .isty-console .page-heading { font-size: 28px; }
  .isty-console .admin-nav-panel { background: var(--isty-ink); color: var(--isty-on-dark); }
  .isty-console .console-mobile-account { display: flex; flex-direction: column; gap: 8px; padding: 12px 10px; border-top: 1px solid var(--isty-line-dark); }
  .isty-console .console-mobile-account a { min-height: 36px; color: var(--isty-on-dark); }
  .isty-console .console-mobile-account a[aria-current] { padding: 8px 10px; border-radius: 10px; background: rgba(185, 166, 242, .16); box-shadow: none; }
  .isty-console-auth .console-auth-header, .isty-console-auth .console-auth-footer { padding: 20px 16px; }
  .isty-console-auth .console-auth-card { padding: 28px 22px; }
  .isty-console-auth .console-setup-card { grid-template-columns: 1fr; }
  .console-setup-intro { padding: 24px; }
  .console-setup-steps { display: none; }
  .console-setup-content { padding: 28px 22px; }
}

.console-mail-html-preview { width: 100%; height: 480px; border: 0; border-radius: 12px; background: #f2ece0; }
.console-deferred { min-width: 0; margin: 12px 0; padding: 12px; border: 1px dashed var(--isty-line-strong); border-radius: 12px; color: var(--isty-muted); }
.console-deferred legend, .console-planned-label { color: var(--isty-muted); font: 10px/1.5 var(--isty-font-mono); letter-spacing: .06em; text-transform: uppercase; }
.console-planned-control { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 4px; max-width: 100%; }
.console-deferred-actions, .console-document-preview { display: grid; gap: 12px; }
.console-document-preview label { display: grid; gap: 8px; }
.console-deferred-policy p { margin: 0; font-size: 13px; line-height: 1.5; }
.isty-console :is(.admin-main, .admin-sidebar) .console-deferred-button,
.isty-console :is(.admin-main, .admin-sidebar) .console-deferred :disabled { opacity: 1; color: var(--isty-muted); background: var(--isty-chip); border-color: var(--isty-line-strong); cursor: not-allowed; }
.isty-console .console-deferred :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, textarea) { background: var(--isty-chip); color: var(--isty-muted); }
.console-deferred :is(.field-title, h2) { color: var(--isty-muted); }
.console-document-preview { margin: 0; padding: 0; border: 0; gap: 20px; }
.console-document-preview-group h3 { margin: 0 0 12px; font-size: 10.5px; color: var(--isty-muted); text-transform: uppercase; letter-spacing: .1em; }
.console-document-preview-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 14px; }
.console-document-preview .field-title { font-size: 13px; }
.console-setup-layout .console-document-form { display: grid; }
.isty-console .console-overview-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.isty-console .console-overview-live-counts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 780px) { .isty-console .console-overview-metrics { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 780px) { .console-document-preview-fields { grid-template-columns: minmax(0, 1fr); } }
/* @spec spec://modules/authentication/FEAT-112-device-sessions#contracts.interface */
.ui-account-page .device-list { padding: 0; overflow: hidden; }
.device-row { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 16px; align-items: start; padding: 20px 22px; border-top: 1px solid rgba(245,240,230,.08); }
.device-row:first-child { border-top: 0; }
.device-icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; background: rgba(245,240,230,.06); }
.device-icon-current { color: var(--isty-violet); }
.device-info { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.device-heading { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.device-heading h2 { margin: 0; font-size: 16px; font-weight: 600; overflow-wrap: anywhere; }
.device-current { font: 600 10.5px var(--isty-font-mono); letter-spacing: .1em; text-transform: uppercase; color: #9eb58f; }
.device-meta { margin: 0; font: 12px/1.6 var(--isty-font-mono); color: rgba(245,240,230,.72); overflow-wrap: anywhere; }
.device-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.device-chip { display: inline-flex; align-items: center; min-height: 30px; max-width: 100%; padding: 0 10px; border: 1px solid rgba(245,240,230,.14); border-radius: 999px; background: rgba(18,16,24,.5); font-size: 13px; overflow-wrap: anywhere; }
.device-chip img { display: block; max-width: 80px; object-fit: contain; }
.device-end-form { margin: 0; }
.device-row .device-end-form button { min-height: 44px; font-size: 14px; }
.device-details { min-width: 0; font-size: 12px; color: rgba(245,240,230,.72); }
.device-details summary { display: flex; align-items: center; min-height: 44px; width: fit-content; cursor: pointer; }
.device-details summary::before { content: '›'; margin-right: 8px; }
.device-details[open] summary::before { content: '⌄'; }
.device-details dl { display: grid; gap: 8px; margin: 0 0 6px; }
.device-details dl > div { display: flex; gap: 6px 16px; flex-wrap: wrap; }
.device-details dd { margin: 0; font-family: var(--isty-font-mono); overflow-wrap: anywhere; }
.device-bulk { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 22px; }
.device-bulk h2 { margin: 0 0 6px; font-size: 20px; font-weight: 700; }
.device-bulk p { margin: 0; font-size: 14px; }
.device-bulk form { margin: 0; }
.device-bulk button.danger { min-height: 48px; border-color: rgba(240,140,150,.5); border-radius: 12px; background: transparent; color: #f2b8c0; }
.device-bulk button.danger:hover { background: rgba(240,140,150,.1); color: #f8d3d8; }
.device-bulk button:disabled { opacity: .65; cursor: default; }
.device-empty { padding: 22px; }
.device-revoke-note { margin: 0; }
.device-history-link { display: inline-flex; align-items: center; width: fit-content; min-height: 44px; }
@media (max-width: 760px) {
  .device-row { grid-template-columns: 48px minmax(0,1fr); padding: 18px 16px; }
  .device-end-form { grid-column: 2; }
  .device-bulk { padding: 20px 16px; }
}
/* @spec spec://modules/mfa/FEAT-130-mfa-totp#contracts.qr */
.ui-account-page .account-totp-setup { padding: 0; gap: 0; overflow: hidden; }
.totp-provisioning, .totp-code-form { padding: 26px; }
.totp-provisioning { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; border-right: 1px solid var(--isty-line-dark); }
.totp-provisioning > p { margin: 0; font-size: 14px; }
.totp-step-heading { display: flex; align-items: center; gap: 12px; }
.ui-account-page .totp-step-heading h2 { margin: 0; font-size: 20px; font-weight: 700; }
.totp-step-number { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0; background: var(--isty-violet); color: var(--isty-ink); font: 600 13px var(--isty-font-mono); }
.totp-qr { width: 208px; height: 208px; max-width: 100%; border-radius: 16px; overflow: hidden; background: var(--isty-cream); }
.account-totp-qr-code { display: block; width: 100%; height: 100%; }
.account-totp-qr-code rect { fill: var(--isty-cream); }
.account-totp-qr-code path { fill: var(--isty-ink); }
.totp-manual-key { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; max-width: 100%; }
.totp-manual-key .secret-value { max-width: 100%; min-width: 0; margin: 0; padding: 10px 12px; font-size: 15px; letter-spacing: .12em; user-select: all; }
.ui-account-page .totp-copy-button[hidden] { display: none; }
.totp-copy-status:empty { display: none; }
.totp-provisioning > .ui-help { width: 100%; }
.totp-code-form { align-content: start; gap: 18px; }
.totp-code-form > p { margin: 0; font-size: 14px; line-height: 1.5; }
.totp-code-form .auth-code-field { width: 100%; max-width: 380px; }
.totp-code-form .auth-code-cell { border-color: rgba(245,240,230,.22); background: rgba(18,16,24,.6); color: var(--isty-cream); }
.totp-code-form .auth-code-cell.is-current { border-color: var(--isty-violet); }
.totp-code-form .auth-code-input { font: 600 22px var(--isty-font-mono); text-align: center; }
.totp-code-form > button[type=submit] { margin-top: auto; }
.totp-code-form .totp-once-note { font-size: 13px; }
.ui-account-page .totp-resume { padding: 0; }
@media (max-width: 760px) { .totp-provisioning { border-right: 0; border-bottom: 1px solid var(--isty-line-dark); } .totp-provisioning, .totp-code-form { padding: 22px; } }
/* Isty email: start */
/* @spec spec://modules/communications/FEAT-602-email-templates#contracts */
@font-face { font-family: "Isty Mail Onest"; src: url("/static/mail/isty-v1/Onest-variable.ttf") format("truetype"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Isty Mail Mono"; src: url("/static/mail/isty-v1/JetBrainsMono-variable.woff2") format("woff2"); font-weight: 100 800; font-display: swap; }
.isty-mail { margin: 0; padding: 0; background: #f2ece0; color: #1a1620; font-family: "Isty Mail Onest", Arial, sans-serif; }
.isty-mail-canvas { width: 100%; border-collapse: collapse; background: #f2ece0; }
.isty-mail-outside { padding: 32px 12px; text-align: center; }
.isty-mail-frame { width: 100%; max-width: 560px; border-collapse: separate; border-spacing: 0; background: #fbf8f2; border: 1px solid #ebe3d3; border-radius: 16px; }
.isty-mail-content { padding: 28px 24px; text-align: left; color: #1a1620; font-family: "Isty Mail Onest", Arial, sans-serif; }
.isty-mail-brand { border-collapse: collapse; margin: 0 0 28px; }
.isty-mail-brand img { display: block; width: 42px; height: 24px; border: 0; }
.isty-mail-id { padding: 0 0 0 8px; color: #614396; font: 600 12px "Isty Mail Mono", Consolas, monospace; letter-spacing: 1px; }
.isty-mail h1 { margin: 0 0 14px; font-size: 26px; line-height: 1.25; font-weight: 600; letter-spacing: -.5px; }
.isty-mail-copy { margin: 0; font-size: 15px; line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.isty-mail-code-table { width: 100%; margin: 20px 0 0; border-collapse: separate; border-spacing: 0; }
.isty-mail-code { padding: 16px 8px; border-radius: 10px; background: #121018; color: #f5f0e6; font: 600 32px/1.4 "Isty Mail Mono", Consolas, monospace; letter-spacing: 6px; text-align: center; white-space: nowrap; }
.isty-mail-note { margin: 16px 0 0; color: #5d5363; font-size: 13px; }
.isty-mail-footer { margin: 24px 0 0; padding: 20px 0 0; border-top: 1px solid #ebe3d3; font-size: 13px; line-height: 1.5; }
.isty-mail-footer a { color: #614396; overflow-wrap: anywhere; }
.isty-mail-action { margin: 24px 0 0; }
.isty-mail-action a { display: inline-block; padding: 14px 20px; border-radius: 12px; background: #121018; color: #f5f0e6; text-decoration: none; }
/* Isty email: end */

/* @spec spec://modules/authentication/FEAT-111-step-up-confirmation#contracts.interface */
.stepup-page { margin: 0; background: var(--isty-ink); color: var(--isty-text); color-scheme: light; }
.stepup-page > .skip-link { display: none; }
.stepup-stage { position: relative; display: grid; place-items: center; min-height: 100svh; box-sizing: border-box; padding: 24px 16px; }
.stepup-skeleton { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.stepup-skeleton-header { height: 84px; padding: 0 40px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(245,240,230,.08); }
.stepup-skeleton-header img { opacity: .6; }
.stepup-skeleton-header span { width: 180px; height: 36px; }
.stepup-skeleton-content { display: flex; gap: 40px; max-width: 1200px; margin: auto; padding: 48px 40px; }
.stepup-skeleton-nav { display: grid; align-content: start; gap: 10px; width: 240px; flex-shrink: 0; }
.stepup-skeleton-nav i { height: 44px; }
.stepup-skeleton-nav i:nth-child(3) { background: rgba(185,166,242,.14); }
.stepup-skeleton-panels { display: grid; gap: 20px; flex: 1; }
.stepup-skeleton-panels i:nth-child(1) { width: min(320px,100%); height: 52px; }
.stepup-skeleton-panels i:nth-child(2) { height: 170px; border-radius: 18px; }
.stepup-skeleton-panels i:nth-child(3) { height: 380px; border-radius: 18px; }
.stepup-skeleton :is(i,span) { display: block; background: rgba(245,240,230,.07); border-radius: 12px; }
.stepup-shade { position: absolute; inset: 0; background: rgba(10,8,14,.72); backdrop-filter: blur(3px); pointer-events: none; }
.stepup-dialog[open] { position: relative; display: flex; flex-direction: column; gap: 20px; width: 100%; max-width: 440px; box-sizing: border-box; margin: auto; padding: 32px 36px 26px; border: 0; border-radius: 22px; background: var(--isty-cream); color: var(--isty-text); box-shadow: 0 40px 100px rgba(0,0,0,.6); }
.stepup-dialog[open]:modal { position: fixed; max-height: calc(100svh - 32px); overflow-y: auto; width: calc(100% - 32px); }
.stepup-dialog::backdrop { background: transparent; }
.stepup-dialog .stepup-close { position: absolute; top: 16px; right: 16px; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; color: #5d5363; font-size: 28px; line-height: 1; text-decoration: none; }
.stepup-dialog .stepup-close:hover { background: rgba(26,22,32,.06); }
.stepup-mark { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: var(--isty-ink); color: var(--isty-violet); flex-shrink: 0; }
.stepup-dialog header { display: flex; flex-direction: column; gap: 10px; }
.stepup-dialog h1 { margin: 0; font-size: 26px; line-height: 1.15; font-weight: 700; letter-spacing: -.02em; color: var(--isty-text); }
.stepup-dialog p { margin: 0; overflow-wrap: anywhere; }
.stepup-dialog header p { color: #5d5363; font-size: 15px; line-height: 1.5; }
.stepup-dialog form { margin: 0; min-width: 0; }
.stepup-dialog .stepup-primary { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 52px; padding: 12px 14px; border: 0; border-radius: 12px; box-shadow: none; background: var(--isty-ink); color: var(--isty-cream); font: 600 16px/1.4 var(--isty-font); cursor: pointer; }
.stepup-dialog .stepup-primary:hover { background: #2a2433; }
.stepup-dialog .stepup-primary:disabled { opacity: .65; cursor: default; }
.stepup-options { display: flex; flex-direction: column; gap: 8px; }
.stepup-dialog .stepup-or { margin: 0 0 2px; font: 11px/1.5 var(--isty-font-mono); letter-spacing: .12em; text-transform: uppercase; color: #5d5363; }
.stepup-dialog .stepup-option { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid rgba(26,22,32,.14); border-radius: 12px; background: transparent; color: var(--isty-text); box-shadow: none; text-decoration: none; text-align: start; font: 400 15px/1.4 var(--isty-font); white-space: normal; overflow-wrap: anywhere; }
.stepup-dialog .stepup-option:hover { background: rgba(26,22,32,.04); }
.stepup-dialog .stepup-option { justify-content: flex-start; }
.stepup-dialog .stepup-proof button.stepup-primary { min-height: 52px; background: var(--isty-ink); color: var(--isty-cream); }
.stepup-dialog .stepup-proof button.stepup-primary:hover { background: #2a2433; }
.stepup-dialog .auth-icon { flex-shrink: 0; }
.stepup-dialog .stepup-window { display: flex; gap: 8px; padding-top: 16px; border-top: 1px solid rgba(26,22,32,.12); color: #5d5363; font-size: 13px; line-height: 1.45; }
.stepup-window svg { flex-shrink: 0; margin-top: 1px; }
.stepup-dialog .stepup-help, .stepup-dialog .stepup-passkey-status { font-size: 13px; line-height: 1.5; color: #5d5363; }
.stepup-passkey-status:empty { display: none; }
.stepup-proof { gap: 10px; }
/* @spec spec://modules/interfaces/FEAT-400-hosted-user-interface#contracts.account-data */
.account-data-summary { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; }
.account-data-summary > div { min-width: 0; }
.account-data-summary > div:first-child { flex: 1 1 380px; }
.account-data-summary h2 { margin-top: 0; }
.account-data-summary .ui-actions { flex-shrink: 0; max-width: 100%; }
.account-data .account-data-confirm { display: flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; }
.account-data .account-data-confirm input { flex-shrink: 0; width: 20px; height: 20px; }
.account-data .ui-note, .account-data-summary .ui-note { margin: 8px 0 0; padding: 0; border: 0; background: transparent; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.stepup-dialog input:not([type=hidden]) { min-width: 0; min-height: 48px; border-color: rgba(26,22,32,.25); border-radius: 12px; background: #fbf8f0; color: var(--isty-text); font-size: 16px; }
.stepup-dialog :is(a,button,input):focus-visible { outline: 2px solid #614396; outline-offset: 3px; box-shadow: none; }
@media (max-width: 620px) {
  .stepup-dialog[open] { padding: 28px 20px 22px; }
  .stepup-skeleton-nav { display: none; }
  .stepup-skeleton-content { padding: 32px 20px; }
}

/* @spec spec://modules/interfaces/FEAT-400-hosted-user-interface#contracts.signin-kit */
/* isty-signin-kit:start */
@font-face {
  font-family: "Isty Signin Onest";
  src: url("fonts/Onest-variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
.isty-signin {
  --isty-signin-bg: #121018;
  --isty-signin-fg: #f5f0e6;
  --isty-signin-mark: #b9a6f2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  height: 52px;
  min-height: 52px;
  padding: 0 22px 0 18px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: var(--isty-signin-bg);
  color: var(--isty-signin-fg);
  font: 600 16px/1.35 "Isty Signin Onest", system-ui, sans-serif;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  overflow-wrap: anywhere;
}
a.isty-signin, button.isty-signin { cursor: pointer; }
.isty-signin.isty-signin--light { --isty-signin-bg: #f5f0e6; --isty-signin-fg: #121018; --isty-signin-mark: #614396; }
.isty-signin.isty-signin--outline { --isty-signin-bg: transparent; --isty-signin-fg: #121018; --isty-signin-mark: #614396; border-color: #121018; }
.isty-signin.isty-signin--compact { height: 44px; min-height: 44px; }
.isty-signin.isty-signin--icon { width: 52px; min-width: 52px; height: 52px; padding: 0; }
.isty-signin:visited { color: var(--isty-signin-fg); }
.isty-signin:hover { color: var(--isty-signin-fg); text-decoration: none; }
.isty-signin:focus-visible { outline: 3px solid #614396; outline-offset: 3px; box-shadow: 0 0 0 3px #f5f0e6; }
.isty-signin__mark {
  display: inline-block;
  flex: 0 0 30px;
  width: 30px;
  height: 18px;
  background: var(--isty-signin-mark, #b9a6f2);
  -webkit-mask: url("isty-logo.svg") center / contain no-repeat;
  mask: url("isty-logo.svg") center / contain no-repeat;
}
/* isty-signin-kit:end */

/* @spec spec://modules/admin/FEAT-501-admin-console#contracts.signin-kit */
.signin-kit-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.signin-kit-heading h2 { margin-top: 0; }
.signin-kit-heading p { margin-bottom: 0; }
.signin-kit-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 24px; margin: 24px 0 16px; }
.signin-kit-grid > section { min-width: 0; }
.signin-kit-grid h3 { font: 600 12px/1.5 var(--isty-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.signin-kit-marks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.signin-kit-wordmark { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 110px; padding: 16px; border-radius: 18px; background: #f5f0e6; color: #121018; }
.signin-kit-wordmark .isty-signin__mark { flex-basis: 80px; width: 80px; height: 46px; background-color: #121018; }
.signin-kit-wordmark--dark { grid-column: 1 / -1; min-height: 200px; background: #121018; color: #f5f0e6; }
.signin-kit-wordmark--dark .isty-signin__mark { flex-basis: 140px; width: 140px; height: 80px; background-color: #b9a6f2; }
.signin-kit-wordmark--violet { background: #b9a6f2; }
.signin-kit-id { padding: 4px 6px 4px 10px; border: 1px solid currentColor; border-radius: 8px; font: 600 17px/1.2 var(--isty-font-mono); letter-spacing: .14em; }
/* @spec spec://modules/admin/FEAT-501-admin-console#contracts.admin-passkey */
.admin-passkey-action { display: flex; flex-wrap: wrap; gap: 10px; }
.admin-passkey-action [hidden] { display: none; }
.admin-passkey-action > .field-note { flex-basis: 100%; margin: 0; }
.console-login-policy { margin: 0; color: var(--isty-muted); font-size: 13px; line-height: 1.5; }
.admin-passkey-record { padding: 20px 0; border-bottom: 1px solid var(--isty-line); }
.admin-passkey-record h3 { margin: 0; overflow-wrap: anywhere; }
.admin-passkey-record summary, .admin-passkey-enroll summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; font-weight: 600; }
.admin-passkey-enroll { margin-top: 16px; }
/* @spec spec://modules/admin/FEAT-501-admin-console#contracts.account-layout */
.isty-console .console-account-methods { padding: 0; overflow: hidden; }
.isty-console .console-account-methods > .section-heading { margin: 0; padding: 18px 20px 12px; font-size: 17px; }
.console-account-method { border-top: 1px solid var(--isty-line); }
.console-account-method-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px; padding: 16px 20px; }
summary.console-account-method-row { list-style: none; cursor: pointer; }
summary.console-account-method-row:focus-visible { outline: 3px solid var(--isty-violet-ink); outline-offset: -4px; border-radius: 8px; }
summary.console-account-method-row::-webkit-details-marker { display: none; }
.console-account-method-row > .button { min-height: 40px; font-size: 13px; }
.console-account-method-label { display: grid; gap: 4px; min-width: 0; }
.console-account-method-label strong { overflow-wrap: anywhere; }
.console-account-method-label small { color: var(--isty-muted); font-size: 13px; }
.console-account-method-content { padding: 0 20px 20px; border-top: 1px solid var(--isty-line); }
.console-account-method-content > .page-lead { margin-top: 16px; font-size: 13px; }
.console-account-method-content > h3 { margin: 16px 0 8px; }
.console-account-future { border-top: 1px solid var(--isty-line); background: rgba(26, 22, 32, .025); }
.console-account-future .status-pill { min-width: 32px; justify-content: center; }
.isty-console-auth .console-login-card .auth-card-header { margin-bottom: 20px; }
.isty-console-auth .console-login-card form { gap: 20px; }
.isty-console-auth .console-login-card [data-passkey-start] { min-height: 52px; width: 100%; }
.console-login-card .admin-passkey-action { display: grid; }
.console-login-card .console-login-policy { margin-top: 12px; }
.console-login-card .console-deferred-policy { padding: 8px 12px; font-size: 12px; line-height: 1.5; }
@media (max-width: 620px) {
  .console-account-method-row { grid-template-columns: minmax(0, 1fr) auto; padding: 16px; gap: 12px; }
  .console-account-method-row > :last-child { grid-column: 1 / -1; justify-self: start; }
  .console-account-method-content { padding: 0 16px 20px; }
}
.signin-kit-variants { display: grid; gap: 14px; }
.signin-kit-sample { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; min-height: 100px; padding: 20px; border: 1px solid rgba(26,22,32,.1); border-radius: 18px; }
.signin-kit-sample > div { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; max-width: 100%; }
.signin-kit-sample p { margin: 0; font: 500 10px/1.5 var(--isty-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.signin-kit-sample--cream { background: #f5f0e6; color: #5d5363; }
.signin-kit-sample--dark { background: #121018; color: #f5f0e6; }
@media (max-width: 1180px) { .signin-kit-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 620px) {
  .signin-kit-marks { grid-template-columns: minmax(0, 1fr); }
  .signin-kit-wordmark--dark { grid-column: auto; }
  .signin-kit-sample { padding: 16px; }
}
