:root {
  --app-body-bg: #232846;
  --app-text: #ffffff;
  --app-muted: #b9c0ff;
  --app-border: #343a63;
  --app-surface: #2a2f55;
  --app-surface-header: #2f3460;
  --app-hover: #31386a;
  --app-navbar: #171a33;
  --app-navbar-border: #3a4180;
  --app-link: #9aa6ff;
  --app-link-hover: #c7ceff;
  --app-input-bg: #1c203e;
  --app-input-border: #3c447c;
  --app-input-border-hover: #5963b7;
  --app-focus: #6c7cff;
  --app-active: #3a41b5;
  --app-primary: #4e5dff;
  --app-primary-hover: #3f4bff;
  --app-secondary: #3b426e;
  --app-secondary-hover: #4a5286;
  --app-success: #2fbf71;
  --app-warning: #ffb020;
  --app-danger: #ff4d6d;
  --app-info: #4e5dff;
  --app-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}

html,
body {
  min-height: 100%;
}

body {
  background: var(--app-body-bg);
  color: var(--app-text);
}

.text-muted,
small,
.form-text {
  color: var(--app-muted) !important;
}

a {
  color: var(--app-link);
}

a:hover {
  color: var(--app-link-hover);
}

hr,
.border,
.border-top,
.border-bottom,
.border-start,
.border-end {
  border-color: var(--app-border) !important;
}

.card,
.list-group,
.table-responsive,
.modal-content,
.dropdown-menu,
.toast,
.alert {
  background-color: var(--app-surface);
  border: 1px solid var(--app-border);
  box-shadow: var(--app-shadow);
  color: var(--app-text);
}

.card-header,
.modal-header,
.table > :not(caption) > tr > th,
thead th {
  background-color: var(--app-surface-header) !important;
  border-color: var(--app-border) !important;
  color: var(--app-text);
}

.card-footer,
.modal-footer {
  border-color: var(--app-border);
}

.list-group-item,
.table > :not(caption) > * > * {
  background: transparent;
  color: var(--app-text);
  border-color: var(--app-border);
}

.table-hover > tbody > tr:hover > * {
  background-color: var(--app-hover);
  color: var(--app-text);
}

.table .table-active,
.table .table-active > * {
  background-color: var(--app-active) !important;
  color: #fff !important;
}

.form-control,
.form-select {
  background: var(--app-input-bg);
  color: var(--app-text);
  border-color: var(--app-input-border);
}

.form-control::placeholder {
  color: #8e96d8;
}

.form-control:hover,
.form-select:hover {
  border-color: var(--app-input-border-hover);
}


.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus,
.btn:focus-visible {
  background: var(--app-input-bg);
  color: var(--app-text);
  border-color: var(--app-focus);
  box-shadow: 0 0 0 0.25rem rgba(108, 124, 255, 0.35);
}

input.form-control[data-val-required],
select.form-select[data-val-required],
textarea.form-control[data-val-required],
input[data-val-required],
select[data-val-required],
textarea[data-val-required],
input.form-control[data-val-required]:hover,
input.form-control[data-val-required]:focus,
select.form-select[data-val-required]:hover,
select.form-select[data-val-required]:focus,
textarea.form-control[data-val-required]:hover,
textarea.form-control[data-val-required]:focus,
input[data-val-required]:hover,
input[data-val-required]:focus,
select[data-val-required]:hover,
select[data-val-required]:focus,
textarea[data-val-required]:hover,
textarea[data-val-required]:focus {
  border-color: var(--app-danger) !important;
}

.form-control:disabled,
.form-select:disabled {
  background: #151836;
  color: #7f86c7;
}

.form-check-input {
  border-color: var(--app-input-border);
  background-color: var(--app-input-bg);
}

.form-check-input:checked {
  border-color: var(--app-primary);
  background-color: var(--app-primary);
}

.is-valid,
.was-validated .form-control:valid {
  border-color: var(--app-success);
}

.is-invalid,
.was-validated .form-control:invalid {
  border-color: var(--app-danger);
}

.btn-primary {
  background-color: var(--app-primary);
  border-color: var(--app-primary);
}

.btn-primary:hover {
  background-color: var(--app-primary-hover);
  border-color: var(--app-primary-hover);
}

.btn-secondary {
  background-color: var(--app-secondary);
  border-color: var(--app-secondary);
}

.btn-secondary:hover {
  background-color: var(--app-secondary-hover);
  border-color: var(--app-secondary-hover);
}

.btn-outline-primary,
.btn-outline-secondary {
  border-color: var(--app-focus);
  color: #d6daff;
}

.btn-outline-primary:hover,
.btn-outline-secondary:hover {
  background-color: var(--app-surface);
  border-color: var(--app-focus);
  color: #fff;
}

.user-menu-trigger {
  border: 1px solid rgba(124, 140, 255, 0.5);
  background: linear-gradient(135deg, rgba(78, 93, 255, 0.35), rgba(58, 65, 181, 0.2));
  color: #eef1ff;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.25);
}

