/* Οθόνη «Ημέρες που θέλουν δήλωση» (#page-ergani-mismatches) και τα δύο παράθυρα υποβολής — ΜΟΝΟ η όψη.
   Markup: saas_ergani_mismatches.js (ζωγραφίζει μέσα στο #psm-root και στο #psm-monthslot)· σκελετός: index.html.
   Ύφος: docs/design/fason/ (λευκές κάρτες, περίγραμμα #E2E8F0, γωνίες 10–12px, πεδία 44px, μπλε #1D6FD8).
   Χρώματα με σημασία: πράσινο = δηλώθηκε, πορτοκαλί = θέλει δήλωση ή ελλιπής, κόκκινο = αποτυχία ΕΡΓΑΝΗ, γκρι = ουδέτερο.
   Το φόντο σελίδας δεν αγγίζεται (το κληρονομεί από το body)· οι κάρτες είναι λευκές πάνω του. */

/* ── Κεφαλίδα: ← ΕΡΓΑΝΗ, τίτλος, δεξιά ο επιλογέας μήνα ── */
#page-ergani-mismatches .psm-head{margin-bottom:12px}
.psm-back{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;font-weight:700;color:#1D6FD8;text-decoration:none;white-space:nowrap}
.psm-back:hover{text-decoration:underline}
.psm-back:focus-visible{outline:2px solid #1D6FD8;outline-offset:2px;border-radius:4px}
.psm-headrow{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px}
.psm-title{min-width:0}
#psm-monthslot{flex:0 0 auto}
.psm-monthnav{display:flex;align-items:center;gap:8px}
.psm-monthnav-arrow{flex:0 0 44px;width:44px;height:44px;border:1px solid #CBD5E1;border-radius:10px;background:var(--surface);color:var(--text);font-size:1.2rem;line-height:1;cursor:pointer}
.psm-monthnav-arrow[disabled]{opacity:.4;cursor:default}
.psm-monthnav-arrow:focus-visible{outline:2px solid #1D6FD8;outline-offset:0}
.psm-export{margin-left:8px}
.psm-monthnav-label{display:flex;align-items:center;justify-content:center;min-width:150px;height:44px;padding:0 12px;box-sizing:border-box;border:1px solid #CBD5E1;border-radius:10px;background:var(--surface);color:var(--text);font-size:.9rem;font-weight:700;white-space:nowrap}

/* ── Σήμα καθεστώτος: χάπι + υπότιτλος σε μία γραμμή ── */
.psm-regime-banner{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-bottom:6px}
.psm-regime-banner-title{display:inline-block;padding:5px 12px;border-radius:999px;font-size:.8125rem;font-weight:700;white-space:nowrap}
.psm-regime-banner-apolog .psm-regime-banner-title{background:#DCFCE7;color:#166534}
.psm-regime-banner-proan .psm-regime-banner-title{background:#E8F1FD;color:#1D4ED8}
.psm-regime-banner-sub{font-size:.8125rem;color:#64748B}
.psm-regime-exempt-hint{margin:2px 0 8px;font-size:.75rem;color:#64748B;cursor:pointer}
.psm-regime-exempt-link{color:#1D6FD8;font-weight:600}
.psm-pollbar{margin:0 0 10px;font-size:.8125rem;color:#64748B;font-variant-numeric:tabular-nums}
.psm-empty{padding:14px 2px;font-size:.85rem;color:#64748B}

/* ── Καρτέλες εργαζομένων: λέξεις με μπλε υπογράμμιση 3px· σκρολ μόνο μέσα στη γραμμή τους ── */
.psm-tabs{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;max-width:100%;box-sizing:border-box;border-bottom:1px solid #E2E8F0;margin:6px 0 14px;-webkit-overflow-scrolling:touch}
.psm-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;padding:0 2px;font:inherit;font-size:.9rem;font-weight:600;color:#64748B;cursor:pointer;white-space:nowrap}
.psm-tab.on{color:var(--text);border-bottom-color:#1D6FD8}
.psm-tab:focus-visible{outline:2px solid #1D6FD8;outline-offset:-2px}
.psm-tab-chip{display:inline-block;min-width:18px;padding:1px 6px;border-radius:999px;background:#FEE2E2;color:#991B1B;font-size:.7rem;font-weight:700;text-align:center;line-height:1.5}

/* ── Κάρτες ── */
.psm-card{min-width:0;margin-bottom:12px;border:1px solid #E2E8F0;border-radius:12px;background:var(--surface);overflow:hidden}
.psm-card-info{padding:12px 14px}
.psm-staff-info{margin:0 0 10px;font-size:.8125rem;line-height:1.5;color:#64748B;overflow-wrap:anywhere}
.psm-staff-unknown{margin-bottom:12px;padding:12px 14px;border:1px solid #FDBA74;border-radius:10px;background:#FFF7ED}
.psm-staff-name{font-size:.95rem;font-weight:700}
.psm-staff-counts{margin-top:2px;font-size:.875rem;font-weight:700;color:#9A3412}
.psm-staff-rules{margin:4px 0 10px;font-size:.8125rem;line-height:1.5;color:#7C2D12}
.psm-sum{padding-top:10px;border-top:1px solid #E2E8F0}
.psm-card-info > .psm-sum:first-child{padding-top:0;border-top:0}
.psm-sum-title{margin:0 0 8px;font-size:.8125rem;font-weight:700}
.psm-sum-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.psm-sum-tile{min-width:0}
.psm-sum-l{font-size:.7rem;line-height:1.3;color:#64748B;overflow-wrap:anywhere}
.psm-sum-v{margin-top:2px;font-size:1.1rem;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}

/* ── Κουμπιά ── */
.psm-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;box-sizing:border-box;border:1px solid #CBD5E1;border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:.875rem;font-weight:700;white-space:nowrap;cursor:pointer}
.psm-btn:focus-visible{outline:2px solid #1D6FD8;outline-offset:2px}
.psm-btn-primary{border-color:#1D6FD8;background:#1D6FD8;color:#fff}
.psm-btn-nav{border-color:#1D6FD8;color:#1D6FD8}
.psm-btn-sm{min-height:36px;padding:0 14px;font-size:.8125rem}
.psm-btn[disabled]{border-color:#E2E8F0;background:#F1F5F9;color:#94A3B8;cursor:not-allowed}

/* ── Ενότητες σε ΜΙΑ κάρτα ── */
.psm-panel{min-width:0}
.psm-panel + .psm-panel{border-top:1px solid #E2E8F0}
.psm-panel-head{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:6px 14px;box-sizing:border-box;border:0;background:none;color:var(--text);font:inherit;font-size:.9rem;font-weight:700;text-align:left}
button.psm-panel-head{cursor:pointer}
button.psm-panel-head:hover{background:var(--surface2)}
button.psm-panel-head:focus-visible{outline:2px solid #1D6FD8;outline-offset:-2px}
.psm-panel-title{white-space:nowrap}
.psm-panel-zero{min-height:44px;background:#F1F5F9;color:#475569;font-weight:600}
.psm-panel-zero-text{margin-left:auto;white-space:nowrap;font-size:.8125rem;font-weight:400;color:#64748B;text-align:right}
.psm-panel-n{display:inline-block;min-width:18px;padding:1px 8px;border-radius:999px;background:#E8F1FD;color:#1D4ED8;font-size:.75rem;font-weight:700;text-align:center;line-height:1.5}
.psm-pill-ok{white-space:nowrap;padding:3px 10px;border-radius:999px;background:#DCFCE7;color:#166534;font-size:.75rem;font-weight:700}
.psm-panel-chev{margin-left:auto;color:#64748B}
.psm-panel-act{margin-left:auto;flex:0 0 auto}
.psm-panel-body{border-top:1px solid #E2E8F0}
.psm-panel-pad{min-width:0;padding:10px 14px}
.psm-hint{margin:0 0 6px;font-size:.75rem;color:#64748B}

/* ── Γραμμή ημέρας: ημέρα · ώρες · αιτία · «Δήλωση» · βελάκι ── */
.psm-dl-item + .psm-dl-item{border-top:1px solid #EEF2F7}
.psm-dl-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 14px}
.psm-dl-item.open > .psm-dl-row{background:var(--surface2)}
.psm-dl-main{flex:1 1 0;min-width:0;display:flex;align-items:baseline;gap:2px 14px;cursor:pointer}
.psm-dl-line{flex:0 0 auto;font-size:.9rem;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.psm-dl-ot{color:#B45309}
.psm-dl-sub{flex:1 1 0;min-width:0;font-size:.8125rem;color:#64748B;overflow-wrap:anywhere}
.psm-dl-act{flex:0 0 auto}
.psm-dl-chev{position:relative;flex:0 0 24px;height:24px;cursor:pointer}
.psm-dl-chev::before{content:"";position:absolute;top:6px;left:7px;width:8px;height:8px;border-right:2px solid #64748B;border-bottom:2px solid #64748B;transform:rotate(-45deg);transition:transform .15s}
.psm-dl-item.open .psm-dl-chev::before{transform:rotate(45deg)}
.psm-chip-pending{font-size:.8125rem;color:#64748B;white-space:nowrap}
.psm-iv{white-space:nowrap}

/* ── Κάρτα ημέρας: πλέγμα «ετικέτα πάνω, τιμή κάτω» ── */
.psm-dd{min-width:0;padding:10px 14px 14px;background:var(--surface2)}
.psm-dd .psm-cal-row{display:block;padding:0;border:0;background:none}
.psm-dd .psm-cal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:10px 14px}
.psm-dd .psm-cal-grid > *{min-width:0;font-size:.8125rem;overflow-wrap:anywhere}
.psm-dd .psm-cal-cell-day{grid-column:1/-1;font-size:.75rem;font-weight:700;color:#64748B}
.psm-dd .psm-cal-cell-ergani::before,.psm-dd .psm-cal-cell-punches::before,.psm-dd .psm-cal-cell-net::before,.psm-dd .psm-cal-cell-declared::before,.psm-dd .psm-cal-cell-status::before{display:block;margin-bottom:2px;font-size:.6875rem;font-weight:600;color:#64748B}
.psm-dd .psm-cal-cell-ergani::before{content:'Δηλωμένο ωράριο'}
.psm-dd .psm-cal-cell-punches::before{content:'Χτυπήματα'}
.psm-dd .psm-cal-cell-net::before{content:'Καθαρές ώρες'}
.psm-dd .psm-cal-cell-declared::before{content:'Δηλώσεις ΕΡΓΑΝΗ'}
.psm-dd .psm-cal-cell-status::before{content:'Κατάσταση'}
.psm-dd .psm-cal-grid-neutral > *{color:#94A3B8}
.psm-day-underwork{margin-top:1px;font-size:.7rem;color:#64748B}
.psm-net-ot{color:#B45309;font-weight:700}
.psm-net-oe{color:#1D4ED8;font-weight:700}
.psm-decl-block{margin-bottom:4px}
.psm-decl-protoline,.psm-decl-none-note{font-size:.75rem;color:#64748B}
.psm-decl-partial-note,.psm-decl-needs-note{margin-top:2px;font-size:.75rem;color:#B45309}
.psm-orphan-note{margin-top:2px;font-size:.75rem;color:#B45309}.psm-orphan-over{color:#B91C1C;font-weight:600}
.psm-linetype{display:inline-block;margin-right:4px;padding:1px 6px;border-radius:6px;font-size:.6875rem;font-weight:700;line-height:1.35}
.psm-linetype-erg{background:#E2E8F0;color:#0F172A}
.psm-linetype-ot{background:#334155;color:#fff}
.psm-day-status-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}
.psm-day-status-declared{background:#DCFCE7;color:#166534}
.psm-day-status-partial{background:#FEF3C7;color:#92400E}
.psm-day-status-needs{background:#FFEDD5;color:#9A3412}
.psm-day-status-none{padding:0;color:#64748B}

/* Λωρίδα ωρών + κείμενο ρολογιού από κάτω: ανοιχτό μπλε το δηλωμένο, μπλε το πραγματικό, πορτοκαλί ό,τι θέλει δήλωση */
.psm-dd .psm-cal-detail{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid #E2E8F0}
.psm-strip-track{position:relative;display:block;height:12px;border-radius:6px;background:#E2E8F0;overflow:hidden}
.psm-strip-seg{position:absolute;top:0;bottom:0;border-radius:4px}
.psm-strip-declared{background:#BFDBFE}
.psm-strip-threshold{position:absolute;top:0;bottom:0;width:2px;background:#0F172A;opacity:.7}
.psm-strip-empty{opacity:.5}
.psm-clr-normal{background:#1D6FD8}
.psm-clr-declared,.psm-clr-blocked{background:#F59E0B}
.psm-clr-neutral{background:#94A3B8}
.psm-cal-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.psm-cal-clock{font-size:.75rem;color:#64748B;font-variant-numeric:tabular-nums}
.psm-cal-note{font-size:.8125rem}
.psm-cal-consequence,.psm-cal-late-dispatch{font-size:.75rem;color:#64748B;line-height:1.45}
.psm-cal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.psm-chip-failed{display:inline-block;padding:4px 10px;border-radius:10px;background:#FEE2E2;color:#991B1B;font-size:.75rem;font-weight:700;overflow-wrap:anywhere}

/* ── Απολογιστικές δηλώσεις και Ιστορικό ── */
.psm-decl-row,.psm-hist-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 0;border-bottom:1px solid #EEF2F7;font-size:.8125rem;font-variant-numeric:tabular-nums}
.psm-decl-row:last-child,.psm-hist-row:last-child{border-bottom:0}
.psm-decl-who,.psm-hist-who{flex:1 1 160px;min-width:0;font-weight:600;overflow-wrap:anywhere}
.psm-decl-day,.psm-decl-when{white-space:nowrap}
.psm-decl-when,.psm-hist-meta{color:#64748B}
.psm-hist-status{display:block;font-size:.75rem;font-weight:400;color:#64748B}
.psm-hist-meta{font-size:.75rem}

/* ── Παράθυρα υποβολής (μονό και ομαδικό): max-width 620px, bottom sheet ≤600px ── */
.psm-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:16px;overflow-x:hidden;background:rgba(15,23,42,.45)}
.psm-confirm-modal{display:flex;flex-direction:column;width:100%;min-width:0;max-width:620px;max-height:86vh;box-sizing:border-box;border-radius:14px;background:var(--surface);box-shadow:0 18px 40px rgba(0,0,0,.28);overflow:hidden}
.psm-cf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:20px 20px 6px}
.psm-cf-title{font-size:1.1rem;font-weight:700}
.psm-cf-close{flex:0 0 44px;min-width:44px;min-height:44px;margin:-8px -10px 0 0;border:0;background:none;color:#64748B;font-size:1.3rem;line-height:1;cursor:pointer}
.psm-cf-body{min-height:0;padding:8px 20px;overflow-y:auto}
.psm-cf-who{margin-bottom:8px;font-size:.9rem;font-weight:700}
.psm-cf-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #E2E8F0;font-size:.85rem}
.psm-cf-k{flex:0 0 auto;color:#64748B;white-space:nowrap}
.psm-cf-v{min-width:0;font-weight:600;text-align:right;overflow-wrap:break-word}
.psm-cf-lines-label{margin:12px 0 4px;font-size:.8125rem;font-weight:700;color:#64748B}
.psm-cf-lines{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.psm-cf-line{display:flex;justify-content:space-between;gap:8px;min-width:0;padding:8px 12px;border:1px solid #E2E8F0;border-radius:10px;font-size:.85rem}
.psm-cf-line-type{flex:0 1 auto;min-width:0;font-weight:700;overflow-wrap:anywhere}
.psm-cf-line-hours{flex:0 0 auto;white-space:nowrap;font-variant-numeric:tabular-nums}
.psm-cf-note,.psm-note{margin-top:8px;font-size:.75rem;line-height:1.45;color:#64748B}
.psm-cf-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #E2E8F0}

@media(max-width:600px){
  .psm-monthnav{width:100%;flex-wrap:wrap}
  .psm-export{flex:1 1 100%;margin-left:0}
  #psm-monthslot{flex:1 1 100%}
  .psm-monthnav-label{flex:1 1 auto;min-width:0}
  .psm-card-info{padding:12px}
  .psm-sum-grid{gap:6px}
  .psm-sum-l{font-size:.625rem;overflow-wrap:normal}
  .psm-sum-v{font-size:1rem}
  .psm-pill-ok{padding:3px 8px;font-size:.6875rem}
  .psm-panel-head{gap:8px;padding:6px 12px;font-size:.85rem}
  .psm-panel-zero-text{font-size:.75rem}
  .psm-dl-row{gap:8px;padding:6px 12px}
  .psm-dl-main{flex-wrap:wrap}
  .psm-dl-sub{flex:1 1 100%}
  .psm-confirm-overlay{align-items:flex-end;padding:0}
  .psm-confirm-modal{max-width:none;max-height:92vh;border-radius:14px 14px 0 0}
  .psm-cf-head{padding:16px 16px 4px}
  .psm-cf-body{padding:8px 16px}
  .psm-cf-actions{padding:12px 16px}
  .psm-cf-actions .psm-btn{flex:1 1 0;min-width:0}
}

/* ── Σκούρο θέμα: μόνο οι χρωματιστές επιφάνειες που δεν παίρνουν var(--surface) ── */
body[data-theme="dark"] .psm-pill-ok,body[data-theme="dark"] .psm-regime-banner-apolog .psm-regime-banner-title,body[data-theme="dark"] .psm-day-status-declared{background:rgba(20,83,45,.35);color:#BBF7D0}
body[data-theme="dark"] .psm-panel-n,body[data-theme="dark"] .psm-regime-banner-proan .psm-regime-banner-title{background:rgba(29,111,216,.28);color:#BFDBFE}
body[data-theme="dark"] .psm-tab-chip,body[data-theme="dark"] .psm-chip-failed{background:rgba(185,28,28,.25);color:#FECACA}
body[data-theme="dark"] .psm-panel-zero{background:rgba(148,163,184,.12);color:#CBD5E1}
body[data-theme="dark"] .psm-staff-unknown{background:rgba(180,83,9,.15);border-color:#92400E}
body[data-theme="dark"] .psm-staff-counts,body[data-theme="dark"] .psm-staff-rules{color:#FDBA74}
body[data-theme="dark"] .psm-day-status-partial,body[data-theme="dark"] .psm-day-status-needs{background:rgba(180,83,9,.25);color:#FDBA74}
body[data-theme="dark"] .psm-btn[disabled]{background:rgba(148,163,184,.12);border-color:#334155;color:#64748B}
.psm-dd .psm-cal-muted{opacity:.7}
