/* Loaded after area styles; every rule requires the explicit UI boundary.
 * Source: docs/biotour-design-system/text.text.
 * Do not move these tokens to :root: shared admin/public CSS uses legacy aliases.
 */
body.biotour-ui {
  --bt-brand: #9A2033;
  --bt-brand-hover: #7F1B2A;
  --bt-brand-pressed: #64141F;
  --bt-text: #3E3C31;
  --bt-text-secondary: #555355;
  --bt-text-muted: #9B999B;
  --bt-placeholder: #BDBBBD;
  --bt-surface: #FFFFFF;
  --bt-surface-subtle: #F8F8F7;
  --bt-surface-muted: #F3F3F1;
  --bt-surface-brand: #FFF7F8;
  --bt-border: #E1E0E1;
  --bt-border-hover: #9B999B;
  --bt-success: #287A38;
  --bt-success-soft: #F1FAF3;
  --bt-error: #8F1C25;
  --bt-error-soft: #FFF4F4;
  --bt-warning: #856314;
  --bt-warning-soft: #FFFBF0;
  --bt-success-border: #D0EED6;
  --bt-warning-border: #FCEBB0;
  --bt-error-border: #F9CACA;
  --bt-info: #2B4A50;
  --bt-disabled: #F1F1F1;
  --bt-readonly: #F8F8F8;
  --bt-surface-pressed: #FDEDEF;
  --bt-info-soft: #F2F7F8;
  --bt-info-border: #C8E0E4;
  --bt-space-1: 4px;
  --bt-space-2: 6px;
  --bt-space-3: 8px;
  --bt-space-4: 12px;
  --bt-space-5: 16px;
  --bt-space-6: 20px;
  --bt-space-7: 24px;
  --bt-space-8: 32px;
  --bt-space-9: 36px;
  --bt-space-10: 40px;
  --bt-space-11: 48px;
  --bt-space-12: 56px;
  --bt-space-13: 64px;
  --bt-h1: 48px;
  --bt-h2: 40px;
  --bt-h3: 32px;
  --bt-h4: 24px;
  --bt-body-large: 20px;
  --bt-body: 16px;
  --bt-small: 14px;
  --bt-nav: 15px;
  --bt-caption: 12px;
  --bt-control-radius: 2px;
  --bt-control-height: 40px;
  --bt-control-small: 32px;
  --bt-control-large: 48px;
  --bg: var(--bt-surface-subtle);
  --surface: var(--bt-surface);
  --surface-soft: var(--bt-surface-subtle);
  --border: var(--bt-border);
  --text: var(--bt-text);
  --text-muted: var(--bt-text-secondary);
  --muted: var(--bt-text-secondary);
  --primary: var(--bt-brand);
  --primary-dark: var(--bt-brand-hover);
  --primary-soft: var(--bt-surface-brand);
  --neutral: var(--bt-text-secondary);
  --neutral-soft: var(--bt-surface-muted);
  --danger: var(--bt-error);
  --danger-soft: var(--bt-error-soft);
  --success: var(--bt-success);
  --success-soft: var(--bt-success-soft);
  --warning: var(--bt-warning);
  --warning-soft: var(--bt-warning-soft);
  background: var(--bg);
  color: var(--text);
  font-size: var(--bt-body);
}

/* Role mapping keeps dashboard headings compact; the full scale is available
 * above without applying marketing-sized H1/H2 styles to workspaces. */
body.biotour-ui h1 { font-size: var(--bt-h4); color: var(--text); }
body.biotour-ui :is(h2, .card h2, .workspace h2) { font-size: var(--bt-body-large); }
body.biotour-ui :is(h3, .workspace h3, .form-section h2) { font-size: var(--bt-body); }
body.biotour-ui h4 { font-size: var(--bt-body); }
body.biotour-ui :is(.nav-link, .domain-secondary a, .organization-tabs a) { font-size: var(--bt-nav); }
body.biotour-ui :is(label, .table, .stat-label, .workspace-context, .workspace-statuses, .workspace-deadline, .workspace-actor, .workspace-consequence) { font-size: var(--bt-small); }
body.biotour-ui :is(.form-help, .field-help, .request-field-error, .security-note, .eyebrow, .table th, .status-chip, .tag, .workspace-freshness) { font-size: var(--bt-caption); }
body.biotour-ui :is(.muted, .field-help, .form-help, .security-note, .optional-label) { color: var(--muted); }

/* Overall heights win over old vertical padding. Min-height allows translated
 * multiline labels and enlarged text to grow without clipping. */
