/* Plugin: InstructorPro Suite | File Version: 2016v3 */
/* ==========================================================================
   EZ2D Global Theme Tokens v3.2 - MODERN TOGGLE SWITCHES
   - Updated toggle design to match modern rounded rectangle style
   - Larger size with better touch targets
   - Smooth animations
   ========================================================================== */

:root {
  /* ------------------------------------------------------------
   * BRAND
   * ---------------------------------------------------------- */
  --ez2d-primary:        #2563eb;
  --ez2d-primary-soft:   #dbeafe;
  --ez2d-primary-strong: #1d4ed8;
  --ez2d-accent:         #f97316;

  /* ------------------------------------------------------------
   * NEUTRALS
   * ---------------------------------------------------------- */
  --ez2d-bg:             #f3f4f6;
  --ez2d-bg-elevated:    #ffffff;
  --ez2d-bg-soft:        #eef2ff;

  --ez2d-border-subtle:  #e5e7eb;
  --ez2d-border-strong:  #cbd5f5;

  --ez2d-text:           #111827;
  --ez2d-text-muted:     #6b7280;
  --ez2d-text-soft:      #9ca3af;

  /* ------------------------------------------------------------
   * TYPOGRAPHY
   * ---------------------------------------------------------- */
  --ez2d-font-size:      16px;
  --ez2d-line-height:    1.5;
  --ez2d-heading-scale:  1.25;

  /* ------------------------------------------------------------
   * LAYOUT / SPACING
   * ---------------------------------------------------------- */
  --ez2d-content-max-width: 1200px;
  --ez2d-grid-gap:          1.25rem;
  --ez2d-page-padding:      1.75rem;

  /* ------------------------------------------------------------
   * CARDS + BUTTONS
   * ---------------------------------------------------------- */
  --ez2d-card-radius:   16px;
  --ez2d-btn-radius:    999px;
  --ez2d-card-shadow:   0 10px 20px var(--ez2d-primary);
  --ez2d-shadow-md:     0 10px 20px var(--ez2d-primary);
  --ez2d-shadow-sm:     0 4px 14px var(--ez2d-primary);
  --ez2d-btn-shadow:    0 12px 32px rgba(37, 99, 235, 0.45);
  --ez2d-spinner-size:  64px;
  --ez2d-spinner-border: 4px;
  --ez2d-spinner-track: rgba(0, 0, 0, 0.15);
  --ez2d-spinner-head:  var(--ez2d-primary);
  --ez2d-spinner-shadow: none;
  --ez2d-wheel-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='white' stroke-width='6' stroke-linecap='round' stroke-linejoin='round'><circle cx='32' cy='32' r='26'/><circle cx='32' cy='32' r='7'/><path d='M32 6v13'/><path d='M10 44l11-6'/><path d='M54 44l-11-6'/><path d='M21 38a14 14 0 0 0 22 0'/></svg>");
  --ez2d-success:       #22c55e;
  --ez2d-success-text:  #1e293b;

  /* ------------------------------------------------------------
   * STATUS COLOURS (calendar, lists, etc.)
   * ---------------------------------------------------------- */
  --ez2d-status-booked:      #3b82f6;
  --ez2d-status-completed:   #22c55e;
  --ez2d-status-cancelled:   #ef4444;
  --ez2d-status-no-show:     #f97316;
  --ez2d-status-available:   #10b981;

  /* ------------------------------------------------------------
   * SIDEBAR THEME (GLOBAL)
   * ---------------------------------------------------------- */
  --sidebar-shape:       circle;
  --sidebar-icon-size:   20px;

  --sidebar-bg:          var(--ez2d-bg);
  --sidebar-button-bg:   #ffffff;
  --sidebar-icon-color:  var(--ez2d-primary);
  --sidebar-text-color:  #111827;
}

/* ==========================================================================
   BASE SCOPE & NEUTRAL SURFACE
   ========================================================================== */

