
  :root{
    --bg:#0b1220; --panel:#0f172a; --panel-light:#1e293b; --muted:#334155; --ink:#e2e8f0; --sub:#94a3b8; --ok:#22c55e; --warn:#f59e0b; --bad:#ef4444; --line:#233049; --accent:#4f46e5; --accent-light:#6366f1;
    --font-sans: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Arial, sans-serif;
    --radius: 16px;
    --padding: 20px;
    /* FullCalendar Custom Properties */
    --fc-border-color: var(--line);
    --fc-daygrid-event-dot-width: 8px;
    --fc-list-event-hover-bg-color: var(--panel-light);
  }
  
  body.light-theme {
    --bg:#f1f5f9; --panel:#ffffff; --panel-light:#f8fafc; --muted:#cbd5e1; --ink:#0f172a; --sub:#475569; --line:#e2e8f0;
  }

  *{box-sizing:border-box}
  body{margin:0;background:var(--bg);color:var(--ink);font:15px var(--font-sans);overscroll-behavior:none;transition: background .3s, color .3s;}
  header{position:sticky;top:0;z-index:10;background:rgba(11,18,32,.8);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
  body.light-theme header { background: rgba(255,255,255,.8); }

  .wrap{max-width:1400px;margin:0 auto;padding:16px}
  h1{font-size:22px;margin:0; font-weight: 600;}
  h2{font-size:18px;margin:12px 0 8px;color:var(--sub); font-weight: 600;}
  h3{font-size:16px;margin:16px 0 8px;color:var(--sub); font-weight: 600;}
  .row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
  .spacer{flex:1}
  
  #companySelector {
    background: transparent;
    border: 1px dashed var(--line);
    color: var(--accent-light);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 14px;
    font-weight: 600;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    margin-left: 16px;
  }
  #companySelector:hover {
    border-color: var(--accent-light);
  }

  .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:var(--padding); transition: box-shadow .3s, opacity .3s; opacity: 1;}
  .card.fade-in { animation: fadeIn .5s ease-out forwards; }
  @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

  .layout{display:grid;grid-template-columns:260px 1fr;gap:16px}
  nav{display:flex;flex-direction:column;gap:8px}
  nav button{width:100%;text-align:left; transition: all .2s; display: flex; align-items: center; gap: 10px;}
  nav button svg { width: 18px; height: 18px; color: var(--sub); transition: color .2s; }
  nav button:hover svg, nav button.active svg { color: var(--ink); }
  nav button.active {
    background: var(--accent);
    color: white;
    border-color: var(--accent-light);
    box-shadow: 0 0 10px rgba(79,70,229,.5);
  }
  nav button.active svg { color: white; }

  button,input,select,textarea{font:inherit;outline-color:var(--accent-light);}
  input[type="text"],input[type="number"],input[type="date"],input[type="datetime-local"],input[type="email"],input[type="tel"],input[type="month"],input[type="search"],input[type="password"],select,textarea{background:#0b1020;border:1px solid var(--muted);border-radius:10px;color:var(--ink);padding:10px 12px;width:100%; transition: all .2s;}
  body.light-theme input, body.light-theme select, body.light-theme textarea { background: #f8fafc; }
  input:disabled, select:disabled, textarea:disabled { background: var(--panel-light); opacity: 0.5; cursor: not-allowed; }
  input::placeholder,textarea::placeholder{color:#6b7280}
  button{background:var(--panel-light);color:var(--ink);border:1px solid var(--muted);border-radius:10px;padding:10px 16px;cursor:pointer;transition:all .2s; font-weight: 500;}
  button:hover{border-color:var(--accent-light);box-shadow:0 4px 12px rgba(0,0,0,.1), 0 0 10px rgba(79,70,229,.3); transform: translateY(-2px);}
  button:active { transform: translateY(-1px); }
  button:disabled { cursor: not-allowed; opacity: 0.7; transform: none; box-shadow: none; }
  button.primary{background:linear-gradient(180deg,var(--accent-light),var(--accent));color:white;border-color:var(--accent);}
  button.ok{background:linear-gradient(180deg,#15803d,#22c55e);color:white;border-color:#166534}
  button.warn{background:linear-gradient(180deg,#f59e0b,#fbbf24);color:#422006;border-color:#b45309}
  button.danger{background:linear-gradient(180deg,#b91c1c,#ef4444);color:white;border-color:#b91c1c}
  table{width:100%;border-collapse:collapse}
  td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top; transition: background-color .2s;}
  
  th {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 12px 10px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    background: var(--panel-light);
    color: var(--sub);
    font-weight: 600;
  }
  
  th[data-sort-key] { cursor: pointer; user-select: none; }
  th[data-sort-key]:hover { color: var(--ink); }
  body.light-theme th { color: var(--sub); }
  tr:hover td{background:var(--panel-light)}
  .small{color:var(--sub);font-size:13px}
  .grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
  .col-6{grid-column:span 6}
  .col-4{grid-column:span 4}
  .col-3{grid-column:span 3}
  .col-12{grid-column:span 12}
  .badge{display:inline-block;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:12px;}
  .ok{color:var(--ok)}.bad{color:var(--bad)}.muted{color:var(--sub)}
  .toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;}
  .filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--line);}
  .list{max-height:60vh;overflow:auto}
  
  .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);backdrop-filter:blur(5px);z-index:100;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s}
  .modal-overlay.visible{opacity:1;visibility:visible}
  .modal-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px;width:90%;max-width:800px;transform:scale(.9);transition:all .3s;max-height:90vh;display:flex;flex-direction:column;}
  .modal-overlay.visible .modal-panel{transform:scale(1)}
  .modal-content{overflow-y:auto;flex:1}
  .modal-actions{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);display:flex;gap:12px;justify-content:flex-end;}

  .tooltip{position:fixed;background:var(--panel-light);border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:13px;z-index:200;max-width:250px;opacity:0;visibility:hidden;transition:opacity .2s, transform .2s;transform:translateX(10px);pointer-events:none;}
  .tooltip.visible{opacity:1;visibility:visible;transform:translateX(0);}
  .tooltip.tooltip-top { transform: translateY(10px) translateX(-50%); }
  .tooltip.tooltip-top.visible { transform: translateY(0) translateX(-50%); }

  .search-box { position: relative; }
  .search-box svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--sub); pointer-events: none; }
  .search-box input { padding-left: 40px; }

  .icon-btn { background: transparent; border: none; color: var(--sub); padding: 6px; border-radius: 8px; cursor: pointer; }
  .icon-btn:hover { color: var(--ink); background: var(--panel-light); transform: translateY(-2px); }
  .icon-btn.danger-hover:hover { color: var(--bad); background: rgba(239,68,68,0.08); }
  .icon-btn svg { width:18px; height:18px; vertical-align:middle; }

  .form-field.invalid input,
  .form-field.invalid textarea,
  .form-field.invalid select {
      border-color: var(--bad);
      box-shadow: 0 0 8px rgba(239, 68, 68, 0.2);
  }
  .error-message {
      color: var(--bad);
      font-size: 12px;
      display: none;
      margin-top: 4px;
      height: 15px;
  }
  .form-field.invalid .error-message {
      display: block;
  }

  .parts-list-item, .technicians-list-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px;
    border-radius: 8px;
    background: var(--panel-light);
    margin-bottom: 6px;
  }

  .report-container {
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 12px;
    margin-top: 16px;
  }

  .checkbox-field {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid var(--muted);
    border-radius: 10px;
    background: #0b1020;
    cursor: pointer;
  }
  body.light-theme .checkbox-field { background: #f8fafc; }
  .checkbox-field input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--accent);
  }

  .cost-summary {
    background: var(--panel-light);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px;
    margin-top: 16px;
  }
  .cost-summary-row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    font-size: 14px;
  }
  .cost-summary-row.total {
    font-weight: bold;
    font-size: 18px;
    border-top: 1px solid var(--line);
    margin-top: 8px;
    padding-top: 12px;
  }
  
  .stat-card {
    background: var(--panel-light);
    padding: var(--padding);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .stat-card .icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .stat-card .icon svg {
    width: 24px;
    height: 24px;
    color: white;
  }
  .stat-card .value {
    font-size: 28px;
    font-weight: 700;
  }
  .stat-card .label {
    font-size: 14px;
    color: var(--sub);
  }

  .spinner {
    display: inline-block;
    width: 1em;
    height: 1em;
    border: 2px solid rgba(255,255,255,.3);
    border-radius: 50%;
    border-top-color: #fff;
    animation: spin 1s ease-in-out infinite;
    vertical-align: -0.125em;
    margin-left: 8px;
  }
  button.primary .spinner {
    border-top-color: #fff;
  }
  @keyframes spin { to { transform: rotate(360deg); } }
  
  .hamburger-btn {
    display: none;
    background: transparent;
    border: none;
    padding: 8px;
    cursor: pointer;
    color: var(--ink);
  }

  .nav-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 199;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease-in-out;
  }
  .nav-overlay.visible {
    opacity: 1;
    visibility: visible;
  }
  
  .skeleton-row td {
      padding: 0;
  }
  .skeleton-row .skeleton {
      width: 95%;
      height: 20px;
      margin: 12px 10px;
      border-radius: 6px;
      background: linear-gradient(90deg, var(--panel-light) 25%, var(--muted) 50%, var(--panel-light) 75%);
      background-size: 200% 100%;
      animation: shimmer 1.5s infinite;
  }
  @keyframes shimmer {
      0% { background-position: 200% 0; }
      100% { background-position: -200% 0; }
  }
  
  #connection-status {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: var(--muted);
    transition: background-color: 0.5s;
    margin-left: 8px;
  }
  #connection-status.online {
    background-color: var(--ok);
    box-shadow: 0 0 8px var(--ok);
  }

  #qr-reader {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
  }

  /* Import Modal Styles */
  .import-step {
    padding: 16px 0;
    border-bottom: 1px solid var(--line);
  }
  .import-step h3 {
    margin-top: 0;
    font-size: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .import-step .step-number {
    background: var(--accent);
    color: white;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: bold;
  }
  #import-preview-table-container {
    max-height: 40vh;
    overflow: auto;
    margin-top: 12px;
  }
  #import-preview-table tr.import-error td {
    background-color: rgba(239, 68, 68, 0.1);
    color: var(--bad);
  }
  #import-preview-table tr.import-update td {
    background-color: rgba(245, 158, 11, 0.1);
    color: var(--warn);
  }
  
  /* Attachments Styles */
  .attachments-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
    margin-top: 12px;
  }
  .attachment-item {
    background: var(--panel-light);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
  }
  .attachment-item .file-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 8px;
  }
  .attachment-item .file-name {
    font-size: 13px;
    word-break: break-all;
    color: var(--sub);
  }
  .attachment-item .delete-attachment {
    position: absolute;
    top: -5px;
    right: -5px;
  }
  .attachment-item .upload-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 4px;
    background: var(--accent);
    width: 0%;
    transition: width 0.3s;
  }

  /* FullCalendar Custom Styles */
  .fc {
    height: 75vh;
  }
  .fc .fc-toolbar-title {
    font-size: 1.25em;
    color: var(--ink);
  }
  .fc .fc-button {
    background: var(--panel-light);
    color: var(--ink);
    border: 1px solid var(--muted);
    box-shadow: none;
    transition: all .2s;
  }
  .fc .fc-button:hover {
    background: var(--accent);
    color: white;
  }
  .fc .fc-button-primary:not(:disabled).fc-button-active, 
  .fc .fc-button-primary:not(:disabled):active {
    background-color: var(--accent);
    border-color: var(--accent-light);
  }
  .fc .fc-daygrid-day.fc-day-today {
    background-color: rgba(79, 70, 229, 0.1);
  }
  .fc .fc-daygrid-day-number {
    color: var(--sub);
  }
  .fc .fc-col-header-cell-cushion {
    color: var(--sub);
  }
  .fc .fc-event {
    cursor: pointer;
    border-width: 2px;
    font-weight: 500;
  }
  .fc-direction-ltr .fc-daygrid-event .fc-event-time {
    display: none;
  }


  @media (max-width: 1024px) {
    .layout {
      grid-template-columns: 1fr;
      display: block;
    }
    
    main > aside {
      position: fixed;
      top: 0;
      left: 0;
      bottom: 0;
      width: 280px;
      z-index: 200;
      transform: translateX(-100%);
      transition: transform 0.3s ease-in-out;
      border-right: 1px solid var(--line);
      padding-top: 80px;
    }

    main > aside.nav-open {
      transform: translateX(0);
      box-shadow: 10px 0 25px rgba(0,0,0,0.2);
    }

    .hamburger-btn {
      display: block;
    }
  }

  @media (max-width: 768px) {
    .wrap {
      padding: 12px;
    }
    h1 {
      font-size: 20px;
    }
    .grid {
      grid-template-columns: 1fr;
    }
    .col-12, .col-6, .col-4, .col-3 {
      grid-column: span 1;
    }
    .modal-panel {
      width: 95%;
      height: 90vh;
      padding: 16px;
    }
    .modal-actions {
      flex-wrap: wrap;
      justify-content: center;
    }
    .toolbar, .filter-bar {
      flex-direction: column;
      align-items: stretch;
    }
    .toolbar .spacer {
      display: none;
    }
    .header-actions {
        display: none;
    }
    .fc {
        height: 80vh;
    }
    .fc .fc-toolbar {
        flex-direction: column;
        gap: 10px;
    }
  }

  @media print {
    body {
      --bg: #ffffff; --panel: #ffffff; --ink: #000000; --line: #cccccc; --sub: #555555;
    }
    body.print-mode-modal > *:not(.modal-overlay),
    body.print-mode-report > *:not(main),
    body.print-mode-qr > *:not(.modal-overlay) {
        display: none !important;
    }
    body.print-mode-modal .modal-overlay,
    body.print-mode-qr .modal-overlay {
        display: block !important; position: static !important; background: none !important;
        backdrop-filter: none !important; visibility: visible !important; opacity: 1 !important;
        padding: 0 !important; margin: 0 !important; width: 100% !important;
    }
    body.print-mode-modal .modal-panel,
    body.print-mode-qr .modal-panel {
        display: block !important; transform: none !important; max-height: none !important;
        box-shadow: none !important; border: none !important; padding: 0 !important;
        width: 100% !important; max-width: 100% !important;
    }
    body.print-mode-modal .modal-actions,
    body.print-mode-qr .modal-actions { display: none !important; }
    
    body.print-mode-report main { display: block !important; padding: 0 !important; }
    body.print-mode-report main > aside,
    body.print-mode-report #reportControls,
    body.print-mode-report #reportResults > button.primary { display: none !important; }
    body.print-mode-report #content { padding: 0 !important; }
    body.print-mode-report .report-container {
        border: none !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important;
    }
    h1, h2, h3 { margin-top: 24px; page-break-after: avoid; }
    table { width: 100%; page-break-inside: auto; }
    tr { page-break-inside: avoid; }
    a { text-decoration: none; color: inherit; }
  }



