/* SHIELD estate auth standard. Load after sovereign.css; reuse its theme tokens. */
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) {
  min-width: 0;
  overflow-wrap: anywhere;
}
.estate-auth-page { min-height: 100vh; min-height: 100dvh; align-items: start; align-content: start; }
.estate-auth-frame, .estate-auth-stack, .auth-card, .qs-auth-page { min-width: 0; max-width: 100%; }
.estate-auth-page .estate-auth-frame, .estate-auth-page .estate-auth-stack { width: min(100%, 452px); margin-inline: auto; }
.estate-auth-card, .auth-card { box-sizing: border-box; }
.estate-auth-card :where(form, fieldset, .qs-auth-surface, .qs-auth-field, .auth-form) { min-width: 0; }
.estate-auth-card :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  box-sizing: border-box; max-width: 100%; min-height: 48px;
}
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) :is(
  .btn, .dv8-btn-primary, .dv8-btn-secondary, .qs-auth-primary-button, .qs-auth-secondary-button,
  .qs-auth-link-button, .submit-button, .ghost-button, .cicx-auth-help-button,
  .cicx-auth-help-dialog__close, .qs-auth-password-toggle, .signin-input-toggle, .btn-close, button[data-theme-choice]) {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  box-sizing: border-box; min-height: 48px; min-width: 48px; max-width: 100%;
  padding: 12px 16px; border: 1px solid var(--divider); border-radius: var(--radius-control);
  font: 600 14px/1.35 var(--font-body, 'IBM Plex Sans', sans-serif);
  text-align: center; white-space: normal; text-decoration: none; cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) :is(
  .qs-auth-primary-button, .submit-button, .btn-primary, .dv8-btn-primary) {
  background: var(--brand-crimson); border-color: var(--brand-crimson); color: #fff; box-shadow: none;
}
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) :is(
  .qs-auth-primary-button, .submit-button, .btn-primary, .dv8-btn-primary):hover:not(:disabled):not([aria-disabled="true"]) {
  background: var(--brand-crimson-hover); border-color: var(--brand-crimson-hover);
}
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) :is(
  .btn-secondary, .dv8-btn-secondary, .qs-auth-secondary-button, .qs-auth-link-button, .ghost-button,
  .cicx-auth-help-button, .cicx-auth-help-dialog__close, .btn-close) { background: var(--surface2); color: var(--ink); }
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) .btn-danger {
  background: transparent; border-color: var(--r-key); color: var(--r-text);
}
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) :is(button, a, input, select, textarea):focus-visible {
  outline: 2px solid var(--r-key); outline-offset: 3px;
}
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) :is(button, .btn, .ghost-button)[aria-busy="true"] { cursor: progress; }
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) :is(button, .btn, .ghost-button):is(:disabled, [aria-disabled="true"]) {
  background: var(--surface3); border-color: var(--border); color: var(--ink-mute);
  box-shadow: none; cursor: not-allowed; transform: none;
}
.estate-auth-page :is(.qs-auth-input-shell, .signin-input-shell) input { min-height: 48px; }
.estate-auth-page .cicx-theme-segmented { display: flex; flex-wrap: wrap; justify-content: center; }
.estate-auth-page :is(.qs-auth-input-shell--with-action, .signin-input-shell--with-toggle) input { padding-right: 56px; }
.estate-auth-page :is(.qs-auth-password-toggle, .signin-input-toggle) {
  top: 0; bottom: 0; right: 0; padding: 12px; border: 0; border-radius: var(--radius-control);
  background: transparent; color: var(--ink);
}
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) :is(.auth-actions, .qs-auth-button-row, .estate-auth-actions, .form-actions, .qs-consent-inline-actions, .session-error-actions) {
  display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin-top: 20px;
}
:is(body[data-ci-cx-surface="auth"], .estate-auth-page, .auth-container, .qs-auth-page) :is(.auth-actions, .qs-auth-button-row, .form-actions, .session-error-actions) > :is(button, a) { flex: 1 1 160px; }
.estate-auth-card :is(.qs-auth-check, .qs-consent-choice) { display: flex; align-items: center; gap: 10px; min-height: 48px; }
.estate-auth-card :is(.qs-auth-check, .qs-consent-choice) label { flex: 1; cursor: pointer; }
.estate-auth-card .camera-preview { display: block; width: 100%; max-width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
:where(body[data-ci-cx-surface="auth"], .estate-auth-page) [hidden] { display: none !important; }
@media (max-width: 480px), (max-height: 500px) {
  .estate-auth-page { padding: 20px 12px; }
  .estate-auth-page .estate-auth-card { padding: 22px 16px; }
  .estate-auth-page :is(.qs-login-inline-tools, .estate-auth-actions) { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  :where(body[data-ci-cx-surface="auth"], .estate-auth-page) * { scroll-behavior: auto; transition: none; }
}
@media (forced-colors: active) {
  :where(body[data-ci-cx-surface="auth"], .estate-auth-page) :is(button, .btn, input, select, textarea) { border: 1px solid ButtonText; }
}

/* v4.6.3 consent anatomy. Runtime notices reflect the configured storage policy. */
.estate-consent-intro { text-align:center; }
.estate-consent-intro .qs-auth-kicker { display:flex;flex-wrap:wrap;justify-content:center;gap:8px;font:12px var(--font-mono);letter-spacing:.1em;color:var(--r-key); }
.estate-consent-authority { font-size:9px; }
.estate-consent-icon { display:grid;place-items:center;width:60px;height:60px;margin:20px auto;border:1px solid color-mix(in srgb,var(--brand-crimson) 28%,transparent);border-radius:var(--radius-card,13px);background:color-mix(in srgb,var(--brand-crimson) 10%,transparent);color:var(--r-key); }
.estate-consent-icon .ss-icon { width:28px;height:28px; }
.estate-consent-factors { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 10px; }
.estate-consent-factor { display:flex;flex-direction:column;gap:6px;padding:14px 10px;min-height:76px;border:1px solid var(--border);border-radius:var(--radius-control,7px);background:var(--glass-input,var(--surface2));color:var(--ink);text-align:left; }
.estate-consent-factor[aria-pressed=true] { border-color:var(--r-key);background:color-mix(in srgb,var(--brand-crimson) 10%,transparent); }
.estate-consent-factor small { font-size:11px;line-height:1.4; }
.estate-consent-factor:disabled { cursor:not-allowed;opacity:.7; }
.estate-consent-policy { font-size:11px;line-height:1.5;color:var(--ink-soft); }
.ss-btn-auth { display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:0 22px;border:0;border-radius:var(--radius-control,7px);background:var(--brand-crimson);color:#fff;font:700 14px var(--font-body);cursor:pointer; }
.ss-btn-auth:disabled,.ss-btn-auth[aria-busy=true] { opacity:.6;cursor:wait; }
.ss-btn-auth--ghost { background:transparent;color:var(--ink);border:1px solid var(--border); }

/* Login pack v4.6.3: one responsive frame, canonical action and consent layout. */
.estate-auth-page .estate-auth-toolbar { justify-content:flex-end; margin-bottom:16px; }
.estate-auth-page .estate-lockup { gap:14px; align-items:center; }
.estate-auth-page .estate-lockup img { width:72px; height:72px; flex:0 0 72px; background:transparent; }
.estate-auth-page .estate-lockup strong { font:800 36px/1.1 var(--font-display); letter-spacing:-.025em; }
.estate-auth-page .estate-lockup strong sup { font:500 .3em var(--font-mono); vertical-align:super; }
.estate-auth-page .estate-lockup small { font-size:7.5px; }
.estate-auth-page .estate-auth-card { border:1px solid var(--border); border-top:3px solid var(--brand-crimson); padding:26px; }
.estate-auth-page .progress-container { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.estate-auth-page .estate-stage-bar { display:block; height:3px; width:100%; background:var(--border); }
.estate-auth-page .progress-step.current .estate-stage-bar { background:var(--brand-crimson); }
.estate-auth-page .progress-step.completed .estate-stage-bar { background:var(--rose); }
.estate-auth-page .step-label { font:500 8.5px/1.5 var(--font-mono); }
.estate-auth-page .step-authority { font:400 8px/1.5 var(--font-mono); }
.estate-auth-page .ss-btn-auth { width:100%; min-height:48px; font:700 14px/1.35 var(--font-body); background:var(--brand-crimson); border-color:var(--brand-crimson); color:#fff; box-shadow:0 8px 20px -8px color-mix(in srgb,var(--brand-crimson) 75%,transparent); }
.estate-auth-page .ss-btn-auth:hover:not(:disabled) { background:var(--brand-crimson-hover); }
.estate-auth-page .ss-btn-auth:is(:disabled,[aria-busy="true"]) { opacity:.6; }
.estate-auth-page .ss-btn-auth--ghost { background:transparent; color:var(--ink); border:1px solid var(--border); box-shadow:none; }
.estate-auth-page .estate-consent-intro h1 { text-align:center; }
.estate-auth-page .estate-consent-intro p { font-size:13px; }
.estate-auth-page .estate-consent-authority { padding:2px 8px; border:1px solid color-mix(in srgb,var(--brand-crimson) 28%,transparent); border-radius:4px; }
.estate-auth-page .estate-consent-factors { gap:6px; margin:14px 0; }
.estate-auth-page .estate-consent-factor { min-width:0; padding:9px 11px; min-height:68px; }
.estate-auth-page .estate-consent-factor strong { font-size:12px; }
.estate-auth-page .estate-consent-factor small { font:400 9px/1.5 var(--font-mono); }
.estate-consent-points { list-style:none; margin:16px 0; padding:6px 16px; border:1px solid var(--border); border-radius:var(--radius-panel); background:var(--page-bg); }
.estate-consent-points li { display:flex; gap:12px; padding:13px 0; font-size:13px; }
.estate-consent-points li+li { border-top:1px solid var(--border); }
.estate-consent-points svg { width:20px; height:20px; flex:0 0 20px; color:var(--r-key); }
.estate-consent-points small { display:block; margin-top:3px; color:var(--ink-mute); line-height:1.5; }
.estate-auth-page .estate-consent-details { margin:14px 0; font-size:12px; }
.estate-consent-details summary { cursor:pointer; min-height:44px; display:flex; align-items:center; color:var(--ink); font-weight:600; }
.estate-consent-details p { font-size:12px; }
.estate-auth-page .estate-consent-actions { display:flex; flex-direction:column; gap:10px; margin-top:18px; }
.estate-auth-page .estate-consent-actions.qs-auth-button-row>button { flex:0 0 auto; width:100%; min-height:48px; }
.estate-auth-page .estate-consent-actions #declineBtn { order:2; }
.estate-auth-page .estate-consent-actions #testCameraBtn, .estate-auth-page .estate-consent-actions #acceptBtn { order:1; }
.estate-machine-status { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:14px 0; padding:12px; border:1px solid var(--border); border-radius:var(--radius-control); font:400 10px/1.5 var(--font-mono); }
.estate-machine-status div { min-width:0; }
.estate-machine-status dt { color:var(--ink-mute); }
.estate-machine-status dd { margin:3px 0 0; }
.estate-auth-page .qs-consent-camera { margin:14px 0; }
.estate-auth-page .qs-consent-camera label { font-size:12px; }
.estate-auth-page .camera-preview { width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--scanner,#171719); border:1px dashed var(--border); border-radius:var(--radius-control); }
.estate-auth-page .qs-consent-camera__info { font-size:12px; margin-top:10px; }
.estate-auth-page .qs-consent-choice { align-items:flex-start; font-size:12px; line-height:1.5; }
.estate-auth-page .qs-consent-choice input { flex:0 0 18px; width:18px; height:18px; margin-top:3px; }
@media(max-width:380px) {
 .estate-auth-page .estate-lockup strong { font-size:30px; }
 .estate-auth-page .estate-lockup img { width:60px; height:60px; flex-basis:60px; }
 .estate-auth-page .estate-auth-card { padding:22px 16px; }
 .estate-auth-page .estate-machine-status { grid-template-columns:1fr; }
}

.estate-auth-page .estate-consent-body .qs-consent-choice label { font:400 12px/1.5 var(--font-body); letter-spacing:normal; text-transform:none; }

.estate-consent-points svg { fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