body.ez2d-admin,
.ez2d-scope {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--ez2d-font-size);
  line-height: var(--ez2d-line-height);
  color: var(--ez2d-text);
  background: var(--ez2d-bg);
}

.ez2d-scope,
body.ez2d-admin {
  color: var(--ez2d-text);
  background: var(--ez2d-bg);
}

.ez2d-scope .ez2d-card,
body.ez2d-admin .ez2d-card {
  background: var(--ez2d-bg-elevated);
  color: var(--ez2d-text);
}

/* ==========================================================================
   EZ2D Button  Apple-Style Pill (Global, Single Source of Truth)
   ========================================================================== */

.ez2d-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  padding: 10px 22px;
  font-size: 0.95rem;
  font-weight: 600;

  background: var(--ez2d-primary);
  color: #fff;

  border: none;
  border-radius: var(--ez2d-btn-radius);
  cursor: pointer;

  box-shadow: var(--ez2d-btn-shadow);
  transition:
    background 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.15s ease;
}

.ez2d-btn:hover {
  background: var(--ez2d-primary-strong);
  box-shadow: 0 16px 36px rgba(37, 99, 235, 0.55);
  transform: translateY(-1px);
}

.ez2d-btn:active {
  transform: translateY(1px);
  box-shadow: 0 8px 20px rgba(37, 99, 235, 0.35);
}

/* Sizes */
.ez2d-btn-sm {
  padding: 7px 16px;
  font-size: 0.85rem;
}

.ez2d-btn-lg {
  padding: 14px 26px;
  font-size: 1.05rem;
}

/* Variants */
.ez2d-btn-soft {
  background: var(--ez2d-bg-soft);
  color: var(--ez2d-text);
  box-shadow: none;
}

.ez2d-btn-soft:hover {
  background: var(--ez2d-border-subtle);
  box-shadow: none;
  transform: none;
}

.ez2d-btn-danger {
  background: #ef4444;
  box-shadow: 0 12px 28px rgba(239, 68, 68, 0.45);
}

.ez2d-btn-danger:hover {
  background: #dc2626;
  box-shadow: 0 16px 36px rgba(239, 68, 68, 0.55);
}

/* Icon inside button */
.ez2d-btn svg,
.ez2d-btn i {
  width: 18px;
  height: 18px;
  display: inline-block;
}

/* ==========================================================================
   EZ2D Icons  Global SVG Sizing
   ========================================================================== */

.ez2d-icon-svg,
.ez2d-icon svg {
  width: 20px;
  height: 20px;
  display: inline-block;
  flex-shrink: 0;
}

/* Optional: sidebar icons use custom size variable */
.ez2d-sidebar .ez2d-icon svg {
  width: var(--sidebar-icon-size);
  height: var(--sidebar-icon-size);
}

/* ==========================================================================
   EZ2D Global 3D Action Buttons (Edit & Delete)
   ========================================================================== */

.ez2d-btn-3d {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
  box-shadow: 
    0 2px 4px rgba(0, 0, 0, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  font-size: 0;
  color: transparent;
}

.ez2d-btn-3d:hover {
  transform: translateY(-1px);
  box-shadow: 
    0 4px 8px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.ez2d-btn-3d:active {
  transform: translateY(1px);
  box-shadow: 
    0 1px 2px rgba(0, 0, 0, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

/* ==========================================================================
   Global PDF Button (Orders / Payments / Expenses)
   ========================================================================== */

.ez2d-pdf-btn {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ecfdf5;
  color: #16a34a;
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(34, 197, 94, 0.18);
  transition: all 0.2s ease;
}

.ez2d-pdf-btn:hover {
  background: #dcfce7;
  color: #15803d;
  transform: translateY(-1px);
}

.ez2d-pdf-btn .dashicons {
  width: 18px;
  height: 18px;
  font-size: 18px;
  line-height: 1;
}

/* Edit Button (Blue) */
.ez2d-btn-edit-3d {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%) !important;
  color: white !important;
}

.ez2d-btn-edit-3d:hover {
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%) !important;
}

/* Delete Button (Red) */
.ez2d-btn-delete-3d {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%) !important;
  color: white !important;
}

.ez2d-btn-delete-3d:hover {
  background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%) !important;
}

