/* ═══════════════════════════════════════════════
   WineryTracker — Site CSS  (Hotel-Cash style)
   Primary: #1565C0   BG: #f5f6fa
═══════════════════════════════════════════════ */

:root {
  --primary:       #1565C0;
  --primary-dark:  #0D47A1;
  --primary-light: #E3F2FD;
  --sidebar-bg:    #ffffff;
  --sidebar-text:  #555;
  --sidebar-active-bg:   #E3F2FD;
  --sidebar-active-text: #1565C0;
  --page-bg:       #f5f6fa;
  --panel-bg:      #ffffff;
  --line:          #e8e8e8;
  --heading:       #1a1a2e;
  --text:          #333;
  --muted:         #888;
  --green:         #2E7D32;
  --danger:        #E53935;
  --warning:       #F57C00;
  --radius:        8px;
  --shadow:        0 2px 8px rgba(0,0,0,0.07);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: "Segoe UI", Arial, Helvetica, sans-serif;
  background: var(--page-bg);
  color: var(--text);
  font-size: 14px;
}

a { color: var(--primary); text-decoration: none; }
a:hover { color: var(--primary-dark); }
h1,h2,h3,h4,h5,h6 { color: var(--heading); font-weight: 600; margin: 0; }
p { color: var(--muted); line-height: 1.5; margin: 0; }

/* ── Skip link ── */
.skip-link {
  position: absolute; left: -999px; top: -999px;
  background: var(--primary); color: #fff; padding: 8px 16px;
  border-radius: var(--radius); z-index: 9999; font-size: 13px;
}
.skip-link:focus { left: 12px; top: 12px; }

/* ════════════════════════════════
   SHELL — sidebar + main
════════════════════════════════ */
.enterprise-shell {
  display: flex;
  min-height: 100vh;
}

/* ── Sidebar ── */
.enterprise-sidebar {
  width: 230px;
  background: var(--sidebar-bg);
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 0; left: 0; bottom: 0;
  z-index: 100;
  overflow-y: auto;
}

.enterprise-brand-wrap {
  padding: 20px 18px 16px;
  border-bottom: 1px solid var(--line);
}

.enterprise-brand-icon {
  width: 40px; height: 40px;
  background: var(--primary);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 20px;
  margin-bottom: 10px;
}

.enterprise-brand-name {
  font-size: 15px; font-weight: 700;
  color: var(--heading); line-height: 1.2;
}

.enterprise-brand-sub {
  font-size: 11px; color: var(--muted); margin-top: 2px;
}

.enterprise-brand-status {
  font-size: 11px; color: #3B6D11;
  margin-top: 5px; display: flex; align-items: center; gap: 5px;
}

.enterprise-brand-status::before {
  content: ''; width: 6px; height: 6px;
  border-radius: 50%; background: #639922; display: inline-block;
}

/* ── Sidebar Nav ── */
.enterprise-nav-wrap { padding: 10px 10px; flex: 1; }

/* hide old horizontal nav structure */
.enterprise-header { display: none !important; }

.enterprise-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.enterprise-nav-menu { list-style: none; }
.enterprise-nav-menu summary { list-style: none; }
.enterprise-nav-menu summary::-webkit-details-marker { display: none; }

.enterprise-nav-link,
.enterprise-nav-top-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: var(--radius);
  font-size: 13px;
  color: var(--sidebar-text);
  cursor: pointer;
  border: none;
  background: none;
  width: 100%;
  text-align: left;
  transition: background 0.15s, color 0.15s;
  text-decoration: none;
}

.enterprise-nav-link:hover,
.enterprise-nav-top-link:hover {
  background: #f5f6fa;
  color: var(--heading);
}

.enterprise-nav-link.active,
.enterprise-nav-top-link.active {
  background: var(--sidebar-active-bg);
  color: var(--sidebar-active-text);
  font-weight: 600;
}

.enterprise-nav-link i,
.enterprise-nav-top-link i {
  font-size: 16px; flex-shrink: 0;
}

/* submenu items (inside details) */
.enterprise-nav-submenu {
  padding-left: 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 2px;
}

.enterprise-nav-menu > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: var(--radius);
  font-size: 13px;
  color: var(--sidebar-text);
  cursor: pointer;
  font-weight: 500;
  list-style: none;
}

.enterprise-nav-menu > summary:hover {
  background: #f5f6fa;
  color: var(--heading);
}

.enterprise-nav-menu.has-active > summary {
  color: var(--primary);
}

.enterprise-sidebar-bottom {
  padding: 14px 18px;
  border-top: 1px solid var(--line);
  font-size: 11.5px;
  color: var(--muted);
}

/* ── Main area ── */
.enterprise-main {
  margin-left: 230px;
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* ── Top bar (search + user) ── */
.content-topbar {
  height: 52px;
  background: var(--panel-bg);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  padding: 0 24px;
  gap: 12px;
  position: sticky;
  top: 0;
  z-index: 50;
}

.enterprise-search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f5f6fa;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 7px 12px;
  flex: 1;
  max-width: 360px;
}

.enterprise-search-icon { font-size: 14px; color: var(--muted); }

.enterprise-search-input {
  border: none; background: none;
  font-size: 13px; color: var(--text);
  outline: none; flex: 1; width: 100%;
}

.enterprise-header-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 14px;
}

.enterprise-user-chip {
  display: flex; align-items: center; gap: 6px;
  font-size: 13px; color: var(--primary); font-weight: 500;
}

.enterprise-logout {
  font-size: 12px; color: var(--muted);
  border: none; background: none; cursor: pointer;
}

.enterprise-logout:hover { color: var(--danger); }

/* hide old mobile toggle */
.enterprise-menu-toggle { display: none !important; }

/* ════════════════════════════════
   PAGE CONTENT
════════════════════════════════ */
#main-content {
  padding: 24px;
  flex: 1;
}

/* ── Page header ── */
.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}

.page-header h1 {
  font-size: 20px;
  font-weight: 700;
  color: var(--heading);
}

.page-header p {
  font-size: 13px;
  color: var(--muted);
  margin-top: 2px;
}

.actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* ── Buttons ── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: var(--radius);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  border: none;
  background: var(--primary);
  color: #fff;
  transition: background 0.15s;
  text-decoration: none;
}

.btn:hover { background: var(--primary-dark); color: #fff; }

.btn-secondary {
  background: #fff;
  color: var(--heading);
  border: 1px solid var(--line);
}

.btn-secondary:hover { background: #f5f6fa; color: var(--heading); }

.btn-danger {
  background: var(--danger);
  color: #fff;
}

.btn-danger:hover { background: #c62828; }

.btn-small {
  padding: 5px 12px;
  font-size: 12px;
}

.btn-block { width: 100%; justify-content: center; }

/* ── Cards ── */
.card,
.table-shell,
.portal-card,
.filter-toggle-card,
.centered-login-card {
  background: var(--panel-bg);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

/* ── Dashboard tiles ── */
.portal-card-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}

.glass-card {
  background: var(--panel-bg);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: var(--shadow);
}

.glass-card .tile-label {
  font-size: 12px;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}

.glass-card .tile-label i { font-size: 14px; color: var(--primary); }

.glass-card .tile-value {
  font-size: 24px;
  font-weight: 700;
  color: var(--heading);
  line-height: 1.1;
}

.glass-card .tile-value.blue { color: var(--primary); }
.glass-card .tile-value.green { color: var(--green); }
.glass-card .tile-value.danger { color: var(--danger); }

.glass-card .tile-sub {
  font-size: 11px;
  color: var(--muted);
  margin-top: 4px;
}

/* ── Tables ── */
.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.table th,
.table td,
.indicator-table th,
.indicator-table td {
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid var(--line);
}

.table thead th,
.indicator-table thead th {
  background: #f5f6fa;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.table tbody tr:hover td,
.indicator-table tbody tr:hover td {
  background: #f0f7ff;
}

.clickable-row { cursor: pointer; }

/* ── Forms ── */
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 20px;
}

.form-grid .full { grid-column: 1 / -1; }

.form-grid label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--heading);
  margin-bottom: 5px;
}

.form-grid .input,
input.input, select.input, textarea.input,
.form-control {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #d0d0d0;
  border-radius: var(--radius);
  font-size: 13px;
  color: var(--text);
  background: #fff;
  outline: none;
  transition: border-color 0.15s;
}

.form-grid .input:focus,
input.input:focus, select.input:focus, textarea.input:focus,
.form-control:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(21,101,192,0.1);
}

.form-actions {
  display: flex;
  gap: 10px;
  padding: 16px 20px;
  border-top: 1px solid var(--line);
  background: #fafafa;
  border-radius: 0 0 var(--radius) var(--radius);
}

/* ── Alerts ── */
.alert {
  padding: 12px 16px;
  border-radius: var(--radius);
  font-size: 13px;
  margin-bottom: 16px;
  border: 1px solid transparent;
}

.alert-success {
  background: #E8F5E9;
  color: #1B5E20;
  border-color: #A5D6A7;
}

.alert-danger {
  background: #FFEBEE;
  color: #B71C1C;
  border-color: #EF9A9A;
}

.alert-warning {
  background: #FFF8E1;
  color: #7A5A00;
  border-color: #FFE082;
}

/* ── Badges ── */
.badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 11.5px;
  font-weight: 500;
}

/* ── Filter card ── */
.filter-toggle-card {
  margin-bottom: 16px;
}

.filter-toggle-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  cursor: pointer;
  list-style: none;
  font-size: 13px;
  font-weight: 500;
  color: var(--heading);
}

.filter-toggle-summary::-webkit-details-marker { display: none; }

.filter-toggle-body { padding: 16px; }

.filter-card { padding: 16px; }

.filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}

.filter-field label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  margin-bottom: 4px;
}

.filter-actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}

.filter-title { font-size: 14px; font-weight: 600; color: var(--heading); }
.filter-subtitle { font-size: 12px; color: var(--muted); margin-top: 2px; }
.filter-summary { font-size: 12px; color: var(--muted); }

/* ── Table shell ── */
.table-shell { overflow: hidden; margin-bottom: 16px; }

/* ── Responsive table ── */
.responsive-table { width: 100%; }

.table-action-text {
  font-size: 12px;
  color: var(--primary);
  cursor: pointer;
  margin-right: 10px;
  background: none;
  border: none;
  padding: 0;
  text-decoration: none;
}

.table-action-text:hover { text-decoration: underline; }

.table-action-text--danger { color: var(--danger); }

td.actions, td.table-actions {
  white-space: nowrap;
  text-align: right;
}

/* ── Login ── */
.centered-login-card {
  max-width: 400px;
  margin: 80px auto;
  padding: 36px;
}

.enterprise-login-card {
  background: var(--panel-bg);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 36px;
  max-width: 420px;
  margin: 80px auto;
  box-shadow: var(--shadow);
}

/* ── Portal / home ── */
.home-portal { display: flex; gap: 20px; }
.home-portal.no-right-sidebar { display: block; }

.portal-card {
  padding: 20px;
  margin-bottom: 16px;
}

.portal-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.portal-card-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--heading);
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ── Gauge / indicator ── */
.gauge-card {
  background: var(--panel-bg);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
}

.indicator-table { width: 100%; border-collapse: collapse; }

/* ── Misc utilities ── */
.text-danger { color: var(--danger); }
.text-success { color: var(--green); }
.text-muted { color: var(--muted); }
.text-primary { color: var(--primary); }

.d-flex { display: flex; }
.align-items-center { align-items: center; }
.gap-2 { gap: 8px; }
.mt-3 { margin-top: 16px; }
.mb-3 { margin-bottom: 16px; }

/* ── Breadcrumb ── */
.eyebrow {
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 2px;
}

/* ── Mobile ── */
@media (max-width: 768px) {
  .enterprise-sidebar {
    transform: translateX(-100%);
    transition: transform 0.25s;
    z-index: 1002;
    pointer-events: auto;
  }

  .enterprise-sidebar.open {
    transform: translateX(0);
  }

  .enterprise-main { margin-left: 0; }

  .enterprise-menu-toggle {
    display: flex !important;
    position: fixed;
    top: 10px; left: 10px;
    z-index: 1003;
    background: var(--primary);
    border: none;
    border-radius: 8px;
    width: 40px; height: 40px;
  }

  .enterprise-menu-toggle span { background: #fff; }

  .mobile-nav-backdrop {
    z-index: 1000;
  }

  .enterprise-sidebar .enterprise-nav,
  .enterprise-sidebar .enterprise-nav-menu,
  .enterprise-sidebar .enterprise-nav-menu > summary,
  .enterprise-sidebar .enterprise-nav-submenu a {
    position: relative;
    pointer-events: auto;
    touch-action: manipulation;
  }

  .form-grid { grid-template-columns: 1fr; }
  .portal-card-tiles { grid-template-columns: 1fr 1fr; }
  #main-content { padding: 16px; }

  .responsive-table thead { display: none; }
  .responsive-table tr {
    display: block;
    border-bottom: 2px solid var(--line);
    padding: 10px 0;
  }
  .responsive-table td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 14px;
    border: none;
  }
  .responsive-table td::before {
    content: attr(data-label);
    font-weight: 600;
    font-size: 11px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  td.actions, td.table-actions {
    justify-content: flex-end;
    gap: 10px;
  }
}

/* ════════════════════════════════
   LOGIN PAGE
════════════════════════════════ */
.login-center-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f5f6fa;
  padding: 20px;
}

.login-card {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  padding: 36px 40px;
  width: 100%;
  max-width: 400px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.login-logo-wrap {
  text-align: center;
  margin-bottom: 28px;
}

.login-brand-icon {
  width: 56px; height: 56px;
  background: #1565C0;
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 28px;
  margin: 0 auto 12px;
}

.login-brand-name {
  font-size: 20px;
  font-weight: 700;
  color: #1a1a2e;
}

.login-brand-sub {
  font-size: 12px;
  color: #888;
  margin-top: 4px;
}

.login-field {
  margin-bottom: 16px;
}

.login-field label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #555;
  margin-bottom: 5px;
}

