/**
 * List99 UX containment — protects certified/security-sensitive surfaces from
 * style.css global resets while preserving approved public + dashboard UX.
 *
 * Loaded AFTER assets/css/style.css on public shell and dashboard shell.
 * Does not replace list99-*.css page modules.
 */

/* Keep dashboard layout chrome inside the shell root. */
#dashboardShell {
  min-height: 100vh;
}

#dashboardShell .slide-panel,
#dashboardShell #slidePanel {
  z-index: 1040;
}

#dashboardShell #panelBackdrop,
#dashboardShell .panel-backdrop {
  z-index: 1035;
}

/* Mobile panels must not cover destructive/financial confirmations outside shell. */
body.dashboard-shell-body.no-scroll #dashboardShell .btn-danger,
body.dashboard-shell-body.no-scroll #dashboardShell [data-confirm],
body.dashboard-shell-body.no-scroll #dashboardShell .modal {
  position: relative;
  z-index: 1060;
}

/* Auth / password flows: keep controls operable and readable. */
body.l99-ux-shell .login-box input,
body.l99-ux-shell .login-box button,
body.l99-ux-shell .auth-box input,
body.l99-ux-shell .auth-box button,
body.l99-ux-shell form[action*="reset-password"] input,
body.l99-ux-shell form[action*="forgot-password"] input,
body.l99-ux-shell form[action*="login"] input,
body.l99-ux-shell form[action*="register"] input {
  opacity: 1 !important;
  pointer-events: auto !important;
  visibility: visible !important;
}

body.l99-ux-shell .login-box .alert,
body.l99-ux-shell .auth-box .alert,
body.l99-ux-shell .form-error,
body.l99-ux-shell .error-message,
body.l99-ux-shell .text-danger {
  display: block;
  visibility: visible;
  opacity: 1;
  color: #b42318;
}

/* Cart / checkout / payment: restore operable controls over UX globals. */
body.l99-ux-shell .cart-page button,
body.l99-ux-shell .cart-page input,
body.l99-ux-shell .cart-page select,
body.l99-ux-shell .checkout-page button,
body.l99-ux-shell .checkout-page input,
body.l99-ux-shell .checkout-page select,
body.l99-ux-shell .payment-method-page button,
body.l99-ux-shell .payment-method-page input,
body.l99-ux-shell .payment-method-page select,
body.l99-ux-shell #payment-form button,
body.l99-ux-shell #payment-form input,
body.l99-ux-shell .shipping-page button,
body.l99-ux-shell .shipping-page input,
body.l99-ux-shell .shipping-page select {
  opacity: 1 !important;
  pointer-events: auto !important;
  max-width: 100%;
}

body.l99-ux-shell .cart-page .btn-danger,
body.l99-ux-shell .checkout-page .btn-danger,
body.l99-ux-shell .payment-method-page .btn-danger,
body.l99-ux-shell [data-action="cancel-order"],
body.l99-ux-shell [data-action="delete"],
body.l99-ux-shell .btn-confirm-destructive {
  position: relative;
  z-index: 5;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Do not let UX link color hide security messaging. */
body.l99-ux-shell .alert,
body.l99-ux-shell .alert-warning,
body.l99-ux-shell .alert-danger,
body.l99-ux-shell .alert-info {
  opacity: 1 !important;
  visibility: visible !important;
  display: block;
}

/* Focus visibility for keyboard users on redesigned controls. */
body.l99-ux-shell a:focus-visible,
body.l99-ux-shell button:focus-visible,
body.l99-ux-shell input:focus-visible,
body.l99-ux-shell select:focus-visible,
body.l99-ux-shell textarea:focus-visible,
body.l99-ux-shell [tabindex]:focus-visible {
  outline: 2px solid #0d6efd;
  outline-offset: 2px;
}

/* Admin never loads this sheet via admin/_header — documented invariant. */

/* Global selectors intentionally retained from style.css (minimum public UX):
 * - box-sizing on *
 * - body font-family/size/color for public shell
 * - header.main-header chrome
 * Documented in deployment docs 18.
 */