.user-menu-trigger:hover,
.user-menu-trigger:focus,
.user-menu-trigger.show {
  color: #fff;
  border-color: rgba(124, 140, 255, 0.9);
  background: linear-gradient(135deg, rgba(93, 108, 255, 0.5), rgba(78, 93, 255, 0.3));
}

.user-menu-dropdown {
  margin-top: 0.45rem !important;
  min-width: 240px;
  border-color: rgba(124, 140, 255, 0.45);
  background: linear-gradient(170deg, rgba(44, 51, 96, 0.98), rgba(30, 35, 74, 0.98));
  backdrop-filter: blur(4px);
}

.user-menu-item {
  color: #edf0ff;
  border-radius: 0.5rem;
  margin: 0.25rem 0.45rem;
  padding: 0.55rem 0.75rem;
}

.user-menu-item:hover,
.user-menu-item:focus {
  background-color: rgba(92, 105, 210, 0.4);
  color: #fff;
}

.badge.bg-success {
  background-color: var(--app-success) !important;
  color: #0b1a12;
}

.badge.bg-warning {
  background-color: var(--app-warning) !important;
  color: #1b1300;
}

.badge.bg-danger {
  background-color: var(--app-danger) !important;
  color: #1a060a;
}

.badge.bg-info {
  background-color: var(--app-info) !important;
  color: #fff;
}

.alert-success {
  border-left: 4px solid var(--app-success);
}

.alert-warning {
  border-left: 4px solid var(--app-warning);
}

.alert-danger {
  border-left: 4px solid var(--app-danger);
}

.alert-info {
  border-left: 4px solid var(--app-info);
}

.kpi-card {
  border-left: 4px solid var(--app-primary);
}

.kpi-card.success {
  border-left-color: var(--app-success);
}

.kpi-card.warning {
  border-left-color: var(--app-warning);
}

.kpi-card.danger {
  border-left-color: var(--app-danger);
}
.neon-fieldset {
    border: 2px solid #39FF14;
    border-radius: 12px;
    box-shadow: 0 0 8px rgba(57, 255, 20, 0.55);
    min-inline-size: 0; /* bootstrap grid-ben néha segít */
}

.neon-legend {
    width: auto; /* ne nyúljon végig */
    font-size: 0.95rem;
    font-weight: 600;
    color: #fff;
    margin-bottom: 0; /* ne tolja le a tartalmat */
    float: none; /* bootstrap reset barátság */
}

.collapsible-fieldset .fieldset-toggle {
    background: transparent;
    border: 0;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    padding: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    cursor: pointer;
}

.collapsible-fieldset .fieldset-toggle:focus-visible {
    outline: 2px solid rgba(57, 255, 20, 0.8);
    outline-offset: 2px;
    border-radius: 4px;
}

.fieldset-toggle-icon::before {
    content: "▾";
    display: inline-block;
    transition: transform 0.2s ease;
}

.collapsible-fieldset.is-collapsed .fieldset-toggle-icon::before {
    transform: rotate(-90deg);
}

@media print {
  @page {
    size: A4 portrait;
    margin: 12mm;
  }

  body.car-details-print-page {
    min-height: auto !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 10pt;
    print-color-adjust: exact;
  }

  body.car-details-print-page .app-navbar,
  body.car-details-print-page .app-sidebar,
  body.car-details-print-page .app-offcanvas,
  body.car-details-print-page .footer {
    display: none !important;
  }

  body.car-details-print-page .app-shell,
  body.car-details-print-page .app-content,
  body.car-details-print-page main.container {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.car-details-print-page .car-details-page,
  body.car-details-print-page .car-details-page h1,
  body.car-details-print-page .car-details-page h2,
  body.car-details-print-page .car-details-page h4,
  body.car-details-print-page .car-details-page dt,
  body.car-details-print-page .car-details-page dd,
  body.car-details-print-page .car-details-page p,
  body.car-details-print-page .car-details-page small {
    color: #000 !important;
  }

  body.car-details-print-page .car-details-page h1 {
    font-size: 20pt;
  }

  body.car-details-print-page .car-details-page h2 {
    font-size: 14pt;
  }

  body.car-details-print-page .car-details-page h4 {
    font-size: 12pt;
  }

  body.car-details-print-page .car-details-page hr {
    border-color: #777 !important;
    opacity: 1;
  }

  body.car-details-print-page .car-details-page dt,
  body.car-details-print-page .car-details-page dd {
    margin-bottom: 0;
    padding-top: 2px;
    padding-bottom: 2px;
    border-bottom: 1px solid #ddd;
    break-inside: avoid;
  }

  body.car-details-print-page .car-details-page table {
    width: 100%;
    table-layout: fixed;
    font-size: 8pt;
  }

  body.car-details-print-page .car-details-page thead {
    display: table-header-group;
  }

  body.car-details-print-page .car-details-page tr {
    break-inside: avoid;
  }

  body.car-details-print-page .car-details-page .table > :not(caption) > * > * {
    background: #fff !important;
    color: #000 !important;
    border-color: #999 !important;
    overflow-wrap: anywhere;
  }
}
