    :root {
      --bg:        #060812;
      --surface:   rgba(255,255,255,0.06);
      --surface2:  rgba(255,255,255,0.08);
      --border:    rgba(255,255,255,0.12);
      --green:     #3b82f6;
      --green-dim: rgba(59,130,246,0.12);
      --text:      rgba(255,255,255,0.95);
      --text-dim:  rgba(255,255,255,0.55);
      --red:       #ef4444;
      --red-dim:   rgba(239,68,68,0.14);
      --orange:    #f97316;
      --orange-dim:rgba(249,115,22,0.13);
      --yellow:    #eab308;
      --blue:      #3b82f6;
      --glass-bg:       rgba(255,255,255,0.06);
      --glass-border:   rgba(255,255,255,0.12);
      --glass-blur:     blur(20px);
      --accent-blue:    #3b82f6;
      --accent-cyan:    #06b6d4;
      --accent-emerald: #10b981;
      --accent-red:     #ef4444;
      --accent-amber:   #f59e0b;
      --text-primary:   rgba(255,255,255,0.95);
      --text-secondary: rgba(255,255,255,0.55);
      --text-muted:     rgba(255,255,255,0.3);
    }
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; cursor: default; user-select: none; }
    button, [role="button"], .btn, .tab, .stat-card, .stat-combo-row, .contact-dot, .pay-btn, .cancel-btn, .pay-method-btn, .cash-bill-btn, .cash-clear-btn, .cash-confirm-btn, .combo-confirm-btn, .combo-tag-remove, .combo-result-row, .tamio-filter-btn, .modal-close, .topbar-btn, a, [onclick] { cursor: pointer !important; }
    input, textarea, [contenteditable] { cursor: text !important; user-select: text !important; }
    select { cursor: pointer !important; user-select: none; }
    body { font-family: 'DM Sans', 'Segoe UI', system-ui, -apple-system, sans-serif; background: var(--bg); color: var(--text); font-size: 15px; line-height: 1.6; }
    body::before {
      content: '';
      position: fixed; inset: 0; pointer-events: none; z-index: 0;
      background:
        radial-gradient(ellipse 65% 55% at 0% 0%, rgba(29,78,216,0.18) 0%, transparent 60%),
        radial-gradient(ellipse 55% 50% at 100% 15%, rgba(8,145,178,0.14) 0%, transparent 55%),
        radial-gradient(ellipse 50% 45% at 40% 100%, rgba(6,95,70,0.12) 0%, transparent 60%);
    }
    #app-page, #login-page, #auth-loading { position: relative; z-index: 1; }

    /* ── LOGIN — split screen ── */
    #auth-loading {
      position: fixed; inset: 0; background: var(--bg);
      display: flex; align-items: center; justify-content: center;
      z-index: 9999;
    }
    #auth-loading::after {
      content: ''; width: 28px; height: 28px; border: 3px solid #2a2a2a;
      border-top-color: #3b82f6; border-radius: 50%;
      animation: spin 0.7s linear infinite;
    }
    #login-page {
      min-height: 100vh;
      display: flex;
      flex-direction: row;
    }

    /* Left panel — form */
    .login-panel {
      width: 40%;
      min-width: 320px;
      background: rgba(6,8,18,0.92);
      backdrop-filter: blur(32px);
      -webkit-backdrop-filter: blur(32px);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 60px 48px;
      flex-shrink: 0;
    }

    /* Right panel — image */
    .login-image {
      flex: 1;
      background: url('../images/image_login.png') center center / cover no-repeat;
    }

    /* Card inside the left panel */
    .login-card {
      width: 100%;
      max-width: 340px;
    }
    .login-logo { font-family: 'Syne', sans-serif; font-size: 24px; font-weight: 800; letter-spacing: -0.5px; margin-bottom: 6px; background: linear-gradient(135deg, #60a5fa, #34d399); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
    .login-sub { color: #94a3b8; font-size: 13px; margin-bottom: 32px; }
    .login-error { color: #f87171; font-size: 13px; margin-top: 12px; display: none; }

    /* Input overrides — scoped to login panel */
    .login-panel .form-group label { color: #64748b; }
    .login-panel .form-group input {
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(100, 150, 255, 0.2);
      color: #f1f5f9;
    }
    .login-panel .form-group input:focus { border-color: rgba(100, 150, 255, 0.6); }
    .login-panel .form-group input::placeholder { color: #475569; }

    /* Button override */
    #login-btn {
      background: linear-gradient(135deg, #3b82f6, #1d4ed8);
      color: #fff;
      border: none;
      margin-top: 4px;
    }
    #login-btn:hover:not(:disabled) { opacity: 0.88; }

    /* Mobile: stack image on top, form below */
    @media (max-width: 640px) {
      #login-page { flex-direction: column; }
      .login-image { width: 100%; height: 220px; flex: none; }
      .login-panel { width: 100%; padding: 40px 28px 48px; }
    }

    /* ── FORM FIELDS (shared: login + modals) ── */
    .form-group { margin-bottom: 14px; }
    .form-group label { display: block; font-size: 12px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.6px; margin-bottom: 5px; }
    .form-group input,
    .form-group select,
    .form-group textarea { width: 100%; background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; padding: 9px 11px; color: var(--text); font-size: 13px; outline: none; transition: border-color 0.2s; font-family: inherit; }
    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(59,130,246,0.12); }
    .form-group textarea { resize: vertical; min-height: 70px; }
    .form-group select option { background: var(--surface2); }
    .form-check-row { display: flex; align-items: center; gap: 8px; padding: 9px 0; }
    .form-check-row input[type="checkbox"] { width: 15px; height: 15px; accent-color: var(--green); cursor: pointer; flex-shrink: 0; }
    .form-check-row label { font-size: 13px; color: var(--text); text-transform: none; letter-spacing: 0; cursor: pointer; margin: 0; }
    .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
    .form-grid .span2 { grid-column: 1 / -1; }

    /* ── BUTTONS ── */
    .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 18px; border-radius: 6px; border: none; cursor: pointer; font-size: 14px; font-weight: 500; transition: opacity 0.2s, background 0.2s, color 0.2s, border-color 0.2s, transform 0.15s, box-shadow 0.15s; white-space: nowrap; }
    .btn:disabled { opacity: 0.45; cursor: not-allowed; }
    .btn-primary { background: linear-gradient(135deg, #3b82f6, #2563eb); color: #fff; box-shadow: 0 4px 20px rgba(59,130,246,0.35); }
    .btn-primary:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 6px 24px rgba(59,130,246,0.5); opacity: 0.95; }
    .btn-full { width: 100%; }
    .btn-secondary { background: var(--surface2); color: var(--text); border: 1px solid var(--border); }
    .btn-secondary:hover:not(:disabled) { border-color: var(--green); color: var(--green); transform: translateY(-1px); }
    .btn-ghost { background: none; border: 1px solid var(--border); color: var(--text-dim); }
    .btn-ghost:hover:not(:disabled) { border-color: #555; color: var(--text); }
    .btn-sm { padding: 7px 13px; font-size: 13px; }
    .csd-wrap { position: relative; display: inline-block; }
    .csd-btn { background: var(--surface2); border: 1px solid var(--border); color: var(--text); font-size: 13px; padding: 6px 10px; border-radius: 6px; display: flex; align-items: center; gap: 8px; min-width: 170px; white-space: nowrap; }
    .csd-btn:hover { border-color: rgba(255,255,255,0.25); }
    .csd-label { flex: 1; text-align: left; }
    .csd-arrow { color: var(--text-dim); font-size: 10px; transition: transform 0.15s; }
    .csd-wrap.open .csd-arrow { transform: rotate(180deg); }
    .csd-menu { display: none; position: absolute; top: calc(100% + 4px); left: 0; min-width: 100%; background: rgba(10,14,30,0.97); backdrop-filter: blur(28px); -webkit-backdrop-filter: blur(28px); border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,0.5); z-index: 200; padding: 4px 0; }
    .csd-wrap.open .csd-menu { display: block; }
    .csd-opt { padding: 7px 14px; font-size: 13px; color: var(--text); cursor: pointer; }
    .csd-opt:hover { background: rgba(255,255,255,0.06); }
    .csd-opt.active { color: var(--text); }
    .csd-opt[data-st="Εξοφλήθηκε"]           { color: #34d399; }
    .csd-opt[data-st="Ανεξόφλητο"]           { color: #f87171; }
    .csd-opt[data-st="Δεν Ανανεώνεται"]      { color: #f87171; }
    .csd-opt[data-st="Σε Διαδικασία Ακύρωσης"] { color: #fbbf24; }
    .csd-opt[data-st="Ακυρώθηκε"]            { color: #fb923c; }
    .csd-opt[data-st="Προσφορά"]             { color: #a78bfa; }
    .csd-opt[data-st="Ενημερώθηκε"]          { color: #60a5fa; }
    .csd-rule { height: 1px; background: var(--border); border: none; margin: 4px 0; }

    /* ── APP LAYOUT ── */
    #app-page { display: none; flex-direction: column; min-height: 100vh; }
    header { background: rgba(6,8,18,0.75); border-bottom: 1px solid rgba(255,255,255,0.08); padding: 0 20px; display: flex; align-items: center; gap: 12px; height: 56px; position: sticky; top: 0; z-index: 200; box-shadow: 0 2px 16px rgba(0,0,0,0.35); backdrop-filter: blur(28px); -webkit-backdrop-filter: blur(28px); }
    .header-logo {
      font-family: 'Syne', sans-serif;
      font-size: 18px;
      font-weight: 800;
      letter-spacing: -0.5px;
      margin-right: 4px;
      background: linear-gradient(135deg, #60a5fa, #34d399);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .header-spacer { flex: 1; }
    .header-user { font-size: 13px; color: var(--text-dim); }

    /* ── ACTIONS DROPDOWN MENU ── */
    .actions-menu-wrap { position: relative; }
    .actions-menu-dropdown { position: absolute; top: calc(100% + 4px); right: 0; background: rgba(10,14,30,0.97); backdrop-filter: blur(28px); -webkit-backdrop-filter: blur(28px); border: 1px solid var(--border); border-radius: 12px; min-width: 190px; z-index: 500; display: none; flex-direction: column; box-shadow: 0 8px 24px rgba(0,0,0,0.35); overflow: hidden; }
    .actions-menu-dropdown.open { display: flex; }
    .actions-menu-item { padding: 10px 18px; cursor: pointer; font-size: 13px; color: var(--text); transition: background 0.15s; white-space: nowrap; letter-spacing: 0.1px; }
    .actions-menu-item:hover { background: rgba(255,255,255,0.08); }
    .menu-item { padding: 10px 18px; cursor: pointer; font-size: 13px; color: var(--text); transition: background 0.15s; white-space: nowrap; letter-spacing: 0.1px; }
    .menu-item:hover { background: rgba(255,255,255,0.08); }
    .menu-separator { height: 1px; background: var(--border); margin: 5px 0; }

    /* ── PHONE FILTER BAR ── */
    #phone-filter-bar { display: none; background: rgba(59,130,246,0.08); border: 1px solid rgba(59,130,246,0.25); border-radius: 6px; padding: 7px 14px; margin-bottom: 10px; font-size: 13px; color: #93c5fd; align-items: center; gap: 10px; }
    #phone-filter-bar .pfb-close { margin-left: auto; cursor: pointer; color: #60a5fa; font-size: 15px; line-height: 1; }
    #phone-filter-bar .pfb-close:hover { color: #fff; }

    /* ── MAIN CONTENT ── */
    #main-content { padding: 20px 24px; }

    /* ── STICKY CONTROLS ── */
    #controls-sticky { position: sticky; top: 0; z-index: 50; background: rgba(6,8,18,0.88); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); padding-bottom: 4px; margin-bottom: 4px; box-shadow: 0 4px 16px rgba(0,0,0,0.4); }

    /* ── MONTH NAV ── */
    .month-nav { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
    .month-nav-btn { background: var(--glass-bg); border: 1px solid var(--glass-border); border-radius: 8px; color: var(--text); padding: 7px 14px; cursor: pointer; font-size: 16px; line-height: 1; transition: border-color 0.2s, color 0.2s, transform 0.15s; }
    .month-nav-btn:hover { border-color: var(--green); color: var(--green); transform: translateY(-1px); }
    .month-label { font-size: 18px; font-weight: 700; color: var(--text); min-width: 180px; text-align: center; }

    /* ── STATS BAR ── */
    .stats-bar { display: flex; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }
    .stat-card { background: rgba(255,255,255,0.06) !important; border: 1px solid rgba(255,255,255,0.12) !important; border-radius: 14px; padding: 6px 12px; flex: 1; min-width: 90px; cursor: pointer; user-select: none; transition: all 0.25s; box-shadow: 0 2px 12px rgba(0,0,0,0.3); backdrop-filter: blur(20px) !important; -webkit-backdrop-filter: blur(20px) !important; position: relative; overflow: hidden; }
    .stat-card::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, transparent 60%); pointer-events: none; border-radius: 14px; }
    .stat-card:hover { border-color: rgba(255,255,255,0.22); background: rgba(255,255,255,0.09); transform: translateY(-1px); box-shadow: 0 5px 20px rgba(0,0,0,0.35); }
    .stat-card.green.active  { border-color: #22c55e;  box-shadow: 0 0 0 1px #22c55e; }
    .stat-card.red.active    { border-color: var(--red);    box-shadow: 0 0 0 1px var(--red); }
    .stat-card.orange.active { border-color: var(--orange); box-shadow: 0 0 0 1px var(--orange); }
    .stat-card.blue.active   { border-color: var(--blue);   box-shadow: 0 0 0 1px var(--blue); }
    .stat-card.yellow.active { border-color: var(--yellow); box-shadow: 0 0 0 1px var(--yellow); }
    .stat-card.purple.active { border-color: #8b5cf6; box-shadow: 0 0 0 1px #8b5cf6; }
    .stat-card.active { border-color: rgba(255,255,255,0.45); box-shadow: 0 0 0 1px rgba(255,255,255,0.45); }
    .stat-card.purple .stat-value { color: #8b5cf6; }
    .stat-label { font-size: 11px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 1px; }
    #stat-inprogress { color: #22c55e; }
    #stat-paid { color: #d1d5db; }
    .stat-value { font-size: 19px; font-weight: 700; }
    .stat-card.green .stat-value { color: #22c55e; }
    .stat-card.red .stat-value { color: var(--red); }
    .stat-card.orange .stat-value { color: var(--text); }
    #sc-today { border-color: rgba(255,255,255,0.22); }
    #sc-pending .stat-value { color: var(--orange); }
    .stat-card.yellow .stat-value { color: var(--yellow); }
    .stat-card.blue .stat-value { color: var(--blue); }
    .stat-sub { font-size: 11px; color: var(--text-dim); margin-top: 3px; }
    #stat-unpaid-sum { font-size: 15px; }
    .stat-card-combo { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 14px;
      overflow: hidden; display: flex; flex-direction: column; min-width: 130px; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
    .stat-combo-row { padding: 5px 12px; cursor: pointer; user-select: none; transition: background 0.15s;
      display: flex; align-items: center; justify-content: space-between; gap: 8px; }
    .stat-combo-row:hover { background: rgba(255,255,255,0.04); }
    .stat-combo-row.active { background: rgba(255,255,255,0.06); border-left: 2px solid rgba(255,255,255,0.4); }
    .stat-combo-row .stat-label { margin-bottom: 0; }
    .stat-combo-val { font-size: 14px; font-weight: 700; color: var(--text); }
    .stat-balance { display: flex; align-items: center; justify-content: center; gap: 5px;
      padding: 5px 16px; background: rgba(0,0,0,0.15); border-top: 1px solid rgba(255,255,255,0.05);
      border-bottom: 1px solid rgba(255,255,255,0.05); }
    .stat-balance-value { font-size: 12px; font-weight: 700; }
    .stat-balance-label { font-size: 11px; color: var(--text-dim); letter-spacing: 0.4px; text-transform: uppercase; }
    /* Μικτά price history tooltip */
    .mikta-wrap { cursor: default; text-decoration: underline dotted rgba(255,255,255,0.3); }
    .mikta-tip { position: fixed; background: rgba(10,14,30,0.97); backdrop-filter: blur(24px); border: 1px solid rgba(255,255,255,0.15); color: var(--text);
      font-size: 14px; padding: 14px 18px; border-radius: 10px; white-space: nowrap; z-index: 9999;
      opacity: 0; visibility: hidden; transition: opacity 0.18s; pointer-events: none; line-height: 2.1;
      min-width: 180px; box-shadow: 0 12px 40px rgba(0,0,0,0.75); }
    .mikta-tip strong, .mikta-tip b { font-weight: 700; }
    .mikta-tip .mikta-tip-num { font-weight: 700; font-size: 15px; }

    /* ── SMART SEARCH ZONE ── */
    #smart-search-zone {
      background: rgba(6,8,18,0.85); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
      border-bottom: 1px solid var(--border);
      padding: 10px 24px 0; position: sticky; top: 56px; z-index: 150;
    }
    #smart-search-zone .stats-bar { margin-bottom: 8px; }
    #smart-search-zone .stats-divider { height: 1px; background: var(--border); margin: 0 0 10px; }
    #smart-search-bar {
      display: flex; align-items: center; gap: 10px;
      background: var(--glass-bg); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur); border: 1px solid var(--glass-border); border-radius: 10px;
      padding: 0 14px; height: 48px; transition: border-color 0.2s;
    }
    #smart-search-bar:focus-within { border-color: rgba(59,130,246,0.6); box-shadow: 0 0 0 3px rgba(59,130,246,0.12); }
    .ss-icon { color: var(--text-dim); font-size: 18px; flex-shrink: 0; }
    #search-input {
      flex: 1; background: none; border: none; outline: none;
      color: var(--text); font-size: 16px; font-family: inherit;
    }
    #search-input::placeholder { color: var(--text-dim); }
    #ss-clear-btn {
      background: none; border: none; color: var(--text-dim); cursor: pointer;
      font-size: 16px; padding: 2px 6px; border-radius: 4px; flex-shrink: 0; line-height: 1;
    }
    #ss-clear-btn:hover { color: var(--text); }
    /* Alert zone */
    #smart-alert-zone { padding-bottom: 10px; }
    .ss-alert-banner {
      display: flex; align-items: center; gap: 16px;
      background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.4);
      border-left: 4px solid #ef4444; border-radius: 8px;
      padding: 16px 20px; margin: 10px 0 8px;
    }
    .ss-alert-icon { font-size: 28px; line-height: 1; flex-shrink: 0; }
    .ss-alert-body { display: flex; flex-direction: column; gap: 4px; }
    .ss-alert-title { font-size: 10px; font-weight: 700; color: #fca5a5; text-transform: uppercase; letter-spacing: 0.8px; }
    .ss-alert-name  { font-size: 18px; font-weight: 700; color: #fff; }
    .ss-alert-meta  { font-size: 13px; color: #fca5a5; }
    .ss-alert-amount { color: #f87171; font-weight: 700; }
    /* Each "card" is just a Greek plate badge */
    /* ── Unified Greek plate badge ── */
    .gr-plate { display: inline-flex; align-items: stretch; background: #fff; border: 1.5px solid #111; border-radius: 3px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.18); }
    .gr-plate-eu { background: #003399; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3px 0; }
    .gr-plate-stars { color: #ffdd00; line-height: 1.15; text-align: center; }
    .gr-plate-country { color: #fff; font-weight: 900; font-family: Arial, sans-serif; }
    .gr-plate-num { display: flex; align-items: center; justify-content: center; color: #000; font-family: 'Courier New', monospace; font-weight: 900; }
    /* Size: lg (standalone display) */
    .gr-plate.lg { height: 62px; }
    .gr-plate.lg .gr-plate-eu { width: 44px; gap: 2px; }
    .gr-plate.lg .gr-plate-stars { font-size: 6px; letter-spacing: 2px; }
    .gr-plate.lg .gr-plate-country { font-size: 11px; letter-spacing: 1px; margin-top: 2px; }
    .gr-plate.lg .gr-plate-num { font-size: 30px; letter-spacing: 5px; padding: 0 18px; }
    /* Size: md (search alert, default) */
    .gr-plate.md { height: 36px; }
    .gr-plate.md .gr-plate-eu { width: 26px; gap: 1px; }
    .gr-plate.md .gr-plate-stars { font-size: 4px; letter-spacing: 1px; }
    .gr-plate.md .gr-plate-country { font-size: 7px; letter-spacing: 0.5px; }
    .gr-plate.md .gr-plate-num { font-size: 15px; letter-spacing: 3px; padding: 0 10px; }
    /* Size: sm (contact modal cards) */
    .gr-plate.sm { height: 26px; margin-bottom: 7px; }
    .gr-plate.sm .gr-plate-eu { width: 20px; gap: 1px; }
    .gr-plate.sm .gr-plate-stars { font-size: 3.5px; letter-spacing: 0.8px; }
    .gr-plate.sm .gr-plate-country { font-size: 5.5px; }
    .gr-plate.sm .gr-plate-num { font-size: 12px; letter-spacing: 2px; padding: 0 7px; }

    /* ── FILTER BAR ── */
    .filter-bar { display: flex; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; align-items: center; }
    .filter-bar select { background: var(--surface); border: 1px solid var(--border); border-radius: 6px; padding: 8px 12px; color: var(--text); font-size: 13px; outline: none; transition: border-color 0.2s; }
    .filter-bar select:focus { border-color: var(--green); }
    .filter-bar select option { background: var(--surface2); }

    /* ── TABLE ── */
    .table-wrapper { background: rgba(255,255,255,0.03); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid var(--glass-border); border-radius: 14px; overflow-x: auto; overflow-y: auto; max-height: calc(100vh - 390px); }
    table { width: 100%; border-collapse: collapse; font-size: 14px; }
    #main-table thead th { overflow: visible; }
    .cr-handle { position: absolute; right: 0; top: 0; bottom: 0; width: 6px; cursor: col-resize; z-index: 11; user-select: none; }
    .cr-handle:hover, .cr-handle.cr-active { background: rgba(99,179,237,0.45); border-radius: 2px; }
    thead th { position: sticky; top: 0; z-index: 10; background: rgba(255,255,255,0.02); padding: 9px 11px; text-align: left; color: var(--text-muted); font-weight: 600; font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; white-space: nowrap; border-bottom: 1px solid rgba(255,255,255,0.06); cursor: default; user-select: none; }
    tbody tr { border-bottom: 1px solid rgba(255,255,255,0.04); transition: background 0.15s; }
    tbody tr:last-child { border-bottom: none; }
    tbody td { padding: 8px 11px; white-space: nowrap; vertical-align: middle; max-width: 170px; overflow: hidden; text-overflow: ellipsis; cursor: default; user-select: none; }
    #main-table tbody td { height: 60px; }
    tbody td .phone-cell, tbody td .plate-link { user-select: text; }
    tbody td[data-col="mikta"] { border-bottom: none; position: relative; padding-right: 90px; white-space: nowrap; }
    tbody td[data-col="status"] { vertical-align: middle; width: 1px; }

    /* Row highlights — must come before :hover so hover can stack */
    tbody tr.row-soon  { box-shadow: inset 4px 0 0 #f97316; }
    tbody tr:hover { background: rgba(255,255,255,0.05); }
    tbody tr.row-done { }
    tbody tr.row-archived { opacity: 0.42; filter: saturate(0.4); }
    tbody tr.row-archived:hover { opacity: 0.7; filter: saturate(0.6); }
    tbody tr.row-cancel-settled { }
    tbody tr.row-cancel-settled .contact-dot, tbody tr.row-cancel-settled .check-cb, tbody tr.row-cancel-settled .stars-container { pointer-events: none; }

    /* Rows where Έναρξη === today — blinking red */
    @keyframes blink-red {
      0%, 100% { background: rgba(220, 38, 38, 0.15); }
      50%       { background: rgba(220, 38, 38, 0.35); }
    }
    @keyframes wave-white {
      0%,100% { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.1), 0 0 8px rgba(255,255,255,0.05) }
      50% { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.3), 0 0 20px rgba(255,255,255,0.12) }
    }


    /* ── Payment button on row hover ── */
    .pay-btn { opacity: 1; background: var(--surface2); border: 1px solid var(--border); border-left: 3px solid var(--blue); box-shadow: inset 2px 0 8px rgba(59,130,246,0.15); color: var(--text-dim); border-radius: 20px; font-size: 12px; font-weight: 600; padding: 3px 10px 3px 8px; line-height: 1; display: inline-flex; align-items: center; cursor: pointer; transition: background 0.2s, color 0.2s; white-space: nowrap; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); letter-spacing: 0.2px; }
    .pay-btn:hover { background: var(--surface2); border-left-color: #60a5fa; box-shadow: inset 2px 0 12px rgba(59,130,246,0.25); color: var(--text); }
    /* Row settled flash */
    @keyframes row-settle-flash { 0%{background:rgba(59,130,246,0.45)} 100%{background:transparent} }
    tbody tr.row-settle-flash { animation: row-settle-flash 1.2s ease forwards; }
    /* Pay popup */
    #pay-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.65); z-index: 8999; backdrop-filter: blur(3px); animation: overlay-in 0.2s ease; }
    @keyframes overlay-in { from{opacity:0} to{opacity:1} }
    #pay-popup { position: fixed; z-index: 9000; top: 50%; left: 50%; transform: translate(-50%,-50%); background: rgba(14,16,24,0.98); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255,255,255,0.09); border-top: 2px solid rgba(99,102,241,0.55); border-radius: 20px; padding: 24px; min-width: 440px; max-width: 92vw; max-height: 88vh; overflow-y: auto; box-shadow: 0 32px 80px rgba(0,0,0,0.9), inset 0 1px 0 rgba(99,102,241,0.08); animation: pay-popup-in 0.22s ease; }
    @keyframes pay-popup-in { from{opacity:0;transform:translate(-50%,-50%) scale(0.94)} to{opacity:1;transform:translate(-50%,-50%) scale(1)} }
    #pay-popup-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,0.06); }
    #pay-popup-title { font-size: 20px; font-weight: 900; color: var(--text); letter-spacing: 0.5px; margin-bottom: 6px; }
    #pay-popup-status-tag { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 20px; padding: 3px 10px; margin-bottom: 12px; letter-spacing: 0.3px; border: 1px solid transparent; }
    #pay-popup-status-tag[data-st="Εξοφλήθηκε"]           { background: rgba(34,197,94,0.15);  color: #4ade80; border-color: rgba(34,197,94,0.3); }
    #pay-popup-status-tag[data-st="Ανεξόφλητο"]           { background: rgba(245,158,11,0.15); color: #fbbf24; border-color: rgba(245,158,11,0.3); }
    #pay-popup-status-tag[data-st="Σε Εξέλιξη"]           { background: rgba(59,130,246,0.15); color: #60a5fa; border-color: rgba(59,130,246,0.3); }
    #pay-popup-status-tag[data-st="Δεν Ανανεώνεται"]      { background: rgba(239,68,68,0.15);  color: #f87171; border-color: rgba(239,68,68,0.3); }
    #pay-popup-status-tag[data-st="Δεν Απάντησε"]         { background: rgba(107,114,128,0.15);color: #9ca3af; border-color: rgba(107,114,128,0.3); }
    #pay-popup-status-tag[data-st="Σε Διαδικασία Ακύρωσης"]{ background: rgba(249,115,22,0.15);color: #fb923c; border-color: rgba(249,115,22,0.3); }
    #pay-popup-amount { font-size: 30px; font-weight: 900; color: var(--text); line-height: 1; }
    #pay-amount-sublabel { font-size: 11px; color: rgba(255,255,255,0.28); letter-spacing: 0.5px; margin-top: 4px; }
    /* Paid-record (cancellation-only) modal enhancements */
    #pay-popup.pay-paid-view #pay-popup-amount { font-size: 34px; }
    #pay-popup.pay-paid-view #btn-status-cancel { background: rgba(239,68,68,0.10); border: 1.5px solid rgba(239,68,68,0.4); color: #f87171; padding: 18px 20px; border-radius: 12px; }
    #pay-popup.pay-paid-view #btn-status-cancel:hover { background: rgba(239,68,68,0.18) !important; opacity: 1 !important; transform: translateY(-1px); }
    #pay-popup.pay-paid-view #btn-status-cancel .pbi { font-size: 20px; }
    #pay-popup.pay-paid-view #btn-status-cancel .par-title { font-size: 14px; }
    #pay-popup.pay-paid-view .pay-section-label { font-size: 11px; letter-spacing: 0.8px; }
    #pay-popup-close { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.5); font-size: 14px; font-weight: 700; width: 30px; height: 30px; border-radius: 50%; cursor: pointer; flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: background 0.15s, border-color 0.15s, color 0.15s; }
    #pay-popup-close:hover { background: rgba(239,68,68,0.2); border-color: rgba(239,68,68,0.5); color: #f87171; }
    .pay-popup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
    .pay-method-btn { border: none; border-radius: 10px; padding: 13px 14px; font-size: 13px; font-weight: 700; cursor: pointer; transition: opacity 0.15s, transform 0.1s, background 0.15s; display: flex; flex-direction: row; align-items: center; gap: 10px; color: #fff; }
    .pay-method-btn:hover { opacity: 0.88; transform: translateY(-1px); }
    .pay-method-btn:active { transform: translateY(0); }
    .pay-method-btn.dena-pressed { background: #7f1d1d !important; box-shadow: inset 0 3px 8px rgba(0,0,0,0.55), 0 0 0 2px #ef4444 !important; transform: scale(0.96) !important; opacity: 1 !important; }
    .pay-method-btn.dena-pressed:hover { opacity: 1 !important; transform: scale(0.96) !important; }
    .pay-method-btn.unpaid-pressed { background: #78350f !important; box-shadow: inset 0 3px 8px rgba(0,0,0,0.55), 0 0 0 2px #f59e0b !important; transform: scale(0.96) !important; opacity: 1 !important; }
    .pay-method-btn.unpaid-pressed:hover { opacity: 1 !important; transform: scale(0.96) !important; }
    .pay-method-btn.full { grid-column: 1 / -1; flex-direction: row; justify-content: center; gap: 8px; padding: 12px 16px; }
    .pay-section-label { font-size: 10px; font-weight: 700; color: rgba(255,255,255,0.28); letter-spacing: 1.1px; text-transform: uppercase; margin-bottom: 8px; }
    .pay-divider { display: flex; align-items: center; gap: 10px; margin: 14px 0; color: rgba(255,255,255,0.22); font-size: 10px; letter-spacing: 1px; text-transform: uppercase; }
    .pay-divider::before, .pay-divider::after { content:''; flex:1; height:1px; background: rgba(255,255,255,0.06); }
    .pay-status-grid { display: grid; grid-template-columns: 1fr; gap: 6px; margin-bottom: 0; }
    #btn-status-cancel { justify-content: flex-start; }
    .par-body { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; }
    .par-title { font-size: 13px; font-weight: 700; line-height: 1.3; }
    .par-desc { font-size: 11px; font-weight: 400; opacity: 0.6; line-height: 1.3; }
    #pay-popup-footer { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.06); }
    #pay-footer-close { width: 100%; padding: 10px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.04); color: rgba(255,255,255,0.45); font-size: 13px; font-weight: 600; cursor: pointer; transition: background 0.15s, color 0.15s; font-family: inherit; }
    #pay-footer-close:hover { background: rgba(255,255,255,0.09); color: var(--text); }
    .pay-method-btn span.emoji { font-size: 20px; }
    .pbi { font-size: 17px; flex-shrink: 0; }
    .pay-sb-red    { border: 1.5px solid #ef4444; color: #ef4444; background: rgba(239,68,68,0.07); }
    .pay-sb-amber  { border: 1.5px solid #f59e0b; color: #f59e0b; background: rgba(245,158,11,0.12); }
    .pay-sb-orange { border: 1.5px solid #f97316; color: #f97316; background: rgba(249,115,22,0.07); }
    /* ── ΕΝΕΡΓΕΙΕΣ MENU REDESIGN ── */
    #pay-methods-grid .pay-popup-grid { display: flex; flex-direction: column; gap: 0; grid-template-columns: unset; margin-bottom: 0; padding: 6px 14px 10px; }
    .ene-item { width: 100%; text-align: left; padding: 13px 16px; border-radius: 10px; font-size: 0.88rem; font-weight: 700; cursor: pointer; display: flex; align-items: center; gap: 10px; border: none; background: transparent; transition: background 0.15s; font-family: inherit; }
    .ene-green { color: #4ade80; }
    .ene-green:hover { background: rgba(74,222,128,0.1); }
    .ene-red { color: #fb7185; }
    .ene-red:hover { background: rgba(251,113,133,0.1); }
    .pay-method-btn.ene-item { padding: 13px 16px; border: none; background: transparent; flex-direction: row; }
    .pay-method-btn.ene-item:hover { transform: none; opacity: 1; }
    .ene-arrow { margin-left: auto; font-size: 1rem; display: inline-block; transition: transform 0.2s; }
    .ene-exof-wrap.ene-open .ene-arrow { transform: rotate(90deg); }
    .ene-submenu { display: none; flex-direction: column; gap: 3px; padding: 4px 0 6px 12px; }
    .ene-exof-wrap.ene-open .ene-submenu { display: flex; }
    .ene-pay-primary { width: 100%; text-align: left; padding: 11px 14px; border-radius: 8px; font-size: 1rem; font-weight: 700; cursor: pointer; color: #fff; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); transition: background 0.15s; font-family: inherit; margin-bottom: 2px; }
    .ene-pay-primary:hover { background: rgba(255,255,255,0.12); }
    .ene-subdiv { height: 1px; background: rgba(255,255,255,0.08); margin: 4px 0; }
    .ene-pay-secondary { width: 100%; text-align: left; padding: 7px 14px; border-radius: 6px; font-size: 0.85rem; font-weight: 500; cursor: pointer; color: rgba(255,255,255,0.62); background: transparent; border: none; transition: background 0.15s, color 0.15s; font-family: inherit; }
    .ene-pay-secondary:hover { background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.9); }
    .ene-cancel-btn { margin: 0 14px 12px; width: calc(100% - 28px); justify-content: center; border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.55); background: rgba(255,255,255,0.04); }
    .pay-pay-btn { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); }
    .pay-pay-btn:hover { background: rgba(255,255,255,0.10) !important; border-color: rgba(255,255,255,0.16) !important; opacity: 1 !important; }
    .pay-combo-btn { background: #2563eb !important; border: none !important; justify-content: center; }
    .pay-combo-btn:hover { background: #1d4ed8 !important; opacity: 1 !important; }
    #pay-other-input { width: 100%; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.15); border-radius: 8px; color: var(--text); font-size: 14px; padding: 9px 12px; margin-bottom: 10px; display: none; box-sizing: border-box; }
    #pay-other-input:focus { outline: none; border-color: rgba(255,255,255,0.4); }
    #pay-combo-panel { display: none; }
    .combo-search-inp { width: 100%; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.15); border-radius: 8px; color: var(--text); font-size: 13px; padding: 9px 12px; box-sizing: border-box; margin-bottom: 6px; }
    .combo-search-inp:focus { outline: none; border-color: #0ea5e9; }
    .combo-results { background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; margin-bottom: 10px; overflow: hidden; max-height: 160px; overflow-y: auto; }
    .combo-result-row { padding: 9px 12px; font-size: 13px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(255,255,255,0.05); }
    .combo-result-row:last-child { border-bottom: none; }
    .combo-result-row:hover { background: rgba(255,255,255,0.06); }
    .combo-result-plate { font-weight: 700; font-size: 12px; color: #7dd3fc; }
    .combo-result-amt { font-weight: 700; color: #22c55e; }
    .combo-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; min-height: 10px; }
    .combo-tag { display: flex; align-items: center; gap: 6px; background: rgba(14,165,233,0.15); border: 1px solid rgba(14,165,233,0.35); border-radius: 20px; padding: 4px 10px 4px 12px; font-size: 12px; font-weight: 600; color: #38bdf8; }
    .combo-tag-remove { background: none; border: none; color: rgba(56,189,248,0.6); cursor: pointer; font-size: 14px; padding: 0; line-height: 1; }
    .combo-tag-remove:hover { color: #ef4444; }
    .combo-total-display { background: rgba(0,0,0,0.2); border-radius: 8px; padding: 10px 14px; margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; }
    .combo-total-label { font-size: 12px; color: var(--text-dim); }
    .combo-total-val { font-size: 20px; font-weight: 800; }
    .combo-split-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
    .combo-split-label { font-size: 12px; font-weight: 600; width: 80px; flex-shrink: 0; color: var(--text-dim); }
    .combo-split-inp { flex: 1; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.15); border-radius: 8px; color: var(--text); font-size: 13px; padding: 7px 10px; box-sizing: border-box; }
    .combo-split-inp:focus { outline: none; border-color: rgba(255,255,255,0.4); }
    .combo-change-line { text-align: center; font-size: 13px; font-weight: 700; padding: 6px 0 10px; min-height: 28px; }
    .combo-confirm-btn { width: 100%; border: none; border-radius: 8px; padding: 12px; font-size: 14px; font-weight: 700; transition: background 0.2s, color 0.2s; cursor: pointer; }
    .pay-popup-cancel { display: block; text-align: center; font-size: 12px; color: var(--text-dim); cursor: pointer; background: none; border: none; width: 100%; padding: 6px 2px 0; }
    #pay-cash-panel { display: none; margin-bottom: 8px; }
    .cash-bills-row { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; justify-content: center; }
    .cash-bill-btn { position: relative; width: 120px; height: 60px; border-radius: 4px; border: 1px solid rgba(0,0,0,0.3); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.2), 0 2px 6px rgba(0,0,0,0.4); cursor: pointer; overflow: hidden; transition: transform 0.18s, box-shadow 0.18s; display: flex; align-items: stretch; user-select: none; flex-shrink: 0; }
    .cash-bill-btn:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.2), 0 10px 24px rgba(0,0,0,0.55); }
    .cash-bill-btn.active { box-shadow: inset 0 0 0 1px rgba(255,255,255,0.2), 0 0 0 2px #fff, 0 6px 20px rgba(0,0,0,0.5); }
    /* Banknote inner layout */
    .bill-left { width: 46px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 4px 0; border-right: 1px solid rgba(0,0,0,0.18); background: rgba(0,0,0,0.1); flex-shrink: 0; }
    .bill-stars { font-size: 5px; letter-spacing: 1px; color: rgba(255,255,0,0.85); line-height: 1.2; text-align: center; }
    .bill-denom-left { font-size: 18px; font-weight: 900; color: #fff; line-height: 1; text-shadow: 0 1px 3px rgba(0,0,0,0.5); }
    .bill-right { flex: 1; display: flex; flex-direction: column; justify-content: space-between; padding: 4px 6px 3px 8px; }
    .bill-euro-text { font-size: 8px; font-weight: 700; letter-spacing: 2px; color: rgba(255,255,255,0.7); text-transform: uppercase; }
    .bill-arch { display: flex; gap: 2px; align-items: flex-end; height: 18px; }
    .bill-arch span { background: rgba(255,255,255,0.22); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
    .bill-serial { font-family: 'Courier New', monospace; font-size: 6px; color: rgba(255,255,255,0.45); letter-spacing: 0.3px; }
    /* Hologram strip */
    .bill-hologram { position: absolute; right: 10px; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(200,200,255,0.3) 25%, rgba(255,255,200,0.4) 50%, rgba(200,255,200,0.3) 75%, rgba(255,200,255,0.4) 100%); border-radius: 2px; opacity: 0.8; }
    /* Texture overlay */
    .cash-bill-btn::after { content:''; position:absolute; inset:0; background: repeating-linear-gradient(45deg, rgba(255,255,255,0.03) 0px, rgba(255,255,255,0.03) 1px, transparent 1px, transparent 4px); pointer-events: none; }
    /* Count badge */
    .bill-count-badge { position: absolute; top: -6px; right: -6px; background: #fff; color: #000; font-size: 9px; font-weight: 900; border-radius: 10px; padding: 1px 5px; box-shadow: 0 1px 4px rgba(0,0,0,0.5); z-index: 2; }
    /* Coins */
    .cash-coins-row { display: flex; gap: 10px; margin-bottom: 12px; justify-content: center; flex-wrap: wrap; }
    .cash-coin-btn { position: relative; width: 44px; height: 44px; border-radius: 50%; border: none; display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 800; color: #fff; transition: transform 0.15s, box-shadow 0.15s; text-shadow: 0 1px 3px rgba(0,0,0,0.7); user-select: none; flex-shrink: 0; line-height: 1.1; text-align: center; }
    .cash-coin-btn:hover { transform: scale(1.12); box-shadow: 0 4px 14px rgba(0,0,0,0.5); }
    .cash-coin-btn.active { box-shadow: 0 0 0 2px #fff, 0 0 10px rgba(255,255,255,0.35); }
    .cash-coin-btn.cc10, .cash-coin-btn.cc20 { background: radial-gradient(circle, #e8c44a 60%, #b8860b 100%); }
    .cash-coin-btn.cc50 { background: radial-gradient(circle, #e0b040 60%, #c8922a 100%); }
    .cash-coin-btn.cc1  { background: radial-gradient(circle, #c8922a 42%, #aaaaaa 42%); }
    .cash-coin-btn.cc2  { background: radial-gradient(circle, #aaaaaa 42%, #c8922a 42%); }
    .cash-bill-count { font-size: 10px; font-weight: 800; opacity: 0.9; }
    .cash-clear-btn { background: rgba(239,68,68,0.15); border: 1px solid rgba(239,68,68,0.3); border-radius: 7px; color: #ef4444; font-size: 12px; font-weight: 800; padding: 0 10px; cursor: pointer; flex-shrink: 0; }
    .cash-clear-btn:hover { background: rgba(239,68,68,0.25); }
    .cash-display { background: rgba(0,0,0,0.25); border: 1px solid rgba(255,255,255,0.07); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; }
    .cash-display-row { display: flex; justify-content: space-between; align-items: baseline; font-size: 12px; margin-bottom: 3px; }
    .cash-display-row .lbl { color: var(--text-dim); }
    .cash-display-row .val { font-weight: 700; }
    .cash-gave-row .val { font-size: 20px; font-weight: 800; color: var(--text); }
    .cash-change-line { margin-top: 8px; padding-top: 7px; border-top: 1px solid rgba(255,255,255,0.08); text-align: center; font-size: 13px; font-weight: 700; min-height: 20px; }
    .cash-confirm-btn { width: 100%; border: none; border-radius: 7px; padding: 10px; font-size: 13px; font-weight: 700; transition: background 0.2s, color 0.2s; }
    .pay-popup-cancel:hover { color: var(--text); }
    /* ── Cancel button on row hover ── */
    .cancel-btn { opacity: 0; background: none; border: 1px solid #f97316; color: #f97316; border-radius: 5px; font-size: 11px; padding: 2px 7px; cursor: pointer; transition: opacity 0.15s, background 0.15s; white-space: nowrap; margin-left: 4px; }
    tbody tr:hover .cancel-btn { opacity: 1; }
    .cancel-btn:hover { background: #f97316; color: #000; }
    /* Cancel popup */
    #cancel-popup { position: fixed; z-index: 9001; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 16px 18px; width: 260px; box-shadow: 0 8px 32px rgba(0,0,0,0.5); animation: pay-popup-in 0.18s ease; }
    #cancel-popup-title { font-size: 12px; font-weight: 700; color: var(--text-dim); letter-spacing: 0.4px; margin-bottom: 8px; }
    #cancel-popup-info { font-size: 13px; color: var(--text); margin-bottom: 8px; line-height: 1.5; }
    #cancel-popup-warn { font-size: 11px; color: #f97316; margin-bottom: 8px; padding: 5px 8px; background: rgba(249,115,22,0.1); border-radius: 5px; }
    .cancel-return-row { margin-bottom: 12px; }
    .cancel-return-row label { font-size: 11px; color: var(--text-dim); display: block; margin-bottom: 4px; }
    .cancel-return-row input { width: 100%; box-sizing: border-box; background: var(--surface2); border: 1px solid var(--border); border-radius: 5px; color: var(--text); font-size: 14px; padding: 6px 8px; }
    .cancel-confirm-btn { width: 100%; border: none; border-radius: 7px; padding: 10px 4px; font-size: 13px; font-weight: 700; cursor: pointer; transition: opacity 0.15s; background: #f97316; color: #fff; margin-bottom: 8px; }
    .cancel-confirm-btn:hover { opacity: 0.85; }
    @keyframes row-cancel-flash { 0%{background:rgba(249,115,22,0.45)} 100%{background:transparent} }
    tbody tr.row-cancel-flash { animation: row-cancel-flash 1.5s ease forwards; }
    @keyframes row-dup-flash { 0%{background:rgba(255,255,255,0.22)} 70%{background:rgba(255,255,255,0.10)} 100%{background:transparent} }
    tbody tr.row-dup-flash td { animation: row-dup-flash 10s ease-out forwards; }
    /* Ταμείο cancel entries */
    .tamio-entry.cancel { opacity: 0.9; }
    .tamio-entry.neg-cancel { border-left: 3px solid #ef4444; }
    .tamio-entry-amt.cancel { color: #f97316; }
    .tamio-entry-amt.neg-cancel { color: #ef4444; font-weight: 800; }
    .tamio-entry-method.cancel-tag { background: rgba(249,115,22,0.15); color: #f97316; border-radius: 4px; padding: 2px 6px; font-size: 11px; }
    .tamio-entry-method.neg-cancel-tag { background: rgba(239,68,68,0.15); color: #f87171; border: 1px solid rgba(239,68,68,0.35); border-radius: 4px; padding: 2px 6px; font-size: 11px; }
    /* ── Archive zone ── */
    #archive-zone { margin-top: 18px; }
    .archive-header { font-size: 12px; font-weight: 700; color: var(--text-dim); letter-spacing: 0.5px; text-transform: uppercase; padding: 10px 0 8px; border-top: 1px solid var(--border); margin-bottom: 8px; display: flex; align-items: center; gap: 8px; }
    .archive-table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 8px; }
    .archive-table-wrap table { width: 100%; border-collapse: collapse; font-size: 12px; opacity: 0.8; }
    .archive-table-wrap th { background: var(--surface2); color: var(--text-dim); font-size: 11px; padding: 7px 8px; text-align: left; white-space: nowrap; }
    .archive-table-wrap td { padding: 6px 8px; border-top: 1px solid rgba(255,255,255,0.04); color: var(--text); white-space: nowrap; }
    .archive-table-wrap tr:hover td { background: rgba(255,255,255,0.04); }
    .archive-cancel-btn { background: none; border: 1px solid #f97316; color: #f97316; border-radius: 4px; font-size: 11px; padding: 2px 6px; cursor: pointer; transition: background 0.15s; }
    .archive-cancel-btn:hover { background: #f97316; color: #000; }
    /* Temp-cancel rows */
    .row-temp-cancel { box-shadow: inset 4px 0 0 #f97316 !important; }
    .badge-temp-cancel { display: inline-block; font-size: 9px; font-weight: 700; color: #f97316; background: rgba(249,115,22,0.12); border: 1px solid rgba(249,115,22,0.3); border-radius: 3px; padding: 1px 4px; margin-left: 4px; vertical-align: middle; white-space: nowrap; }
    /* Partner (Άκης) rows */
    .row-partner { box-shadow: inset 4px 0 0 #fef1ce !important; }
    tbody tr.row-partner td { opacity: 0.75; }
    tbody tr.row-partner:hover td { opacity: 1; }
    .badge-partner { display: inline-block; font-size: 9px; font-weight: 700; color: #fef1ce; background: rgba(254,241,206,0.15); border: 1px solid rgba(254,241,206,0.35); border-left: 3px solid #fef1ce; border-radius: 20px; padding: 1px 6px 1px 5px; margin-left: 4px; vertical-align: middle; white-space: nowrap; letter-spacing: 0.3px; cursor: default; }
    .badge-ekkremotita { display: inline-block; font-size: 9px; font-weight: 700; color: #92400e; background: rgba(251,191,36,0.18); border: 1px solid rgba(251,191,36,0.4); border-radius: 3px; padding: 1px 4px; margin-left: 4px; vertical-align: middle; white-space: nowrap; }
    .badge-archived { display: inline-block; font-size: 9px; font-weight: 700; color: #94a3b8; background: rgba(148,163,184,0.12); border: 1px solid rgba(148,163,184,0.3); border-radius: 3px; padding: 1px 5px; margin-left: 4px; vertical-align: middle; white-space: nowrap; letter-spacing: 0.2px; }
    .status-badge.sb-partner { background: rgba(254,241,206,0.12); color: #fef1ce; border: 1px solid rgba(254,241,206,0.3); }
    /* ── Inline new row ── */
    .row-inline-edit { outline: 1px solid rgba(74,222,128,0.35); }
    .row-inline-edit td { background: rgba(74,222,128,0.04) !important; padding: 8px 11px !important; vertical-align: middle; }
    .row-inline-edit input, .row-inline-edit select { background: transparent; border: none; border-bottom: 1px dashed rgba(99,179,237,0.3); color: var(--text); font-size: 14px; outline: none; padding: 0 2px; box-sizing: border-box; }
    .row-inline-edit input:focus, .row-inline-edit select:focus { border-bottom-color: var(--green); }
    .row-inline-edit input[type="date"] { color-scheme: dark; width: 130px; }
    .row-inline-edit ._ir_cancel { background: none; border: none; cursor: pointer; color: #6b7280; font-size: 14px; line-height: 1; padding: 2px 4px; border-radius: 3px; }
    .row-inline-edit ._ir_cancel:hover { color: #f87171; }
    /* ── Row 3-dot context menu ── */
    .row-menu-btn { background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.10); cursor:pointer; color:#ffffff; font-size:16px; padding:1px 5px; border-radius:5px; opacity:0.6; transition:all 0.15s; line-height:1; display:block; }
    .row-menu-btn:hover { opacity:1 !important; background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.2); }
    .row-menu-dropdown {
      position: fixed;
      z-index: 9999;
      background: rgba(10,14,30,0.97);
      backdrop-filter: blur(28px);
      -webkit-backdrop-filter: blur(28px);
      border: 1px solid rgba(255,255,255,0.10);
      border-radius: 14px;
      min-width: 200px;
      display: none;
      flex-direction: column;
      box-shadow: 0 16px 48px rgba(0,0,0,0.65), inset 0 1px 0 rgba(255,255,255,0.07);
      overflow: hidden;
      padding: 5px 0;
    }
    .row-menu-dropdown.open {
      display: flex;
      animation: rmd-in 0.13s cubic-bezier(.2,.8,.4,1) both;
    }
    @keyframes rmd-in {
      from { opacity:0; transform:scale(0.94) translateY(-6px); }
      to   { opacity:1; transform:scale(1)    translateY(0); }
    }
    .rmd-header {
      padding: 9px 14px 5px;
      font-size: 10px;
      font-weight: 700;
      color: rgba(255,255,255,0.25);
      text-transform: uppercase;
      letter-spacing: 0.9px;
    }
    .rmd-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 9px 14px;
      font-size: 13px;
      color: rgba(255,255,255,0.82);
      cursor: pointer;
      transition: background 0.1s;
    }
    .rmd-item:hover {
      background: rgba(255,255,255,0.07);
      color: #fff;
    }
    .rmd-icon { font-size: 14px; width: 18px; text-align: center; flex-shrink: 0; }
    .rmd-sep  { height: 1px; background: rgba(255,255,255,0.06); margin: 4px 0; }
    .rmd-danger { color: #f87171; }
    .rmd-danger:hover { background: rgba(239,68,68,0.12) !important; color: #fca5a5; }
    /* ── Ταμείο modal ── */
    .tamio-filter-bar { display: flex; gap: 6px; margin-bottom: 14px; align-items: center; flex-wrap: wrap; }
    .tamio-filter-btn { background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; color: var(--text-dim); font-size: 12px; padding: 5px 12px; cursor: pointer; transition: all 0.15s; }
    .tamio-filter-btn.active { border-color: var(--green); color: var(--green); background: var(--green-dim); }
    .tamio-entry { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 12px; background: var(--glass-bg); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur); border: 1px solid var(--glass-border); margin-bottom: 6px; font-size: 13px; }
    .tamio-entry-time { color: var(--text-dim); font-size: 11px; width: 50px; flex-shrink: 0; }
    .tamio-entry-info { flex: 1; }
    .tamio-entry-name { font-weight: 600; }
    .tamio-entry-plate { font-size: 11px; color: var(--text-dim); }
    .tamio-entry-amt { font-weight: 700; font-size: 14px; }
    .tamio-entry-method { font-size: 11px; padding: 2px 7px; border-radius: 10px; flex-shrink: 0; }
    .tamio-entry-method.cash { background: rgba(34,197,94,0.15); color: #22c55e; }
    .tamio-entry-method.card { background: rgba(59,130,246,0.15); color: #60a5fa; }
    .tamio-totals { display: flex; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); flex-wrap: wrap; }
    .tamio-user-tag { font-size: 10px; font-weight: 700; border-radius: 4px; padding: 2px 7px; flex-shrink: 0; }
    .tamio-user-row { border-top: 1px solid var(--border); margin-top: 8px; padding-top: 8px; gap: 6px; flex-wrap: wrap; display: none; }
    .tamio-user-row.visible { display: flex; }
    .tamio-user-filter-btn { background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; font-size: 12px; padding: 4px 11px; cursor: pointer; transition: all 0.15s; font-weight: 600; }
    .tamio-user-filter-btn.active { border-color: currentColor; background: rgba(255,255,255,0.07); }
    .tamio-total-card { flex: 1; background: var(--surface2); border-radius: 8px; padding: 10px 14px; }
    .tamio-total-label { font-size: 11px; color: var(--text-dim); margin-bottom: 3px; }
    .tamio-total-val { font-size: 18px; font-weight: 700; }

    /* New records (Tracking < 30 days) */
    tbody tr.row-new {
      box-shadow: inset 3px 0 0 var(--green), inset 3px 0 8px rgba(59,130,246,0.15);
    }
    .badge-new {
      display: inline-block; background: var(--green); color: #fff;
      font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 9px;
      letter-spacing: 0.5px; margin-left: 5px; vertical-align: middle;
    }
    /* ── Contact status dot ── */
    .contact-dot { display: inline-block; width: 14px !important; height: 14px !important; min-width: 14px !important; min-height: 14px !important; border-radius: 50%; cursor: pointer; user-select: none; outline: none; transition: box-shadow 0.2s; flex-shrink: 0; position: relative; }
    .cs-label { font-size: 10px; font-weight: 600; letter-spacing: 0.2px; white-space: nowrap; opacity: 0.85; }
    .cs-label-1 { color: #ef4444; }
    .cs-label-2 { color: #22c55e; }
    .cs-label-3 { color: #a78bfa; }
    .contact-dot.cs-pending::after { content:''; position:absolute; inset:-4px; border-radius:50%; border:1.5px solid rgba(255,255,255,0.45); animation:cs-pending-ring 1.2s ease-in-out infinite; pointer-events:none; }
    @keyframes cs-pending-ring { 0%,100%{opacity:0.1;transform:scale(1)} 50%{opacity:0.6;transform:scale(1.35)} }
    .contact-dot.cs-0 { background: rgba(255,255,255,0.15); border: 1.5px solid rgba(255,255,255,0.25); }
    .contact-dot.cs-1 { background: #ef4444; border: 1px solid #ef4444; box-shadow: 0 0 6px rgba(239,68,68,0.5); animation: pulse-contact 2s ease-in-out infinite; }
    .contact-dot.cs-2 { background: #10b981; border: 1px solid #10b981; box-shadow: 0 0 6px rgba(16,185,129,0.5); }
    @keyframes pulse-contact { 0%,100%{box-shadow:0 0 3px #ef4444} 50%{box-shadow:0 0 7px #ef4444, 0 0 10px rgba(239,68,68,0.4)} }
    .contact-dot.cs-3 { background: #8b5cf6; border: 1px solid #8b5cf6; box-shadow: 0 0 5px #8b5cf6; animation: pulse-diamond 2s ease-in-out infinite; }
    @keyframes pulse-diamond { 0%,100%{box-shadow:0 0 4px #8b5cf6} 50%{box-shadow:0 0 10px #8b5cf6, 0 0 15px rgba(139,92,246,0.67)} }
    .contact-dot-wrap { display: inline-flex; align-items: center; gap: 3px; }
    .contact-count-badge { font-size: 9px; font-weight: 800; color: #ef4444; opacity: 0.9; line-height: 1; user-select: none; }
    .contact-history-tip { display: none; position: fixed; z-index: 8000; background: rgba(10,14,30,0.97); backdrop-filter: blur(24px); border: 1px solid rgba(255,255,255,0.12); border-radius: 10px; padding: 10px 14px; font-size: 12px; min-width: 240px; max-width: 320px; box-shadow: 0 8px 32px rgba(0,0,0,0.65); pointer-events: none; animation: tipFadeIn 0.12s ease; }
    @keyframes tipFadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
    .cht-title { font-weight: 700; color: #93c5fd; margin-bottom: 6px; }
    .cht-divider { border-top: 1px solid rgba(255,255,255,0.08); margin-bottom: 6px; }
    .cht-row { color: var(--text); line-height: 1.9; font-size: 11.5px; }
    .notes-inline { width:100%; background:rgba(255,255,255,0.05); border:1px solid #3b82f6; color:#e8eaed; font-family:inherit; font-size:14px; padding:1px 5px; border-radius:3px; outline:none; box-sizing:border-box; caret-color:#ffffff; cursor:text; animation:caret-pulse 0.1s ease; }
    @keyframes caret-pulse { from { border-color:rgba(59,130,246,0.4); } to { border-color:#3b82f6; } }
    .notes-suggest { position:fixed; z-index:9999; background:rgba(10,14,30,0.97); backdrop-filter: blur(28px); -webkit-backdrop-filter: blur(28px); border:1px solid var(--border); border-radius:12px; box-shadow:0 6px 20px rgba(0,0,0,0.45); display:flex; flex-direction:column; overflow:hidden; }
    .notes-chip { padding:7px 13px; font-size:12px; color:var(--text-dim); background:none; border:none; border-radius:0; cursor:pointer; white-space:nowrap; text-align:left; transition:background 0.1s; }
    .notes-chip:hover { background:rgba(255,255,255,0.08); color:var(--text); }
    .cht-date { color: var(--text-dim); }
    .cht-by { color: var(--text-dim); font-style: italic; }
    .badge-archive { display: inline-block; font-size: 9px; font-weight: 700; color: #9ca3af; background: rgba(107,114,128,0.15); border: 1px solid rgba(107,114,128,0.25); border-radius: 3px; padding: 1px 4px; margin-left: 4px; vertical-align: middle; }
    /* ── Payment badges ── */
    .pay-badge { display: inline-block; font-size: 11px; font-weight: 600; border-radius: 4px; padding: 1px 6px; margin-left: 6px; vertical-align: middle; white-space: nowrap; }
    .pay-badge.paid     { background: rgba(34,197,94,0.15);  color: #22c55e; border: 1px solid rgba(34,197,94,0.3); }
    .pay-badge.unpaid   { background: rgba(239,68,68,0.12);  color: #ef4444; border: 1px solid rgba(239,68,68,0.3); }
    .pay-badge.cancelled{ background: rgba(107,114,128,0.12);color: #9ca3af; border: 1px solid rgba(107,114,128,0.3); }
    
    /* Cancellation amount badge - shown next to Μικτά when return_amount exists */
    .cancel-badge {
      display: inline-block;
      background: rgba(249, 115, 22, 0.15);
      color: #f97316;
      padding: 2px 6px;
      border-radius: 8px;
      font-size: 11px;
      font-weight: 700;
      margin-left: 8px;
      border: 1px solid rgba(249, 115, 22, 0.3);
      box-shadow: 0 0 6px rgba(249, 115, 22, 0.15);
      transition: all 0.2s ease;
      white-space: nowrap;
      vertical-align: middle;
    }
    .cancel-badge:hover {
      background: rgba(249, 115, 22, 0.25);
      box-shadow: 0 0 8px rgba(249, 115, 22, 0.3);
    }
    
    /* Status read-only badges */
    .status-badge { display: inline-flex; align-items: center; gap: 4px; position: relative; font-size: 11px; font-weight: 600; border-radius: 100px; padding: 3px 9px; white-space: nowrap; letter-spacing: 0; background: var(--glass-bg); color: var(--text-secondary); border: 1px solid var(--glass-border); cursor: default; }
    .status-badge.sb-paid   { background: rgba(16,185,129,0.15); color: #34d399; border: 1px solid rgba(16,185,129,0.25); }
    .status-badge.sb-dena   { background: rgba(107,114,128,0.15); color: #9ca3af; border: 1px solid rgba(107,114,128,0.2); }
    .status-badge.sb-unpaid { background: rgba(239,68,68,0.15); color: #f87171; border: 1px solid rgba(239,68,68,0.25); }
    .status-badge.sb-cancel   { background: rgba(249,115,22,0.12); color: #fb923c; border: 1px solid rgba(249,115,22,0.25); }
    .status-badge.sb-pending  { background: rgba(245,158,11,0.15); color: #fbbf24; border: 1px solid rgba(245,158,11,0.25); }
    .status-badge.sb-prosfora { background: rgba(139,92,246,0.15); color: #a78bfa; border: 1px solid rgba(139,92,246,0.25); }
    .status-badge .sb-tip { display: none !important; }
    .sb-tip-global { display: none; position: fixed; z-index: 99999; background: rgba(10,14,30,0.97); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(148,163,184,0.35); color: #f8fafc; font-size: 15px; line-height: 2; padding: 14px 20px; border-radius: 11px; pointer-events: none; box-shadow: 0 16px 48px rgba(0,0,0,0.9); min-width: 280px; max-width: 380px; animation: sbFadeIn 0.15s ease forwards; }
    @keyframes sbFadeIn { from { opacity: 0; } to { opacity: 1; } }

    /* Inline controls */
    .status-select, .payment-select { background: var(--surface2); border: 1px solid var(--border); border-radius: 4px; color: var(--text); font-size: 12px; padding: 3px 5px; cursor: pointer; outline: none; max-width: 150px; }
    .status-select:focus, .payment-select:focus { border-color: var(--green); }
    .check-cb { width: 15px; height: 15px; cursor: pointer; accent-color: var(--green); }

    /* Stars */
    .star-btn { background: none; border: none; cursor: pointer; font-size: 15px; padding: 0 1px; color: #444; transition: color 0.1s; line-height: 1; }
    .star-btn.on { color: var(--yellow); }
    .star-btn:hover { color: var(--yellow); }

    .no-results { padding: 48px; text-align: center; color: var(--text-dim); }
    .table-loading { padding: 48px; text-align: center; }
    /* Age alert badge */
    .age-alert-badge { display: inline-flex; align-items: center; margin-left: 3px; font-size: 11px; cursor: default; }
    /* Row ⋮ menu (legacy helpers) */
    .row-menu-wrap { position: relative; display: inline-block; margin-left: 7px; vertical-align: middle; }
    /* Profile modal */
    #profile-modal-box { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; width: 520px; max-width: 95vw; max-height: 88vh; overflow-y: auto; }
    .profile-modal-header { background: var(--surface2); border-bottom: 1px solid var(--border); padding: 14px 18px; display: flex; justify-content: space-between; align-items: center; border-radius: 12px 12px 0 0; position: sticky; top: 0; z-index: 1; }
    .profile-modal-title { font-size: 14px; font-weight: 700; color: var(--text); }
    .profile-fields-grid { display: flex; flex-direction: column; }
    .profile-section { padding: 16px 20px; }
    .profile-section.has-divider { border-top: 1px solid var(--border); }
    .profile-section-title { font-size: 10px; font-weight: 700; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.8px; margin-bottom: 12px; }
    .profile-section-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .profile-field { display: flex; flex-direction: column; gap: 4px; }
    .profile-field label { font-size: 11px; color: var(--text-dim); font-weight: 600; text-transform: uppercase; letter-spacing: 0.4px; }
    .profile-field input { background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; color: var(--text); font-size: 13px; padding: 7px 10px; outline: none; transition: border-color 0.15s; width: 100%; box-sizing: border-box; }
    .profile-field input:focus { border-color: var(--blue); }
    .profile-field.span2 { grid-column: span 2; }
    .profile-field.prominent label { font-size: 12px; letter-spacing: 0.5px; }
    .profile-field.prominent input { font-size: 17px; font-weight: 700; letter-spacing: 1.5px; }
    /* Form validation */
    .field-error-msg { color: #ef4444; font-size: 11px; margin-top: 2px; display: none; }
    .form-group.invalid > input, .form-group.invalid > select { border-color: #ef4444 !important; }
    .form-group.invalid .field-error-msg { display: block; }
    .lock-icon { font-size: 10px; margin-left: 4px; opacity: 0.55; cursor: context-menu; vertical-align: middle; user-select: none; }
    .form-group.field-unlocked label { opacity: 0.6; }
    .form-group.field-unlocked .req-star { display: none; }
    #field-req-menu { position: fixed; z-index: 10000; background: rgba(10,14,30,0.97); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255,255,255,0.15); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.65); padding: 4px; min-width: 190px; animation: fadeIn 0.1s ease; }
    .frm-item { padding: 8px 12px; border-radius: 6px; font-size: 13px; color: var(--text); cursor: pointer; transition: background 0.12s; }
    .frm-item:hover { background: rgba(255,255,255,0.08); }

    /* ── GROUP HEADERS (date subheaders) ── */
    tr.group-header td,
    tr.gh-weekend td,
    tr.gh-holiday td {
      background: rgba(255,255,255,0.07) !important;
      border-top: 1px solid rgba(255,255,255,0.14) !important;
      border-bottom: 1px solid rgba(255,255,255,0.14) !important;
      border-left: none !important;
      padding: 8px 13px !important;
      height: auto !important;
      font-size: 11px !important;
      font-weight: 700 !important;
      letter-spacing: 0.07em !important;
      text-transform: uppercase !important;
      color: rgba(255,255,255,0.65) !important;
    }

    tr.group-header:hover td,
    tr.gh-weekend:hover td,
    tr.gh-holiday:hover td {
      background: rgba(255,255,255,0.07) !important;
    }
    .wk-badge { display: inline-block; font-size: 10px; font-weight: 700; color: #eab308; background: rgba(234,179,8,0.12); border: 1px solid rgba(234,179,8,0.3); border-radius: 3px; padding: 0 4px; line-height: 16px; vertical-align: middle; margin: 0 2px; letter-spacing: 0.5px; }
    /* Section border-sweep: applied to tr (not td) so no between-cell borders */
    @keyframes gh-sweep-first {
      0%   { box-shadow: inset 0 2px 0 0 #3b82f6; }
      25%  { box-shadow: inset 0 2px 0 0 #3b82f6, inset -2px 0 0 0 #3b82f6; }
      75%  { box-shadow: inset 0 2px 0 0 #3b82f6, inset -2px 0 0 0 #3b82f6, inset 2px 0 0 0 #3b82f6; }
      90%  { box-shadow: inset 0 2px 0 0 #3b82f6, inset -2px 0 0 0 #3b82f6, inset 2px 0 0 0 #3b82f6, 0 0 16px rgba(59,130,246,0.4); opacity:1; }
      100% { box-shadow: none; opacity:0.7; }
    }
    @keyframes gh-sweep-mid {
      0%, 24.9% { box-shadow: none; }
      25%  { box-shadow: inset -2px 0 0 0 #3b82f6; }
      74.9%{ box-shadow: inset -2px 0 0 0 #3b82f6; }
      75%  { box-shadow: inset -2px 0 0 0 #3b82f6, inset 2px 0 0 0 #3b82f6; }
      90%  { box-shadow: inset -2px 0 0 0 #3b82f6, inset 2px 0 0 0 #3b82f6, 0 0 8px rgba(59,130,246,0.2); opacity:1; }
      100% { box-shadow: none; opacity:0.7; }
    }
    @keyframes gh-sweep-last {
      0%, 24.9% { box-shadow: none; }
      25%  { box-shadow: inset -2px 0 0 0 #3b82f6; }
      50%  { box-shadow: inset 0 -2px 0 0 #3b82f6, inset -2px 0 0 0 #3b82f6; }
      74.9%{ box-shadow: inset 0 -2px 0 0 #3b82f6, inset -2px 0 0 0 #3b82f6; }
      75%  { box-shadow: inset 0 -2px 0 0 #3b82f6, inset -2px 0 0 0 #3b82f6, inset 2px 0 0 0 #3b82f6; }
      90%  { box-shadow: inset 0 -2px 0 0 #3b82f6, inset -2px 0 0 0 #3b82f6, inset 2px 0 0 0 #3b82f6, 0 0 8px rgba(59,130,246,0.2); opacity:1; }
      100% { box-shadow: none; opacity:0.7; }
    }
    tr.gh-flash-first { animation: gh-sweep-first 2.5s ease forwards; }
    tr.gh-flash-mid   { animation: gh-sweep-mid   2.5s ease forwards; }
    tr.gh-flash-last  { animation: gh-sweep-last  2.5s ease forwards; }
    tbody tr.row-weekend td { background: none; }
    tbody tr.row-holiday td { background: rgba(245,158,11,0.05); }
    /* Live clock */
    #live-clock { font-family: 'Courier New', monospace; font-size: 12px; color: var(--text-dim); white-space: nowrap; margin-right: 4px; }
    /* Visual gap between groups */
    tr.group-sep td { border-top: 15px solid var(--bg) !important; height: 0 !important; padding: 0 !important; }
    tr.group-header.group-sep td { height: auto !important; padding: 8px 13px !important; }

    /* ── PAGINATION ── */
    .pagination { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-top: 1px solid var(--border); font-size: 13px; color: var(--text-dim); flex-wrap: wrap; gap: 8px; }
    .pagination-controls { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
    .page-btn { background: var(--surface2); border: 1px solid var(--border); border-radius: 4px; color: var(--text); padding: 5px 10px; cursor: pointer; font-size: 12px; transition: border-color 0.15s, color 0.15s, background 0.15s; }
    .page-btn:disabled { opacity: 0.35; cursor: not-allowed; }
    .page-btn.active { background: var(--green-dim); border-color: var(--green); color: var(--green); }
    .page-btn:hover:not(:disabled):not(.active) { border-color: #555; }

    /* ── MODALS ── */
    .modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.65); backdrop-filter: blur(8px); display: none; align-items: center; justify-content: center; z-index: 500; padding: 20px; }
    .modal-backdrop.open { display: flex; }
    .modal { background: rgba(10,14,30,0.97); backdrop-filter: blur(32px); -webkit-backdrop-filter: blur(32px); border: 1px solid var(--glass-border); border-radius: 16px; display: flex; flex-direction: column; width: 100%; max-height: 92vh; overflow: hidden; box-shadow: 0 24px 80px rgba(0,0,0,0.75); }
    .modal-sm { max-width: 560px; }
    .modal-lg { max-width: 860px; }
    .modal-header { background: rgba(255,255,255,0.02); padding: 18px 22px 16px; border-bottom: 1px solid rgba(255,255,255,0.06); display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
    .modal-title { font-size: 15px; font-weight: 600; }
    .modal-close { background: none; border: none; color: var(--text-dim); cursor: pointer; font-size: 20px; line-height: 1; padding: 2px 6px; border-radius: 4px; transition: color 0.15s; }
    .modal-close:hover { color: var(--text); }
    /* Plate link in table */
    .plate-link { cursor: pointer; text-decoration: underline dotted rgba(255,255,255,0.35); }

    /* Documents modal */
    .docs-section { border: 1px solid var(--border); border-radius: 8px; padding: 16px; margin-bottom: 12px; }
    .docs-section-title { font-size: 13px; font-weight: 600; margin-bottom: 12px; display: flex; align-items: center; gap: 7px; }
    .docs-file-row { display: flex; align-items: center; gap: 8px; background: var(--surface2); border-radius: 6px; padding: 8px 10px; margin-bottom: 10px; font-size: 13px; }
    .docs-file-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-dim); }
    .docs-upload-label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; padding: 6px 12px; font-size: 13px; transition: border-color 0.15s; }
    .docs-upload-label:hover { border-color: var(--green); color: var(--green); }
    /* Illustration hide when file uploaded */
    .doc-preview { display: flex; justify-content: center; margin-bottom: 14px; transition: opacity 0.3s, max-height 0.4s; overflow: hidden; max-height: 200px; }
    .doc-preview.hidden { opacity: 0; max-height: 0; margin-bottom: 0; pointer-events: none; }
    /* Lightbox */
    #doc-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,0.93); z-index: 99999; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; }
    #doc-lightbox-viewport { width: 100vw; height: 100vh; display: flex; align-items: center; justify-content: center; cursor: grab; overflow: hidden; }
    #doc-lightbox-viewport.dragging { cursor: grabbing; }
    #doc-lightbox-inner { transition: transform 0.2s ease; transform-origin: center center; will-change: transform; }
    #doc-lightbox-inner img { max-width: 92vw; max-height: 88vh; object-fit: contain; border-radius: 4px; display: block; pointer-events: none; user-select: none; }
    #doc-lightbox-inner iframe { width: 92vw; height: 88vh; border: none; border-radius: 4px; }
    #doc-lightbox-bar { position: fixed; top: 0; left: 0; right: 0; height: 52px; display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 0 18px; background: linear-gradient(rgba(0,0,0,0.6),transparent); z-index: 1; }
    .lb-btn { background: rgba(255,255,255,0.13); border: none; color: #fff; font-size: 15px; cursor: pointer; border-radius: 6px; padding: 5px 11px; transition: background 0.15s; }
    .lb-btn:hover { background: rgba(255,255,255,0.26); }
    /* ── Doc preview cards ── */
    .doc-preview { display: flex; justify-content: center; margin-bottom: 14px; }
    .doc-preview-inner { transition: transform 0.4s ease, box-shadow 0.4s ease; }
    .doc-preview-inner:hover { transform: translateY(-4px); }
    @keyframes dp-float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)} }

    /* ── Diploma ── */
    .dp-diploma { width: 240px; height: 150px; border-radius: 10px; background: #f0c8c8; box-shadow: 0 4px 16px rgba(0,0,0,0.30); display: flex; flex-direction: column; overflow: hidden; position: relative; }
    .dp-diploma-topbar { background: #e8a8a8; padding: 4px 7px 3px; display: flex; align-items: center; justify-content: space-between; }
    .dp-diploma-titles { display: flex; flex-direction: column; }
    .dp-diploma-h1 { font-size: 6.5px; font-weight: 800; color: #3a0a0a; letter-spacing: 0.6px; }
    .dp-diploma-h2 { font-size: 5px; color: #7a3a3a; letter-spacing: 0.3px; }
    .dp-eu-badge { background: #003399; border-radius: 2px; padding: 2px 3px; display: flex; flex-direction: column; align-items: center; }
    .dp-eu-stars { font-size: 4.5px; color: #ffdd00; line-height: 1; }
    .dp-eu-gr { font-size: 5.5px; font-weight: 900; color: #fff; line-height: 1.2; }
    .dp-diploma-body { flex: 1; display: flex; gap: 8px; padding: 7px 8px 6px; }
    .dp-photo { width: 38px; height: 46px; background: #d4aaaa; border-radius: 4px; flex-shrink: 0; display: flex; align-items: flex-end; justify-content: center; overflow: hidden; }
    .dp-photo-silhouette { width: 22px; height: 30px; background: #b08888; clip-path: path('M11 0 C5 0 0 5 0 11 C0 15 2 18 6 20 L4 30 L18 30 L16 20 C20 18 22 15 22 11 C22 5 17 0 11 0Z'); margin-bottom: 0; }
    .dp-fields { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
    .dp-field { height: 5px; background: rgba(80,20,20,0.18); border-radius: 2px; }
    .dp-diploma-bottom { padding: 4px 8px 5px; display: flex; gap: 5px; align-items: center; }
    .dp-cat { font-size: 6px; font-weight: 700; border: 1px solid #b07070; border-radius: 2px; padding: 1px 4px; color: #6a2020; background: rgba(255,255,255,0.4); }
    .dp-cat-check { font-size: 6px; color: #2a7a2a; font-weight: 900; margin-left: -3px; margin-right: 3px; }

    /* ── Vehicle permit (Άδεια Κυκλοφορίας) ── */
    .dp-vehicle { width: 270px; height: 155px; border-radius: 5px; background: #c8e6c0; box-shadow: 0 4px 16px rgba(0,0,0,0.28), 3px 3px 0 rgba(0,0,0,0.07); display: flex; overflow: hidden; position: relative; }
    .dp-v-panel { flex: 1; display: flex; flex-direction: column; padding: 7px 7px 6px; border-right: 1px solid rgba(60,100,60,0.3); }
    .dp-v-panel:last-child { border-right: none; }
    .dp-v-header { font-size: 5px; font-weight: 800; color: #1a4a1a; letter-spacing: 0.4px; margin-bottom: 6px; line-height: 1.4; }
    .dp-v-line { height: 4px; background: rgba(30,80,30,0.2); border-radius: 2px; margin-bottom: 4px; }
    .dp-v-right { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 7px 6px; border-right: none; }
    .dp-v-emblem { width: 28px; height: 28px; border-radius: 50%; border: 2px solid #2a6a2a; background: #a8d0a0; margin-bottom: 4px; display: flex; align-items: center; justify-content: center; font-size: 10px; }
    .dp-v-rtitle { font-size: 5px; font-weight: 800; color: #1a4a1a; letter-spacing: 0.3px; text-align: center; margin-bottom: 3px; }
    .dp-v-gr { font-size: 9px; font-weight: 900; color: #1a4a1a; border: 1.5px solid #2a6a2a; border-radius: 50%; width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; margin-bottom: 4px; }
    .dp-v-eustars { font-size: 6px; color: #2a6a2a; }
    .modal-body { padding: 20px 22px; overflow-y: auto; flex: 1; }
    .modal-footer { background: rgba(0,0,0,0.2); padding: 14px 22px; border-top: 1px solid rgba(255,255,255,0.06); display: flex; gap: 10px; justify-content: flex-end; flex-shrink: 0; }
    .analytics-section { margin: 20px 0; padding: 15px; background: var(--surface2); border-radius: 8px; }
    .analytics-section h3 { margin-top: 0; color: var(--text); font-size: 16px; }
    .stat-row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--border); }
    .stat-row:last-child { border-bottom: none; }
    .timeline-row { display: grid; grid-template-columns: 150px 120px 1fr; gap: 10px; padding: 6px 0; font-size: 13px; border-bottom: 1px solid var(--border); }
    .timeline-row .time { color: var(--text-dim); }
    .timeline-row .user { font-weight: 600; color: #93c5fd; }
    .timeline-row .event { color: var(--text); }

    /* ── CSV IMPORT ── */
    .upload-zone { border: 2px dashed var(--border); border-radius: 10px; padding: 40px 24px; text-align: center; cursor: pointer; transition: border-color 0.2s, background 0.2s; margin-bottom: 20px; }
    .upload-zone:hover, .upload-zone.dragover { border-color: var(--green); background: var(--green-dim); }
    .upload-zone input[type="file"] { display: none; }
    .upload-icon { font-size: 34px; margin-bottom: 10px; }
    .upload-text { color: var(--text-dim); font-size: 13px; }
    .upload-text strong { color: var(--green); }
    .section-title { font-size: 11px; font-weight: 600; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.6px; margin-bottom: 10px; }
    .mapping-section { margin-bottom: 12px; }
    .mapping-table-wrapper { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
    .mapping-table { width: 100%; border-collapse: collapse; }
    .mapping-table th { background: var(--surface2); padding: 8px 12px; text-align: left; font-size: 11px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 1px solid var(--border); }
    .mapping-table td { padding: 6px 12px; border-bottom: 1px solid var(--border); font-size: 13px; }
    .mapping-table tr:last-child td { border-bottom: none; }
    .mapping-table select { background: var(--surface2); border: 1px solid var(--border); border-radius: 4px; color: var(--text); padding: 4px 7px; font-size: 13px; outline: none; min-width: 180px; }
    .mapping-table select option { background: #1e293b; color: #f1f5f9; }
    .mapping-table select:focus { border-color: var(--green); }
    .preview-table-wrapper { overflow-x: auto; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; margin-bottom: 20px; }
    .preview-table { width: 100%; border-collapse: collapse; font-size: 12px; }
    .preview-table th { background: var(--surface2); padding: 7px 9px; text-align: left; color: var(--text-dim); border-bottom: 1px solid var(--border); white-space: nowrap; font-size: 11px; }
    .preview-table td { padding: 6px 9px; border-bottom: 1px solid var(--border); white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
    .preview-table tr:last-child td { border-bottom: none; }
    .import-status { font-size: 13px; color: var(--text-dim); }

    /* ── PHONE DUPLICATE BADGE ── */
    .phone-cell { display: inline-flex; align-items: center; gap: 5px; }
    .phone-badge {
      display: inline-flex; align-items: center;
      background: rgba(59,130,246,0.18); color: #93c5fd;
      border: 1px solid rgba(59,130,246,0.35);
      border-radius: 10px; font-size: 10px; font-weight: 600;
      padding: 1px 6px; cursor: pointer; white-space: nowrap;
      transition: background 0.15s;
      position: relative;
    }
    .phone-badge:hover { background: rgba(59,130,246,0.32); }

    /* Tooltip popup — matches row 3-dot menu style */
    .phone-tooltip {
      display: none; position: fixed; z-index: 600;
      background: rgba(10,14,30,0.97); backdrop-filter: blur(28px); -webkit-backdrop-filter: blur(28px); border: 1px solid rgba(255,255,255,0.09);
      border-radius: 14px; padding: 5px 0;
      box-shadow: 0 8px 20px rgba(0,0,0,0.5), 0 28px 60px rgba(0,0,0,0.65);
      min-width: 300px; max-width: 480px; pointer-events: none;
      animation: rmd-in 0.13s cubic-bezier(.2,.8,.4,1) both;
    }
    .phone-tooltip.visible { display: block; }
    .phone-tooltip-title { padding: 9px 14px 6px; font-size: 10px; font-weight: 700; color: rgba(255,255,255,0.28); text-transform: uppercase; letter-spacing: .9px; border-bottom: 1px solid rgba(255,255,255,0.06); margin-bottom: 2px; }
    .phone-tooltip-row { color: rgba(255,255,255,0.82); padding: 7px 14px; font-size: 13px; display: flex; gap: 10px; align-items: baseline; }
    .phone-tooltip-row span { color: #ffffff; font-weight: 500; flex-shrink: 0; }

    /* ── CONTACT MODAL — radial mind-map ── */
    #modal-contact { z-index: 700; background: rgba(0,0,0,0.55); }
    .contact-modal-box {
      background: rgba(10,14,30,0.97); backdrop-filter: blur(32px); -webkit-backdrop-filter: blur(32px); border-radius: 10px;
      width: 96vw; max-width: 1020px; max-height: 94vh;
      overflow: hidden; display: flex; flex-direction: column;
      color: var(--text); font-family: 'DM Sans', system-ui, sans-serif;
      box-shadow: 0 20px 80px rgba(0,0,0,0.8); border: 1px solid rgba(255,255,255,0.10);
    }
    /* Header — white bar */
    .cm-header {
      background: rgba(255,255,255,0.03); padding: 10px 16px;
      display: flex; align-items: center; justify-content: space-between; flex-shrink: 0;
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }
    .cm-header-left { display: flex; align-items: center; gap: 12px; }
    .cm-header-title { color: var(--text); font-size: 12px; font-weight: 700; letter-spacing: 0.4px; }
    .cm-search {
      background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); border-radius: 16px;
      padding: 4px 12px; color: var(--text); font-size: 12px; outline: none; width: 140px;
    }
    .cm-search::placeholder { color: var(--text-dim); }
    .cm-search:focus { border-color: #3b82f6; }
    .cm-close-btn { background: none; border: none; color: var(--text-dim); cursor: pointer; font-size: 18px; padding: 2px 6px; border-radius: 4px; line-height: 1; }
    .cm-close-btn:hover { color: var(--text); }
    /* Layout: sidebar + canvas */
    .cm-layout { display: flex; flex: 1; overflow: hidden; min-height: 460px; }
    /* Left icon sidebar */
    .cm-left-nav {
      width: 44px; flex-shrink: 0; background: rgba(255,255,255,0.03);
      border-right: 1px solid rgba(255,255,255,0.08);
      display: flex; flex-direction: column; align-items: center;
      padding: 12px 0; gap: 4px;
    }
    .cm-nav-logo { color: #3b82f6; font-size: 17px; font-weight: 900; font-family: 'Syne', monospace; margin-bottom: 10px; }
    .cm-nav-icon { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 6px; font-size: 14px; color: var(--text-dim); cursor: pointer; }
    .cm-nav-icon.active { color: #3b82f6; background: rgba(59,130,246,0.12); }
    /* Canvas — light blue bg, holds the mind-map */
    .cm-canvas { flex: 1; overflow: auto; background: rgba(6,8,18,0.6); position: relative; }
    .cm-canvas-inner { position: relative; min-width: 760px; height: 510px; }
    .cm-svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; overflow: visible; }
    /* Center node — absolutely placed at 49%, 50% */
    .cm-center-node {
      position: absolute; z-index: 3;
      transform: translate(-50%, -50%);
      display: flex; flex-direction: column; align-items: center; text-align: center;
    }
    .cm-center-circle {
      width: 102px; height: 102px; border-radius: 50%; background: rgba(44,62,107,0.85); backdrop-filter: blur(12px);
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 6px 28px rgba(44,62,107,0.6), 0 0 0 1px rgba(255,255,255,0.12); color: #fff; font-size: 34px;
    }
    .cm-center-name { font-size: 11px; font-weight: 800; color: var(--text); margin-top: 7px; line-height: 1.3; max-width: 120px; }
    .cm-center-phone { font-size: 10px; color: var(--text-dim); margin-top: 2px; }
    .cm-center-label { font-size: 8px; color: var(--text-dim); font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; margin-top: 2px; }
    /* Policy card — absolutely placed, accent via CSS var --ca */
    .cm-card {
      position: absolute; z-index: 3; width: 186px;
      background: rgba(255,255,255,0.07); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-radius: 8px; border-top: 3px solid var(--ca, #3b82f6); border: 1px solid rgba(255,255,255,0.10); border-top: 3px solid var(--ca, #3b82f6);
      box-shadow: 0 2px 14px rgba(0,0,0,0.40); padding: 9px 11px 11px;
      transform: translate(-50%, -50%); font-size: 11px; color: var(--text);
      transition: box-shadow 0.2s, outline 0.1s; cursor: pointer;
    }
    .cm-card:hover { box-shadow: 0 6px 26px rgba(0,0,0,0.55); }
    .cm-card.cm-card-active { outline: 2px solid #3b82f6; outline-offset: 2px; box-shadow: 0 6px 26px rgba(59,130,246,0.35); }
    .cm-card.is-new { border-top-style: dashed; background: rgba(124,58,237,0.12); }
    /* Greek license plate */
    /* .cm-plate* → replaced by .gr-plate.sm (see unified plate CSS above) */
    /* Field rows */
    .cm-row { display: flex; align-items: flex-start; gap: 4px; margin-bottom: 2px; }
    .cm-row-icon { flex-shrink: 0; font-size: 11px; color: var(--text-dim); }
    .cm-row-val { flex: 1; font-size: 11px; color: var(--text); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .cm-field { display: flex; align-items: baseline; gap: 3px; margin-bottom: 2px; }
    .cm-field-lbl { font-size: 9px; color: var(--text-dim); font-weight: 700; text-transform: uppercase; letter-spacing: 0.3px; flex-shrink: 0; min-width: 42px; }
    .cm-field-val { font-size: 10px; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
    /* Section header */
    .cm-section-lbl { font-size: 8px; color: var(--text-dim); font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; margin: 6px 0 3px; }
    /* Progress bar — fill color matches card accent */
    .cm-prog-bg { background: rgba(255,255,255,0.12); border-radius: 3px; height: 5px; overflow: hidden; margin-bottom: 3px; }
    .cm-prog-fill { height: 100%; border-radius: 3px; background: var(--ca, #ef4444); }
    .cm-remaining { font-size: 11px; font-weight: 700; color: var(--ca, #ef4444); }
    /* New card extras */
    .cm-new-tag { display: inline-flex; align-items: center; background: #7c3aed; color: #fff; border-radius: 3px; font-size: 8px; font-weight: 700; padding: 1px 4px; margin-right: 2px; vertical-align: middle; }
    .cm-auto-lbl { font-size: 8px; color: #7c3aed; font-weight: 600; letter-spacing: 0.3px; margin-bottom: 4px; }
    .cm-placeholder-val { font-style: italic; color: var(--text-dim); }
    /* Loading */
    .cm-loading { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 14px; color: var(--text-dim); gap: 10px; padding: 60px; }
    /* Footer */
    .cm-footer {
      display: flex; gap: 8px; justify-content: center;
      padding: 10px 20px 14px; background: rgba(255,255,255,0.03);
      border-top: 1px solid rgba(255,255,255,0.08); flex-shrink: 0; flex-wrap: wrap;
    }
    .cm-btn { padding: 8px 20px; border-radius: 6px; border: none; font-size: 12px; font-weight: 700; cursor: pointer; letter-spacing: 0.3px; transition: opacity 0.2s; font-family: inherit; }
    .cm-btn:hover { opacity: 0.84; }
    .cm-btn-dark { background: rgba(30,45,61,0.9); color: #fff; border: 1px solid rgba(255,255,255,0.10); }
    .cm-btn-green { background: #22c55e; color: #fff; }
    .cm-btn-outline { background: rgba(255,255,255,0.07); color: var(--text); border: 1px solid rgba(255,255,255,0.15); }

    /* ── STAR PICKER (form) ── */
    .star-picker { display: flex; gap: 4px; padding: 6px 0; }
    .star-picker .star-btn { font-size: 22px; }

    /* ── TOAST ── */
    #toast { position: fixed; bottom: 22px; right: 22px; background: rgba(10,14,30,0.97); backdrop-filter: blur(24px); border: 1px solid var(--border); border-radius: 12px; padding: 11px 16px; font-size: 13px; z-index: 9999; opacity: 0; transform: translateY(8px); transition: opacity 0.25s, transform 0.25s; max-width: 340px; pointer-events: none; box-shadow: 0 8px 32px rgba(0,0,0,0.5); }
    #toast.show { opacity: 1; transform: translateY(0); }
    #toast.success { border-color: var(--green); color: var(--green); }
    #toast.error { border-color: var(--red); color: var(--red); }

    /* ── SPINNER ── */
    .loading { display: inline-block; width: 18px; height: 18px; border: 2px solid var(--border); border-top-color: var(--green); border-radius: 50%; animation: spin 0.7s linear infinite; vertical-align: middle; }
    @keyframes spin { to { transform: rotate(360deg); } }

    /* ── SCROLLBAR ── */
    ::-webkit-scrollbar { width: 6px; height: 6px; }
    ::-webkit-scrollbar-track { background: var(--bg); }
    ::-webkit-scrollbar-thumb { background: #333; border-radius: 3px; }
    ::-webkit-scrollbar-thumb:hover { background: #444; }
    /* ── Chat ── */
    #chat-bubble { position:fixed; bottom:24px; right:24px; z-index:6000; }
    #chat-fab { width:52px; height:52px; border-radius:50%; background:#3b82f6; border:none; font-size:22px; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 18px rgba(0,0,0,0.55); transition:transform 0.18s; position:relative; }
    #chat-fab:hover { transform:scale(1.08); }
    #chat-unread { position:absolute; top:-4px; right:-4px; background:#ef4444; color:#fff; font-size:10px; font-weight:800; border-radius:10px; padding:1px 6px; min-width:18px; text-align:center; display:none; pointer-events:none; }
    #chat-panel { position:fixed; bottom:86px; right:24px; width:320px; height:480px; background:rgba(10,14,30,0.97); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); border:1px solid rgba(255,255,255,0.10); border-radius:12px; box-shadow:0 16px 48px rgba(0,0,0,0.7); z-index:6000; display:none; flex-direction:column; overflow:hidden; }
    #chat-panel.open { display:flex; animation:slideUpChat 0.2s ease; }
    @keyframes slideUpChat { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
    #chat-header { padding:12px 14px 10px; border-bottom:1px solid rgba(255,255,255,0.07); flex-shrink:0; }
    #chat-header-title { font-weight:700; color:#e4e4e7; font-size:13px; margin-bottom:7px; }
    .chat-presence { display:flex; gap:10px; flex-wrap:wrap; }
    .cp-user { display:flex; align-items:center; gap:4px; font-size:11px; color:#9ca3af; }
    .cp-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
    .cp-dot.online { background:#22c55e; box-shadow:0 0 4px #22c55e; }
    .cp-dot.offline { background:#374151; }
    #chat-messages { flex:1; overflow-y:auto; padding:10px 12px; display:flex; flex-direction:column; gap:6px; }
    #chat-messages::-webkit-scrollbar { width:3px; }
    #chat-messages::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.1); border-radius:2px; }
    .chat-msg { max-width:84%; display:flex; flex-direction:column; }
    .chat-msg.own { align-self:flex-end; }
    .chat-msg.other { align-self:flex-start; }
    .chat-msg-meta { font-size:10px; color:#6b7280; margin-bottom:2px; }
    .chat-msg.own .chat-msg-meta { text-align:right; }
    .chat-msg-bubble { padding:7px 11px; border-radius:10px; font-size:13px; line-height:1.5; word-break:break-word; }
    .chat-msg.own .chat-msg-bubble { background:rgba(29,78,216,0.75); backdrop-filter: blur(8px); color:#e4e4e7; border-bottom-right-radius:3px; }
    .chat-msg.other .chat-msg-bubble { background:rgba(255,255,255,0.07); backdrop-filter: blur(8px); color:#e4e4e7; border-bottom-left-radius:3px; }
    .chat-plate-tag { display:inline-block; background:rgba(59,130,246,0.2); color:#93c5fd; border:1px solid rgba(59,130,246,0.35); border-radius:4px; padding:1px 5px; font-size:11px; font-weight:700; margin:0 1px; }
    .chat-plate-tag:hover { background:rgba(59,130,246,0.38); }
    #chat-input-row { padding:8px 10px; border-top:1px solid rgba(255,255,255,0.07); display:flex; gap:6px; align-items:flex-end; flex-shrink:0; }
    #chat-input { flex:1; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.10); border-radius:8px; color:#e4e4e7; font-size:13px; padding:7px 10px; outline:none; font-family:inherit; resize:none; max-height:80px; overflow-y:auto; line-height:1.4; }
    #chat-input:focus { border-color:rgba(59,130,246,0.5); }
    #chat-send-btn { background:#3b82f6; border:none; border-radius:8px; color:#fff; font-size:15px; width:34px; height:34px; flex-shrink:0; transition:background 0.15s; display:flex; align-items:center; justify-content:center; }
    #chat-send-btn:hover { background:#2563eb; }

    /* ── Νέα Εγγραφή — Premium Modal ── */
    #modal-record { backdrop-filter: blur(6px); background: rgba(0,0,0,0.78); }
    #modal-record .modal { background: rgba(10,14,30,0.97); border-color: var(--glass-border); border-radius: 16px; max-width: 620px; }
    #modal-record .modal-header { background: rgba(255,255,255,0.02); border-bottom-color: rgba(255,255,255,0.06); padding: 20px 24px 18px; }
    #modal-record .modal-title { font-size: 16px; font-weight: 700; letter-spacing: 0.2px; }
    #modal-record .modal-body { padding: 18px 24px 10px; background: transparent; }
    #modal-record .modal-footer { background: rgba(0,0,0,0.2); border-top-color: rgba(255,255,255,0.06); padding: 16px 24px; }
    #modal-record .form-group { margin-bottom: 12px; }
    #modal-record .form-group label { font-size: 11px; letter-spacing: 0.8px; font-weight: 600; }
    #modal-record .form-group input,
    #modal-record .form-group select,
    #modal-record .form-group textarea { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.10); border-radius: 10px; padding: 10px 13px; font-size: 13.5px; transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; }
    #modal-record .form-group input:focus,
    #modal-record .form-group select:focus,
    #modal-record .form-group textarea:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.22); background: rgba(30,37,53,0.8); }
    .modal-section-title { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.2px; color: #475569; display: flex; align-items: center; gap: 10px; margin: 16px 0 4px; }
    .modal-section-title:first-child { margin-top: 0; }
    .modal-section-title::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,0.06); }

    /* ── Άκης Modal ─────────────────────────────────────────── */
    #modal-akis { padding: 0; }
    .akis-modal { width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; border-radius: 0; display: flex; flex-direction: column; }
    .akis-modal-body { padding: 0; overflow-y: auto; flex: 1; }
    .akis-table { width: 100%; border-collapse: collapse; font-size: 13px; }
    .akis-table thead tr { background: rgba(255,255,255,0.04); border-bottom: 1px solid rgba(255,255,255,0.1); }
    .akis-table th { padding: 10px 12px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; color: var(--text-dim); white-space: nowrap; }
    .akis-table td { padding: 9px 12px; border-bottom: 1px solid rgba(255,255,255,0.04); vertical-align: middle; }
    .akis-row:hover td { background: rgba(255,255,255,0.03); }
    .akis-paid-row { opacity: 0.55; }
    .akis-paid-row:hover { opacity: 0.85; }
    .akis-cb { width: 16px; height: 16px; cursor: pointer; accent-color: #4ade80; }
    .akis-date-click { cursor: pointer; color: #93c5fd; text-decoration: underline dotted; font-size: 13px; }
    .akis-date-click:hover { color: #60a5fa; }
    .akis-editable { cursor: pointer; border-bottom: 1px dotted rgba(255,255,255,0.2); padding-bottom: 1px; }
    .akis-editable:hover { border-bottom-color: #3b82f6; color: #93c5fd; }
    .akis-notes-cell { display: block; max-width: 220px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    /* Footer */
    .akis-footer { border-top: 2px solid rgba(255,255,255,0.08); background: rgba(0,0,0,0.25); padding: 21px 28px; flex-shrink: 0; font-size: 18px; font-family: monospace; }
    .akis-fl-section-title { font-weight: 700; color: #94a3b8; margin-bottom: 13px; font-size: 17px; letter-spacing: 0.5px; text-transform: uppercase; }
    .akis-fl-dates { display: flex; flex-direction: column; gap: 13px; margin-bottom: 18px; }
    .akis-fl-row { display: flex; align-items: center; gap: 13px; font-size: 18px; }
    .akis-fl-date { color: #60a5fa; font-weight: 800; min-width: 122px; font-size: 18px; }
    .akis-fl-count { color: #e2e8f0; font-weight: 600; min-width: 147px; }
    .akis-fl-arrow { color: #475569; font-size: 17px; }
    .akis-fl-kathara { color: #f1f5f9; font-weight: 600; }
    .akis-fl-pct { color: #4ade80; font-weight: 700; }
    .akis-fl-divider { border-top: 1px solid rgba(255,255,255,0.1); margin: 18px 0; }
    .akis-fl-totals { display: flex; flex-direction: column; gap: 8px; margin-bottom: 13px; }
    .akis-fl-tot-row { font-size: 18px; color: #e2e8f0; font-weight: 600; }
    .akis-fl-tot-sub { font-size: 18px; padding-left: 21px; color: #cbd5e1; font-weight: 500; }
    .akis-fl-pending { font-size: 18px; color: #94a3b8; font-weight: 600; }
    .akis-fl-date-label { cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 5px 8px; border-radius: 7px; transition: background 0.12s; }
    .akis-fl-date-label:hover { background: rgba(255,255,255,0.06); }
    .akis-fl-date-label.akis-date-sel-active { background: rgba(59,130,246,0.14); outline: 1px solid rgba(59,130,246,0.35); }
    .akis-date-cb { cursor: pointer; accent-color: #3b82f6; width: 15px; height: 15px; flex-shrink: 0; }
    .akis-fl-pdf-row { margin-top: 18px; }
    .akis-pdf-btn { padding: 10px 20px; background: #1e40af; color: #fff; border: none; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; transition: background 0.15s; }
    .akis-pdf-btn:hover { background: #1d4ed8; }
    .akis-pdf-btn:disabled { opacity: 0.35; cursor: not-allowed; }
    .akis-green { color: #4ade80; font-weight: 700; }
