/**
 * Dark Mode CSS - Modern Dark Theme
 *
 * A sleek, readable dark theme with subtle blue accents
 */

/* ============================================
   CSS Custom Properties (Light Mode Defaults)
   ============================================ */

:root {
  --dm-surface-base: #ffffff;
  --dm-surface-elevated: #f0f0f0;
  --dm-surface-inset: #e0e0e0;
  --dm-surface-overlay: #ffffff;
  --dm-surface-hover: #ffd080;
  --dm-text-primary: #000000;
  --dm-text-secondary: #666666;
  --dm-text-muted: #888888;
  --dm-text-inverse: #ffffff;
  --dm-border-default: #a0a0a0;
  --dm-border-subtle: #d0d0d0;
  --dm-accent-primary: #2090c0;
  --dm-accent-secondary: #7c9c4c;
  --dm-accent-link: #58a6ff;
  --dm-accent-link-hover: #d05020;
  --dm-footer-bg: #666666;
  --dm-footer-text: #ffffff;
}

/* ============================================
   Dark Mode - Modern Sleek Theme
   ============================================ */

[data-theme="dark"] {
  /* Base colors - deep blue-gray for a modern look */
  --dm-surface-base: #0d1117;
  --dm-surface-elevated: #161b22;
  --dm-surface-inset: #1c2128;
  --dm-surface-overlay: #21262d;
  --dm-surface-hover: #30363d;

  /* Text colors - high contrast for readability */
  --dm-text-primary: #e6edf3;
  --dm-text-secondary: #8b949e;
  --dm-text-muted: #6e7681;
  --dm-text-inverse: #0d1117;

  /* Border colors */
  --dm-border-default: #30363d;
  --dm-border-subtle: #21262d;
  --dm-border-strong: #484f58;

  /* Accent colors - vibrant but not harsh */
  --dm-accent-primary: #58a6ff;
  --dm-accent-primary-muted: #1f6feb;
  --dm-accent-secondary: #3fb950;
  --dm-accent-tertiary: #a371f7;
  --dm-accent-link: #58a6ff;
  --dm-accent-link-hover: #79c0ff;

  /* Status colors - muted but distinguishable */
  --dm-status-success-bg: #1a4d2e;
  --dm-status-success-border: #3fb950;
  --dm-status-warning-bg: #4d3a1a;
  --dm-status-warning-border: #d29922;
  --dm-status-error-bg: #4d1a1a;
  --dm-status-error-border: #f85149;
  --dm-status-info-bg: #1a3d4d;
  --dm-status-info-border: #58a6ff;

  /* Menu tiles */
  --dm-tile-bg: #21262d;
  --dm-tile-hover: #30363d;
  --dm-tile-border: #30363d;

  /* Footer */
  --dm-footer-bg: #161b22;
  --dm-footer-text: #8b949e;
  --dm-footer-text-muted: #6e7681;
}

/* ============================================
   Global Dark Mode Overrides
   ============================================ */

/* Dark mode background - uses dark version of school background set in theme.php */
html[data-theme="dark"] {
  background-color: var(--dm-surface-base) !important;
}

[data-theme="dark"] body {
  color: var(--dm-text-primary);
}

/* ============================================
   Top Navigation Menu (Main tiles)
   ============================================ */

/* Row 0 - first row of tiles */
[data-theme="dark"] ul.m_menu0 > li > a {
  background-color: #2d333b !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] ul.m_menu0 > li > a:hover {
  background-color: #3d444d !important;
  color: var(--dm-text-primary) !important;
}

/* Row 1 - second row of tiles (alternate color) */
[data-theme="dark"] ul.m_menu1 > li > a {
  background-color: #22272e !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] ul.m_menu1 > li > a:hover {
  background-color: #3d444d !important;
  color: var(--dm-text-primary) !important;
}

/* ============================================
   Sidebar Menu
   ============================================ */

[data-theme="dark"] ul.oe_sidebar > li > a {
  background-color: #2d333b !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] ul.oe_sidebar > li > a:hover,
[data-theme="dark"] ul.oe_sidebar > li.selected > a {
  background-color: #3d444d !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] ul.oe_sidebar div {
  background: var(--dm-surface-elevated) !important;
  border: 1px solid var(--dm-border-default) !important;
  border-right: 3px solid var(--dm-accent-primary) !important;
}

/* ============================================
   Footer / Reference Bar
   ============================================ */

[data-theme="dark"] .reference {
  background-color: #161b22;
  border-top: 1px solid var(--dm-border-default);
  color: var(--dm-footer-text);
}

[data-theme="dark"] .reference a:link,
[data-theme="dark"] .reference a:visited {
  color: var(--dm-accent-link);
}

[data-theme="dark"] .reference a:hover {
  color: var(--dm-accent-link-hover);
}

[data-theme="dark"] .reference .version {
  color: var(--dm-footer-text-muted);
}

/* ============================================
   Links
   ============================================ */

[data-theme="dark"] a:link,
[data-theme="dark"] a:visited {
  color: var(--dm-accent-link);
}

[data-theme="dark"] a:hover,
[data-theme="dark"] a:active {
  color: var(--dm-accent-link-hover);
}

/* ============================================
   Headings
   ============================================ */

[data-theme="dark"] body > h1,
[data-theme="dark"] h1,
[data-theme="dark"] h2 {
  color: var(--dm-text-primary);
  border-bottom-color: var(--dm-border-default);
}

/* ============================================
   Form Elements
   ============================================ */

[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
  background-color: var(--dm-surface-inset);
  color: var(--dm-text-primary);
  border: 1px solid var(--dm-border-default);
}

[data-theme="dark"] input:focus,
[data-theme="dark"] textarea:focus,
[data-theme="dark"] select:focus {
  background-color: var(--dm-surface-overlay);
  border-color: var(--dm-accent-primary);
  outline: none;
  box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.2);
}

[data-theme="dark"] input[readonly="readonly"] {
  background-color: var(--dm-surface-base);
  color: var(--dm-text-muted);
}

[data-theme="dark"] input[disabled] {
  background-color: var(--dm-surface-base);
  color: var(--dm-text-muted);
  opacity: 0.6;
}

[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
  color: var(--dm-text-muted);
}

/* ============================================
   Buttons
   ============================================ */

[data-theme="dark"] button {
  background-color: #2d333b;
  color: var(--dm-text-primary);
  border: 1px solid var(--dm-border-default);
}

[data-theme="dark"] button:hover {
  background-color: #3d444d;
  color: var(--dm-text-primary);
}

/* ============================================
   Tables
   ============================================ */

/* Base table background for dark mode */
[data-theme="dark"] table {
  background-color: var(--dm-surface-base);
}

[data-theme="dark"] tr.zeile_g {
  background-color: var(--dm-surface-elevated);
}

[data-theme="dark"] tr.zeile_u {
  background-color: transparent;
}

[data-theme="dark"] tr.zeile_w {
  background-color: var(--dm-surface-base);
}

[data-theme="dark"] tr.zeile_y {
  background-color: var(--dm-status-warning-bg);
}

[data-theme="dark"] tr.zeile_g:hover,
[data-theme="dark"] tr.zeile_u:hover,
[data-theme="dark"] tr.zeile_w:hover,
[data-theme="dark"] tr.zeile_y:hover {
  background-color: var(--dm-surface-hover);
}

/* Ensure table cells have proper dark background */
[data-theme="dark"] tr.zeile_g td,
[data-theme="dark"] tr.zeile_g th {
  background-color: var(--dm-surface-elevated) !important;
}

[data-theme="dark"] tr.zeile_u td,
[data-theme="dark"] tr.zeile_u th {
  background-color: transparent !important;
}

[data-theme="dark"] tr.zeile_w td,
[data-theme="dark"] tr.zeile_w th {
  background-color: var(--dm-surface-base) !important;
}

[data-theme="dark"] tr.zeile_y td,
[data-theme="dark"] tr.zeile_y th {
  background-color: var(--dm-status-warning-bg) !important;
}