/* Cancel Button (Slate) */
.ez2d-btn-cancel-3d {
  background: linear-gradient(135deg, #94a3b8 0%, #64748b 100%);
  color: white;
}

.ez2d-btn-cancel-3d:hover {
  background: linear-gradient(135deg, #64748b 0%, #475569 100%);
}

/* Icons using Unicode/SVG */
.ez2d-btn-3d::before {
  content: '';
  display: block;
  width: 18px;
  height: 18px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* Hide any fallback <img> inside 3D action buttons */
.ez2d-btn-3d img {
  display: none !important;
}

.ez2d-btn-edit-3d img {
  display: none;
}

.ez2d-btn-edit-3d::before {
  content: '' !important;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25z'/%3E%3Cpath d='M20.71 7.04a1 1 0 0 0 0-1.41l-2.34-2.34a1 1 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3C/svg%3E") !important;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.ez2d-btn-delete-3d img {
  display: none;
}

.ez2d-btn-delete-3d::before {
  content: '' !important;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E") !important;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.ez2d-btn-cancel-3d img {
  display: none;
}

.ez2d-btn-cancel-3d::before {
  content: '';
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M21.8 5.2a1 1 0 0 0-1.4-1.4L3.7 20.5a1 1 0 1 0 1.4 1.4L21.8 5.2z'/%3E%3Cpath d='M20.4 22a1 1 0 0 0 1.4-1.4L5 3.7a1 1 0 0 0-1.4 1.4L20.4 22z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}


.ez2d-btn-deactivate-3d {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%) !important;
  color: white !important;
}

.ez2d-btn-deactivate-3d:hover {
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%) !important;
}

.ez2d-btn-deactivate-3d img {
  display: none;
}

.ez2d-btn-deactivate-3d::before {
  content: '' !important;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M12 5c-5 0-9.27 3.11-11 7 1.02 2.29 2.8 4.23 5.06 5.5L4 20l1.41 1.41 16-16L20 4l-2.03 2.03C16.21 5.36 14.14 5 12 5zm0 4a3 3 0 0 1 3 3c0 .55-.15 1.06-.41 1.5L10.5 9.41A3 3 0 0 1 12 9zm-7.31 3c.88 1.45 2.23 2.7 3.86 3.55l1.57-1.57A3 3 0 0 1 9 12c0-.5.12-.97.33-1.4L7.38 8.65A8.9 8.9 0 0 0 4.69 12zM12 19c2.08 0 4.06-.46 5.8-1.27l-1.68-1.68A3 3 0 0 1 12 15a3 3 0 0 1-1.32-.3l-1.6 1.6A9.54 9.54 0 0 0 12 19zm7.31-7c-.5-1.04-1.2-2.01-2.07-2.86l-1.49 1.49c.48.43.9.92 1.26 1.46-.72 1.17-1.77 2.2-3.08 3.02l1.55 1.55A10.66 10.66 0 0 0 19.31 12z'/%3E%3C/svg%3E") !important;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* Size variants */
.ez2d-btn-3d.ez2d-sm {
  width: 32px;
  height: 32px;
}

.ez2d-btn-3d.ez2d-lg {
  width: 40px;
  height: 40px;
}/* 
   Mobile Optimizations (All Toggle Types)
    */

@media (max-width: 768px) {}

/* ==========================================================================
   Dashboard Settings  Action Buttons & Layout Fixes
   (Toggles now use universal styles above)
   ========================================================================== */

.ez2d-dashboard-settings .ez2d-struct-actions .ez2d-btn {
  background: rgba(255, 255, 255, 0.16);
  color: #ffffff;
  box-shadow: none;
}

.ez2d-dashboard-settings .ez2d-struct-actions .ez2d-btn:hover {
  background: rgba(255, 255, 255, 0.28);
}

.ez2d-dashboard-settings .ez2d-children-btn {
  color: #ffffff;
}

.ez2d-dashboard-settings .ez2d-struct-actions {
  flex-wrap: wrap;
  align-items: center;
  row-gap: 8px;
}

/* ==========================================================================
   Global Spinner & Success Message
   ========================================================================== */

#ez2d-global-spinner,
.ez2d-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 999999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  --ez2d-spinner-track: rgba(255, 255, 255, 0.3);
  --ez2d-spinner-head: var(--ez2d-primary);
}

#ez2d-global-spinner.active,
.ez2d-overlay.active {
  opacity: 1;
  visibility: visible;
}

#ez2d-global-spinner[aria-hidden="false"],
.ez2d-overlay[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
}

#ez2d-global-spinner[aria-hidden="true"],
.ez2d-overlay[aria-hidden="true"] {
  opacity: 0;
  visibility: hidden;
}

/* Light overlay variant */
.ez2d-global-spinner {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.85);
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  --ez2d-spinner-size: 64px;
  --ez2d-spinner-track: rgba(0, 0, 0, 0.15);
  --ez2d-spinner-head: var(--ez2d-primary);
}

