/* =====================================================================
   Ehna legacy compat for Nova
   Renders the default-theme (Bootstrap + Sngine utility) markup used by
   Ehna payment modals and Ehna admin screens with Nova's tokens.
   Scoped to .ehna-legacy so native Nova screens are untouched.
   ===================================================================== */
.ehna-legacy {
  --lg-border: color-mix(in oklab, var(--color-base-content) 12%, transparent);
  --lg-muted: color-mix(in oklab, var(--color-base-content) 60%, transparent);
  --lg-soft: color-mix(in oklab, var(--color-base-content) 5%, var(--color-base-100));
  color: var(--color-base-content);
  font-size: .9375rem;
  line-height: 1.5;
}
.ehna-legacy *, .ehna-legacy *::before, .ehna-legacy *::after { box-sizing: border-box; }
.ehna-legacy a:not(.btn) { color: var(--color-primary); }
.ehna-legacy h1, .ehna-legacy h2, .ehna-legacy h3, .ehna-legacy h4, .ehna-legacy h5, .ehna-legacy h6 { font-weight: 600; line-height: 1.3; margin: 0 0 .5rem; }
.ehna-legacy h5 { font-size: 1.05rem; } .ehna-legacy h6 { font-size: .95rem; }
.ehna-legacy hr, .ehna-legacy .divider { border: 0; border-top: 1px solid var(--lg-border); margin: 1rem 0; height: 0; }
.ehna-legacy .heading-small { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lg-muted); }

/* modal parts */
.ehna-legacy .modal-header { display: flex; align-items: center; gap: .75rem; padding: 0 0 1rem; border-bottom: 1px solid var(--lg-border); margin-bottom: 1rem; }
.ehna-legacy .modal-title { flex: 1; margin: 0; font-size: 1.05rem; font-weight: 700; }
.ehna-legacy .btn-close {
  width: 2rem; height: 2rem; border: 0; border-radius: 999px; cursor: pointer; flex-shrink: 0;
  background: var(--lg-soft) center/.75rem no-repeat url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23888'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
}
.ehna-legacy .modal-body { padding: 0; }
.ehna-legacy .modal-footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; padding-top: 1rem; margin-top: 1rem; border-top: 1px solid var(--lg-border); }

/* buttons */
.ehna-legacy .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  min-height: 2.5rem; padding: .5rem 1rem; border: 1px solid transparent; border-radius: .85rem;
  font-size: .875rem; font-weight: 600; line-height: 1.2; cursor: pointer; text-decoration: none;
  background: var(--lg-soft); color: var(--color-base-content); transition: filter .15s ease, transform .1s ease;
}
.ehna-legacy .btn:hover { filter: brightness(1.08); }
.ehna-legacy .btn:active { transform: scale(.98); }
.ehna-legacy .btn:disabled, .ehna-legacy .btn.disabled { opacity: .55; pointer-events: none; }
.ehna-legacy .btn-sm { min-height: 2rem; padding: .3rem .75rem; font-size: .8125rem; border-radius: .7rem; }
.ehna-legacy .btn-lg { min-height: 3rem; padding: .7rem 1.4rem; font-size: 1rem; }
.ehna-legacy .btn-primary { background: var(--color-primary); color: var(--color-primary-content); }
.ehna-legacy .btn-secondary { background: var(--color-secondary); color: var(--color-secondary-content); }
.ehna-legacy .btn-success { background: var(--color-success); color: var(--color-success-content); }
.ehna-legacy .btn-danger { background: var(--color-error); color: var(--color-error-content); }
.ehna-legacy .btn-warning { background: var(--color-warning); color: var(--color-warning-content); }
.ehna-legacy .btn-info { background: var(--color-info); color: var(--color-info-content); }
.ehna-legacy .btn-light, .ehna-legacy .btn-default { background: var(--lg-soft); color: var(--color-base-content); border-color: var(--lg-border); }
.ehna-legacy .btn-dark { background: var(--color-neutral); color: var(--color-neutral-content); }
.ehna-legacy [class*="btn-outline-"] { background: transparent; border-color: currentColor; }
.ehna-legacy .btn-outline-primary { color: var(--color-primary); }
.ehna-legacy .btn-outline-danger { color: var(--color-error); }
.ehna-legacy .btn-outline-secondary, .ehna-legacy .btn-outline-light { color: var(--lg-muted); }
.ehna-legacy .btn-block, .ehna-legacy .d-grid > .btn { width: 100%; }
/* payment gateway tiles */
.ehna-legacy .btn-payment {
  flex-direction: column; min-height: 4.25rem; width: 100%; padding: .75rem; border: 1px solid var(--lg-border);
  border-radius: 1rem; background: var(--color-base-100); font-size: .8125rem;
}
.ehna-legacy .btn-payment:hover { border-color: var(--color-primary); box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 18%, transparent); }
.ehna-legacy .btn-payment img, .ehna-legacy .btn-payment svg { max-height: 1.75rem; width: auto; }

