/* Simulator-only foundation: avoids importing the site's fixed dark color rules. */
body.sim-page *, body.sim-page *::before, body.sim-page *::after { box-sizing: border-box; margin: 0; padding: 0; }
body.sim-page button, body.sim-page select { cursor: pointer; }
body.sim-page button { padding: 6px 10px; font-size: 12px; }
body.sim-page button:disabled { cursor: not-allowed; opacity: .55; }
body.sim-page a { color: var(--sim-accent); }
body.sim-page header { display: flex; align-items: center; }
body.sim-page .logo-area { display: flex; align-items: center; gap: 8px; text-decoration: none; }
body.sim-page .header-center-title, body.sim-page .userbar-info { display: flex; align-items: center; gap: 8px; }
body.sim-page .header-center-title { pointer-events: none; white-space: nowrap; }
body.sim-page .logo-rx { border: 1px solid var(--sim-border); padding: 3px 6px; }
body.sim-page :is(.role-badge,.usage-badge) { border: 1px solid var(--sim-border); background: var(--sim-chrome); color: var(--sim-text); padding: 3px 6px; }
body.sim-page .header-logo-banner { display: block; }
body.sim-page :is(#lockScreen,.weekly-limit-modal,#welcomeModal) {
  position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center;
  padding: 20px; background: var(--sim-overlay);
}
body.sim-page :is(.lock-box,.weekly-limit-dialog,.welcome-box) {
  width: min(460px, 100%); max-height: 90dvh; overflow: auto; padding: 24px;
  background: var(--sim-surface); color: var(--sim-text); border: 1px solid var(--sim-border); box-shadow: var(--sim-shadow);
}
body.sim-page :is(.lock-title,.password-reset-title,.weekly-limit-dialog h2) { font: 500 22px/1.25 var(--sim-font-display); margin-bottom: 10px; }
body.sim-page :is(.lock-sub,.weekly-limit-dialog p) { color: var(--sim-muted); margin-bottom: 14px; }
body.sim-page #authForm, body.sim-page :is(.password-reset-panel,.password-reset-step) { display: flex; flex-direction: column; gap: 10px; }
body.sim-page :is(.password-reset-panel,.password-reset-step)[hidden] { display: none; }
body.sim-page .auth-tabs { display: flex; gap: 6px; }
body.sim-page .auth-tabs button { flex: 1; }
body.sim-page .auth-tabs .tab-active { background: var(--sim-queue-bg); color: var(--sim-queue-text); }
body.sim-page .lock-box :is(input[type=text],input[type=email],input[type=password]) { width: 100%; min-height: 34px; }
body.sim-page :is(.password-field,.password-input-wrap) { position: relative; }
body.sim-page .password-input-wrap input { padding-right: 64px !important; }
body.sim-page .password-toggle-btn { position: absolute; right: 4px; top: 4px; min-height: 26px; }
body.sim-page :is(.password-toggle,.password-visibility-toggle) { display: flex; gap: 6px; align-items: center; }
body.sim-page :is(.remember-device-row,.terms-check-row) { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; }
body.sim-page .terms-consent { flex-direction: column; gap: 8px; }
body.sim-page .terms-warning { display: none; padding: 8px; background: var(--sim-hold-bg); color: var(--sim-hold-text); border: 1px solid var(--sim-hold-border); }
body.sim-page .terms-consent.needs-read .terms-warning { display: block; }
body.sim-page .lock-error { color: var(--sim-rejected-text) !important; min-height: 18px; }
body.sim-page .password-reset-status.success { color: var(--sim-ready-text) !important; }
body.sim-page .password-reset-status.error { color: var(--sim-rejected-text); }
body.sim-page :is(.password-reset-status.info,.muted,.hint) { color: var(--sim-muted) !important; }
body.sim-page :is(.forgot-password-btn,.password-reset-back) { text-decoration: underline; }
body.sim-page .weekly-limit-primary { width: 100%; background: var(--sim-accent); color: var(--sim-on-accent); }
body.sim-page .weekly-limit-dismiss { margin-top: 10px; width: 100%; }
body.sim-page .weekly-limit-price { margin-top: 8px; color: var(--sim-muted); }

body.sim-page .lock-box input:is([type=checkbox],[type=radio]) { width: 16px; height: 16px; min-height: 0; padding: 0; margin: 0; flex: 0 0 16px; }

/* Keep authentication controls within their panels at narrow widths and zoom. */
body.sim-page .lock-box { min-width: 0; }
body.sim-page .lock-box :is(form,input,button,.password-input-wrap,.password-reset-step,.auth-tabs) { min-width: 0; max-width: 100%; }
body.sim-page .lock-box .password-input-wrap { width: 100%; }
body.sim-page .lock-box .password-input-wrap input { display: block; padding-right: 70px !important; }
body.sim-page .lock-box .password-toggle-btn {
  top: 4px; bottom: 4px; right: 4px; height: auto; min-height: 0 !important;
  width: 56px; padding: 0 6px !important; display: flex; align-items: center; justify-content: center;
}
body.sim-page .lock-box :is(.remember-device-row,.terms-check-row) { align-items: center; }
body.sim-page .lock-box :is(.lock-error,.password-reset-status,.terms-consent) { overflow-wrap: anywhere; }