.ez2d-global-spinner.active,
.ez2d-global-spinner[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
  display: flex;
}

/* Spinner Animation */
.ez2d-spinner {
  width: var(--ez2d-spinner-size);
  height: var(--ez2d-spinner-size);
  border: var(--ez2d-spinner-border) solid var(--ez2d-spinner-track);
  border-top-color: var(--ez2d-spinner-head);
  border-radius: 50%;
  animation: ez2d-spin 0.8s linear infinite;
  box-shadow: var(--ez2d-spinner-shadow);
}

/* Steering wheel spinner override */
.ez2d-spinner,
.spinner,
.ez2d-sys-spinner,
.ez2d-loader-spinner,
.ez2d-nav-spinner,
.ez2d-fe-contact-submit-spinner,
.ez2d-scan-spinner {
  width: var(--ez2d-spinner-size) !important;
  height: var(--ez2d-spinner-size) !important;
  border: none !important;
  border-radius: 0 !important;
  background-color: #2563eb !important;
  -webkit-mask-image: var(--ez2d-wheel-mask);
  mask-image: var(--ez2d-wheel-mask);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center;
  mask-position: center;
  animation: ez2d-spin 0.9s linear infinite !important;
  box-shadow: none !important;
}

.ez2d-global-spinner .ez2d-spinner {
  display: block !important;
  opacity: 1 !important;
}

.spinner {
  width: var(--ez2d-spinner-size);
  height: var(--ez2d-spinner-size);
  display: inline-block;
}

.ez2d-scan-spinner {
  width: 56px;
  height: 56px;
  display: inline-block;
}

@keyframes ez2d-spin {
  to { 
    transform: rotate(360deg); 
  }
}

/* Centered Success Message */
.ez2d-centered-success {
  position: absolute;
  top: calc(50% + 56px);
  left: 50%;
  transform: translate(-50%, -50%) scale(0.9);
  background: transparent;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  text-align: center;
  opacity: 0;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: 1000000;
}

.ez2d-centered-success.visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* Success Checkmark Icon */
.ez2d-check-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 20px;
  display: block;
}

.ez2d-centered-success .ez2d-check-icon {
  display: none;
}

.ez2d-check-icon circle {
  stroke: var(--ez2d-success);
  stroke-width: 2;
  fill: none;
  stroke-dasharray: 166;
  stroke-dashoffset: 166;
  animation: ez2d-stroke-circle 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}

.ez2d-check-icon path {
  stroke: var(--ez2d-success);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  stroke-dasharray: 48;
  stroke-dashoffset: 48;
  animation: ez2d-stroke-check 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.4s forwards;
}

