/*
 * Webmaze WCRM — κοινό CSS (assets/style.css)
 * -----------------------------------------------------------------------
 * Εδώ ζουν μόνο τα στοιχεία που είναι ΙΔΙΑ σε πολλές σελίδες: χρώματα
 * (CSS variables), βασικό reset/typography, το ανοιχτόχρωμο top-bar
 * (μαζί με brand/user-chip/logout-btn — ίδιο ύφος με το login.php)
 * και το κοινό <mark> highlight style της αναζήτησης. Ό,τι είναι ειδικό
 * για μία μόνο σελίδα (π.χ. το login card, ο πίνακας του clients.php, το
 * search dropdown του dashboard.php) παραμένει στο δικό της <style> block.
 *
 * Include σε κάθε σελίδα ΠΡΙΝ το δικό της <style>, ώστε οι κανόνες της
 * σελίδας να μπορούν να υπερισχύσουν όπου χρειάζεται:
 *   <link rel="stylesheet" href="assets/style.css">
 */

:root{
  --ink:#000000;
  --ink-600:#54545E;
  --ink-400:#8A8A96;

  --navy:#00007D;
  --navy-50:#E8E8F6;

  --orange:#FF5A34;
  --orange-dark:#E0431F;
  --orange-50:#FFEEE8;

  --peach:#ECA673;
  --peach-50:#FCEFE3;

  --green:#2E9E6D;
  --green-50:#E7F6EF;

  --salmon:#F39879;
  --blue:#86A0D3;
  --blue-50:#EDF1FA;

  --bg:#F5F6FA;
  --surface:#FFFFFF;
  --border:#E7E8F0;
  --radius:14px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Manrope',sans-serif;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
h1,h2,.brand-word{font-family:'Geologica',sans-serif;}
a{color:inherit;text-decoration:none;}
button{font-family:'Manrope',sans-serif;}
:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:4px;}

/* ---- Navy top-bar (dashboard.php, clients.php, ... — ίδιο layout με
   το top-bar του login.php, με το πραγματικό λογότυπο σε λευκή εκδοχή).
   Σκόπιμα ΔΕΝ λέγεται .top-bar: το login.php ορίζει ήδη τοπικά ένα
   δικό του .top-bar (πάνω στο gradient φόντο) και δεν θέλουμε τα δύο
   να συγκρούονται στο cascade. ---- */
