/*
 * Shared premium theme for authenticated Firm and Superadmin portals.
 * Selectors are intentionally scoped to .elaw-panel so public/client pages
 * and unauthenticated flows retain their existing presentation.
 */
.elaw-panel {
  --panel-navy: #0b2342;
  --panel-navy-deep: #07172d;
  --panel-gold: #c8963e;
  --panel-gold-bright: #e3bd78;
  --panel-gold-soft: #fbf2e2;
  --panel-blue: #2d6cdf;
  --panel-green: #168257;
  --panel-amber: #b77912;
  --panel-red: #c44049;
  --panel-ink: #15243a;
  --panel-muted: #697a91;
  --panel-line: #dce5ef;
  --panel-line-soft: #e9eef5;
  --panel-surface: #ffffff;
  --panel-surface-alt: #f7f9fc;
  background: #f4f7fb;
  color: var(--panel-ink);
}

.elaw-panel .main-wrapper,
.elaw-panel .page-wrapper {
  min-height: 100vh;
  background:
    radial-gradient(circle at 100% 0, rgba(200, 150, 62, .065), transparent 23rem),
    #f4f7fb;
}

.elaw-panel .page-wrapper > .content {
  max-width: 1680px;
  margin: 0 auto;
  padding-top: 26px;
  padding-bottom: 32px;
}

.elaw-panel ::selection {
  background: #dbe8fa;
  color: var(--panel-navy-deep);
}

/* Page context headers used across existing list, form and detail pages. */
.elaw-panel .page-wrapper .content > .page-header,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.border-bottom,
.elaw-panel .page-wrapper .content > .d-flex.align-items-sm-center.flex-sm-row.flex-column.border-bottom,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.pb-3.mb-3.border-bottom {
  position: relative;
  align-items: center !important;
  gap: 16px;
  margin-bottom: 24px !important;
  padding: 20px 22px !important;
  overflow: hidden;
  border: 1px solid rgba(198, 213, 229, .86) !important;
  border-radius: 16px;
  background:
    linear-gradient(100deg, rgba(255, 255, 255, .98), rgba(248, 251, 255, .96)),
    var(--panel-surface);
  box-shadow: 0 10px 26px rgba(14, 40, 70, .055);
}

.elaw-panel .page-wrapper .content > .page-header::before,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.border-bottom::before,
.elaw-panel .page-wrapper .content > .d-flex.align-items-sm-center.flex-sm-row.flex-column.border-bottom::before,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.pb-3.mb-3.border-bottom::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 5px;
  height: 100%;
  background: linear-gradient(180deg, var(--panel-gold-bright), var(--panel-gold));
  content: '';
}

.elaw-panel .page-wrapper .content > .page-header h1,
.elaw-panel .page-wrapper .content > .page-header h2,
.elaw-panel .page-wrapper .content > .page-header h3,
.elaw-panel .page-wrapper .content > .page-header h4,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.border-bottom h1,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.border-bottom h2,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.border-bottom h3,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.border-bottom h4,
.elaw-panel .page-wrapper .content > .d-flex.align-items-sm-center.flex-sm-row.flex-column.border-bottom h1,
.elaw-panel .page-wrapper .content > .d-flex.align-items-sm-center.flex-sm-row.flex-column.border-bottom h2,
.elaw-panel .page-wrapper .content > .d-flex.align-items-sm-center.flex-sm-row.flex-column.border-bottom h3,
.elaw-panel .page-wrapper .content > .d-flex.align-items-sm-center.flex-sm-row.flex-column.border-bottom h4,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.pb-3.mb-3.border-bottom h1,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.pb-3.mb-3.border-bottom h2,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.pb-3.mb-3.border-bottom h3,
.elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.pb-3.mb-3.border-bottom h4 {
  color: var(--panel-ink);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 700 !important;
  letter-spacing: -.018em;
}

.elaw-panel .page-wrapper .content > .page-header .text-muted,
.elaw-panel .page-wrapper .content > [class*='border-bottom'] > div .text-muted {
  color: var(--panel-muted) !important;
}