body.biotour-ui .button {
  box-sizing: border-box;
  min-height: var(--bt-control-height);
  min-block-size: var(--bt-control-height);
  height: auto;
  padding: 4px 16px;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: var(--bt-control-radius);
  background: var(--bt-surface-muted);
  color: var(--text);
  font-size: var(--bt-small);
}
body.biotour-ui :is(.table .button, .button-small) {
  min-height: var(--bt-control-small);
  min-block-size: var(--bt-control-small);
  padding-inline: 12px;
  padding-block: 0;
  font-size: var(--bt-caption);
}
body.biotour-ui .button-large {
  min-height: var(--bt-control-large);
  min-block-size: var(--bt-control-large);
  padding-inline: 20px;
  font-size: var(--bt-body);
}
body.biotour-ui .button:hover { background: var(--bt-border); }
body.biotour-ui .button:active { background: var(--bt-border-hover); }
body.biotour-ui :is(.button-primary, .button.primary) { background: var(--primary); color: var(--surface); }
body.biotour-ui :is(.button-primary, .button.primary):hover { background: var(--bt-brand-hover); }
body.biotour-ui :is(.button-primary, .button.primary):active { background: var(--bt-brand-pressed); }
body.biotour-ui :is(.button-secondary, .button.secondary) { border-color: var(--border); background: var(--surface); color: var(--primary); }
body.biotour-ui .button-outline { border-color: var(--primary); color: var(--primary); background: var(--surface); }
body.biotour-ui .button-ghost { border-color: transparent; color: var(--primary); background: transparent; }
body.biotour-ui :is(.button-secondary, .button.secondary, .button-outline, .button-ghost):hover { background: var(--primary-soft); color: var(--bt-brand-hover); }
body.biotour-ui :is(.button-secondary, .button.secondary, .button-outline, .button-ghost):active { background: var(--bt-surface-pressed); color: var(--bt-brand-pressed); }
body.biotour-ui :is(.button-secondary, .button.secondary, .button-outline):hover { border-color: var(--bt-brand-hover); }
body.biotour-ui :is(.button-secondary, .button.secondary, .button-outline):active { border-color: var(--bt-brand-pressed); }
body.biotour-ui .button-danger { background: #B4232F; color: var(--surface); }
body.biotour-ui .button-danger:hover { background: #8F1C25; }
body.biotour-ui .button-danger:active { background: #68141A; }
body.biotour-ui .button:disabled, body.biotour-ui .button[aria-disabled="true"] {
  background: var(--bt-disabled);
  color: var(--bt-text-muted);
  border-color: var(--border);
  opacity: 1;
  transform: none;
  cursor: default;
}
body.biotour-ui .button[aria-busy="true"] { cursor: wait; }
body.biotour-ui .organizer-sidebar .button-ghost:not(:disabled) { color: var(--surface); }
body.biotour-ui .organizer-sidebar .button-ghost:hover:not(:disabled) { background: var(--sidebar-soft); }
body.biotour-ui .sidebar-workspace > .status-chip.status-success { color: var(--success); }
body.biotour-ui .sidebar-workspace > .status-chip.status-warning { color: var(--warning); }
body.biotour-ui .sidebar-workspace > .status-chip.status-danger { color: var(--danger); }
body.biotour-ui .sidebar-workspace > .status-chip.status-neutral { color: var(--neutral); }

/* Exclude specialized native controls. OTP retains its own direction, character
 * spacing and geometry; selects/textareas share visual states, not fixed height. */
body.biotour-ui input:where(:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"])),
body.biotour-ui :is(select, textarea) {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--bt-control-radius);
  padding-inline: 16px;
  background: var(--surface);
  color: var(--text);
  font-size: var(--bt-field-font, var(--bt-small));
}
body.biotour-ui input:not([type]):not([autocomplete="one-time-code"]),
body.biotour-ui input:is([type="text"], [type="email"], [type="url"], [type="tel"], [type="password"], [type="search"], [type="number"]):not([autocomplete="one-time-code"]) {
  min-height: var(--bt-field-height, var(--bt-control-height));
  min-block-size: var(--bt-field-height, var(--bt-control-height));
  padding-block: 4px;
}
body.biotour-ui input.input-large { --bt-field-height: var(--bt-control-large); --bt-field-font: var(--bt-body); }
body.biotour-ui input.input-small { --bt-field-height: var(--bt-control-small); --bt-field-font: var(--bt-caption); }
body.biotour-ui #ticket-payload { border-radius: var(--bt-control-radius); padding-inline: var(--bt-space-5); }
body.biotour-ui #ticket-payload:hover:not(:disabled):not([readonly]) { border-color: var(--bt-border-hover); }
body.biotour-ui #ticket-payload:focus { border-color: var(--primary); }
body.biotour-ui #ticket-payload.is-success { border-color: #359B47; background: var(--success-soft); }
body.biotour-ui #ticket-payload[aria-invalid="true"] { border-color: #B4232F; background: var(--danger-soft); }
body.biotour-ui #ticket-payload:disabled { background: var(--bt-disabled); color: var(--bt-text-muted); border-color: transparent; }
body.biotour-ui #ticket-payload[readonly] { background: var(--bt-readonly); color: var(--bt-text-muted); border-color: transparent; }
body.biotour-ui :is(input, textarea)::placeholder { color: var(--bt-placeholder); opacity: 1; }
body.biotour-ui :is(input, select, textarea):not(:disabled):not([readonly]):hover { border-color: var(--bt-border-hover); }
body.biotour-ui :is(input, select, textarea):focus { border-color: var(--primary); }
body.biotour-ui :is(input, select, textarea).is-success { border-color: #359B47; background: var(--success-soft); }
body.biotour-ui :is(input, select, textarea)[aria-invalid="true"] { border-color: #B4232F; background: var(--danger-soft); }
body.biotour-ui :is(input, select, textarea):disabled { background: var(--bt-disabled); color: var(--bt-text-muted); border-color: transparent; }
body.biotour-ui :is(input, textarea)[readonly] { background: var(--bt-readonly); color: var(--bt-text-muted); border-color: transparent; }
body.biotour-ui .request-field-error { color: var(--danger); margin-block-start: 0; }
body.biotour-ui :is(.notice.info) { background: var(--bt-info-soft); border-color: var(--bt-info-border); color: var(--bt-info); }
body.biotour-ui :is(.notice.success) { background: var(--success-soft); border-color: #D0EED6; color: var(--success); }
body.biotour-ui :is(.notice.warning) { background: var(--warning-soft); border-color: #FCEBB0; color: var(--warning); }
body.biotour-ui :is(.notice.danger) { background: var(--danger-soft); border-color: #F9CACA; color: var(--danger); }
body.biotour-ui.request-page .alert.alert-warning { background: var(--bt-warning-soft); border-color: var(--bt-warning-border); color: var(--bt-warning); }
body.biotour-ui .organization-evidence a[download] { text-decoration: underline; text-underline-offset: 0.15em; }
body.biotour-ui .notification-preview strong { font-size: var(--bt-small); }
body.biotour-ui .notification-preview small { font-size: var(--bt-caption); }

body.biotour-ui :is(.page-actions, .inline-actions, .form-actions, .signup-actions, .organizer-nav) { gap: var(--bt-space-3); }
body.biotour-ui :is(.form-group, .invite-form) { gap: var(--bt-space-3); }
body.biotour-ui .form-grid { gap: var(--bt-space-6); }
body.biotour-ui :is(.card, .stat-card) { padding: var(--bt-space-7); }
body.biotour-ui .card { margin-block-end: var(--bt-space-6); }
body.biotour-ui :is(.workspace-row, .table th, .table td) { padding-block: var(--bt-space-4); }
body.biotour-ui :is(.table th, .table td) { padding-inline: var(--bt-space-4); }
body.biotour-ui :is(.workspace-row, .sidebar-workspace) { gap: var(--bt-space-3); }
body.biotour-ui :is(.sidebar-workspace, .request-main .form-grid > fieldset, .alert) { padding: var(--bt-space-5); }
body.biotour-ui :is(.request-header nav, .organizer-sidebar-footer) { gap: var(--bt-space-5); }
body.biotour-ui .request-card { gap: var(--bt-space-4); }
body.biotour-ui .field-help { margin-block: 4px 8px; }
body.biotour-ui .switch-warning { padding: var(--bt-space-7); }
body.biotour-ui .invite-card { padding: var(--bt-space-8); }
body.biotour-ui .invite-form { margin-block-start: var(--bt-space-6); }
body.biotour-ui .organizer-content { padding: var(--bt-space-8); }
body.biotour-ui .request-main { padding: var(--bt-space-8) var(--bt-space-7); }

@media (max-width: 800px) {
  body.biotour-ui {
    --bt-h1: 36px;
    --bt-h2: 32px;
    --bt-h3: 28px;
    --bt-h4: 22px;
    --bt-body-large: 18px;
    --bt-control-height: 44px;
    --bt-control-small: 36px;
  }
  body.biotour-ui :is(.organizer-content, .request-main, .invite-card) { padding: var(--bt-space-6) var(--bt-space-5); }
  body.biotour-ui :is(.card, .stat-card, .switch-warning) { padding: var(--bt-space-5); }
}

body.biotour-ui .button-ghost:is(:disabled, [aria-disabled="true"]) { background: transparent; border-color: transparent; }
body.biotour-ui :is(.alert-error, .lifecycle-banner.status-danger) { border-color: var(--bt-error-border); }
body.biotour-ui .alert-success { border-color: var(--bt-success-border); }
body.biotour-ui .lifecycle-banner.status-warning { color: var(--warning); border-color: var(--bt-warning-border); }
body.biotour-ui :is(.field-error, .form-error) { color: var(--danger); font-size: var(--bt-caption); }
body.biotour-ui .form-group > label { color: #1D1C17; }