@keyframes ez2d-stroke-circle {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes ez2d-stroke-check {
  to {
    stroke-dashoffset: 0;
  }
}

.ez2d-centered-msg {
  font-size: 18px;
  font-weight: 600;
  color: var(--ez2d-success);
  margin: 0;
  line-height: 1.4;
}

/* Small Success Box */
.ez2d-success-box {
  position: fixed;
  top: 80px;
  right: 20px;
  background: white;
  padding: 16px 24px;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: center;
  gap: 12px;
  opacity: 0;
  transform: translateX(100px);
  transition: all 0.3s ease;
  z-index: 999999;
}

.ez2d-success-box.visible {
  opacity: 1;
  transform: translateX(0);
}

.ez2d-success-box .ez2d-success-icon {
  width: 24px;
  height: 24px;
  color: #22c55e;
  flex-shrink: 0;
}

.ez2d-success-box .ez2d-success-msg {
  font-size: 14px;
  font-weight: 500;
  color: #1e293b;
}

/* ==========================================================================
   READONLY ACCESS (VIEW ONLY)
   ========================================================================== */
body.ez2d-readonly .ez2d-module-content button,
body.ez2d-readonly .ez2d-module-content .ez2d-btn,
body.ez2d-readonly .ez2d-module-content .ez2d-btn-3d,
body.ez2d-readonly .ez2d-module-content .ez2d-btn-save,
body.ez2d-readonly .ez2d-module-content .ez2d-btn-edit-3d,
body.ez2d-readonly .ez2d-module-content .ez2d-btn-delete-3d,
body.ez2d-readonly .ez2d-module-content .ez2d-edit,
body.ez2d-readonly .ez2d-module-content .ez2d-delete,
body.ez2d-readonly .ez2d-module-content .ez2d-edit-order,
body.ez2d-readonly .ez2d-module-content .ez2d-delete-order,
body.ez2d-readonly .ez2d-module-content .ez2d-product-edit,
body.ez2d-readonly .ez2d-module-content .ez2d-product-delete,
body.ez2d-readonly .ez2d-module-content input[type="submit"],
body.ez2d-readonly .ez2d-module-content .ez2d-confirm-ok,
body.ez2d-readonly .ez2d-module-content .ez2d-confirm-yes {
  display: none !important;
}

body.ez2d-readonly .ez2d-module-content input,
body.ez2d-readonly .ez2d-module-content select,
body.ez2d-readonly .ez2d-module-content textarea {
  pointer-events: none;
  opacity: 0.6;
}

body.ez2d-readonly .ez2d-module-content .ez2d-readonly-hidden {
  display: none !important;
}

/* ==========================================================================
   LAYOUT / OVERFLOW SAFETY
   ========================================================================== */

.ez2d-card {
  overflow: visible;
  max-height: unset;
}

.ez2d-list-card,
.ez2d-profile-form-card {
  overflow: visible;
}

.ez2d-table-wrap {
  overflow: visible;
}

.ez2d-dashboard-main {
  overflow: visible;
  overflow-y: visible;
  overflow-x: visible;
}

.ez2d-admin-dashboard-shell {
  overflow: visible;
}

body.ez2d-admin {
  overflow-y: auto;
  height: auto;
}

/* ==========================================================================
   FE Calendar  Reschedule Button Fix
   ========================================================================== */

.ez2d-fe-btn-change {
  position: relative;
  z-index: 999999;
  pointer-events: auto;
}

#ez2d-fe-lesson-drawer *::before,
#ez2d-fe-lesson-drawer *::after {
  pointer-events: none;
}

.ez2d-fe-drawer-actions {
  pointer-events: auto;
  z-index: 999999;
  position: relative;
}

/* ==========================================================================
   Card Safety
   ========================================================================== */

.ez2d-card {
  border-radius: var(--ez2d-card-radius);
  box-shadow: var(--ez2d-card-shadow);
}

/* ==========================================================================
   Admin Dashboard Card Glow Override
   ========================================================================== */