[data-theme="dark"] tr.zeile_g td,
[data-theme="dark"] tr.zeile_u td,
[data-theme="dark"] tr.zeile_w td {
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] tr.zeile_g td a,
[data-theme="dark"] tr.zeile_u td a,
[data-theme="dark"] tr.zeile_w td a {
  color: var(--dm-accent-primary) !important;
}

[data-theme="dark"] tr.zeile_g td a:hover,
[data-theme="dark"] tr.zeile_u td a:hover,
[data-theme="dark"] tr.zeile_w td a:hover {
  color: var(--dm-accent-secondary) !important;
}

[data-theme="dark"] th {
  background-color: var(--dm-surface-overlay);
  color: var(--dm-text-primary);
  border-bottom: 2px solid var(--dm-accent-primary);
}

[data-theme="dark"] td {
  border-color: var(--dm-border-subtle);
}

/* ============================================
   Notification Boxes
   ============================================ */

[data-theme="dark"] .notification-info {
  background: var(--dm-status-info-bg);
  border: 1px solid var(--dm-status-info-border);
  border-left: 4px solid var(--dm-status-info-border);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .notification-error {
  background: var(--dm-status-error-bg);
  border: 1px solid var(--dm-status-error-border);
  border-left: 4px solid var(--dm-status-error-border);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .notification-warn {
  background: var(--dm-status-warning-bg);
  border: 1px solid var(--dm-status-warning-border);
  border-left: 4px solid var(--dm-status-warning-border);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .notification-success {
  background: var(--dm-status-success-bg);
  border: 1px solid var(--dm-status-success-border);
  border-left: 4px solid var(--dm-status-success-border);
  color: var(--dm-text-primary);
}

/* ============================================
   Boxed Elements
   ============================================ */

[data-theme="dark"] .boxed {
  background-color: var(--dm-surface-elevated);
  color: var(--dm-text-primary);
  border: 1px solid var(--dm-border-default);
}

/* ============================================
   Dropdown
   ============================================ */

[data-theme="dark"] .dropdown-content {
  background-color: var(--dm-surface-elevated);
  border: 1px solid var(--dm-border-default);
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}

[data-theme="dark"] .dropdown-content button {
  background: transparent;
  color: var(--dm-text-primary);
  border-bottom: 1px solid var(--dm-border-subtle);
}

[data-theme="dark"] .dropdown-content button:hover {
  background-color: var(--dm-surface-hover);
}

/* ============================================
   Accordion
   ============================================ */

[data-theme="dark"] .accordion section h2 a {
  background: var(--dm-surface-overlay);
  color: var(--dm-text-primary);
  border-bottom: 1px solid var(--dm-border-default);
}

[data-theme="dark"] .accordion section h2 a:hover {
  background-color: var(--dm-surface-hover);
}

[data-theme="dark"] .accordion section h2 a.expand:hover {
  background-color: var(--dm-surface-hover);
  background-image: url('/icn/accdown.png');
  background-repeat: no-repeat;
  background-position: right bottom;
}

[data-theme="dark"] .accordion section h2 a.collapse:hover {
  background-color: var(--dm-surface-hover);
  background-image: url('/icn/accup.png');
  background-repeat: no-repeat;
  background-position: right bottom;
}

/* ============================================
   Progress Bar
   ============================================ */

[data-theme="dark"] .progress {
  background-color: var(--dm-surface-overlay);
  border-radius: 4px;
  overflow: hidden;
}

[data-theme="dark"] .progressbar {
  background: linear-gradient(90deg, var(--dm-accent-secondary) 0%, #2ea043 100%);
}

/* ============================================
   OE Menu (Older Menu Style)
   ============================================ */

[data-theme="dark"] ul.oe_menu > li > a {
  background:  #2d333b;
  color: var(--dm-text-primary);
}

[data-theme="dark"] ul.oe_menu > li > a:hover,
[data-theme="dark"] ul.oe_menu > li.selected > a {
  background: #3d444d !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] ul.oe_menu div {
  background: var(--dm-surface-elevated);
}

[data-theme="dark"] ul.oe_menu div ul li a {
  color: var(--dm-text-primary);
}

[data-theme="dark"] ul.oe_menu div ul li a:hover {
  background: #30363d !important;
  color: #fff !important;
}

[data-theme="dark"] li.oe_heading {
  color: var(--dm-text-secondary);
  border-bottom-color: var(--dm-border-default);
}

/* ============================================
   Inline Style Overrides
   ============================================ */

/* White/light backgrounds */
[data-theme="dark"] [style*="background-color:#fff"],
[data-theme="dark"] [style*="background-color: #fff"],
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background-color:#ffffff"],
[data-theme="dark"] [style*="background-color: #ffffff"],
[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background: #ffffff"] {
  background-color: var(--dm-surface-elevated) !important;
}

/* Gray backgrounds */
[data-theme="dark"] [style*="background-color:#eee"],
[data-theme="dark"] [style*="background-color: #eee"],
[data-theme="dark"] [style*="background:#eee"],
[data-theme="dark"] [style*="background: #eee"] {
  background-color: var(--dm-surface-overlay) !important;
}

[data-theme="dark"] [style*="background-color:#ddd"],
[data-theme="dark"] [style*="background-color: #ddd"],
[data-theme="dark"] [style*="background:#ddd"],
[data-theme="dark"] [style*="background: #ddd"] {
  background-color: var(--dm-surface-inset) !important;
}

[data-theme="dark"] [style*="background-color:#ccc"],
[data-theme="dark"] [style*="background-color: #ccc"],
[data-theme="dark"] [style*="background:#ccc"],
[data-theme="dark"] [style*="background: #ccc"],
[data-theme="dark"] [style*="background-color:#c5c5c5"],
[data-theme="dark"] [style*="background-color: #c5c5c5"] {
  background-color: var(--dm-surface-hover) !important;
}

[data-theme="dark"] [style*="background-color:#e0e0e0"],
[data-theme="dark"] [style*="background-color: #e0e0e0"],
[data-theme="dark"] [style*="background:#e0e0e0"],
[data-theme="dark"] [style*="background: #e0e0e0"] {
  background-color: var(--dm-surface-overlay) !important;
}

/* Black text */
[data-theme="dark"] [style*="color:#000"],
[data-theme="dark"] [style*="color: #000"],
[data-theme="dark"] [style*="color:#000000"],
[data-theme="dark"] [style*="color: #000000"] {
  color: var(--dm-text-primary) !important;
}

/* Gray text */
[data-theme="dark"] [style*="color:#666"],
[data-theme="dark"] [style*="color: #666"] {
  color: var(--dm-text-secondary) !important;
}

[data-theme="dark"] [style*="color:#888"],
[data-theme="dark"] [style*="color: #888"],
[data-theme="dark"] [style*="color:#aaa"],
[data-theme="dark"] [style*="color: #aaa"] {
  color: var(--dm-text-muted) !important;
}

[data-theme="dark"] [style*="color:#777"],
[data-theme="dark"] [style*="color: #777"] {
  color: var(--dm-text-muted) !important;
}

/* Status backgrounds - green */
[data-theme="dark"] [style*="background-color:#c0f0c0"],
[data-theme="dark"] [style*="background-color: #c0f0c0"],
[data-theme="dark"] [style*="background:#c0f0c0"],
[data-theme="dark"] [style*="background-color:#c5e0c5"],
[data-theme="dark"] [style*="background-color: #c5e0c5"],
[data-theme="dark"] [style*="background:#bae0bd"],
[data-theme="dark"] [style*="background-color:#bae0bd"] {
  background-color: var(--dm-status-success-bg) !important;
}

/* Status backgrounds - yellow */
[data-theme="dark"] [style*="background-color:#f0e880"],
[data-theme="dark"] [style*="background-color: #f0e880"],
[data-theme="dark"] [style*="background:#f0e880"],
[data-theme="dark"] [style*="background-color:#fffbd1"],
[data-theme="dark"] [style*="background-color: #fffbd1"] {
  background-color: var(--dm-status-warning-bg) !important;
}

/* Status backgrounds - red */
[data-theme="dark"] [style*="background-color:#f0c0c0"],
[data-theme="dark"] [style*="background-color: #f0c0c0"],
[data-theme="dark"] [style*="background:#f0c0c0"],
[data-theme="dark"] [style*="background-color:#f0a0a0"],
[data-theme="dark"] [style*="background-color: #f0a0a0"],
[data-theme="dark"] [style*="background-color:#ffe0e0"],
[data-theme="dark"] [style*="background-color: #ffe0e0"] {
  background-color: var(--dm-status-error-bg) !important;
}

/* Status backgrounds - blue */
[data-theme="dark"] [style*="background-color:#c9ddff"],
[data-theme="dark"] [style*="background-color: #c9ddff"],
[data-theme="dark"] [style*="background:#c9ddff"] {
  background-color: var(--dm-status-info-bg) !important;
}

/* ============================================
   Special Elements
   ============================================ */

/* Content area scrollbar */
[data-theme="dark"] .content::-webkit-scrollbar {
  width: 8px;
}

[data-theme="dark"] .content::-webkit-scrollbar-track {
  background: var(--dm-surface-base);
}

[data-theme="dark"] .content::-webkit-scrollbar-thumb {
  background: var(--dm-border-default);
  border-radius: 4px;
}

[data-theme="dark"] .content::-webkit-scrollbar-thumb:hover {
  background: var(--dm-border-strong);
}

/* Card-style boxes in content area (login, info boxes) */
[data-theme="dark"] .loginbox,
[data-theme="dark"] .content > div[style*="background:#fff"],
[data-theme="dark"] .content > div[style*="background-color:#fff"],
[data-theme="dark"] .content > div[style*="background:#ffffff"],
[data-theme="dark"] .content > div[style*="background-color:#ffffff"] {
  background-color: var(--dm-surface-elevated) !important;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

/* ============================================
   Print - Force Light Mode
   ============================================ */

@media print {
  html {
    background-color: #ffffff !important;
    background-image: none !important;
  }
  body {
    color: #000000 !important;
  }
  .reference {
    display: none !important;
  }
}

/* ============================================
   Toggle Button
   ============================================ */

#dark-mode-toggle {
  display: inline-block;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

#dark-mode-toggle:hover {
  opacity: 1;
  transform: scale(1.1);
}

#dark-mode-toggle img {
  filter: brightness(0) invert(1);
}

/* ============================================
   Mitteilungen Module
   ============================================ */

[data-theme="dark"] .box-message:nth-child(2n+1) {
  background-color: var(--dm-surface-elevated) !important;
}

[data-theme="dark"] .box-message-header {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-primary);
}

[data-theme="dark"] .box-message-postponed,
[data-theme="dark"] .box-message-unconfirmed,
[data-theme="dark"] .box-message-confirming {
  background-color: var(--dm-status-warning-bg) !important;
}

[data-theme="dark"] .box-message-unread {
  background-color: var(--dm-status-error-bg) !important;
}

[data-theme="dark"] .box-message-done {
  color: var(--dm-text-muted);
}

[data-theme="dark"] .box-message:hover {
  background-color: var(--dm-surface-hover) !important;
}

[data-theme="dark"] .colhead {
  background-color: var(--dm-surface-overlay);
  border-bottom-color: var(--dm-border-default);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .betreff {
  background-color: var(--dm-surface-overlay);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .anhang {
  background-color: var(--dm-surface-elevated);
  border-color: var(--dm-border-default);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .zustimmung-info {
  background-color: var(--dm-surface-overlay);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .nutzerliste-nutzer.sticky > * {
  background-color: var(--dm-surface-overlay) !important;
}

[data-theme="dark"] .empfaenger-select {
  background-color: var(--dm-surface-elevated);
  color: var(--dm-text-primary);
}

[data-theme="dark"] input.empfaenger {
  color: var(--dm-text-primary);
  background-color: var(--dm-surface-inset);
}

[data-theme="dark"] input.empfaenger.active {
  background-color: var(--dm-surface-hover);
}

[data-theme="dark"] .error {
  background-color: var(--dm-status-error-bg);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .success {
  background-color: var(--dm-status-success-bg);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .red {
  background-color: var(--dm-status-error-bg) !important;
}

[data-theme="dark"] .green {
  background-color: var(--dm-status-success-bg) !important;
}

[data-theme="dark"] .yellow {
  background-color: var(--dm-status-warning-bg) !important;
}

/* ============================================
   Row Filter (used in Mitteilungen etc.)
   ============================================ */

[data-theme="dark"] .rowfilter-select {
  background-color: var(--dm-surface-overlay);
  color: var(--dm-text-primary);
  border: 1px solid var(--dm-border-default);
}

/* ============================================
   Anwesenheit Module
   ============================================ */

[data-theme="dark"] .fehlend {
  border-top-color: var(--dm-border-subtle);
}

[data-theme="dark"] .fehlend-0 {
  background-color: var(--dm-status-error-bg) !important;
}

[data-theme="dark"] .fehlend-1 {
  background-color: var(--dm-status-warning-bg) !important;
}

[data-theme="dark"] .fehlend-2 {
  background-color: var(--dm-status-success-bg) !important;
}

[data-theme="dark"] .fehlzeit-e {
  background-color: var(--dm-status-success-bg);
}

[data-theme="dark"] .fehlzeit-a {
  background-color: var(--dm-status-warning-bg);
}

[data-theme="dark"] .fehlzeit-ue {
  background-color: var(--dm-status-error-bg);
}

[data-theme="dark"] .fehlend:nth-child(odd),
[data-theme="dark"] .fehlend-header,
[data-theme="dark"] .archiv-header {
  background-color: var(--dm-surface-elevated);
}

[data-theme="dark"] .fehlend > div,
[data-theme="dark"] .archiv > div {
  border-left-color: var(--dm-border-subtle);
}

[data-theme="dark"] .archiv {
  border-top-color: var(--dm-border-subtle);
}

[data-theme="dark"] .archiv-datum {
  background-color: var(--dm-surface-elevated);
  border-top-color: var(--dm-border-subtle);
}

/* ============================================
   Videochat Module
   ============================================ */

[data-theme="dark"] .targetGruppe {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .targetGruppe:hover {
  background-color: var(--dm-surface-hover) !important;
}

/* ============================================
   Token Input
   ============================================ */

[data-theme="dark"] ul.token-input-list {
  background-color: var(--dm-surface-inset);
  border-color: var(--dm-border-default);
}

[data-theme="dark"] ul.token-input-list li input {
  background-color: var(--dm-surface-inset);
  color: var(--dm-text-primary);
}

[data-theme="dark"] li.token-input-token {
  background-color: var(--dm-surface-hover);
  color: var(--dm-text-primary);
}

[data-theme="dark"] li.token-input-token span {
  color: var(--dm-text-muted);
}

[data-theme="dark"] li.token-input-selected-token {
  background-color: var(--dm-accent-primary-muted);
  color: var(--dm-text-primary);
}

[data-theme="dark"] div.token-input-dropdown {
  background-color: var(--dm-surface-elevated);
  border-color: var(--dm-border-default);
}

[data-theme="dark"] div.token-input-dropdown p {
  color: var(--dm-text-muted);
}

[data-theme="dark"] div.token-input-dropdown ul li {
  background-color: var(--dm-surface-elevated);
  color: var(--dm-text-primary);
}

[data-theme="dark"] div.token-input-dropdown ul li.token-input-dropdown-item {
  background-color: var(--dm-surface-inset);
}

[data-theme="dark"] div.token-input-dropdown ul li.token-input-dropdown-item2 {
  background-color: var(--dm-surface-elevated);
}

[data-theme="dark"] div.token-input-dropdown ul li.token-input-selected-dropdown-item {
  background-color: var(--dm-surface-hover);
}

/* ============================================
   Tooltips
   ============================================ */

[data-theme="dark"] .tooltip-anchor [class^="tooltip"] {
  background-color: var(--dm-surface-overlay);
  color: var(--dm-text-primary);
  border: 1px solid var(--dm-border-default);
}

[data-theme="dark"] .tooltip-anchor [class^="popup"] {
  background-color: var(--dm-status-error-bg);
  color: var(--dm-text-primary);
  border: 1px solid var(--dm-status-error-border);
}

/* ============================================
   Table cells with inline backgrounds
   ============================================ */

[data-theme="dark"] td[style*="background"],
[data-theme="dark"] td[bgcolor] {
  color: var(--dm-text-primary);
}

/* General table improvements */
[data-theme="dark"] table {
  border-color: var(--dm-border-default);
}

[data-theme="dark"] table td,
[data-theme="dark"] table th {
  border-color: var(--dm-border-subtle);
}

/* ============================================
   Sidebar Icons (invert for visibility)
   ============================================ */

[data-theme="dark"] ul.oe_sidebar img,
[data-theme="dark"] .oe_sidebar img {
  opacity: 0.8;
}

/* ============================================
   Upload styles
   ============================================ */

[data-theme="dark"] .upload-area {
  background-color: var(--dm-surface-inset);
  border-color: var(--dm-border-default);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .upload-area:hover {
  background-color: var(--dm-surface-hover);
}

/* ============================================
   Calendar specific
   ============================================ */

[data-theme="dark"] .calendar-day {
  background-color: var(--dm-surface-elevated);
  border-color: var(--dm-border-subtle);
}

[data-theme="dark"] .calendar-day:hover {
  background-color: var(--dm-surface-hover);
}

[data-theme="dark"] .calendar-today {
  background-color: var(--dm-accent-primary-muted) !important;
}

[data-theme="dark"] .calendar-header {
  background-color: var(--dm-surface-overlay);
  color: var(--dm-text-primary);
}

/* ============================================
   Generic class overrides
   ============================================ */

[data-theme="dark"] .bg-white,
[data-theme="dark"] [class*="bg-white"] {
  background-color: var(--dm-surface-elevated) !important;
}

[data-theme="dark"] .bg-light,
[data-theme="dark"] [class*="bg-light"] {
  background-color: var(--dm-surface-inset) !important;
}

[data-theme="dark"] .text-dark {
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .border {
  border-color: var(--dm-border-default) !important;
}

/* ============================================
   Modal / Dialog overlays
   ============================================ */

[data-theme="dark"] .modal,
[data-theme="dark"] .dialog,
[data-theme="dark"] .overlay-content {
  background-color: var(--dm-surface-elevated);
  color: var(--dm-text-primary);
  border-color: var(--dm-border-default);
}

/* ============================================
   Code / Pre blocks
   ============================================ */

[data-theme="dark"] pre,
[data-theme="dark"] code {
  background-color: var(--dm-surface-inset);
  color: var(--dm-text-primary);
  border-color: var(--dm-border-subtle);
}

/* ============================================
   Fieldset and Legend
   ============================================ */

[data-theme="dark"] fieldset {
  border-color: var(--dm-border-default);
}

[data-theme="dark"] legend {
  color: var(--dm-text-primary);
}

/* ============================================
   HR / Dividers
   ============================================ */

[data-theme="dark"] hr {
  border-color: var(--dm-border-default);
}

/* ============================================
   Blockquote
   ============================================ */

[data-theme="dark"] blockquote {
  border-left-color: var(--dm-accent-primary);
  background-color: var(--dm-surface-inset);
  color: var(--dm-text-secondary);
}

/* ============================================
   Login Page
   ============================================ */

[data-theme="dark"] .loginbox {
  background-color: var(--dm-surface-elevated) !important;
  color: var(--dm-text-primary);
}

[data-theme="dark"] #loader {
  background-color: var(--dm-surface-base) !important;
}

/* ============================================
   Nutzungsbedingungen / Terms box
   ============================================ */

[data-theme="dark"] .content > div[style*="background-color:#ffffff"],
[data-theme="dark"] .content > div[style*="background-color: #ffffff"],
[data-theme="dark"] .content > div[style*="background:#fff"] {
  background-color: var(--dm-surface-elevated) !important;
  color: var(--dm-text-primary);
}

/* ============================================
   Vertretungsplan / Substitution Display
   ============================================ */

[data-theme="dark"] .vp-header,
[data-theme="dark"] .vp-row-header {
  background-color: var(--dm-surface-overlay);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .vp-row:nth-child(odd) {
  background-color: var(--dm-surface-elevated);
}

[data-theme="dark"] .vp-row:nth-child(even) {
  background-color: var(--dm-surface-base);
}

[data-theme="dark"] .vp-cancelled {
  background-color: var(--dm-status-error-bg) !important;
}

[data-theme="dark"] .vp-changed {
  background-color: var(--dm-status-warning-bg) !important;
}

/* Vertretungsplan tagesplan styles */
[data-theme="dark"] div.nzts {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

[data-theme="dark"] div.nzts > p {
  border-top-color: var(--dm-border-subtle) !important;
}

[data-theme="dark"] table.vplan {
  border-color: var(--dm-border-default) !important;
}

[data-theme="dark"] table.vplan th {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-primary);
  border-bottom: 2px solid var(--dm-accent-primary);
}

[data-theme="dark"] table.vplan td {
  border-color: var(--dm-border-subtle);
  color: var(--dm-text-primary);
}

/* Default row - muted orange/peach for dark mode */
[data-theme="dark"] table.vplan tr {
  background-color: #3d2a1a !important;
  color: var(--dm-text-primary);
}

/* Kursarbeit - muted blue */
[data-theme="dark"] table.vplan tr.Kursarbeit {
  background-color: #1a3d4d !important;
}

/* Raum-Vtr - muted purple */
[data-theme="dark"] table.vplan tr.Raum-Vtr {
  background-color: #2d2a4d !important;
}

/* Freisetzung, Entfall, selbständiges Arbeiten - muted gray */
[data-theme="dark"] table.vplan tr.Freisetzung,
[data-theme="dark"] table.vplan tr.Entfall,
[data-theme="dark"] table.vplan tr.selbständigesArbeiten {
  background-color: var(--dm-surface-overlay) !important;
}

/* Aufsicht - muted yellow */
[data-theme="dark"] table.vplan tr.Aufsicht {
  background-color: #4d4a1a !important;
}

/* Relevant entries - muted green with emphasis */
[data-theme="dark"] table.vplan tr.relevant {
  background-color: #1a4d2e !important;
  color: #7dff7f;
}

/* Tagesplan container text */
[data-theme="dark"] .tagesplan {
  color: var(--dm-text-primary);
}

/* ============================================
   Stundenplan / Timetable
   ============================================ */

[data-theme="dark"] .std-stunde,
[data-theme="dark"] .stundenplan-cell {
  background-color: var(--dm-surface-elevated);
  border-color: var(--dm-border-subtle);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .std-stunde:hover,
[data-theme="dark"] .stundenplan-cell:hover {
  background-color: var(--dm-surface-hover);
}

[data-theme="dark"] .std-header,
[data-theme="dark"] .stundenplan-header {
  background-color: var(--dm-surface-overlay);
  color: var(--dm-text-primary);
}

/* ============================================
   Kbar Search
   ============================================ */

[data-theme="dark"] .kbar {
  background-color: var(--dm-surface-elevated);
  border: 1px solid var(--dm-border-default);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

[data-theme="dark"] .kbar-input,
[data-theme="dark"] .kbar-input:focus,
[data-theme="dark"] #kbar-input,
[data-theme="dark"] #kbar-input:focus {
  background-color: var(--dm-surface-inset) !important;
  color: var(--dm-text-primary) !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none;
}

[data-theme="dark"] .kbar-input::placeholder,
[data-theme="dark"] #kbar-input::placeholder {
  color: var(--dm-text-muted);
}

[data-theme="dark"] .kbar-results li {
  border-bottom-color: var(--dm-border-subtle);
}

[data-theme="dark"] .kbar-results li a {
  color: var(--dm-text-primary);
}

[data-theme="dark"] .kbar-results li a small {
  color: var(--dm-text-muted);
}

[data-theme="dark"] .kbar-results li.selected {
  background-color: var(--dm-surface-hover);
}

/* ============================================
   Chat Message Input
   ============================================ */

[data-theme="dark"] .message-new {
  background-color: var(--dm-surface-inset) !important;
  border-color: var(--dm-border-default) !important;
}

[data-theme="dark"] .message-new textarea,
[data-theme="dark"] .message-new textarea:focus,
[data-theme="dark"] textarea[name="msgtext"],
[data-theme="dark"] textarea[name="msgtext"]:focus {
  color: var(--dm-text-primary) !important;
  background-color: transparent !important;
}

[data-theme="dark"] .message-new textarea::placeholder,
[data-theme="dark"] textarea[name="msgtext"]::placeholder {
  color: var(--dm-text-muted) !important;
}

[data-theme="dark"] #charCounter {
  color: var(--dm-text-muted) !important;
}

[data-theme="dark"] .speaker-new {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .triangle-new {
  border-right-color: var(--dm-surface-overlay) !important;
}

/* Chat message compose area icons - invert for visibility */
[data-theme="dark"] .speaker-new a {
  color: var(--dm-text-primary) !important;
}

/* Chat message input table cell */
[data-theme="dark"] td.message-new {
  background-color: var(--dm-surface-inset) !important;
}

/* ============================================
   Tracy Debugger (keep it visible)
   ============================================ */

[data-theme="dark"] #tracy-debug-bar {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
}

/* ============================================
   Additional inline style overrides
   ============================================ */

/* White text that should stay white */
[data-theme="dark"] [style*="color:#fff"],
[data-theme="dark"] [style*="color: #fff"],
[data-theme="dark"] [style*="color:white"],
[data-theme="dark"] [style*="color: white"] {
  color: #fff !important;
}

/* Light gray text */
[data-theme="dark"] [style*="color:#999"],
[data-theme="dark"] [style*="color: #999"] {
  color: var(--dm-text-muted) !important;
}

/* Blue text - brighten for dark mode readability */
[data-theme="dark"] [style*="color:#00f"],
[data-theme="dark"] [style*="color: #00f"],
[data-theme="dark"] [style*="color:#0000ff"],
[data-theme="dark"] [style*="color: #0000ff"] {
  color: #58a6ff !important;
}

/* Red text - brighten for dark mode readability */
[data-theme="dark"] [style*="color:#f00"],
[data-theme="dark"] [style*="color: #f00"],
[data-theme="dark"] [style*="color:#ff0000"],
[data-theme="dark"] [style*="color: #ff0000"] {
  color: #f85149 !important;
}

/* ============================================
   Alert / Message banners
   ============================================ */

[data-theme="dark"] .alert,
[data-theme="dark"] .message-banner {
  background-color: var(--dm-surface-overlay);
  border-color: var(--dm-border-default);
  color: var(--dm-text-primary);
}

[data-theme="dark"] .alert-success {
  background-color: var(--dm-status-success-bg);
  border-color: var(--dm-status-success-border);
}

[data-theme="dark"] .alert-warning {
  background-color: var(--dm-status-warning-bg);
  border-color: var(--dm-status-warning-border);
}

[data-theme="dark"] .alert-danger,
[data-theme="dark"] .alert-error {
  background-color: var(--dm-status-error-bg);
  border-color: var(--dm-status-error-border);
}

[data-theme="dark"] .alert-info {
  background-color: var(--dm-status-info-bg);
  border-color: var(--dm-status-info-border);
}

/* ============================================
   Chat Module - Message Bubbles
   ============================================ */

/* Left side messages (other users) */
[data-theme="dark"] .triangle-left {
  border-top-color: transparent !important;
  border-right-color: #3d5a1f !important;
  border-bottom-color: transparent !important;
}

[data-theme="dark"] .speaker-left {
  background-color: #3d5a1f !important;
  color: #e6edf3 !important;
}

[data-theme="dark"] .message-left {
  background-color: #2d4a1a !important;
  border-color: #3d5a1f !important;
  color: #e6edf3 !important;
}

/* Right side messages (current user) */
[data-theme="dark"] .triangle-right {
  border-top-color: transparent !important;
  border-left-color: #6b5020 !important;
  border-bottom-color: transparent !important;
}

[data-theme="dark"] .speaker-right {
  background-color: #6b5020 !important;
  color: #e6edf3 !important;
}

[data-theme="dark"] .message-right {
  background-color: #4a3a18 !important;
  border-color: #6b5020 !important;
  color: #e6edf3 !important;
}

/* Teacher variant (cyan/teal) */
[data-theme="dark"] .triangle-right.lehrer {
  border-top-color: transparent !important;
  border-left-color: #1a6070 !important;
  border-bottom-color: transparent !important;
}

[data-theme="dark"] .speaker-right.lehrer {
  background-color: #1a6070 !important;
  color: #e6edf3 !important;
}

[data-theme="dark"] .message-right.lehrer {
  background-color: #153848 !important;
  border-color: #1a6070 !important;
  color: #e6edf3 !important;
}

/* Chat selection column */
[data-theme="dark"] .selcol {
  background-color: var(--dm-surface-elevated) !important;
}

[data-theme="dark"] .selelm.sel {
  background-color: var(--dm-surface-hover) !important;
}

[data-theme="dark"] a.selected {
  background-color: var(--dm-accent-primary-muted) !important;
  color: #fff !important;
}

[data-theme="dark"] a.chatgruppe:hover {
  background-color: var(--dm-surface-hover) !important;
}

/* Chat reaction pills */
[data-theme="dark"] .reaction-pill {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .reaction-pill:hover {
  background-color: var(--dm-surface-hover) !important;
}

[data-theme="dark"] .reaction-pill.user-reacted {
  background-color: var(--dm-accent-primary-muted) !important;
  border-color: var(--dm-accent-primary) !important;
}

[data-theme="dark"] .add-reaction-btn:hover {
  background-color: var(--dm-surface-overlay) !important;
}

[data-theme="dark"] .reaction-picker {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5) !important;
}

/* Chat upload/search forms */
[data-theme="dark"] #uplform,
[data-theme="dark"] #searchform {
  background-color: var(--dm-surface-elevated) !important;
  border: 1px solid var(--dm-border-default) !important;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

/* Search form title and labels */
[data-theme="dark"] #searchform td {
  color: var(--dm-text-primary) !important;
}

/* Upload form title */
[data-theme="dark"] #uplform b {
  color: var(--dm-text-primary) !important;
}

/* Input fields in chat forms - override inline background:#eee */
[data-theme="dark"] #uplform input[type="text"],
[data-theme="dark"] #searchform input[type="text"],
[data-theme="dark"] #uplform input[readonly],
[data-theme="dark"] #searchform input[readonly] {
  background-color: var(--dm-surface-inset) !important;
  color: var(--dm-text-primary) !important;
  border: 1px solid var(--dm-border-default) !important;
}

/* Buttons in chat forms */
[data-theme="dark"] #uplform input[type="button"],
[data-theme="dark"] #uplform input[type="submit"],
[data-theme="dark"] #searchform input[type="submit"] {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-primary) !important;
  border: 1px solid var(--dm-border-default) !important;
}

[data-theme="dark"] #uplform input[type="button"]:hover,
[data-theme="dark"] #uplform input[type="submit"]:hover,
[data-theme="dark"] #searchform input[type="submit"]:hover {
  background-color: var(--dm-surface-hover) !important;
}

/* Chat filter buttons with inline background:#ddd */
[data-theme="dark"] td[style*="background:#ddd"],
[data-theme="dark"] td[style*="background: #ddd"] {
  background-color: var(--dm-surface-elevated) !important;
}

/* Chat group links in filter list */
[data-theme="dark"] a.chatgruppe {
  color: var(--dm-text-primary) !important;
}

/* Recipient input field (empf_ids) */
[data-theme="dark"] #empf_ids,
[data-theme="dark"] input[name="empf_ids"] {
  background-color: var(--dm-surface-inset) !important;
  color: var(--dm-text-primary) !important;
  border: 1px solid var(--dm-border-default) !important;
}

[data-theme="dark"] #empf_ids::placeholder,
[data-theme="dark"] input[name="empf_ids"]::placeholder {
  color: var(--dm-text-muted) !important;
}

/* Chat sidebar container for filter list */
[data-theme="dark"] .content > div[style*="float:left"] {
  background-color: transparent !important;
}

/* Chat list table cells */
[data-theme="dark"] .content table[cellpadding] td {
  color: var(--dm-text-primary);
}

/* Chat page inline style overrides - more specific patterns */
[data-theme="dark"] td[style*="background:#eee"],
[data-theme="dark"] td[style*="background: #eee"] {
  background-color: var(--dm-surface-elevated) !important;
}

[data-theme="dark"] td[style*="background:#fff"],
[data-theme="dark"] td[style*="background: #fff"] {
  background-color: var(--dm-surface-base) !important;
}

/* Input fields with inline background:#eee */
[data-theme="dark"] input[style*="background:#eee"],
[data-theme="dark"] input[style*="background: #eee"] {
  background-color: var(--dm-surface-inset) !important;
  color: var(--dm-text-primary) !important;
  border: 1px solid var(--dm-border-default) !important;
}

/* h2 headings in chat sidebar */
[data-theme="dark"] h2[style*="margin-top"] {
  color: var(--dm-text-primary);
}

/* Chat message delete button */
[data-theme="dark"] .message-left a,
[data-theme="dark"] .message-right a {
  color: var(--dm-accent-link) !important;
}

/* Ensure text in chat messages is visible */
[data-theme="dark"] .message-left *,
[data-theme="dark"] .message-right * {
  color: inherit;
}

/* ============================================
   Ticket System
   ============================================ */

/* Ticket info table */
[data-theme="dark"] table.ticketinfo tr {
  background-color: var(--dm-surface-elevated) !important;
}

[data-theme="dark"] table.ticketinfo td {
  color: var(--dm-text-primary) !important;
}

/* New message input area */
[data-theme="dark"] .triangle-new {
  border-right-color: #4a4a4a !important;
}

[data-theme="dark"] .speaker-new {
  background-color: #4a4a4a !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .speaker-new a {
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .message-new {
  background-color: var(--dm-surface-elevated) !important;
  border-color: #4a4a4a !important;
}

[data-theme="dark"] .message-new textarea {
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .message-new textarea::placeholder {
  color: var(--dm-text-muted) !important;
}

[data-theme="dark"] #charCounter {
  color: var(--dm-text-secondary) !important;
}

/* Last message highlight (cyan) - used in ticket chat */
[data-theme="dark"] tr.last .message-left,
[data-theme="dark"] tr.last .message-right {
  background-color: #153848 !important;
  border-color: #1a6070 !important;
}

[data-theme="dark"] tr.last .speaker-left,
[data-theme="dark"] tr.last .speaker-right {
  background-color: #1a6070 !important;
}

[data-theme="dark"] tr.last .triangle-left {
  border-right-color: #1a6070 !important;
}

[data-theme="dark"] tr.last .triangle-right {
  border-left-color: #1a6070 !important;
}

/* Ticket status buttons */
[data-theme="dark"] .status-controls button {
  color: var(--dm-text-primary) !important;
  border: 1px solid var(--dm-border-default) !important;
}

[data-theme="dark"] .status-controls button[disabled] {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-muted) !important;
}

[data-theme="dark"] button.abgelehnt {
  background-color: var(--dm-status-error-bg) !important;
}

[data-theme="dark"] button.in_arbeit {
  background-color: var(--dm-status-warning-bg) !important;
}

[data-theme="dark"] button.erledigt {
  background-color: var(--dm-status-success-bg) !important;
}

[data-theme="dark"] button.offen {
  background-color: var(--dm-surface-elevated) !important;
}

/* ============================================
   Fehlzeiten Module
   ============================================ */

/* Date list items - regular school days */
[data-theme="dark"] .stag {
  background-color: var(--dm-surface-elevated) !important;
  color: var(--dm-text-primary) !important;
  border-color: var(--dm-border-default) !important;
}

/* Date list items - excused (green) */
[data-theme="dark"] .stag.e {
  background-color: var(--dm-status-success-bg) !important;
  color: var(--dm-text-primary) !important;
}

/* Date list items - submitted/pending (yellow) */
[data-theme="dark"] .stag.a {
  background-color: var(--dm-status-warning-bg) !important;
  color: var(--dm-text-primary) !important;
}

/* Date list items - unexcused (red) */
[data-theme="dark"] .stag.u {
  background-color: var(--dm-status-error-bg) !important;
  color: var(--dm-text-primary) !important;
}

/* Date list items - mixed statuses with gradients */
[data-theme="dark"] .stag.ua {
  background: repeating-linear-gradient(45deg, #4d1a1a, #4d1a1a 10px, #4d3a1a 10px, #4d3a1a 20px) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .stag.ue {
  background: repeating-linear-gradient(45deg, #4d1a1a, #4d1a1a 10px, #1a4d2e 10px, #1a4d2e 20px) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .stag.ae {
  background: repeating-linear-gradient(45deg, #4d3a1a, #4d3a1a 10px, #1a4d2e 10px, #1a4d2e 20px) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .stag.uae {
  background: repeating-linear-gradient(45deg, #4d1a1a, #4d1a1a 10px, #4d3a1a 10px, #4d3a1a 20px, #1a4d2e 20px, #1a4d2e 30px) !important;
  color: var(--dm-text-primary) !important;
}

/* Non-school days (weekends, holidays) */
[data-theme="dark"] .ftag {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-secondary) !important;
  border-color: var(--dm-border-default) !important;
}

/* Content areas */
[data-theme="dark"] .lcol {
  background: none !important;
}

[data-theme="dark"] .rcol {
  background: none !important;
}

[data-theme="dark"] .rcol1 {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .rcol2 {
  color: var(--dm-text-muted) !important;
}

[data-theme="dark"] .rcol3 {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary) !important;
}

/* List item containers */
[data-theme="dark"] .fcont {
  background-color: var(--dm-surface-elevated) !important;
}

[data-theme="dark"] .fcont:hover {
  background-color: var(--dm-surface-hover) !important;
}

[data-theme="dark"] .flist {
  color: var(--dm-text-primary);
}

[data-theme="dark"] .flist.red {
  background-color: var(--dm-status-error-bg) !important;
}

/* Grid borders */
[data-theme="dark"] .rrborder {
  border-color: var(--dm-border-default) !important;
}

/* Fehlzeiten summary stats boxes */
[data-theme="dark"] div[style*="background-color:#f0c0c0"],
[data-theme="dark"] div[style*="background-color: #f0c0c0"] {
  background-color: var(--dm-status-error-bg) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] div[style*="background-color:#f0e880"],
[data-theme="dark"] div[style*="background-color: #f0e880"] {
  background-color: var(--dm-status-warning-bg) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] div[style*="background-color:#c0f0c0"],
[data-theme="dark"] div[style*="background-color: #c0f0c0"] {
  background-color: var(--dm-status-success-bg) !important;
  color: var(--dm-text-primary) !important;
}

/* Upload form popup */
[data-theme="dark"] #uplform {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary) !important;
}

/* Text areas and inputs in fehlzeiten forms */
[data-theme="dark"] .rcol textarea,
[data-theme="dark"] .rrcol textarea {
  background-color: var(--dm-surface-inset) !important;
  color: var(--dm-text-primary) !important;
  border-color: var(--dm-border-default) !important;
}

/* ============================================
   Klassenbuch Module
   ============================================ */

/* Entry cells (main grid cells) */
[data-theme="dark"] .entry {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

/* Entry2 cells (absence/remarks columns) */
[data-theme="dark"] .entry2 {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

/* Header labels - small column headers in grids */
[data-theme="dark"] .header {
  color: var(--dm-text-secondary) !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
}

/* Edit form elements */
[data-theme="dark"] .edt {
  background-color: var(--dm-surface-inset) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

/* Edit popup containers */
[data-theme="dark"] #edt,
[data-theme="dark"] #add,
[data-theme="dark"] #srv_edt,
[data-theme="dark"] #abw,
[data-theme="dark"] #bem {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

/* Entry input content boxes */
[data-theme="dark"] .entry-inh,
[data-theme="dark"] .entry-aufg {
  background-color: var(--dm-surface-elevated) !important;
}

/* Klassenbuch navigation date tabs */
[data-theme="dark"] div[style*="border:1px solid #98c040"],
[data-theme="dark"] div[style*="border: 1px solid #98c040"] {
  background-color: var(--dm-surface-hover) !important;
  border-color: var(--dm-accent-secondary) !important;
}

/* Current date highlight */
[data-theme="dark"] div[style*="background:#68a840"],
[data-theme="dark"] div[style*="background: #68a840"],
[data-theme="dark"] div[style*="background-color:#68a840"] {
  background-color: var(--dm-accent-primary-muted) !important;
}

/* Navigation date boxes - light green */
[data-theme="dark"] div[style*="background:#d8eaa0"],
[data-theme="dark"] div[style*="background: #d8eaa0"],
[data-theme="dark"] div[style*="background-color:#d8eaa0"] {
  background-color: var(--dm-status-success-bg) !important;
  color: var(--dm-text-primary) !important;
}

/* Warning/attention boxes - light red */
[data-theme="dark"] div[style*="background:#faa"],
[data-theme="dark"] div[style*="background: #faa"],
[data-theme="dark"] div[style*="background-color:#faa"] {
  background-color: var(--dm-status-error-bg) !important;
  color: var(--dm-text-primary) !important;
}

/* Klassenbuch menu table cells */
[data-theme="dark"] td[style*="background:#e0e0e0"],
[data-theme="dark"] td[style*="background: #e0e0e0"],
[data-theme="dark"] td[style*="background-color:#e0e0e0"] {
  background-color: var(--dm-surface-overlay) !important;
}

[data-theme="dark"] td[style*="background:#eee"],
[data-theme="dark"] td[style*="background: #eee"],
[data-theme="dark"] td[style*="background-color:#eee"] {
  background-color: var(--dm-surface-elevated) !important;
}

[data-theme="dark"] td[style*="background:#ddd"],
[data-theme="dark"] td[style*="background: #ddd"],
[data-theme="dark"] td[style*="background-color:#ddd"] {
  background-color: var(--dm-surface-inset) !important;
}

[data-theme="dark"] td[style*="background:#ccc"],
[data-theme="dark"] td[style*="background: #ccc"],
[data-theme="dark"] td[style*="background-color:#ccc"] {
  background-color: var(--dm-surface-hover) !important;
}

[data-theme="dark"] td[style*="background:#bbb"],
[data-theme="dark"] td[style*="background: #bbb"],
[data-theme="dark"] td[style*="background-color:#bbb"] {
  background-color: #3d444d !important;
}

/* Klassenbuch links in menu cells */
[data-theme="dark"] td[style*="background"] a {
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] td[style*="background"] a:hover {
  color: var(--dm-accent-link-hover) !important;
}

/* Service/info box in klassenbuch */
[data-theme="dark"] #srv {
  background-color: var(--dm-surface-elevated) !important;
}

/* Editable content fields */
[data-theme="dark"] .edtsrv_inh {
  background-color: var(--dm-surface-inset) !important;
  color: var(--dm-text-primary) !important;
}

/* Student items in absence/remarks dialogs */
[data-theme="dark"] .abwitm,
[data-theme="dark"] .bemitm {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

/* Popup edit dialogs */
[data-theme="dark"] #edtabw,
[data-theme="dark"] #edtbem {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
}

/* Klassenbuch button styles */
[data-theme="dark"] .bttn2 {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-primary) !important;
  border-color: var(--dm-border-default) !important;
}

[data-theme="dark"] .bttn2:hover {
  background-color: var(--dm-surface-hover) !important;
}

/* Entry item text color */
[data-theme="dark"] .entry a,
[data-theme="dark"] .entry2 a {
  color: var(--dm-accent-link);
}

/* Content wrapper for klassenbuch */
[data-theme="dark"] #entries {
  scrollbar-color: var(--dm-border-default) var(--dm-surface-base);
}

/* ============================================
   Fahrten (Trips/Excursions) Module
   ============================================ */

/* Table base styling */
[data-theme="dark"] .table tbody tr:nth-child(odd) {
  background-color: var(--dm-surface-elevated) !important;
}

[data-theme="dark"] .table tbody tr:nth-child(even),
[data-theme="dark"] .table th {
  background-color: var(--dm-surface-inset) !important;
}

[data-theme="dark"] .table tbody tr:hover {
  background-color: var(--dm-surface-hover) !important;
}

[data-theme="dark"] .table th {
  color: var(--dm-text-primary) !important;
}

/* Status row colors - approved (green) */
[data-theme="dark"] .table tbody tr.genehmigt,
[data-theme="dark"] span.genehmigt {
  background-color: var(--dm-status-success-bg) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .table tbody tr.genehmigt:hover {
  background-color: #2a5d3e !important;
}

/* Status row colors - requested (red/pink) */
[data-theme="dark"] .table tbody tr.beantragt,
[data-theme="dark"] span.beantragt {
  background-color: var(--dm-status-error-bg) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .table tbody tr.beantragt:hover {
  background-color: #5d2a2a !important;
}

/* Status row colors - VP pending (yellow) */
[data-theme="dark"] .table tbody tr.vp,
[data-theme="dark"] span.vp {
  background-color: var(--dm-status-warning-bg) !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .table tbody tr.vp:hover {
  background-color: #5d4a2a !important;
}

/* Status row colors - Mensa pending (orange) */
[data-theme="dark"] .table tbody tr.mensa,
[data-theme="dark"] span.mensa {
  background-color: #4d2e1a !important;
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .table tbody tr.mensa:hover {
  background-color: #5d3e2a !important;
}

/* Selection buttons */
[data-theme="dark"] .selbtn,
[data-theme="dark"] .selbtn2 {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-primary) !important;
  border: 1px solid var(--dm-border-default) !important;
}

/* Participant list */
[data-theme="dark"] .tlnlist {
  background-color: var(--dm-surface-inset) !important;
  color: var(--dm-text-primary) !important;
}

/* Modal and legend */
[data-theme="dark"] .modal,
[data-theme="dark"] .legende {
  border-color: var(--dm-border-default) !important;
  background-color: var(--dm-surface-elevated) !important;
}

/* Table links */
[data-theme="dark"] .table a {
  color: var(--dm-accent-link) !important;
}

[data-theme="dark"] .table a:hover {
  color: var(--dm-accent-link-hover) !important;
}

/* Fahrten edit page popup dialogs */
[data-theme="dark"] .koord,
[data-theme="dark"] .begleit,
[data-theme="dark"] .conflicts,
[data-theme="dark"] .teilnehmer {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary) !important;
}

/* Participant selection panels */
[data-theme="dark"] .teilnpup,
[data-theme="dark"] .teilnclose {
  background-color: var(--dm-surface-overlay) !important;
  color: var(--dm-text-primary) !important;
}

/* ============================================
   Klassenarbeiten Calendar Module
   ============================================ */

/* Calendar table base styling */
[data-theme="dark"] .terminliste {
  color: var(--dm-text-primary);
}

[data-theme="dark"] .terminliste tr td {
  border-bottom-color: var(--dm-border-subtle) !important;
}

/* Weekend rows (Saturday/Sunday) */
[data-theme="dark"] tr.wochenende {
  background-color: var(--dm-surface-inset) !important;
}

[data-theme="dark"] tr.wochenende td {
  border-bottom-color: var(--dm-border-strong) !important;
}

/* Non-school days (holidays, etc.) */
[data-theme="dark"] tr.schulfrei {
  background-color: var(--dm-surface-inset) !important;
}

/* Today's date */
[data-theme="dark"] tr.heute {
  background-color: #3d444d !important;
}

/* Selected date - highlighted with accent color */
[data-theme="dark"] tr.selDatum {
  background-color: var(--dm-accent-primary-muted) !important;
}

/* Main subject exam phase (Hauptfach) - green */
[data-theme="dark"] .kalender_ka_hauptfach {
  background-color: var(--dm-status-success-bg) !important;
}

/* Secondary subject exam phase (Nebenfach) - yellow */
[data-theme="dark"] .kalender_ka_nebenfach {
  background-color: var(--dm-status-warning-bg) !important;
}

/* Popup windows (Filter, Legende, Drucken) */
[data-theme="dark"] .popup {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

/* Filter and legend boxes */
[data-theme="dark"] .filter,
[data-theme="dark"] .legende {
  background-color: var(--dm-surface-elevated) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

/* Month overview sidebar */
[data-theme="dark"] #months {
  background-color: var(--dm-surface-elevated) !important;
}

/* Calendar entries area */
[data-theme="dark"] #entries {
  background-color: var(--dm-surface-base) !important;
}

/* Kaform table (entry forms) */
[data-theme="dark"] .kaform tbody tr {
  background-color: var(--dm-surface-inset) !important;
}

/* ============================================
   Klassen Module - Photo Gallery
   ============================================ */

/* Student names below photos need better visibility in dark mode */
[data-theme="dark"] .foto-gallery-item a {
  color: var(--dm-text-primary) !important;
}

[data-theme="dark"] .foto-gallery-item a:hover {
  color: var(--dm-accent-link-hover) !important;
}

/* ============================================
   Klassen Module - Student Details
   ============================================ */

/* File upload and photo areas */
[data-theme="dark"] .selFile {
  background-color: var(--dm-surface-inset) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

[data-theme="dark"] .dragArea {
  background-color: var(--dm-surface-inset) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

[data-theme="dark"] .dragArea.over {
  border-color: var(--dm-accent-secondary) !important;
  background-color: var(--dm-status-success-bg) !important;
}

[data-theme="dark"] .workArea {
  background-color: var(--dm-surface-inset) !important;
  border-color: var(--dm-border-default) !important;
  color: var(--dm-text-primary);
}

[data-theme="dark"] .workArea:hover {
  background-color: var(--dm-surface-hover) !important;
}

/* Verbal assessment edit popup */
[data-theme="dark"] #vbview {
  background-color: var(--dm-surface-elevated) !important;
  border: 1px solid var(--dm-border-default);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

/* ============================================
   Stundenplan Module - Timetable
   ============================================ */

/* Invert the entire timetable in dark mode (like the app does) */
[data-theme="dark"] .stdplan-table,
[data-theme="dark"] .stptable {
  filter: invert(1) hue-rotate(180deg);
}

/* Fix header row visibility - needs counter-invert to show properly */
[data-theme="dark"] .stptable thead th {
  filter: invert(1) hue-rotate(180deg);
  background-color: #333 !important;
  color: #fff !important;
}

/* Fix time column (rowheader) visibility */
[data-theme="dark"] .stptable th[scope="row"],
[data-theme="dark"] .stptable tbody th {
  filter: invert(1) hue-rotate(180deg);
  background-color: #333 !important;
  color: #fff !important;
}

/* Force all cell text to be black (inverts to white) for readability */
[data-theme="dark"] .stptable td,
[data-theme="dark"] .stptable td * {
  color: #000 !important;
}

/* Empty cells (no div child = just "-" text) should have light bg (inverts to dark) */
[data-theme="dark"] .stptable td:not(:has(div)) {
  background-color: #f0f0f0 !important;
  color: #333 !important;
}

/* Set table and all cell backgrounds/borders to light (inverts to dark) */
[data-theme="dark"] .stptable,
[data-theme="dark"] .stptable * {
  border-color: #e8e8e8 !important;
  background-color: inherit;
}

[data-theme="dark"] .stptable {
  background-color: #e8e8e8 !important;
}

/* Ensure rowheaders have dark bg (counter-inverted) with matching borders */
[data-theme="dark"] .stptable th[scope="row"],
[data-theme="dark"] .stptable tbody th,
[data-theme="dark"] .stptable thead th {
  border-color: #333 !important;
}

/* ============================================
   AG-Planung (ags_planung.php) Dark Mode
   ============================================ */

/* Override inline background-color styles on AG rows */
[data-theme="dark"] tr[style*="background-color:#e0a0a0"],
[data-theme="dark"] tr[style*="background-color: #e0a0a0"] {
  background-color: #5a3030 !important;
}

[data-theme="dark"] tr[style*="background-color:#f0f0b0"],
[data-theme="dark"] tr[style*="background-color: #f0f0b0"] {
  background-color: #4a4a20 !important;
}

[data-theme="dark"] tr[style*="background-color:#a0d8f0"],
[data-theme="dark"] tr[style*="background-color: #a0d8f0"] {
  background-color: #1a3a4a !important;
}

[data-theme="dark"] tr[style*="background-color:#a0e0a0"],
[data-theme="dark"] tr[style*="background-color: #a0e0a0"] {
  background-color: #1a4a1a !important;
}

[data-theme="dark"] tr[style*="background-color:#d0d0d0"],
[data-theme="dark"] tr[style*="background-color: #d0d0d0"] {
  background-color: #3a3a3a !important;
}

/* Override inline #eee backgrounds (menu items, etc) */
[data-theme="dark"] tr[style*="background-color:#eee"] td,
[data-theme="dark"] tr[style*="background-color: #eee"] td,
[data-theme="dark"] td[style*="background-color:#eee"],
[data-theme="dark"] td[style*="background-color: #eee"],
[data-theme="dark"] td[style*="background:#eee"],
[data-theme="dark"] td[style*="background: #eee"] {
  background-color: var(--dm-surface-elevated) !important;
}

/* Override inline #e0e0e0 backgrounds */
[data-theme="dark"] tr[style*="background-color:#e0e0e0"],
[data-theme="dark"] tr[style*="background-color: #e0e0e0"],
[data-theme="dark"] td[style*="background:#e0e0e0"],
[data-theme="dark"] td[style*="background: #e0e0e0"] {
  background-color: var(--dm-surface-inset) !important;
  color: var(--dm-text-muted) !important;
}

/* AG type color cells */
[data-theme="dark"] td[style*="background-color:#e0a0a0"],
[data-theme="dark"] td[style*="background-color: #e0a0a0"] {
  background-color: #5a3030 !important;
  color: #f0c0c0 !important;
}

[data-theme="dark"] td[style*="background-color:#f0f0b0"],
[data-theme="dark"] td[style*="background-color: #f0f0b0"] {
  background-color: #4a4a20 !important;
  color: #f0f0c0 !important;
}

[data-theme="dark"] td[style*="background-color:#a0d8f0"],
[data-theme="dark"] td[style*="background-color: #a0d8f0"] {
  background-color: #1a3a4a !important;
  color: #c0e8f8 !important;
}

[data-theme="dark"] td[style*="background-color:#a0e0a0"],
[data-theme="dark"] td[style*="background-color: #a0e0a0"] {
  background-color: #1a4a1a !important;
  color: #c0f0c0 !important;
}

[data-theme="dark"] td[style*="background-color:#d0d0d0"],
[data-theme="dark"] td[style*="background-color: #d0d0d0"] {
  background-color: #3a3a3a !important;
  color: #d0d0d0 !important;
}

/* AG type color spans */
[data-theme="dark"] span[style*="background-color:#e0a0a0"],
[data-theme="dark"] span[style*="background-color: #e0a0a0"] {
  background-color: #5a3030 !important;
  color: #f0c0c0 !important;
}

[data-theme="dark"] span[style*="background-color:#f0f0b0"],
[data-theme="dark"] span[style*="background-color: #f0f0b0"] {
  background-color: #4a4a20 !important;
  color: #f0f0c0 !important;
}

[data-theme="dark"] span[style*="background-color:#a0d8f0"],
[data-theme="dark"] span[style*="background-color: #a0d8f0"] {
  background-color: #1a3a4a !important;
  color: #c0e8f8 !important;
}

[data-theme="dark"] span[style*="background-color:#a0e0a0"],
[data-theme="dark"] span[style*="background-color: #a0e0a0"] {
  background-color: #1a4a1a !important;
  color: #c0f0c0 !important;
}

[data-theme="dark"] span[style*="background-color:#d0d0d0"],
[data-theme="dark"] span[style*="background-color: #d0d0d0"] {
  background-color: #3a3a3a !important;
  color: #d0d0d0 !important;
}