/* forms */
.ehna-legacy .form-group { margin-bottom: 1rem; }
.ehna-legacy .form-label, .ehna-legacy label.col-form-label { display: block; margin-bottom: .35rem; font-size: .875rem; font-weight: 600; }
.ehna-legacy .form-text { margin-top: .3rem; font-size: .8rem; color: var(--lg-muted); }
.ehna-legacy .form-control, .ehna-legacy .form-select, .ehna-legacy textarea:not(.ql-editor), .ehna-legacy select:not([class]), .ehna-legacy input[type="text"]:not([class]), .ehna-legacy input[type="number"]:not([class]) {
  display: block; width: 100%; min-height: 2.6rem; padding: .55rem .8rem; border: 1px solid var(--lg-border); border-radius: .85rem;
  background: var(--color-base-100); color: var(--color-base-content); font-size: .9rem;
}
.ehna-legacy .form-control:focus, .ehna-legacy .form-select:focus { outline: 0; border-color: var(--color-primary); box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 22%, transparent); }
.ehna-legacy .form-control-sm { min-height: 2.1rem; padding: .35rem .65rem; font-size: .85rem; }
.ehna-legacy textarea.form-control { min-height: 6rem; }
.ehna-legacy .form-check { display: flex; align-items: center; gap: .5rem; margin-bottom: .35rem; }
.ehna-legacy .form-check-inline { display: inline-flex; margin-inline-end: 1rem; }
.ehna-legacy .form-check-input { width: 1.05rem; height: 1.05rem; accent-color: var(--color-primary); }
.ehna-legacy .form-switch .form-check-input { width: 2.2rem; }
.ehna-legacy .input-group { display: flex; } .ehna-legacy .input-group > * { border-radius: 0; } .ehna-legacy .input-group > :first-child { border-start-start-radius: .85rem; border-end-start-radius: .85rem; } .ehna-legacy .input-group > :last-child { border-start-end-radius: .85rem; border-end-end-radius: .85rem; }
.ehna-legacy .input-group-text { display: flex; align-items: center; padding: 0 .75rem; border: 1px solid var(--lg-border); background: var(--lg-soft); font-size: .85rem; }

/* Sngine switch */
.ehna-legacy .switch { position: relative; display: inline-block; width: 2.75rem; height: 1.5rem; flex-shrink: 0; }
.ehna-legacy .switch input { opacity: 0; width: 0; height: 0; }
.ehna-legacy .switch .slider { position: absolute; inset: 0; border-radius: 999px; background: color-mix(in oklab, var(--color-base-content) 22%, transparent); cursor: pointer; transition: background .2s; }
.ehna-legacy .switch .slider::before { content: ""; position: absolute; width: 1.1rem; height: 1.1rem; inset-inline-start: .2rem; top: .2rem; border-radius: 999px; background: #fff; transition: transform .2s; }
.ehna-legacy .switch input:checked + .slider { background: var(--color-primary); }
.ehna-legacy .switch input:checked + .slider::before { transform: translateX(1.25rem); }
[dir="rtl"] .ehna-legacy .switch input:checked + .slider::before { transform: translateX(-1.25rem); }
/* Sngine setting row */
.ehna-legacy .form-table-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .85rem; padding: .85rem 1rem; margin-bottom: .6rem; border-radius: 1rem; background: color-mix(in oklab, var(--color-base-200) 60%, transparent); }
.ehna-legacy .form-table-row .avatar { display: inline-flex; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; border-radius: .9rem; background: color-mix(in oklab, var(--ehna-orange) 14%, transparent); color: var(--ehna-orange); }
.ehna-legacy .form-table-row .avatar svg, .ehna-legacy .form-table-row .avatar img { width: 1.6rem !important; height: 1.6rem !important; }
.ehna-legacy .form-table-row .form-label { margin: 0; }

