:root {
  --color-primary:      #f5f5f5;
  --color-primary-dark: #c4c4c4;
  --color-secondary:    #bf4e00;
  --color-secondary-dark: #8a2e00;
  --color-bg:           #f8f9fa;
  --color-surface:      #ffffff;
  --color-border:       #e5e7eb;
  --color-border-focus: #bf4e00;
  --color-text:         #111827;
  --color-text-muted:   #6b7280;
  --color-bg-pop:       rgba(41, 41, 41, 0.6);
  --radius:             0.5rem;
  --radius-sm:          0.375rem;
  --shadow-sm:          0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
  --shadow:             0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);
}

/* ── Tmavý režim ── */
[data-theme="dark"] {
  --color-primary:        #1e2530;
  --color-primary-dark:   #2d3748;
  --color-bg:             #111827;
  --color-surface:        #1f2937;
  --color-border:         #374151;
  --color-border-focus:   #bf4e00;
  --color-text:           #f3f4f6;
  --color-text-muted:     #9ca3af;
  --color-bg-pop:         rgba(0,0,0,.7);
  --shadow-sm:            0 1px 3px rgba(0,0,0,.4), 0 1px 2px rgba(0,0,0,.3);
  --shadow:               0 4px 12px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.3);
}

/* Logo – tmavý režim */
[data-theme="dark"] .logo-adaptive { content: url('/images/logo-white.png'); }