.app-topbar{
  background:var(--navy);
  padding:12px 32px;
  display:flex;align-items:center;gap:20px;
}
.brand{display:flex;align-items:center;gap:11px;}
.brand-mark{height:26px;width:auto;flex:none;display:block;}
.brand-word{color:#fff;font-size:16px;font-weight:800;letter-spacing:.2px;}
.brand-sub{display:block;font-family:'Manrope',sans-serif;font-size:10px;font-weight:700;color:var(--orange);letter-spacing:.4px;margin-top:1px;}

.header-spacer{flex:1;}

.header-back{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#D6D9F3;}
.header-back svg{width:14px;height:14px;flex:none;}
.header-back:hover{color:#fff;}

.user-chip{display:flex;align-items:center;gap:8px;font-size:13px;color:#D6D9F3;font-weight:600;}
.user-avatar{
  width:26px;height:26px;border-radius:50%;
  background:var(--orange);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:11.5px;
}
.user-role{font-size:10.5px;color:#AEB4E6;border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:1px 6px;}
.logout-btn{
  font-size:12.5px;font-weight:700;color:#fff;
  border:1px solid rgba(255,255,255,.3);background:transparent;
  padding:6px 13px;border-radius:9px;cursor:pointer;
  font-family:'Manrope',sans-serif;transition:background .15s ease;margin-left:14px;
  display:inline-block;
}
.logout-btn:hover{background:rgba(255,255,255,.12);}

/* ---- Κοινό highlight στυλ για αποτελέσματα αναζήτησης ---- */
mark{background:var(--orange-50);color:var(--orange-dark);border-radius:3px;padding:0 2px;font-weight:700;}

/* ---- Footer κοινό σε όλες τις σελίδες που το χρησιμοποιούν ---- */
footer.page-foot{color:var(--ink-400);font-size:11px;text-align:center;}

@media (max-width:720px){
  .app-topbar{padding:10px 18px;}
}

/* ---- Back link (client.php, clients.php, send-credentials.php, ...) ---- */
.back-link{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink-600);margin-bottom:14px;}
.back-link svg{width:14px;height:14px;flex:none;}
.back-link:hover{color:var(--navy);}

/* ---- Γενικό validation-error state για inputs (πάει μαζί με το
   showFieldError()/clearFieldError() JS helper — client_script.php,
   send-credentials.php): πρόσθεσε data-error-for="idTouErrorDiv" στο
   input, και ένα div.field-error-msg με αυτό το id δίπλα του. ---- */
.field-invalid{border-color:var(--orange-dark) !important;animation:fieldShake .3s ease;}
.field-error-msg{font-size:11.5px;font-weight:700;color:var(--orange-dark);margin-top:6px;display:none;}
.field-error-msg.show{display:block;}
@keyframes fieldShake{10%,90%{transform:translateX(-1px);}20%,80%{transform:translateX(2px);}30%,50%,70%{transform:translateX(-3px);}40%,60%{transform:translateX(3px);}}

/* ---- Recipients picker (toggle chips + custom chips + add-email row) —
   client.php (Αποστολή modal) και send-credentials.php χρησιμοποιούν
   ακριβώς το ίδιο component. ---- */
.recipients-box{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--bg);}
.recipient-toggles{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;align-items:center;}
.recipient-sub-label{font-size:11px;font-weight:700;color:var(--ink-400);margin:2px 0 6px;}
.recipient-toggle{border:1.5px solid var(--border);background:#fff;border-radius:20px;padding:6px 12px;font-size:12px;font-weight:700;color:var(--ink-600);cursor:pointer;font-family:'Manrope',sans-serif;}
.recipient-toggle:hover{border-color:var(--blue);}
.recipient-toggle.active{border-color:var(--navy);color:var(--navy);background:var(--navy-50);}
.recipient-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px;}
.recipient-chips:empty{display:none;margin-bottom:0;}
.recipient-chip{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);border-radius:20px;padding:5px 6px 5px 12px;font-size:12px;font-weight:700;color:var(--ink-600);}
.recipient-chip button{width:18px;height:18px;border-radius:50%;border:none;background:var(--bg);color:var(--ink-400);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;}
.recipient-chip button:hover{background:var(--orange-50);color:var(--orange-dark);}
.recipient-chip button svg{width:9px;height:9px;}
.recipient-add{display:flex;gap:6px;}
.recipient-add input{flex:1;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:12.5px;outline:none;font-family:'Manrope',sans-serif;background:#fff;}
.recipient-add input:focus{border-color:var(--navy);}
.recipient-add button{flex:none;display:flex;align-items:center;gap:5px;background:var(--navy-50);color:var(--navy);border:none;border-radius:8px;padding:0 12px;font-size:12px;font-weight:700;cursor:pointer;}
.recipient-add button:hover{background:var(--blue-50);}
.recipient-add button svg{width:12px;height:12px;}

/* =====================================================================
 * ΚΟΙΝΑ COMPONENTS — μία εκδοχή για όλες τις σελίδες.
 * Μην τα ξαναορίζεις στο <style> μιας σελίδας· αν μια σελίδα χρειάζεται
 * κάτι διαφορετικό, γράψε ΜΟΝΟ την ιδιότητα που αλλάζει (override), όχι
 * ολόκληρο τον κανόνα. Ό,τι υπάρχει σε μία μόνο σελίδα μένει εκεί.
 * ===================================================================== */

/* ---- Σελίδα: φόντο + κεντρικό wrapper (το max-width το ορίζει η σελίδα) ---- */
body{background:var(--bg);}
.content{margin:0 auto;padding:26px 32px 60px;}

/* ---- Page head: τίτλος/περιγραφή αριστερά, (προαιρετικά) κουμπιά δεξιά.
   Markup: .page-head > div(h1 + p) [+ actions] ---- */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;}
.page-head h1{font-size:22px;font-weight:800;margin:0 0 3px;}
.page-head p{margin:0;font-size:13px;color:var(--ink-600);}

/* ---- Card ---- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;box-shadow:0 10px 24px -18px rgba(0,0,60,.18);}
.card + .card{margin-top:16px;}
.card-head{display:flex;align-items:center;gap:9px;margin-bottom:16px;}
.card-icon{width:28px;height:28px;border-radius:8px;background:var(--blue-50);color:var(--navy);display:flex;align-items:center;justify-content:center;flex:none;}
.card-icon svg{width:14px;height:14px;}
.card-head h2{font-size:13.5px;font-weight:800;margin:0;color:var(--ink);}
.card-head .hint{font-size:11.5px;color:var(--ink-400);font-weight:600;margin-left:2px;}

/* ---- Grid + label ---- */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 16px;}
.field-wrap{display:flex;flex-direction:column;gap:6px;}
.field-wrap.span2{grid-column:1 / -1;}
label{font-size:12.5px;font-weight:700;color:var(--ink-600);}
label .req{color:var(--orange);}
label .opt{color:var(--ink-400);font-weight:600;}

/* ---- Field (input wrapper) ---- */
.field{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;transition:border-color .15s ease;}
.field:focus-within{border-color:var(--navy);}
.field svg{width:15px;height:15px;color:var(--ink-400);flex:none;}
.field input,.field select,.field textarea{border:none;background:transparent;outline:none;font-family:'Manrope',sans-serif;font-size:13.5px;color:var(--ink);width:100%;}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-400);}
.field-prefix{font-weight:700;color:var(--ink-400);font-size:13.5px;flex:none;}
textarea.plain{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-family:'Manrope',sans-serif;font-size:13.5px;color:var(--ink);outline:none;resize:vertical;min-height:78px;width:100%;}
textarea.plain:focus{border-color:var(--navy);}

