/* ============================================
   CARTA ERP — Multi-Theme Architecture
   ============================================
   3 teme: Dark Glass Blue (DEFAULT) / Light / Sage Mid Green
   Switching: <html data-theme="dark|light|sage">
   Persistence: localStorage 'carta_theme'
   Boot script u index.html primjenjuje temu prije first paint.
   ============================================ */

/* ============================================
   LAYER 1 — THEME TOKENS (--t-*)
   Svaka tema definira ove varijable. Komponente referenciraju
   --t-* preko Layer 2 component varijabli ispod.
   ============================================ */

[data-theme="dark"], :root {
  /* Background palette */
  --t-bg-page: #000;
  --t-bg-radial-1: rgba(0, 55, 170, 0.18);
  --t-bg-radial-2: rgba(0, 25, 110, 0.14);
  --t-bg-radial-3: rgba(0, 12, 48, 0.40);
  --t-bg-deep: rgba(0, 5, 18, 0.82);
  --t-bg-card: rgba(12, 40, 100, 0.11);
  --t-bg-card-hover: rgba(12, 40, 100, 0.18);
  --t-bg-input: rgba(8, 22, 55, 0.55);
  --t-bg-input-readonly: rgba(0, 5, 18, 0.55);
  --t-bg-modal: rgba(8, 22, 55, 0.96);
  --t-bg-modal-overlay: rgba(0, 5, 18, 0.75);
  --t-bg-row-hover: rgba(70, 130, 220, 0.06);
  --t-bg-thead: rgba(70, 130, 220, 0.08);
  --t-sidebar-bg: rgba(0, 5, 18, 0.82);
  --t-sidebar-hover: rgba(70, 130, 220, 0.07);
  --t-topheader-bg: rgba(0, 6, 22, 0.82);

  /* Brand */
  --t-primary: #6aacee;
  --t-primary-bright: #82bdff;
  --t-primary-mid: #4a80bb;
  --t-primary-deep: #3266a8;

  /* Text */
  --t-text-hi: #ddeeff;
  --t-text-mid: rgba(160, 200, 240, 0.65);
  --t-text-lo: rgba(90, 140, 200, 0.42);

  /* Status */
  --t-success: #7ecfb0;
  --t-success-bg: rgba(126, 207, 176, 0.10);
  --t-warning: #e9b566;
  --t-warning-bg: rgba(233, 181, 102, 0.10);
  --t-danger: #b07e8a;
  --t-danger-bg: rgba(176, 126, 138, 0.12);
  --t-info: #6aacee;
  --t-info-bg: rgba(106, 172, 238, 0.10);

  /* Glass */
  --t-glass-bg: rgba(12, 40, 100, 0.11);
  --t-glass-border: rgba(70, 130, 220, 0.16);
  --t-glass-border-strong: rgba(70, 130, 220, 0.28);
  --t-glass-blur: blur(22px) saturate(1.3);

  /* Lines */
  --t-border: rgba(70, 130, 220, 0.16);
  --t-grid: rgba(70, 130, 220, 0.06);
  --t-tick: rgba(90, 140, 200, 0.40);

  /* Shadows & glow */
  --t-shadow: 0 2px 14px rgba(0, 0, 0, 0.4);
  --t-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.55);
  --t-glow-primary: 0 0 14px rgba(106, 172, 238, 0.28);

  /* Remap (inline-style overrideovi iz view fragmenata) */
  --t-remap-warning-bg: rgba(233, 181, 102, 0.06);
  --t-remap-info-bg: rgba(106, 172, 238, 0.06);
  --t-remap-success-bg: rgba(126, 207, 176, 0.06);
  --t-remap-danger-bg: rgba(176, 126, 138, 0.06);
  --t-remap-grey-bg: rgba(70, 130, 220, 0.05);
  --t-remap-text: #ddeeff;

  /* Gradient slots (card-header banneri itd.) */
  --t-gradient-info: linear-gradient(135deg, rgba(106, 172, 238, 0.18) 0%, rgba(70, 130, 220, 0.12) 100%);
  --t-gradient-warning: linear-gradient(135deg, rgba(233, 181, 102, 0.18) 0%, rgba(180, 100, 60, 0.12) 100%);
  --t-gradient-success: linear-gradient(135deg, rgba(126, 207, 176, 0.18) 0%, rgba(80, 160, 120, 0.12) 100%);
  --t-gradient-danger: linear-gradient(135deg, rgba(176, 126, 138, 0.18) 0%, rgba(140, 80, 90, 0.12) 100%);
  --t-gradient-purple: linear-gradient(135deg, rgba(150, 70, 175, 0.45) 0%, rgba(180, 100, 200, 0.35) 100%);

  /* PVND specials (zadržava semantic žuto/zeleno u svim temama) */
  --t-pvnd-row-wh-bg: #2a2210;
  --t-pvnd-row-wh-hover: #5a4520;
  --t-pvnd-row-nli-bg: #112820;
  --t-pvnd-row-nli-hover: #2a4a38;

  /* Logo color filter (Carta PNG je zelen, ovaj filter ga preliva u theme primary) */
  --t-logo-filter: brightness(0) saturate(100%) invert(63%) sepia(82%) saturate(382%) hue-rotate(184deg) brightness(102%) contrast(91%);

  /* Postava color tokens (raspored-nli/wh/tisak) — semantic identity 6 boja */
  --t-postava-1: rgba(106, 172, 238, 0.35);   /* plava (P1, T1) */
  --t-postava-2: rgba(233, 130, 60, 0.35);    /* narandžasta (P2, T2) */
  --t-postava-3: rgba(126, 207, 176, 0.35);   /* zelena (P3, T3) */
  --t-postava-4: rgba(219, 123, 160, 0.35);   /* roza (P4) */
  --t-postava-5: rgba(180, 100, 200, 0.35);   /* ljubičasta (P5) */
  --t-postava-6: rgba(233, 181, 102, 0.35);   /* amber (P6) */
  --t-postava-text: #fff;

  /* Native form controls (scrollbar, calendar picker itd.) */
  --t-color-scheme: dark;
}

[data-theme="light"] {
  /* Background palette */
  --t-bg-page: #f5f7fa;
  --t-bg-radial-1: transparent;
  --t-bg-radial-2: transparent;
  --t-bg-radial-3: transparent;
  --t-bg-deep: #ffffff;
  --t-bg-card: #ffffff;
  --t-bg-card-hover: #f8f9fa;
  --t-bg-input: #ffffff;
  --t-bg-input-readonly: #f5f5f5;
  --t-bg-modal: #ffffff;
  --t-bg-modal-overlay: rgba(0, 0, 0, 0.40);
  --t-bg-row-hover: rgba(25, 118, 210, 0.06);
  --t-bg-thead: #f5f5f5;
  --t-sidebar-bg: #ffffff;
  --t-sidebar-hover: #f0f4f8;
  --t-topheader-bg: #ffffff;

  /* Brand */
  --t-primary: #1976d2;
  --t-primary-bright: #2196f3;
  --t-primary-mid: #1565c0;
  --t-primary-deep: #0d47a1;

  /* Text */
  --t-text-hi: #1a1a1a;
  --t-text-mid: #555555;
  --t-text-lo: #888888;

  /* Status */
  --t-success: #2e7d32;
  --t-success-bg: rgba(46, 125, 50, 0.08);
  --t-warning: #f57c00;
  --t-warning-bg: rgba(245, 124, 0, 0.08);
  --t-danger: #c62828;
  --t-danger-bg: rgba(198, 40, 40, 0.08);
  --t-info: #1976d2;
  --t-info-bg: rgba(25, 118, 210, 0.08);

  /* Glass (degraded — light tema nema glass blur, samo soft cards) */
  --t-glass-bg: #ffffff;
  --t-glass-border: #e0e0e0;
  --t-glass-border-strong: #bdbdbd;
  --t-glass-blur: blur(0);

  /* Lines */
  --t-border: #e0e0e0;
  --t-grid: #eeeeee;
  --t-tick: #999999;

  /* Shadows */
  --t-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  --t-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.15);
  --t-glow-primary: 0 0 0 3px rgba(25, 118, 210, 0.15);

  /* Remap (zadržava originalne pastel boje za light bg) */
  --t-remap-warning-bg: #fff8e1;
  --t-remap-info-bg: #e3f2fd;
  --t-remap-success-bg: #e8f5e9;
  --t-remap-danger-bg: #ffebee;
  --t-remap-grey-bg: #f5f5f5;
  --t-remap-text: #1a1a1a;

  /* Gradient slots */
  --t-gradient-info: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
  --t-gradient-warning: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%);
  --t-gradient-success: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
  --t-gradient-danger: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%);
  --t-gradient-purple: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%);

  /* PVND specials — pastel žuto/zeleno kao original */
  --t-pvnd-row-wh-bg: #fffde7;
  --t-pvnd-row-wh-hover: #fff9c4;
  --t-pvnd-row-nli-bg: #e8f5e9;
  --t-pvnd-row-nli-hover: #c8e6c9;

  /* Light primary je tamnija plava — logo filter prilagođen */
  --t-logo-filter: brightness(0) saturate(100%) invert(35%) sepia(99%) saturate(1050%) hue-rotate(195deg) brightness(95%) contrast(95%);

  /* Postava — pastel originale za light temu */
  --t-postava-1: #e3f2fd;
  --t-postava-2: #fff3e0;
  --t-postava-3: #e8f5e9;
  --t-postava-4: #fce4ec;
  --t-postava-5: #f3e5f5;
  --t-postava-6: #fff8e1;
  --t-postava-text: #1a1a1a;

  --t-color-scheme: light;
}

[data-theme="sage"] {
  /* Background palette */
  --t-bg-page: #4a5550;
  --t-bg-radial-1: rgba(155, 184, 155, 0.10);
  --t-bg-radial-2: rgba(80, 110, 90, 0.10);
  --t-bg-radial-3: rgba(40, 60, 50, 0.20);
  --t-bg-deep: rgba(40, 50, 45, 0.85);
  --t-bg-card: rgba(60, 75, 65, 0.45);
  --t-bg-card-hover: rgba(70, 90, 75, 0.55);
  --t-bg-input: rgba(50, 65, 55, 0.65);
  --t-bg-input-readonly: rgba(35, 45, 40, 0.75);
  --t-bg-modal: rgba(50, 65, 55, 0.96);
  --t-bg-modal-overlay: rgba(20, 30, 25, 0.75);
  --t-bg-row-hover: rgba(155, 184, 155, 0.08);
  --t-bg-thead: rgba(155, 184, 155, 0.12);
  --t-sidebar-bg: rgba(40, 50, 45, 0.85);
  --t-sidebar-hover: rgba(155, 184, 155, 0.08);
  --t-topheader-bg: rgba(40, 50, 45, 0.85);

  /* Brand */
  --t-primary: #9bb89b;
  --t-primary-bright: #b8d0b8;
  --t-primary-mid: #7a9a7a;
  --t-primary-deep: #5a7a5a;

  /* Text */
  --t-text-hi: #f0ece0;
  --t-text-mid: #c5d0c0;
  --t-text-lo: #8a958c;

  /* Status (muted/earthy) */
  --t-success: #a5c994;
  --t-success-bg: rgba(165, 201, 148, 0.12);
  --t-warning: #d4b870;
  --t-warning-bg: rgba(212, 184, 112, 0.12);
  --t-danger: #c98a8a;
  --t-danger-bg: rgba(201, 138, 138, 0.14);
  --t-info: #9bb89b;
  --t-info-bg: rgba(155, 184, 155, 0.12);

  /* Glass */
  --t-glass-bg: rgba(60, 75, 65, 0.40);
  --t-glass-border: rgba(155, 184, 155, 0.20);
  --t-glass-border-strong: rgba(155, 184, 155, 0.35);
  --t-glass-blur: blur(20px) saturate(1.2);

  /* Lines */
  --t-border: rgba(155, 184, 155, 0.20);
  --t-grid: rgba(155, 184, 155, 0.10);
  --t-tick: rgba(155, 184, 155, 0.50);

  /* Shadows */
  --t-shadow: 0 2px 14px rgba(0, 0, 0, 0.35);
  --t-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.50);
  --t-glow-primary: 0 0 14px rgba(155, 184, 155, 0.30);

  /* Remap */
  --t-remap-warning-bg: rgba(212, 184, 112, 0.10);
  --t-remap-info-bg: rgba(155, 184, 155, 0.10);
  --t-remap-success-bg: rgba(165, 201, 148, 0.10);
  --t-remap-danger-bg: rgba(201, 138, 138, 0.12);
  --t-remap-grey-bg: rgba(155, 184, 155, 0.06);
  --t-remap-text: #f0ece0;

  /* Gradient slots */
  --t-gradient-info: linear-gradient(135deg, rgba(155, 184, 155, 0.20) 0%, rgba(120, 150, 120, 0.12) 100%);
  --t-gradient-warning: linear-gradient(135deg, rgba(212, 184, 112, 0.20) 0%, rgba(170, 140, 80, 0.12) 100%);
  --t-gradient-success: linear-gradient(135deg, rgba(165, 201, 148, 0.20) 0%, rgba(120, 160, 100, 0.12) 100%);
  --t-gradient-danger: linear-gradient(135deg, rgba(201, 138, 138, 0.20) 0%, rgba(160, 100, 100, 0.12) 100%);
  --t-gradient-purple: linear-gradient(135deg, rgba(170, 130, 180, 0.40) 0%, rgba(140, 100, 160, 0.30) 100%);

  /* PVND specials (sage varijante žuto/zeleno) */
  --t-pvnd-row-wh-bg: #3d3a25;
  --t-pvnd-row-wh-hover: #5d5430;
  --t-pvnd-row-nli-bg: #2d3d33;
  --t-pvnd-row-nli-hover: #3d5a45;

  /* Sage tema — logo zadržava prirodni zeleni ton (nema filter, samo drop-shadow) */
  --t-logo-filter: brightness(0) saturate(100%) invert(78%) sepia(11%) saturate(680%) hue-rotate(70deg) brightness(95%) contrast(85%);

  /* Postava — sage muted varijante */
  --t-postava-1: rgba(155, 184, 155, 0.30);
  --t-postava-2: rgba(212, 184, 112, 0.30);
  --t-postava-3: rgba(165, 201, 148, 0.30);
  --t-postava-4: rgba(201, 138, 138, 0.25);
  --t-postava-5: rgba(170, 130, 180, 0.30);
  --t-postava-6: rgba(212, 184, 112, 0.30);
  --t-postava-text: #f0ece0;

  --t-color-scheme: dark;
}

/* ============================================
   LAYER 2 — COMPONENT VARS (existing names → theme tokens)
   Postojeća pravila u styles.css koja koriste --primary, --bg-card, --text-hi
   itd. NE mijenjaju se. Ovi aliasi sad referenciraju --t-* tokene per-theme.
   ============================================ */

:root {
  /* Brand aliases */
  --blue: var(--t-primary);
  --blue-bright: var(--t-primary-bright);
  --blue-mid: var(--t-primary-mid);
  --blue-deep: var(--t-primary-deep);
  --blue-dim: rgba(106, 172, 238, 0.50);
  --primary: var(--t-primary);
  --primary-light: var(--t-primary-bright);
  --primary-dark: var(--t-primary-mid);
  --accent: var(--t-primary);

  /* Status */
  --success: var(--t-success);
  --success-bg: var(--t-success-bg);
  --warning: var(--t-warning);
  --warning-bg: var(--t-warning-bg);
  --danger: var(--t-danger);
  --danger-bg: var(--t-danger-bg);
  --info: var(--t-info);
  --info-bg: var(--t-info-bg);

  /* Backgrounds */
  --bg-body: var(--t-bg-page);
  --bg-deep: var(--t-bg-deep);
  --bg-card: var(--t-bg-card);
  --bg-card-hover: var(--t-bg-card-hover);
  --bg-input: var(--t-bg-input);
  --bg-input-readonly: var(--t-bg-input-readonly);
  --bg-table-row-hover: var(--t-bg-row-hover);
  --bg-thead: var(--t-bg-thead);
  --bg-modal: var(--t-bg-modal);
  --bg-modal-overlay: var(--t-bg-modal-overlay);
  --sidebar-bg: var(--t-sidebar-bg);
  --sidebar-hover: var(--t-sidebar-hover);
  --topheader-bg: var(--t-topheader-bg);

  /* Glass */
  --glass-bg: var(--t-glass-bg);
  --glass-border: var(--t-glass-border);
  --glass-border-strong: var(--t-glass-border-strong);
  --glass-blur: var(--t-glass-blur);

  /* Text */
  --text-primary: var(--t-text-hi);
  --text-secondary: var(--t-text-mid);
  --text-muted: var(--t-text-lo);
  --text-light: var(--t-text-lo);
  --text-hi: var(--t-text-hi);
  --text-mid: var(--t-text-mid);
  --text-lo: var(--t-text-lo);

  /* Lines */
  --border: var(--t-border);
  --grid: var(--t-grid);
  --tick: var(--t-tick);

  /* Shadows */
  --shadow: var(--t-shadow);
  --shadow-lg: var(--t-shadow-lg);
  --glow-blue: var(--t-glow-primary);

  /* Remap (za inline-style overrideove) */
  --remap-warning-bg: var(--t-remap-warning-bg);
  --remap-info-bg: var(--t-remap-info-bg);
  --remap-success-bg: var(--t-remap-success-bg);
  --remap-danger-bg: var(--t-remap-danger-bg);
  --remap-grey-bg: var(--t-remap-grey-bg);
  --remap-text: var(--t-remap-text);

  /* Gradients (card banneri) */
  --gradient-info: var(--t-gradient-info);
  --gradient-warning: var(--t-gradient-warning);
  --gradient-success: var(--t-gradient-success);
  --gradient-danger: var(--t-gradient-danger);
  --gradient-purple: var(--t-gradient-purple);

  /* PVND row tinte */
  --pvnd-row-wh-bg: var(--t-pvnd-row-wh-bg);
  --pvnd-row-wh-hover: var(--t-pvnd-row-wh-hover);
  --pvnd-row-nli-bg: var(--t-pvnd-row-nli-bg);
  --pvnd-row-nli-hover: var(--t-pvnd-row-nli-hover);

  /* Postava color tokens (raspored-nli/wh/tisak) */
  --postava-1: var(--t-postava-1);
  --postava-2: var(--t-postava-2);
  --postava-3: var(--t-postava-3);
  --postava-4: var(--t-postava-4);
  --postava-5: var(--t-postava-5);
  --postava-6: var(--t-postava-6);
  --postava-text: var(--t-postava-text);

  /* Layout (theme-invariant) */
  --radius: 14px;
  --radius-sm: 8px;
  --radius-xs: 6px;
  --top-header-h: 56px;
  --sidebar-width: 56px;          /* mini collapsed (samo ikone) */
  --sidebar-width-expanded: 220px; /* hover expand širina */
  --transition: all 0.22s ease;

  /* Native form controls (scrollbar, date picker, autofill) */
  color-scheme: var(--t-color-scheme);
}

/* === RESET & BASE === */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body { height: 100%; }

body {
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  background: var(--bg-body);
  color: var(--text-primary);
  line-height: 1.5;
  min-height: 100vh;
  /* overflow-x na razini .main-content (ne body) — sidebar/header ostaju fiksni */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition: background-color 0.30s ease, color 0.30s ease;
}

/* Radial atmosphere (cijeli viewport pozadina, theme-aware) */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 1100px 700px at 8% 10%, var(--t-bg-radial-1) 0%, transparent 65%),
    radial-gradient(ellipse 700px 600px at 92% 80%, var(--t-bg-radial-2) 0%, transparent 60%),
    radial-gradient(ellipse 600px 500px at 50% 50%, var(--t-bg-radial-3) 0%, transparent 70%);
  transition: background 0.30s ease;
}

a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--blue-bright); }

/* === LAYOUT === */
.app-container {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-areas:
    "header header"
    "sidebar main";
  grid-template-rows: var(--top-header-h) 1fr;
  grid-template-columns: var(--sidebar-width) 1fr;
  min-height: 100vh;
}

/* === TOP HEADER === */
.top-header {
  grid-area: header;
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 22px;
  background: var(--topheader-bg);
  border-bottom: 1px solid var(--glass-border);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}

.top-header-left {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 220px; /* drži logo + naslov vidljive bez obzira na sidebar collapse */
}

.top-header-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.6px;
  color: var(--text-hi);
}

/* Carta logotip — PNG je zelen.
   Filter chain pretvara bilo koju boju → #6aacee (plava).
   Generirano kroz https://codepen.io/sosuke/pen/Pjoqqp pattern.
   Prvo brightness(0) otkrcava postojeću boju u crno, onda invert+sepia+saturate
   gradi novu boju. */
.top-header-logo .carta-logo-img {
  height: 28px;
  width: auto;
  display: block;
  filter: var(--t-logo-filter) drop-shadow(0 0 6px rgba(106, 172, 238, 0.30));
}