/* Tailwind utility overrides */
[data-theme="dark"] .bg-primary             { background-color: #1e2530 !important; }
[data-theme="dark"] .bg-primary-dark        { background-color: #2d3748 !important; }
[data-theme="dark"] .hover\:bg-primary-dark:hover { background-color: #2d3748 !important; }
[data-theme="dark"] .bg-white               { background-color: var(--color-surface) !important; }
[data-theme="dark"] .bg-gray-50             { background-color: #1a2332 !important; }
[data-theme="dark"] .bg-gray-100            { background-color: #2d3748 !important; }
[data-theme="dark"] .bg-gray-200            { background-color: #374151 !important; }
[data-theme="dark"] .text-gray-800          { color: #f3f4f6 !important; }
[data-theme="dark"] .text-gray-700          { color: #e5e7eb !important; }
[data-theme="dark"] .text-gray-600          { color: #d1d5db !important; }
[data-theme="dark"] .text-gray-500          { color: #9ca3af !important; }
[data-theme="dark"] .text-gray-400          { color: #6b7280 !important; }
[data-theme="dark"] .border-gray-200        { border-color: #374151 !important; }
[data-theme="dark"] .border-gray-100        { border-color: #2d3748 !important; }
[data-theme="dark"] .border-t              { border-color: #374151 !important; }
[data-theme="dark"] .btn-ghost:hover        { background-color: #2d3748 !important; color: #f3f4f6 !important; }

/* DataTables dark */
[data-theme="dark"] table.dataTable thead th                      { background-color: #2d3748; }
[data-theme="dark"] table.dataTable thead tr:nth-child(2) th      { background-color: #252f3d; }
[data-theme="dark"] table.dataTable tbody tr:hover td             { background-color: rgba(191,78,0,.15) !important; }
[data-theme="dark"] table.dataTable tbody tr.odd td               { background-color: #1f2937 !important; }
[data-theme="dark"] table.dataTable tbody tr.even td              { background-color: #1a2332 !important; }
[data-theme="dark"] .dataTables_info                              { color: var(--color-text-muted); }
[data-theme="dark"] .dataTables_paginate .paginate_button:hover:not(.current) {
  background: #2d3748 !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
}
[data-theme="dark"] table.dataTable thead tr:nth-child(2) input[type="date"] {
  background-color: var(--color-surface);
  color: var(--color-text);
  border-color: var(--color-border);
  color-scheme: dark;
}
/* hover:bg-orange-50 v tmavém režimu */
[data-theme="dark"] .hover\:bg-orange-50:hover                   { background-color: rgba(191,78,0,.15) !important; }

/* Emoji picker */
[data-theme="dark"] #ikonaPicker                                  { background-color: var(--color-surface) !important; border-color: var(--color-border) !important; }
[data-theme="dark"] #ikonaPicker .border-b                        { border-color: var(--color-border) !important; }
[data-theme="dark"] #emojiSearch                                  { background-color: var(--color-bg); color: var(--color-text); border-color: var(--color-border); }
[data-theme="dark"] .hover\:bg-orange-100:hover                   { background-color: rgba(191,78,0,.2) !important; }

/* Select2 dark */
[data-theme="dark"] .select2-container--default .select2-selection--single {
  background-color: var(--color-surface);
}
[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--color-text);
}
[data-theme="dark"] .select2-dropdown                             { background-color: var(--color-surface); border-color: var(--color-border); }
[data-theme="dark"] .select2-search--dropdown .select2-search__field {
  background-color: var(--color-bg);
  color: var(--color-text);
  border-color: var(--color-border);
}
[data-theme="dark"] .select2-results__option                      { color: var(--color-text); }
[data-theme="dark"] .select2-results__option[aria-selected="true"] { background-color: #1e2d1e; color: var(--color-secondary); }
[data-theme="dark"] .select2-results__option--highlighted         { background-color: var(--color-secondary) !important; color: #fff !important; }

/* fish-table dark */
[data-theme="dark"] .fish-table th    { background-color: #2d3748; }
[data-theme="dark"] .fish-table td    { border-bottom-color: #2d3748; }

/* attributes-table dark (přebíjí i hardcoded barvy v table.css) */
[data-theme="dark"] .attributes-table                        { color: var(--color-text); }
[data-theme="dark"] .attributes-table tbody td               { border-bottom-color: var(--color-border); color: var(--color-text); }
[data-theme="dark"] .attributes-table tbody td:first-child   { color: var(--color-text-muted); }
[data-theme="dark"] .attributes-table tbody tr:nth-child(even) { background-color: #1a2332; }
[data-theme="dark"] .attributes-table tbody tr:hover         { background-color: rgba(191,78,0,.15); }

/* Barevné badge třídy */
[data-theme="dark"] .bg-blue-100    { background-color: #1e3a5f !important; }
[data-theme="dark"] .text-blue-800,
[data-theme="dark"] .text-blue-700  { color: #93c5fd !important; }
[data-theme="dark"] .bg-green-100   { background-color: #14532d !important; }
[data-theme="dark"] .text-green-800,
[data-theme="dark"] .text-green-700 { color: #86efac !important; }
[data-theme="dark"] .bg-orange-100  { background-color: #431407 !important; }
[data-theme="dark"] .text-orange-800,
[data-theme="dark"] .text-orange-700 { color: #fdba74 !important; }

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; height: 100%; }

body {
  background-color: var(--color-bg);
  color: var(--color-text);
  margin: 0; padding: 0;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  font-family: system-ui, -apple-system, sans-serif;
}

/* ── Barvy ── */
.bg-primary       { background-color: var(--color-primary); }
.bg-primary-dark  { background-color: var(--color-primary-dark); }
.bg-secondary     { background-color: var(--color-secondary); }
.bg-secondary-dark{ background-color: var(--color-secondary-dark); }
.text-primary     { color: var(--color-primary); }
.text-secondary   { color: var(--color-secondary); }

/* ── Homepage scroll-snap ── */
.home-scroll {
  flex: 1;
  overflow-y: auto;
  scroll-snap-type: y mandatory;
  height: calc(100vh - 68px);
}
.home-scroll section { scroll-snap-align: start; }

.podtext {
  background-color: var(--color-bg-pop);
  border-radius: var(--radius);
  max-width: 800px;
  width: 90%;
}

/* ── Navigace ── */
#mobile-menu a {
  padding: 0.75rem 1rem;
  display: block;
  border-top: 1px solid var(--color-primary-dark);
  transition: background-color 0.15s;
}
#mobile-menu a:hover { background-color: var(--color-primary-dark); }

/* ── Oznámení ── */
.success {
  color: #166534;
  background-color: #dcfce7;
  border: 1px solid #bbf7d0;
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  font-size: 0.9rem;
}
.error {
  color: #991b1b;
  background-color: #fee2e2;
  border: 1px solid #fecaca;
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  font-size: 0.9rem;
}

/* ── Tlačítka ── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 0.5rem 1.125rem;
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
  text-decoration: none;
  white-space: nowrap;
  line-height: 1.4;
}
.btn:focus-visible { outline: 2px solid var(--color-secondary); outline-offset: 2px; }

.btn-primary { background-color: var(--color-secondary); color: #fff; border-color: var(--color-secondary); }
.btn-primary:hover { background-color: var(--color-secondary-dark); border-color: var(--color-secondary-dark); }

.btn-success { background-color: #16a34a; color: #fff; border-color: #16a34a; }
.btn-success:hover { background-color: #15803d; border-color: #15803d; }

.btn-danger { background-color: #dc2626; color: #fff; border-color: #dc2626; }
.btn-danger:hover { background-color: #b91c1c; border-color: #b91c1c; }

.btn-outline {
  background-color: transparent;
  color: var(--color-secondary);
  border-color: var(--color-secondary);
}
.btn-outline:hover { background-color: var(--color-secondary); color: #fff; }

.btn-ghost {
  background-color: transparent;
  color: var(--color-text-muted);
  border-color: var(--color-border);
}
.btn-ghost:hover { background-color: #f3f4f6; color: var(--color-text); }

/* ── Formuláře ── */
.form-label {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 0.375rem;
  letter-spacing: 0.01em;
}

.form-input {
  display: block;
  width: 100%;
  padding: 0.5625rem 0.75rem;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 0.9375rem;
  color: var(--color-text);
  background-color: var(--color-surface);
  transition: border-color 0.15s, box-shadow 0.15s;
  appearance: none;
  -webkit-appearance: none;
}
.form-input:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(191,78,0,.15);
}
.form-input::placeholder { color: #9ca3af; }

/* select arrow */
select.form-input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.625rem center;
  background-size: 1.25rem;
  padding-right: 2.25rem;
}

.form-group { margin-bottom: 1rem; }

/* Karta formuláře */
.form-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 1.75rem;
}

/* ── Přihlašovací formulář ── */
.login-container {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 1;
  background-size: cover;
  background-position: center;
  padding: 1rem;
}
.login-box {
  background: rgba(17, 24, 39, 0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 2.25rem;
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: var(--shadow);
  width: 100%;
  max-width: 420px;
}
.login-box h2 {
  margin-bottom: 1.75rem;
  color: #fff;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
}
.login-box form { display: flex; flex-direction: column; gap: 1rem; }
.login-box .form-group { margin-bottom: 0; }
.login-box .form-group label { color: #d1d5db; font-size: 0.875rem; font-weight: 500; }
.login-box .form-group input {
  width: 100%;
  padding: 0.625rem 0.875rem;
  border: 1.5px solid rgba(255,255,255,0.2);
  border-radius: var(--radius-sm);
  font-size: 1rem;
  background: rgba(255,255,255,0.1);
  color: #fff;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.login-box .form-group input::placeholder { color: rgba(255,255,255,0.4); }
.login-box .form-group input:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(191,78,0,.3);
}
.login-box button[type="submit"] {
  padding: 0.75rem;
  background: var(--color-secondary);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  margin-top: 0.5rem;
}
.login-box button[type="submit"]:hover { background: var(--color-secondary-dark); }

@media (max-width: 480px) {
  .login-box { padding: 1.5rem; }
  .login-box h2 { font-size: 1.25rem; }
}

/* ── Tabulka wrapper ── */
.table-wrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  background: var(--color-surface);
}

/* ── DataTable tématická hlavička ── */
table.dataTable thead th {
  background-color: #f3f4f6;
  color: var(--color-text);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 2px solid var(--color-border) !important;
  padding: 0.65rem 0.75rem;
  white-space: nowrap;
}

/* Řádek filtrů */
table.dataTable thead tr:nth-child(2) th {
  background-color: #fafafa;
  padding: 0.35rem 0.5rem;
  text-transform: none;
  font-weight: normal;
  letter-spacing: 0;
  border-bottom: 1px solid var(--color-border) !important;
}

/* Filtrovací inputy vygenerované JS */
table.dataTable thead tr:nth-child(2) input[type="text"],
table.dataTable thead tr:nth-child(2) select {
  width: 100%;
  padding: 0.3rem 0.5rem;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 0.8rem;
  background: var(--color-surface);
  transition: border-color 0.15s;
}
table.dataTable thead tr:nth-child(2) input[type="text"]:focus,
table.dataTable thead tr:nth-child(2) select:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 2px rgba(191,78,0,.12);
}

table.dataTable tbody tr         { transition: background-color 0.1s; background-color: #ffffff; }
table.dataTable tbody tr.odd     { background-color: #f9fafb; }
table.dataTable tbody tr.even    { background-color: #ffffff; }
table.dataTable tbody tr:hover td { background-color: #fff7ed !important; }
table.dataTable tbody td { font-size: 0.875rem; }

.dataTables_wrapper { overflow-x: auto; }
.dataTables_info, .dataTables_paginate { font-size: 0.8rem; padding: 0.5rem 0; }
.dataTables_length label { font-size: 0.8rem; color: #6b7280; display: flex; align-items: center; gap: 0.3rem; }
.dataTables_length select { font-size: 0.8rem; color: #6b7280; border: none; background: transparent; cursor: pointer; padding: 0; outline: none; }
.dataTables_paginate .paginate_button { border-radius: var(--radius-sm) !important; }
.dataTables_paginate .paginate_button.current {
  background: var(--color-secondary) !important;
  border-color: var(--color-secondary) !important;
  color: #fff !important;
}
.dataTables_paginate .paginate_button:hover:not(.current) {
  background: #f3f4f6 !important;
  border-color: var(--color-border) !important;
  color: var(--color-text) !important;
}

/* ── Tabulka úlovků (newFish formulář) ── */
.fish-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 480px;
}
.fish-table th {
  background-color: #f3f4f6;
  color: var(--color-text);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.65rem 0.875rem;
  text-align: left;
  border-bottom: 2px solid var(--color-border);
}
.fish-table td {
  padding: 0.5rem 0.625rem;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: middle;
}
.fish-table tbody tr:last-child td { border-bottom: none; }
.fish-table td:last-child { text-align: center; white-space: nowrap; width: 1%; }

/* Inline inputy uvnitř fish-table */
.fish-table input.form-input,
.fish-table select.form-input {
  padding: 0.4rem 0.625rem;
  font-size: 0.875rem;
}

/* ── Select2 – globální téma ── */
.select2-container { width: 100% !important; }

.select2-container--default .select2-selection--single {
  height: 40px;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  background-color: var(--color-surface);
  transition: border-color .15s, box-shadow .15s;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open  .select2-selection--single {
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(191,78,0,.15);
  outline: none;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 37px;
  color: var(--color-text);
  padding-left: 0.75rem;
  font-size: 0.9375rem;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: #9ca3af;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 38px;
  right: 4px;
}

.select2-dropdown {
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(0,0,0,.1);
  overflow: hidden;
}
.select2-search--dropdown .select2-search__field {
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.4rem 0.625rem;
  font-size: 0.875rem;
  transition: border-color .15s;
}
.select2-search--dropdown .select2-search__field:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 2px rgba(191,78,0,.12);
}
.select2-results__option {
  padding: 0.45rem 0.875rem;
  font-size: 0.875rem;
}
.select2-results__option--highlighted {
  background-color: var(--color-secondary) !important;
}
.select2-results__option[aria-selected=true] {
  background-color: #fff7ed;
  color: var(--color-secondary);
  font-weight: 600;
}

/* Select2 uvnitř fish-table – menší výška */
.fish-table .select2-container--default .select2-selection--single {
  height: 34px;
}
.fish-table .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 31px;
  font-size: 0.875rem;
  padding-left: 0.5rem;
}
.fish-table .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 32px;
}

/* ── Atributová tabulka (detail revíru) ── */
.attributes-table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.attributes-table tbody td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #f3f4f6;
  vertical-align: top;
}
.attributes-table tbody td:first-child {
  font-weight: 600;
  color: var(--color-text-muted);
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
  width: 38%;
}
.attributes-table tbody tr:last-child td { border-bottom: none; }
.attributes-table tbody tr:hover { background-color: #fff7ed; }

@media (max-width: 480px) {
  .attributes-table tbody tr { display: flex; flex-direction: column; border-bottom: 2px solid var(--color-border); }
  .attributes-table tbody td { padding: 0.4rem 0.875rem; border-bottom: none; width: 100%; }
  .attributes-table tbody td:first-child { padding-top: 0.75rem; font-size: 0.75rem; }
  .attributes-table tbody td:last-child { padding-bottom: 0.75rem; }
}