/* Attachments styles */
.attachments-field { border: 1px dashed var(--line); padding: 10px; border-radius: var(--radius); margin-top: 6px; }
.attachments-controls { margin-top: 8px; display: flex; gap: 8px; align-items: center; }
.attachments-list { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.attachment-row { display: flex; gap: 10px; align-items: center; justify-content: space-between; background: rgba(255,255,255,0.02); padding: 6px 8px; border-radius: 6px; }
.attachment-row .meta { opacity: .8; font-size: 12px; margin-left: auto; margin-right: 10px; }
.attachments-field button { padding: 6px 10px; }


/* Technician Picker */
.techpicker-field { border: 1px solid var(--line); border-radius: var(--radius); padding: 10px; margin-top: 6px; background: rgba(255,255,255,0.02); }
.techpicker-header { font-weight: 600; margin-bottom: 6px; }
.techpicker-body { display: grid; grid-template-columns: 1fr 2fr; gap: 12px; }
.techpicker-left input[type="search"] { width: 100%; padding: 6px 8px; border-radius: 6px; border: 1px solid var(--line); background: var(--panel); color: var(--ink); }
.techpicker-list { display: grid; grid-template-columns: 1fr; gap: 6px; max-height: 260px; overflow: auto; padding-right: 4px; }
.techpicker-item { padding: 8px; border: 1px solid var(--line); background: transparent; color: var(--ink); text-align: left; border-radius: 6px; cursor: pointer; }
.techpicker-item:hover { background: rgba(255,255,255,0.06); }
.techpicker-table { width: 100%; border-collapse: collapse; }
.techpicker-table th, .techpicker-table td { border-bottom: 1px solid var(--line); padding: 6px 8px; }
.techpicker-table tfoot td { font-weight: 700; }
.techpicker-table input[type="number"] { width: 90px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); color: var(--ink); }


/* Parts Picker */
.partspicker-field { border: 1px solid var(--line); border-radius: var(--radius); padding: 10px; margin-top: 6px; background: rgba(255,255,255,0.02); }
.partspicker-header { font-weight: 600; margin-bottom: 6px; }
.partspicker-body { display: grid; grid-template-columns: 1fr 2fr; gap: 12px; }
.partspicker-left input[type="search"] { width: 100%; padding: 6px 8px; border-radius: 6px; border: 1px solid var(--line); background: var(--panel); color: var(--ink); }
.partspicker-list { display: grid; grid-template-columns: 1fr; gap: 6px; max-height: 260px; overflow: auto; padding-right: 4px; }
.partspicker-item { padding: 8px; border: 1px solid var(--line); background: transparent; color: var(--ink); text-align: left; border-radius: 6px; cursor: pointer; }
.partspicker-item:hover { background: rgba(255,255,255,0.06); }
.partspicker-table { width: 100%; border-collapse: collapse; }
.partspicker-table th, .partspicker-table td { border-bottom: 1px solid var(--line); padding: 6px 8px; }
.partspicker-table tfoot td { font-weight: 700; }
.partspicker-table input[type="number"] { width: 100px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); color: var(--ink); }