body.ez2d-admin .ez2d-card,
body.ez2d-admin .ez2d-card-padded,
body.ez2d-admin .ez2d-modern-card,
.ez2d-asp-wrap .ez2d-card,
.ez2d-asp-wrap .ez2d-card-padded,
.ez2d-asp-wrap .ez2d-modern-card {
  box-shadow: var(--ez2d-shadow-md, 0 10px 20px var(--ez2d-primary)) !important;
}

/* ==========================================================================
   Unsaved Changes Modal
   ========================================================================== */
.ez2d-unsaved-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 99999;
}

.ez2d-unsaved-overlay.is-open {
  display: flex;
}

.ez2d-unsaved-modal {
  width: min(520px, 92vw);
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.25);
  padding: 22px 22px 18px;
}

.ez2d-unsaved-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 8px;
  color: #0f172a;
}

.ez2d-unsaved-body {
  font-size: 0.98rem;
  color: #334155;
  line-height: 1.4;
  margin-bottom: 18px;
}

.ez2d-unsaved-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

/* ==========================================================================
   Global Fullscreen Spinner
   ========================================================================== */

#ez2d-global-overlay {
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: rgba(255,255,255,.9);
  display: none;
  align-items: center;
  justify-content: center;
}

#ez2d-global-overlay.is-active {
  display: flex;
}

.ez2d-global-box {
  text-align: center;
}

.ez2d-global-message {
  margin-top: 12px;
  font-size: 15px;
  font-weight: 600;
  color: var(--ez2d-text);
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

@media (max-width: 640px) {
  .ez2d-centered-success {
    padding: 0;
    max-width: 90%;
  }
  
  .ez2d-check-icon {
    width: 60px;
    height: 60px;
  }
  
  .ez2d-centered-msg {
    font-size: 16px;
  }
  
  .ez2d-success-box {
    right: 10px;
    left: 10px;
    justify-content: center;
  }
}

/* ==========================================================================
   Reduced Motion Preferences
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {}
/* Enable/Disable (eye-off) icon for 3D action buttons */
.ez2d-btn-enable-3d,
.ez2d-btn-disable-3d {
  color: white !important;
}

.ez2d-btn-enable-3d {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%) !important;
}

.ez2d-btn-enable-3d:hover {
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%) !important;
}

.ez2d-btn-disable-3d {
  background: linear-gradient(135deg, #6b7280 0%, #4b5563 100%) !important;
}

.ez2d-btn-disable-3d:hover {
  background: linear-gradient(135deg, #4b5563 0%, #374151 100%) !important;
}

.ez2d-btn-enable-3d img,
.ez2d-btn-disable-3d img {
  display: none;
}

.ez2d-btn-enable-3d::before,
.ez2d-btn-disable-3d::before {
  content: '' !important;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M12 5c-5 0-9.27 3.11-11 7 1.02 2.29 2.8 4.23 5.06 5.5L4 20l1.41 1.41 16-16L20 4l-2.03 2.03C16.21 5.36 14.14 5 12 5zm0 4a3 3 0 0 1 3 3c0 .55-.15 1.06-.41 1.5L10.5 9.41A3 3 0 0 1 12 9zm-7.31 3c.88 1.45 2.23 2.7 3.86 3.55l1.57-1.57A3 3 0 0 1 9 12c0-.5.12-.97.33-1.4L7.38 8.65A8.9 8.9 0 0 0 4.69 12zM12 19c2.08 0 4.06-.46 5.8-1.27l-1.68-1.68A3 3 0 0 1 12 15a3 3 0 0 1-1.32-.3l-1.6 1.6A9.54 9.54 0 0 0 12 19zm7.31-7c-.5-1.04-1.2-2.01-2.07-2.86l-1.49 1.49c.48.43.9.92 1.26 1.46-.72 1.17-1.77 2.2-3.08 3.02l1.55 1.55A10.66 10.66 0 0 0 19.31 12z'/%3E%3C/svg%3E") !important;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