/* ---- Custom select (αντί για native <select>) — markup:
   .custom-select > .field.cs-trigger(.cs-value + .cs-chevron) + .cs-panel(.cs-option…) + input[hidden] ---- */
.custom-select{position:relative;}
.cs-trigger{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;}
.field.cs-trigger.open{border-color:var(--navy);}
.cs-value{flex:1;font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cs-chevron{width:7px;height:7px;border-right:2px solid var(--ink-400);border-bottom:2px solid var(--ink-400);transform:rotate(45deg);transition:transform .15s ease;flex:none;}
.cs-trigger.open .cs-chevron{transform:rotate(225deg);}
.cs-panel{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 18px 40px -18px rgba(0,0,60,.28);padding:6px;z-index:30;overflow:hidden;min-width:190px;}
.cs-panel.open{display:block;}
.cs-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink-600);cursor:pointer;transition:background .12s ease,color .12s ease;white-space:nowrap;}
.cs-option:hover{background:var(--bg);color:var(--ink);}
.cs-option.selected{background:var(--orange-50);color:var(--orange-dark);font-weight:700;}
.cs-option svg{width:14px;height:14px;flex:none;opacity:0;stroke:var(--orange-dark);}
.cs-option.selected svg{opacity:1;}

/* ---- Custom select με αναζήτηση (π.χ. επιλογή πελάτη) + quick-pick domains
   (project_form.php, Νέο Project στο open_projects.php). Markup:
   .custom-select > .field.cs-trigger + .cs-panel(.cs-search-box + .cs-option-list(.cs-option.client-option…)) ---- */
.cs-option-list{max-height:230px;overflow-y:auto;}
.cs-search-box{display:flex;align-items:center;gap:7px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:7px 9px;margin-bottom:6px;}
.cs-search-box svg{width:13px;height:13px;color:var(--ink-400);flex:none;}
.cs-search-box input{border:none;outline:none;background:transparent;font-family:'Manrope',sans-serif;font-size:12.5px;color:var(--ink);width:100%;}
.cs-empty{padding:14px 10px;text-align:center;font-size:12px;color:var(--ink-400);font-weight:600;}
.cs-option.client-option{align-items:flex-start;}
.client-option-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;}
.client-option-name{font-weight:700;color:var(--ink);font-size:13px;}
.cs-option.client-option.selected .client-option-name{color:var(--orange-dark);}
.client-option-sites{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:11.5px;color:var(--ink-400);font-weight:600;}
.domain-quick-picks{display:none;flex-wrap:wrap;gap:6px;margin-top:2px;}
.domain-pill{font-size:11.5px;font-weight:700;color:var(--ink-600);background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:4px 10px;cursor:pointer;font-family:'Manrope',sans-serif;}
.domain-pill:hover{border-color:var(--blue);}
.domain-pill.active{background:var(--navy-50);border-color:var(--navy);color:var(--navy);}