/* Reports */
.report-controls { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.report-controls .row-gap { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.report-container { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px; }
.report-container table { width: 100%; border-collapse: collapse; }
.report-container th, .report-container td { border-bottom: 1px solid var(--line); padding: 6px 8px; text-align: left; }


/* Tables & action buttons */
.list-table { width: 100%; border-collapse: collapse; }
.list-table th, .list-table td { border-bottom: 1px solid var(--line); padding: 6px 8px; text-align:left; }
td.actions { display:flex; gap:6px; }
button.sm { padding: 4px 8px; font-size: 12px; }

/* =====================================================================
   v2026.10.11 — Σύνδεση χρηστών, ρόλοι, όρια demo
   ===================================================================== */
.auth-screen { display: none; }
body.auth-mode .auth-screen {
  display: flex; min-height: 100vh; align-items: center; justify-content: center;
  padding: 24px 16px;
  background: radial-gradient(1200px 600px at 20% -10%, rgba(79,70,229,.25), transparent 60%), var(--bg);
}
body.auth-mode > header, body.auth-mode > main, body.auth-mode > .nav-overlay { display: none !important; }
.auth-card {
  width: 100%; max-width: 440px; background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 28px; box-shadow: 0 20px 60px rgba(0,0,0,.35);
}
.auth-card h2 { color: var(--ink); margin-top: 8px; }
.auth-card h3 { margin-top: 20px; }
.auth-brand { display: flex; gap: 12px; align-items: center; margin-bottom: 20px; }
.auth-logo {
  width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  background: linear-gradient(180deg, var(--accent-light), var(--accent)); color: #fff; font-weight: 700;
}
.auth-title { font-weight: 700; font-size: 17px; }
.auth-sub { color: var(--sub); font-size: 13px; }
.auth-tabs { display: flex; gap: 6px; margin-bottom: 16px; background: var(--panel-light); padding: 4px; border-radius: 12px; }
.auth-tabs button { flex: 1; border: none; background: transparent; padding: 8px; }
.auth-tabs button.active { background: var(--panel); box-shadow: 0 1px 4px rgba(0,0,0,.2); color: var(--ink); }
.auth-form { display: flex; flex-direction: column; gap: 12px; }
.auth-field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--sub); }
.auth-field input { width: 100%; font-size: 15px; }
.auth-submit { width: 100%; margin-top: 4px; }
.auth-actions { display: flex; gap: 8px; margin-top: 12px; }
.auth-actions .auth-submit { flex: 2; margin: 0; }
.auth-error { display: none; margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: rgba(239,68,68,.12); border: 1px solid rgba(239,68,68,.4); color: #fecaca; font-size: 14px; }
body.light-theme .auth-error { color: #991b1b; }
.auth-ok { display: none; margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: rgba(34,197,94,.12); border: 1px solid rgba(34,197,94,.4); font-size: 14px; }
.auth-note { color: var(--sub); font-size: 13px; line-height: 1.5; margin-top: 14px; }
.auth-loading { display: flex; gap: 10px; align-items: center; color: var(--sub); padding: 12px 0; }
.link-btn { background: none; border: none; color: var(--accent-light); padding: 8px 0; margin-top: 8px; font-weight: 500; }
.link-btn:hover { text-decoration: underline; background: none; }

.invite-row { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; margin: 8px 0; flex-wrap: wrap; }
.invite-actions { display: flex; gap: 8px; }

/* Header: πλάνο & χρήστης */
#planBadge:empty { display: none; }
.plan-badge { padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .5px; }
.plan-badge.demo { background: rgba(245,158,11,.15); color: var(--warn); border: 1px solid rgba(245,158,11,.5); }
.plan-badge.full { background: rgba(34,197,94,.12); color: var(--ok); border: 1px solid rgba(34,197,94,.45); }
.user-menu { display: flex; align-items: center; gap: 6px; }
.user-chip { display: flex; align-items: center; gap: 8px; padding: 4px 10px 4px 4px; border-radius: 999px; }
.user-avatar { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: #fff; font-weight: 700; font-size: 13px; }
.user-text { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.15; }
.user-name { font-size: 13px; font-weight: 600; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-role { font-size: 11px; color: var(--sub); }

/* Ένδειξη χρήσης demo στη λίστα */
.usage-chip { font-size: 12px; color: var(--warn); border: 1px dashed rgba(245,158,11,.6); border-radius: 999px; padding: 4px 10px; white-space: nowrap; }
.usage-chip.full { color: var(--bad); border-color: rgba(239,68,68,.6); }

/* Σελίδα Εταιρεία & Χρήστες */
.company-page { display: flex; flex-direction: column; gap: 16px; }
.cp-card h2 { margin-top: 0; color: var(--ink); }
.cp-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.cp-field input { flex: 1; min-width: 220px; }
.plan-box { padding: 12px 14px; border-radius: 12px; margin: 8px 0 12px; }
.plan-box.demo { background: rgba(245,158,11,.08); border: 1px solid rgba(245,158,11,.35); }
.plan-box.full { background: rgba(34,197,94,.08); border: 1px solid rgba(34,197,94,.35); }
.usage-table td, .usage-table th { padding: 6px 8px; }
.usage-bar { height: 8px; border-radius: 999px; background: var(--panel-light); overflow: hidden; border: 1px solid var(--line); }
.usage-bar > div { height: 100%; background: var(--accent-light); }
.usage-bar.full > div { background: var(--bad); }
.invite-form { margin: 8px 0; }
.super-card { border-color: rgba(99,102,241,.5); }
.confirm-panel { height: auto !important; }

@media (max-width: 768px) {
  /* Στο κινητό μένουν ορατά το QR, το πλάνο και ο χρήστης */
  .header-actions { display: flex !important; gap: 6px; }
  .header-actions > button:not(#btnScanQr) { display: none; }   /* το QR μένει: είναι πιο χρήσιμο στο κινητό */
  .user-text { display: none; }
  .auth-card { padding: 20px; }
}
body.auth-mode #kpiFab { display: none !important; }
#companySelector { width: auto; max-width: 280px; text-overflow: ellipsis; }
.plan-badge.expired { background: rgba(239,68,68,.15); color: var(--bad); border: 1px solid rgba(239,68,68,.55); }
.plan-box.expired { background: rgba(239,68,68,.08); border: 1px solid rgba(239,68,68,.45); }
#planBadge { display: flex; gap: 6px; }

/* Όροι χρήσης */
.auth-terms { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--sub); line-height: 1.45; margin: 4px 0 8px; cursor: pointer; }
.auth-terms input { width: 18px; height: 18px; margin-top: 1px; flex: 0 0 auto; accent-color: var(--accent); }
.auth-terms a, .auth-legal a { color: var(--accent-light); }
.auth-legal { margin-top: 16px; font-size: 12px; color: var(--sub); text-align: center; }
.cp-card .auth-legal { text-align: left; }

/* Ετικέτες QR ανταλλακτικών (v2026.10.11-6) */
.qr-label-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 10px; }
.qr-label { background: #fff; color: #0f172a; border: 1px dashed #94a3b8; border-radius: 10px; padding: 8px; text-align: center; break-inside: avoid; page-break-inside: avoid; }
.qr-label img { display: block; margin: 0 auto 4px; }
.qr-label-sku { font-weight: 800; font-size: 13px; letter-spacing: .3px; }
.qr-label-name { font-size: 11px; line-height: 1.25; max-height: 2.5em; overflow: hidden; }
.qr-label-bin { font-size: 10px; color: #475569; margin-top: 2px; }
@media print { .qr-label-grid { grid-template-columns: repeat(4, 1fr); gap: 6px; } }

/* ================= Εργονομία διάταξης (v2026.10.11-7, js/ux.js) ================= */
/* Η σελίδα δεν κυλάει ποτέ οριζόντια: μόνο ο πίνακας μέσα στο πλαίσιό του */
.layout > * { min-width: 0; }
#content { min-width: 0; overflow: hidden; }
.list { overflow: auto; max-height: calc(100vh - 230px); }

/* --- Κεφαλίδα: πάνω γραμμή μόνο ο τίτλος, από κάτω όλα τα υπόλοιπα (v8) --- */
header .wrap.row { flex-wrap: wrap; row-gap: 6px; column-gap: 10px; padding-top: 8px; padding-bottom: 10px; }
header .hdr-break { flex-basis: 100%; height: 0; }
header h1 { font-size: 19px; white-space: nowrap; }
header #version-badge { display: none; }
header .header-actions { flex-wrap: nowrap; gap: 6px; flex: none; }
header .header-actions > button, header .ux-menu-wrap > button { padding: 8px; }
#companySelector { flex: 0 1 auto; min-width: 110px; max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#kpiBtn { flex: none; }
#connection-status { flex: none; }
.user-text { display: none; }
.user-chip { padding: 2px; background: transparent; border: none; }
@media (max-width: 768px) {
  .header-actions > button#btnTheme { display: inline-flex; }
  header .header-actions { gap: 2px; }
  header .header-actions > button, header .ux-menu-wrap > button { padding: 6px; }
  #companySelector { max-width: 46vw; }
}
@media (max-width: 480px) {
  #planBadge { display: none !important; }
  #kpiBtn { padding: 6px 9px 6px 6px; }
}

/* --- Βοήθειες (συννεφάκια) --- */
#uxTip { position: fixed; left: 0; top: 0; z-index: 2000; max-width: 280px; padding: 7px 11px; border-radius: 9px;
  background: #0b1220; color: #e2e8f0; border: 1px solid #334155; font-size: 13px; line-height: 1.4;
  box-shadow: 0 8px 24px rgba(0,0,0,.35); pointer-events: none; opacity: 0; transform: translateY(3px); transition: opacity .12s, transform .12s; }
#uxTip.show { opacity: 1; transform: none; }
body.light-theme #uxTip { background: #0f172a; color: #f8fafc; border-color: #0f172a; }
#tooltip { display: none !important; }

/* --- Κάρτα γραμμής (όλα τα πεδία) --- */
#uxRowCard { position: fixed; left: 0; top: 0; z-index: 1500; width: 340px; max-height: 70vh; overflow: hidden;
  background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px;
  box-shadow: 0 18px 40px rgba(0,0,0,.4); pointer-events: none; opacity: 0; transform: translateY(4px); transition: opacity .15s, transform .15s; }
#uxRowCard.show { opacity: 1; transform: none; }
#uxRowCard .rc-head { font-weight: 800; font-size: 15px; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid var(--line); color: var(--ink); }
#uxRowCard dl { display: grid; grid-template-columns: auto 1fr; gap: 5px 12px; margin: 0; font-size: 13px; }
#uxRowCard dt { color: var(--sub); white-space: nowrap; }
#uxRowCard dd { margin: 0; color: var(--ink); word-break: break-word; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
#uxRowCard dd.empty { color: var(--muted); }
#uxRowCard .rc-foot { margin-top: 8px; font-size: 11px; color: var(--sub); }
@media print { #uxTip, #uxRowCard { display: none !important; } }

/* --- Μενού «⋯» και αναδυόμενα μενού --- */
.ux-menu-wrap { position: relative; }
.ux-menu { display: none; position: absolute; right: 0; top: calc(100% + 6px); min-width: 220px; z-index: 300;
  background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 6px;
  box-shadow: 0 12px 32px rgba(0,0,0,.35); }
.ux-menu-wrap.open > .ux-menu { display: block; }
.ux-pop { display: block; position: fixed; right: auto; top: 0; }
.ux-menu-item { display: flex !important; align-items: center; gap: 10px; width: 100%; text-align: left; background: transparent;
  border: none; border-radius: 8px; padding: 9px 10px !important; color: var(--ink); font-size: 14px; box-shadow: none; transform: none !important; }
.ux-menu-item:hover { background: var(--panel-light); }
.ux-menu-item svg { width: 18px; height: 18px; flex: none; color: var(--sub); }
.ux-menu-item.danger-item, .ux-menu-item.danger-item svg { color: var(--bad); }
.ux-menu-item.danger-item:hover { background: rgba(239,68,68,.1); }
/* ετικέτα για κουμπιά με μόνο εικονίδιο */
.ux-menu-item[data-label]::after { content: attr(data-label); }
.ux-menu-foot { border-top: 1px solid var(--line); margin-top: 4px; padding: 8px 10px 4px; font-size: 12px; color: var(--sub); }
.ux-menu-foot:empty { display: none; }
.ux-cols { max-height: 60vh; overflow: auto; min-width: 240px; }
.ux-check { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 8px; cursor: pointer; font-size: 14px; }
.ux-check:hover { background: var(--panel-light); }
.ux-cols .link-btn { margin: 4px 8px 2px; padding: 4px 0; font-size: 13px; }
.ux-cols-btn { display: inline-flex; align-items: center; gap: 6px; }

/* --- Πίνακες --- */
.list td { padding: 10px; }
.list td.cell-clip { max-width: 260px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Πρώτη στήλη σταθερή όταν ο πίνακας κυλάει οριζόντια */
.list th:first-child, .list td:first-child { position: sticky; left: 0; z-index: 1; }
.list td:first-child { background: var(--panel); font-weight: 600; }
.list th:first-child { z-index: 2; }
.list tr:hover td:first-child { background: var(--panel-light); }
.list tr.row-inactive td { opacity: .55; }
/* Ενέργειες γραμμής: μικρά εικονίδια σε μία γραμμή */
.list td.col-actions, .list th.col-actions { width: 1%; white-space: nowrap; text-align: right; }
.row-actions { display: inline-flex; align-items: center; gap: 2px; }
.row-actions .icon-btn { padding: 6px; display: inline-grid; place-items: center; }
.row-actions .icon-btn svg { width: 18px; height: 18px; }
.row-actions .icon-btn:hover { transform: none; }

/* --- Πλαϊνό μενού που κρύβεται (μόνο υπολογιστής) --- */
#navPin { display: none; }
@media (min-width: 1025px) {
  #navPin { display: flex; align-items: center; gap: 8px; width: 100%; justify-content: flex-start; font-size: 12px; color: var(--sub); margin-bottom: 4px; }
  #navPin.on { color: var(--accent-light); }
  body:not(.nav-pinned) .layout { grid-template-columns: 1fr; }
  body:not(.nav-pinned) main > aside {
    position: fixed; top: 0; left: 0; bottom: 0; width: 270px; z-index: 250; overflow-y: auto;
    border-radius: 0 16px 16px 0; padding-top: 16px;
    transform: translateX(-102%); transition: transform .22s ease, box-shadow .22s ease;
  }
  body.nav-peek:not(.nav-pinned) main > aside { transform: translateX(0); box-shadow: 16px 0 40px rgba(0,0,0,.45); }
  body:not(.nav-pinned) .hamburger-btn { display: block; }
  #navEdge { position: fixed; top: 0; left: 0; bottom: 0; width: 10px; z-index: 240; }
  body.nav-pinned #navEdge { display: none; }
  /* Λεπτή ένδειξη στην άκρη ότι εκεί υπάρχει μενού */
  body:not(.nav-pinned):not(.nav-peek) #navEdge::after { content: ""; position: absolute; top: 50%; left: 2px; width: 4px; height: 64px;
    margin-top: -32px; border-radius: 4px; background: var(--accent); opacity: .45; }
}
@media (max-width: 1024px) { #navEdge { display: none; } }
body.auth-mode #navEdge, body.auth-mode #headerMore { display: none !important; }
@media print { #navEdge, #headerMore, .col-actions { display: none !important; } }

/* v8: μικρά παράθυρα — η εργαλειοθήκη τυλίγεται σε γραμμές αντί για στήλη με κουμπιά σε όλο το πλάτος */
@media (max-width: 768px) {
  .toolbar { flex-direction: row !important; flex-wrap: wrap; align-items: center !important; gap: 8px; }
  .toolbar .search-box { flex: 1 1 100%; }
  .toolbar > button { flex: 0 1 auto; padding: 8px 12px; font-size: 14px; }
  .toolbar > button.primary { margin-left: auto; }
}
/* Κελιά σε μία γραμμή (ο πίνακας κυλάει μέσα στο πλαίσιό του)· μόνο η περιγραφή/τίτλος τυλίγεται */
.list td { white-space: nowrap; }
.list td[data-col="name"], .list td[data-col="title"] { white-space: normal; min-width: 180px; }

/* ================= Ειδοποιήσεις & λίστα παραγγελίας (v2026.10.11-9, js/alerts.js) ================= */
.bell-btn { position: relative; padding: 8px; }
.bell-badge { position: absolute; top: 1px; right: 0; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px;
  background: var(--warn); color: #1f1300; font-size: 10.5px; font-weight: 800; line-height: 17px; text-align: center; box-shadow: 0 0 0 2px var(--panel); }
.bell-badge.urgent { background: var(--bad); color: #fff; }
.alerts-panel { width: 380px; max-width: calc(100vw - 24px); max-height: 72vh; overflow: auto; padding: 0; }
.alerts-head { position: sticky; top: 0; background: var(--panel); padding: 12px 14px 10px; font-weight: 800; border-bottom: 1px solid var(--line); z-index: 1; }
.alerts-empty { padding: 18px 14px; color: var(--sub); }
.alerts-empty.ok { color: var(--ok); font-weight: 600; }
.alerts-sec { padding: 8px 6px; border-bottom: 1px solid var(--line); }
.alerts-sec:last-child { border-bottom: none; }
.alerts-sec-title { display: flex; align-items: center; gap: 8px; padding: 4px 8px 6px; font-size: 12px; font-weight: 700; color: var(--sub); text-transform: uppercase; letter-spacing: .4px; }
.alerts-sec-title .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--sub); }
.alerts-sec.bad .dot { background: var(--bad); } .alerts-sec.warn .dot { background: var(--warn); } .alerts-sec.info .dot { background: var(--accent-light); }
.alerts-sec-title .cnt { margin-left: auto; background: var(--panel-light); border: 1px solid var(--line); border-radius: 999px; padding: 0 7px; font-size: 11px; color: var(--ink); }
.alerts-row { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; width: 100%; text-align: left; background: transparent; border: none;
  border-radius: 8px; padding: 7px 8px; box-shadow: none; transform: none !important; color: var(--ink); }
.alerts-row:hover { background: var(--panel-light); }
.alerts-row .a-main { font-size: 14px; font-weight: 600; }
.alerts-row .a-sub { font-size: 12px; color: var(--sub); }
.alerts-sec.bad .a-sub { color: #f87171; }
.alerts-more { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 8px 2px; font-size: 12px; color: var(--sub); }
.small-btn { padding: 6px 12px !important; font-size: 13px; margin-left: auto; }
.modal-panel.modal-wide { max-width: 1100px; }
.reorder-group { border: 1px solid var(--line); border-radius: 12px; margin: 12px 0; overflow: hidden; }
.reorder-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 10px 12px; background: var(--panel-light); }
.reorder-acts { display: flex; gap: 6px; flex-wrap: wrap; }
.reorder-acts button { padding: 6px 12px; font-size: 13px; }
.reorder-table { overflow-x: auto; }
.reorder table td, .reorder table th { padding: 7px 8px; white-space: nowrap; }
.reorder table td:nth-child(3) { white-space: normal; min-width: 160px; }
.reorder input.qty { width: 72px; padding: 4px 6px; }
.reorder select { padding: 4px 6px; max-width: 170px; }
.reorder tfoot td { font-weight: 600; border-top: 1px solid var(--line); }
@media print {
  #alertsBell { display: none !important; }
  .reorder select, .reorder input[type=checkbox], .reorder-acts { display: none !important; }
  .reorder input.qty { border: none; background: none; color: #000; width: 50px; }
}
@media (max-width: 600px) { .alerts-panel { position: fixed; left: 12px; right: 12px; top: 112px; width: auto; } }

/* ================= Αιτήματα βλάβης (v2026.10.11-10, js/requests.js) ================= */
.chips-filter { display: inline-flex; gap: 6px; }
.chip-f { padding: 6px 14px; border-radius: 999px; font-size: 14px; }
.chip-f.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.req-list { display: flex; flex-direction: column; gap: 10px; }
.req-empty { padding: 30px; text-align: center; color: var(--sub); border: 1px dashed var(--line); border-radius: 14px; }
.req-card { display: flex; gap: 14px; align-items: flex-start; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel-light); }
.req-photo { width: 84px; height: 84px; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); cursor: zoom-in; flex: none; }
.req-body { flex: 1; min-width: 0; }
.req-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.req-desc { white-space: pre-wrap; word-break: break-word; margin-bottom: 4px; }
.req-st { font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--line); }
.req-st.st-new { color: #fff; background: var(--bad); border-color: var(--bad); }
.req-st.st-ok { color: var(--ok); border-color: rgba(34,197,94,.5); }
.req-st.st-off { color: var(--sub); }
.req-acts { display: flex; flex-direction: column; gap: 6px; align-items: stretch; flex: none; }
.req-acts button { padding: 8px 12px; font-size: 14px; }
.nav-count { margin-left: auto; min-width: 20px; padding: 0 6px; height: 20px; line-height: 20px; border-radius: 10px; background: var(--bad); color: #fff; font-size: 11.5px; font-weight: 800; text-align: center; }
@media (max-width: 600px) { .req-card { flex-wrap: wrap; } .req-acts { flex-direction: row; flex-wrap: wrap; width: 100%; } }

/* ================= Οι Εργασίες μου — λειτουργία τεχνικού (v2026.10.11-11, js/field.js) ================= */
.field-note { margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; border: 1px dashed var(--line); color: var(--sub); font-size: 14px; }
.field-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.field-card { display: flex; flex-direction: column; gap: 6px; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel-light); }
.field-card.running { border-color: var(--ok); box-shadow: 0 0 0 2px rgba(34,197,94,.25); }
.fc-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.fc-status { font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--line); }
.fc-status.inprog { color: #a5b4fc; border-color: rgba(99,102,241,.6); }
.fc-status.open { color: var(--warn); border-color: rgba(245,158,11,.5); }
.fc-due { font-size: 13px; color: var(--sub); }
.fc-due.late { color: var(--bad); font-weight: 700; }
.fc-due.soon { color: var(--warn); font-weight: 600; }
.fc-title { font-size: 17px; font-weight: 700; line-height: 1.3; }
.fc-machine { font-weight: 600; color: var(--ink); }
.fc-notes { font-size: 14px; color: var(--sub); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-wrap; }
.fc-meta:empty { display: none; }
.fc-timer { font-size: 22px; font-weight: 800; color: var(--ok); font-variant-numeric: tabular-nums; }
.fc-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 6px; }
.fc-acts button { padding: 12px 10px; font-size: 15px; font-weight: 600; }
.fc-acts button.primary { grid-column: span 2; }
.fc-acts .warn-soft { grid-column: span 2; background: rgba(245,158,11,.15); border-color: rgba(245,158,11,.6); color: var(--warn); }
.fc-acts .ok-soft { background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.55); color: var(--ok); }
.fc-acts .ghost { background: transparent; }
.sig-pad { width: 100%; height: auto; aspect-ratio: 5 / 2; background: #fff; border-radius: 12px; border: 1px solid var(--line); touch-action: none; display: block; margin-bottom: 10px; }
.field-hint { outline: 2px solid var(--ok); outline-offset: 4px; border-radius: 8px; }
@media (max-width: 600px) { .field-list { grid-template-columns: 1fr; } }

/* ================= Εμφάνιση v2026.10.11-12: πάνελ από δεξιά, εργαλειοθήκη, χρώματα, μαζικές ενέργειες ================= */
/* Εργαλειοθήκη */
.more-btn { white-space: nowrap; }
.scan-inline { border: 1px solid var(--line) !important; padding: 8px !important; }
select.chips-source { display: none; }
.filter-bar { gap: 10px; }
.bulk-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 6px 10px; border-radius: 12px; background: rgba(79,70,229,.12); border: 1px solid rgba(99,102,241,.45); }
.bulk-bar[hidden] { display: none; }
.bulk-bar button { padding: 6px 12px; font-size: 13px; }
.bulk-bar .link-btn { margin: 0; padding: 6px 4px; }
.row-check, .check-all { margin: 0 8px 0 0; vertical-align: middle; width: 16px; height: 16px; cursor: pointer; }
/* Κλικ στη γραμμή */
.list tr.row-click { cursor: pointer; }
/* Χρώματα κατάστασης */
.st-badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 700; border: 1px solid transparent; }
.st-badge.st-open { color: var(--warn); background: rgba(245,158,11,.12); border-color: rgba(245,158,11,.45); }
.st-badge.st-inprog { color: #a5b4fc; background: rgba(99,102,241,.14); border-color: rgba(99,102,241,.5); }
.st-badge.st-done { color: var(--ok); background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.45); }
.list td.cell-late { color: var(--bad); font-weight: 700; }
.list td.cell-warn { color: var(--warn); font-weight: 600; }
body.light-theme .st-badge.st-inprog { color: #4338ca; }
.check-all-label { display: inline-flex; align-items: center; font-size: 13px; color: var(--sub); cursor: pointer; margin-left: 6px; }
.filter-bar select#filterMachine { width: auto; max-width: 280px; }

/* ================= v2026.10.11-13: αναζήτηση παντού (Ctrl/Cmd+K) ================= */
#uxPalette { position: fixed; inset: 0; z-index: 3000; display: none; align-items: flex-start; justify-content: center; padding: 10vh 12px 12px; background: rgba(2,6,23,.55); backdrop-filter: blur(4px); }
#uxPalette.open { display: flex; }
.pal-box { width: min(640px, 100%); background: var(--panel); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 30px 80px rgba(0,0,0,.5); overflow: hidden; }
.pal-in { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.pal-in input { flex: 1; border: none !important; background: transparent !important; font-size: 17px; color: var(--ink); outline: none; padding: 6px 0; box-shadow: none !important; }
.pal-in kbd, .kbd-list kbd { font: 12px var(--font-sans); padding: 2px 7px; border-radius: 6px; border: 1px solid var(--line); background: var(--panel-light); color: var(--sub); }
.pal-list { max-height: 55vh; overflow: auto; padding: 6px; }
.pal-item { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: 9px 10px !important; border: none; border-radius: 10px; background: transparent; box-shadow: none; transform: none !important; color: var(--ink); }
.pal-item.sel { background: var(--panel-light); outline: 1px solid var(--line); }
.pi-ic { width: 26px; text-align: center; font-size: 17px; flex: none; }
.pi-t { display: flex; flex-direction: column; min-width: 0; }
.pi-t b { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pi-t small { color: var(--sub); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pal-empty { padding: 18px; color: var(--sub); text-align: center; }
.pal-foot { padding: 8px 14px; border-top: 1px solid var(--line); font-size: 12px; color: var(--sub); }
.kbd-list { display: grid; gap: 10px; }
.kbd-list div { display: flex; gap: 14px; align-items: center; }
.kbd-list kbd { min-width: 74px; text-align: center; font-size: 13px; color: var(--ink); }

/* ================= v2026.10.11-13: πίνακες ως κάρτες στο κινητό ================= */
@media (max-width: 600px) {
  .list { max-height: none; overflow: visible; }
  .list table, .list tbody { display: block; }
  .list thead { display: none; }
  .list tr { display: block; margin: 0 0 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel-light); }
  .list tr:hover td { background: transparent; }
  .list td { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 4px 0 !important; border: none; white-space: normal !important; min-width: 0 !important; max-width: none !important; text-align: right; }
  .list td::before { content: attr(data-label); color: var(--sub); font-size: 12.5px; text-align: left; flex: none; max-width: 45%; }
  .list td:first-child { position: static; background: transparent !important; justify-content: flex-start; font-size: 16px; text-align: left; padding-bottom: 6px !important; }
  .list td:first-child::before { display: none; }
  .list td.cell-clip { overflow: visible; text-overflow: clip; }
  .list td.col-actions { justify-content: flex-end; border-top: 1px solid var(--line); margin-top: 6px; padding-top: 6px !important; width: auto; }
  .list td.col-actions::before { display: none; }
  .list td[colspan] { justify-content: center; }
  .list td[colspan]::before { display: none; }
  .list td:empty, .list td[data-label]:empty { display: none; }
  .row-actions .icon-btn { padding: 9px; }
  #uxRowCard { display: none !important; }
}

/* ================= v2026.10.11-14: λίστες ελέγχου & στάση μηχανής ================= */
.cl-editor { display: flex; flex-direction: column; gap: 6px; }
.cl-row { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.cl-row select { width: auto; }
.cl-row input[type=text]:not(.cl-small) { flex: 1 1 220px; min-width: 160px; }
.cl-row .cl-small { width: 84px; }
.cl-row .icon-btn { padding: 6px 8px; }
.cl-n { color: var(--sub); width: 22px; text-align: right; }
.cl-editor > button { align-self: flex-start; }
.cl-runner { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: var(--panel-light); }
.cl-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; font-size: 14px; }
.cl-bar { flex: 1 1 120px; height: 8px; border-radius: 6px; background: var(--line); overflow: hidden; }
.cl-bar span { display: block; height: 100%; background: var(--ok); transition: width .2s; }
.cl-badtxt { color: var(--bad); font-weight: 700; }
.cl-item { display: flex; align-items: center; gap: 10px; padding: 8px 6px; border-top: 1px solid var(--line); flex-wrap: wrap; }
.cl-item:first-child { border-top: none; }
.cl-check { display: flex; align-items: center; gap: 10px; cursor: pointer; flex: 1; }
.cl-check input { width: 20px; height: 20px; }
.cl-item.ok .cl-text { color: var(--sub); text-decoration: line-through; }
.cl-item .cl-text { flex: 1; min-width: 140px; }
.cl-meas { display: inline-flex; align-items: center; gap: 8px; }
.cl-val { width: 100px; }
.cl-item.bad { background: rgba(239,68,68,.1); border-radius: 8px; }
.cl-item.bad .cl-val { border-color: var(--bad); color: var(--bad); font-weight: 700; }
.cl-item.ok:has(.cl-val) .cl-text { text-decoration: none; color: var(--ink); }
.now-btn { padding: 8px 10px; font-size: 13px; flex: none; }
@media (min-width: 700px) { .cl-row { flex-wrap: nowrap; } .cl-row input[type=text]:not(.cl-small) { min-width: 0; } }

/* ================= v2026.10.11-15: λίστα ανταλλακτικών μηχανής & Pareto ================= */
.parts-list-item.bom-low span { color: var(--warn); }
.bom-machines { display: flex; flex-wrap: wrap; gap: 6px; }
.pareto-chart { position: relative; height: 280px; }

/* ================= v2026.10.11-16: απογραφή ================= */
.stk-top { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.stk-in { flex: 1 1 220px; font-size: 16px; }
.stk-top select { width: auto; }
.stk-table { overflow-x: auto; }
.stk-table td, .stk-table th { padding: 7px 8px; white-space: nowrap; }
.stk-table td:nth-child(2) { white-space: normal; min-width: 160px; }
.stk-qty { width: 90px; font-size: 16px; }
.stk-table td.ok { color: var(--ok); font-weight: 700; } .stk-table td.bad { color: var(--bad); font-weight: 700; }
.stk-sum { margin-top: 8px; color: var(--sub); }
/* Ιστορικό αλλαγών */
.hist-list { max-height: 60vh; overflow: auto; display: flex; flex-direction: column; gap: 10px; }
.hist-row { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: var(--panel-light); }
.hist-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.hist-act { font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--line); }
.hist-act.h-create { color: var(--ok); } .hist-act.h-update { color: #a5b4fc; } .hist-act.h-delete { color: var(--bad); }
.hist-ch { margin: 6px 0 0; padding-left: 18px; font-size: 13.5px; }
.hist-ch s { color: var(--sub); }

/* ================= v2026.10.11-17: δομή εξοπλισμού & λήξη εγγράφων ================= */
.eq-tree details { margin-left: 0; }
.eq-tree summary, .tree-leaf { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; cursor: pointer; list-style: none; }
.eq-tree summary::-webkit-details-marker { display: none; }
.eq-tree summary::before { content: '▸'; color: var(--sub); width: 12px; transition: transform .15s; }
.eq-tree details[open] > summary::before { transform: rotate(90deg); }
.tree-leaf { cursor: default; padding-left: 28px; }
.eq-tree summary:hover, .tree-leaf:hover { background: var(--panel-light); }
.tree-kids { margin-left: 18px; border-left: 1px dashed var(--line); padding-left: 6px; }
.tree-label { flex: 1; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.tree-ic { width: 22px; text-align: center; }
.tree-wo { margin-left: 6px; font-size: 12px; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: rgba(245,158,11,.14); color: var(--warn); border: 1px solid rgba(245,158,11,.4); }
.tree-open { padding: 2px 8px !important; }
.att-exp-wrap { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
.att-exp-wrap.late .att-exp { border-color: var(--bad); color: var(--bad); }
.att-exp { width: 150px; padding: 4px 6px; font-size: 13px; }

/* ================= v2026.10.11-18: απόθεμα ανά αποθήκη ================= */
.wh-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.wh-chip { padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--panel-light); font-size: 13.5px; }
.wh-chip.neg { border-color: var(--bad); color: var(--bad); }
.wh-table td, .wh-table th { padding: 6px 8px; }

/* ================= v2026.10.11-19: μηνιαία αναφορά ================= */
.rep-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.rep-co { color: var(--sub); font-weight: 600; }
.rep-month { width: auto; }
.rep-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-bottom: 8px; }
.rep-kpi { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: var(--panel-light); }
.rep-k-v { font-size: 22px; font-weight: 800; }
.rep-k-l { font-size: 13px; color: var(--sub); }
.rep-k-s { font-size: 12px; color: var(--warn); }
.rep-table { width: 100%; border-collapse: collapse; margin-bottom: 6px; }
.rep-table th, .rep-table td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: left; }
@media print {
  .rep { color: #000; }
  .rep-month { display: none !important; }
  .rep-kpi { border: 1px solid #999; background: #fff; }
  .rep-k-l, .rep-co, .rep-foot { color: #444 !important; }
  .rep-table th, .rep-table td { border-bottom: 1px solid #bbb; color: #000; }
  .rep h3 { color: #000; break-after: avoid; }
}

/* ================= v2026.10.11-21: φόρτος τεχνικών, δελτίο εργασίας ================= */
.workload { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 12px; }
.wl-chip { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 0; padding: 6px 12px; border-radius: 12px; font-size: 13px; line-height: 1.25; }
.wl-chip span { color: var(--sub); font-size: 12px; }
.wl-chip.on { background: var(--accent); border-color: var(--accent); color: #fff; }
.wl-chip.on span { color: #e0e7ff; }
.jobsheet h2 { margin: 2px 0 0; }
.jobsheet h3 { margin: 16px 0 6px; }
.js-head { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 2px solid var(--line); padding-bottom: 8px; margin-bottom: 10px; }
.js-co { color: var(--sub); font-weight: 600; }
.js-no { font-family: ui-monospace, monospace; font-size: 18px; font-weight: 700; }
.js-tab, .js-list { width: 100%; border-collapse: collapse; }
.js-tab th { text-align: left; width: 160px; color: var(--sub); font-weight: 600; padding: 4px 8px; vertical-align: top; }
.js-tab td, .js-list td, .js-list th { padding: 4px 8px; border-bottom: 1px solid var(--line); text-align: left; }
.js-notes { white-space: pre-wrap; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; }
.js-cost { text-align: right; margin-top: 10px; }
.js-sign { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 26px; }
.js-sign img { max-width: 260px; max-height: 110px; background: #fff; border: 1px solid var(--line); border-radius: 8px; display: block; margin-top: 4px; }
.js-line { border-bottom: 1px solid var(--ink); height: 60px; }
@media print {
  .jobsheet, .jobsheet * { color: #000 !important; }
  .js-tab td, .js-list td, .js-list th { border-bottom: 1px solid #bbb !important; }
  .js-line { border-bottom-color: #000 !important; }
}

/* v2026.10.11-23: το πλαϊνό μενού στο κινητό/στενό παράθυρο κυλάει μόνο του (πριν κυλούσε η σελίδα από πίσω) */
@media (max-width: 1024px) {
  main > aside { overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-bottom: 24px; }
  main > aside nav { gap: 6px; }
  main > aside nav button { padding: 10px 14px; }
  html:has(main > aside.nav-open), body:has(main > aside.nav-open) { overflow: hidden; }
}
body:not(.nav-pinned) main > aside { overscroll-behavior: contain; }

/* ================= v2026.10.11-24: λογότυπο και κεφαλίδα ================= */
header h1 { display: flex; align-items: center; gap: 12px; font-size: 20px; letter-spacing: .2px; }
header .brand-logo { width: 38px; height: 38px; border-radius: 10px; box-shadow: 0 4px 14px rgba(79,70,229,.45); flex: none; }
header .brand-text { display: flex; flex-direction: column; line-height: 1.1; }
header .brand-sub { font-size: 11.5px; font-weight: 500; color: var(--sub); letter-spacing: .3px; margin-top: 3px; }
header { background: linear-gradient(180deg, rgba(79,70,229,.10), rgba(11,18,32,.82)) !important; }
body.light-theme header { background: linear-gradient(180deg, rgba(79,70,229,.08), rgba(255,255,255,.88)) !important; }
header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: linear-gradient(90deg, #7c3aed, #4f46e5 50%, #06b6d4); opacity: .7; }
@media (max-width: 480px) { header .brand-sub { display: none; } header h1 { font-size: 17px; } header .brand-logo { width: 32px; height: 32px; } }
.auth-logo-img { width: 48px; height: 48px; border-radius: 12px; box-shadow: 0 6px 18px rgba(79,70,229,.45); }

/* ================= v2026.10.11-25: κέντρο βοήθειας ================= */
.help-btn { color: #a5b4fc; }
@media (max-width: 768px) { .header-actions > button#btnHelp, .header-actions > button#btnPalette { display: inline-flex; } }
#helpCenter { position: fixed; inset: 0; z-index: 2500; display: none; justify-content: flex-end; background: rgba(2,6,23,.55); backdrop-filter: blur(3px); }
#helpCenter.open { display: flex; }
.hc-panel { width: min(860px, 100%); height: 100%; background: var(--panel); border-left: 1px solid var(--line); display: flex; flex-direction: column; box-shadow: -20px 0 50px rgba(0,0,0,.4); animation: hcIn .2s ease; }
@keyframes hcIn { from { transform: translateX(40px); opacity: .6; } to { transform: none; opacity: 1; } }
.hc-head { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); font-size: 17px; }
.hc-head img { border-radius: 8px; }
.hc-search { padding: 10px 18px; border-bottom: 1px solid var(--line); }
.hc-search input { width: 100%; font-size: 15px; }
.hc-body { flex: 1; display: grid; grid-template-columns: 230px 1fr; min-height: 0; }
.hc-toc { overflow: auto; padding: 10px 8px; border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 2px; }
.hc-link { text-align: left; background: transparent; border: none; padding: 7px 10px; border-radius: 8px; font-size: 13.5px; color: var(--ink); box-shadow: none; transform: none !important; }
.hc-link:hover { background: var(--panel-light); }
.hc-content { overflow: auto; padding: 6px 22px 40px; line-height: 1.55; font-size: 14.5px; }
.hc-sec { padding: 12px 0 16px; border-bottom: 1px solid var(--line); scroll-margin-top: 8px; transition: background .4s; border-radius: 8px; }
.hc-sec h3 { color: var(--ink); font-size: 17px; margin: 6px 0 8px; }
.hc-sec h4 { margin: 12px 0 4px; font-size: 14.5px; }
.hc-sec ul { padding-left: 20px; margin: 6px 0; }
.hc-sec li { margin: 4px 0; }
.hc-sec kbd { font: 12px var(--font-sans); padding: 1px 6px; border-radius: 5px; border: 1px solid var(--line); background: var(--panel-light); }
.hc-sec.hc-hit { background: rgba(99,102,241,.12); }
@media (max-width: 700px) { .hc-body { grid-template-columns: 1fr; } .hc-toc { display: none; } .hc-content { padding: 6px 14px 40px; } }

/* v2026.10.11-26: εμφανές κουμπί «Βοήθεια» στην πάνω γραμμή */
.help-pill { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 999px; flex: none;
  background: linear-gradient(135deg, #fbbf24, #f59e0b); color: #1f1300; border: 1px solid #d97706; font-weight: 800; font-size: 15px; letter-spacing: .3px;
  box-shadow: 0 6px 18px rgba(245,158,11,.45), inset 0 1px 0 rgba(255,255,255,.4); cursor: pointer; transition: transform .15s, box-shadow .15s; }
.help-pill:hover { transform: translateY(-1px) scale(1.03); box-shadow: 0 10px 26px rgba(245,158,11,.6), inset 0 1px 0 rgba(255,255,255,.4); }
.help-pill.pulse { animation: helpPulse 1.8s ease-in-out infinite; }
@keyframes helpPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(251,191,36,.75), 0 6px 18px rgba(245,158,11,.45); } 60% { box-shadow: 0 0 0 12px rgba(251,191,36,0), 0 6px 18px rgba(245,158,11,.45); } }
@media (prefers-reduced-motion: reduce) { .help-pill.pulse { animation: none; } }
@media (max-width: 480px) { .help-pill { padding: 8px 12px; font-size: 14px; } }
@media print { .help-pill { display: none !important; } }
@media (max-width: 480px) { .help-pill { padding: 8px; } .help-pill span { display: none; } header h1 .brand-text { font-size: 16px; } }
/* v2026.10.11-27: κωδικοί βλάβης στα αιτήματα */
.req-code { display: inline-block; margin: 2px 0 4px; padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; background: rgba(239,68,68,.12); color: #f87171; border: 1px solid rgba(239,68,68,.4); }
.req-code.new { background: rgba(245,158,11,.12); color: var(--warn); border-color: rgba(245,158,11,.45); }
.req-map { padding: 7px 8px; font-size: 13px; }
/* v2026.10.11-28 */
.req-newcode-box { margin: 8px 0 6px; padding: 10px; border-radius: 12px; border: 1px dashed rgba(245,158,11,.6); background: rgba(245,158,11,.08); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.req-newcode-box > .small { flex-basis: 100%; color: var(--warn); }
.req-newcode-box button { padding: 7px 12px; font-size: 13.5px; }
#uxUpdate { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 2600; display: flex; align-items: center; gap: 12px; padding: 10px 12px 10px 16px;
  border-radius: 14px; background: var(--panel); border: 1px solid var(--accent); box-shadow: 0 14px 40px rgba(0,0,0,.45); max-width: calc(100vw - 24px); }
#uxUpdate button.primary { padding: 8px 14px; }
@media print { #uxUpdate { display: none !important; } }
/* v2026.10.11-29: σταματημένη μηχανή στα αιτήματα */
.req-stop { font-size: 12px; font-weight: 800; padding: 2px 9px; border-radius: 999px; background: #ef4444; color: #fff; }
.req-run { font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: rgba(245,158,11,.15); color: var(--warn); border: 1px solid rgba(245,158,11,.45); }
.req-card.urgent { border-color: #ef4444; box-shadow: 0 0 0 2px rgba(239,68,68,.25); }
/* v2026.10.11-30: ειδοποιήσεις push */
.alerts-push { padding: 10px; border-top: 1px solid var(--line); }
.push-toggle { width: 100%; padding: 9px 12px; font-weight: 700; border-radius: 10px; background: rgba(79,70,229,.15); border-color: rgba(99,102,241,.5); }
.push-toggle.on { background: rgba(34,197,94,.12); border-color: rgba(34,197,94,.5); color: var(--ok); }
.push-note { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.push-note .push-toggle { width: auto; }
/* v2026.10.11-31: υποχρεωτικά πεδία */
.req-star { color: var(--bad); font-weight: 800; }
/* v2026.10.11-32: παραλήπτες ειδοποιήσεων */
.recip-wrap { overflow-x: auto; margin: 8px 0 14px; }
.recip-table { width: 100%; border-collapse: collapse; }
.recip-table th, .recip-table td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.recip-table select { width: auto; min-width: 210px; }
.recip-table input[type=checkbox] { width: 20px; height: 20px; }
/* v2026.10.11-33: έκδοση & «Τι νέο υπάρχει» */
header .brand-title { display: inline-flex; align-items: center; gap: 8px; }
.ver-pill { font: 600 11px var(--font-sans); padding: 2px 8px; border-radius: 999px; border: 1px solid var(--line); background: var(--panel-light); color: var(--sub); cursor: pointer; letter-spacing: .3px; box-shadow: none; transform: none !important; }
.ver-pill:hover { color: var(--ink); border-color: var(--accent-light); }
.whatsnew { max-height: 62vh; overflow: auto; }
.wn-entry { padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 10px; }
.wn-entry.latest { border-color: var(--accent-light); background: rgba(99,102,241,.08); }
.wn-head { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 4px; }
.wn-entry ul { margin: 4px 0 0; padding-left: 20px; }
.wn-entry li { margin: 3px 0; }

/* Εταιρεία χωρίς Συντήρηση στη συνδρομή (modules του Next Gen ERP) */
body.no-maint main > aside, body.no-maint #hamburgerBtn, body.no-maint #btnScanQr,
body.no-maint #btnExportCsv, body.no-maint #kpiFab, body.no-maint #kpiBtn, body.no-maint #alertsBell { display: none !important; }
body.no-maint .layout { grid-template-columns: 1fr; }
.no-maint-card { max-width: 560px; margin: 40px auto; text-align: center; display: flex; flex-direction: column; gap: 14px; align-items: center; }
.no-maint-card h2 { margin: 0; font-size: 1.25rem; }
.no-maint-switch { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: center; }
/* Η άδεια Συντήρησης έληξε: στο κινητό το #planBadge κρύβεται, οπότε η σήμανση μπαίνει πάνω από το περιεχόμενο */
@media (max-width: 480px) {
  body.maint-ro #content::before { content: 'Η άδεια Συντήρησης έληξε: μόνο ανάγνωση'; display: block; margin-bottom: 10px;
    padding: 8px 12px; border-radius: 10px; font-size: .85rem; font-weight: 600; text-align: center;
    color: #fff; background: #b91c1c; }
}

/* Συγχρονισμός και εργασία από το κινητό — v37 */
.sync-status {font-size:12px;padding:8px 12px;border-radius:20px;color:var(--ok);max-width:100%;white-space:normal;}
.sync-status.has-pending,.sync-row-note {color:var(--warn);}
.sync-status.has-conflict {color:var(--bad);border-color:var(--bad);}
.sync-row-note {font-size:12px;line-height:1.5;margin-top:5px;}
.sync-job {padding:14px;margin-bottom:12px;border:1px solid var(--line);border-radius:12px;overflow-wrap:anywhere;}
.sync-job button {margin:4px;min-height:42px;}
.field-search {display:flex;gap:10px;margin:12px 0;flex-wrap:wrap;}
.field-search input {flex:1;min-width:180px;}
.field-summary {margin-bottom:14px;}
.fc-more {border-top:1px solid var(--line);padding-top:10px;margin-top:8px;}
.fc-more summary {cursor:pointer;padding:8px 0;color:var(--sub);font-size:14px;}
@media(max-width:600px){.field-list{grid-template-columns:minmax(0,1fr);}.field-card{min-width:0;}.fc-acts button{min-height:48px;}.field-search button{min-height:44px;}.sync-status{font-size:11px;}}

.sync-strip {display:flex;justify-content:flex-end;padding:6px 16px 0;box-sizing:border-box;}
body.auth-mode .sync-strip {display:none;}

/* Οργάνωση εργασιών, με ίδια διάταξη σε κινητό και υπολογιστή. */
.wo-priority{display:inline-block;border-radius:20px;padding:3px 9px;font-size:12px;font-weight:700;white-space:nowrap;background:var(--bg);border:1px solid var(--line)}
.wo-critical{background:#fee2e2;color:#991b1b;border-color:#fca5a5}.wo-high{background:#ffedd5;color:#9a3412;border-color:#fdba74}.wo-low{color:var(--sub)}
.fc-top{flex-wrap:wrap;gap:6px}.planner-filters{display:flex;gap:8px;flex-wrap:wrap}.planner-filters select{flex:1;min-width:150px;max-width:100%}
.planner-summary{font-weight:700;line-height:1.7;padding:12px;background:var(--bg);border-radius:10px}.planner-list{display:grid;gap:10px}.planner-card{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:7px;overflow-wrap:anywhere}.planner-card button{justify-self:start}.planner-heading{display:flex;justify-content:space-between;gap:8px;align-items:start}.planner-late{font-size:13px;color:var(--bad);font-weight:600}
@media(max-width:600px){.planner-filters{display:grid;grid-template-columns:1fr}.planner-filters select{min-width:0;width:100%}.planner-heading{flex-wrap:wrap}}

/* Έλεγχος αποθέματος και ευανάγνωστη αναπλήρωση στο κινητό. */
.stock-control-list{display:grid;gap:10px}.stock-numbers,.stock-card-actions{display:flex;flex-wrap:wrap;gap:8px 14px}.stock-numbers{font-size:14px}.stock-card-actions button{font-size:13px}.planner-filters input{flex:1;min-width:160px;max-width:100%}
@media(max-width:600px){.reorder table,.reorder tbody,.reorder tr,.reorder td{display:block;width:100%;white-space:normal!important}.reorder thead{display:none}.reorder tbody tr{border-bottom:1px solid var(--line);padding:10px}.reorder tbody td{display:flex;justify-content:space-between;gap:12px;align-items:center;min-width:0!important}.reorder tbody td::before{content:attr(data-label);font-size:12px;color:var(--sub);flex-shrink:0}.reorder td input.qty{width:100px}.reorder td select{max-width:190px}.reorder tfoot tr{display:flex;flex-wrap:wrap}.reorder tfoot td{width:auto}.planner-filters input{width:100%;min-width:0}}
@media(max-width:600px){.reorder tbody td:nth-child(3){display:block}.reorder tbody td:nth-child(3)::before{display:block;margin-bottom:5px}.reorder tbody td:nth-child(3) .small{margin-top:5px}}

/* Ίδια εμφάνιση και επαρκές ύψος αφής στα φίλτρα οργάνωσης/αποθήκης. */
.planner-filters input[type=search]{background:var(--panel-light);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;min-height:44px;outline:none}
.planner-filters input[type=search]::placeholder{color:var(--sub)}
.planner-filters input[type=search]:focus-visible{border-color:var(--accent-light);box-shadow:0 0 0 2px var(--accent)}
.planner-filters select{min-height:44px}

.table-scroll{max-width:100%;overflow-x:auto}.rep{min-width:0}.rep-table{overflow-wrap:anywhere}
@media(max-width:600px){.rep-table thead{display:none}.rep-table tbody,.rep-table tr{display:block}.rep-table tr{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;padding:8px}.rep-table td{display:flex;justify-content:space-between;gap:12px}.rep-table td::before{content:attr(data-label);color:var(--sub);font-size:12px;flex-shrink:0}.modal-actions button,.planner-card button{min-height:44px}.modal-actions{flex-wrap:wrap}}
@media print{.rep-table thead{display:table-header-group}.rep-table tbody{display:table-row-group}.rep-table tr{display:table-row;border:0}.rep-table td{display:table-cell}.rep-table td::before{content:none}}

.readiness{display:grid;gap:12px}.readiness label{display:grid;gap:8px}.readiness p{margin:3px 0;overflow-wrap:anywhere}.readiness input[type=file]{max-width:100%}
/* Μετρητές λειτουργίας και αυτόματοι έλεγχοι */
.meter-form{display:grid;gap:12px}.meter-form label{display:grid;gap:6px}.meter-form input,.meter-form select,.meter-form textarea{width:100%;box-sizing:border-box}.meter-history{display:grid;gap:8px}.meter-entry{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px;border:1px solid var(--line);border-radius:10px}.meter-entry p{flex-basis:100%;margin:0}.cl-auto{display:flex;align-items:center;gap:6px;font-size:12px;max-width:180px}.cl-auto input{width:auto}.cl-item small{display:block}

.cl-auto[hidden]{display:none}
/* Παραγγελίες, πρόγραμμα, οδηγίες και επανέλεγχοι */
.pro-list{display:grid;gap:12px;min-width:0}.pro-field{display:grid;gap:6px;width:100%}.pro-list input,.pro-list select,.pro-list textarea{box-sizing:border-box;width:100%}.pro-card{padding:14px;border:1px solid var(--line);border-radius:12px;min-width:0;overflow-wrap:anywhere}.pro-card h3{margin-top:0}.pro-warning{border-color:var(--warn,#f59e0b)}.pro-work{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}.pro-work span{flex:1;min-width:160px}.guide-text{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.6}.pro-card>a{display:block;margin:8px 0;color:var(--accent)}

.pro-list input[type=checkbox]{width:auto;justify-self:start}

/* Standalone company structure */
.product-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
.product-field{display:flex;flex-direction:column;gap:.35rem;margin:.8rem 0;min-width:0}
.product-field input:not([type=checkbox]),.product-field select{width:100%;max-width:100%;box-sizing:border-box}
.product-form{max-width:38rem;width:100%}.product-record{border:1px solid var(--line,#ccc);border-radius:12px;padding:1rem;margin:1rem 0;overflow-wrap:anywhere}
.product-site{border-inline-start:3px solid var(--line,#ccc);padding-inline-start:1rem;margin:1rem 0}
.product-equipment{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.7rem 0;border-bottom:1px solid var(--line,#ccc)}
.product-equipment b{flex:1 1 12rem;overflow-wrap:anywhere}.product-equipment button{white-space:normal}

.locale-switch{display:flex;justify-content:flex-end;padding:.4rem 1rem;background:var(--panel);border-bottom:1px solid var(--line)}.locale-switch label{display:flex;align-items:center;gap:.5rem}.locale-switch select{width:auto;max-width:10rem;padding:.3rem .5rem}

/* Standalone AI entry: visible in the toolbar without covering mobile content. */
button.ai-launcher{
 display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
 min-height:44px;padding:.6rem 1.15rem;border:1px solid transparent;border-radius:999px;
 background:linear-gradient(110deg,#4338ca,#6d28d9);color:#fff;
 font-weight:600;white-space:nowrap;box-shadow:0 5px 14px rgba(67,56,202,.22);
}
button.ai-launcher:hover{background:linear-gradient(110deg,#3730a3,#5b21b6);transform:none;}
button.ai-launcher:focus-visible{outline:3px solid var(--ink);outline-offset:3px;}
.ai-launcher-icon{font-size:1.5em;line-height:1;}
@media (forced-colors:active){button.ai-launcher{border-color:ButtonText;}}

.plan-batch input[type="date"]{color-scheme:dark}
body.light-theme .plan-batch input[type="date"]{color-scheme:light}

.plan-batch [hidden]{display:none!important}

/* Practical help stays readable on phones; guides are read-only. */
.hc-guides{display:flex;flex-wrap:wrap;gap:8px;align-items:end;padding:10px 16px;border-bottom:1px solid var(--line)}
.hc-guides label{display:grid;gap:4px;flex:1 1 260px;min-width:0;font-size:13px}
.hc-guides select{width:100%;min-width:0;margin:0}
.hc-guides p{flex-basis:100%;margin:0}
.hc-sec ol{padding-left:24px}.hc-sec ol li{margin:9px 0}
.hc-content:focus{outline:2px solid var(--accent);outline-offset:-2px}
@media(max-width:700px){.hc-guides{padding:8px}.hc-guides button{flex:1}.hc-guides label{flex-basis:100%}}

.ai-budget{gap:12px}.ai-budget>p{margin:0}.ai-budget .pro-field{margin:0}

/* Compact dashboard and visible depth on the day theme. */
.dashboard-status{grid-column:span 5;align-self:start;min-width:0}.dashboard-stock{grid-column:span 7;align-self:start;min-width:0}
.status-chart-frame{position:relative;height:clamp(260px,27vw,340px);min-width:0}
body.light-theme{--line:#c4cfdf;--panel-light:#f3f6fb}
body.light-theme .card,body.light-theme .pro-card,body.light-theme .stat-card{border:1px solid var(--line);box-shadow:0 6px 18px rgba(15,23,42,.09),0 1px 3px rgba(15,23,42,.07)}
body.light-theme .modal-panel{border:1px solid #bcc9db;box-shadow:0 18px 54px rgba(15,23,42,.22)}
body.light-theme th{background:linear-gradient(180deg,#f8fafc,#eaf0f8)}
body.light-theme tbody tr:hover{background:#edf2fb}
@media(max-width:768px){.dashboard-status,.dashboard-stock{grid-column:span 1}.status-chart-frame{height:280px}}