/* alerts & badges */
.ehna-legacy .alert { display: flex; gap: .6rem; align-items: flex-start; padding: .8rem 1rem; border-radius: .9rem; font-size: .875rem; border: 1px solid transparent; margin-bottom: 1rem; }
.ehna-legacy .alert-success { background: color-mix(in oklab, var(--color-success) 14%, transparent); color: var(--color-success); }
.ehna-legacy .alert-danger { background: color-mix(in oklab, var(--color-error) 14%, transparent); color: var(--color-error); }
.ehna-legacy .alert-warning { background: color-mix(in oklab, var(--color-warning) 16%, transparent); color: var(--color-warning); }
.ehna-legacy .alert-info, .ehna-legacy .alert-primary { background: color-mix(in oklab, var(--color-info) 14%, transparent); color: var(--color-base-content); border-color: color-mix(in oklab, var(--color-info) 30%, transparent); }
.ehna-legacy .badge { display: inline-flex; align-items: center; gap: .25rem; padding: .15rem .55rem; border-radius: 999px; font-size: .72rem; font-weight: 700; background: var(--lg-soft); }
.ehna-legacy .bg-success { background: var(--color-success) !important; color: #fff; }
.ehna-legacy .bg-danger { background: var(--color-error) !important; color: #fff; }
.ehna-legacy .bg-warning { background: var(--color-warning) !important; color: #111; }
.ehna-legacy .bg-info { background: var(--color-info) !important; color: #062a3c; }
.ehna-legacy .bg-primary { background: var(--color-primary) !important; color: #fff; }
.ehna-legacy .bg-secondary { background: color-mix(in oklab, var(--color-base-content) 35%, transparent) !important; color: #fff; }
.ehna-legacy .bg-light { background: var(--lg-soft) !important; }
.ehna-legacy .bg-dark { background: var(--color-neutral) !important; color: var(--color-neutral-content); }

/* cards, tables, tabs */
.ehna-legacy .card { border: 1px solid var(--lg-border); border-radius: 1.25rem; background: var(--color-base-100); overflow: hidden; margin-bottom: 1rem; }
.ehna-legacy .card-header { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--lg-border); font-weight: 600; background: transparent; }
.ehna-legacy .card-body { padding: 1.25rem; }
.ehna-legacy .card-footer { display: flex; justify-content: flex-end; gap: .5rem; padding: 1rem 1.25rem; border-top: 1px solid var(--lg-border); }
.ehna-legacy .table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.ehna-legacy .table th { text-align: start; font-weight: 600; color: var(--lg-muted); padding: .6rem .75rem; border-bottom: 1px solid var(--lg-border); white-space: nowrap; }
.ehna-legacy .table td { padding: .65rem .75rem; border-bottom: 1px solid var(--lg-border); vertical-align: middle; }
.ehna-legacy .table-hover tbody tr:hover { background: var(--lg-soft); }
.ehna-legacy .table-responsive { overflow-x: auto; }
.ehna-legacy .nav-tabs { display: flex; flex-wrap: wrap; gap: .25rem; padding: 0; margin: 0; list-style: none; border-bottom: 1px solid var(--lg-border); }
.ehna-legacy .nav-tabs .nav-link { display: inline-flex; align-items: center; padding: .6rem 1rem; border-bottom: 2px solid transparent; color: var(--lg-muted); font-weight: 600; text-decoration: none; }
.ehna-legacy .nav-tabs .nav-link.active { color: var(--color-primary); border-bottom-color: var(--color-primary); }
.ehna-legacy .tab-content > .tab-pane { display: none; } .ehna-legacy .tab-content > .tab-pane.active { display: block; }
.ehna-legacy .list-group { list-style: none; margin: 0; padding: 0; border: 1px solid var(--lg-border); border-radius: 1rem; overflow: hidden; }
.ehna-legacy .list-group-item { padding: .7rem 1rem; border-bottom: 1px solid var(--lg-border); } .ehna-legacy .list-group-item:last-child { border-bottom: 0; }

/* grid */
.ehna-legacy .row { display: flex; flex-wrap: wrap; margin-inline: -.5rem; }
.ehna-legacy .row > * { width: 100%; padding-inline: .5rem; }
.ehna-legacy .g-2 > * { padding: .25rem; }
@media (min-width: 576px) { .ehna-legacy .col-sm-4 { width: 33.333%; } .ehna-legacy .col-sm-6 { width: 50%; } }
@media (min-width: 768px) {
  .ehna-legacy .col-md-1 { width: 8.333%; } .ehna-legacy .col-md-2 { width: 16.666%; } .ehna-legacy .col-md-3 { width: 25%; } .ehna-legacy .col-md-4 { width: 33.333%; }
  .ehna-legacy .col-md-5 { width: 41.666%; } .ehna-legacy .col-md-6 { width: 50%; } .ehna-legacy .col-md-7 { width: 58.333%; } .ehna-legacy .col-md-8 { width: 66.666%; } .ehna-legacy .col-md-9 { width: 75%; } .ehna-legacy .col-md-12 { width: 100%; }
}
@media (min-width: 992px) { .ehna-legacy .col-lg-3 { width: 25%; } .ehna-legacy .col-lg-4 { width: 33.333%; } .ehna-legacy .col-lg-6 { width: 50%; } .ehna-legacy .col-lg-8 { width: 66.666%; } }
@media (min-width: 1200px) { .ehna-legacy .col-xl-3 { width: 25%; } .ehna-legacy .col-xl-4 { width: 33.333%; } }
.ehna-legacy .col { flex: 1 0 0; }

/* Sngine / Bootstrap utilities */
.ehna-legacy .x-hidden, .ehna-legacy .d-none { display: none !important; }
.ehna-legacy .d-block { display: block !important; } .ehna-legacy .d-flex { display: flex !important; } .ehna-legacy .d-grid { display: grid !important; } .ehna-legacy .d-inline-block { display: inline-block !important; }
@media (min-width: 576px) { .ehna-legacy .d-sm-block { display: block !important; } }
@media (min-width: 768px) { .ehna-legacy .d-md-block { display: block !important; } .ehna-legacy .d-md-none { display: none !important; } }
.ehna-legacy .flex-wrap { flex-wrap: wrap; } .ehna-legacy .align-items-center { align-items: center; } .ehna-legacy .justify-content-between { justify-content: space-between; } .ehna-legacy .flex-grow-1 { flex-grow: 1; }
.ehna-legacy .gap-2 { gap: .5rem; } .ehna-legacy .gap-3 { gap: 1rem; }
.ehna-legacy .w-100 { width: 100% !important; } .ehna-legacy .h-100 { height: 100%; }
.ehna-legacy .float-end { float: inline-end; } .ehna-legacy .float-start { float: inline-start; } .ehna-legacy .clearfix::after { content: ""; display: table; clear: both; }
.ehna-legacy .text-end { text-align: end; } .ehna-legacy .text-start { text-align: start; } .ehna-legacy .text-center { text-align: center; }
.ehna-legacy .text-muted { color: var(--lg-muted) !important; } .ehna-legacy .text-success { color: var(--color-success) !important; } .ehna-legacy .text-danger { color: var(--color-error) !important; } .ehna-legacy .text-warning { color: var(--color-warning) !important; } .ehna-legacy .text-primary { color: var(--color-primary) !important; } .ehna-legacy .text-info { color: var(--color-info) !important; }
.ehna-legacy .fw-bold, .ehna-legacy strong { font-weight: 700; } .ehna-legacy .small, .ehna-legacy small { font-size: .82em; }
.ehna-legacy .rounded { border-radius: .75rem; } .ehna-legacy .rounded-circle { border-radius: 999px; } .ehna-legacy .border { border: 1px solid var(--lg-border); }
.ehna-legacy .text-break { overflow-wrap: anywhere; } .ehna-legacy .text-truncate { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ehna-legacy .mb0 { margin-bottom: 0 !important; } .ehna-legacy .mb5 { margin-bottom: 5px; } .ehna-legacy .mb10 { margin-bottom: 10px; } .ehna-legacy .mb15 { margin-bottom: 15px; } .ehna-legacy .mb20 { margin-bottom: 20px; } .ehna-legacy .mb30 { margin-bottom: 30px; }
.ehna-legacy .mt0 { margin-top: 0 !important; } .ehna-legacy .mt5 { margin-top: 5px; } .ehna-legacy .mt10 { margin-top: 10px; } .ehna-legacy .mt15 { margin-top: 15px; } .ehna-legacy .mt20 { margin-top: 20px; }
.ehna-legacy .mr5, .ehna-legacy .me-1 { margin-inline-end: 5px; } .ehna-legacy .mr10, .ehna-legacy .me-2 { margin-inline-end: 10px; } .ehna-legacy .mr15 { margin-inline-end: 15px; } .ehna-legacy .ml5, .ehna-legacy .ms-1 { margin-inline-start: 5px; } .ehna-legacy .ml10 { margin-inline-start: 10px; }
.ehna-legacy .mtb15 { margin-block: 15px; } .ehna-legacy .mtb20 { margin-block: 20px; }
.ehna-legacy .plr10 { padding-inline: 10px; } .ehna-legacy .plr15 { padding-inline: 15px; } .ehna-legacy .plr20 { padding-inline: 20px; } .ehna-legacy .plr0 { padding-inline: 0 !important; }
.ehna-legacy .ptb10 { padding-block: 10px; } .ehna-legacy .ptb20 { padding-block: 20px; } .ehna-legacy .ptb0 { padding-block: 0 !important; } .ehna-legacy .p40 { padding: 40px; } .ehna-legacy .p-3 { padding: 1rem; }
.ehna-legacy .pl-md-4 { padding-inline-start: 0; } @media (min-width: 768px) { .ehna-legacy .pl-md-4 { padding-inline-start: 1.5rem; } }
.ehna-legacy .main-icon { color: var(--ehna-orange); }
.ehna-legacy .fa-fw { width: 1.25em; text-align: center; }

/* collapse & dropdowns (driven by js/ehna/compat-nova.js) */
.ehna-legacy .collapse:not(.show) { display: none; }
.ehna-legacy .dropdown, .ehna-legacy .btn-group { position: relative; display: inline-flex; }
.ehna-legacy .dropdown-menu { display: none; position: absolute; z-index: 60; top: 100%; inset-inline-end: 0; min-width: 12rem; margin-top: .35rem; padding: .35rem; border: 1px solid var(--lg-border); border-radius: 1rem; box-shadow: 0 12px 30px -12px rgba(0,0,0,.45); list-style: none; }
.ehna-legacy .dropdown-menu.show { display: block; }
.ehna-legacy .dropdown-item { display: flex; align-items: center; gap: .5rem; width: 100%; padding: .5rem .75rem; border-radius: .7rem; color: var(--color-base-content); text-decoration: none; font-size: .875rem; }
.ehna-legacy .dropdown-item:hover { background: var(--lg-soft); }
/* admin content area in Nova */
.ehna-admin-legacy { padding-bottom: 2rem; }
.ehna-admin-legacy > .card:first-child, .ehna-admin-legacy .card { box-shadow: none; }
.ehna-admin-legacy .card-header.with-icon { font-size: 1.05rem; }
.ehna-admin-legacy .card-header .float-end { margin-inline-start: auto; float: none; }
.ehna-admin-legacy .main-icon { width: 1.5rem; height: 1.5rem; }
.ehna-admin-legacy .dataTables_wrapper { font-size: .875rem; }

/* admin dashboard stat panels — calm tinted cards, colored accent only */
.ehna-legacy .stat-panel {
  --tone: var(--ehna-orange);
  position: relative; overflow: hidden; margin-bottom: 1rem; padding: 1.1rem 1.25rem; min-height: 7rem;
  border: 1px solid color-mix(in oklab, var(--tone) 22%, var(--lg-border));
  border-radius: 1.25rem;
  background: linear-gradient(140deg, color-mix(in oklab, var(--tone) 11%, var(--color-base-100)) 0%, var(--color-base-100) 70%);
  color: var(--color-base-content);
}
.ehna-legacy .stat-panel::before { content: ""; position: absolute; inset-block: 1rem; inset-inline-start: 0; width: 4px; border-radius: 0 4px 4px 0; background: var(--tone); opacity: .75; }
.ehna-legacy .stat-panel .stat-cell { position: relative; z-index: 1; display: flex; flex-direction: column; gap: .25rem; }
.ehna-legacy .stat-panel .bg-icon { position: absolute; z-index: 0; inset-inline-end: .25rem; bottom: -.5rem; font-size: 4.5rem; color: var(--tone); opacity: .12; }
.ehna-legacy .stat-panel .text-xxlg { color: color-mix(in oklab, var(--tone) 80%, var(--color-base-content)); }
.ehna-legacy .stat-panel a { color: var(--lg-muted) !important; font-weight: 600; font-size: .82rem; text-decoration: none; }
.ehna-legacy .stat-panel a:hover { color: var(--tone) !important; }
.ehna-legacy .text-xxlg { font-size: 1.9rem; font-weight: 800; line-height: 1.1; }
.ehna-legacy .text-xlg { font-size: 1.35rem; font-weight: 700; } .ehna-legacy .text-lg { font-size: 1rem; font-weight: 600; }
.ehna-legacy .bg-gradient-primary { --tone: var(--ehna-orange); }
.ehna-legacy .bg-gradient-teal, .ehna-legacy .bg-gradient-success { --tone: #0e9aa7; }
.ehna-legacy .bg-gradient-cyan, .ehna-legacy .bg-gradient-info { --tone: #38bdf8; }
.ehna-legacy .bg-gradient-warning { --tone: #e9a23b; }
.ehna-legacy .bg-gradient-red, .ehna-legacy .bg-gradient-danger { --tone: #e8677e; }
.ehna-legacy .bg-gradient-gray { --tone: #94a3b8; }
.ehna-legacy .bg-gradient-purple { --tone: #a78bfa; }