.top-header-title {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.top-header-title strong {
  font-size: 14px;
  color: var(--text-hi);
  letter-spacing: 0.4px;
}
.top-header-title span {
  font-size: 10px;
  color: var(--text-lo);
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

/* Top breadcrumb / view title */
.top-header-center {
  flex: 1;
  text-align: center;
  font-size: 13px;
  color: var(--text-mid);
  letter-spacing: 0.4px;
}

.top-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.icon-btn {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1px solid var(--glass-border);
  background: rgba(12, 40, 100, 0.16);
  color: var(--text-mid);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
  position: relative;
}
.icon-btn:hover {
  color: var(--blue);
  border-color: var(--glass-border-strong);
  background: rgba(70, 130, 220, 0.10);
}

.user-avatar {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: linear-gradient(135deg, #0e2e6a, #4a8ccc);
  color: #cce4ff;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(106, 172, 238, 0.35);
  box-shadow: var(--glow-blue);
  cursor: pointer;
}

/* === SIDEBAR (collapsible mini-mode) ===
   Default: 56px (samo ikone). Hover NA SIDEBARU: expand na 220px.
   Glavni content NE pomiče se (sidebar je grid-area cell s fiksnom shirinom);
   expanded sidebar overlapa sadržaj kroz absolute positioning. */
.sidebar {
  grid-area: sidebar;
  position: fixed;
  top: var(--top-header-h);
  left: 0;
  height: calc(100vh - var(--top-header-h));
  width: var(--sidebar-width);
  background: var(--sidebar-bg);
  border-right: 1px solid var(--glass-border);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 40;
  transition: width 0.22s ease, box-shadow 0.22s ease;
}

.sidebar:hover,
.sidebar.sidebar-pinned {
  width: var(--sidebar-width-expanded);
  box-shadow: 4px 0 28px rgba(0, 0, 0, 0.45);
  overflow-y: auto;
  overflow-x: hidden;
}

.sidebar-header {
  display: none; /* logo je sad u top header-u */
}

.sidebar-menu {
  flex: 1;
  padding: 12px 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.nav-separator {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 1.6px;
  color: var(--text-lo);
  padding: 14px 16px 6px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  /* Sakrij section labele kad je sidebar collapsed */
  opacity: 0;
  transition: opacity 0.18s ease;
  height: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.sidebar:hover .nav-separator,
.sidebar.sidebar-pinned .nav-separator {
  opacity: 1;
  height: auto;
  padding: 14px 16px 6px;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 18px;
  color: var(--text-mid);
  text-decoration: none;
  font-size: 12.5px;
  border-left: 2px solid transparent;
  cursor: pointer;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
  white-space: nowrap;
  overflow: hidden;
  position: relative;
}

/* Tekst labele se sakrije kad je sidebar collapsed */
.nav-item .nav-text {
  opacity: 0;
  transition: opacity 0.18s ease;
  pointer-events: none;
}
.sidebar:hover .nav-item .nav-text,
.sidebar.sidebar-pinned .nav-item .nav-text {
  opacity: 1;
  pointer-events: auto;
}

.nav-item:hover {
  color: var(--text-hi);
  background: var(--sidebar-hover);
}

.nav-item.active {
  color: var(--blue);
  background: rgba(70, 130, 220, 0.09);
  border-left-color: var(--blue);
  font-weight: 600;
}

.nav-icon {
  width: 16px;
  flex-shrink: 0;
  opacity: 0.6;
  transition: opacity 0.15s;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.nav-item:hover .nav-icon { opacity: 0.9; }
.nav-item.active .nav-icon {
  opacity: 1;
  filter: drop-shadow(0 0 4px rgba(106, 172, 238, 0.55));
}

/* SVG icons (mask-image) inside nav already inherit currentColor */
.nav-icon.svg-icon { width: 14px; height: 14px; }

.sidebar-footer {
  padding: 10px 12px;
  border-top: 1px solid var(--glass-border);
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 0, 0, 0.25);
  flex-shrink: 0;
  overflow: hidden;
}

.user-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  opacity: 0;
  transition: opacity 0.18s ease;
  pointer-events: none;
}
.sidebar:hover .user-info,
.sidebar.sidebar-pinned .user-info { opacity: 1; pointer-events: auto; }

.user-name {
  font-weight: 600;
  font-size: 11.5px;
  color: var(--text-hi);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-role {
  font-size: 10px;
  color: var(--text-lo);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.btn-logout, .btn-password, .btn-notif {
  width: 30px;
  height: 30px;
  background: rgba(12, 40, 100, 0.20);
  border: 1px solid var(--glass-border);
  color: var(--text-mid);
  font-size: 13px;
  cursor: pointer;
  border-radius: 7px;
  transition: var(--transition);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.btn-logout:hover { color: var(--danger); border-color: rgba(176, 126, 138, 0.4); }
.btn-password:hover, .btn-notif:hover { color: var(--blue); border-color: var(--glass-border-strong); }

/* === MAIN === */
.main-content {
  grid-area: main;
  padding: 18px 22px;
  min-height: calc(100vh - var(--top-header-h));
  position: relative;
  overflow-x: auto;   /* horizontalni scrollbar kad je content širi od viewporta */
  min-width: 0;       /* CSS grid hack — bez ovoga 1fr cell se proširuje na content i scroll ne radi */
}

#app-content {
  max-width: 100%;
  margin: 0 auto;
}

/* === TYPOGRAPHY === */
h1, h2, h3, h4, h5, h6 { color: var(--text-hi); font-weight: 700; }
h1 { font-size: 1.55em; margin-bottom: 18px; letter-spacing: -0.3px; }
h2 { font-size: 1.3em; margin-bottom: 14px; }
h3 { font-size: 1.1em; margin-bottom: 12px; }

/* === GLASS CARDS === */
.card,
.glass {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  position: relative;
  overflow: hidden;
}

.card { padding: 16px 18px; margin-bottom: 14px; }

/* Subtle highlight stroke at top + inner sheen — matches reference */
.card::after,
.glass::after {
  content: '';
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(130, 190, 255, 0.35), transparent);
  pointer-events: none;
}

.card::before,
.glass::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(100, 170, 255, 0.04) 0%, transparent 55%);
  pointer-events: none;
  border-radius: inherit;
}

.card-header {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  color: var(--text-mid);
  font-weight: 600;
  padding-bottom: 10px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--grid);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
}

/* Akcijski wrapper desno (npr. "Svi nalozi →" gumb) ide na desno */
.card-header .card-header-actions,
.card-header > .btn:last-child:nth-child(n+2),
.card-header > a:last-child:nth-child(n+2) { margin-left: auto; }

.card-body {
  position: relative;
  z-index: 1;
}

.card-header-actions {
  display: flex;
  gap: 8px;
}

/* === STATUS CARDS (KPI) === */
.status-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.status-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  padding: 14px 16px;
  position: relative;
  overflow: hidden;
  transition: var(--transition);
  text-align: left;
  cursor: pointer;
}

.status-card::after {
  content: '';
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(130, 190, 255, 0.35), transparent);
  pointer-events: none;
}

.status-card::before {
  content: '';
  position: absolute;
  top: -28px; right: -28px;
  width: 90px; height: 90px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--blue), transparent 70%);
  opacity: 0.07;
  pointer-events: none;
}

.status-card:hover {
  transform: translateY(-2px);
  border-color: var(--glass-border-strong);
  background: var(--bg-card-hover);
}

.status-card-icon {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  color: var(--text-lo);
  margin-bottom: 8px;
}

.status-card-value {
  font-size: 1.65em;
  font-weight: 700;
  color: var(--text-hi);
  line-height: 1;
  letter-spacing: -0.3px;
}

.status-card-label {
  font-size: 11px;
  color: var(--text-lo);
  margin-top: 5px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
}

.status-card.success .status-card-value { color: var(--success); }
.status-card.warning .status-card-value { color: var(--warning); }
.status-card.danger .status-card-value { color: var(--danger); }
.status-card.info .status-card-value { color: var(--blue); }

/* === TABLES === */
.table-container {
  overflow-x: auto;
  border-radius: var(--radius-sm);
  border: 1px solid var(--grid);
  background: rgba(0, 5, 18, 0.30);
}

table {
  width: 100%;
  border-collapse: collapse;
  background: transparent;
  color: var(--text-mid);
}

table th {
  background: rgba(70, 130, 220, 0.08);
  color: var(--text-lo);
  padding: 10px 12px;
  text-align: left;
  font-weight: 600;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  border-bottom: 1px solid var(--glass-border);
  white-space: nowrap;
}

table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--grid);
  font-size: 12.5px;
  color: var(--text-mid);
}

table tr:hover td { background: var(--bg-table-row-hover); color: var(--text-hi); }
table tr:last-child td { border-bottom: none; }

/* === FORMS === */
.form-group {
  margin-bottom: 14px;
}

.form-group label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
  color: var(--text-mid);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.form-control {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  color: var(--text-hi);
  background: var(--bg-input);
  transition: var(--transition);
  font-family: inherit;
}

.form-control::placeholder { color: var(--text-lo); }

.form-control:focus {
  outline: none;
  border-color: var(--blue);
  background: rgba(8, 22, 55, 0.85);
  box-shadow: 0 0 0 3px rgba(106, 172, 238, 0.15);
}

.form-control:disabled {
  background: rgba(0, 5, 18, 0.40);
  color: var(--text-lo);
  cursor: not-allowed;
  opacity: 0.7;
}

.form-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}

.form-row .form-group { margin-bottom: 0; }

select.form-control {
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236aacee' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 14px;
  padding-right: 32px;
}

select.form-control option {
  background: #07142e;
  color: var(--text-hi);
}

textarea.form-control {
  resize: vertical;
  min-height: 90px;
  font-family: inherit;
}

/* Date pickers */
.date-picker-group, .date-range-group {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.date-picker-group .form-group,
.date-range-group .form-group { margin-bottom: 0; min-width: 150px; }

/* === BUTTONS === */
.btn {
  padding: 8px 16px;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 600;
  transition: var(--transition);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-decoration: none;
  background: var(--glass-bg);
  color: var(--text-hi);
  font-family: inherit;
  letter-spacing: 0.2px;
}

.btn:disabled { opacity: 0.55; cursor: not-allowed; }

.btn-primary {
  background: linear-gradient(135deg, rgba(106, 172, 238, 0.20) 0%, rgba(70, 130, 220, 0.30) 100%);
  border-color: rgba(106, 172, 238, 0.4);
  color: var(--blue-bright);
}
.btn-primary:hover:not(:disabled) {
  background: linear-gradient(135deg, rgba(106, 172, 238, 0.32) 0%, rgba(70, 130, 220, 0.45) 100%);
  border-color: var(--blue);
  box-shadow: 0 0 14px rgba(106, 172, 238, 0.30);
  color: #fff;
}

.btn-success { color: var(--success); border-color: rgba(126, 207, 176, 0.30); background: rgba(126, 207, 176, 0.08); }
.btn-success:hover:not(:disabled) { background: rgba(126, 207, 176, 0.18); border-color: var(--success); }

.btn-warning { color: var(--warning); border-color: rgba(233, 181, 102, 0.30); background: rgba(233, 181, 102, 0.08); }
.btn-warning:hover:not(:disabled) { background: rgba(233, 181, 102, 0.18); border-color: var(--warning); }

.btn-danger { color: var(--danger); border-color: rgba(176, 126, 138, 0.35); background: rgba(176, 126, 138, 0.10); }
.btn-danger:hover:not(:disabled) { background: rgba(176, 126, 138, 0.20); border-color: var(--danger); }

.btn-secondary { color: var(--text-mid); }
.btn-secondary:hover:not(:disabled) { color: var(--text-hi); background: rgba(70, 130, 220, 0.10); }

.btn-info { color: var(--blue); border-color: var(--glass-border-strong); }

.btn-outline {
  background: transparent;
  border: 1px solid var(--blue);
  color: var(--blue);
}
.btn-outline:hover:not(:disabled) {
  background: rgba(106, 172, 238, 0.12);
  color: var(--blue-bright);
}

.btn-sm { padding: 5px 11px; font-size: 11px; }
.btn-lg { padding: 12px 24px; font-size: 14px; }
.btn-block { width: 100%; }
.btn-group { display: flex; gap: 8px; flex-wrap: wrap; }

/* === BADGES === */
.badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.3px;
  border: 1px solid transparent;
}

.badge-success  { color: var(--success); background: var(--success-bg); border-color: rgba(126, 207, 176, 0.25); }
.badge-warning  { color: var(--warning); background: var(--warning-bg); border-color: rgba(233, 181, 102, 0.25); }
.badge-danger   { color: var(--danger);  background: var(--danger-bg);  border-color: rgba(176, 126, 138, 0.30); }
.badge-info     { color: var(--blue);    background: var(--info-bg);    border-color: rgba(106, 172, 238, 0.25); }
.badge-primary  { color: var(--blue);    background: var(--info-bg);    border-color: rgba(106, 172, 238, 0.30); }
.badge-secondary{ color: var(--text-mid); background: rgba(70, 130, 220, 0.08); border-color: var(--glass-border); }

/* === TABS === */
.tab-navigation {
  display: flex;
  gap: 4px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--glass-border);
  flex-wrap: wrap;
}

.tab-btn {
  padding: 10px 18px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-lo);
  transition: var(--transition);
  margin-bottom: -1px;
  font-family: inherit;
  letter-spacing: 0.3px;
}

.tab-btn:hover {
  color: var(--text-mid);
  background: rgba(70, 130, 220, 0.05);
}

.tab-btn.active {
  color: var(--blue);
  border-bottom-color: var(--blue);
}

.tab-content { display: none; }
.tab-content.active { display: block; }

/* === MODALS === */
.modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 5, 18, 0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 2000;
  padding: 20px;
}

/* Modal-content kao FLEX kolona — header sticky top, body scrolla, actions sticky bottom */
.modal-content {
  background: rgba(8, 22, 55, 0.96);
  border: 1px solid var(--glass-border-strong);
  border-radius: var(--radius);
  width: 100%;
  max-width: 600px;
  max-height: 90vh;
  box-shadow: var(--shadow-lg), 0 0 60px rgba(0, 30, 90, 0.6);
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden; /* radius clipping; scroll je u body-u */
}

.modal-content::after {
  content: '';
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(130, 190, 255, 0.45), transparent);
}

.modal-header {
  padding: 14px 20px;
  border-bottom: 1px solid var(--glass-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
  background: rgba(70, 130, 220, 0.05);
}

.modal-header h2,
.modal-header h3 {
  font-size: 1em;
  color: var(--text-hi);
  margin: 0;
  font-weight: 700;
  letter-spacing: 0.3px;
}

.modal-close {
  font-size: 1.6em;
  cursor: pointer;
  color: var(--text-lo);
  line-height: 1;
  background: none;
  border: none;
  padding: 0 4px;
  transition: var(--transition);
}
.modal-close:hover { color: var(--danger); }

.modal-body {
  padding: 20px;
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: auto;
  min-height: 0; /* allows flex child to shrink */
}

.modal-actions,
.modal-footer {
  padding: 12px 20px;
  border-top: 1px solid var(--glass-border);
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-shrink: 0;
  background: rgba(0, 5, 18, 0.55);
}

.modal-lg .modal-content { max-width: 900px; }
.modal-sm .modal-content { max-width: 400px; }

/* === TOAST === */
.toast-container {
  position: fixed;
  top: calc(var(--top-header-h) + 12px);
  right: 18px;
  z-index: 10000;
}

.toast {
  padding: 12px 18px;
  border-radius: var(--radius-sm);
  margin-bottom: 8px;
  box-shadow: var(--shadow-lg);
  animation: slideIn 0.28s ease;
  max-width: 360px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  border: 1px solid;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.toast-icon { font-size: 1.1em; }
.toast-text { flex: 1; }

.toast-success { background: rgba(126, 207, 176, 0.15); color: var(--success); border-color: rgba(126, 207, 176, 0.40); }
.toast-error   { background: rgba(176, 126, 138, 0.18); color: var(--danger);  border-color: rgba(176, 126, 138, 0.45); }
.toast-warning { background: rgba(233, 181, 102, 0.15); color: var(--warning); border-color: rgba(233, 181, 102, 0.40); }
.toast-info    { background: rgba(106, 172, 238, 0.15); color: var(--blue);    border-color: rgba(106, 172, 238, 0.40); }

.toast.fade-out { animation: fadeOut 0.28s ease forwards; }

@keyframes slideIn { from { transform: translateX(110%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }

/* === LOADING === */
.loading-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 5, 18, 0.70);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.loading-content {
  background: rgba(8, 22, 55, 0.96);
  border: 1px solid var(--glass-border-strong);
  padding: 32px 40px;
  border-radius: var(--radius);
  text-align: center;
  box-shadow: var(--shadow-lg);
  color: var(--text-hi);
}

.spinner {
  border: 3px solid rgba(70, 130, 220, 0.15);
  border-top: 3px solid var(--blue);
  border-radius: 50%;
  width: 44px;
  height: 44px;
  animation: spin 0.9s linear infinite;
  margin: 0 auto 16px;
}

@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* === LOGIN === */
.login-container {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  position: relative;
  z-index: 1;
}

.login-box {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border-strong);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  padding: 44px 36px;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg), 0 0 60px rgba(0, 30, 90, 0.5);
  width: 100%;
  max-width: 420px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.login-box::after {
  content: '';
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(130, 190, 255, 0.5), transparent);
}

.login-logo {
  width: 90px;
  height: 90px;
  margin: 0 auto 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  background: rgba(70, 130, 220, 0.10);
  border: 1px solid var(--glass-border-strong);
  box-shadow: var(--glow-blue);
}

.login-logo img {
  max-width: 70px;
  max-height: 70px;
  filter: var(--t-logo-filter) drop-shadow(0 0 8px rgba(106, 172, 238, 0.4));
}

.login-title {
  font-size: 1.7em;
  color: var(--text-hi);
  margin-bottom: 6px;
  letter-spacing: -0.3px;
}

.login-subtitle {
  color: var(--text-lo);
  margin-bottom: 24px;
  font-size: 13px;
}

.pin-input-container {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin: 24px 0;
}

.pin-input {
  width: 52px;
  height: 62px;
  text-align: center;
  font-size: 26px;
  font-weight: 700;
  border: 1px solid var(--glass-border-strong);
  border-radius: var(--radius-sm);
  background: var(--bg-input);
  color: var(--text-hi);
  transition: var(--transition);
}

.pin-input:focus {
  border-color: var(--blue);
  outline: none;
  box-shadow: 0 0 0 3px rgba(106, 172, 238, 0.20);
}

/* === SEARCH BOX === */
.search-box { position: relative; margin-bottom: 16px; }
.search-box input { padding-left: 42px; }
.search-box::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 50%;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
  background-color: var(--text-lo);
  -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}

/* === EMPTY STATE === */
.empty-state {
  text-align: center;
  padding: 50px 20px;
  color: var(--text-lo);
}
.empty-state-icon {
  font-size: 3.2em;
  margin-bottom: 16px;
  opacity: 0.4;
}
.empty-state-text { font-size: 1em; margin-bottom: 16px; }

/* === ACTION BTN (table icons) === */
.action-btn {
  padding: 5px 8px;
  font-size: 0.95em;
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  border-radius: 4px;
  transition: var(--transition);
  color: var(--text-mid);
}
.action-btn:hover {
  background: rgba(70, 130, 220, 0.10);
  border-color: var(--glass-border);
  color: var(--text-hi);
}
.action-btn.edit:hover   { color: var(--warning); }
.action-btn.delete:hover { color: var(--danger); }
.action-btn.view:hover   { color: var(--blue); }

/* === KPI HELPER (mini change indicators) === */
.kpi-change {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 10.5px;
  margin-top: 5px;
}
.kpi-change.up { color: var(--success); }
.kpi-change.dn { color: var(--danger); }

.cbadge { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 6px; }
.cbadge.up { color: var(--success); background: rgba(126, 207, 176, 0.10); border: 1px solid rgba(126, 207, 176, 0.25); }
.cbadge.dn { color: var(--danger);  background: rgba(176, 126, 138, 0.10); border: 1px solid rgba(176, 126, 138, 0.30); }

/* === SCROLLBARS === */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: rgba(0, 5, 18, 0.30); border-radius: 5px; }
::-webkit-scrollbar-thumb { background: rgba(106, 172, 238, 0.30); border-radius: 5px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background: rgba(106, 172, 238, 0.55); background-clip: padding-box; }
::-webkit-scrollbar-corner { background: transparent; }
* { scrollbar-width: thin; scrollbar-color: rgba(106, 172, 238, 0.30) rgba(0, 5, 18, 0.30); }

/* === NOTIFICATIONS PANEL (override original light styling) === */
#notifPanel {
  background: rgba(8, 22, 55, 0.96) !important;
  border: 1px solid var(--glass-border-strong) !important;
  color: var(--text-hi);
  backdrop-filter: blur(20px);
}
#notifPanel > div:first-child {
  background: rgba(70, 130, 220, 0.08) !important;
  border-bottom: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}
.notif-item {
  display: flex;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--grid);
  cursor: pointer;
  transition: background 0.15s;
}
.notif-item:hover { background: var(--bg-table-row-hover); }
.notif-item:last-child { border-bottom: none; }
.notif-icon {
  flex-shrink: 0;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(70, 130, 220, 0.15);
  display: flex; align-items: center; justify-content: center;
  font-size: 15px;
}
.notif-body { flex: 1; min-width: 0; }
.notif-title { font-weight: 600; font-size: 12.5px; color: var(--text-hi); margin-bottom: 2px; }
.notif-message { font-size: 11.5px; color: var(--text-mid); margin-bottom: 4px; overflow-wrap: break-word; }
.notif-meta { font-size: 10.5px; color: var(--text-lo); }

/* === MOBILE HEADER === */
.mobile-header {
  display: none;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  background: var(--topheader-bg);
  color: var(--text-hi);
  border-bottom: 1px solid var(--glass-border);
}
.menu-toggle {
  background: none;
  border: none;
  color: var(--text-hi);
  font-size: 1.3em;
  cursor: pointer;
  padding: 4px 8px;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 1024px) {
  :root { --sidebar-width: 180px; }
  .nav-item { font-size: 12px; padding: 8px 14px; }
}

@media (max-width: 768px) {
  :root {
    --sidebar-width: 0;
    --top-header-h: 48px;
  }

  body { font-size: 12px; }

  .app-container {
    grid-template-areas:
      "header"
      "main";
    grid-template-columns: 1fr;
    grid-template-rows: var(--top-header-h) 1fr;
  }

  .top-header { display: none; }
  .mobile-header { display: flex; }

  .sidebar {
    position: fixed;
    top: 0; left: 0;
    height: 100vh;
    width: 240px;
    transform: translateX(-100%);
    transition: transform 0.28s ease;
    z-index: 9000;
  }

  .sidebar.open { transform: translateX(0); box-shadow: 6px 0 24px rgba(0, 0, 0, 0.5); }

  .main-content { padding: 8px; }

  .card { padding: 10px 12px; margin-bottom: 8px; border-radius: 10px; }
  .card-header { padding-bottom: 6px; margin-bottom: 8px; font-size: 10px; }

  .status-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; margin-bottom: 8px; }
  .status-card { padding: 8px 10px; border-radius: 10px; }
  .status-card-value { font-size: 1.3em; }
  .status-card-label { font-size: 9px; }

  .btn { padding: 6px 10px; font-size: 11px; }
  .btn-sm { padding: 4px 8px; font-size: 10px; }
  .btn-lg { padding: 9px 14px; font-size: 12px; }

  table th { padding: 6px 6px; font-size: 9px; }
  table td { padding: 6px 6px; font-size: 11px; }

  .form-row { grid-template-columns: 1fr; gap: 8px; }
  .form-group { margin-bottom: 8px; }
  .form-group label { font-size: 10px; }
  .form-control { padding: 7px 10px; font-size: 12px; }

  .tab-navigation { gap: 2px; margin-bottom: 8px; overflow-x: auto; flex-wrap: nowrap; }
  .tab-btn { padding: 6px 10px; font-size: 10.5px; white-space: nowrap; flex-shrink: 0; }

  .modal-content { margin: 4px; max-height: calc(100vh - 8px); border-radius: 10px; }
  .modal-header { padding: 10px 12px; }
  .modal-body { padding: 10px 12px; max-height: calc(100vh - 130px); }
  .modal-actions, .modal-footer { padding: 8px 12px; gap: 6px; }

  .badge { padding: 2px 7px; font-size: 9.5px; }

  .pin-input { width: 42px; height: 50px; font-size: 18px; }

  h1 { font-size: 1.2em; }
  h2 { font-size: 1.1em; }
  h3 { font-size: 1em; }

  #notifPanel { width: calc(100vw - 24px) !important; left: 12px !important; right: 12px; }
}