/* ---- Buttons ---- */
.btn-primary,.btn-secondary,.btn-soft{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;height:38px;padding:0 16px;border-radius:10px;font-family:'Manrope',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;}
.btn-primary svg,.btn-secondary svg,.btn-soft svg{width:14px;height:14px;flex:none;}
.btn-primary{background:var(--orange);color:#fff;border:none;}
.btn-primary:hover{background:var(--orange-dark);}
.btn-primary:disabled{background:var(--peach);cursor:default;}
.btn-secondary{background:#fff;color:var(--ink-600);border:1px solid var(--border);}
.btn-secondary:hover{border-color:var(--navy);color:var(--navy);}
/* μαλακό navy κουμπί, π.χ. "Προσθήκη Site" */
.btn-soft{height:34px;padding:0 12px;border-radius:9px;font-size:12.5px;background:var(--navy-50);color:var(--navy);border:none;}
.btn-soft:hover{background:var(--blue-50);}
.btn-soft svg{width:13px;height:13px;}
/* κουμπί-σύνδεσμος χωρίς πλαίσιο */
.btn-ghost{background:none;border:none;color:var(--navy);font-size:12px;font-weight:700;cursor:pointer;padding:0;font-family:'Manrope',sans-serif;}
.btn-ghost:hover{text-decoration:underline;}
/* διακριτικό κουμπί διαγραφής */
.btn-danger-ghost{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid transparent;border-radius:9px;padding:7px 10px;font-family:'Manrope',sans-serif;font-size:12.5px;font-weight:700;color:var(--orange-dark);cursor:pointer;}
.btn-danger-ghost:hover{background:var(--orange-50);border-color:var(--orange-50);}
.btn-danger-ghost svg{width:14px;height:14px;flex:none;}
/* τετράγωνο "×" για αφαίρεση γραμμής, ίδιο ύψος με το .field */
.row-remove-btn{flex:none;width:38px;height:38px;border-radius:9px;border:1px solid var(--border);background:#fff;color:var(--ink-400);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.row-remove-btn:hover{border-color:var(--orange-dark);color:var(--orange-dark);background:var(--orange-50);}
.row-remove-btn svg{width:13px;height:13px;}
/* μικρά τετράγωνα icon-κουμπιά στο τέλος γραμμής πίνακα */
.row-actions{display:flex;gap:6px;justify-content:flex-end;}
.row-actions button{width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--ink-600);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .12s ease,color .12s ease;}
.row-actions button:hover{border-color:var(--navy);color:var(--navy);}
.row-actions button svg{width:14px;height:14px;}

.actions-row{display:flex;justify-content:flex-end;align-items:center;gap:10px;}

/* ---- Toggle switch ---- */
.switch-row{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--ink-600);}
.switch{position:relative;display:inline-block;width:36px;height:20px;flex:none;}
.switch input{opacity:0;width:0;height:0;}
.switch-slider{position:absolute;cursor:pointer;inset:0;background:var(--border);border-radius:20px;transition:.15s;}
.switch-slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.15s;}
.switch input:checked + .switch-slider{background:var(--orange);}
.switch input:checked + .switch-slider:before{transform:translateX(16px);}

/* ---- "+N" pill για επιπλέον sites ενός πελάτη ---- */
.site-more-toggle{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:var(--navy);background:var(--navy-50);border-radius:20px;padding:2px 9px;cursor:pointer;border:none;font-family:'Manrope',sans-serif;}
.site-more-toggle svg{width:9px;height:9px;transition:transform .15s ease;}
.site-more-toggle.open svg{transform:rotate(180deg);}