/* Core surface, cards and metrics. */
.elaw-panel .page-wrapper .card,
.elaw-panel .page-wrapper .accordion-item,
.elaw-panel .page-wrapper .list-group,
.elaw-panel .page-wrapper .offcanvas,
.elaw-panel .page-wrapper .dropdown-menu {
  border-color: var(--panel-line);
  border-radius: 14px;
  background: var(--panel-surface);
  box-shadow: 0 8px 22px rgba(15, 42, 73, .055);
}

.elaw-panel .page-wrapper .card {
  overflow: hidden;
}

.elaw-panel .page-wrapper .card-header {
  min-height: 58px;
  padding: 16px 19px;
  border-bottom-color: var(--panel-line-soft);
  background: linear-gradient(180deg, #fff, #fbfcfe);
  color: var(--panel-ink);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 700;
}

.elaw-panel .page-wrapper .card-body { padding: 20px; }
.elaw-panel .page-wrapper .card-footer { border-top-color: var(--panel-line-soft); background: #fbfcfe; }
.elaw-panel .page-wrapper .bg-light { background: var(--panel-surface-alt) !important; }

/* Buttons preserve their existing semantic class but gain a consistent hierarchy. */
.elaw-panel .page-wrapper .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 37px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .005em;
  box-shadow: none;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background-color .16s ease;
}

.elaw-panel .page-wrapper .btn:hover { transform: translateY(-1px); }
.elaw-panel .page-wrapper .btn:focus-visible,
.elaw-panel .page-wrapper .form-control:focus,
.elaw-panel .page-wrapper .form-select:focus,
.elaw-panel .page-wrapper .form-check-input:focus {
  outline: none;
  box-shadow: 0 0 0 4px rgba(45, 108, 223, .14) !important;
}

.elaw-panel .page-wrapper .btn-primary,
.elaw-panel .page-wrapper .btn-outline-primary:hover,
.elaw-panel .page-wrapper .btn-check:checked + .btn-outline-primary {
  border-color: var(--panel-navy) !important;
  background: var(--panel-navy) !important;
  color: #fff !important;
  box-shadow: 0 7px 15px rgba(11, 35, 66, .16);
}

.elaw-panel .page-wrapper .btn-primary:hover { border-color: #16477f !important; background: #16477f !important; }
.elaw-panel .page-wrapper .btn-outline-primary { border-color: #b8c9df; background: #fff; color: var(--panel-navy); }
.elaw-panel .page-wrapper .btn-outline-secondary { border-color: #d5dee8; background: #fff; color: #4b6077; }
.elaw-panel .page-wrapper .btn-outline-secondary:hover { border-color: #bfcedd; background: #f3f7fb; color: var(--panel-navy); }
.elaw-panel .page-wrapper .btn-outline-warning { border-color: #ead7a9; background: #fffbf2; color: #97650e; }
.elaw-panel .page-wrapper .btn-warning { border-color: #d1a85c; background: #e5c183; color: #2d2618; }
.elaw-panel .page-wrapper .btn-outline-success { border-color: #b9dfce; background: #f4fcf8; color: #14724d; }
.elaw-panel .page-wrapper .btn-outline-danger { border-color: #efc7cb; background: #fff8f8; color: #b4343d; }
.elaw-panel .page-wrapper .btn-danger { border-color: var(--panel-red); background: var(--panel-red); }
.elaw-panel .page-wrapper .btn-light { border-color: #dce5ef; background: #f8fafc; color: #40546b; }

/* Form, filter and input consistency. */
.elaw-panel .page-wrapper .form-label,
.elaw-panel .page-wrapper legend {
  color: #334860;
  font-size: 12px;
  font-weight: 750;
}

.elaw-panel .page-wrapper .form-control,
.elaw-panel .page-wrapper .form-select,
.elaw-panel .page-wrapper .input-group-text {
  min-height: 40px;
  border-color: #d7e1ec;
  border-radius: 8px;
  background: #fff;
  color: var(--panel-ink);
  font-size: 12.5px;
  box-shadow: none;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.elaw-panel .page-wrapper .input-group > .form-control,
.elaw-panel .page-wrapper .input-group > .form-select { border-radius: 0; }
.elaw-panel .page-wrapper .input-group > :first-child { border-top-left-radius: 8px; border-bottom-left-radius: 8px; }
.elaw-panel .page-wrapper .input-group > :last-child { border-top-right-radius: 8px; border-bottom-right-radius: 8px; }
.elaw-panel .page-wrapper textarea.form-control { min-height: 104px; }
.elaw-panel .page-wrapper .form-control::placeholder { color: #9ba9b8; }
.elaw-panel .page-wrapper .form-control:hover,
.elaw-panel .page-wrapper .form-select:hover { border-color: #b6c7d9; }
.elaw-panel .page-wrapper .form-control:focus,
.elaw-panel .page-wrapper .form-select:focus { border-color: #4f82c7; background: #fff; }
.elaw-panel .page-wrapper .form-check-input { border-color: #aebdce; }
.elaw-panel .page-wrapper .form-check-input:checked { border-color: var(--panel-navy); background-color: var(--panel-navy); }
.elaw-panel .page-wrapper .form-text,
.elaw-panel .page-wrapper .text-muted { color: var(--panel-muted) !important; }

.elaw-panel .page-wrapper .card > .card-body.d-flex.flex-wrap,
.elaw-panel .page-wrapper .filter-bar,
.elaw-panel .page-wrapper .filters,
.elaw-panel .page-wrapper .toolbar {
  gap: 12px !important;
  padding: 16px !important;
  border: 1px solid #e2e9f1;
  border-radius: 11px;
  background: #f8fafd;
}

/* Tables and data-heavy pages. */
.elaw-panel .page-wrapper .table-responsive {
  border: 1px solid var(--panel-line);
  border-radius: 11px;
}

.elaw-panel .page-wrapper table.table,
.elaw-panel .page-wrapper .dataTable {
  margin-bottom: 0;
  color: #354a61;
  font-size: 12.5px;
}

.elaw-panel .page-wrapper table.table > :not(caption) > * > *,
.elaw-panel .page-wrapper .dataTable > :not(caption) > * > * {
  padding: 13px 14px;
  border-bottom-color: #e6edf4;
  vertical-align: middle;
}

.elaw-panel .page-wrapper table.table thead th,
.elaw-panel .page-wrapper .dataTable thead th {
  border-bottom: 0;
  background: #edf3f9;
  color: #38516d;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
}

.elaw-panel .page-wrapper table.table tbody tr,
.elaw-panel .page-wrapper .dataTable tbody tr { transition: background-color .14s ease; }
.elaw-panel .page-wrapper table.table tbody tr:hover,
.elaw-panel .page-wrapper .dataTable tbody tr:hover { background: #f8fbff; }
.elaw-panel .page-wrapper table.table tbody tr:last-child > *,
.elaw-panel .page-wrapper .dataTable tbody tr:last-child > * { border-bottom: 0; }
.elaw-panel .page-wrapper .dataTables_wrapper .dataTables_filter input,
.elaw-panel .page-wrapper .dt-search input { min-height: 38px; border: 1px solid #d7e1ec; border-radius: 8px; }
.elaw-panel .page-wrapper .pagination { gap: 4px; }
.elaw-panel .page-wrapper .page-link { min-width: 34px; border-color: #dce5ef; border-radius: 7px !important; color: #4e6380; text-align: center; }
.elaw-panel .page-wrapper .page-item.active .page-link { border-color: var(--panel-navy); background: var(--panel-navy); }
.elaw-panel .page-wrapper td.dataTables_empty,
.elaw-panel .page-wrapper .dataTables_empty { padding: 34px !important; color: var(--panel-muted); font-weight: 650; text-align: center; }

/* Status language, tabs, notices, and drop-down surfaces. */
.elaw-panel .page-wrapper .badge {
  border-radius: 99px;
  font-size: 10px;
  font-weight: 760;
  letter-spacing: .02em;
}
.elaw-panel .page-wrapper .badge-soft-primary { border-color: #c9dafa !important; background: #edf4ff !important; color: #245cae !important; }
.elaw-panel .page-wrapper .badge-soft-success { border-color: #c4e7d7 !important; background: #eefbf4 !important; color: #12734d !important; }
.elaw-panel .page-wrapper .badge-soft-warning { border-color: #f0dfb9 !important; background: #fff9eb !important; color: #9c6911 !important; }
.elaw-panel .page-wrapper .badge-soft-danger { border-color: #f2d2d5 !important; background: #fff5f5 !important; color: #b83740 !important; }
.elaw-panel .page-wrapper .nav-tabs { gap: 5px; border-bottom-color: #dce5ef; }
.elaw-panel .page-wrapper .nav-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; border-radius: 7px 7px 0 0; color: #63758b; font-size: 12px; font-weight: 700; }
.elaw-panel .page-wrapper .nav-tabs .nav-link:hover { border-color: transparent; background: #f2f6fa; color: var(--panel-navy); }
.elaw-panel .page-wrapper .nav-tabs .nav-link.active { border-bottom-color: var(--panel-gold); background: #fff; color: var(--panel-navy); }
.elaw-panel .page-wrapper .alert { border: 1px solid; border-radius: 10px; font-size: 12.5px; box-shadow: 0 4px 13px rgba(15, 42, 73, .035); }
.elaw-panel .page-wrapper .alert-info { border-color: #c9def7; background: #f0f7ff; color: #245886; }
.elaw-panel .page-wrapper .alert-warning { border-color: #edddb8; background: #fff9ec; color: #86601f; }
.elaw-panel .page-wrapper .alert-success { border-color: #c7e6d8; background: #f0fbf5; color: #176d4c; }
.elaw-panel .page-wrapper .alert-danger { border-color: #f0d0d4; background: #fff5f6; color: #a93b43; }

/* Shared overlays used by form, image, ticket, calendar and confirmation workflows. */
.elaw-panel .modal-content,
.elaw-panel .swal2-popup {
  overflow: hidden;
  border: 1px solid #d8e3ee;
  border-radius: 16px !important;
  box-shadow: 0 24px 70px rgba(7, 23, 45, .24);
}
.elaw-panel .modal-header { padding: 18px 21px; border-bottom-color: var(--panel-line-soft); background: linear-gradient(180deg, #fff, #f9fbfe); }
.elaw-panel .modal-title,
.elaw-panel .swal2-title { color: var(--panel-ink); font-family: Georgia, 'Times New Roman', serif; font-weight: 700; }
.elaw-panel .modal-footer { border-top-color: var(--panel-line-soft); background: #fbfcfe; }
.elaw-panel .swal2-confirm { border-radius: 8px !important; background: var(--panel-navy) !important; }
.elaw-panel .swal2-cancel { border-radius: 8px !important; background: #edf2f7 !important; color: #41546b !important; }

/* Calendar and workflow pages inherit the same operational palette. */
.elaw-panel .fc .fc-toolbar-title { color: var(--panel-ink); font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 700; }
.elaw-panel .fc .fc-button-primary { border-color: var(--panel-navy); background: var(--panel-navy); font-size: 12px; font-weight: 700; }
.elaw-panel .fc .fc-button-primary:hover,
.elaw-panel .fc .fc-button-primary:not(:disabled).fc-button-active { border-color: #16477f; background: #16477f; }
.elaw-panel .fc-theme-standard td,
.elaw-panel .fc-theme-standard th { border-color: #e0e7ef; }
.elaw-panel .fc .fc-col-header-cell { background: #f2f6fa; color: #48617d; font-size: 11px; text-transform: uppercase; }
.elaw-panel .fc .fc-daygrid-day-number { color: #405775; font-weight: 700; }

.elaw-panel .main-wrapper > .footer {
  border-top-color: #dfe7ef !important;
  background: rgba(255, 255, 255, .92) !important;
  color: #6b7c91;
}
.elaw-panel .main-wrapper > .footer a { color: #9b6b18; font-weight: 700; }

/* Existing dashboards keep their bespoke layouts while adopting the portal palette. */
.elaw-firm-portal .firm-dashboard-page {
  --dash-blue: #bd8730;
  --dash-blue-deep: #704708;
  --dash-cyan: #d8ad63;
  --dash-card-soft: #fbf8f1;
  --dash-elevation: 0 12px 30px rgba(12, 35, 78, .075);
  background:
    radial-gradient(circle at 12% 12%, rgba(200, 150, 62, .11), transparent 26%),
    radial-gradient(circle at 88% 18%, rgba(35, 91, 152, .08), transparent 28%),
    linear-gradient(135deg, #f8f9fb 0%, #f3f6fb 54%, #fffdf9 100%);
}

.elaw-firm-portal .dashboard-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(255, 255, 255, .14), transparent 22%),
    radial-gradient(circle at 86% 74%, rgba(220, 179, 100, .26), transparent 32%),
    linear-gradient(145deg, #07172d 0%, #0b2c51 58%, #174b78 100%);
}
.elaw-firm-portal .hero-kicker { color: #e7c584; }
.elaw-firm-portal .hero-action-btn:hover { border-color: rgba(232, 193, 118, .6); background: rgba(232, 193, 118, .18); }

.elaw-superadmin-portal .super-dashboard-page {
  --admin-blue: #bd8730;
  --admin-blue-deep: #704708;
  --admin-cyan: #d8ad63;
  --admin-soft: #fbf8f1;
  --admin-shadow: 0 12px 30px rgba(12, 35, 78, .075);
  background:
    radial-gradient(circle at 10% 12%, rgba(200, 150, 62, .11), transparent 26%),
    radial-gradient(circle at 88% 10%, rgba(33, 88, 148, .08), transparent 28%),
    linear-gradient(135deg, #f8f9fb 0%, #f3f6fb 48%, #fffdf9 100%);
}

.elaw-superadmin-portal .admin-toolbar { border-color: rgba(200, 150, 62, .18); }
.elaw-superadmin-portal a.admin-chip:hover,
.elaw-superadmin-portal a.admin-chip:focus,
.elaw-superadmin-portal .admin-action:hover { border-color: rgba(200, 150, 62, .32); background: #fff7e8; color: #704708; }

/* Firm practice areas pre-date the shared system; align their bespoke tree and form card. */
.elaw-firm-portal .pa-card {
  border: 1px solid var(--panel-line) !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 26px rgba(15, 42, 73, .06) !important;
}
.elaw-firm-portal .pa-dot { background: linear-gradient(135deg, #d8ad63, #a16b13) !important; }
.elaw-firm-portal .pa-node,
.elaw-firm-portal .pa-item { border-color: #e0e8f0 !important; box-shadow: 0 4px 14px rgba(15, 42, 73, .04) !important; }
.elaw-firm-portal .pa-node:hover,
.elaw-firm-portal .pa-item:hover { border-color: #d7b36f !important; box-shadow: 0 9px 22px rgba(15, 42, 73, .08) !important; }
.elaw-firm-portal .pa-title,
.elaw-firm-portal .pa-item-title { color: var(--panel-ink) !important; }
.elaw-firm-portal .pa-title .bullet { background: #c8963e !important; box-shadow: 0 0 0 2px #fff4df inset !important; }
.elaw-firm-portal .pa-badge { border-color: #ead9b7 !important; background: #fff9ed !important; color: #8a5b0d !important; }
.elaw-firm-portal .pa-toggle:hover { border-color: #d5b16d !important; background: #fff9ed !important; color: #8a5b0d !important; }

@media (max-width: 991.98px) {
  .elaw-panel .page-wrapper > .content { padding-top: 18px; padding-bottom: 22px; }
  .elaw-panel .page-wrapper .content > .page-header,
  .elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.border-bottom,
  .elaw-panel .page-wrapper .content > .d-flex.align-items-sm-center.flex-sm-row.flex-column.border-bottom,
  .elaw-panel .page-wrapper .content > .d-flex.align-items-center.justify-content-between.pb-3.mb-3.border-bottom { padding: 17px 18px !important; }
}

@media (max-width: 575.98px) {
  .elaw-panel .page-wrapper > .content { padding-right: 13px; padding-left: 13px; }
  .elaw-panel .page-wrapper .card-body { padding: 15px; }
  .elaw-panel .page-wrapper .card-header { padding: 14px 15px; }
  .elaw-panel .page-wrapper .btn { min-height: 35px; padding: 7px 10px; }
  .elaw-panel .page-wrapper .table-responsive { border-right: 0; border-left: 0; border-radius: 0; }
  .elaw-panel .page-wrapper table.table > :not(caption) > * > *,
  .elaw-panel .page-wrapper .dataTable > :not(caption) > * > * { padding: 11px 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .elaw-panel .page-wrapper .btn,
  .elaw-panel .page-wrapper table.table tbody tr,
  .elaw-panel .page-wrapper .dataTable tbody tr { transition: none; }
}