@media (max-width: 480px) {
  body { font-size: 11px; }
  .main-content { padding: 6px; }
  .status-card-value { font-size: 1.15em; }
  .status-card-label { font-size: 8.5px; }
  .btn { padding: 5px 9px; font-size: 10.5px; }
  table th, table td { padding: 5px 5px; font-size: 10px; }
  .card-header { font-size: 9.5px; }
}

/* ============================================
   RASPOREDI (NLI / WH / TISAK) — module-shared theme-aware classes
   Sva 3 modula koriste iste class-imena. Boje postava (.p1-.p6, .t1-.t3) su
   theme-aware preko --postava-* tokena.
   ============================================ */

/* Tab strip i tabovi (raspored-wh / raspored-tisak Pregled/Edit tabovi) */
.raspored-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 0;
  border-bottom: 1px solid var(--glass-border);
}
.raspored-tab {
  padding: 10px 22px;
  background: var(--bg-card) !important;
  border: 1px solid var(--glass-border) !important;
  border-bottom: none !important;
  color: var(--text-mid) !important;
  cursor: pointer;
  font-weight: 600;
  border-radius: 8px 8px 0 0;
  font-family: inherit;
  font-size: 14px;
}
.raspored-tab:hover {
  background: var(--bg-card-hover) !important;
  color: var(--text-hi) !important;
}
.raspored-tab.active {
  background: var(--gradient-info) !important;
  color: var(--blue-bright) !important;
  border-color: var(--blue) !important;
}
.raspored-tab.disabled { opacity: 0.5; cursor: not-allowed; }

/* Kontrole banner (date pickers + akcije) */
.raspored-controls {
  display: flex;
  gap: 14px;
  align-items: flex-end;
  flex-wrap: wrap;
  padding: 18px;
  background: var(--gradient-info) !important;
  border: 1px solid var(--glass-border-strong);
  border-radius: var(--radius-sm);
  margin-bottom: 16px;
  color: var(--text-hi);
}
.raspored-controls .form-group { margin-bottom: 0; }
.raspored-controls label {
  display: block;
  margin-bottom: 5px;
  font-weight: 600;
  color: var(--text-mid) !important;
  font-size: 0.85em;
}
.raspored-controls input[type="date"],
.raspored-controls select,
.raspored-controls input[type="text"] {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
  padding: 9px 12px;
  border-radius: 6px;
}

/* Glavna tablica rasporeda */
.raspored-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  background: var(--bg-card) !important;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: none !important;
  color: var(--text-hi);
}
.raspored-table th {
  background: var(--bg-thead) !important;
  color: var(--text-hi) !important;
  padding: 12px 8px;
  text-align: center;
  font-weight: 700;
  border: 1px solid var(--glass-border);
  text-transform: uppercase;
  font-size: 0.85em;
  letter-spacing: 0.4px;
}
.raspored-table td {
  padding: 8px;
  text-align: center;
  border: 1px solid var(--grid);
  color: var(--text-hi);
  vertical-align: top;
}

/* Smjena cell */
.smjena-cell { min-width: 140px; padding: 6px !important; }

/* Postava color BG cells (.bg-p1..p6 za NLI/WH, .bg-t1..t3 za Tisak) */
.smjena-cell.bg-p1, .smjena-cell.bg-t1 { background: var(--postava-1) !important; border-left: 3px solid var(--postava-1) !important; }
.smjena-cell.bg-p2, .smjena-cell.bg-t2 { background: var(--postava-2) !important; border-left: 3px solid var(--postava-2) !important; }
.smjena-cell.bg-p3, .smjena-cell.bg-t3 { background: var(--postava-3) !important; border-left: 3px solid var(--postava-3) !important; }
.smjena-cell.bg-p4 { background: var(--postava-4) !important; border-left: 3px solid var(--postava-4) !important; }
.smjena-cell.bg-p5 { background: var(--postava-5) !important; border-left: 3px solid var(--postava-5) !important; }
.smjena-cell.bg-p6 { background: var(--postava-6) !important; border-left: 3px solid var(--postava-6) !important; }
.smjena-cell.bg-p1, .smjena-cell.bg-p2, .smjena-cell.bg-p3, .smjena-cell.bg-p4, .smjena-cell.bg-p5, .smjena-cell.bg-p6,
.smjena-cell.bg-t1, .smjena-cell.bg-t2, .smjena-cell.bg-t3 { color: var(--postava-text) !important; }

/* Postava badge pillovi (P1, P2, ... T1, T2, T3) */
.postava-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 12px;
  font-weight: 700;
  font-size: 11px;
  margin-bottom: 4px;
  color: var(--postava-text) !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.20);
}
.postava-badge.p1, .postava-badge.t1 { background: var(--postava-1) !important; }
.postava-badge.p2, .postava-badge.t2 { background: var(--postava-2) !important; }
.postava-badge.p3, .postava-badge.t3 { background: var(--postava-3) !important; }
.postava-badge.p4 { background: var(--postava-4) !important; }
.postava-badge.p5 { background: var(--postava-5) !important; }
.postava-badge.p6 { background: var(--postava-6) !important; }

/* Direktni .p1..p6 / .t1..t3 (kad nisu kao postava-badge — npr. inline span za color) */
.p1, .t1 { background: var(--postava-1); }
.p2, .t2 { background: var(--postava-2); }
.p3, .t3 { background: var(--postava-3); }
.p4 { background: var(--postava-4); }
.p5 { background: var(--postava-5); }
.p6 { background: var(--postava-6); }

/* Djelatnik lista u smjena cell */
.djelatnik-lista {
  font-size: 11px;
  color: var(--text-hi) !important;
  line-height: 1.4;
  text-align: left;
  margin-top: 4px;
}
.djelatnik-lista .bottomer { color: var(--blue-bright); }
.djelatnik-lista .tuber    { color: var(--success); }
.djelatnik-lista .tiskar   { color: #d180e0; font-weight: 500; }

/* Special row tinte: subota (žuti), nedjelja (crveni), today (plavi info), slobodni (gray) */
.subota-row { background: var(--remap-warning-bg) !important; }
.subota-row td { color: var(--text-hi) !important; }
.nedjelja-row { background: var(--remap-danger-bg) !important; }
.nedjelja-row td { color: var(--text-mid) !important; }
.today-row { background: var(--remap-info-bg) !important; outline: 2px solid var(--blue); outline-offset: -2px; }
.today-row td { color: var(--text-hi) !important; font-weight: 600; }
.slobodni-cell {
  background: var(--bg-table-row-hover) !important;
  color: var(--text-lo) !important;
  font-style: italic;
  font-size: 11px;
}
.neradna-cell {
  background: var(--remap-danger-bg) !important;
  color: var(--danger) !important;
  font-weight: 500;
}
.subota-row.radna-subota { background: var(--remap-warning-bg) !important; }
.subota-row.radna-subota td { color: var(--text-hi) !important; }
.radna-subota-badge {
  display: inline-block;
  background: var(--warning) !important;
  color: #fff !important;
  font-size: 9px;
  padding: 2px 6px;
  border-radius: 8px;
  margin-left: 5px;
  font-weight: 700;
}

/* Week info banner + week-A/B/C badges */
.week-info {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  padding: 12px 18px;
  background: var(--gradient-purple) !important;
  border: 1px solid var(--glass-border-strong);
  border-radius: var(--radius-sm);
  margin-bottom: 14px;
  color: #fff;
}
.week-info-item { display: flex; align-items: center; gap: 8px; }
.week-info-item .label { color: rgba(255, 255, 255, 0.75); font-size: 0.85em; }
.week-info-item .value { font-weight: 700; color: #fff; }
.week-badge {
  padding: 4px 12px;
  border-radius: 14px;
  font-weight: 700;
  font-size: 0.85em;
  color: #fff !important;
}
.week-a, .week-badge.week-a { background: var(--postava-1) !important; }
.week-b, .week-badge.week-b { background: var(--postava-2) !important; }
.week-c, .week-badge.week-c { background: var(--postava-3) !important; }

/* Legenda */
.legenda {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
  padding: 12px;
  background: var(--bg-card) !important;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  color: var(--text-hi);
}
.legenda-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--text-mid);
}
.legenda-color { width: 16px; height: 16px; border-radius: 4px; border: 1px solid var(--glass-border); }

/* Postave grid + cards (admin edit za postave) */
.postave-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
  padding: 12px 0;
}
.postava-card {
  background: var(--bg-card) !important;
  border: 1px solid var(--glass-border-strong) !important;
  border-radius: var(--radius-sm);
  overflow: hidden;
  color: var(--text-hi);
}
.postava-card-header {
  padding: 10px 14px;
  font-weight: 700;
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.postava-card-body { padding: 12px; }

/* Stroj sekcija (unutar postava-card) */
.stroj-sekcija { margin-bottom: 12px; }
.stroj-sekcija:last-child { margin-bottom: 0; }
.stroj-naziv {
  font-size: 11px;
  color: var(--text-mid) !important;
  text-transform: uppercase;
  margin-bottom: 6px;
  font-weight: 700;
  letter-spacing: 0.5px;
}

/* Clan badge (član postave) + dodaj-btn */
.clanovi-lista { display: flex; flex-wrap: wrap; gap: 5px; }
.clan-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--bg-card-hover) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi) !important;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 11px;
}
.clan-badge .ukloni { cursor: pointer; color: var(--danger); font-weight: bold; font-size: 12px; margin-left: 2px; }
.clan-badge .ukloni:hover { color: var(--text-hi); }
.dodaj-btn {
  background: var(--success-bg) !important;
  border: 1px dashed var(--success) !important;
  color: var(--success) !important;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 11px;
  cursor: pointer;
  font-family: inherit;
}
.dodaj-btn:hover {
  background: rgba(126, 207, 176, 0.20) !important;
}

/* Edit section (admin uređivanje rasporeda) */
.edit-section {
  background: var(--remap-warning-bg) !important;
  border: 2px solid var(--warning) !important;
  border-radius: var(--radius-sm);
  padding: 18px;
  margin-bottom: 16px;
  color: var(--text-hi);
}
.edit-section h3 {
  margin: 0 0 14px 0;
  color: var(--warning) !important;
  font-size: 16px;
}
.edit-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}
.edit-field label {
  display: block;
  margin-bottom: 5px;
  font-weight: 600;
  color: var(--text-mid) !important;
  font-size: 13px;
}
.edit-field input,
.edit-field select {
  width: 100%;
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
  padding: 9px;
  border-radius: 6px;
}