/* ---- Empty state (λίστες χωρίς αποτελέσματα) ---- */
.empty-state{padding:48px 20px;text-align:center;}
.empty-state svg{width:34px;height:34px;color:var(--ink-400);margin-bottom:10px;}
.empty-state p{margin:0;font-size:13.5px;font-weight:600;color:var(--ink-600);}
.empty-state span{font-size:12px;color:var(--ink-400);}

/* ---- Finance tiles (σύνολο / πληρωμένα / υπόλοιπο) ---- */
.fin-tile{background:var(--bg);border:1px solid var(--border);border-radius:11px;padding:12px 14px;}
.fin-tile-label{font-size:11px;font-weight:600;color:var(--ink-400);margin-bottom:3px;}
.fin-tile-value{font-size:18px;font-weight:800;font-family:'Geologica',sans-serif;}
.fin-tile-value.owed{color:var(--orange-dark);}
.fin-tile-value.clear{color:var(--green);}
.fin-tile-sub{font-size:11px;color:var(--ink-600);margin-top:2px;}

/* ---- Credentials (client.php "Ιστότοποι" + send-credentials.php) ----
   Το grid των ομάδων (.cred-groups / .cred-row) το ορίζει κάθε σελίδα. */
.cred-group{background:#FCFCFE;border:1px solid #D3D2E4;border-radius:12px;padding:14px 15px;transition:opacity .15s ease;}
.cred-group-head{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;color:var(--ink);margin-bottom:12px;}
.cred-count{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--navy);background:var(--navy-50);border-radius:20px;padding:1px 7px;}
.cred-label{font-size:11.5px;font-weight:700;color:var(--ink-400);}
.cred-value-wrap{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:6px 6px 6px 10px;min-width:0;}
.cred-input{flex:1;border:none;background:transparent;outline:none;font-family:'Manrope',sans-serif;font-size:13px;color:var(--ink);min-width:0;}
.cred-icon-btn{width:26px;height:26px;border-radius:6px;border:none;background:transparent;color:var(--ink-400);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;position:relative;}
.cred-icon-btn:hover{background:var(--bg);color:var(--navy);}
.cred-icon-btn svg{width:14px;height:14px;}
.copied-tag{position:absolute;top:-24px;right:0;background:var(--ink);color:#fff;font-size:10px;font-weight:700;padding:3px 7px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .15s ease;white-space:nowrap;}
.copied-tag.show{opacity:1;}

/* ---- Toast (μήνυμα κάτω-κέντρο) ---- */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(12px);display:flex;align-items:center;gap:9px;background:var(--navy);color:#fff;font-size:12.5px;font-weight:600;padding:11px 18px;border-radius:10px;box-shadow:0 20px 40px -12px rgba(0,0,60,.35);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:3000;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast svg{width:15px;height:15px;flex:none;color:var(--green);}

/* ---- Stat card (μικρή κάρτα αριθμού με εικονίδιο — dashboard, Πακέτα Ωρών) ---- */
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:10px 13px;display:flex;align-items:center;gap:10px;}
.stat-icon{width:30px;height:30px;border-radius:8px;flex:none;display:flex;align-items:center;justify-content:center;}
.stat-icon svg{width:15px;height:15px;}
.stat-num{font-size:16px;font-weight:800;font-family:'Geologica',sans-serif;line-height:1.1;}
.stat-label{font-size:10.5px;color:var(--ink-600);font-weight:600;}
.stat-card.cool .stat-icon{background:var(--blue-50);color:var(--navy);}
.stat-card.warm .stat-icon{background:var(--peach-50);color:var(--orange-dark);}
.stat-card.warn .stat-icon{background:var(--orange-50);color:var(--orange-dark);}
.stat-card.good .stat-icon{background:var(--green-50);color:var(--green);}

/* ---- Μεγάλη μπάρα αναζήτησης (clients.php, Πακέτα Ωρών) ---- */
.search-bar{display:flex;align-items:center;gap:11px;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:20px;box-shadow:0 10px 24px -18px rgba(0,0,60,.18);transition:border-color .15s ease;}
.search-bar:focus-within{border-color:var(--navy);}
.search-bar svg{width:19px;height:19px;color:var(--ink-400);flex:none;}
.search-bar input{flex:1;border:none;outline:none;background:transparent;font-size:14.5px;font-family:'Manrope',sans-serif;color:var(--ink);}
.search-bar input::placeholder{color:var(--ink-400);}
.clear-btn{display:none;font-size:12px;font-weight:700;color:var(--ink-400);cursor:pointer;padding:4px 8px;flex:none;}
.clear-btn.show{display:block;}
.clear-btn:hover{color:var(--orange-dark);}