.login-field .input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #d0d0d0;
  border-radius: 8px;
  font-size: 13px;
  outline: none;
  transition: border-color 0.15s;
}

.login-field .input:focus {
  border-color: #1565C0;
  box-shadow: 0 0 0 3px rgba(21,101,192,0.1);
}

/* ════════════════════════════════
   DASHBOARD
════════════════════════════════ */
.dash-page-title {
  margin-bottom: 18px;
}
.dash-page-title h1 {
  font-size: 20px; font-weight: 700; color: #1a1a2e;
}

.dash-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 14px;
}

.dash-kpi-card {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  padding: 16px 18px;
  position: relative;
}

.dash-kpi-card.dash-kpi-alert {
  border-color: #EF9A9A;
  background: #FFF8F8;
}

.dash-kpi-label {
  font-size: 12px;
  color: #888;
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 6px;
}

.dash-kpi-label i { font-size: 13px; color: #1565C0; }

.dash-kpi-value {
  font-size: 24px;
  font-weight: 700;
  color: #1a1a2e;
  line-height: 1.1;
}

.dash-kpi-value.blue   { color: #1565C0; }
.dash-kpi-value.green  { color: #2E7D32; }
.dash-kpi-value.danger { color: #E53935; }

.dash-kpi-sub {
  font-size: 11px;
  color: #aaa;
  margin-top: 3px;
}

.dash-main-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}

.dash-card {
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  overflow: hidden;
}

.dash-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid #e8e8e8;
}

.dash-card-title {
  font-size: 13px;
  font-weight: 600;
  color: #1a1a2e;
  display: flex;
  align-items: center;
  gap: 7px;
}

.dash-card-title i { font-size: 15px; color: #1565C0; }

/* Shortcuts */
.dash-shortcuts {
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.dash-shortcut {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 6px;
  font-size: 12.5px;
  color: #1565C0;
  text-decoration: none;
  transition: background 0.12s;
}

.dash-shortcut:hover {
  background: #E3F2FD;
  color: #0D47A1;
}

.dash-shortcut i { font-size: 13px; }

/* Module tiles */
.dash-modules {
  padding: 12px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}

.dash-module {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 10px 4px;
  border-radius: 8px;
  text-decoration: none;
  color: #555;
  font-size: 11px;
  text-align: center;
  transition: background 0.12s, color 0.12s;
  border: 1px solid #f0f0f0;
}

.dash-module:hover {
  background: #E3F2FD;
  color: #1565C0;
  border-color: #BBDEFB;
}

.dash-module i {
  font-size: 20px;
  color: #1565C0;
}

@media (max-width: 768px) {
  .dash-kpi-grid { grid-template-columns: 1fr 1fr; }
  .dash-main-grid { grid-template-columns: 1fr; }
  .dash-modules { grid-template-columns: repeat(4, 1fr); }
}

/* Unified modern interface */
:root { --radius:14px; --shadow:0 8px 24px rgba(25,45,70,.07); --line:#e4eaf1; --page-bg:#f3f6fa; }
#main-content{max-width:1500px;width:100%;margin-inline:auto}.page-header{padding:4px 2px}.page-header h1{font-size:clamp(1.35rem,2.2vw,1.8rem);letter-spacing:-.025em}.card{padding:22px;margin-bottom:18px}.card>h3{font-size:1rem;margin-bottom:16px;display:flex;align-items:center;gap:8px}.card>h3::before{content:'';width:4px;height:20px;border-radius:4px;background:var(--primary)}
.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;padding:0}.details-grid .detail-item{min-width:0;padding:14px 16px;border:1px solid #e7edf4;border-radius:12px;background:linear-gradient(145deg,#fff,#f8fafc)}.details-grid .detail-item dt{color:#718096;font-size:11px;font-weight:700;letter-spacing:.045em;text-transform:uppercase;margin-bottom:7px}.details-grid .detail-item dd{color:var(--heading);font-size:15px;font-weight:650;line-height:1.4;overflow-wrap:anywhere}.details-grid .detail-item.is-empty{display:none}.detail-metric{color:var(--primary);font-size:18px;font-weight:750}.detail-subtext{color:var(--muted);font-size:12px;font-weight:400;margin-top:5px}
.table-shell,.card{overflow:hidden}.table{border-spacing:0}.table thead th{background:#f4f7fb;color:#5f6b7a}.table tbody tr:last-child td{border-bottom:0}.btn{min-height:40px;border-radius:10px;font-weight:650;justify-content:center}.input,.form-control,input,select,textarea{min-height:42px}.section-tabs{overflow-x:auto;scrollbar-width:thin;white-space:nowrap;padding-bottom:5px}
@media(max-width:768px){#main-content{padding:72px 12px 18px}.content-topbar{min-height:60px;height:auto;padding:9px 12px 9px 62px}.page-header{align-items:stretch;margin-bottom:14px}.page-header>div:first-child,.page-header>h1{width:100%}.page-header .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.page-header .actions .btn{width:100%;padding-inline:9px}.card{padding:14px;border-radius:14px;margin-bottom:12px}.details-grid{grid-template-columns:1fr 1fr;gap:9px}.details-grid .detail-item{padding:12px}.details-grid .detail-item dd{font-size:14px}.details-grid .detail-item.detail-wide{grid-column:1/-1}.form-grid{padding:14px;gap:13px}.form-actions{position:sticky;bottom:0;z-index:10;padding:12px 14px}.table:not(.no-mobile-cards) thead{display:none}.table:not(.no-mobile-cards) tbody,.table:not(.no-mobile-cards) tr,.table:not(.no-mobile-cards) td{display:block;width:100%}.table:not(.no-mobile-cards) tr{padding:10px 12px;border:1px solid var(--line);border-radius:11px;margin-bottom:9px;background:#fff}.table:not(.no-mobile-cards) td{border:0;padding:5px 0;text-align:left;white-space:normal}.table:not(.no-mobile-cards) td[data-label]{display:grid;grid-template-columns:minmax(105px,42%) 1fr;gap:9px}.table:not(.no-mobile-cards) td[data-label]::before{content:attr(data-label);color:#718096;font-size:11px;font-weight:700;text-transform:uppercase}}
@media(max-width:430px){.details-grid{grid-template-columns:1fr}.page-header .actions{grid-template-columns:1fr}}

/* Wine batch details — Process2Wine-style dashboard */
.batch-hero{background:#fff;border:1px solid #e1e7ee;border-radius:15px;box-shadow:0 4px 18px rgba(31,50,73,.055);margin-bottom:16px;overflow:visible}
.batch-title-wrap{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:20px 22px 8px}.batch-title-wrap h1{font-size:clamp(1.35rem,2.2vw,1.85rem);line-height:1.15;margin:0;color:#17212f;letter-spacing:-.03em}.batch-back{display:none;color:#3d536c;text-decoration:none;font-size:24px}
.batch-pill{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:750;border:1px solid}.batch-pill.color{background:#fff8e7;border-color:#ecd89d;color:#72560e}.batch-red .batch-pill.color{background:#fff0f2;border-color:#e6b7bf;color:#8f2637}.batch-rose .batch-pill.color{background:#fff1f5;border-color:#edbfd0;color:#a13862}.batch-pill.active{background:#eff9ee;border-color:#b8ddb5;color:#347531}
.batch-hero-main{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 24px}.batch-kpis{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));min-width:min(100%,570px)}.batch-kpi{display:flex;align-items:center;gap:13px;min-width:0;padding:0 26px;border-right:1px solid #dce3ea}.batch-kpi:first-child{padding-left:0}.batch-kpi:last-child{border:0}.batch-kpi small,.current-state-kpis small{display:block;color:#687687;font-size:11px;margin-bottom:3px}.batch-kpi strong,.current-state-kpis strong{display:block;color:#111b28;font-size:19px;white-space:nowrap}.batch-symbol{font-size:29px;color:#526170}.batch-symbol.drop,.current-state-kpis .drop{color:#1972cf}.batch-symbol.stage,.current-state-kpis .stage{color:#4aa541}
.batch-quick-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.batch-action{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:8px 13px;border:1px solid currentColor;border-radius:8px;background:#fff;text-decoration:none;font-size:13px;font-weight:750;white-space:nowrap;transition:.15s}.batch-action:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(30,45,65,.09)}.batch-action.blue{color:#1769c1}.batch-action.green{color:#429232}.batch-action.purple{color:#7947cf}.batch-action.slate{color:#526170}.batch-action.orange{color:#d56d12}
.batch-more{position:relative}.batch-more summary{display:grid;place-items:center;min-width:44px;height:42px;border:1px solid #cfd8e2;border-radius:8px;color:#334155;font-size:23px;cursor:pointer;list-style:none}.batch-more summary::-webkit-details-marker{display:none}.batch-more-menu{position:absolute;z-index:30;right:0;top:48px;width:220px;padding:7px;background:#fff;border:1px solid #dce3ea;border-radius:11px;box-shadow:0 14px 35px rgba(20,35,55,.16)}.batch-more-menu a{display:block;padding:10px 11px;border-radius:7px;color:#263547;text-decoration:none;font-size:13px}.batch-more-menu a:hover{background:#f2f6fa}.batch-more-menu a.danger{color:#b42828}
.batch-tabs{display:flex;gap:4px;overflow-x:auto;border-top:1px solid #edf0f4;padding:0 16px;white-space:nowrap}.batch-tabs a{display:block;padding:14px 14px 12px;border-bottom:2px solid transparent;color:#415064;text-decoration:none;font-size:12px;font-weight:650}.batch-tabs a:hover,.batch-tabs a.active{color:#1569c7;border-bottom-color:#1569c7}
.batch-overview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,1.05fr);gap:15px}.batch-panel{margin-bottom:15px}.batch-panel>h3{margin-bottom:14px}.batch-details-list{display:grid;grid-template-columns:minmax(175px,36%) 1fr;margin:0}.batch-details-list dt,.batch-details-list dd{padding:7px 3px;border-bottom:1px solid #e5e9ee;font-size:13px}.batch-details-list dt{color:#425063;font-weight:650}.batch-details-list dd{margin:0;color:#182332;font-weight:650;overflow-wrap:anywhere}
.current-state-box{padding:18px;border:1px solid #cce3c7;border-radius:11px;background:linear-gradient(110deg,#fbfefb,#f2faf0)}.current-state-kpis{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:24px}.current-state-kpis>div{display:grid;grid-template-columns:39px 1fr;grid-template-rows:auto auto;align-items:center;padding:0 20px;border-right:1px solid #d7e1da}.current-state-kpis>div:first-child{padding-left:0}.current-state-kpis>div:last-child{border:0}.current-state-kpis span{grid-row:1/3;font-size:28px;color:#526170}.current-state-kpis strong{font-size:18px}.tank-fill-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;font-size:12px;color:#344535}.tank-fill-track{height:11px;border-radius:999px;border:1px solid #c9ddc5;background:#f6faf5;overflow:hidden}.tank-fill-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#72b846,#57aa43)}.status-change{margin:14px auto 0;max-width:260px;position:relative}.status-change>summary{list-style:none;display:flex;justify-content:center;align-items:center;min-height:38px;padding:7px 14px;border:1px solid #92c687;border-radius:8px;background:#fff;color:#429232;font-size:12px;font-weight:750;cursor:pointer}.status-change>summary::-webkit-details-marker{display:none}.status-change[open]{max-width:430px}.status-inline-form{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:10px;border:1px solid #dce8da;border-radius:10px;background:#fff}.status-inline-form .input{max-width:180px}.batch-status-button{background:#fff!important;color:#429232!important;border:1px solid #92c687!important}
.batch-summary-grid{display:grid;grid-template-columns:1.35fr .8fr .85fr .9fr .9fr;gap:14px;margin-bottom:16px}.summary-card{display:flex;flex-direction:column;min-width:0;min-height:215px;padding:16px!important;margin:0!important}.summary-card>h3{font-size:14px!important;margin-bottom:12px!important}.summary-row{display:flex;justify-content:space-between;gap:10px;padding:7px 2px;border-bottom:1px solid #e8edf2;font-size:11px}.summary-row span{color:#718096}.summary-row strong{color:#253245;text-align:right;overflow-wrap:anywhere}.summary-empty{flex:1;display:grid;place-items:center;text-align:center;color:#8490a0;font-size:12px}.summary-button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;margin-top:auto;padding:7px 10px;border:1px solid currentColor;border-radius:8px;background:#fff;text-decoration:none;font-size:12px;font-weight:750}.summary-button.blue{color:#1769c1}.summary-button.green{color:#429232}.summary-button.purple{color:#7947cf}.summary-button.orange{color:#d56d12}
.batch-detail-content{display:none}.batch-detail-content.is-active{display:grid}.card.batch-detail-content.is-active{display:block}.batch-overview-content.is-hidden{display:none}
@media(max-width:1180px){.batch-hero-main{align-items:stretch;flex-direction:column}.batch-quick-actions{justify-content:flex-start}.batch-overview-grid{grid-template-columns:1fr}}
@media(max-width:1250px){.batch-summary-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.batch-hero{border-radius:13px}.batch-title-wrap{padding:16px 14px 7px;gap:8px}.batch-back{display:inline}.batch-title-wrap h1{width:calc(100% - 42px)}.batch-hero-main{padding:12px 14px}.batch-kpis{grid-template-columns:1fr 1fr;min-width:0}.batch-kpi{padding:10px 12px;border-bottom:1px solid #e4e9ef}.batch-kpi:first-child{padding-left:12px}.batch-kpi:nth-child(2){border-right:0}.batch-kpi:last-child{grid-column:1/-1;border-bottom:0}.batch-kpi strong{font-size:16px}.batch-quick-actions{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.batch-action{justify-content:center}.batch-more{position:static}.batch-more summary{width:100%}.batch-more-menu{left:14px;right:14px;top:auto;width:auto}.batch-tabs{padding:0 6px}.batch-tabs a{padding-inline:11px}.batch-details-list{grid-template-columns:1fr}.batch-details-list dt{padding-bottom:2px;border-bottom:0;color:#758294;font-size:11px}.batch-details-list dd{padding-top:1px}.current-state-kpis{grid-template-columns:1fr;gap:0;margin-bottom:16px}.current-state-kpis>div,.current-state-kpis>div:first-child{padding:10px 4px;border-right:0;border-bottom:1px solid #dbe6dc}.current-state-kpis>div:last-child{border-bottom:0}.status-inline-form{align-items:stretch;flex-direction:column}.status-inline-form .input{max-width:none}}
@media(max-width:720px){.batch-summary-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:7px}.summary-card{flex:0 0 min(82vw,330px);scroll-snap-align:start}.batch-action span{display:inline}}

/* Batch list opens the full dashboard instead of the old split preview */
.batch-board{display:block!important;min-height:0!important}.batch-board .tank-browser{border-right:0!important;min-height:430px}.batch-board .tank-mini-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));max-height:none}.batch-board .batch-mini{color:inherit;text-decoration:none;cursor:pointer}.batch-board .batch-mini:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(27,45,67,.12)}
.current-state-kpis i{grid-row:1/3;font-size:29px;color:#526170}.current-state-kpis i.drop{color:#1972cf}.current-state-kpis i.stage{color:#4aa541}.batch-action i{font-size:18px}
@media(max-width:720px){.batch-board .tank-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Shared visual language for every batch tab */
.batch-section-hero .batch-back.always-visible{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #d9e1ea;border-radius:8px}.batch-section-hero .batch-hero-main.compact{padding-top:12px;padding-bottom:16px}.batch-section-hero .batch-hero-main.compact .batch-kpis{max-width:760px}.batch-section-hero .batch-kpi strong{max-width:250px;overflow:hidden;text-overflow:ellipsis}
.batch-section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px!important}.batch-section-toolbar h2{margin:0 0 4px;font-size:18px}.batch-section-toolbar p{font-size:12px}.batch-section-toolbar .actions{display:flex;gap:8px;flex-wrap:wrap}
body[data-controller="oenologicalcontrols"] .card,body[data-controller="bottlings"] .card{border-color:#e1e7ee;box-shadow:0 4px 16px rgba(31,50,73,.05)}body[data-controller="oenologicalcontrols"] .grid-2> .card,body[data-controller="winebatches"] .batch-detail-content>.card{border-top:3px solid #257f91}body[data-controller="winebatches"] [data-batch-content="processings"]>.card:first-child{border-top-color:#7947cf}body[data-controller="winebatches"] [data-batch-content="processings"]>.card:last-child{border-top-color:#566579}
.batch-detail-content.is-active{animation:batchTabIn .18s ease-out}@keyframes batchTabIn{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:720px){.batch-section-toolbar{align-items:stretch;flex-direction:column;padding:14px!important}.batch-section-toolbar .actions{display:grid;grid-template-columns:1fr 1fr}.batch-section-toolbar .actions .btn{width:100%}.batch-section-hero .batch-hero-main.compact .batch-action{width:100%;justify-content:center}}

/* Exact compact proportions of the approved batch reference */
@media(min-width:1181px){
  body[data-controller="winebatches"] #main-content,body[data-controller="oenologicalcontrols"] #main-content,body[data-controller="bottlings"] #main-content{max-width:none;padding:22px 18px 28px}
  .batch-hero{margin-bottom:14px;border-radius:10px}
  .batch-title-wrap{padding:17px 20px 5px;gap:10px}
  .batch-title-wrap h1{font-size:23px}
  .batch-pill{padding:4px 10px;font-size:10px}
  .batch-hero-main{padding:13px 20px 15px;gap:16px}
  .batch-kpis{grid-template-columns:repeat(3,minmax(130px,1fr));min-width:500px;max-width:560px}
  .batch-kpi{gap:10px;padding:0 22px}
  .batch-symbol{font-size:25px}
  .batch-kpi small,.current-state-kpis small{font-size:9px;margin-bottom:2px}
  .batch-kpi strong,.current-state-kpis strong{font-size:16px}
  .batch-quick-actions{flex-wrap:nowrap;gap:7px}
  .batch-action{min-height:37px;padding:6px 10px;font-size:11px;border-radius:7px}
  .batch-action i{font-size:16px}
  .batch-more summary{min-width:39px;height:37px;font-size:20px}
  .batch-tabs{height:43px;padding:0 12px}
  .batch-tabs a{padding:13px 12px 10px;font-size:10px}
  .batch-overview-grid{grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);gap:13px}
  .batch-panel{padding:14px 16px!important;margin-bottom:14px;min-height:258px}
  .batch-panel>h3{font-size:13px!important;margin-bottom:9px!important}
  .batch-panel>h3::before{height:17px}
  .batch-details-list{grid-template-columns:minmax(155px,36%) 1fr}
  .batch-details-list dt,.batch-details-list dd{padding:4px 2px;font-size:10.5px;line-height:1.25}
  .current-state-box{padding:13px 14px}
  .current-state-kpis{margin-bottom:15px}
  .current-state-kpis>div{grid-template-columns:34px 1fr;padding:0 14px}
  .current-state-kpis i{font-size:25px}
  .tank-fill-title{margin-bottom:5px;font-size:10px}
  .tank-fill-track{height:9px}
  .status-change{margin-top:10px}
  .status-change>summary{min-height:34px;padding:5px 12px;font-size:10px}
  .batch-summary-grid{grid-template-columns:1.35fr .8fr .85fr .9fr .9fr;gap:12px;margin-bottom:12px}
  .summary-card{min-height:184px;padding:13px!important}
  .summary-card>h3{font-size:12px!important;margin-bottom:8px!important}
  .summary-card>h3::before{height:16px}
  .summary-row{padding:5px 1px;font-size:9px}
  .summary-empty{font-size:10px}
  .summary-button{min-height:32px;padding:5px 8px;font-size:10px}
  .batch-section-hero .batch-hero-main.compact{padding-top:9px;padding-bottom:11px}
  .batch-section-toolbar{padding:12px 16px!important}
  .batch-section-toolbar h2{font-size:15px}
}

/* =============================================================
   Application-wide card system — same visual pattern as Batches
   ============================================================= */
body{--module-accent:#1769c1;--module-soft:#eef5fd}
body[data-controller="vineyards"]{--module-accent:#2d9c91;--module-soft:#edf9f7}
body[data-controller="grapereceipts"]{--module-accent:#b78a22;--module-soft:#fff8e8}
body[data-controller="winebatches"]{--module-accent:#6f50a4;--module-soft:#f4f0fa}
body[data-controller="oenologicalcontrols"]{--module-accent:#257f91;--module-soft:#edf8fa}
body[data-controller="barrels"]{--module-accent:#8b5a38;--module-soft:#f8f1ec}
body[data-controller="bottlings"],body[data-controller="bottlingplans"]{--module-accent:#d56d12;--module-soft:#fff5eb}
body[data-controller="oenologicalproducts"]{--module-accent:#478a57;--module-soft:#eff8f1}
body[data-controller="packagingmaterials"]{--module-accent:#607d8b;--module-soft:#f0f5f7}
body[data-controller="users"],body[data-controller="account"]{--module-accent:#526170;--module-soft:#f1f4f7}

.page-header{position:relative;background:#fff!important;color:#17212f!important;border:1px solid #e1e7ee!important;border-radius:12px!important;box-shadow:0 4px 18px rgba(31,50,73,.055)!important;padding:17px 20px!important;margin-bottom:14px!important;overflow:hidden}
.page-header::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--module-accent)}
.page-header h1{color:#17212f!important;font-size:23px!important;letter-spacing:-.025em!important}.page-header .page-subtitle,.page-header p{color:#718096!important;font-size:11px!important;margin-top:4px!important}
.page-header .page-title-icon{width:36px!important;height:36px!important;border-radius:9px!important;background:var(--module-soft)!important}.page-header .page-title-icon .ti{color:var(--module-accent)!important;font-size:22px!important}
.page-header .actions{gap:7px!important}.page-header .actions .btn{min-height:37px!important;padding:6px 11px!important;background:#fff!important;color:var(--module-accent)!important;border:1px solid var(--module-accent)!important;border-radius:7px!important;font-size:11px!important}.page-header .actions .btn:hover{background:var(--module-soft)!important;transform:translateY(-1px)}.page-header .actions .btn-danger{color:#c93636!important;border-color:#df6a6a!important}

.card{border:1px solid #e1e7ee!important;border-radius:11px!important;box-shadow:0 4px 16px rgba(31,50,73,.05)!important}.card>h2,.card>h3{color:#17212f}.card>h3::before{background:var(--module-accent)!important}.section-accent{background:var(--module-accent)!important;height:4px!important}
.grid-2{gap:13px!important}.form-grid{gap:12px!important}.form-grid label,.card>form>label{color:#526170;font-size:11px;font-weight:750}.input,.form-control,input,select,textarea{border-color:#d8e0e9!important;border-radius:8px!important;background:#fff}.input:focus,.form-control:focus,input:focus,select:focus,textarea:focus{border-color:var(--module-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--module-accent) 13%,transparent)!important}
.form-actions .btn,.filter-actions .btn{border-radius:7px!important;font-size:11px!important}.form-actions .btn:not(.btn-secondary):not(.btn-danger),.filter-actions .btn:not(.btn-secondary){background:var(--module-accent)!important;border-color:var(--module-accent)!important}

.filter-toggle-card{border:1px solid #e1e7ee!important;border-left:4px solid var(--module-accent)!important;border-radius:11px!important;background:#fff!important;box-shadow:0 4px 14px rgba(31,50,73,.045)!important;margin-bottom:14px!important}.filter-toggle-summary{padding:13px 17px!important}.filter-title{font-size:13px!important;color:#17212f!important}.filter-subtitle{font-size:10px!important}.filter-summary{font-size:10px!important}.filter-toggle-body{border:0!important;border-top:1px solid #e7ebf0!important;border-radius:0!important;box-shadow:none!important;margin:0!important}
.section-tabs{display:flex;gap:3px;padding:0 10px!important;border:1px solid #e1e7ee;border-radius:10px;background:#fff;box-shadow:0 3px 12px rgba(31,50,73,.04)}.section-tabs a{padding:12px 11px!important;border-bottom:2px solid transparent!important;color:#46566a!important;font-size:10px!important;font-weight:700!important}.section-tabs a:hover,.section-tabs a.active{color:var(--module-accent)!important;border-bottom-color:var(--module-accent)!important}

.table{font-size:11px}.table thead th{padding:9px 10px!important;background:#f4f7fa!important;color:#607084!important}.table tbody td{padding:8px 10px!important}.table tbody tr:hover{background:var(--module-soft)!important}.table-action-text{color:var(--module-accent)!important;font-weight:700}
.details-grid .detail-item{border-color:#dfe6ee!important;border-radius:9px!important;background:linear-gradient(145deg,#fff,#f7f9fb)!important;box-shadow:inset 3px 0 0 var(--module-accent)}.details-grid .detail-item dt{font-size:9px!important}.details-grid .detail-item dd{font-size:12px!important}
.empty-state{border-style:dashed!important;text-align:center}.empty-state .ti{color:var(--module-accent)}

.tank-board{border-color:#e1e7ee!important;border-radius:11px!important;box-shadow:0 4px 18px rgba(31,50,73,.055)!important}.tank-toolbar{padding:9px!important}.tank-tool{height:36px!important;border-radius:7px!important;font-size:10px!important}.tank-tool:hover,.tank-tool.active{background:var(--module-accent)!important;border-color:var(--module-accent)!important}.tank-mini{border-radius:8px!important;transition:transform .15s,box-shadow .15s,border-color .15s}.tank-mini:hover{border-color:var(--module-accent)!important;transform:translateY(-2px);box-shadow:0 7px 16px rgba(30,48,70,.1)}.tank-info-title{color:var(--module-accent)!important;border-bottom-color:color-mix(in srgb,var(--module-accent) 20%,white)!important}

@media(min-width:1181px){.card{padding:16px!important;margin-bottom:14px!important}.card>h3{font-size:13px!important;margin-bottom:11px!important}.card>h3::before{height:17px!important}.details-grid{gap:9px!important}.details-grid .detail-item{padding:10px 12px!important}.filter-card{padding:14px!important}}
@media(max-width:768px){.page-header{padding:14px!important}.page-header h1{font-size:19px!important}.page-header .actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%}.page-header .actions .btn{width:100%}.card{border-radius:10px!important}.section-tabs{overflow-x:auto}.table{font-size:12px}}
@media(max-width:430px){.page-header .actions{grid-template-columns:1fr!important}}

/* A batch can occupy multiple tanks and barrels at the same time */
.batch-position-list{white-space:normal!important;line-height:1.2;overflow-wrap:anywhere}
.batch-container-list{display:grid;gap:8px;margin-top:10px}
.batch-container-row{padding:8px 10px;border:1px solid #dbe5db;border-radius:8px;background:rgba(255,255,255,.82)}
.batch-container-row.barrel{border-color:#e5ddd5}
.batch-container-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:5px;font-size:10px}
.batch-container-heading>span{display:flex;align-items:center;gap:5px;min-width:0}
.batch-container-heading i{color:#526170;font-size:16px}.batch-container-heading small,.batch-container-percent{color:#718096;font-size:9px}
.batch-container-heading span:last-child{justify-content:flex-end;text-align:right}.batch-container-percent{text-align:right;margin-top:3px}
.batch-no-container{min-height:54px;margin:8px 0 0}
@media(max-width:720px){.batch-container-heading{align-items:flex-start}.batch-container-heading>span:last-child{flex-direction:column;align-items:flex-end;gap:1px}}
.grid-2.single-column{grid-template-columns:minmax(0,1fr)!important}

/* Vineyards keep the simple list layout requested by the user */
body[data-controller="vineyards"] .page-header{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:10px 2px 18px!important;margin-bottom:8px!important;overflow:visible}
body[data-controller="vineyards"] .page-header::before{display:none!important}
body[data-controller="vineyards"] .page-header h1{font-size:28px!important}
body[data-controller="vineyards"] .page-header .actions .btn{min-height:42px!important;padding:8px 18px!important;border-radius:9px!important;font-size:12px!important}
body[data-controller="vineyards"] .page-header .actions .btn:not(.btn-secondary){background:#1769c7!important;color:#fff!important;border-color:#1769c7!important}
body[data-controller="vineyards"] .vineyard-classic-table{border-collapse:collapse;background:transparent;box-shadow:none}
body[data-controller="vineyards"] .vineyard-classic-table thead th{background:transparent!important;color:#53647a!important;padding:11px 14px!important;border-bottom:1px solid #dfe6ee!important;text-transform:uppercase;letter-spacing:.025em}
body[data-controller="vineyards"] .vineyard-classic-table tbody td{padding:12px 14px!important;border-bottom:1px solid #dfe6ee!important;background:transparent!important}
body[data-controller="vineyards"] .vineyard-classic-table tbody tr:hover{background:#edf4fb!important}
body[data-controller="vineyards"] .vineyard-classic-table .actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;white-space:nowrap}
.vineyard-row-action{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border:1px solid transparent;border-radius:6px;background:transparent;font:inherit;font-size:10px;font-weight:750;text-decoration:none;cursor:pointer;transition:.15s}.vineyard-row-action:hover{transform:translateY(-1px);text-decoration:none}.vineyard-row-action.info{color:#1769c7;background:#eef5fd;border-color:#b9d4f2}.vineyard-row-action.map{color:#18725f;background:#edf9f6;border-color:#aedace}.vineyard-row-action.measurements{color:#7044bd;background:#f5f0fc;border-color:#d4c1f0}.vineyard-row-action.edit{color:#b65b0c;background:#fff5e9;border-color:#efc896}.vineyard-row-action.delete{color:#c42f36;background:#fff0f1;border-color:#edb4b8}
.vineyard-overview-map-card{padding:0;border:1px solid #dce4ed;border-radius:12px;background:#fff;box-shadow:0 4px 18px rgba(31,50,73,.06);overflow:hidden}
.vineyard-overview-map{width:100%;height:calc(100vh - 245px);min-height:540px}
.vineyard-map-info{display:grid;gap:4px;min-width:210px;padding:4px;font-size:12px}.vineyard-map-info strong{font-size:15px;color:#17212f}.vineyard-map-info span{color:#53647a}.vineyard-map-info a{margin-top:5px;color:#1769c7;font-weight:700;text-decoration:none}
@media(max-width:768px){body[data-controller="vineyards"] .page-header{padding-top:4px!important}body[data-controller="vineyards"] .page-header h1{font-size:22px!important}.vineyard-overview-map{height:68vh;min-height:430px}}
.vineyard-information-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}.vineyard-information-grid>div{padding:13px;border:1px solid #e0e7ef;border-radius:9px;background:#f8fafc}.vineyard-information-grid>div.wide{grid-column:1/-1}.vineyard-information-grid dt{color:#718096;font-size:10px;font-weight:700;text-transform:uppercase}.vineyard-information-grid dd{margin:6px 0 0;color:#17212f;font-size:14px;font-weight:700;overflow-wrap:anywhere}.vineyard-details-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.vineyard-details-actions form{margin:0}.vineyard-details-actions .btn{min-height:40px}
@media(max-width:900px){.vineyard-information-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.vineyard-information-grid{grid-template-columns:1fr}.vineyard-information-grid>div.wide{grid-column:auto}.vineyard-details-actions{display:grid;grid-template-columns:1fr 1fr}.vineyard-details-actions .btn,.vineyard-details-actions form,.vineyard-details-actions form button{width:100%}}

/* Multiple must pressings during batch creation */
.pressing-mode-card{margin:16px 0;padding:14px 16px;border:1px solid #b9d8ca;border-radius:10px;background:#f1faf6}.pressing-mode-toggle{display:flex;align-items:flex-start;gap:11px;cursor:pointer}.pressing-mode-toggle input{width:19px;height:19px;min-height:0;margin-top:2px;accent-color:#18725f}.pressing-mode-toggle span{display:grid;gap:3px}.pressing-mode-toggle strong{color:#155f50;font-size:13px}.pressing-mode-toggle small{color:#5f746d;font-size:11px}.pressing-batches-section{margin-top:15px;padding:16px;border:1px solid #dce5ed;border-radius:11px;background:#f8fafc}.pressing-section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.pressing-section-heading h3{margin:0 0 3px}.pressing-section-heading p{margin:0;color:#718096;font-size:11px}.pressing-rows{display:grid;gap:10px}.pressing-row{position:relative;display:grid;grid-template-columns:90px 1fr 1fr .7fr 1.2fr 1fr;align-items:end;gap:9px;padding:13px 42px 13px 13px;border:1px solid #dbe4ec;border-left:4px solid #2d9c91;border-radius:9px;background:#fff}.pressing-row label{display:block;margin-bottom:4px;color:#526170;font-size:9px;font-weight:750}.pressing-row .input{width:100%;min-height:38px}.pressing-row-number{align-self:center;color:#18725f;font-size:12px;font-weight:800}.pressing-remove{position:absolute;right:10px;top:10px;width:25px;height:25px;border:1px solid #e1aeb2;border-radius:6px;background:#fff1f2;color:#b82f36;font-size:18px;line-height:1;cursor:pointer}
@media(max-width:1100px){.pressing-row{grid-template-columns:80px repeat(2,1fr)}.pressing-row .pressing-notes{grid-column:2/-1}}@media(max-width:650px){.pressing-section-heading{align-items:stretch;flex-direction:column}.pressing-row{grid-template-columns:1fr;padding-right:42px}.pressing-row .pressing-notes{grid-column:auto}.pressing-row-number{margin-bottom:2px}}
.validation-summary-visible:not(.validation-summary-valid){margin-bottom:15px;padding:11px 14px;border:1px solid #edb6ba;border-radius:8px;background:#fff1f2;color:#a92f36}.validation-summary-visible ul{margin:0;padding-left:18px}

/* Visible application name */
.enterprise-brand-name{max-width:100%;font-size:15px!important;line-height:1.2;white-space:normal}.enterprise-sidebar-bottom{font-size:10px!important}.login-brand-name{font-size:22px!important;line-height:1.2;text-align:center}

/* Vineyard map V3 — isolated styles from the 05/09 published version */
.vineyard-map-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:16px;margin:16px}.vineyard-map-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:13px}.vineyard-map-header h3{margin-bottom:4px}.vineyard-map-area{background:#e8f3ff;color:var(--primary-dark);font-weight:750;padding:9px 13px;border-radius:10px;white-space:nowrap}.vineyard-map-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.vineyard-map{width:100%;height:480px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#e9eef4;touch-action:none}.vineyard-map-help{margin:0 0 9px;padding:9px 11px;border-radius:9px;background:#eef6ff;font-size:12px;font-weight:650;color:#334155}.vineyard-coordinate-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:10px}.vineyard-map-toolbar .is-active{background:#0b7a38;color:#fff;box-shadow:0 0 0 4px rgba(11,122,56,.18)}.map-version-badge{display:inline-block;margin-top:4px;padding:3px 8px;border-radius:999px;background:#dcfce7;color:#166534;font-weight:750}.vineyard-style-row{display:grid;grid-template-columns:1fr 2fr;gap:14px;align-items:center;margin:10px 0 12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.vineyard-style-row label{display:flex;align-items:center;gap:10px;font-weight:700}.vineyard-style-row input[type=color]{width:52px;height:40px;padding:2px;border:1px solid var(--line);border-radius:8px}.vineyard-style-row input[type=range]{flex:1}.map-status{padding:1rem;border-radius:12px;font-weight:600}.map-status--warning{background:#fff7e6;color:#7a4a00;border:1px solid #f4d58d}
@media(max-width:768px){.vineyard-map-card{padding:10px;margin:10px}.vineyard-map-header{flex-direction:column}.vineyard-map-area{width:100%;text-align:center}.vineyard-map-toolbar{display:grid;grid-template-columns:1fr 1fr}.vineyard-map-toolbar .btn{width:100%;padding-inline:7px}.vineyard-map{height:420px}.vineyard-coordinate-row{grid-template-columns:1fr 1fr}.vineyard-coordinate-row .btn{grid-column:1/-1;width:100%}.vineyard-style-row{grid-template-columns:1fr}}
.vineyard-details-map{height:520px;border-radius:14px;border:1px solid var(--line);overflow:hidden}.vineyard-map-details-card{padding:18px;margin-top:16px}.vineyard-map-details-card h3{margin-bottom:12px}
@media(max-width:430px){.vineyard-map-toolbar{grid-template-columns:1fr}.vineyard-map{height:360px}.vineyard-coordinate-row{grid-template-columns:1fr}.vineyard-coordinate-row .btn{grid-column:auto}.vineyard-details-map{height:400px}}

/* Racking / batch merge choice */
.racking-merge-box{margin:14px 0;padding:14px;border:1px solid #d8dee6;border-radius:12px;background:rgba(255,255,255,.55)}
.racking-merge-box>label{display:block;margin-top:0;font-weight:700}
.racking-merge-box small{display:block;margin-top:7px;line-height:1.45}
.racking-merge-box #rackingNewBatchCodeRow{margin-top:12px}

/* V51 - clearer batch history and full lineage / traceability */
.batch-history-current-summary{border-left:5px solid #1769c7}.batch-history-summary-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.batch-history-summary-title strong{font-size:20px;color:#17212f}.batch-history-step{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#e8f2fd;color:#1769c7;font-size:10px;font-weight:850;letter-spacing:.04em}.batch-history-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:15px}.batch-history-section-head h3{margin:0 0 4px}.batch-history-section-head p{margin:0;color:#66788a;font-size:12px;line-height:1.45}.batch-lineage-count,.batch-history-count{display:inline-flex;align-items:center;white-space:nowrap;padding:5px 9px;border-radius:999px;background:#eef3f8;color:#526170;font-size:10px;font-weight:800}.batch-lineage-tree{display:grid;gap:10px}.batch-lineage-node{position:relative;border:1px solid #dbe4ec;border-left:4px solid #94a3b8;border-radius:11px;background:#fff;padding:13px 14px}.batch-lineage-node.is-current{border-left-color:#1769c7;background:#f7fbff}.batch-lineage-node.is-reference{border-left-color:#a06a19;background:#fffaf0}.batch-lineage-node-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.batch-lineage-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.batch-lineage-relation{font-size:10px;font-weight:800;color:#637589;text-transform:uppercase;letter-spacing:.035em}.batch-lineage-code{font-size:15px;font-weight:850;color:#17212f;text-decoration:none}.batch-lineage-code:hover{text-decoration:underline}.batch-lineage-current-badge,.batch-lineage-archive-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:850}.batch-lineage-current-badge{background:#dbeafe;color:#1559a6}.batch-lineage-archive-badge{background:#fff0c9;color:#88591a}.batch-lineage-meta{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:9px;color:#617285;font-size:11px}.batch-lineage-detail{margin-top:9px;padding:8px 10px;border-radius:8px;background:#f3f6f9;color:#435466;font-size:11px;line-height:1.45}.batch-lineage-receipts{margin-top:11px;padding:10px;border:1px solid #d9e8df;border-radius:9px;background:#f5fbf7}.batch-lineage-subtitle{margin-bottom:8px;color:#23684f;font-size:10px;font-weight:850;text-transform:uppercase}.batch-lineage-receipt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.batch-lineage-receipt{display:grid;gap:2px;padding:9px 10px;border:1px solid #d5e7dc;border-radius:8px;background:#fff}.batch-lineage-receipt strong{font-size:12px;color:#155f50}.batch-lineage-receipt span{font-size:10px;color:#637589}.batch-lineage-branch-label{margin-top:12px;color:#526170;font-size:10px;font-weight:800}.batch-lineage-children{display:grid;gap:10px;margin-top:8px;margin-left:18px;padding-left:14px;border-left:2px solid #dbe4ec}.batch-history-category-block+.batch-history-category-block{margin-top:18px}.batch-history-event-head{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;margin-bottom:3px}.batch-history-event-head span{display:inline-flex;padding:2px 7px;border-radius:999px;background:#eef3f8;color:#526170;font-size:10px;font-weight:750}.batch-source-history-list{display:grid;gap:9px}.batch-source-history-item{border:1px solid #dce4ed;border-radius:10px;background:#fff;overflow:hidden}.batch-source-history-item>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;background:#f8fafc;list-style:none}.batch-source-history-item>summary::-webkit-details-marker{display:none}.batch-source-history-item>summary>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.batch-source-history-item>summary strong{font-size:13px;color:#17212f}.batch-source-history-item>summary>span{font-size:10px;color:#718096}.batch-source-history-level{padding:3px 6px;border-radius:999px;background:#e8f2fd;color:#1769c7;font-size:9px;font-weight:850}.batch-source-history-relation{font-size:10px;color:#637589}.batch-source-history-body{padding:13px 14px;border-top:1px solid #e4eaf0}.batch-source-history-detail{margin:0 0 10px;padding:8px 10px;border-radius:8px;background:#f3f6f9;color:#526170;font-size:11px}.batch-source-receipt-summary{margin-bottom:10px;padding:8px 10px;border-radius:8px;background:#f0faf4;color:#35614d;font-size:11px}.source-timeline,.inherited-timeline{margin-top:8px}.batch-history-inherited-card{border-left:4px solid #a06a19}.batch-history-own-card{border-left:4px solid #1769c7}.batch-history-sources-card{border-left:4px solid #2f7d64}
@media(max-width:700px){.batch-history-section-head{flex-direction:column}.batch-lineage-node-head{flex-direction:column}.batch-lineage-children{margin-left:7px;padding-left:9px}.batch-source-history-item>summary{align-items:flex-start;flex-direction:column}.batch-lineage-count,.batch-history-count{white-space:normal}}

/* =============================================================
   V69 — Unified light grid appearance
   Match the clean Vineyard Details grid across grid/card views.
   ============================================================= */
:root{
  --unified-grid-accent:#2d9c91;
  --unified-grid-accent-dark:#187568;
  --unified-grid-soft:#f8fafc;
  --unified-grid-selected:#edf9f7;
  --unified-grid-border:#e0e7ef;
  --unified-grid-text:#17212f;
  --unified-grid-muted:#718096;
}

/* Brown module accents are replaced with the same clean teal used by vineyards. */
body[data-controller="barrels"],
body[data-controller="presses"]{
  --module-accent:var(--unified-grid-accent)!important;
  --module-soft:var(--unified-grid-selected)!important;
}
body[data-controller="barrels"] .section-accent,
body[data-controller="presses"] .section-accent{
  background:var(--unified-grid-accent)!important;
}

/* Main grid tiles: Tanks, Batches and Barrels. */
.tank-mini-grid{
  gap:10px!important;
  background:#fff!important;
}
.tank-mini-grid .tank-mini{
  background:var(--unified-grid-soft)!important;
  border:1px solid var(--unified-grid-border)!important;
  border-left:4px solid var(--unified-grid-accent)!important;
  border-radius:9px!important;
  color:var(--unified-grid-text)!important;
  box-shadow:none!important;
}
.tank-mini-grid .tank-mini:hover{
  background:#fff!important;
  border-color:#b8d9d4!important;
  border-left-color:var(--unified-grid-accent)!important;
  box-shadow:0 4px 12px rgba(31,50,73,.065)!important;
  transform:translateY(-1px)!important;
}
.tank-mini-grid .tank-mini.selected,
.barrel-board .tank-mini.selected,
.batch-board .tank-mini.selected,
.analysis-board .tank-mini.selected{
  background:var(--unified-grid-selected)!important;
  border-color:#b9ddd8!important;
  border-left:4px solid var(--unified-grid-accent)!important;
  color:var(--unified-grid-text)!important;
  box-shadow:0 0 0 1px rgba(45,156,145,.08)!important;
}
.tank-mini-grid .tank-mini-top,
.tank-mini-grid .tank-mini.selected .tank-mini-top,
.tank-mini-grid .tank-mini-batch,
.tank-mini-grid .tank-mini.selected .tank-mini-batch{
  color:var(--unified-grid-text)!important;
}
.tank-mini-grid .tank-mini-qty,
.tank-mini-grid .tank-mini.selected .tank-mini-qty{
  color:var(--unified-grid-muted)!important;
}
.tank-mini-grid .tank-mini-tag,
.tank-mini-grid .tank-mini.selected .tank-mini-tag{
  background:#fff!important;
  color:#526170!important;
  border:1px solid #e2e8ef!important;
}
.tank-mini-grid .tank-mini-level,
.tank-mini-grid .tank-mini.selected .tank-mini-level{
  background:#e2e8ef!important;
}
.barrel-board .tank-info-title,
.batch-board .tank-info-title,
.analysis-board .tank-info-title{
  color:var(--unified-grid-accent)!important;
  border-bottom-color:#d9efec!important;
}

/* Master-detail side information follows the same clean tile language. */
.tank-info-rows{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px!important;
  margin-top:10px!important;
}
.tank-info-row,
.tank-info-row:nth-child(odd){
  display:block!important;
  padding:11px 12px!important;
  border:1px solid var(--unified-grid-border)!important;
  border-left:3px solid var(--unified-grid-accent)!important;
  border-radius:9px!important;
  background:var(--unified-grid-soft)!important;
}
.tank-info-row span:first-child{
  display:block!important;
  color:var(--unified-grid-muted)!important;
  font-size:10px!important;
  font-weight:700!important;
  text-transform:uppercase!important;
}
.tank-info-row strong{
  display:block!important;
  margin-top:5px!important;
  color:var(--unified-grid-text)!important;
  font-size:13px!important;
}

/* Completed batches and other card grids. */
.completed-grid .completed-card,
.cellar-grid .cellar-card,
.portal-card-tiles .glass-card,
.dash-kpi-grid .dash-kpi-card{
  background:var(--unified-grid-soft)!important;
  border:1px solid var(--unified-grid-border)!important;
  border-left:4px solid var(--unified-grid-accent)!important;
  border-radius:9px!important;
  box-shadow:none!important;
}
.completed-grid .completed-card:hover,
.cellar-grid .cellar-card:hover,
.portal-card-tiles .glass-card:hover,
.dash-kpi-grid .dash-kpi-card:hover{
  background:#fff!important;
  box-shadow:0 4px 12px rgba(31,50,73,.065)!important;
}
.completed-grid .completed-card-head{
  background:transparent!important;
  border-bottom:1px solid #e6ebf1!important;
}
.completed-grid .completed-badge{
  background:#fff!important;
  color:var(--unified-grid-accent-dark)!important;
  border:1px solid #d5ebe7!important;
}

/* The Vineyard Details grid is the visual reference — keep all details grids identical. */
.details-grid .detail-item,
.vineyard-information-grid>div,
.analysis-metric,
.weight-kpi{
  background:var(--unified-grid-soft)!important;
  border:1px solid var(--unified-grid-border)!important;
  border-left:3px solid var(--unified-grid-accent)!important;
  border-radius:9px!important;
  box-shadow:none!important;
}
.details-grid .detail-item dt,
.vineyard-information-grid dt,
.analysis-metric span,
.weight-kpi small{
  color:var(--unified-grid-muted)!important;
}
.details-grid .detail-item dd,
.vineyard-information-grid dd,
.analysis-metric strong,
.weight-kpi strong{
  color:var(--unified-grid-text)!important;
}

/* No brown selection/accent survives inside grids. */
.barrel-board .tank-mini.selected{
  background:var(--unified-grid-selected)!important;
  border-color:#b9ddd8!important;
  border-left-color:var(--unified-grid-accent)!important;
  color:var(--unified-grid-text)!important;
}

@media(max-width:768px){
  .tank-info-rows{grid-template-columns:1fr!important}
  .tank-mini-grid .tank-mini{border-left-width:3px!important}
}

/* =============================================================
   V70 — Oenologist work orders
   ============================================================= */
body[data-controller="oenologisttasks"]{
  --module-accent:#2d9c91!important;
  --module-soft:#edf9f7!important;
}
body[data-controller="oenologisttasks"] .section-accent{background:#2d9c91!important}
.oenologist-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.oenologist-tab{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 13px;border:1px solid #dce4ed;border-radius:9px;background:#fff;color:#526170;text-decoration:none;font-size:12px;font-weight:800}.oenologist-tab span{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;border-radius:999px;background:#eef3f8;color:#526170;font-size:10px}.oenologist-tab.is-active{border-color:#9dd1ca;background:#edf9f7;color:#187568}.oenologist-tab.is-active span{background:#d7f0ec;color:#176d62}.oenologist-filter-card{padding:13px!important}.oenologist-search-form{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:9px;align-items:end}.oenologist-search-form label{display:block;margin-bottom:4px;color:#526170;font-size:10px;font-weight:800}.oenologist-task-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px}.oenologist-task-card{position:relative;padding:15px;border:1px solid #dfe6ed;border-left:4px solid #2d9c91;border-radius:11px;background:#fff;box-shadow:0 4px 14px rgba(31,50,73,.045)}.oenologist-task-card.is-completed{border-left-color:#5b8c61;background:#fbfdfb}.oenologist-task-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid #e8edf2}.oenologist-task-card-head>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.oenologist-task-card-head time{font-size:10px;color:#7a8796;white-space:nowrap}.oenologist-task-code{font-size:14px;font-weight:900;color:#17212f}.oenologist-status{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:850;letter-spacing:.02em}.oenologist-status.open{background:#fff1cc;color:#875d10}.oenologist-status.completed{background:#e4f3e7;color:#326f3b}.oenologist-target{display:flex;align-items:center;gap:7px;margin-top:11px;color:#244250;font-size:12px;font-weight:800}.oenologist-task-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.oenologist-task-chips span{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #e0e7ee;border-radius:7px;background:#f7f9fb;color:#536474;font-size:10px;font-weight:700}.oenologist-instructions{margin:10px 0 0;padding:9px 10px;border-radius:8px;background:#f7fafc;color:#526170;font-size:11px;line-height:1.5}.oenologist-task-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:12px}.oenologist-user-meta{display:grid;gap:2px;color:#7a8796;font-size:9px}.oenologist-task-footer .actions{display:flex;gap:6px}.oenologist-task-footer .btn{min-height:34px!important;padding:5px 9px!important;font-size:10px!important}.oenologist-empty{display:grid;place-items:center;gap:10px;min-height:220px;text-align:center;color:#66788a}.oenologist-empty>i{font-size:42px;color:#9aabbc}.oenologist-help{margin:-4px 0 12px;color:#718096;font-size:11px;line-height:1.45}.oenologist-create-section{border-left:4px solid #2d9c91!important}.oenologist-analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.oenologist-analysis-option{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #dfe6ed;border-radius:8px;background:#f9fbfc;cursor:pointer}.oenologist-analysis-option:hover{border-color:#a8d5cf;background:#f3fbf9}.oenologist-analysis-option input{width:17px;height:17px;min-height:0;margin-top:1px;accent-color:#2d9c91}.oenologist-analysis-option span{display:grid;gap:2px}.oenologist-analysis-option strong{font-size:11px;color:#23313f}.oenologist-analysis-option small{font-size:9px;color:#718096}.oenologist-section-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.oenologist-section-title-row h3{margin-bottom:8px!important}.oenologist-product-rows{display:grid;gap:9px}.oenologist-product-row{position:relative;display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(140px,.7fr) minmax(130px,.7fr);gap:9px;align-items:end;padding:12px 43px 12px 12px;border:1px solid #dfe6ed;border-left:3px solid #2d9c91;border-radius:9px;background:#f9fbfc}.oenologist-product-row label{display:block;margin-bottom:4px;color:#526170;font-size:9px;font-weight:800}.oenologist-remove-row{position:absolute;right:10px;top:10px;width:26px;height:26px;border:1px solid #e0aeb1;border-radius:6px;background:#fff3f3;color:#b72e36;font-size:18px;line-height:1;cursor:pointer}.oenologist-detail-header{display:flex;gap:10px 16px;align-items:center;flex-wrap:wrap;margin-bottom:12px;color:#617285;font-size:10px}.oenologist-linked-batches{display:flex;gap:7px;flex-wrap:wrap}.oenologist-linked-batches a,.oenologist-linked-batches span{display:inline-flex;padding:6px 9px;border:1px solid #cfe5e1;border-radius:7px;background:#f3fbf9;color:#176d62;text-decoration:none;font-size:11px;font-weight:800}.oenologist-note-box{padding:12px 13px;border:1px solid #dfe6ed;border-left:4px solid #2d9c91;border-radius:9px;background:#f8fafc;color:#3f5060;font-size:12px;line-height:1.6;white-space:pre-wrap}.oenologist-completion-card{border-left:4px solid #5b8c61!important}.oenologist-operation-banner{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:9px 11px;border-radius:8px;background:#edf9f7;color:#176d62;font-size:12px;font-weight:850}.oenologist-completion-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}.oenologist-result-card{display:grid;gap:5px;padding:12px;border:1px solid #dfe6ed;border-left:3px solid #2d9c91;border-radius:9px;background:#f9fbfc}.oenologist-result-card>strong{font-size:12px;color:#23313f}.oenologist-result-card>small{margin-top:-3px;color:#718096;font-size:9px}.oenologist-result-card label{margin-top:4px;color:#526170;font-size:9px;font-weight:800}.oenologist-history-block{margin-top:14px;padding-top:12px;border-top:1px solid #e4eaf0}.oenologist-history-block h4{margin:0 0 9px;color:#176d62;font-size:12px}.oenologist-history-list{display:grid;gap:8px}.oenologist-history-item{padding:9px 10px;border:1px solid #dce7e5;border-left:3px solid #2d9c91;border-radius:8px;background:#f8fbfb}.oenologist-history-item strong{display:block;color:#23313f;font-size:11px}.oenologist-history-item span{display:block;margin-top:3px;color:#718096;font-size:9px}.oenologist-history-item p{margin:5px 0 0;color:#526170;font-size:10px;line-height:1.45}
@media(max-width:760px){.oenologist-search-form{grid-template-columns:1fr}.oenologist-task-grid{grid-template-columns:1fr}.oenologist-task-footer{align-items:stretch;flex-direction:column}.oenologist-task-footer .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.oenologist-product-row{grid-template-columns:1fr;padding-right:42px}.oenologist-section-title-row{flex-direction:column}.oenologist-section-title-row .btn{width:100%}.oenologist-analysis-grid{grid-template-columns:1fr}.oenologist-completion-grid{grid-template-columns:1fr}}

/* V71 - Δοσολογία Οινολόγου ανά τόνο */
.oenologist-volume-hint{display:flex;align-items:center;gap:8px;margin-top:11px;padding:9px 11px;border:1px solid #dfe6ed;border-radius:8px;background:#f7f9fb;color:#68798a;font-size:10px;font-weight:750}.oenologist-volume-hint.has-volume{border-color:#b9ddd8;background:#f0faf8;color:#176d62}.oenologist-volume-hint i{font-size:15px}.oenologist-dose-row{grid-template-columns:minmax(220px,1.5fr) minmax(175px,.85fr) minmax(185px,.9fr) minmax(130px,.65fr)}.oenologist-dose-input-wrap{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0}.oenologist-dose-input-wrap .input{border-radius:7px 0 0 7px!important}.oenologist-dose-input-wrap span{display:flex;align-items:center;justify-content:center;min-height:38px;padding:0 9px;border:1px solid #d8e0e8;border-left:0;border-radius:0 7px 7px 0;background:#edf3f7;color:#526170;font-size:9px;font-weight:850;white-space:nowrap}.oenologist-dose-summary{grid-column:1/-1;padding:7px 9px;border-radius:7px;background:#edf9f7;color:#176d62;font-size:10px;font-weight:800}.oenologist-dose-formula{display:grid;gap:4px;margin:2px 0 5px;padding:8px 9px;border:1px solid #cfe5e1;border-radius:7px;background:#f3fbf9;color:#41606a;font-size:10px}.oenologist-dose-formula strong{color:#176d62}.oenologist-result-card .oenologist-dose-formula span{display:block}.oenologist-product-row input[readonly]{background:#f1f5f8;color:#23313f;font-weight:850}
@media(max-width:900px){.oenologist-dose-row{grid-template-columns:1fr 1fr}.oenologist-dose-summary{grid-column:1/-1}}
@media(max-width:760px){.oenologist-dose-row{grid-template-columns:1fr}.oenologist-dose-summary{grid-column:auto}}

/* V72 - Νέα σελίδα Οινολόγου */
.oenologist-page-header{margin-bottom:14px}.oenologist-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.oenologist-kpi{display:flex;align-items:center;gap:11px;padding:13px 14px;border:1px solid #dfe6ed;border-radius:11px;background:#fff;box-shadow:0 4px 14px rgba(31,50,73,.035)}.oenologist-kpi-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#edf9f7;color:#187568;font-size:18px}.oenologist-kpi>div{display:grid;gap:1px}.oenologist-kpi strong{font-size:20px;line-height:1;color:#17212f}.oenologist-kpi small{font-size:10px;font-weight:750;color:#718096}.oenologist-kpi.is-today .oenologist-kpi-icon{background:#eef5ff;color:#2f6fb1}.oenologist-kpi.is-overdue .oenologist-kpi-icon{background:#fff1f0;color:#b63d45}.oenologist-kpi.is-completed .oenologist-kpi-icon{background:#edf8ef;color:#3f7e48}.oenologist-tabs-main{margin-bottom:14px}.oenologist-advanced-search-form{display:grid;grid-template-columns:minmax(260px,1.7fr) minmax(130px,.65fr) minmax(135px,.7fr) minmax(170px,.9fr) auto;gap:9px;align-items:end}.oenologist-advanced-search-form label{display:block;margin-bottom:4px;color:#526170;font-size:10px;font-weight:800}.oenologist-filter-actions{display:flex;gap:6px;align-items:center}.oenologist-worklist{display:grid;gap:10px}.oenologist-workitem{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px;padding:15px 16px;border:1px solid #dfe6ed;border-left:4px solid #2d9c91;border-radius:11px;background:#fff;box-shadow:0 4px 14px rgba(31,50,73,.04)}.oenologist-workitem.is-overdue{border-left-color:#c34b51}.oenologist-workitem.is-completed{border-left-color:#5b8c61;background:#fbfdfb}.oenologist-workitem-topline{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.oenologist-workitem-main h3{margin:7px 0 2px;font-size:14px;color:#1d2a38}.oenologist-priority,.oenologist-due-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:850}.oenologist-priority.normal{background:#eef3f8;color:#566676}.oenologist-priority.low{background:#f4f6f8;color:#7b8794}.oenologist-priority.high{background:#fff3d6;color:#8b6515}.oenologist-priority.urgent{background:#ffe7e5;color:#ab2f37}.oenologist-due-badge.today{background:#eaf3ff;color:#2f6fb1}.oenologist-due-badge.overdue{background:#ffe9e8;color:#b23840}.oenologist-workitem-side{display:flex;flex-direction:column;justify-content:space-between;gap:13px;padding-left:14px;border-left:1px solid #e7ecf1}.oenologist-workitem-dates{display:grid;gap:9px}.oenologist-workitem-dates span{display:grid;gap:2px}.oenologist-workitem-dates small{font-size:9px;font-weight:800;color:#8895a2}.oenologist-workitem-dates strong{font-size:10px;color:#445463}.oenologist-workitem-actions{display:flex;gap:6px;justify-content:flex-end}.oenologist-workitem-actions .btn{min-height:34px!important;padding:5px 9px!important;font-size:10px!important}.oenologist-section-heading{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.oenologist-section-heading h3{margin:0 0 3px!important;font-size:14px}.oenologist-section-heading p{margin:0;color:#718096;font-size:10px;line-height:1.45}.oenologist-step{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:8px;background:#e5f5f2;color:#176d62;font-size:11px;font-weight:900}.oenologist-assignment-grid{grid-template-columns:minmax(120px,.6fr) minmax(220px,1.2fr) minmax(150px,.75fr) minmax(130px,.65fr)}.oenologist-target-grid{grid-template-columns:minmax(180px,.65fr) minmax(300px,1.35fr)}.oenologist-target-preview{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:11px 12px;border:1px solid #dfe6ed;border-radius:9px;background:#f8fafc}.oenologist-target-preview.has-target{border-color:#b7ddd7;background:#f1faf8}.oenologist-target-preview-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:8px;background:#edf3f7;color:#657787}.oenologist-target-preview.has-target .oenologist-target-preview-icon{background:#dff2ef;color:#176d62}.oenologist-target-preview strong{display:block;margin-bottom:3px;color:#253443;font-size:11px}.oenologist-target-preview p{margin:0;color:#66798b;font-size:10px;line-height:1.5}.oenologist-create-actions{position:sticky;bottom:10px;z-index:5;display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding:10px;border:1px solid #dfe6ed;border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(31,50,73,.10);backdrop-filter:blur(8px)}.oenologist-execution-meta{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 14px}.oenologist-execution-meta span{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid #dfe6ed;border-radius:8px;background:#fff;color:#526170;font-size:10px;font-weight:800}
@media(max-width:1100px){.oenologist-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.oenologist-advanced-search-form{grid-template-columns:1fr 1fr 1fr}.oenologist-search-wide{grid-column:1/-1}.oenologist-filter-actions{grid-column:1/-1}.oenologist-workitem{grid-template-columns:1fr}.oenologist-workitem-side{padding-left:0;padding-top:11px;border-left:0;border-top:1px solid #e7ecf1;flex-direction:row;align-items:end}.oenologist-assignment-grid{grid-template-columns:1fr 1fr}.oenologist-target-grid{grid-template-columns:1fr}}
@media(max-width:760px){.oenologist-kpis{grid-template-columns:1fr 1fr}.oenologist-kpi{padding:10px}.oenologist-advanced-search-form{grid-template-columns:1fr}.oenologist-search-wide,.oenologist-filter-actions{grid-column:auto}.oenologist-filter-actions{display:grid;grid-template-columns:1fr 1fr}.oenologist-workitem-side{flex-direction:column;align-items:stretch}.oenologist-workitem-actions{display:grid;grid-template-columns:1fr 1fr}.oenologist-assignment-grid{grid-template-columns:1fr}.oenologist-create-actions{position:static;display:grid;grid-template-columns:1fr 1fr}.oenologist-section-title-row{gap:8px}}

/* V74 - Oenologist ordered instruction lists: Processings -> Oenologicals -> Analyses */
.oenologist-analysis-picker{display:grid;gap:10px}.oenologist-analysis-picker-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:9px;align-items:end}.oenologist-analysis-picker-row label{display:block;margin-bottom:4px;color:#526170;font-size:10px;font-weight:800}.oenologist-selected-analyses{display:grid;gap:7px}.oenologist-selected-analysis{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid #dfe6ed;border-left:3px solid #2d9c91;border-radius:8px;background:#f9fbfc}.oenologist-selected-analysis>span{display:grid;gap:1px;min-width:0;flex:1}.oenologist-selected-analysis strong{font-size:11px;color:#23313f}.oenologist-selected-analysis small{font-size:9px;color:#718096}.oenologist-remove-analysis{display:grid;place-items:center;width:26px;height:26px;flex:0 0 26px;border:1px solid #e0aeb1;border-radius:6px;background:#fff3f3;color:#b72e36;font-size:18px;line-height:1;cursor:pointer}.oenologist-analysis-empty{padding:9px 10px;border:1px dashed #d6dee7;border-radius:8px;background:#fbfcfd;color:#81909e;font-size:10px;text-align:center}
@media(max-width:760px){.oenologist-analysis-picker-row{grid-template-columns:1fr}.oenologist-analysis-picker-row .btn{width:100%}}

/* ═══════════════════════════════════════════════════════════════
   V85 — Mobile & tablet friendly pass
   Responsive-only changes. No business logic / security changes.
═══════════════════════════════════════════════════════════════ */

/* Prevent grid/flex children from forcing horizontal overflow. */
.enterprise-main,
#main-content,
.card,
.table-shell,
.form-grid > *,
.filter-grid > *,
.grid-2 > *,
.dash-main-grid > *,
.batch-overview-grid > * {
  min-width: 0;
}

.table-scroll-wrap,
.mobile-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Better touch behaviour without changing desktop interactions. */
@media (hover: none) and (pointer: coarse) {
  .btn,
  .enterprise-nav-link,
  .enterprise-nav-top-link,
  .enterprise-nav-menu > summary,
  .batch-action,
  .tank-tool,
  .dash-shortcut,
  .dash-module {
    -webkit-tap-highlight-color: transparent;
  }

  .batch-action:hover,
  .tank-mini:hover,
  .glass-card:hover,
  .dash-kpi-card:hover {
    transform: none !important;
  }
}

/* Tablet: reduce multi-column pressure before phone breakpoint. */
@media (max-width: 1024px) {
  .grid-2,
  .dash-main-grid,
  .batch-overview-grid {
    grid-template-columns: 1fr !important;
  }

  .portal-card-tiles,
  .dash-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-grid.compact-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .history-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  body {
    font-size: 14px;
    -webkit-text-size-adjust: 100%;
  }

  /* App shell / off-canvas navigation */
  .enterprise-sidebar {
    width: min(88vw, 330px) !important;
    max-width: 330px;
    padding-bottom: env(safe-area-inset-bottom);
  }

  .enterprise-brand-wrap {
    padding: 18px 16px 14px;
  }

  .enterprise-nav-wrap {
    padding: 8px;
  }

  .enterprise-nav-link,
  .enterprise-nav-top-link,
  .enterprise-nav-menu > summary {
    min-height: 46px;
    padding: 11px 12px;
    font-size: 14px;
  }

  .enterprise-nav-submenu {
    padding-left: 8px;
  }

  .enterprise-menu-toggle {
    width: 44px !important;
    height: 44px !important;
    top: max(8px, env(safe-area-inset-top));
    left: max(8px, env(safe-area-inset-left));
  }

  .content-topbar {
    min-height: 60px !important;
    height: auto !important;
    padding: 8px 10px 8px 62px !important;
    gap: 8px;
  }

  .enterprise-search {
    min-width: 0;
    max-width: none;
    padding: 8px 10px;
  }

  .enterprise-search-input {
    min-width: 0;
    font-size: 16px; /* prevents iOS zoom */
  }

  .enterprise-header-actions {
    gap: 6px;
  }

  .enterprise-user-chip {
    display: none;
  }

  .enterprise-logout {
    min-height: 42px;
    padding: 8px 6px;
    font-size: 12px;
  }

  #main-content {
    padding: 14px 12px calc(28px + env(safe-area-inset-bottom)) !important;
    width: 100%;
    max-width: 100%;
  }

  /* Headers and actions */
  .page-header {
    align-items: stretch !important;
    gap: 10px;
    margin-bottom: 14px;
    padding: 0 !important;
  }

  .page-header h1 {
    font-size: 20px !important;
    line-height: 1.25;
  }

  .page-header p,
  .page-subtitle {
    line-height: 1.45;
  }

  .page-title-icon {
    width: 36px;
    height: 36px;
    margin-right: 7px;
  }

  .page-header .actions,
  .actions {
    width: 100%;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .page-header .actions > *,
  .actions > .btn,
  .actions > form,
  .actions > form > .btn {
    width: 100%;
  }

  /* Touch-sized controls */
  .btn {
    min-height: 44px;
    padding: 9px 12px;
    justify-content: center;
    white-space: normal;
    text-align: center;
    line-height: 1.2;
  }

  .btn-small {
    min-height: 40px;
    padding: 8px 10px;
  }

  input.input,
  select.input,
  textarea.input,
  .form-control,
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"],
  input[type="number"],
  input[type="text"],
  input[type="search"] {
    min-height: 46px !important;
    max-width: 100%;
    font-size: 16px !important; /* prevents mobile browser focus zoom */
  }

  textarea.input,
  textarea.form-control,
  textarea {
    min-height: 100px;
    resize: vertical;
  }

  select.input,
  select.form-control,
  select {
    text-overflow: ellipsis;
  }

  /* Cards/forms */
  .card,
  .portal-card,
  .filter-card,
  .filter-toggle-card,
  .table-shell {
    max-width: 100%;
    border-radius: 11px !important;
  }

  .card {
    padding: 14px !important;
    margin-bottom: 12px;
  }

  .card > h2,
  .card > h3 {
    line-height: 1.3;
  }

  .form-grid,
  .form-grid.compact-form-grid,
  .filter-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .form-grid {
    padding: 12px !important;
  }

  .form-grid .full,
  .filter-grid .full {
    grid-column: auto !important;
  }

  .form-actions,
  .filter-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    width: 100%;
  }

  .form-actions {
    position: static !important;
    padding: 12px !important;
  }

  .form-actions .btn,
  .filter-actions .btn,
  .filter-actions a {
    width: 100%;
  }

  .filter-toggle-summary {
    gap: 10px;
    min-height: 48px;
    padding: 12px 13px !important;
  }

  .filter-toggle-body,
  .filter-card {
    padding: 12px !important;
  }

  /* Details and KPI blocks */
  .details-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  .details-grid .detail-item {
    padding: 11px !important;
  }

  .details-grid .detail-item dd {
    font-size: 13px !important;
  }

  .portal-card-tiles,
  .dash-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }

  .glass-card,
  .dash-kpi-card {
    padding: 12px !important;
  }

  .dash-kpi-value {
    font-size: 21px;
  }

  .dash-modules {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }

  .dash-module {
    min-height: 76px;
    justify-content: center;
  }

  /* Tabs/chips remain horizontally scrollable instead of wrapping badly. */
  .section-tabs,
  .batch-tabs,
  .oenologist-tabs {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  /* Standard tables: the app's JS adds data-label; render as readable cards. */
  .table-scroll-wrap,
  .mobile-table-scroll,
  .table-shell {
    overflow: visible;
  }

  table.table:not(.no-mobile-cards),
  table.indicator-table:not(.no-mobile-cards) {
    min-width: 0 !important;
  }

  .table:not(.no-mobile-cards) thead,
  .indicator-table:not(.no-mobile-cards) thead {
    display: none !important;
  }

  .table:not(.no-mobile-cards) tbody,
  .table:not(.no-mobile-cards) tr,
  .table:not(.no-mobile-cards) td,
  .indicator-table:not(.no-mobile-cards) tbody,
  .indicator-table:not(.no-mobile-cards) tr,
  .indicator-table:not(.no-mobile-cards) td {
    display: block;
    width: 100%;
  }

  .table:not(.no-mobile-cards) tr,
  .indicator-table:not(.no-mobile-cards) tr {
    padding: 9px 11px !important;
    margin: 0 0 10px !important;
    border: 1px solid var(--line) !important;
    border-radius: 11px !important;
    background: #fff;
    box-shadow: 0 2px 8px rgba(31,50,73,.04);
  }

  .table:not(.no-mobile-cards) td,
  .indicator-table:not(.no-mobile-cards) td {
    min-height: 34px;
    padding: 6px 0 !important;
    border: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    text-align: left !important;
  }

  .table:not(.no-mobile-cards) td[data-label],
  .indicator-table:not(.no-mobile-cards) td[data-label] {
    display: grid;
    grid-template-columns: minmax(100px, 40%) minmax(0, 1fr);
    gap: 10px;
    align-items: start;
  }

  .table:not(.no-mobile-cards) td[data-label]::before,
  .indicator-table:not(.no-mobile-cards) td[data-label]::before {
    content: attr(data-label);
    color: #718096;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.35;
    text-transform: uppercase;
    letter-spacing: .03em;
  }

  .table:not(.no-mobile-cards) td.table-actions,
  .table:not(.no-mobile-cards) td.actions {
    display: flex !important;
    justify-content: stretch !important;
    flex-wrap: wrap;
    gap: 7px;
    padding-top: 10px !important;
    border-top: 1px solid #edf0f4 !important;
  }

  .table-action-text {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    margin: 0;
    padding: 7px 9px;
    border: 1px solid #d9e2eb;
    border-radius: 8px;
    background: #fff;
  }

  /* Tables explicitly kept tabular still scroll safely. */
  .table.no-mobile-cards {
    min-width: 700px;
  }

  /* History: its custom Excel table becomes mobile record cards. */
  .history-page {
    gap: 12px !important;
  }

  .history-hero {
    flex-direction: column !important;
    padding: 14px !important;
  }

  .history-hero h2 {
    font-size: 19px !important;
  }

  .history-hero-actions {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .history-hero-actions .btn {
    width: 100%;
  }

  .history-filter-card {
    padding: 12px !important;
  }

  .history-filter-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .history-filter-actions {
    grid-column: auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .history-summary-strip {
    overflow-x: auto;
    flex-wrap: nowrap !important;
    padding-bottom: 4px !important;
    -webkit-overflow-scrolling: touch;
  }

  .history-summary-pill {
    flex: 0 0 auto;
  }

  .history-excel-head {
    padding: 11px 12px !important;
  }

  .history-excel-scroll {
    overflow: visible !important;
  }

  .history-excel-table {
    min-width: 0 !important;
    width: 100% !important;
    display: block;
  }

  .history-excel-table thead {
    display: none !important;
  }

  .history-excel-table tbody,
  .history-excel-table tr,
  .history-excel-table td {
    display: block;
    width: 100%;
  }

  .history-excel-table tr {
    margin: 0 !important;
    padding: 10px 12px !important;
    border-bottom: 8px solid var(--page-bg) !important;
    background: #fff !important;
  }

  .history-excel-table tr:last-child {
    border-bottom: 0 !important;
  }

  .history-excel-table td {
    display: grid !important;
    grid-template-columns: minmax(100px, 38%) minmax(0, 1fr);
    gap: 10px;
    padding: 6px 0 !important;
    border: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  .history-excel-table td::before {
    color: #718096;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
  }

  .history-excel-table td:nth-child(1)::before { content: "Ημερομηνία"; }
  .history-excel-table td:nth-child(2)::before { content: "Παρτίδα"; }
  .history-excel-table td:nth-child(3)::before { content: "Τύπος"; }
  .history-excel-table td:nth-child(4)::before { content: "Στοιχεία"; }
  .history-excel-table td:nth-child(5)::before { content: "Ποσότητα"; }
  .history-excel-table td:nth-child(6)::before { content: "Παρατηρήσεις"; }
  .history-excel-table td:nth-child(7)::before { content: "Χρήστης"; }

  /* Tank/barrel screens */
  .tank-board {
    display: block !important;
    min-height: 0 !important;
  }

  .tank-browser {
    border-right: 0 !important;
  }

  .tank-mini-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-height: none !important;
    gap: 8px !important;
  }

  .tank-mini {
    min-width: 0;
  }

  .tank-toolbar {
    overflow-x: auto;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
  }

  .tank-tool {
    flex: 0 0 auto;
    min-width: 44px;
    min-height: 42px;
  }

  .tank-inspector-main {
    padding: 14px !important;
  }

  .tank-info-row {
    grid-template-columns: minmax(100px, 38%) minmax(0, 1fr) !important;
    gap: 9px;
  }

  .tank-inspector-actions {
    position: sticky;
    bottom: 0;
    z-index: 4;
  }

  /* Oenologist */
  .oenologist-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .oenologist-workitem,
  .oenologist-assignment-grid,
  .oenologist-target-grid,
  .oenologist-analysis-grid,
  .oenologist-completion-grid,
  .oenologist-dose-row,
  .oenologist-analysis-picker-row,
  .oenologist-advanced-search-form {
    grid-template-columns: 1fr !important;
  }

  .oenologist-workitem-side {
    padding-left: 0 !important;
    padding-top: 10px;
    border-left: 0 !important;
    border-top: 1px solid #e7ecf1;
  }

  .oenologist-workitem-actions,
  .oenologist-filter-actions,
  .oenologist-create-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    width: 100%;
  }

  .oenologist-create-actions {
    position: static !important;
  }

  /* Maps and wide visual tools */
  .vineyard-map,
  .vineyard-details-map,
  .vineyard-overview-map {
    max-width: 100%;
  }

  .vineyard-map-toolbar,
  .vineyard-details-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .vineyard-map-toolbar .btn,
  .vineyard-details-actions .btn,
  .vineyard-details-actions form,
  .vineyard-details-actions form .btn {
    width: 100%;
  }

  /* Login/auth screens */
  .login-center-shell,
  .auth-shell {
    padding-left: 12px;
    padding-right: 12px;
  }

  .login-card,
  .centered-login-card,
  .enterprise-login-card {
    width: 100%;
    max-width: 430px;
    margin-left: auto;
    margin-right: auto;
    padding: 22px 18px !important;
  }
}

@media (max-width: 480px) {
  .content-topbar {
    padding-right: 8px !important;
  }

  .enterprise-logout {
    font-size: 0;
    width: 38px;
    min-width: 38px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
  }

  .enterprise-logout::after {
    content: "↪";
    font-size: 18px;
    color: var(--muted);
  }

  .page-header .actions,
  .actions,
  .oenologist-workitem-actions,
  .oenologist-filter-actions,
  .oenologist-create-actions,
  .vineyard-map-toolbar,
  .vineyard-details-actions {
    grid-template-columns: 1fr !important;
  }

  .details-grid,
  .portal-card-tiles,
  .dash-kpi-grid,
  .oenologist-kpis {
    grid-template-columns: 1fr !important;
  }

  .dash-modules {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .tank-mini-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .tank-info-row,
  .history-excel-table td,
  .table:not(.no-mobile-cards) td[data-label],
  .indicator-table:not(.no-mobile-cards) td[data-label] {
    grid-template-columns: 1fr !important;
    gap: 3px !important;
  }

  .history-excel-table td::before,
  .table:not(.no-mobile-cards) td[data-label]::before,
  .indicator-table:not(.no-mobile-cards) td[data-label]::before {
    margin-bottom: 1px;
  }

  .batch-kpis,
  .batch-quick-actions,
  .batch-section-toolbar .actions {
    grid-template-columns: 1fr !important;
  }

  .batch-kpi:last-child {
    grid-column: auto !important;
  }

  .summary-card {
    flex-basis: 88vw !important;
  }

  .datetime24-editor {
    grid-template-columns: 1fr !important;
  }
}


/* ═══════════════════════════════════════════════
   V86 QR mobile pages + printable labels
═══════════════════════════════════════════════ */
.qr-mobile-page{max-width:760px;margin:0 auto;display:grid;gap:14px}
.qr-mobile-hero{background:linear-gradient(135deg,#0f6070,#2d9c91);color:#fff;border-radius:16px;padding:22px;box-shadow:var(--shadow)}
.qr-mobile-hero h1{color:#fff;font-size:clamp(26px,6vw,38px);margin:3px 0 5px}
.qr-mobile-hero p{color:rgba(255,255,255,.86);font-size:15px}
.qr-mobile-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;opacity:.82}
.qr-mobile-quantity{font-size:24px;font-weight:800;margin-top:18px;font-variant-numeric:tabular-nums}
.qr-mobile-stage{display:inline-flex;margin-top:12px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.16);font-size:12px;font-weight:700}
.qr-fill-track{height:10px;margin-top:10px;border-radius:999px;background:rgba(255,255,255,.2);overflow:hidden}
.qr-fill-track>span{display:block;height:100%;background:#fff;border-radius:inherit;min-width:0}
.qr-fill-caption{font-size:12px;margin-top:5px;opacity:.85}
.qr-mobile-card{padding:18px}
.qr-mobile-card h2{font-size:17px;margin-bottom:12px}
.qr-content-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--text)}
.qr-content-row:last-child{border-bottom:0}
.qr-content-row span{display:grid;gap:3px;min-width:0}
.qr-content-row strong{font-size:14px;color:var(--heading)}
.qr-content-row small{font-size:12px;color:var(--muted);white-space:normal}
.qr-content-row b{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--heading)}
.qr-content-row.static{cursor:default}
.qr-info-grid{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1.5fr);gap:0}
.qr-info-grid>span,.qr-info-grid>strong{padding:9px 0;border-bottom:1px solid var(--line)}
.qr-info-grid>span{color:var(--muted);padding-right:10px}
.qr-info-grid>strong{text-align:right;color:var(--heading);overflow-wrap:anywhere}
.qr-note{margin-top:14px;padding:12px;border-radius:9px;background:#f7f8fa;line-height:1.5}
.qr-mobile-actions{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:12px}
.qr-mobile-actions .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}

@media(max-width:600px){
  .qr-mobile-page{gap:10px}
  .qr-mobile-hero{padding:18px;border-radius:12px}
  .qr-mobile-card{padding:14px}
  .qr-info-grid{grid-template-columns:1fr}
  .qr-info-grid>span{padding-bottom:2px;border-bottom:0;font-size:12px}
  .qr-info-grid>strong{text-align:left;padding-top:1px}
  .qr-mobile-actions{display:grid;grid-template-columns:1fr}
  .qr-mobile-actions .btn{width:100%}
}


/* ═══════════════════════════════════════════════
   V87 QR quick production actions
═══════════════════════════════════════════════ */
.qr-quick-work-card{overflow:hidden}
.qr-quick-intro{margin:-4px 0 14px;color:var(--muted);font-size:13px;line-height:1.5}
.qr-quick-batch{padding:14px 0;border-top:1px solid var(--line)}
.qr-quick-batch:first-of-type{border-top:0;padding-top:0}
.qr-quick-batch:last-child{padding-bottom:0}
.qr-quick-batch-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.qr-quick-batch-title span{display:grid;gap:2px}
.qr-quick-batch-title strong{font-size:15px;color:var(--heading)}
.qr-quick-batch-title small{font-size:12px;color:var(--muted)}
.qr-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.qr-quick-btn{width:100%;min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.2}
.qr-quick-notice{margin:0 0 12px;padding:10px 12px;border:1px solid #d8e4e8;border-radius:9px;background:#f5f9fa;color:var(--muted);font-size:12px;line-height:1.45}
@media(max-width:480px){
  .qr-quick-grid{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════════
   V89 — Dashboard / alerts
   Operational reminders only. No production data is changed here.
═══════════════════════════════════════════════════════════════ */
.v89-page-subtitle{
  margin:4px 0 0;
  color:#718096;
  font-size:12px;
}
.v89-kpi-link{
  display:block;
  color:inherit;
  text-decoration:none;
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.v89-kpi-link:hover{
  color:inherit;
  border-color:#bfd3ea;
  box-shadow:0 8px 22px rgba(31,50,73,.08);
  transform:translateY(-1px);
}
.v89-kpi-second-row{margin-top:0}
.v89-section-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:14px;
  margin:22px 2px 10px;
}
.v89-section-heading h2{
  margin:0;
  color:#1d2a38;
  font-size:16px;
  letter-spacing:-.015em;
}
.v89-section-heading p{
  margin:3px 0 0;
  color:#7b8794;
  font-size:11px;
}
.v89-alert-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}
.v89-alert-card{
  min-width:0;
  overflow:hidden;
  border:1px solid #dfe6ed;
  border-radius:12px;
  background:#fff;
  box-shadow:0 4px 15px rgba(31,50,73,.035);
}
.v89-alert-card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-bottom:1px solid #e7ecf1;
  background:#fbfcfd;
}
.v89-alert-card-header>div{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
}
.v89-alert-card-header strong{
  color:#263547;
  font-size:12px;
}
.v89-alert-card-header>a,
.v89-header-link{
  flex:0 0 auto;
  color:#1769c1;
  font-size:10px;
  font-weight:750;
  text-decoration:none;
}
.v89-alert-card-header>a:hover,
.v89-header-link:hover{text-decoration:underline}
.v89-alert-icon{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:8px;
  background:#e9f2fb;
  color:#1769c1;
  font-size:15px;
}
.v89-count-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:27px;
  height:24px;
  padding:0 8px;
  border-radius:999px;
  background:#eef3f8;
  color:#526170;
  font-size:10px;
  font-weight:850;
}
.v89-alert-list{display:grid}
.v89-alert-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-width:0;
  padding:10px 14px;
  border-bottom:1px solid #edf1f4;
  color:inherit;
  text-decoration:none;
  transition:background .12s ease;
}
.v89-alert-item:last-child{border-bottom:0}
.v89-alert-item:hover{background:#f7fafc;color:inherit}
.v89-alert-item-main{
  display:grid;
  gap:2px;
  min-width:0;
}
.v89-alert-item-main strong{
  overflow:hidden;
  color:#223140;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.v89-alert-item-main span{
  color:#5f6f80;
  font-size:10px;
  line-height:1.35;
}
.v89-alert-item-main small{
  color:#8a97a4;
  font-size:9px;
}
.v89-alert-item-meta{
  display:flex;
  flex:0 0 auto;
  align-items:flex-end;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  text-align:right;
}
.v89-alert-item-meta small{
  color:#7b8794;
  font-size:9px;
  white-space:nowrap;
}
.v89-badge{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 7px;
  border-radius:999px;
  background:#eef3f8;
  color:#5a6978;
  font-size:8.5px;
  font-weight:850;
  white-space:nowrap;
}
.v89-badge.danger,
.v89-priority-urgent{background:#ffe8e7;color:#ad3038}
.v89-badge.warning,
.v89-priority-high{background:#fff3d8;color:#876315}
.v89-badge.today{background:#eaf3ff;color:#2f6fb1}
.v89-priority-normal{background:#eef3f8;color:#566676}
.v89-priority-low{background:#f5f6f8;color:#7b8794}
.v89-empty-state{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:74px;
  padding:16px;
  color:#52745c;
  background:#fbfdfb;
  font-size:10.5px;
}
.v89-empty-state i{color:#3f8a4b;font-size:17px}
.v89-card-note{
  padding:9px 13px;
  border-top:1px solid #edf1f4;
  background:#fbfcfd;
  color:#7b8794;
  font-size:9px;
  line-height:1.45;
}
.v89-production-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}
.v89-production-card{min-width:0}
.v89-header-muted{color:#7b8794;font-size:10px}
.v89-stat-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  padding:12px;
}
.v89-stat{
  min-width:0;
  padding:12px;
  border:1px solid #e4eaf1;
  border-radius:9px;
  background:#f8fafc;
}
.v89-stat span{
  display:block;
  margin-bottom:5px;
  color:#718096;
  font-size:9.5px;
  font-weight:700;
}
.v89-stat strong{
  display:block;
  color:#263547;
  font-size:16px;
  line-height:1.15;
  overflow-wrap:anywhere;
}
.v89-color-stats .v89-stat.white{background:#fffdf4;border-color:#ece6cf}
.v89-color-stats .v89-stat.red{background:#fff4f5;border-color:#efd7da}
.v89-color-stats .v89-stat.rose{background:#fff5f8;border-color:#edd8e0}
.v89-color-stats .v89-stat.neutral{background:#f6f8fa}
.v89-main-grid{margin-top:0}
.v89-indicators-card{margin-top:14px}
.v89-indicator-table{margin:0}
.v89-indicator-table tbody td:last-child{color:#7b8794;font-size:11px}

@media(max-width:1024px){
  .v89-alert-grid,
  .v89-production-grid{grid-template-columns:1fr}
  .v89-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media(max-width:768px){
  .v89-kpi-link:hover{transform:none}
  .v89-section-heading{margin-top:18px}
  .v89-alert-grid{gap:10px}
  .v89-alert-card-header{padding:11px 12px}
  .v89-alert-item{align-items:flex-start;padding:10px 12px}
  .v89-alert-item-main strong{white-space:normal}
  .v89-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}
  .v89-stat{padding:10px}
}

@media(max-width:430px){
  .v89-alert-item{display:grid;grid-template-columns:1fr}
  .v89-alert-item-meta{align-items:flex-start;flex-direction:row;justify-content:flex-start;text-align:left;flex-wrap:wrap}
  .v89-stat-grid{grid-template-columns:1fr 1fr}
}

/* ═══════════════════════════════════════════════════════════
   V90 — Traceability, QR task execution & backup status
═══════════════════════════════════════════════════════════ */
.v90-trace-card,.v90-lineage-card,.v90-forward-card{border-left:4px solid #2d7f76}
.v90-trace-summary{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 12px}
.v90-trace-summary span{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid #dfe8e6;border-radius:999px;background:#f5faf9;color:#526a67;font-size:11px}
.v90-trace-summary strong{color:#176f66}
.v90-trace-table-shell{max-height:640px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.v90-trace-table{margin:0;min-width:980px}
.v90-trace-table thead th{position:sticky;top:0;z-index:2;background:#f2f7f6}
.v90-trace-table tbody tr.v90-trace-current{background:#f2f8ff}
.v90-trace-table tbody tr.v90-trace-relation{box-shadow:inset 3px 0 0 #2d9c91}
.v90-trace-stage{display:inline-flex;padding:3px 7px;border-radius:999px;background:#edf3f5;color:#516574;font-size:10px;font-weight:750;white-space:nowrap}

.v90-forward-tree{display:grid;gap:10px}
.v90-forward-node{border:1px solid #dbe5e3;border-left:4px solid #4c8f86;border-radius:11px;background:#fff;padding:13px 14px}
.v90-forward-node.is-current{border-left-color:#1769c7;background:#f7fbff}
.v90-forward-node-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.v90-forward-node-head>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.v90-forward-relation{font-size:10px;font-weight:800;color:#637589;text-transform:uppercase;letter-spacing:.035em}
.v90-forward-code{font-size:15px;font-weight:850;color:#17212f;text-decoration:none}
.v90-forward-bottlings{margin-top:11px;padding:10px;border:1px solid #d7e7df;border-radius:9px;background:#f5fbf7}
.v90-forward-bottlings>strong{display:block;margin-bottom:8px;color:#23684f;font-size:10px;text-transform:uppercase}
.v90-forward-bottling-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.v90-forward-bottling{display:grid;gap:2px;padding:9px 10px;border:1px solid #d5e7dc;border-radius:8px;background:#fff}
.v90-forward-bottling strong{color:#155f50;font-size:12px}
.v90-forward-bottling span{color:#637589;font-size:10px}
.v90-forward-branch-label{margin-top:12px;color:#526170;font-size:10px;font-weight:800}
.v90-forward-children{display:grid;gap:10px;margin-top:8px;margin-left:18px;padding-left:14px;border-left:2px solid #dbe4ec}

.v90-qr-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.v90-qr-section-head h2{margin:0!important}
.v90-qr-section-head>span{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#edf3f5;color:#61707e;font-size:10px;font-weight:800}
.v90-qr-task-list,.v90-qr-event-list{display:grid}
.v90-qr-task-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.v90-qr-task-row:first-child{border-top:0}
.v90-qr-task-row>div:first-child{display:grid;gap:3px;min-width:0}
.v90-qr-task-row strong{font-size:13px;color:var(--heading)}
.v90-qr-task-row small{font-size:11px;color:var(--muted);line-height:1.4}
.v90-qr-task-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.v90-qr-event-row{display:grid;grid-template-columns:82px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line);color:inherit}
.v90-qr-event-row:first-child{border-top:0}
.v90-qr-event-row time{font-size:10px;color:#73808c;font-variant-numeric:tabular-nums}
.v90-qr-event-row div{display:grid;gap:2px;min-width:0}
.v90-qr-event-row strong{font-size:12px;color:var(--heading)}
.v90-qr-event-row small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.v90-backup-status{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;padding:16px 18px;border:1px solid #dce4eb;border-left:5px solid #8091a0;border-radius:10px;background:#fff;box-shadow:var(--shadow)}
.v90-backup-status.healthy{border-left-color:#2e7d32;background:#f8fcf8}
.v90-backup-status.warning{border-left-color:#d89415;background:#fffaf0}
.v90-backup-status.error{border-left-color:#c84444;background:#fff7f7}
.v90-backup-status.disabled{border-left-color:#8a939c;background:#f7f8f9}
.v90-backup-status-main,.v90-backup-status-time{display:grid;gap:4px}
.v90-backup-status-time{text-align:right}
.v90-backup-status-time span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:750}
.v90-backup-state{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;background:#edf2f6;color:#526170;font-size:9px;font-weight:850;letter-spacing:.04em}
.v90-backup-status.healthy .v90-backup-state{background:#e8f5e9;color:#2e7d32}
.v90-backup-status.warning .v90-backup-state{background:#fff0cf;color:#8a6517}
.v90-backup-status.error .v90-backup-state{background:#ffe7e7;color:#ad3038}
.v90-backup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.v90-backup-grid .card h2,.v90-backup-error-card h2{font-size:16px;margin-bottom:12px}
.v90-backup-error-card{margin-top:14px;border-left:4px solid #c84444}
.v90-backup-error-card p+p{margin-top:6px}
.v90-backup-note{margin-top:14px;font-size:12px;color:#5e6d7a}

@media(max-width:700px){
  .v90-forward-node-head{flex-direction:column}
  .v90-forward-children{margin-left:7px;padding-left:9px}
  .v90-qr-task-row{display:grid;grid-template-columns:1fr}
  .v90-qr-task-actions{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}
  .v90-qr-task-actions .btn{width:100%;min-height:42px;display:inline-flex;align-items:center;justify-content:center}
  .v90-qr-event-row{grid-template-columns:70px 1fr}
  .v90-backup-status{display:grid;grid-template-columns:1fr}
  .v90-backup-status-time{text-align:left}
  .v90-backup-grid{grid-template-columns:1fr}
}


/* V92.8 - Καθολική εμφάνιση σφαλμάτων υποχρεωτικών πεδίων */
.field-validation-error,
.global-field-validation-error {
    display: block;
    margin-top: 6px;
    color: var(--danger, #b42318);
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.35;
}
.field-validation-valid { display: none; }
.input-validation-error {
    border-color: var(--danger, #b42318) !important;
    box-shadow: 0 0 0 3px rgba(180, 35, 24, .10) !important;
}
.validation-summary-errors:not(.validation-summary-valid) {
    margin-bottom: 14px;
    padding: 10px 12px;
    border: 1px solid rgba(180, 35, 24, .35);
    border-radius: 8px;
    background: rgba(180, 35, 24, .06);
    color: var(--danger, #b42318);
}
.validation-summary-errors ul { margin: 0; padding-left: 20px; }


/* V93.2.1 - Work calendar completion costing layout */
.cost-work-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin: 1rem 0;
}
.cost-work-grid section {
    border: 1px solid var(--border, #dfe5ea);
    border-radius: 10px;
    padding: 1rem;
}
@media (max-width: 850px) {
    .cost-work-grid { grid-template-columns: 1fr; }
}


/* ════════════════════════════════
   SILVA DASKALAKI — USER LOGO
   Uses the exact transparent white PNG supplied by the user.
════════════════════════════════ */
.silva-logo-plaque {
  background: #111820;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.10);
}
.silva-logo-plaque img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.silva-logo-plaque-login {
  width: 230px;
  min-height: 72px;
  padding: 10px 14px;
  margin: 0 auto 16px;
}
.silva-logo-plaque-sidebar {
  width: 100%;
  min-height: 54px;
  padding: 8px 10px;
  margin-bottom: 11px;
}
.silva-logo-plaque-sidebar img {
  max-width: 168px;
}
@media (max-width: 520px) {
  .silva-logo-plaque-login {
    width: 210px;
    min-height: 66px;
  }
}