/* Subote section (raspored-wh radne subote) */
.subote-section {
  background: var(--remap-warning-bg) !important;
  border: 2px solid var(--warning) !important;
  border-radius: var(--radius-sm);
  padding: 18px;
  margin-bottom: 16px;
  color: var(--text-hi);
}
.subote-section h3 { margin: 0 0 14px 0; color: var(--warning) !important; font-size: 16px; }
.subote-form {
  display: flex;
  gap: 14px;
  align-items: flex-end;
  flex-wrap: wrap;
  margin-bottom: 18px;
  padding: 14px;
  background: var(--bg-card) !important;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
}
.subote-form .form-group { margin-bottom: 0; }
.subote-form label { display: block; margin-bottom: 5px; font-weight: 600; color: var(--text-mid) !important; font-size: 12px; }
.subote-form input,
.subote-form select {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
  padding: 8px 12px;
  border-radius: 6px;
}
.subote-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  background: var(--bg-card) !important;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.subote-table th {
  background: var(--warning) !important;
  color: #fff !important;
  padding: 10px;
  text-align: left;
  font-weight: 700;
}
.subote-table td {
  padding: 10px;
  border-bottom: 1px solid var(--grid);
  color: var(--text-hi);
}
.subote-table tr:hover { background: var(--bg-table-row-hover) !important; }
.subote-table .btn-delete {
  background: var(--danger) !important;
  color: #fff !important;
  border: none;
  padding: 5px 10px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.no-subote {
  text-align: center;
  padding: 20px;
  color: var(--text-lo) !important;
  font-style: italic;
}

/* Info boxovi (raspored-wh info-box, raspored-tisak rotacija-info, satnica-info) */
.info-box {
  background: var(--bg-card) !important;
  border-left: 4px solid var(--blue) !important;
  border: 1px solid var(--glass-border);
  border-left-width: 4px;
  padding: 12px 14px;
  margin-bottom: 14px;
  border-radius: 4px;
  font-size: 13px;
  color: var(--text-hi);
}
.rotacija-info {
  background: var(--gradient-purple) !important;
  border: 1px solid rgba(180, 100, 200, 0.40);
  border-radius: var(--radius-sm);
  padding: 14px;
  margin-bottom: 14px;
  color: #fff;
}
.rotacija-info h4 { margin: 0 0 10px 0; color: #fff !important; font-size: 14px; }
.satnica-info {
  background: var(--remap-info-bg) !important;
  border-left: 4px solid var(--blue) !important;
  padding: 10px 14px;
  margin-bottom: 14px;
  border-radius: 4px;
  font-size: 13px;
  color: var(--text-hi);
}

/* Admin badge (raspored-wh, raspored-tisak) */
.admin-badge {
  display: inline-block;
  background: var(--danger) !important;
  color: #fff !important;
  font-size: 9px;
  padding: 2px 6px;
  border-radius: 10px;
  margin-left: 6px;
  vertical-align: middle;
  font-weight: 700;
}

/* Hide edit controls for non-admin */
.hide-edit-controls .ukloni,
.hide-edit-controls .dodaj-btn {
  display: none !important;
}

/* Print mode za raspored — sakrij UI kontrole, ostavi tablicu papir-bijela */
@media print {
  .raspored-controls, .legenda, .week-info, .info-box, .raspored-tabs, .edit-section, .subote-section, .rotacija-info, .satnica-info { display: none !important; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .raspored-table { font-size: 9px; }
  .raspored-table th { padding: 6px 4px; }
  .raspored-table td { padding: 4px; }
}

/* === PRINT === */
@media print {
  body, body::before { background: #fff !important; }
  body { color: #000; }
  .top-header, .sidebar, .mobile-header, .btn, .modal, .toast-container, .loading-overlay { display: none !important; }
  .app-container { grid-template-areas: "main"; grid-template-columns: 1fr; grid-template-rows: 1fr; }
  .main-content { padding: 0; }
  .card { box-shadow: none; border: 1px solid #ccc; background: #fff; color: #000; }
  .card::before, .card::after { display: none; }
  table { color: #000; }
  table th { background: #f0f0f0; color: #000; }
}

/* ============================================
   MOBILE TOGGLE BTN (zadržano iz starog za mobile.js)
   ============================================ */
.mobile-toggle-btn {
  position: fixed;
  bottom: 18px;
  right: 18px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(106, 172, 238, 0.30) 0%, rgba(70, 130, 220, 0.45) 100%);
  border: 1px solid var(--blue);
  color: var(--blue-bright);
  font-size: 22px;
  cursor: pointer;
  z-index: 99999;
  box-shadow: 0 4px 18px rgba(106, 172, 238, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s;
  backdrop-filter: blur(20px);
}
.mobile-toggle-btn:hover { transform: scale(1.08); box-shadow: 0 6px 26px rgba(106, 172, 238, 0.55); }
.mobile-toggle-btn:active { transform: scale(0.95); }
.mobile-toggle-btn::before { content: '📱'; }
body.mobile-mode .mobile-toggle-btn::before { content: '💻'; }

.mobile-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--topheader-bg);
  border-top: 1px solid var(--glass-border);
  z-index: 9990;
  backdrop-filter: blur(20px);
  padding-bottom: env(safe-area-inset-bottom);
}
.mobile-nav-items { display: flex; justify-content: space-around; align-items: stretch; }
.mobile-nav-item {
  flex: 1;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 10px 4px;
  color: var(--text-mid);
  text-decoration: none;
  font-size: 0.7em;
  border: none; background: transparent;
  cursor: pointer;
  transition: all 0.2s;
  min-height: 56px;
}
.mobile-nav-item .nav-icon { font-size: 1.4em; margin-bottom: 2px; opacity: 0.7; }
.mobile-nav-item.active, .mobile-nav-item:hover { color: var(--blue); background: rgba(70, 130, 220, 0.08); }
.mobile-nav-item.active .nav-icon { opacity: 1; }

.mobile-menu-btn {
  display: none;
  position: fixed;
  top: 8px; right: 10px;
  z-index: 9991;
  background: var(--topheader-bg);
  border: 1px solid var(--glass-border);
  color: var(--text-hi);
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 18px;
  cursor: pointer;
}

/* ============================================
   MOBILE SIDE-MENU DRAWER (mobile.js stvara DOM)
   Default: HIDDEN. Pokazuje se samo s .active klasom.
   Inače padaju kao normal block content na dno stranice.
   ============================================ */
.mobile-menu-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 5, 18, 0.65);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 9992;
}
.mobile-menu-overlay.active { display: block; }

.mobile-side-menu {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 280px;
  max-width: 85vw;
  height: 100vh;
  background: var(--sidebar-bg);
  border-right: 1px solid var(--glass-border-strong);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  z-index: 9993;
  overflow-y: auto;
  transform: translateX(-100%);
  transition: transform 0.28s ease;
}
.mobile-side-menu.active { display: block; transform: translateX(0); box-shadow: 6px 0 28px rgba(0, 0, 0, 0.55); }

.mobile-menu-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  border-bottom: 1px solid var(--glass-border);
  background: rgba(70, 130, 220, 0.06);
}
.mobile-menu-header h3 {
  margin: 0;
  font-size: 14px;
  color: var(--text-hi);
  letter-spacing: 0.4px;
}
.mobile-menu-close {
  background: none;
  border: none;
  color: var(--text-mid);
  font-size: 20px;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
}
.mobile-menu-close:hover { color: var(--text-hi); background: rgba(70, 130, 220, 0.10); }

.mobile-menu-items {
  padding: 8px 0;
}

.mobile-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  color: var(--text-mid);
  text-decoration: none;
  font-size: 13px;
  border-left: 2px solid transparent;
  transition: all 0.15s;
}
.mobile-menu-item:hover {
  color: var(--text-hi);
  background: var(--sidebar-hover);
}
.mobile-menu-item.active {
  color: var(--blue);
  background: rgba(70, 130, 220, 0.10);
  border-left-color: var(--blue);
}

.mobile-menu-item .menu-icon {
  width: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0.75;
}
.mobile-menu-item.active .menu-icon { opacity: 1; }

.mobile-menu-divider {
  height: 1px;
  background: var(--grid);
  margin: 8px 0 0;
}

body.mobile-mode .top-header { display: none; }
body.mobile-mode .sidebar { transform: translateX(-100%); }
body.mobile-mode .sidebar.open { transform: translateX(0); }
body.mobile-mode .mobile-header { display: flex; }
body.mobile-mode .app-container {
  grid-template-areas: "header" "main";
  grid-template-columns: 1fr;
}

/* ============================================
   GLOBAL INLINE-STYLE OVERRIDES
   Razlog: 40+ modula ima inline style="background:#fff" / #f5f5f5 / itd. iz
   light theme ere. Ovi attribute selektori ih masovno konvertiraju u dark glass
   ekvivalente bez da se diraju moduli pojedinacno.
   ============================================ */

/* Bijele pozadine (kartice, modali, sub-blokovi, table rows) → glass dark
   FORCE color light da text ostane čitljiv unutar overrideanih bgova. */
[style*="background: #fff"],
[style*="background:#fff"],
[style*="background: white"],
[style*="background:white"],
[style*="background: #ffffff"],
[style*="background:#ffffff"] {
  background: rgba(12, 40, 100, 0.20) !important;
  border-color: var(--glass-border) !important;
  color: var(--text-hi) !important;
}

/* Light grey backgrounds → subtle blue tint */
[style*="background: #fafafa"], [style*="background:#fafafa"],
[style*="background: #fafbfc"], [style*="background:#fafbfc"],
[style*="background: #f5f5f5"], [style*="background:#f5f5f5"],
[style*="background: #f8f9fa"], [style*="background:#f8f9fa"],
[style*="background: #f0f0f0"], [style*="background:#f0f0f0"],
[style*="background: #eee"],    [style*="background:#eee"],
[style*="background: #d5e2f1"], [style*="background:#d5e2f1"],
[style*="background: #d5dde6"], [style*="background:#d5dde6"],
[style*="background: #f5f9fd"], [style*="background:#f5f9fd"],
[style*="background: #ecf3fb"], [style*="background:#ecf3fb"],
[style*="background: #dde5ed"], [style*="background:#dde5ed"],
[style*="background: #eef2f7"], [style*="background:#eef2f7"] {
  background: var(--remap-grey-bg) !important;
  border-color: var(--grid) !important;
  color: var(--text-hi) !important;
}

/* Pastel status pozadine — još tamnije (alpha 0.06) + force light text */
[style*="background: #fff3e0"], [style*="background:#fff3e0"],
[style*="background: #fff8e1"], [style*="background:#fff8e1"] {
  background: var(--remap-warning-bg) !important;
  border-color: rgba(233, 181, 102, 0.20) !important;
  color: var(--text-hi) !important;
}
[style*="background: #e8f5e9"], [style*="background:#e8f5e9"],
[style*="background: #e8f5d6"], [style*="background:#e8f5d6"],
[style*="background: #d4edda"], [style*="background:#d4edda"],
[style*="background: #c8e6c9"], [style*="background:#c8e6c9"] {
  background: var(--remap-success-bg) !important;
  border-color: rgba(126, 207, 176, 0.20) !important;
  color: var(--text-hi) !important;
}
[style*="background: #e3f2fd"], [style*="background:#e3f2fd"],
[style*="background: #cce5ff"], [style*="background:#cce5ff"],
[style*="background: #e1f5fe"], [style*="background:#e1f5fe"] {
  background: var(--remap-info-bg) !important;
  border-color: rgba(106, 172, 238, 0.20) !important;
  color: var(--text-hi) !important;
}
[style*="background: #fff3cd"], [style*="background:#fff3cd"] {
  background: rgba(233, 181, 102, 0.08) !important;
  color: var(--warning) !important;
  border-color: rgba(233, 181, 102, 0.25) !important;
}
[style*="background: #ffebee"], [style*="background:#ffebee"],
[style*="background: #fff5f5"], [style*="background:#fff5f5"],
[style*="background: #f8d7da"], [style*="background:#f8d7da"],
[style*="background: #ffcdd2"], [style*="background:#ffcdd2"],
[style*="background: #fce4ec"], [style*="background:#fce4ec"] {
  background: var(--remap-danger-bg) !important;
  color: var(--text-hi) !important;
  border-color: rgba(176, 126, 138, 0.22) !important;
}
[style*="background: #efebe9"], [style*="background:#efebe9"] {
  background: rgba(140, 110, 90, 0.10) !important;
  border-color: rgba(140, 110, 90, 0.25) !important;
  color: var(--text-hi) !important;
}
[style*="background: #e0f2f1"], [style*="background:#e0f2f1"] {
  background: rgba(80, 180, 170, 0.08) !important;
  border-color: rgba(80, 180, 170, 0.25) !important;
  color: var(--text-hi) !important;
}
[style*="background: #f3e5f5"], [style*="background:#f3e5f5"] {
  background: rgba(180, 130, 200, 0.08) !important;
  border-color: rgba(180, 130, 200, 0.25) !important;
  color: var(--text-hi) !important;
}

/* Tamni text u pastel kontekstima → light varijante */
[style*="color: #666"], [style*="color:#666"],
[style*="color: #555"], [style*="color:#555"] { color: var(--text-mid) !important; }
[style*="color: #999"], [style*="color:#999"],
[style*="color: #888"], [style*="color:#888"] { color: var(--text-lo) !important; }
[style*="color: #333"], [style*="color:#333"] { color: var(--text-hi) !important; }
[style*="color: #c62828"], [style*="color:#c62828"],
[style*="color: #d32f2f"], [style*="color:#d32f2f"],
[style*="color: #e53935"], [style*="color:#e53935"],
[style*="color: #f44336"], [style*="color:#f44336"],
[style*="color: #721c24"], [style*="color:#721c24"] { color: var(--danger) !important; }
[style*="color: #856404"], [style*="color:#856404"],
[style*="color: #f57c00"], [style*="color:#f57c00"],
[style*="color: #e65100"], [style*="color:#e65100"],
[style*="color: #ff9800"], [style*="color:#ff9800"] { color: var(--warning) !important; }
[style*="color: #155724"], [style*="color:#155724"],
[style*="color: #2e7d32"], [style*="color:#2e7d32"],
[style*="color: #1b5e20"], [style*="color:#1b5e20"],
[style*="color: #4caf50"], [style*="color:#4caf50"] { color: var(--success) !important; }
[style*="color: #004085"], [style*="color:#004085"],
[style*="color: #1565c0"], [style*="color:#1565c0"],
[style*="color: #1976d2"], [style*="color:#1976d2"],
[style*="color: #2196f3"], [style*="color:#2196f3"] { color: var(--blue) !important; }

/* Saturirani gradient banneri (card-header background) — stišaj na muted glass varijante */
[style*="linear-gradient(135deg, #d84315"],
[style*="linear-gradient(135deg, #ff5722"],
[style*="linear-gradient(135deg, #f57c00"],
[style*="linear-gradient(135deg, #ff9800"],
[style*="linear-gradient(135deg, #e65100"] {
  background: linear-gradient(135deg, rgba(233, 181, 102, 0.18) 0%, rgba(176, 100, 60, 0.12) 100%) !important;
  color: var(--warning) !important;
  border-bottom: 1px solid rgba(233, 181, 102, 0.30) !important;
}
[style*="linear-gradient(135deg, #1976d2"],
[style*="linear-gradient(135deg, #2196f3"],
[style*="linear-gradient(135deg, #1565c0"],
[style*="linear-gradient(135deg, #42a5f5"],
[style*="linear-gradient(135deg, #1e3a5f"],
[style*="linear-gradient(135deg, #2d5a87"],
[style*="linear-gradient(135deg, #366092"],
[style*="linear-gradient(135deg, #1a237e"] {
  background: linear-gradient(135deg, rgba(106, 172, 238, 0.18) 0%, rgba(70, 130, 220, 0.12) 100%) !important;
  color: var(--blue) !important;
  border-bottom: 1px solid rgba(106, 172, 238, 0.30) !important;
}
[style*="linear-gradient(135deg, #d32f2f"],
[style*="linear-gradient(135deg, #e53935"],
[style*="linear-gradient(135deg, #c62828"],
[style*="linear-gradient(135deg, #f44336"] {
  background: linear-gradient(135deg, rgba(176, 126, 138, 0.18) 0%, rgba(140, 80, 90, 0.12) 100%) !important;
  color: var(--danger) !important;
  border-bottom: 1px solid rgba(176, 126, 138, 0.30) !important;
}
[style*="linear-gradient(135deg, #2e7d32"],
[style*="linear-gradient(135deg, #4caf50"],
[style*="linear-gradient(135deg, #43a047"] {
  background: linear-gradient(135deg, rgba(126, 207, 176, 0.18) 0%, rgba(80, 160, 120, 0.12) 100%) !important;
  color: var(--success) !important;
  border-bottom: 1px solid rgba(126, 207, 176, 0.30) !important;
}

/* Linija pillovi (NLI orange / WH green) — keep recognizable but soften */
[style*="background: #e65100"], [style*="background:#e65100"],
[style*="background:#d84315"], [style*="background: #d84315"] {
  background: rgba(233, 130, 60, 0.30) !important;
  color: #ffd9bf !important;
  border: 1px solid rgba(233, 130, 60, 0.55) !important;
}
[style*="background: #2e7d32"], [style*="background:#2e7d32"],
[style*="background:#43a047"], [style*="background: #43a047"] {
  background: rgba(126, 207, 176, 0.25) !important;
  color: #c4ecd9 !important;
  border: 1px solid rgba(126, 207, 176, 0.50) !important;
}
[style*="background: #1565c0"], [style*="background:#1565c0"],
[style*="background:#1976d2"], [style*="background: #1976d2"] {
  background: rgba(106, 172, 238, 0.25) !important;
  color: #d6eaff !important;
  border: 1px solid rgba(106, 172, 238, 0.50) !important;
}

/* Plain bijela samo (bez border keyworda) — pillovi/tekst pozadine */
[style*="background: #fff;"],
[style*="background:#fff;"] {
  background: rgba(12, 40, 100, 0.22) !important;
}

/* Progress bar tracks (eee/eef2f7) → dark variant */
[style*="background:#eef2f7"], [style*="background: #eef2f7"],
[style*="background:#e0e0e0"], [style*="background: #e0e0e0"] {
  background: rgba(70, 130, 220, 0.10) !important;
}

/* Pastel border-left accent (border-left:4px solid #color) — keep koler ali stišano */
/* Stari Carta koristio "linear-gradient(135deg, #f6faff 0%, #e8f1fb 100%)" za "Danas" */
[style*="linear-gradient(135deg, #f6faff"],
[style*="linear-gradient(135deg, #e8f1fb"] {
  background: linear-gradient(135deg, rgba(106, 172, 238, 0.12) 0%, rgba(70, 130, 220, 0.06) 100%) !important;
}

/* ============================================
   SIDEBAR / FOOTER text contrast bump (tekst je bio preblijed)
   ============================================ */
.nav-item { color: var(--text-mid); }
.nav-item:hover { color: var(--text-hi); }
.user-name { color: var(--text-hi); }
.user-role { color: var(--text-mid); }

/* ============================================
   Card-header s INLINE style="display:flex; ..." preko toga
   (npr. Live brojači gdje icon + text + meta na desno) — drži flex-start
   za prve 2, zadnji ide na desno automatski (vidi card-header pravilo gore)
   ============================================ */

/* ============================================
   PLANIRANJE — class-based stilovi (attribute selector ih ne hvata)
   ============================================ */
.note-card { background: rgba(70, 130, 220, 0.06) !important; border-left-color: var(--blue) !important; color: var(--text-hi) !important; }
.note-card.note-warning { border-left-color: var(--warning) !important; background: var(--remap-warning-bg) !important; }
.note-card.note-info    { border-left-color: var(--blue) !important;    background: var(--remap-info-bg) !important; }
.note-card.note-article { border-left-color: var(--danger) !important;  background: var(--remap-danger-bg) !important; }
.note-card-type { background: rgba(70, 130, 220, 0.12) !important; color: var(--text-mid) !important; border: 1px solid var(--glass-border); }
.note-card-type.type-article { background: rgba(176, 126, 138, 0.15) !important; color: var(--danger) !important; border-color: rgba(176, 126, 138, 0.30); }
.note-card-type.type-shift   { background: rgba(126, 207, 176, 0.15) !important; color: var(--success) !important; border-color: rgba(126, 207, 176, 0.30); }
.btn-resolve { background: rgba(126, 207, 176, 0.18) !important; color: var(--success) !important; border: 1px solid rgba(126, 207, 176, 0.40) !important; }
.btn-resolve:hover { background: rgba(126, 207, 176, 0.30) !important; }
.article-warning { background: rgba(233, 181, 102, 0.08) !important; border-color: rgba(233, 181, 102, 0.40) !important; color: var(--text-hi) !important; }

/* Planiranje tablica — order/RN row stilovi */
.planning-tab        { background: transparent; color: var(--text-mid); }
.planning-tab:hover  { background: rgba(106, 172, 238, 0.10) !important; color: var(--blue) !important; }
.planning-tab.active { background: rgba(106, 172, 238, 0.18) !important; color: var(--blue-bright) !important; border-color: rgba(106, 172, 238, 0.40) !important; }
.tab-badge { background: var(--danger) !important; color: #fff !important; }

/* Group rows (narudžba header s razvijanje) — light blue-grey klase */
[class*="order-group-row"],
.rn-group-row { background: rgba(106, 172, 238, 0.07) !important; color: var(--text-hi) !important; }
.rn-subgroup-row { background: rgba(70, 130, 220, 0.04) !important; color: var(--text-mid) !important; }
.rn-subgroup-row:hover { background: rgba(106, 172, 238, 0.10) !important; color: var(--text-hi) !important; }

/* Group toolbar btns */
.group-toolbar-btn { background: rgba(12, 40, 100, 0.20) !important; border-color: var(--glass-border) !important; color: var(--text-mid) !important; }
.group-toolbar-btn:hover { background: rgba(70, 130, 220, 0.10) !important; border-color: var(--glass-border-strong) !important; color: var(--text-hi) !important; }
.group-toolbar-btn:active { background: rgba(70, 130, 220, 0.18) !important; }

/* Attach badge */
.attach-badge { background: rgba(106, 172, 238, 0.20) !important; color: var(--blue) !important; }
.attach-badge.zero { background: rgba(70, 130, 220, 0.10) !important; color: var(--text-lo) !important; }

/* Th s status backgrounds (S1/S2/Folija column headers koji koriste #e3f2fd / #efebe9 / #e8f5e9 inline)
   Već pokriveno gore via attribute selector, ali force readonly white text u th. */
table th[style*="background"] { color: var(--text-hi) !important; }

/* ============================================
   GLOBAL: tablica td/tr s INLINE style — force light text
   Mnogi moduli imaju <tr style="background: #fff5f5"> ili sl., tekst unutra
   ostaje default-tamno-blue (#1976d2) koji nije čitljiv na svijetloj alpha pozadini.
   Force light text default-no za sve TR-ove sa inline background.
   ============================================ */
tr[style*="background"] td,
tr[style*="background"] td * { color: var(--text-hi); }
tr[style*="background"] td a { color: var(--blue); }
tr[style*="background"] td strong { color: var(--text-hi); }

/* Sticky thead overrides */
thead[style*="background"] th,
thead[style*="background"] tr th { color: var(--text-lo) !important; background: rgba(8, 22, 55, 0.95) !important; }

/* ============================================
   MODAL CONTENT — defense-in-depth za text contrast
   Razlog: modali sadrže textni sadržaj (form labele, headings, table cells, info
   blokovi) s defaultnim ili inline tamnim color-ima. Forsiramo light text za sve
   descendantse modal-content-a osim onih s eksplicitnim semantic color klasama
   (.btn-*, .badge-*, .text-success itd.).
   ============================================ */
.modal-content { color: var(--text-hi); }
.modal-content p,
.modal-content div,
.modal-content span,
.modal-content li,
.modal-content dt,
.modal-content dd,
.modal-content em { color: inherit; }
.modal-content h1, .modal-content h2, .modal-content h3,
.modal-content h4, .modal-content h5, .modal-content h6 { color: var(--text-hi); }
.modal-content label { color: var(--text-mid); font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; }
.modal-content small { color: var(--text-lo); }
.modal-content strong, .modal-content b { color: var(--text-hi); font-weight: 700; }
.modal-content table { color: var(--text-mid); }
.modal-content td { color: var(--text-mid); }
.modal-content th { color: var(--text-lo); background: rgba(70, 130, 220, 0.08); }
.modal-content td strong, .modal-content td b { color: var(--text-hi); }
.modal-content a { color: var(--blue); }
.modal-content hr { border-color: var(--grid); }

/* Form controls UNUTAR modala — eksplicitno dark glass */
.modal-content input.form-control,
.modal-content select.form-control,
.modal-content textarea.form-control,
.modal-content input[type="text"],
.modal-content input[type="email"],
.modal-content input[type="password"],
.modal-content input[type="number"],
.modal-content input[type="date"],
.modal-content input[type="time"],
.modal-content input[type="datetime-local"],
.modal-content input[type="search"] {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}
.modal-content input.form-control:focus,
.modal-content select.form-control:focus,
.modal-content textarea.form-control:focus {
  background: rgba(8, 22, 55, 0.85) !important;
  border-color: var(--blue) !important;
  box-shadow: 0 0 0 3px rgba(106, 172, 238, 0.15) !important;
}
.modal-content input.form-control[readonly],
.modal-content input.form-control:disabled,
.modal-content select.form-control:disabled,
.modal-content textarea.form-control[readonly] {
  background: rgba(0, 5, 18, 0.50) !important;
  color: var(--text-mid) !important;
  cursor: not-allowed;
}

/* Fix za inline `<input style="background:#f5f5f5">` — input se loši radi
   "background:#f5f5f5" kao light, ali u modalu treba dark — ::placeholder zadržava lo.
   Stvarno: my [style*="background:#f5f5f5"] već override-a bg, ali plus dodatno
   force input text light. */
.modal-content input[style*="background"] { color: var(--text-hi) !important; }

/* SELECT options dropdown — OS-default je bijela. Force dark. */
select option { background: #07142e !important; color: var(--text-hi) !important; }
select optgroup { background: #050d22 !important; color: var(--text-lo) !important; }

/* ============================================
   GLOBAL: dodatne dark hex boje koje sam previdio (defensive sweep)
   ============================================ */
[style*="color: #0d47a1"], [style*="color:#0d47a1"],
[style*="color: #0c5460"], [style*="color:#0c5460"],
[style*="color: #383d41"], [style*="color:#383d41"],
[style*="color: #212121"], [style*="color:#212121"],
[style*="color: #444"],    [style*="color:#444"],
[style*="color: #1a237e"], [style*="color:#1a237e"],
[style*="color: #2c3e50"], [style*="color:#2c3e50"],
[style*="color: #34495e"], [style*="color:#34495e"],
[style*="color: #607d8b"], [style*="color:#607d8b"] { color: var(--text-hi) !important; }

/* Bootstrap-style green status (#28a745) → success */
[style*="color: #28a745"], [style*="color:#28a745"],
[style*="color: #218838"], [style*="color:#218838"],
[style*="color: #388e3c"], [style*="color:#388e3c"] { color: var(--success) !important; }

/* Light gradient banneri unutar planiranja — lakše blue gradient pozadine */
[style*="linear-gradient(135deg, #e3f2fd"],
[style*="linear-gradient(135deg,#e3f2fd"],
[style*="linear-gradient(135deg, #bbdefb"],
[style*="linear-gradient(135deg,#bbdefb"],
[style*="linear-gradient(135deg, #f6faff"],
[style*="linear-gradient(135deg,#f6faff"],
[style*="linear-gradient(135deg, #e8f1fb"],
[style*="linear-gradient(135deg,#e8f1fb"] {
  background: linear-gradient(135deg, rgba(106, 172, 238, 0.12) 0%, rgba(70, 130, 220, 0.05) 100%) !important;
  border-color: rgba(106, 172, 238, 0.30) !important;
  color: var(--text-hi) !important;
}
[style*="linear-gradient(135deg, #e8f5e9"],
[style*="linear-gradient(135deg,#e8f5e9"] {
  background: linear-gradient(135deg, rgba(126, 207, 176, 0.12) 0%, rgba(80, 160, 120, 0.05) 100%) !important;
  border-color: rgba(126, 207, 176, 0.30) !important;
  color: var(--text-hi) !important;
}

/* Dashed border placeholderi (#fafafa border:1px dashed #ccc) — zadrži dashed look ali tamno */
[style*="border: 1px dashed #ccc"],
[style*="border:1px dashed #ccc"],
[style*="border: 1px dashed #ddd"],
[style*="border:1px dashed #ddd"] {
  border-color: var(--glass-border) !important;
}

/* "(nova)" oznaka i sl. small s color:#28a745 → success bright (već handled gore) */

/* ============================================
   DEFENSIVE: any descendant of .card or .modal-content with INLINE color
   that's still dark — reset to light. Lower priority (no !important) tako da
   semantic spans (.text-success itd.) ostanu intakni.
   ============================================ */
.card *[style*="color: #1"]:not([style*="color: #1976d2"]):not([style*="color: #1565c0"]),
.card *[style*="color:#1"]:not([style*="color:#1976d2"]):not([style*="color:#1565c0"]) {
  color: var(--text-hi);
}

/* Headings unutar bilo kojeg darkglass containera — forsiraj svijetli */
.card h1, .card h2, .card h3, .card h4, .card h5, .card h6 { color: var(--text-hi); }
.card label { color: var(--text-mid); }
.card small, .card .small { color: var(--text-lo); }
.card hr { border-color: var(--grid); }

/* Inline color attributes od dark-tone backgrounda u sub-blokovi
   Npr. <div style="background:#fafafa; ...; color:#999;"> — bg već override-an,
   color #999 also already mapped. Dodatno za #ccc/#bbb */
[style*="color: #ccc"], [style*="color:#ccc"],
[style*="color: #bbb"], [style*="color:#bbb"],
[style*="color: #aaa"], [style*="color:#aaa"] { color: var(--text-lo) !important; }

/* Table headers s inline white text (modal-headers koji su svijetli badge style) */
.modal-header h2[style*="color"],
.modal-header h3[style*="color"] { color: var(--text-hi) !important; }

/* Zebra-stripe alt tablica row (npr. tr:nth-child(even)) — ako koriste light bg, tone down */
tr:nth-child(even)[style=""] td,
tbody tr:nth-child(even):not([style*="background"]) td { background: rgba(70, 130, 220, 0.025); }

/* ============================================
   ARTIKLI — class overrides (.form-section, .wizard-*, .country-*, ...)
   Razlog: definirane u <style> bloku unutar artikli.html, attribute selector
   ne hvata, treba ekspl. override. Sve dark glass.
   ============================================ */
.form-section {
  background: var(--remap-grey-bg) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--radius-sm) !important;
  padding: 16px !important;
  margin-bottom: 14px !important;
  color: var(--text-hi);
}
.form-section h3, .form-section h4, .form-section h5 { color: var(--blue); margin-bottom: 12px; }
.form-section label { color: var(--text-mid); font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; font-weight: 600; }
.form-section input, .form-section select, .form-section textarea {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}

.country-hr    { background: rgba(106, 172, 238, 0.15) !important; color: var(--blue) !important; border: 1px solid rgba(106, 172, 238, 0.30); padding: 2px 8px; border-radius: 12px; font-size: 0.85em; }
.country-other { background: rgba(233, 181, 102, 0.12) !important; color: var(--warning) !important; border: 1px solid rgba(233, 181, 102, 0.30); padding: 2px 8px; border-radius: 12px; font-size: 0.85em; }

.customer-row:hover { background: rgba(70, 130, 220, 0.06) !important; cursor: pointer; }

.wizard-badge-valve  { background: rgba(106, 172, 238, 0.15) !important; color: var(--blue) !important; border: 1px solid rgba(106, 172, 238, 0.30); padding: 2px 8px; border-radius: 6px; }
.wizard-badge-dim    { background: rgba(126, 207, 176, 0.15) !important; color: var(--success) !important; border: 1px solid rgba(126, 207, 176, 0.30); padding: 2px 8px; border-radius: 6px; }
.wizard-badge-layers { background: rgba(233, 181, 102, 0.15) !important; color: var(--warning) !important; border: 1px solid rgba(233, 181, 102, 0.30); padding: 2px 8px; border-radius: 6px; }
.wizard-badge-error  { background: rgba(176, 126, 138, 0.15) !important; color: var(--danger) !important;  border: 1px solid rgba(176, 126, 138, 0.30); padding: 2px 8px; border-radius: 6px; }

.wizard-card {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
  border-radius: var(--radius-sm) !important;
  padding: 12px;
  cursor: pointer;
  transition: var(--transition);
}
.wizard-card:hover { border-color: var(--glass-border-strong); background: var(--bg-card-hover) !important; }
.wizard-card.selected { border-color: var(--success) !important; background: rgba(126, 207, 176, 0.08) !important; box-shadow: 0 0 12px rgba(126, 207, 176, 0.20); }
.wizard-card.top-match { background: rgba(233, 181, 102, 0.08) !important; }
.wizard-card.top-match.selected { background: rgba(126, 207, 176, 0.10) !important; }
.wizard-card-score        { padding: 2px 8px; border-radius: 6px; font-size: 0.8em; font-weight: 700; }
.wizard-card-score.high   { background: rgba(126, 207, 176, 0.15) !important; color: var(--success) !important; border: 1px solid rgba(126, 207, 176, 0.30); }
.wizard-card-score.medium { background: rgba(233, 181, 102, 0.15) !important; color: var(--warning) !important; border: 1px solid rgba(233, 181, 102, 0.30); }
.wizard-card-score.low    { background: rgba(176, 126, 138, 0.15) !important; color: var(--danger) !important;  border: 1px solid rgba(176, 126, 138, 0.30); }

.wizard-diff-exact { background: rgba(126, 207, 176, 0.15) !important; color: var(--success) !important; padding: 1px 6px; border-radius: 4px; }
.wizard-diff-close { background: rgba(233, 181, 102, 0.15) !important; color: var(--warning) !important; padding: 1px 6px; border-radius: 4px; }
.wizard-diff-far   { background: rgba(176, 126, 138, 0.15) !important; color: var(--danger) !important;  padding: 1px 6px; border-radius: 4px; }

/* Legacy planning-tab — koristi se na više mjesta */
.planning-tab,
.tab-btn[class*="tab"] { padding: 10px 18px; }

/* Generic .section blok (ako neki modul koristi) */
.section,
.info-section,
.detail-section {
  background: rgba(70, 130, 220, 0.05);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  padding: 14px;
  margin-bottom: 12px;
  color: var(--text-hi);
}

/* Tab navigation s inline backgrounda u <style> blokovima — npr. artikli "tab nav strip" */
[style*="background: #f8f9fa"][style*="border-bottom"],
[style*="background:#f8f9fa"][style*="border-bottom"] {
  background: rgba(8, 22, 55, 0.60) !important;
  border-bottom-color: var(--glass-border) !important;
}

/* Defensive: bilo koji <input>/<select>/<textarea> izvan modal-a sa inline background — dark glass */
input[style*="background"]:not(.btn),
select[style*="background"]:not(.btn),
textarea[style*="background"]:not(.btn) {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}
input[readonly][style*="background"],
input:disabled[style*="background"] {
  background: rgba(0, 5, 18, 0.55) !important;
  color: var(--text-mid) !important;
}

/* ============================================
   Tablice — osigurati horizontal scroll
   .card ima overflow: hidden globalno; ovdje override-amo za .card koji
   wrappa tablicu kako scrollbar nije clipan.
   Tablice koriste `width: max-content` da se ne squishaju na container width.
   `white-space: nowrap` na th drži stupce u jednoj liniji.
   ============================================ */
.card:has(.table-container) { overflow: visible; }
.card-body { overflow-x: auto; }

.table-container {
  overflow-x: auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}
.table-container > table {
  width: max-content;
  min-width: 100%;
}
.table-container > table th { white-space: nowrap; }

/* Visible scrollbar (overrides default thin) */
.table-container::-webkit-scrollbar { height: 10px; width: 10px; background: rgba(8, 22, 55, 0.4); }
.table-container::-webkit-scrollbar-thumb { background: rgba(106, 172, 238, 0.35); border-radius: 5px; border: 2px solid rgba(8, 22, 55, 0.5); }
.table-container::-webkit-scrollbar-thumb:hover { background: rgba(106, 172, 238, 0.55); }
.table-container::-webkit-scrollbar-corner { background: rgba(8, 22, 55, 0.6); }

/* Sticky thead default */
::-webkit-scrollbar:horizontal { height: 8px; }
::-webkit-scrollbar:vertical   { width: 8px; }

/* ============================================
   PLANIRANJE — class overrides (sve klase iz <style> bloka)
   ============================================ */

/* Aggregate weight summary cards (S1 BIJELI / S1 SMEĐI / S2 / FOLIJA / UKUPNO) */
.weight-summary-row {
  background: linear-gradient(135deg, rgba(70, 130, 220, 0.10) 0%, rgba(12, 40, 100, 0.30) 100%) !important;
  border: 1px solid var(--glass-border) !important;
}
.weight-summary-card {
  background: rgba(8, 22, 55, 0.75) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
}
.weight-summary-card.white { border-left: 3px solid var(--blue) !important; }
.weight-summary-card.brown { border-left: 3px solid #c49370 !important; }
.weight-summary-card.foil  { border-left: 3px solid var(--success) !important; }
.weight-summary-card.total {
  background: linear-gradient(135deg, rgba(126, 207, 176, 0.25) 0%, rgba(80, 160, 120, 0.35) 100%) !important;
  border: 1px solid rgba(126, 207, 176, 0.45) !important;
}
.weight-summary-label  { color: var(--text-lo) !important; }
.weight-summary-value  { color: var(--text-hi) !important; }
.weight-summary-card.total .weight-summary-label { color: rgba(255, 255, 255, 0.85) !important; }
.weight-summary-card.total .weight-summary-value { color: #fff !important; }

/* Order group row (Razina 1 — Narudžba header) */
.order-group-row {
  background: linear-gradient(90deg, rgba(106, 172, 238, 0.10) 0%, rgba(70, 130, 220, 0.06) 100%) !important;
  border-top-color: rgba(106, 172, 238, 0.25) !important;
  border-bottom-color: rgba(106, 172, 238, 0.18) !important;
  color: var(--text-hi) !important;
}
.order-group-row:hover {
  background: linear-gradient(90deg, rgba(106, 172, 238, 0.16) 0%, rgba(70, 130, 220, 0.10) 100%) !important;
}
.order-group-row td { color: var(--text-hi) !important; }
.order-group-row .group-chevron       { color: var(--blue-bright) !important; }
.order-group-row .group-order-number  { color: var(--blue-bright) !important; font-weight: 700; }
.order-group-row .group-customer      { color: var(--text-hi) !important; }
.order-group-row .group-article-count {
  background: rgba(106, 172, 238, 0.20) !important;
  color: var(--blue-bright) !important;
  border: 1px solid rgba(106, 172, 238, 0.35) !important;
}

/* Group progress bars */
.group-progress { background: rgba(70, 130, 220, 0.12) !important; }
.group-progress-rn .group-progress-fill   { background: linear-gradient(90deg, rgba(233, 181, 102, 0.85) 0%, rgba(220, 150, 70, 0.95) 100%) !important; }
.group-progress-prod .group-progress-fill { background: linear-gradient(90deg, rgba(126, 207, 176, 0.85) 0%, rgba(80, 160, 120, 0.95) 100%) !important; }
.group-progress-label { color: var(--text-mid) !important; }

/* Attach badge (na privici gumb) */
.attach-btn-wrap .attach-badge {
  background: var(--blue) !important;
  color: #fff !important;
  border: 1px solid rgba(106, 172, 238, 0.6);
}
.attach-btn-wrap .attach-badge.zero { background: rgba(70, 130, 220, 0.25) !important; color: var(--text-lo) !important; }

/* Order article row (Razina 3 — pojedinačni artikl ispod narudžbe) */
.order-article-row {
  background: rgba(70, 130, 220, 0.03) !important;
  color: var(--text-mid);
}
.order-article-row td { border-bottom-color: var(--grid) !important; color: var(--text-mid); }
.order-article-row td strong { color: var(--text-hi); }

/* RN subgroup row (Razina 2 — Narudžba unutar Tip grupe na dnu) */
.rn-subgroup-row {
  background: var(--remap-grey-bg) !important;
  border-top-color: rgba(106, 172, 238, 0.15) !important;
  border-bottom-color: var(--grid) !important;
  color: var(--text-hi);
}
.rn-subgroup-row:hover { background: rgba(106, 172, 238, 0.10) !important; }
.rn-subgroup-row td { color: var(--text-hi) !important; }
.rn-subgroup-row .group-chevron { color: var(--blue-bright) !important; }

/* INLINE status row backgrounds — has-Glavni (žuto) vs has-OnlyPrep (plavo)
   Generirano u JS-u (line 2742-2744 planiranje.html) — eksplicitno targetiramo. */
tr.order-article-row[style*="#fff9c4"],
tr.order-article-row[style*="#fff59d"],
tr.order-article-row[style*="linear-gradient(90deg, #fff9c4"],
tr.order-article-row[style*="linear-gradient(90deg,#fff9c4"] {
  background: linear-gradient(90deg, rgba(233, 181, 102, 0.12) 0%, rgba(200, 150, 70, 0.08) 100%) !important;
}
tr.order-article-row[style*="#e8f4fc"],
tr.order-article-row[style*="#d6ebf9"],
tr.order-article-row[style*="linear-gradient(90deg, #e8f4fc"],
tr.order-article-row[style*="linear-gradient(90deg,#e8f4fc"] {
  background: linear-gradient(90deg, rgba(106, 172, 238, 0.10) 0%, rgba(70, 130, 220, 0.06) 100%) !important;
}
/* Force light text na ovim status-tinted rows */
tr.order-article-row[style*="#fff9c4"] td,
tr.order-article-row[style*="#fff9c4"] td *,
tr.order-article-row[style*="#e8f4fc"] td,
tr.order-article-row[style*="#e8f4fc"] td * {
  color: var(--text-hi);
}
tr.order-article-row[style*="#fff9c4"] td a,
tr.order-article-row[style*="#e8f4fc"] td a { color: var(--blue-bright) !important; }

/* RN type indicator badges (📦 Glavni / 🖨️ Tisak / ✂️ Rezanje) — inline span s pastel bg */
[style*="background: #fff9c4"][style*="color: #f57f17"],
[style*="background:#fff9c4"][style*="color:#f57f17"] {
  background: rgba(233, 181, 102, 0.20) !important;
  color: var(--warning) !important;
  border: 1px solid rgba(233, 181, 102, 0.40);
}
[style*="background: #fff59d"], [style*="background:#fff59d"] {
  background: rgba(233, 181, 102, 0.20) !important;
  color: var(--warning) !important;
}

/* Zaostali "color: #f57f17" / "color: #1565c0" / itd. iz pillova */
[style*="color: #f57f17"], [style*="color:#f57f17"] { color: var(--warning) !important; }
[style*="color: #94a3b8"], [style*="color:#94a3b8"] { color: var(--text-lo) !important; }

/* Attachment dashed border ("Nema privitaka...") */
[style*="background: #fafafa"][style*="dashed"],
[style*="background:#fafafa"][style*="dashed"] {
  background: rgba(70, 130, 220, 0.04) !important;
  border-color: var(--glass-border) !important;
  color: var(--text-mid) !important;
}

/* Modal header gradient banneri za planiranje (već globalno overrideano ali force za sigurnost) */
.modal-header[style*="linear-gradient(135deg, #2e7d32"] {
  background: linear-gradient(135deg, rgba(126, 207, 176, 0.18) 0%, rgba(80, 160, 120, 0.12) 100%) !important;
}

/* Modal body inputs s "background: #f5f5f5" (readonly artModal* / editOrder* / itd.) */
.modal-content input[readonly][style*="background"],
.modal-content input[readonly][style*="#f5f5f5"] {
  background: rgba(0, 5, 18, 0.55) !important;
  color: var(--text-mid) !important;
  border-color: var(--glass-border) !important;
}

/* Pojedine klase u <style> blokovima koje se ponavljaju */
.note-card-meta { color: var(--text-lo) !important; }
.note-card-msg { color: var(--text-hi) !important; }

/* ============================================
   GLOBAL: Anchor link unutar tablice (npr. ID artikla → openArticleModal)
   "color: #1976d2" inline → keep blue ali bright varijantu
   ============================================ */
[style*="color: #1976d2"][style*="text-decoration: underline"],
[style*="color:#1976d2"][style*="text-decoration: underline"] {
  color: var(--blue-bright) !important;
}

/* ============================================
   ARTIKLI — module-specific class overrides
   .tab-btn, .tab-nav, .paper-code-* (autocomplete), .form-section h4
   Razlog: artikli.html ima 2 <style> bloka koji definiraju ove klase nakon
   styles.css — kaskada win-uje njegovo. !important + visa specifičnost.
   ============================================ */

/* Artikli tab-nav (top-level Kupci/Artikli prebacivač) */
.tab-nav {
  display: flex;
  gap: 5px;
  border-bottom: 1px solid var(--glass-border) !important;
  padding-bottom: 0;
}

/* Tab-btn — bilo gdje (artikli ih definira lokalno) — force dark glass */
button.tab-btn,
.tab-btn {
  background: transparent !important;
  color: var(--text-lo) !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  font-weight: 600 !important;
  padding: 10px 18px !important;
}
button.tab-btn:hover,
.tab-btn:hover {
  background: rgba(70, 130, 220, 0.06) !important;
  color: var(--text-mid) !important;
}
button.tab-btn.active,
.tab-btn.active {
  background: rgba(70, 130, 220, 0.10) !important;
  color: var(--blue-bright) !important;
  border-bottom-color: var(--blue) !important;
}

/* Article modal section h4 ("🔑 Identifikacija", "📐 Dimenzije vreće", itd.) */
.form-section h4,
.form-section h5,
.section h4,
.section h5 {
  color: var(--blue) !important;
  border-bottom-color: var(--glass-border) !important;
  padding-bottom: 8px;
  margin-bottom: 12px;
  font-size: 14px;
  font-weight: 700;
}

/* Paper code autocomplete dropdown */
.paper-code-wrapper { position: relative; }
.paper-code-dropdown {
  background: rgba(8, 22, 55, 0.98) !important;
  border: 1px solid var(--glass-border-strong) !important;
  border-top: none;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.55) !important;
  color: var(--text-hi);
}
.paper-code-option {
  padding: 8px 12px;
  cursor: pointer;
  border-bottom: 1px solid var(--grid) !important;
  color: var(--text-mid);
}
.paper-code-option:hover,
.paper-code-option.selected {
  background: rgba(106, 172, 238, 0.12) !important;
  color: var(--text-hi);
}
.paper-code-option .code {
  font-weight: 700;
  color: var(--blue-bright) !important;
}
.paper-code-option .details {
  font-size: 11px;
  color: var(--text-lo) !important;
  margin-left: 8px;
}
.paper-code-option mark {
  background: rgba(233, 181, 102, 0.30) !important;
  color: var(--warning) !important;
  padding: 0 2px;
  border-radius: 2px;
}
.paper-code-no-results {
  padding: 12px;
  color: var(--text-lo) !important;
  text-align: center;
  font-style: italic;
}

/* Wizard card details (artikli.html line 41-49) */
.wizard-card-name { color: var(--text-hi); }
.wizard-card-details { color: var(--text-mid); }
.wizard-card-dims { color: var(--blue-bright) !important; }
.wizard-card-blank {
  border: 2px dashed var(--glass-border) !important;
  background: rgba(70, 130, 220, 0.03);
  color: var(--text-lo) !important;
}

/* Country badge container (već imam .country-hr/other ali bez parent .country-badge) */
.country-badge {
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 0.8em;
  font-weight: 600;
  display: inline-block;
}

/* Wizard badges container */
.wizard-parse-badges { min-height: 28px; }
.wizard-badge { padding: 4px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; }

/* Wizard results grid scrollbar */
.wizard-results-grid::-webkit-scrollbar { width: 6px; }
.wizard-results-grid::-webkit-scrollbar-thumb { background: rgba(106, 172, 238, 0.30); border-radius: 3px; }

/* ============================================
   GLOBAL: <select> u inputu artikli (i drugi moduli) — option kategorija
   ============================================ */
select option:checked { background: rgba(106, 172, 238, 0.30) !important; color: var(--text-hi) !important; }

/* ============================================
   TUBER — module-specific class overrides
   Razlog: tuber.html ima velik <style> blok s puno linija-specifičnih komponenti
   (linija picker, materijal scanner, role pregled, smjenski izvještaj).
   ============================================ */

/* Linija picker (overlay pri pokretanju Tubera/Bottomera) */
.linija-picker-overlay { background: rgba(0, 5, 18, 0.85) !important; backdrop-filter: blur(8px); }
.linija-picker-modal {
  background: rgba(8, 22, 55, 0.96) !important;
  border: 1px solid var(--glass-border-strong) !important;
  box-shadow: var(--shadow-lg), 0 0 60px rgba(0, 30, 90, 0.6) !important;
}
.linija-picker h2,
.linija-picker-title { color: var(--text-hi) !important; }
.linija-picker-subtitle { color: var(--text-mid) !important; }
.linija-remember { color: var(--text-mid) !important; }
/* .linija-btn.wh / .nli / .linija-btn-wh / .linija-btn-nli zadržava gradiente — semantic boje za linije */

/* Bottomer-slagac/voditelj page header (linija-tinted gradient banner) */
.page-header {
  border-radius: var(--radius-sm);
  margin-bottom: 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px 18px;
  color: #fff;
}
.page-title { font-size: 1.4em; font-weight: 700; display: flex; align-items: center; gap: 10px; color: #fff; }
.linija-badge {
  background: rgba(255, 255, 255, 0.18) !important;
  padding: 5px 14px;
  border-radius: 18px;
  font-size: 0.8em;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
}
.btn-change-linija {
  background: rgba(255, 255, 255, 0.15) !important;
  border: 1px solid rgba(255, 255, 255, 0.30) !important;
  color: #fff !important;
}
.btn-change-linija:hover { background: rgba(255, 255, 255, 0.25) !important; }

/* Bottomer KPI cards (linija-tinted gradient kartice) */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.kpi-card {
  border-radius: var(--radius-sm);
  padding: 16px;
  text-align: center;
  color: #fff;
}
.kpi-card .kpi-value { font-size: 1.8em; font-weight: 700; line-height: 1.1; }
.kpi-card .kpi-label { opacity: 0.9; font-size: 0.85em; margin-top: 4px; }

/* Voditelj-specific header + tabs */
.voditelj-header {
  background: linear-gradient(135deg, rgba(40, 60, 140, 0.45) 0%, rgba(50, 80, 160, 0.35) 100%) !important;
  border: 1px solid var(--glass-border-strong) !important;
  color: var(--text-hi);
}
.voditelj-linija-select {
  background: rgba(0, 5, 18, 0.40) !important;
  border-color: var(--glass-border-strong) !important;
  color: var(--text-hi) !important;
}
.voditelj-linija-select option { color: var(--text-hi); background: #07142e; }
.voditelj-smjena-info { color: rgba(255, 255, 255, 0.85); }

.voditelj-tabs { display: flex; gap: 4px; margin-bottom: 16px; flex-wrap: wrap; }
.voditelj-tab {
  padding: 9px 18px;
  background: rgba(70, 130, 220, 0.08) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: 8px 8px 0 0;
  color: var(--text-mid) !important;
  cursor: pointer;
  font-weight: 600;
  font-family: inherit;
}
.voditelj-tab:hover { background: rgba(70, 130, 220, 0.14) !important; color: var(--text-hi) !important; }
.voditelj-tab.active {
  background: rgba(70, 130, 220, 0.20) !important;
  color: var(--blue-bright) !important;
  border-bottom-color: var(--blue) !important;
}
.voditelj-tab-content { display: none; }
.voditelj-tab-content.active { display: block; }

/* Preštelavanje container (bottomer-voditelj) */
.prestelavanje-container {
  background: linear-gradient(135deg, rgba(70, 110, 130, 0.40) 0%, rgba(60, 100, 120, 0.30) 100%) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
  padding: 16px;
  border-radius: var(--radius-sm);
}

/* ============================================
   TISAK — module-specific (purple identity #9c27b0)
   ============================================ */
.smjena-picker-overlay { background: rgba(0, 5, 18, 0.85) !important; backdrop-filter: blur(8px); }
.smjena-picker-modal {
  background: rgba(8, 22, 55, 0.96) !important;
  border: 1px solid var(--glass-border-strong) !important;
  box-shadow: var(--shadow-lg), 0 0 60px rgba(0, 30, 90, 0.6) !important;
}
.smjena-picker-title { color: #d180e0 !important; } /* purple-pink za Tisak identity */
.smjena-picker-info {
  background: linear-gradient(135deg, rgba(180, 100, 200, 0.30) 0%, rgba(150, 70, 175, 0.20) 100%) !important;
  border: 1px solid rgba(180, 100, 200, 0.40);
  color: #fff;
}
.smjena-picker-postava { background: rgba(255, 255, 255, 0.10) !important; color: #fff; }
.smjena-btn-potvrdi {
  background: linear-gradient(135deg, rgba(126, 207, 176, 0.85) 0%, rgba(80, 160, 120, 0.95) 100%) !important;
}
.smjena-remember { color: var(--text-mid) !important; }

/* Tisak section panels — strip white bg */
.tisak-container { padding: 0; }
.tisak-section {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
  color: var(--text-hi);
  border-radius: var(--radius-sm);
}
.tisak-section-header {
  border-bottom: 2px solid rgba(180, 100, 200, 0.45) !important;
}
.tisak-section-header h3 { color: #c485d6 !important; } /* tisak purple */

/* Tisak RN table */
.tisak-rn-table th {
  background: rgba(180, 100, 200, 0.20) !important;
  color: #d8a8e8 !important;
  border-bottom: 1px solid var(--glass-border);
}
.tisak-rn-table td {
  border-bottom: 1px solid var(--grid) !important;
  color: var(--text-mid);
}
.tisak-rn-table tr:hover { background: rgba(180, 100, 200, 0.08) !important; cursor: pointer; }
.tisak-rn-table tr.selected { background: rgba(180, 100, 200, 0.15) !important; }
.tisak-rn-table tr.selected td { color: var(--text-hi); }

/* Tisak status pills (semantic) */
.tisak-status.planiran        { background: rgba(233, 181, 102, 0.12) !important; color: var(--warning) !important; border: 1px solid rgba(233, 181, 102, 0.30); }
.tisak-status.u-tijeku        { background: rgba(106, 172, 238, 0.12) !important; color: var(--blue)    !important; border: 1px solid rgba(106, 172, 238, 0.30); }
.tisak-status.zavrsen         { background: rgba(126, 207, 176, 0.12) !important; color: var(--success) !important; border: 1px solid rgba(126, 207, 176, 0.30); }
.tisak-status.pauziran        { background: rgba(176, 126, 138, 0.12) !important; color: var(--danger)  !important; border: 1px solid rgba(176, 126, 138, 0.30); }
.tisak-status.ceka-odobrenje  { background: rgba(233, 181, 102, 0.12) !important; color: var(--warning) !important; border: 1px solid rgba(233, 181, 102, 0.30); }

/* ============================================
   REZAC — module-specific
   ============================================ */
.filter-section {
  background: var(--remap-grey-bg) !important;
  border: 1px solid var(--glass-border);
  color: var(--text-hi);
}
.filter-group label { color: var(--text-mid) !important; }
.filter-group input,
.filter-group select {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}
.toggle-section {
  background: rgba(70, 130, 220, 0.10) !important;
  border: 1px solid var(--glass-border);
  color: var(--text-hi);
}
.toggle-section:hover { background: rgba(70, 130, 220, 0.16) !important; }

/* Stats banner sa indigo gradient (rezac, others) */
.role-stats {
  background: linear-gradient(135deg, rgba(102, 126, 234, 0.30) 0%, rgba(118, 75, 162, 0.25) 100%) !important;
  border: 1px solid rgba(102, 126, 234, 0.40);
  color: #fff;
}
.stat-box { color: #fff; }
.stat-value { color: #fff; }
.stat-label { color: rgba(255, 255, 255, 0.85); }

/* Artikl card / papir box (rezac) */
.artikl-card {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}
.artikl-header {
  background: linear-gradient(135deg, rgba(102, 126, 234, 0.30) 0%, rgba(118, 75, 162, 0.25) 100%) !important;
  border: 1px solid rgba(102, 126, 234, 0.40);
  color: #fff;
}
.papir-box {
  background: rgba(8, 22, 55, 0.55) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}
.papir-title { color: var(--text-hi) !important; }
.papir-detail-label { color: var(--text-lo) !important; }
.papir-detail-value { color: var(--text-hi) !important; }

/* Rezac glavna skladišna tablica (.skladiste-scroll-container)
   Fixes:
   1. THEAD purple gradient → muted blue glass
   2. TH text → light visible
   3. TBODY tr:hover bright #f1f3f5 → dark glass hover */
.skladiste-scroll-container {
  border: 1px solid var(--glass-border) !important;
  background: rgba(8, 22, 55, 0.40);
}
.skladiste-scroll-container thead {
  background: linear-gradient(135deg, rgba(102, 126, 234, 0.35) 0%, rgba(118, 75, 162, 0.28) 100%) !important;
}
.skladiste-scroll-container thead th {
  background: transparent !important;
  color: #fff !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.skladiste-scroll-container tbody tr:hover {
  background: rgba(102, 126, 234, 0.10) !important;
}
.skladiste-scroll-container tbody tr:hover td {
  background: transparent !important;
  color: var(--text-hi) !important;
}

/* Suma table (sumarna tablica papira nakon detalja) */
.suma-table {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
}
.suma-table th {
  background: linear-gradient(135deg, rgba(102, 126, 234, 0.35) 0%, rgba(118, 75, 162, 0.28) 100%) !important;
  color: #fff !important;
}
.suma-table td { color: var(--text-mid); border-bottom: 1px solid var(--grid); }
.suma-total {
  background: rgba(126, 207, 176, 0.40) !important;
  color: #fff !important;
  font-weight: 700;
}

/* Workflow section (zeleni gradient header iznad slaganja traka) */
.workflow-section {
  background: linear-gradient(135deg, rgba(60, 160, 175, 0.35) 0%, rgba(80, 200, 150, 0.30) 100%) !important;
  border: 1px solid rgba(60, 160, 175, 0.45) !important;
  color: #fff;
}
.workflow-header { color: #fff; }
.kalkulator-container {
  background: rgba(8, 22, 55, 0.65) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}
.kalkulator-info-box {
  background: var(--remap-grey-bg) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}
.kalkulator-info-box.success {
  background: rgba(126, 207, 176, 0.10) !important;
  border-color: rgba(126, 207, 176, 0.35) !important;
  color: var(--success) !important;
}
.kalkulator-info-box.warning {
  background: rgba(233, 181, 102, 0.10) !important;
  border-color: rgba(233, 181, 102, 0.35) !important;
  color: var(--warning) !important;
}

/* Stanje rola info (slaganje workflow info banner) */
.stanje-rola-info {
  background: rgba(70, 130, 220, 0.06) !important;
  border: 1px solid var(--glass-border);
  color: var(--text-hi);
  padding: 12px;
  border-radius: var(--radius-sm);
}

/* Traka chip pillovi (slaganje workflow — zadržava semantic boju, mute) */
.traka-chip {
  background: linear-gradient(135deg, rgba(102, 126, 234, 0.40) 0%, rgba(118, 75, 162, 0.35) 100%) !important;
  border: 1px solid rgba(102, 126, 234, 0.50);
  color: #fff !important;
}
.traka-chip.ostatak {
  background: linear-gradient(135deg, rgba(240, 147, 251, 0.40) 0%, rgba(245, 87, 108, 0.35) 100%) !important;
  border-color: rgba(245, 87, 108, 0.50) !important;
}
.traka-chip.custom {
  background: linear-gradient(135deg, rgba(79, 172, 254, 0.40) 0%, rgba(0, 242, 254, 0.30) 100%) !important;
  border-color: rgba(79, 172, 254, 0.50) !important;
}
.traka-chip .remove-btn { background: rgba(255, 255, 255, 0.20) !important; }
.traka-chip .remove-btn:hover { background: rgba(255, 255, 255, 0.40) !important; }

/* Dostupne trake container */
.dostupne-trake {
  background: var(--remap-grey-bg) !important;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  padding: 12px;
}

/* Btn-traka (rezac btn varijante #667eea outline) */
.btn-traka {
  background: rgba(102, 126, 234, 0.10) !important;
  border: 2px solid rgba(102, 126, 234, 0.55) !important;
  color: #b9c4f0 !important;
}
.btn-traka:hover { background: rgba(102, 126, 234, 0.25) !important; color: #fff !important; }
.btn-traka.active {
  background: rgba(102, 126, 234, 0.55) !important;
  color: #fff !important;
}

/* Light grey info bar (#e9ecef) — fallback dodatak globalnom override-u */
[style*="background: #e9ecef"], [style*="background:#e9ecef"] {
  background: rgba(70, 130, 220, 0.08) !important;
  color: var(--text-mid) !important;
}
[style*="color: #495057"], [style*="color:#495057"] { color: var(--text-mid) !important; }

/* ============================================
   NAPOMENE — preostale note-card sub-klase (header, content, footer, article, empty)
   ============================================ */
.note-card-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px; }
.note-card-content { color: var(--text-hi) !important; line-height: 1.5; }
.note-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--glass-border) !important;
}
.note-card-article { color: var(--blue-bright) !important; font-weight: 600; }
.note-empty {
  text-align: center;
  padding: 36px;
  color: var(--text-lo) !important;
  font-style: italic;
}
/* Notes section container — tisak/bottomer/planiranje napomene tab */
.notes-section {
  background: var(--bg-card) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
  border-radius: var(--radius-sm);
  padding: 18px;
  margin-bottom: 16px;
  color: var(--text-hi);
}
.notes-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--glass-border);
  color: var(--text-hi);
}
.notes-section-header h3 {
  margin: 0;
  color: var(--blue-bright);
  font-size: 1.05em;
}

/* Tisak — pregled po RN tablica grupiranje (vlastite klase za grupne redove) */
.tisak-pregled-toolbar-btn {
  background: var(--bg-card) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-mid) !important;
  padding: 7px 12px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.tisak-pregled-toolbar-btn:hover {
  background: var(--bg-card-hover) !important;
  border-color: var(--glass-border-strong) !important;
  color: var(--text-hi) !important;
}
.tisak-pregled-toolbar-btn:active {
  background: rgba(106, 172, 238, 0.15) !important;
}

.tisak-pregled-group-row {
  background: linear-gradient(90deg, rgba(106, 172, 238, 0.10) 0%, rgba(70, 130, 220, 0.06) 100%) !important;
  border-top: 2px solid var(--glass-border-strong) !important;
  border-bottom: 1px solid var(--glass-border) !important;
}
.tisak-pregled-group-row:hover {
  background: linear-gradient(90deg, rgba(106, 172, 238, 0.16) 0%, rgba(70, 130, 220, 0.10) 100%) !important;
}
.tisak-pregled-group-row td { color: var(--text-hi) !important; }
.tisak-pregled-group-row .group-chevron { color: var(--blue-bright) !important; }
.tisak-pregled-group-row .group-order-number { color: var(--blue-bright) !important; }
.tisak-pregled-group-row .group-count {
  background: rgba(106, 172, 238, 0.20) !important;
  color: var(--blue-bright) !important;
  border: 1px solid rgba(106, 172, 238, 0.35);
}

.tisak-pregled-leaf-row {
  background: var(--remap-grey-bg) !important;
}
.tisak-pregled-leaf-row td { color: var(--text-mid); }

/* Tisak calc item (kalkulator output box) */
.tisak-calc-item {
  background: var(--bg-card) !important;
  border: 1px solid var(--glass-border);
  color: var(--text-hi);
}
.tisak-calc-item label { color: var(--text-mid); }
.note-actions { display: flex; gap: 8px; }
.btn-note,
.btn-note-article,
.btn-note-shift {
  background: rgba(106, 172, 238, 0.15) !important;
  color: var(--blue-bright) !important;
  border: 1px solid rgba(106, 172, 238, 0.30) !important;
}
.btn-note:hover, .btn-note-article:hover, .btn-note-shift:hover {
  background: rgba(106, 172, 238, 0.25) !important;
}
.btn-acknowledge {
  background: rgba(126, 207, 176, 0.18) !important;
  color: var(--success) !important;
  border: 1px solid rgba(126, 207, 176, 0.40) !important;
}
.btn-acknowledge:hover { background: rgba(126, 207, 176, 0.30) !important; }
.tab-badge-notes {
  background: var(--danger) !important;
  color: #fff !important;
  border-radius: 10px;
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 700;
}

/* ============================================
   SMJENSKA IZVJEŠĆA — solid color badges (linija/stroj/smjena)
   Pillovi koje dashboard renderuje za WH/NLI/Tisak/Bottomer/Tuber/itd.
   Konvencija: keep semantic boju ali tone down, light text za čitljivost.
   ============================================ */

/* Solid-color background pillovi koje sam previdio */
[style*="background: #4caf50"], [style*="background:#4caf50"] {
  background: rgba(126, 207, 176, 0.45) !important;
  color: #fff !important;
  border: 1px solid rgba(126, 207, 176, 0.60);
}
[style*="background: #ff9800"], [style*="background:#ff9800"] {
  background: rgba(233, 130, 60, 0.45) !important;
  color: #fff !important;
  border: 1px solid rgba(233, 130, 60, 0.60);
}
[style*="background: #f57c00"], [style*="background:#f57c00"] {
  background: rgba(220, 130, 50, 0.50) !important;
  color: #fff !important;
}
[style*="background: #9c27b0"], [style*="background:#9c27b0"],
[style*="background: #7b1fa2"], [style*="background:#7b1fa2"] {
  background: rgba(180, 100, 200, 0.45) !important;
  color: #fff !important;
  border: 1px solid rgba(180, 100, 200, 0.60);
}
[style*="background: #d32f2f"], [style*="background:#d32f2f"],
[style*="background: #f44336"], [style*="background:#f44336"],
[style*="background: #c62828"], [style*="background:#c62828"] {
  background: rgba(176, 100, 110, 0.50) !important;
  color: #fff !important;
  border: 1px solid rgba(176, 100, 110, 0.65);
}
[style*="background: #1a237e"], [style*="background:#1a237e"],
[style*="background: #283593"], [style*="background:#283593"],
[style*="background: #3949ab"], [style*="background:#3949ab"] {
  background: rgba(60, 90, 175, 0.50) !important;
  color: #fff !important;
  border: 1px solid rgba(60, 90, 175, 0.65);
}
[style*="background: #00838f"], [style*="background:#00838f"],
[style*="background: #00897b"], [style*="background:#00897b"],
[style*="background: #00695c"], [style*="background:#00695c"] {
  background: rgba(60, 160, 175, 0.40) !important;
  color: #fff !important;
}

/* Solid color text-bg combinations (e.g. #28a745 button bg) */
[style*="background: #28a745"], [style*="background:#28a745"] {
  background: rgba(126, 207, 176, 0.45) !important;
  color: #fff !important;
  border: 1px solid rgba(126, 207, 176, 0.60);
}
[style*="background: #007bff"], [style*="background:#007bff"] {
  background: rgba(70, 130, 220, 0.45) !important;
  color: #fff !important;
}
[style*="background: #6c757d"], [style*="background:#6c757d"] {
  background: rgba(108, 117, 125, 0.40) !important;
  color: #fff !important;
}
[style*="background: #17a2b8"], [style*="background:#17a2b8"] {
  background: rgba(70, 160, 180, 0.45) !important;
  color: #fff !important;
}
[style*="background: #ffc107"], [style*="background:#ffc107"] {
  background: rgba(233, 181, 102, 0.45) !important;
  color: #1a1a1a !important;
}
[style*="background: #dc3545"], [style*="background:#dc3545"] {
  background: rgba(176, 100, 110, 0.50) !important;
  color: #fff !important;
}
[style*="background: #ef6c00"], [style*="background:#ef6c00"] {
  background: rgba(220, 130, 50, 0.50) !important;
  color: #fff !important;
}

/* Smjenska izvjesca tablica (dashboard) — TR hover/cell visibility */
#izvjescaTableBody tr:hover { background: rgba(70, 130, 220, 0.08) !important; }
#izvjescaTableBody tr:hover td { color: var(--text-hi) !important; }

/* Smjenska izvjesca details modal grid (SMJENA INFO blok) */
.detalji-grid .detalji-item strong,
.izvjesce-detalj-row strong { color: var(--text-hi) !important; }

/* ============================================
   SMJENSKI IZVJEŠTAJ — print-style template (tuber/bottomer/tisak)
   "Print-style" izvještaj koji se i editira na ekranu i ispisuje na papir.
   Dosad su ćelije bile sve bijele (za papir) → nečitljive na dark temi.
   Override za screen view: dark glass + light text. Print zadržava bijelo
   preko @media print koje već postoji u modulima.
   ============================================ */
.izvjestaj-print {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi) !important;
  border-radius: var(--radius-sm);
}
.izvjestaj-print h1, .izvjestaj-print h2, .izvjestaj-print h3,
.izvjestaj-print h4, .izvjestaj-print h5 { color: var(--text-hi) !important; }
.izvjestaj-print strong, .izvjestaj-print b { color: var(--text-hi) !important; }
.izvjestaj-print label { color: var(--text-mid) !important; }

/* Tablica izvještaja — theme-aware cells + visible borders */
.izvjestaj-table { background: var(--bg-card) !important; }
.izvjestaj-table th,
.izvjestaj-table td {
  border-color: var(--glass-border) !important;
  color: var(--text-hi) !important;
}
.izvjestaj-table th {
  background: var(--bg-thead) !important;
  color: var(--text-hi) !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-size: 0.78em;
}
.izvjestaj-table .header-row {
  background: var(--bg-table-row-hover) !important;
  color: var(--text-hi) !important;
}
.izvjestaj-table .header-row td { color: var(--text-hi) !important; }

/* Količina kolona — orange identity "ovo je glavni input", uvijek orange tint preko remap-warning */
.izvjestaj-table th.kolicina-col {
  background: linear-gradient(135deg, var(--t-remap-warning-bg) 0%, var(--remap-warning-bg) 100%) !important;
  color: var(--warning) !important;
  border: 2px solid var(--warning) !important;
}
.izvjestaj-table .kolicina-col {
  background: var(--remap-warning-bg) !important;
}

/* Input polja u izvještaju — theme-aware */
.izvjestaj-input-vrijeme {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}
.izvjestaj-input-vrijeme:focus {
  border-color: var(--blue) !important;
  background: var(--bg-input) !important;
  box-shadow: 0 0 0 2px rgba(106, 172, 238, 0.20) !important;
}
.izvjestaj-input-kom {
  background: var(--remap-warning-bg) !important;
  border: 2px solid var(--warning) !important;
  color: var(--warning) !important;
  font-weight: 700;
}
.izvjestaj-input-kom:focus {
  background: var(--remap-warning-bg) !important;
  border-color: var(--warning) !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(233, 181, 102, 0.20) !important;
}
.izvjestaj-input-header {
  background: transparent !important;
  border-bottom-color: var(--blue) !important;
  color: var(--text-hi) !important;
}

/* Total/UKUPNO row */
.izvjestaj-table .total-row,
.izvjestaj-table tfoot td {
  background: var(--remap-info-bg) !important;
  font-weight: 700;
  color: var(--blue-bright) !important;
}

/* "SMJENSKI IZVJEŠTAJ Ispiši" purple banner (tisak/bottomer) — već semi-tonan */
[style*="background: linear-gradient(135deg, #7b1fa2"],
[style*="background:linear-gradient(135deg, #7b1fa2"] {
  background: linear-gradient(135deg, rgba(150, 70, 175, 0.45) 0%, rgba(180, 100, 200, 0.35) 100%) !important;
}

/* ============================================
   BOTTOMER-SLAGAC — Pokrpano sekcija (white forms s drop downovima)
   ============================================ */
.input-section {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}
.section-label { color: var(--text-mid) !important; font-weight: 600; }
.input-row, .input-group { background: transparent; }
.input-group select,
.input-group input,
.input-group textarea,
.input-row select,
.input-row input,
.input-row textarea {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}
.input-group select:focus,
.input-row select:focus,
.input-group input:focus,
.input-row input:focus { border-color: var(--blue) !important; }

/* Bottomer-slagac specific containers */
.kupac-box,
.proizvod-box,
.napomena-box,
.barcode-box,
.carta-info,
.etiketa-container,
.etiketa-page {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}
.kupac-label, .proizvod-label, .etiketa-field-label { color: var(--text-mid) !important; }
.kupac-naziv, .proizvod-naziv, .etiketa-field-value { color: var(--text-hi) !important; }
.info-grid, .info-item { color: var(--text-hi); }
.info-label { color: var(--text-lo) !important; }
.info-value { color: var(--text-hi) !important; }
.gop-table-container {
  background: rgba(8, 22, 55, 0.55) !important;
  border: 1px solid var(--glass-border);
}

/* Module-tabs (bottomer-slagac internal tabs) */
.module-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--glass-border);
  margin-bottom: 16px;
}
.module-tab {
  background: rgba(70, 130, 220, 0.06) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-mid) !important;
  border-radius: 8px 8px 0 0 !important;
  padding: 10px 18px;
  font-weight: 600;
  cursor: pointer;
}
.module-tab:hover { background: rgba(70, 130, 220, 0.14) !important; color: var(--text-hi) !important; }
.module-tab.active {
  background: rgba(70, 130, 220, 0.20) !important;
  color: var(--blue-bright) !important;
  border-color: var(--blue) !important;
  border-bottom-color: transparent !important;
}
.module-tab-content { display: none; }
.module-tab-content.active { display: block; }

/* Palete agregat (bottomer-slagac sažetak paleta po tipu) */
.palete-agregat {
  background: rgba(70, 130, 220, 0.06) !important;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  color: var(--text-hi);
}
.palete-agregat-item {
  background: rgba(8, 22, 55, 0.55) !important;
  border: 1px solid var(--glass-border);
  color: var(--text-hi);
}
.palete-agregat-label { color: var(--text-lo) !important; }
.palete-agregat-value { color: var(--text-hi) !important; }
.paleta-badge,
.paleta-count {
  background: rgba(106, 172, 238, 0.20) !important;
  color: var(--blue-bright) !important;
  border: 1px solid rgba(106, 172, 238, 0.35);
}
.palete-stanje { color: var(--text-mid); }
.palete-filter-row {
  background: var(--remap-grey-bg) !important;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
}

/* Current order card (bottomer-slagac active order header) */
.current-order-card {
  background: rgba(70, 130, 220, 0.08) !important;
  border: 1px solid var(--glass-border-strong) !important;
  color: var(--text-hi);
}
.current-order-header { color: var(--text-hi); }
.current-order-title { color: var(--blue-bright) !important; }

/* Footer section (bottomer-slagac dno stranice) */
.footer-section,
.bottom-section {
  background: var(--remap-grey-bg) !important;
  border-top: 1px solid var(--glass-border);
  color: var(--text-mid);
}

/* ============================================
   SKLADISTE — module-specific
   ============================================ */
.rpr-group-row {
  background: rgba(106, 172, 238, 0.08) !important;
  color: var(--text-hi);
}
.rpr-group-row td { color: var(--text-hi) !important; }
.rpr-leaf-row {
  background: rgba(70, 130, 220, 0.03) !important;
  color: var(--text-mid);
}
.rpr-leaf-row td { color: var(--text-mid); }
.rpr-toolbar-btn {
  background: rgba(12, 40, 100, 0.20) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-mid) !important;
}
.rpr-toolbar-btn:hover { background: rgba(70, 130, 220, 0.10) !important; color: var(--text-hi) !important; }
.inline-edit { color: var(--text-hi); }

/* ============================================
   OTPREME — module-specific (header banner, tabs)
   ============================================ */
.otpreme-header {
  background: linear-gradient(135deg, rgba(40, 60, 140, 0.35) 0%, rgba(60, 90, 175, 0.25) 100%) !important;
  border: 1px solid var(--glass-border-strong);
  color: #fff;
}
.otpreme-title { color: #fff; }
.otpreme-tab {
  background: rgba(70, 130, 220, 0.08) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-mid) !important;
}
.otpreme-tab:hover { background: rgba(70, 130, 220, 0.14) !important; color: var(--text-hi) !important; }
.otpreme-tab.active {
  background: rgba(70, 130, 220, 0.20) !important;
  color: var(--blue-bright) !important;
  border-color: var(--blue) !important;
}
/* .kpi-* iz otpreme-a već dijeli pravila s bottomerom (definirano gore) */
.document-preview {
  background: rgba(8, 22, 55, 0.65) !important;
  color: var(--text-hi);
  border: 1px solid var(--glass-border);
}

/* ============================================
   ISO MODULES — shared .iso-* class system (svih 13 modula)
   ============================================ */

/* Section title */
.iso-section-title {
  color: var(--blue) !important;
  border-bottom: 1px solid var(--glass-border) !important;
  margin: 24px 0 14px;
  padding-bottom: 8px;
  font-size: 1.1em;
}

/* Module grid + cards */
.iso-modules-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.iso-module-card {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  border-left: 4px solid var(--blue) !important;
  box-shadow: none !important;
  color: var(--text-hi);
  border-radius: var(--radius-sm);
  transition: var(--transition);
}
.iso-module-card:hover {
  background: var(--bg-card-hover) !important;
  border-left-color: var(--blue-bright) !important;
  transform: translateY(-2px);
  box-shadow: 0 0 18px rgba(106, 172, 238, 0.20) !important;
}
.iso-module-icon  { color: var(--blue-bright) !important; }
.iso-module-title { color: var(--text-hi) !important; }
.iso-module-stat  { color: var(--text-mid) !important; }
.iso-module-desc  { color: var(--text-lo) !important; }

/* Alert blokovi (warning/success/danger) — tone down */
.iso-alert {
  border-radius: var(--radius-sm);
  box-shadow: none !important;
  border: 1px solid var(--glass-border);
}
.iso-alert-warning {
  background: rgba(233, 181, 102, 0.08) !important;
  border-left: 5px solid var(--warning) !important;
  border-color: rgba(233, 181, 102, 0.28) !important;
}
.iso-alert-success {
  background: rgba(126, 207, 176, 0.08) !important;
  border-left: 5px solid var(--success) !important;
  border-color: rgba(126, 207, 176, 0.28) !important;
}
.iso-alert-danger {
  background: rgba(176, 126, 138, 0.10) !important;
  border-left: 5px solid var(--danger) !important;
  border-color: rgba(176, 126, 138, 0.30) !important;
}
.iso-alert-icon { color: var(--warning) !important; }
.iso-alert-success .iso-alert-icon { color: var(--success) !important; }
.iso-alert-danger  .iso-alert-icon { color: var(--danger) !important; }
.iso-alert-title { color: var(--text-hi) !important; }
.iso-alert-text  { color: var(--text-mid) !important; }

/* ISO card / table — naslijeđuje glavni .card stil ali ima vlastite varijante */
.iso-card {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
  color: var(--text-hi);
}
.iso-table { color: var(--text-mid); }
.iso-table thead { background: rgba(70, 130, 220, 0.08) !important; }
.iso-table thead th { color: var(--text-lo); border-bottom: 1px solid var(--glass-border); }
.iso-table tr:hover { background: rgba(70, 130, 220, 0.06) !important; color: var(--text-hi); }
.iso-table tr:hover td { color: var(--text-hi); }
.iso-table td { border-bottom: 1px solid var(--grid); color: var(--text-mid); }
.iso-table td strong { color: var(--text-hi); }

/* ISO pillovi (severity / status) */
.iso-pill {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 700;
  border: 1px solid transparent;
}
.iso-pill-major        { background: rgba(176, 126, 138, 0.15) !important; color: var(--danger) !important;  border-color: rgba(176, 126, 138, 0.30) !important; }
.iso-pill-minor        { background: rgba(233, 181, 102, 0.15) !important; color: var(--warning) !important; border-color: rgba(233, 181, 102, 0.30) !important; }
.iso-pill-observation  { background: rgba(106, 172, 238, 0.15) !important; color: var(--blue) !important;    border-color: rgba(106, 172, 238, 0.30) !important; }
.iso-pill-status-otvoreno  { background: rgba(233, 181, 102, 0.12) !important; color: var(--warning) !important; border-color: rgba(233, 181, 102, 0.30) !important; }
.iso-pill-status-zatvoreno { background: rgba(126, 207, 176, 0.12) !important; color: var(--success) !important; border-color: rgba(126, 207, 176, 0.30) !important; }
.iso-pill-status-u-tijeku  { background: rgba(106, 172, 238, 0.12) !important; color: var(--blue) !important;    border-color: rgba(106, 172, 238, 0.30) !important; }
.iso-pill-status-default   { background: rgba(70, 130, 220, 0.10) !important; color: var(--text-mid) !important; border-color: var(--glass-border) !important; }

/* Source badges (mali colored span uz NC/CAPA — tip izvora) — keep semantic colors */
.iso-source-rola      { color: #c485d6 !important; } /* purple */
.iso-source-stroj     { color: var(--warning) !important; }
.iso-source-reklam    { color: #db7ba0 !important; } /* pink */
.iso-source-rucno     { color: var(--text-mid) !important; }
.iso-source-audit     { color: var(--blue) !important; }
.iso-source-skart     { color: var(--warning) !important; }
.iso-source-dobavljac { color: #c485d6 !important; }

/* Countdown badges (vrijeme do audita) */
.iso-countdown-badge { padding: 4px 10px; border-radius: 12px; font-weight: 700; font-size: 13px; border: 1px solid; }
.iso-countdown-ok     { background: rgba(126, 207, 176, 0.12) !important; color: var(--success) !important; border-color: rgba(126, 207, 176, 0.30) !important; }
.iso-countdown-warn   { background: rgba(233, 181, 102, 0.12) !important; color: var(--warning) !important; border-color: rgba(233, 181, 102, 0.30) !important; }
.iso-countdown-danger { background: rgba(176, 126, 138, 0.15) !important; color: var(--danger) !important;  border-color: rgba(176, 126, 138, 0.30) !important; }

/* ============================================
   ISO-PREGLED audit sprint banner (line 9 inline gradient)
   ============================================ */
[style*="linear-gradient(90deg, #fff8e1, #ffe0b2)"] {
  background: linear-gradient(90deg, rgba(233, 181, 102, 0.15) 0%, rgba(233, 130, 60, 0.10) 100%) !important;
  border-left: 5px solid var(--warning) !important;
  color: var(--text-hi) !important;
}

/* ============================================
   HR & Place modules — shared classes (place, obracun, produktivnost)
   ============================================ */

/* Page header (obracun) */
.page-header {
  /* već definirano gore za bottomer s linija-tinted gradient — tu je default verzija
     za module bez --linija-primary varijabli (obracun/produktivnost). */
}
.period-selector {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
  border-radius: var(--radius-sm);
  padding: 12px;
}

/* Tabs container & tabs (place koristi .tab umjesto .tab-btn) */
.tabs-container { margin-bottom: 16px; }
.tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--glass-border) !important;
  padding-bottom: 0;
  flex-wrap: wrap;
}
.tab {
  padding: 10px 18px;
  background: transparent !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  cursor: pointer;
  font-weight: 600;
  color: var(--text-lo) !important;
  font-family: inherit;
}
.tab:hover { background: rgba(70, 130, 220, 0.06) !important; color: var(--text-mid) !important; }
.tab.active {
  color: var(--blue-bright) !important;
  border-bottom-color: var(--blue) !important;
  background: rgba(70, 130, 220, 0.08) !important;
}

/* Hours table (place + obracun) */
.hours-table-container,
.hours-table-wrapper {
  background: rgba(8, 22, 55, 0.55) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
  border-radius: var(--radius-sm);
  overflow: auto;
}
.hours-table th {
  background: rgba(40, 60, 140, 0.45) !important;
  color: var(--text-hi) !important;
  border-bottom: 1px solid var(--glass-border-strong);
}
.hours-table td {
  border-bottom: 1px solid var(--grid) !important;
  color: var(--text-mid);
}
.hours-table tr:hover { background: rgba(70, 130, 220, 0.06) !important; color: var(--text-hi); }
.hours-table input {
  background: rgba(8, 22, 55, 0.85) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}

/* Koef-row (place — koeficijenti red) — ostaje plav za prepoznavanje */
.koef-row {
  background: rgba(46, 90, 143, 0.40) !important;
  color: #fff !important;
  font-weight: 600;
}
.koef-row td { color: #fff !important; }

/* Total-col (place — total kolona) — pozeleni ali stišano */
.total-col {
  background: rgba(126, 207, 176, 0.10) !important;
  color: var(--success) !important;
  font-weight: 700;
}

/* Sticky-col (zaposlenik kolona ulijevo) */
.sticky-col {
  background: rgba(8, 22, 55, 0.95) !important;
  color: var(--text-hi) !important;
  position: sticky;
  left: 0;
  z-index: 5;
}

/* Payroll table (obracun) */
.payroll-table {
  background: rgba(8, 22, 55, 0.55) !important;
  box-shadow: none !important;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.payroll-table th {
  background: rgba(40, 60, 140, 0.45) !important;
  color: var(--text-hi) !important;
}
.payroll-table td {
  border-bottom: 1px solid var(--grid) !important;
  color: var(--text-mid);
}
.payroll-table tr:hover { background: rgba(70, 130, 220, 0.06) !important; }
.payroll-table tr:hover td { color: var(--text-hi); }
.payroll-table .employee-info .name { color: var(--text-hi) !important; }
.payroll-table .employee-info .job { color: var(--text-lo) !important; }

/* Manual bonus input */
.manual-bonus-input {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}
.manual-bonus-input:focus { border-color: var(--warning) !important; }

/* Status badges za obracun */
.status-badge.draft       { background: rgba(70, 130, 220, 0.10) !important; color: var(--text-mid) !important; border: 1px solid var(--glass-border); }
.status-badge.calculated  { background: rgba(106, 172, 238, 0.12) !important; color: var(--blue) !important; border: 1px solid rgba(106, 172, 238, 0.30); }
.status-badge.approved    { background: rgba(126, 207, 176, 0.12) !important; color: var(--success) !important; border: 1px solid rgba(126, 207, 176, 0.30); }
.status-badge.paid        { background: rgba(126, 207, 176, 0.18) !important; color: var(--success) !important; border: 1px solid rgba(126, 207, 176, 0.40); }
.status-badge.error       { background: rgba(176, 126, 138, 0.12) !important; color: var(--danger) !important; border: 1px solid rgba(176, 126, 138, 0.30); }

/* KPI cards (.kpi-card .label / .value pattern u obracunu — drugačiji od bottomer .kpi-card) */
.kpi-card .label { color: var(--text-lo) !important; }
.kpi-card .value { color: var(--text-hi) !important; }
.kpi-card.blue .value   { color: var(--blue) !important; }
.kpi-card.green .value  { color: var(--success) !important; }
.kpi-card.orange .value { color: var(--warning) !important; }
.kpi-card.red .value    { color: var(--danger) !important; }

/* Payslip preview (obracun) */
.payslip {
  background: rgba(8, 22, 55, 0.65) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}

/* Form-section (djelatnici) */
.tab-content-djel { display: none; }
.tab-content-djel.active { display: block; }

/* Team filter */
.team-filter select {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}

/* ============================================
   KUHINJA — module-specific (.upute-*, .vnc-*, .kuhinja-*, .quick-action-btn)
   ============================================ */
.kuhinja-header {
  background: linear-gradient(135deg, rgba(40, 60, 140, 0.40) 0%, rgba(60, 90, 175, 0.30) 100%) !important;
  border: 1px solid var(--glass-border-strong) !important;
  color: var(--text-hi);
}
.kuhinja-status.online      { background: rgba(126, 207, 176, 0.18) !important; color: var(--success); border: 1px solid rgba(126, 207, 176, 0.40); }
.kuhinja-status.offline     { background: rgba(176, 126, 138, 0.18) !important; color: var(--danger);  border: 1px solid rgba(176, 126, 138, 0.40); }
.kuhinja-status.connecting  { background: rgba(233, 181, 102, 0.18) !important; color: var(--warning); border: 1px solid rgba(233, 181, 102, 0.40); }

.kuhinja-tab {
  background: transparent !important;
  color: var(--text-mid) !important;
  border-bottom: 2px solid transparent !important;
  font-weight: 600;
}
.kuhinja-tab:hover {
  background: rgba(70, 130, 220, 0.08) !important;
  color: var(--text-hi) !important;
}
.kuhinja-tab.active {
  background: rgba(70, 130, 220, 0.12) !important;
  color: var(--blue-bright) !important;
  border-bottom-color: var(--blue) !important;
}

/* Upute (recipe instructions) — bila white, sad dark glass */
.upute-container {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
  color: var(--text-hi);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.upute-header {
  background: linear-gradient(135deg, rgba(40, 60, 140, 0.45) 0%, rgba(60, 90, 175, 0.35) 100%) !important;
  border-bottom: 1px solid var(--glass-border) !important;
  color: #fff !important;
}
.upute-body { color: var(--text-hi); }
.upute-section h4 {
  color: var(--blue-bright) !important;
  border-bottom: 1px solid rgba(106, 172, 238, 0.30) !important;
}
.upute-section li strong { color: var(--text-hi) !important; }

/* Upute callouts (warning/danger/tip) — semantic glass */
.upute-warning {
  background: rgba(233, 181, 102, 0.08) !important;
  border-left: 4px solid var(--warning) !important;
  border-radius: 0 8px 8px 0;
  color: var(--text-hi);
}
.upute-warning-title { color: var(--warning) !important; }
.upute-danger {
  background: rgba(176, 126, 138, 0.10) !important;
  border-left: 4px solid var(--danger) !important;
  border-radius: 0 8px 8px 0;
  color: var(--text-hi);
}
.upute-danger-title { color: var(--danger) !important; }
.upute-tip {
  background: rgba(126, 207, 176, 0.08) !important;
  border-left: 4px solid var(--success) !important;
  border-radius: 0 8px 8px 0;
  color: var(--text-hi);
}
.upute-tip-title { color: var(--success) !important; }

.upute-editor {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border: 1px solid var(--glass-border) !important;
}

/* Quick action gumbi (kuhinja shortcut buttons) */
.quick-action-btn {
  background: rgba(12, 40, 100, 0.20) !important;
  border: 2px solid var(--glass-border) !important;
  color: var(--text-hi) !important;
  font-weight: 600;
}
.quick-action-btn:hover {
  background: rgba(70, 130, 220, 0.15) !important;
  border-color: var(--glass-border-strong) !important;
}

/* Language toggle */
.lang-btn {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.75) !important;
}
.lang-btn:hover { background: rgba(255, 255, 255, 0.15) !important; color: #fff !important; }
.lang-btn.active {
  background: rgba(255, 255, 255, 0.20) !important;
  color: #fff !important;
}

/* VNC zona (dark already, OK ali force consistency) */
.vnc-toolbar-title { color: var(--text-hi) !important; }
.vnc-placeholder    { color: var(--text-mid) !important; }
.vnc-placeholder h3 { color: var(--text-hi) !important; }

/* ============================================
   OVJERA RN — module-specific (.ovjera-*)
   Razlog: cijeli desni panel + kartice bile su bijele
   ============================================ */
.ovjera-lista-panel {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
  color: var(--text-hi);
  border-radius: var(--radius-sm);
}
.ovjera-header {
  background: linear-gradient(135deg, rgba(40, 60, 140, 0.45) 0%, rgba(60, 90, 175, 0.35) 100%) !important;
  border-bottom: 1px solid var(--glass-border) !important;
  color: #fff !important;
}
.ovjera-header h2 { color: #fff !important; }
.ovjera-header-actions button {
  background: rgba(255, 255, 255, 0.15) !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  color: #fff !important;
}
.ovjera-header-actions button:hover { background: rgba(255, 255, 255, 0.25) !important; }
.ovjera-filters {
  background: var(--remap-grey-bg) !important;
  border-bottom: 1px solid var(--glass-border) !important;
}
.ovjera-filter-btn {
  background: rgba(12, 40, 100, 0.20) !important;
  color: var(--text-mid) !important;
  border: 1px solid var(--glass-border) !important;
  font-weight: 600;
}
.ovjera-filter-btn:hover { background: rgba(70, 130, 220, 0.10) !important; color: var(--text-hi) !important; }
.ovjera-filter-btn.active {
  background: rgba(70, 130, 220, 0.20) !important;
  color: var(--blue-bright) !important;
  border-color: var(--blue) !important;
}
.ovjera-filter-count { background: rgba(0, 0, 0, 0.30) !important; color: inherit; }
.ovjera-filter-btn.active .ovjera-filter-count { background: rgba(106, 172, 238, 0.40) !important; color: #fff; }
.ovjera-lista::-webkit-scrollbar-track { background: rgba(8, 22, 55, 0.30) !important; }
.ovjera-lista::-webkit-scrollbar-thumb { background: rgba(106, 172, 238, 0.30) !important; }
.ovjera-rn-card {
  background: rgba(70, 130, 220, 0.04) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}
.ovjera-rn-card:hover {
  background: rgba(70, 130, 220, 0.08) !important;
  border-color: var(--glass-border-strong) !important;
}
.ovjera-rn-card.selected {
  background: rgba(106, 172, 238, 0.10) !important;
  border-color: var(--blue) !important;
  box-shadow: 0 0 12px rgba(106, 172, 238, 0.20);
}
.ovjera-rn-number { color: var(--blue-bright) !important; font-weight: 700; }

.ovjera-detalji-panel {
  /* container — transparentno, sadržaj ima vlastite kartice */
}
.ovjera-detalji-panel::-webkit-scrollbar-track { background: rgba(8, 22, 55, 0.30) !important; }
.ovjera-detalji-panel::-webkit-scrollbar-thumb { background: rgba(106, 172, 238, 0.30) !important; }
.ovjera-detalji-placeholder {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-lo) !important;
  box-shadow: none !important;
}

/* Ovjera kartice (sadržaj desnog panela) */
.ovjera-card {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
  color: var(--text-hi);
}

/* Card title bannere (info/spec/pdf/approval/history) — keep semantic boju ali stišano */
.ovjera-card-title {
  background: rgba(70, 90, 100, 0.40) !important;
  color: #fff !important;
}
.ovjera-card-title.info     { background: linear-gradient(135deg, rgba(40, 60, 140, 0.55) 0%, rgba(60, 90, 175, 0.40) 100%) !important; }
.ovjera-card-title.spec     { background: linear-gradient(135deg, rgba(0, 137, 123, 0.50) 0%, rgba(0, 105, 92, 0.40) 100%) !important; }
.ovjera-card-title.pdf      { background: linear-gradient(135deg, rgba(0, 105, 92, 0.50) 0%, rgba(0, 80, 70, 0.40) 100%) !important; }
.ovjera-card-title.approval { background: linear-gradient(135deg, rgba(230, 80, 0, 0.45) 0%, rgba(180, 60, 0, 0.35) 100%) !important; }
.ovjera-card-title.history  { background: linear-gradient(135deg, rgba(70, 90, 100, 0.50) 0%, rgba(50, 70, 80, 0.40) 100%) !important; }

/* Info grid u ovjera kartici */
.ovjera-info-label { color: var(--text-lo) !important; }
.ovjera-info-value { color: var(--text-hi) !important; }

/* Specifikacija (slojevi, dimenzije) — bila white kartica */
.ovjera-spec-section {
  background: rgba(8, 22, 55, 0.55) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
}
.ovjera-spec-section-title {
  background: linear-gradient(135deg, rgba(0, 137, 123, 0.45) 0%, rgba(0, 105, 92, 0.35) 100%) !important;
  color: #fff !important;
}
.ovjera-spec-row { border-bottom: 1px solid var(--grid) !important; }
.ovjera-spec-row .label { color: var(--text-mid) !important; }
.ovjera-spec-row .value { color: var(--text-hi) !important; }
.ovjera-spec-row.highlight { background: rgba(233, 181, 102, 0.10) !important; }
.ovjera-spec-row.highlight .label { color: var(--warning) !important; }
.ovjera-spec-row.highlight .value { color: var(--blue-bright) !important; }

/* Layers table (slojevi papira) */
.ovjera-layers-table th {
  background: rgba(0, 137, 123, 0.18) !important;
  color: #80cbc4 !important;
  border-bottom: 1px solid rgba(0, 137, 123, 0.40) !important;
}
.ovjera-layers-table td {
  border-bottom: 1px solid var(--grid) !important;
  color: var(--text-mid);
}
.ovjera-layers-table td:first-child { color: #80cbc4 !important; font-weight: 700; }
.ovjera-layers-table tr:hover { background: rgba(0, 137, 123, 0.08) !important; }
.ovjera-layers-table tr:hover td { color: var(--text-hi); }

/* Color chips (boje tiska) */
.ovjera-color-chip {
  background: rgba(126, 207, 176, 0.15) !important;
  color: var(--success) !important;
  border: 1px solid rgba(126, 207, 176, 0.35) !important;
}

/* PDF frame & placeholder */
.ovjera-pdf-frame { background: rgba(8, 22, 55, 0.65); border-color: var(--glass-border) !important; }
.ovjera-pdf-placeholder {
  background: var(--remap-grey-bg) !important;
  color: var(--text-mid) !important;
  border: 1px solid var(--glass-border);
}
.ovjera-pdf-link { color: var(--blue) !important; }
.ovjera-pdf-link:hover { color: var(--blue-bright) !important; }
.ovjera-pdf-open-btn {
  background: linear-gradient(135deg, rgba(106, 172, 238, 0.30) 0%, rgba(70, 130, 220, 0.45) 100%) !important;
  color: var(--blue-bright) !important;
  border: 1px solid var(--blue) !important;
}
.ovjera-pdf-open-btn:hover {
  background: linear-gradient(135deg, rgba(106, 172, 238, 0.45) 0%, rgba(70, 130, 220, 0.60) 100%) !important;
  color: #fff !important;
}

/* Approval info / warning / result boxes (ODOBRENO/ODBIJENO history) */
.ovjera-approval-info {
  background: var(--remap-grey-bg) !important;
  border: 1px solid var(--glass-border);
  color: var(--text-hi);
}
.ovjera-approval-info .creator { color: var(--text-hi) !important; }
.ovjera-approval-warning {
  background: rgba(233, 181, 102, 0.10) !important;
  border: 1px solid rgba(233, 181, 102, 0.30) !important;
  color: var(--warning) !important;
}
.ovjera-result-box.odobreno {
  background: rgba(126, 207, 176, 0.10) !important;
  border: 1px solid rgba(126, 207, 176, 0.30) !important;
  color: var(--success) !important;
}
.ovjera-result-box.odbijeno {
  background: rgba(176, 126, 138, 0.10) !important;
  border: 1px solid rgba(176, 126, 138, 0.30) !important;
  color: var(--danger) !important;
}
.ovjera-result-box strong { color: var(--text-hi) !important; }

/* Approval action buttons (Odobri/Odbij) — keep bright semantic boju */
.ovjera-btn-odobri {
  background: linear-gradient(135deg, rgba(126, 207, 176, 0.50) 0%, rgba(80, 160, 120, 0.65) 100%) !important;
  border: 1px solid rgba(126, 207, 176, 0.55) !important;
  color: #fff !important;
}
.ovjera-btn-odobri:hover {
  background: linear-gradient(135deg, rgba(126, 207, 176, 0.70) 0%, rgba(80, 160, 120, 0.85) 100%) !important;
}
.ovjera-btn-odobri:disabled { opacity: 0.5; }
.ovjera-btn-odbij {
  background: linear-gradient(135deg, rgba(176, 126, 138, 0.50) 0%, rgba(140, 80, 100, 0.65) 100%) !important;
  border: 1px solid rgba(176, 126, 138, 0.55) !important;
  color: #fff !important;
}
.ovjera-btn-odbij:hover {
  background: linear-gradient(135deg, rgba(176, 126, 138, 0.70) 0%, rgba(140, 80, 100, 0.85) 100%) !important;
}
.ovjera-btn-resubmit {
  background: linear-gradient(135deg, rgba(233, 181, 102, 0.50) 0%, rgba(200, 130, 60, 0.65) 100%) !important;
  border: 1px solid rgba(233, 181, 102, 0.55) !important;
  color: #fff !important;
}

/* Reject area (textarea) */
.ovjera-reject-area textarea {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}
.ovjera-reject-area textarea:focus { border-color: var(--danger) !important; }
.ovjera-reject-label { color: var(--danger) !important; }

/* RN linija pillovi (NLI/WH) */
.ovjera-rn-linija.wh  { background: rgba(126, 207, 176, 0.40) !important; color: #fff !important; }
.ovjera-rn-linija.nli { background: rgba(233, 130, 60, 0.40) !important; color: #fff !important; }

/* ============================================
   PVND — module-specific (data-table, row-wh/nli, line-badge, main-tab, month-tab)
   Konvencija: W&H = ŽUTI tint (#fffde7 originalno) / NLI = ZELENI tint (#e8f5e9)
   Force light text na svim row-states (idle/hover) za citljivost.
   ============================================ */

/* PVND containers — bijeli panel-i koji wrapaju tabove (.main-tabs, .month-tabs) */
.main-tabs,
.month-tabs {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
  border-radius: var(--radius-sm);
}

/* PVND tabovi (Pregled proizvodnje / Plan proizvodnje) + month buttons (1-12, Godišnji) */
.main-tab,
.month-tab {
  background: rgba(70, 130, 220, 0.10) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-mid) !important;
  border-radius: 8px !important;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}
.main-tab:hover,
.month-tab:hover {
  background: rgba(70, 130, 220, 0.18) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border-strong) !important;
}
.main-tab.active,
.month-tab.active {
  background: linear-gradient(135deg, rgba(106, 172, 238, 0.45) 0%, rgba(70, 130, 220, 0.55) 100%) !important;
  color: #fff !important;
  border-color: var(--blue) !important;
  box-shadow: 0 0 14px rgba(106, 172, 238, 0.30);
}
/* Plan-tab .active (purple — ostavlja semantic za "Plan proizvodnje") */
.main-tab.plan-tab.active {
  background: linear-gradient(135deg, rgba(180, 100, 200, 0.50) 0%, rgba(150, 70, 175, 0.65) 100%) !important;
  border-color: rgba(180, 100, 200, 0.70) !important;
  box-shadow: 0 0 14px rgba(180, 100, 200, 0.30);
}
/* Month-tab.yearly (Godišnji — indigo gradient) */
.month-tab.yearly {
  background: linear-gradient(135deg, rgba(102, 126, 234, 0.40) 0%, rgba(118, 75, 162, 0.45) 100%) !important;
  color: #fff !important;
  border-color: rgba(102, 126, 234, 0.55) !important;
}

/* Data table (Proizvodnja po danima) */
.data-table {
  background: rgba(8, 22, 55, 0.55) !important;
  box-shadow: none !important;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.data-table th {
  background: rgba(70, 90, 100, 0.45) !important;
  color: var(--text-hi) !important;
  border-bottom: 1px solid var(--glass-border-strong);
}
.data-table td {
  border-bottom: 1px solid var(--grid) !important;
  color: var(--text-mid);
}
.data-table tr:hover { background: rgba(70, 130, 220, 0.08) !important; }
.data-table tr:hover td { color: var(--text-hi); }

/* PVND row tinte — PRIGUŠENE BOJE za dark temu, light text, jasan hover.
   Konvencija: W&H = ŽUTI tint / NLI = ZELENI tint
   Idle: tamno-tinted (alpha 0.12) → boja vidljiva ali nije jarka
   Hover: tinta se pojača (alpha 0.28) + suptilan border-left akcent + bijeli text */

/* PVND row tinte — solidne tamne boje (NE alpha) jer pvnd.html ima `.row-wh { background: #fffde7 }`
   na TR koji se mijesa s alpha TD bg = pale yellow rezultat.
   RJEŠENJE: TR bg = transparent (forsirano) + TD bg = solidna tamna boja s blagim tint-om linije.
   Boje: amber/olive za W&H, forest/teal za NLI — dovoljno tamne da svijetli tekst bude čitljiv. */

/* W&H redovi — solid dark amber */
.data-table tr.row-wh { background: transparent !important; }
.data-table tr.row-wh td {
  background: #2a2210 !important;                   /* dark olive/amber, opaque */
  color: var(--text-hi) !important;
  transition: background 0.15s ease, color 0.15s ease;
}
.data-table tr.row-wh td * { color: var(--text-hi) !important; }
.data-table tr.row-wh td a { color: #ffd54f !important; }
.data-table tr.row-wh:hover td,
.data-table tr.row-wh:hover td * {
  background: #5a4520 !important;                   /* brighter amber za hover */
  color: #fff !important;
  font-weight: 600;
}
.data-table tr.row-wh td:first-child { box-shadow: inset 3px 0 0 0 rgba(255, 200, 80, 0.55); }
.data-table tr.row-wh:hover td:first-child { box-shadow: inset 4px 0 0 0 #ffd54f !important; }

/* NLI redovi — solid dark forest/teal */
.data-table tr.row-nli { background: transparent !important; }
.data-table tr.row-nli td {
  background: #112820 !important;                   /* dark forest, opaque */
  color: var(--text-hi) !important;
  transition: background 0.15s ease, color 0.15s ease;
}
.data-table tr.row-nli td * { color: var(--text-hi) !important; }
.data-table tr.row-nli td a { color: #81c784 !important; }
.data-table tr.row-nli:hover td,
.data-table tr.row-nli:hover td * {
  background: #2a4a38 !important;                   /* brighter forest za hover */
  color: #fff !important;
  font-weight: 600;
}
.data-table tr.row-nli td:first-child { box-shadow: inset 3px 0 0 0 rgba(120, 200, 150, 0.55); }
.data-table tr.row-nli:hover td:first-child { box-shadow: inset 4px 0 0 0 #81c784 !important; }

/* Day separator (group header — npr. "9 RN, 19 paleta") — neutralna tamna pozadina */
.data-table tr.day-separator {
  background: rgba(8, 22, 55, 0.85) !important;
  border-top: 1px solid var(--glass-border-strong) !important;
  cursor: pointer;
  transition: background 0.15s ease;
}
.data-table tr.day-separator td {
  color: var(--text-hi) !important;
  font-weight: 700;
  border-top: 1px solid var(--glass-border-strong) !important;
}
.data-table tr.day-separator:hover {
  background: rgba(70, 130, 220, 0.18) !important;
}
.data-table tr.day-separator:hover td { color: #fff !important; }

/* Shift group header (sekundarni naslovi unutar dnevnog detalja) */
.shift-group-header {
  background: linear-gradient(135deg, rgba(40, 60, 140, 0.45) 0%, rgba(60, 90, 175, 0.35) 100%) !important;
  color: #fff !important;
}
.shift-group-header td { color: #fff !important; font-weight: 700; }

/* RN badge (broj radnog naloga u tablici) */
.rn-badge {
  background: rgba(106, 172, 238, 0.20) !important;
  color: var(--blue-bright) !important;
  border: 1px solid rgba(106, 172, 238, 0.35);
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.85em;
  font-weight: 700;
}

/* Plan input (Plan proizvodnje tab — input za uređivanje plana) */
.plan-input {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
  font-family: 'Consolas', monospace;
}
.plan-input:focus { border-color: #b264c8 !important; box-shadow: 0 0 0 2px rgba(180, 100, 200, 0.20); }

/* Line badge pillovi — keep bright semantic boja (W&H=zeleni badge, NLI=narančasti badge — to je osnovna Carta konvencija za badge, neovisno od PVND row tint-a) */
.line-badge.wh  {
  background: rgba(126, 207, 176, 0.25) !important;
  color: #c4ecd9 !important;
  border: 1px solid rgba(126, 207, 176, 0.50) !important;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.78em;
  font-weight: 700;
}
.line-badge.nli {
  background: rgba(233, 130, 60, 0.25) !important;
  color: #ffd9bf !important;
  border: 1px solid rgba(233, 130, 60, 0.50) !important;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.78em;
  font-weight: 700;
}

/* PVND KPI percentages u kartici */
.kpi-percent.good    { background: rgba(126, 207, 176, 0.40) !important; color: #fff; }
.kpi-percent.warning { background: rgba(233, 181, 102, 0.40) !important; color: #fff; }
.kpi-percent.bad     { background: rgba(176, 126, 138, 0.40) !important; color: #fff; }

/* PVND modal header gradient (purple #7b1fa2/#9c27b0 — već globalno) */

/* ============================================
   POSTAVKE — module-specific (.settings-*, .roles-table, .email-*, .perm-*, .checkbox-*)
   ============================================ */

/* Tab strip */
.settings-tabs {
  border-bottom: 1px solid var(--glass-border) !important;
  display: flex;
  gap: 4px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.settings-tab {
  background: rgba(70, 130, 220, 0.06) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-mid) !important;
  border-radius: 8px 8px 0 0 !important;
  padding: 10px 18px !important;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}
.settings-tab:hover {
  background: rgba(70, 130, 220, 0.12) !important;
  color: var(--text-hi) !important;
}
.settings-tab.active {
  background: rgba(70, 130, 220, 0.20) !important;
  color: var(--blue-bright) !important;
  border-color: var(--blue) !important;
  border-bottom-color: transparent !important;
}

/* Settings panels (one panel per tab) */
.settings-panel { display: none; }
.settings-panel.active { display: block; }

/* Setting item (each setting = mini-card) */
.setting-item {
  background: var(--remap-grey-bg) !important;
  border: 1px solid var(--glass-border) !important;
  color: var(--text-hi);
  border-radius: var(--radius-sm);
}
.setting-item label { color: var(--text-mid) !important; font-weight: 600; }
.setting-item input,
.setting-item select,
.setting-item textarea {
  background: var(--bg-input) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border) !important;
}
.setting-item input:focus,
.setting-item select:focus,
.setting-item textarea:focus { border-color: var(--blue) !important; }
.setting-item .hint { color: var(--text-lo) !important; }

/* Roles table & email table */
.roles-table,
.email-table {
  background: rgba(8, 22, 55, 0.55);
  width: 100%;
  border-collapse: collapse;
}
.roles-table th,
.email-table th {
  background: rgba(40, 60, 140, 0.45) !important;
  color: var(--text-hi) !important;
  border-bottom: 1px solid var(--glass-border-strong);
  padding: 12px 10px;
}
.roles-table td,
.email-table td {
  border-bottom: 1px solid var(--grid) !important;
  color: var(--text-mid);
  padding: 10px;
}
.roles-table tr:hover,
.email-table tr:hover { background: rgba(70, 130, 220, 0.06) !important; }
.roles-table tr:hover td,
.email-table tr:hover td { color: var(--text-hi); }

/* Permission badges */
.permissions-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.perm-badge {
  background: rgba(106, 172, 238, 0.15) !important;
  color: var(--blue-bright) !important;
  border: 1px solid rgba(106, 172, 238, 0.30);
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 600;
}

/* Action buttons (Edit/Delete/Test) */
.btn-edit {
  background: rgba(106, 172, 238, 0.15) !important;
  color: var(--blue-bright) !important;
  border: 1px solid rgba(106, 172, 238, 0.30) !important;
}
.btn-edit:hover { background: rgba(106, 172, 238, 0.25) !important; }
.btn-delete {
  background: rgba(176, 126, 138, 0.15) !important;
  color: var(--danger) !important;
  border: 1px solid rgba(176, 126, 138, 0.30) !important;
}
.btn-delete:hover { background: rgba(176, 126, 138, 0.25) !important; }
.btn-test {
  background: rgba(126, 207, 176, 0.15) !important;
  color: var(--success) !important;
  border: 1px solid rgba(126, 207, 176, 0.30) !important;
}
.btn-test:hover { background: rgba(126, 207, 176, 0.25) !important; }

/* Checkbox grid (permissions in role modal) */
.checkbox-grid {
  background: var(--remap-grey-bg) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--radius-sm);
  color: var(--text-hi);
}
.checkbox-item { color: var(--text-hi); }
.checkbox-item input { accent-color: var(--blue); }

/* Email status badges */
.email-status-badge.active   { background: rgba(126, 207, 176, 0.18) !important; color: var(--success) !important; border: 1px solid rgba(126, 207, 176, 0.40); }
.email-status-badge.inactive { background: rgba(176, 126, 138, 0.18) !important; color: var(--danger) !important;  border: 1px solid rgba(176, 126, 138, 0.40); }

/* Category badge */
.category-badge {
  background: rgba(106, 172, 238, 0.15) !important;
  color: var(--blue) !important;
  border: 1px solid rgba(106, 172, 238, 0.30);
}

/* Email info box (warning yellow) */
.email-info-box {
  background: rgba(233, 181, 102, 0.10) !important;
  border: 1px solid rgba(233, 181, 102, 0.35) !important;
  color: var(--text-hi);
}
.email-info-box h4 { color: var(--warning) !important; }
.email-info-box p  { color: var(--text-mid) !important; }

/* Test result panel */
.test-result.success { background: rgba(126, 207, 176, 0.12) !important; border: 1px solid rgba(126, 207, 176, 0.35) !important; color: var(--success) !important; }
.test-result.error   { background: rgba(176, 126, 138, 0.12) !important; border: 1px solid rgba(176, 126, 138, 0.35) !important; color: var(--danger) !important; }

/* Inline card-header gradient banneri u Plan produktivnosti tabu (#fff3e0 → muted orange,
   #fce4ec → muted pink, #f8f9fa → muted blue) — već globalno overrideano kroz
   [style*=...] selektore, ali force za card-header specifično */
.card-header[style*="background: #fff3e0"],
.card-header[style*="background:#fff3e0"] {
  background: linear-gradient(135deg, rgba(233, 181, 102, 0.18) 0%, rgba(180, 100, 60, 0.12) 100%) !important;
  color: var(--warning) !important;
}
.card-header[style*="background: #fce4ec"],
.card-header[style*="background:#fce4ec"] {
  background: linear-gradient(135deg, rgba(219, 123, 160, 0.18) 0%, rgba(180, 90, 130, 0.12) 100%) !important;
  color: #db7ba0 !important;
}
.card-header[style*="background: #f8f9fa"],
.card-header[style*="background:#f8f9fa"] {
  background: linear-gradient(135deg, rgba(70, 130, 220, 0.12) 0%, rgba(40, 60, 140, 0.06) 100%) !important;
  color: var(--text-hi) !important;
}

/* ============================================
   BOTTOMER-VODITELJ — preostali .kpi-card patternovi
   Razlog: bottomer ima vlastiti `.kpi-card { background: white }` koji nakon
   strip-a base klasa i dalje postoji (jer kpi-card nije base). Force override.
   ============================================ */
#app-content .kpi-card {
  background: linear-gradient(135deg, rgba(70, 130, 220, 0.18) 0%, rgba(40, 60, 140, 0.25) 100%) !important;
  color: var(--text-hi) !important;
  box-shadow: none !important;
  border: 1px solid var(--glass-border-strong) !important;
}
#app-content .kpi-card .kpi-value,
#app-content .kpi-card .value { color: var(--text-hi) !important; }
#app-content .kpi-card .kpi-label,
#app-content .kpi-card .label { color: rgba(255, 255, 255, 0.85) !important; }
#app-content .kpi-card.success { border-left: 4px solid var(--success) !important; }
#app-content .kpi-card.warning { border-left: 4px solid var(--warning) !important; }
#app-content .kpi-card.danger  { border-left: 4px solid var(--danger) !important; }
#app-content .kpi-card.info    { border-left: 4px solid var(--blue) !important; }

/* Bottomer-voditelj specific KPI cards (.aktivni-*, statistike-mjeseca) */
#app-content [id*="statistike"] .kpi-card,
#app-content .kpi-grid .kpi-card {
  background: rgba(8, 22, 55, 0.65) !important;
  border-left: 3px solid var(--blue) !important;
}

/* PVND KPI varijante (NLI=narančasta, WH=zelena, Total=plava, Plan=ljubičasta) — vrati color-coded gradijente jer ih je generic kpi-card override "potonuo" */
#app-content .kpi-card.nli {
  background: linear-gradient(135deg, rgba(233, 130, 60, 0.40) 0%, rgba(255, 160, 80, 0.50) 100%) !important;
  color: #fff !important;
  border: 1px solid rgba(233, 130, 60, 0.55) !important;
  border-left: 3px solid #ff9800 !important;
}
#app-content .kpi-card.wh {
  background: linear-gradient(135deg, rgba(80, 160, 120, 0.40) 0%, rgba(126, 207, 176, 0.50) 100%) !important;
  color: #fff !important;
  border: 1px solid rgba(126, 207, 176, 0.55) !important;
  border-left: 3px solid #4caf50 !important;
}
#app-content .kpi-card.total {
  background: linear-gradient(135deg, rgba(40, 100, 200, 0.45) 0%, rgba(70, 150, 240, 0.55) 100%) !important;
  color: #fff !important;
  border: 1px solid rgba(106, 172, 238, 0.60) !important;
  border-left: 3px solid #42a5f5 !important;
}
#app-content .kpi-card.plan {
  background: linear-gradient(135deg, rgba(150, 70, 175, 0.45) 0%, rgba(180, 100, 200, 0.55) 100%) !important;
  color: #fff !important;
  border: 1px solid rgba(180, 100, 200, 0.60) !important;
  border-left: 3px solid #9c27b0 !important;
}
#app-content .kpi-card.nli .kpi-value,
#app-content .kpi-card.wh .kpi-value,
#app-content .kpi-card.total .kpi-value,
#app-content .kpi-card.plan .kpi-value { color: #fff !important; }
#app-content .kpi-card.nli .kpi-label,
#app-content .kpi-card.wh .kpi-label,
#app-content .kpi-card.total .kpi-label,
#app-content .kpi-card.plan .kpi-label { color: rgba(255, 255, 255, 0.92) !important; }
#app-content .kpi-card .kpi-plan { color: rgba(255, 255, 255, 0.85); border-top: 1px solid rgba(255, 255, 255, 0.30); }

/* Section card (PVND glavni panel s tablicom) */
.section-card {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: none !important;
  color: var(--text-hi);
}
.section-header {
  background: linear-gradient(135deg, rgba(70, 90, 100, 0.50) 0%, rgba(50, 70, 80, 0.40) 100%) !important;
  color: #fff !important;
}
.section-header.plan {
  background: linear-gradient(135deg, rgba(150, 70, 175, 0.50) 0%, rgba(180, 100, 200, 0.40) 100%) !important;
}

/* PVND data-table total-row (sažetak na dnu) */
.data-table .total-row {
  background: rgba(106, 172, 238, 0.18) !important;
  font-weight: 700;
}
.data-table .total-row td { color: var(--blue-bright) !important; }

/* ============================================
   PVND — yellow alternating rows (proizvodnja po danima)
   Boja je inline #fffde7/#fff9c4 pattern za "ima Glavni RN" status
   ============================================ */
[style*="background:#fffde7"], [style*="background: #fffde7"] {
  background: rgba(233, 181, 102, 0.05) !important;
  color: var(--text-hi) !important;
}
[style*="background:#fff9c4"], [style*="background: #fff9c4"] {
  background: rgba(233, 181, 102, 0.08) !important;
}
[style*="background:#e8f4fc"], [style*="background: #e8f4fc"] {
  background: rgba(106, 172, 238, 0.05) !important;
  color: var(--text-hi) !important;
}
[style*="background:#d6ebf9"], [style*="background: #d6ebf9"] {
  background: rgba(106, 172, 238, 0.08) !important;
}

/* Tuber current card (cyan gradient s aktivnim RN) — tone down */
.tuber-current-card {
  background: linear-gradient(135deg, rgba(60, 160, 175, 0.30) 0%, rgba(40, 180, 150, 0.25) 100%) !important;
  border: 1px solid rgba(60, 160, 175, 0.45) !important;
  color: var(--text-hi) !important;
}
.tuber-current-card .card-header {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
  color: #fff !important;
  background: transparent !important;
}
.tuber-info-value { color: #fff; }
.tuber-production-form {
  background: rgba(0, 5, 18, 0.40) !important;
  border: 1px solid var(--glass-border);
}
.tuber-production-form label { color: rgba(255, 255, 255, 0.85) !important; }
.tuber-production-form input {
  background: rgba(8, 22, 55, 0.85) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border-strong) !important;
}

/* Materijal skener section (papir scanning) — dark grey, OK ali force readability */
.materijal-skener-section {
  background: linear-gradient(135deg, rgba(70, 110, 130, 0.40) 0%, rgba(60, 100, 120, 0.30) 100%) !important;
  border: 1px solid var(--glass-border);
  color: var(--text-hi) !important;
}
.materijal-sloj {
  background: rgba(0, 5, 18, 0.30) !important;
  border: 1px solid var(--glass-border);
}
.materijal-sloj-title { color: var(--text-hi); }
.materijal-expected {
  background: rgba(0, 0, 0, 0.30) !important;
  color: var(--text-hi) !important;
  border: 1px solid var(--glass-border);
}
.materijal-input-row input {
  background: rgba(8, 22, 55, 0.85) !important;
  color: var(--text-hi) !important;
  border-color: var(--glass-border-strong) !important;
}
.materijal-status.pending  { background: rgba(120, 144, 156, 0.40) !important; color: var(--text-hi); }
.materijal-status.valid    { background: rgba(126, 207, 176, 0.50) !important; color: #fff; }
.materijal-status.warning  { background: rgba(233, 181, 102, 0.50) !important; color: #fff; }
.materijal-status.error    { background: rgba(176, 126, 138, 0.55) !important; color: #fff; }
.materijal-info { color: rgba(255, 255, 255, 0.85); }

/* Skidanje summary (suma materijala koji se skida — tamno-plavi gradient) */
.skidanje-summary {
  background: linear-gradient(135deg, rgba(40, 60, 140, 0.45) 0%, rgba(50, 80, 160, 0.35) 100%) !important;
  border: 1px solid var(--glass-border-strong) !important;
  color: var(--text-hi);
}
.skidanje-item {
  background: rgba(0, 5, 18, 0.40) !important;
  border: 1px solid var(--glass-border);
}
.skidanje-item-label { color: rgba(255, 255, 255, 0.75); }
.skidanje-item-value { color: var(--text-hi); }

/* Status badges (duplicirano u tuber.html, override-amo s !important) */
.status-badge { padding: 4px 12px; border-radius: 12px; font-size: 0.85em; font-weight: 700; }
.status-badge.status-pending,
.status-pending {
  background: rgba(233, 181, 102, 0.12) !important;
  color: var(--warning) !important;
  border: 1px solid rgba(233, 181, 102, 0.30) !important;
}
.status-badge.status-active,
.status-active {
  background: rgba(106, 172, 238, 0.12) !important;
  color: var(--blue) !important;
  border: 1px solid rgba(106, 172, 238, 0.30) !important;
}
.status-badge.status-completed,
.status-completed {
  background: rgba(126, 207, 176, 0.12) !important;
  color: var(--success) !important;
  border: 1px solid rgba(126, 207, 176, 0.30) !important;
}
.status-badge.status-paused,
.status-paused {
  background: rgba(176, 126, 138, 0.12) !important;
  color: var(--danger) !important;
  border: 1px solid rgba(176, 126, 138, 0.30) !important;
}

/* Info-box-print (light cyan gradient inside reports) */
.info-box-print {
  background: linear-gradient(135deg, rgba(60, 160, 175, 0.10) 0%, rgba(40, 180, 200, 0.06) 100%) !important;
  border-left: 4px solid rgba(60, 180, 200, 0.6) !important;
  color: var(--text-hi);
}
.info-label-compact { color: var(--text-lo) !important; }
.info-value-compact { color: var(--text-hi) !important; }

/* Section-header-print (teal banner) */
.section-header-print {
  background: linear-gradient(135deg, rgba(60, 160, 175, 0.30) 0%, rgba(40, 140, 155, 0.20) 100%) !important;
  color: #fff !important;
  border: 1px solid rgba(60, 160, 175, 0.45);
}

/* Data table (in report views) */
.data-table {
  background: rgba(8, 22, 55, 0.55) !important;
  box-shadow: none !important;
  border: 1px solid var(--glass-border);
}
.data-table tr { border-bottom: 1px solid var(--grid) !important; }
.data-table td { color: var(--text-mid); }
.data-table td:first-child {
  background: rgba(70, 130, 220, 0.06) !important;
  color: var(--text-hi) !important;
  font-weight: 600;
}
.highlight-cell {
  background: rgba(233, 181, 102, 0.15) !important;
  color: var(--warning) !important;
  font-weight: 700;
}

/* Role pregled section (tamno plavi gradient za pregled rola) */
.role-pregled-section {
  background: linear-gradient(135deg, rgba(30, 58, 95, 0.40) 0%, rgba(45, 90, 135, 0.30) 100%) !important;
  border: 1px solid var(--glass-border-strong) !important;
  color: var(--text-hi);
}
.filter-checkbox {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid var(--glass-border);
  color: var(--text-hi);
}
.filter-checkbox:hover { background: rgba(255, 255, 255, 0.15) !important; }