/* ---- Status pill — χρώματα: ok (πράσινο), pending (navy), warn (πορτοκαλί),
   special (peach), neutral (γκρι). Ίδια με τα client_status του client_status.php. ---- */
.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap;}
.status-pill svg{width:11px;height:11px;}
.status-pill.ok{background:var(--green-50);color:var(--green);}
.status-pill.pending{background:var(--blue-50);color:var(--navy);}
.status-pill.warn{background:var(--orange-50);color:var(--orange-dark);}
.status-pill.special{background:var(--peach-50);color:var(--orange-dark);}
.status-pill.neutral{background:var(--bg);color:var(--ink-600);}

/* ---- Τετράγωνο icon-κουμπί (επεξεργασία, διαγραφή, email...) ---- */
.icon-btn{width:32px;height:32px;border-radius:9px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-600);flex:none;transition:border-color .12s ease,color .12s ease;}
.icon-btn:hover{border-color:var(--navy);color:var(--navy);}
.icon-btn svg{width:14px;height:14px;}
.icon-btn-danger:hover,.icon-btn.danger:hover{border-color:var(--orange-dark);color:var(--orange-dark);}
.icon-btn.sm{width:28px;height:28px;border-radius:8px;}
.icon-btn.sm svg{width:12px;height:12px;}

/* ---- Μικρό παράθυρο επιβεβαίωσης (αντί για confirm()/alert()) ---- */
.dialog-overlay{position:fixed;inset:0;background:rgba(0,0,40,.4);display:none;align-items:center;justify-content:center;z-index:1000;padding:20px;}
.dialog-overlay.open{display:flex;}
.dialog-box{background:var(--surface);border-radius:var(--radius);padding:22px 24px;max-width:400px;width:100%;box-shadow:0 24px 60px -20px rgba(0,0,60,.4);}
.dialog-box p{margin:0 0 18px;font-size:14px;color:var(--ink);line-height:1.5;}
/* μεγάλο παράθυρο με κεφαλίδα / σώμα / υποσέλιδο */
.dialog-overlay.top{align-items:flex-start;overflow-y:auto;padding:40px 16px;}
.dialog-box.wide{max-width:620px;padding:0;border-radius:16px;}
.dialog-box.wide.xl{max-width:860px;}
.dialog-box.wide.narrow{max-width:440px;}
.dialog-head{display:flex;align-items:flex-start;gap:12px;padding:18px 22px 14px;border-bottom:1px solid var(--border);}
.dialog-head > div:not([class]){flex:1;min-width:0;} /* το μπλοκ τίτλου — avatars/selects κρατούν το μέγεθός τους */
.dialog-head h3{font-family:'Geologica',sans-serif;font-size:16px;font-weight:800;margin:0;}
.dialog-sub{font-size:12px;color:var(--ink-400);margin-top:2px;}
.dialog-body{padding:18px 22px;display:flex;flex-direction:column;gap:14px;}
.dialog-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--border);background:var(--bg);border-radius:0 0 16px 16px;}


/* ---- Φίλτρα-chips με μετρητή (Όλοι 12 · Απλήρωτα 4 ...) ---- */
.filter-tabs{display:inline-flex;gap:4px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:4px;}
.filter-tab{display:flex;align-items:center;gap:6px;border:none;background:transparent;border-radius:9px;padding:7px 12px;font-size:12.5px;font-weight:700;color:var(--ink-600);cursor:pointer;font-family:'Manrope',sans-serif;transition:background .12s ease,color .12s ease;}
.filter-tab:hover{background:var(--bg);}
.filter-tab.active{background:var(--navy);color:#fff;}
.filter-tab .count{font-size:10.5px;font-weight:700;color:var(--ink-400);}
.filter-tab.active .count{color:#C7CBEF;}

/* ---- Πίνακας αποτελεσμάτων (clients.php, renewals.php) — σε κινητό γίνεται λίστα ---- */
.results-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.results-card table{width:100%;border-collapse:collapse;}
.results-card thead th{text-align:left;font-size:11px;font-weight:700;color:var(--ink-400);padding:12px 16px;border-bottom:1px solid var(--border);background:#FAFBFD;}
.results-card tbody tr{transition:background .12s ease;}
.results-card tbody tr:hover{background:var(--bg);}
.results-card tbody tr:not(:last-child) td{border-bottom:1px solid var(--border);}
.results-card td{padding:12px 16px;font-size:13px;vertical-align:middle;}
.results-card th.num,.results-card td.num{text-align:right;}
@media (max-width:760px){
  .results-card thead{display:none;}
  .results-card table,.results-card tbody,.results-card tr,.results-card td{display:block;width:100%;}
  .results-card tbody tr{padding:12px 4px;border-bottom:1px solid var(--border);}
  .results-card td{padding:4px 8px;border:none !important;}
  .results-card td.num{text-align:left;}
}

/* ---- Πακέτα ωρών & ανεξάρτητες καταναλώσεις — κάρτες (support_hours.php
   + ενότητα "Υποστήριξη Ωρών" στο client.php) ---- */
.card-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start;}
.card-grid-3 > *{min-width:0;}
.package-card,.group-card{background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:16px 18px;}
.package-card.completed{border-left:4px solid var(--peach);}
.pkg-head,.grp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.pkg-title{font-weight:800;font-size:14px;}
.pkg-sub{font-size:11.5px;color:var(--ink-400);margin-top:2px;}
.pkg-progress{margin-top:13px;}
.pkg-progress-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.pkg-remaining{font-family:'Geologica',sans-serif;font-size:19px;font-weight:800;}
.pkg-remaining-label{font-size:11px;color:var(--ink-400);font-weight:600;margin-left:5px;}
.pkg-meta-line{font-size:11.5px;color:var(--ink-600);margin-top:3px;}
.progress-track{height:8px;background:var(--bg);border-radius:20px;margin-top:9px;overflow:hidden;}
.progress-fill{height:100%;background:var(--navy);border-radius:20px;transition:width .3s ease;}
.progress-fill.low{background:var(--orange);}
.grp-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-weight:800;font-size:14px;}
.grp-title svg{width:15px;height:15px;color:var(--orange-dark);flex:none;}
.grp-price{font-size:11px;color:var(--ink-400);font-weight:600;background:var(--bg);border-radius:20px;padding:2px 9px;}
.grp-total{text-align:right;}
.grp-total .amount{font-family:'Geologica',sans-serif;font-size:17px;font-weight:800;color:var(--ink);}
.grp-total .amount.due{color:var(--orange-dark);}
.grp-unpaid-note{font-size:10.5px;color:var(--orange-dark);font-weight:700;margin-top:2px;}

/* ---- Info note (navy on blue-50) ---- */
.helper-note{display:flex;gap:9px;align-items:flex-start;background:var(--blue-50);border-radius:10px;padding:11px 13px;font-size:12px;color:var(--navy);line-height:1.5;}
.helper-note svg{width:15px;height:15px;flex:none;margin-top:1px;}
/* κόκκινη εκδοχή για γενικά σφάλματα φόρμας */
.helper-note.error{background:var(--orange-50);color:var(--orange-dark);font-weight:700;}

@media (max-width:900px){
  .card-grid-3{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:720px){
  .content{padding:16px 16px 40px;}
  .grid{grid-template-columns:1fr;}
  .card-grid-3{grid-template-columns:1fr;}
  .actions-row.stack-mobile{flex-direction:column-reverse;align-items:stretch;}
}

/* ---- Πεδία κωδικών πελατών (class="secret-input" + type="text") —
   μάσκαρισμα με CSS ώστε ο browser να ΜΗΝ προτείνει "Αποθήκευση κωδικού"
   (βλ. assets/secret-fields.js). Το login.php μένει κανονικό password. ---- */
.secret-input{-webkit-text-security:disc;text-security:disc;}
.secret-input:not(.revealed){letter-spacing:1.5px;}
.secret-input.revealed{-webkit-text-security:none;text-security:none;letter-spacing:normal;}
