/* public\beacon.css
   Κοινό στυλ ΜΟΝΟ για τις τρεις σελίδες του "Idmon Beacon": portal.html, beacon-editor.html, beacon-admin.html.
   Δεν φορτώνεται από καμία σελίδα του SMB και δεν αλλάζει το shared.css. Φορτώνεται ΜΕΤΑ το shared.css και το συμπληρώνει.

   Αρχές (2 Οκτ 2026):
   - ΜΙΑ κλίμακα γραμμάτων σε rem (κατώτατο όριο 13px, κείμενο και πεδία 16px) και ΜΙΑ κλίμακα ύψους κουμπιών (44px), αντί για διαφορετικά px σε κάθε σελίδα.
   - 3 Οκτ 2026 (UX για αρχάριους): ΤΙΠΟΤΑ δεν φαίνεται ως απλό υπογραμμισμένο link. Κάθε ενέργεια ΚΑΙ κάθε μετάβαση φαίνεται ως κουμπί
     (οι μεταβάσεις μένουν <a> με κλάση btn, για να δουλεύουν Ctrl+κλικ, Πίσω και οι αναγνώστες οθόνης). Στόχοι κλικ 44px (WCAG 2.5.5, πάνω από το ελάχιστο 24px του 2.5.8).
   - Κουμπιά με σκούρο κείμενο πάνω στο ζεστό accent (5,8:1 αντίθεση, όπως το .cta-primary του SMB). Το λευκό είχε 2,9:1.
   - Ορατός δακτύλιος focus για πληκτρολόγιο. Στόχοι κλικ τουλάχιστον 24x24px (WCAG 2.2, 2.5.8).
   - Περίγραμμα πεδίων με αντίθεση ~3:1 (τα πεδία φαίνονται πού είναι).
   - Σκούρο γκρι αντί καθαρού μαύρου, ανύψωση με ανοιχτότερες επιφάνειες, κείμενο σε τρία επίπεδα. */

:root{
  --accent:#D97757; --accent-soft:rgba(217,119,87,.16);
  --on-accent:#15151c;            /* σκούρο κείμενο πάνω στο accent */
  --field-border:#6f6f7d;         /* περίγραμμα πεδίων, ~3,4:1 πάνω στην επιφάνεια */
  --focus:#F0A58B;                /* δακτύλιος focus, ανοιχτότερο από το accent για να φαίνεται και πάνω του */
  --fs-xs:.8125rem; --fs-sm:.875rem; --fs-md:1rem; --fs-lg:1.125rem; --fs-xl:1.35rem; --fs-num:1.7rem;
  --r:8px; --r-lg:10px;
  --h-btn:44px; --h-input:44px;
}

html{-webkit-text-size-adjust:100%;}
body{line-height:1.5;font-size:var(--fs-md);}
h1,h2,h3{line-height:1.3;}
a{color:var(--text-soft);}
a:hover{color:var(--text);}

/* ---- focus: ένας δακτύλιος παντού, μόνο για πληκτρολόγιο */
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px;}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:0;border-color:var(--focus);}

/* ---- διάταξη */
.wrap{max-width:1000px;margin:0 auto;padding:0 16px 56px;}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:14px 0;border-bottom:1px solid var(--border);margin-bottom:18px;}
.topbar h1{font-size:var(--fs-lg);margin:0;font-weight:600;}
.topnav{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap;}
.tab{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:var(--r);
  padding:8px 18px;min-height:var(--h-btn);font-size:var(--fs-md);cursor:pointer;font-family:inherit;}
.tab:hover{border-color:var(--text-soft);}
.tab.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600;}

/* ---- κάρτες και κείμενα */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;margin-bottom:14px;}
.card h2{font-size:var(--fs-md);margin:0 0 4px;font-weight:600;}
.card h3{font-size:var(--fs-md);margin:0 0 4px;font-weight:600;}
.hint{font-size:var(--fs-sm);color:var(--text-soft);margin:0 0 10px;}
.muted{color:var(--text-soft);font-size:var(--fs-sm);}
.empty{font-size:var(--fs-sm);color:var(--text-soft);padding:10px 0;}
.note{font-size:var(--fs-sm);margin-top:8px;min-height:1.2em;line-height:1.5;}
.note.ok{color:var(--ok);} .note.err{color:var(--danger);}
.name{font-weight:600;}

/* ---- ετικέτες */
.pill{font-size:var(--fs-xs);padding:2px 9px;border-radius:999px;background:var(--surface-2);color:var(--text-soft);white-space:nowrap;display:inline-block;}
.pill.hid{background:var(--warn-bg);color:var(--warn-border);}
.pill.off{background:rgba(229,100,107,.14);color:var(--danger);}
.pill.you{background:var(--accent-soft);color:var(--accent);}
.pill.shared{background:rgba(120,160,230,.14);color:#9db8ee;}
.pill.muted{background:var(--surface-2);color:var(--text-soft);}
.chip{font-size:var(--fs-xs);padding:2px 9px;border-radius:999px;background:var(--surface-2);color:var(--text-soft);border:1px solid var(--border);display:inline-block;}
.chip.ed{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);}
/* ετικέτα που ακολουθεί όνομα ή email: κενό από το CSS, όχι από κενά μέσα στο κείμενο */
.name + .pill,.name + .chip{margin-left:8px;}

/* ---- κουμπιά (ΜΙΑ κλίμακα) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-align:center;text-decoration:none;
  min-height:var(--h-btn);padding:8px 18px;border-radius:var(--r);border:1px solid transparent;background:var(--accent);
  color:var(--on-accent);font-size:var(--fs-md);font-weight:700;cursor:pointer;font-family:inherit;line-height:1.25;}
.btn:hover{filter:brightness(1.08);}
a.btn:hover{color:var(--on-accent);}
.btn.lg{min-height:52px;padding:0 24px;font-size:var(--fs-lg);}
.btn.secondary{background:var(--surface-2);color:var(--text);border-color:var(--border);font-weight:600;}
.btn.secondary:hover,a.btn.secondary:hover{filter:none;border-color:var(--accent);color:var(--text);}
/* κουμπί που είναι ΚΑΙ γραμμή λίστας (ο χρήστης καταλαβαίνει ότι πατιέται): αριστερή στοίχιση, πλήρες πλάτος */
.btn.listbtn{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;text-align:left;font-weight:600;margin-top:8px;}
.btn.listbtn.active{border-color:var(--accent);background:var(--accent-soft);}
.btn.listbtn::after{content:"›";color:var(--text-soft);font-size:1.3em;line-height:1;flex:none;}
.btn.danger{background:none;color:var(--danger);border-color:var(--danger);font-weight:600;}
.btn.danger:hover{filter:none;background:rgba(229,100,107,.12);}
.btn:disabled{opacity:.55;cursor:default;filter:none;}
.xbtn,.x{background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:1.3rem;line-height:1;cursor:pointer;
  min-width:var(--h-btn);min-height:var(--h-btn);border-radius:var(--r);font-family:inherit;}
.xbtn:hover,.x:hover{border-color:var(--danger);color:var(--danger);}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.actions-secondary{display:flex;gap:8px;flex-wrap:wrap;}
details.supplement{margin-top:22px;}
.danger-zone{margin-top:22px;padding-top:14px;border-top:1px solid var(--border);display:flex;justify-content:flex-start;}
.danger-zone .btn{flex:0 0 auto;min-width:0;}
#panel:focus{outline:none;}
.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}

/* ---- πεδία */
label{display:block;font-size:var(--fs-sm);color:var(--text-soft);margin:12px 0 4px;}
input[type=text],input[type=email],input[type=search],select,textarea{padding:9px 12px;min-height:var(--h-input);border-radius:var(--r);
  border:1px solid var(--field-border);background:var(--bg);color:var(--text);font-size:var(--fs-md);font-family:inherit;}
textarea{width:100%;min-height:240px;line-height:1.6;resize:vertical;}
textarea.small{min-height:90px;}
input::placeholder,textarea::placeholder{color:var(--text-soft);opacity:.75;}
select{max-width:100%;}
input[type=checkbox]{width:24px;height:24px;margin:0;accent-color:var(--accent);cursor:pointer;flex:none;}
.checks{display:flex;gap:10px;flex-wrap:wrap;font-size:var(--fs-md);}
.checks label,label.check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;margin:0;color:var(--text);font-size:var(--fs-md);min-height:var(--h-btn);}

/* ---- επιλογή ακροατηρίου ("Ποιος άλλος το διαβάζει;") */
details.audience,details.supplement{border:1px solid var(--border);border-radius:var(--r);background:var(--surface-2);margin:14px 0 4px;}
details.audience > summary,details.supplement > summary{cursor:pointer;list-style:none;padding:10px 14px;min-height:var(--h-btn);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-radius:var(--r);}
details.audience > summary::-webkit-details-marker,details.supplement > summary::-webkit-details-marker{display:none;}
details.audience > summary::before,details.supplement > summary::before{content:"▸";color:var(--text-soft);margin-right:2px;}
details.audience[open] > summary::before,details.supplement[open] > summary::before{content:"▾";}
details.audience > summary .s-title,details.supplement > summary .s-title{font-weight:600;font-size:var(--fs-md);margin-right:auto;}
details.audience > summary .s-state,details.supplement > summary .s-state{font-size:var(--fs-sm);color:var(--text-soft);}
.audience-body{padding:2px 14px 14px;}
.pick-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2px 14px;margin:8px 0;}
.pick-list label{display:flex;align-items:center;gap:10px;margin:0;padding:6px 6px;min-height:var(--h-btn);color:var(--text);font-size:var(--fs-md);cursor:pointer;border-radius:6px;}
.pick-list label:hover{background:var(--surface);}
.pick-list label.off{opacity:.5;cursor:default;}
.audience-foot{font-size:var(--fs-sm);color:var(--text-soft);margin:6px 0 0;}

/* ---- διαφορές κειμένου */
.diff{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;font-size:var(--fs-sm);line-height:1.6;margin:10px 0;}
.diff div{padding:4px 12px;}
.diff .same{color:var(--text-soft);} .diff .del{background:rgba(229,100,107,.14);color:var(--danger);text-decoration:line-through;}
.diff .add{background:rgba(79,174,124,.14);color:var(--ok);}

/* ---- μηνύματα και επιβεβαιώσεις (admin) */
.confirm{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--danger);}
.notice-region{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:50;display:flex;flex-direction:column;
  gap:8px;align-items:center;max-width:min(92vw,720px);pointer-events:none;}
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:var(--r-lg);
  border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:var(--fs-sm);
  box-shadow:0 6px 24px rgba(0,0,0,.35);animation:toast-in .18s ease-out;}
.toast.ok{border-color:var(--ok);}
.toast.err{border-color:var(--danger);color:var(--danger);}
@keyframes toast-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.busy{opacity:.6;}
@media (prefers-reduced-motion:reduce){.toast{animation:none;}*{scroll-behavior:auto !important;transition:none !important;}}

/* ---- μικρές οθόνες */
/* ---- μενού λογαριασμού (κύκλος με τα αρχικά, τέρμα δεξιά) και κυκλάκι με αριθμό ---- */
.user-menu-wrap{position:relative;flex:none;margin-left:auto;}
.avatar-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--h-btn);height:var(--h-btn);padding:0;border-radius:50%;
  border:1px solid var(--field-border);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-sm);font-weight:700;cursor:pointer;font-family:inherit;}
.avatar-btn:hover,.avatar-btn[aria-expanded="true"]{border-color:var(--accent);}
.user-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:max-content;min-width:260px;max-width:min(400px,calc(100vw - 32px));box-sizing:border-box;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px;box-shadow:0 8px 24px rgba(0,0,0,.45);}
.user-menu[hidden]{display:none;}
.um-head{padding:2px 4px 12px;margin-bottom:10px;border-bottom:1px solid var(--border);}
.um-email{font-size:var(--fs-md);font-weight:600;color:var(--text);overflow-wrap:anywhere;}
.um-meta{margin-top:2px;font-size:var(--fs-sm);color:var(--text-soft);}
.um-item{width:100%;justify-content:flex-start;}
.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;box-sizing:border-box;
  background:var(--accent);color:var(--on-accent);font-size:var(--fs-xs);font-weight:700;line-height:1;}
.tab .count-badge{margin-left:8px;}
.btn.secondary .count-badge{margin-left:2px;}
/* ---- γραμμή πλοήγησης: μεγεθυντικός φακός στο «Αναζήτηση» (μονόχρωμος γκρι) και τονισμένη η τρέχουσα περιοχή ---- */
.nav-ico{width:18px;height:18px;flex:none;color:var(--text-soft);}
.btn.secondary.nav-current{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);}
a.btn.secondary.nav-current:hover{color:var(--accent);}

/* Το κείμενο άρθρου (.prose) και ο επεξεργαστής (.rte, γραμμή εργαλείων) μετακόμισαν στο public/idmon-editor.css (κοινό με τον editor του SMB). */

/* ---- άδειες οθόνες και «Ξεκίνα εδώ»: κάθε άδεια οθόνη λέει τι είναι, γιατί είναι άδεια και τι να πατήσεις */
.emptybox{border:1px dashed var(--field-border);border-radius:var(--r-lg);padding:18px 16px;text-align:center;margin:10px 0;}
.emptybox p{margin:0 0 12px;color:var(--text-soft);font-size:var(--fs-md);line-height:1.55;}
.start{border-color:var(--accent);background:var(--accent-soft);}
.start h2{font-size:var(--fs-lg);}
.step{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--border);}
.step .n{width:32px;height:32px;border-radius:50%;background:var(--surface-2);border:1px solid var(--field-border);display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex:none;}
.step.done .n{background:var(--ok);border-color:var(--ok);color:var(--on-accent);}
.step .txt{flex:1;min-width:200px;}
.step .txt strong{display:block;font-size:var(--fs-md);}
.step .txt span{font-size:var(--fs-sm);color:var(--text-soft);}
.step.done .txt strong{text-decoration:line-through;color:var(--text-soft);}

/* ---- μικρές οθόνες: τα κουμπιά της κορυφής πιάνουν όλο το πλάτος και είναι εύκολο να πατηθούν με τον αντίχειρα */
@media (max-width:560px){
  .topbar{align-items:stretch;}
  .topnav{width:100%;}
  .topnav .btn{flex:1 1 auto;padding-left:12px;padding-right:12px;}
  .user-menu{min-width:0;width:calc(100vw - 32px);}
  .actions .btn,.controls .btn{flex:1 1 auto;}
  .form-actions{display:grid;grid-template-columns:1fr;gap:10px;}
  .form-actions > .btn{width:100%;}
  .actions-secondary{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .actions-secondary .btn{min-width:0;padding:8px 10px;font-size:var(--fs-sm);}

  .tab{flex:1 1 auto;}
}

/* ---- κομμάτια άρθρου (σελίδα άρθρου και overlay): στοιχεία, εκκρεμή συμπληρώματα, περιεχόμενα, απλό κείμενο ---- */
.facts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 16px;font-size:var(--fs-sm);color:var(--text-soft);}
.pending-box{margin:0 0 18px;padding:12px 14px;border:1px dashed var(--warn-border);border-radius:var(--r);background:var(--warn-bg);}
.pending-box .label{margin:0 0 6px;font-size:var(--fs-sm);font-weight:600;color:var(--warn-border);}
.pending-box .item{margin-top:4px;font-size:var(--fs-sm);line-height:1.6;white-space:pre-wrap;}
.toc{margin:0 0 22px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);}
.toc h2{font-size:var(--fs-md);margin:0 0 10px;}
.toc-list{display:flex;flex-direction:column;gap:6px;}
.toc-item{justify-content:flex-start;text-align:left;width:100%;}
.toc-item.l3{width:calc(100% - 24px);margin-left:24px;}
.raw-text{white-space:pre-wrap;word-wrap:break-word;font-size:var(--fs-md);line-height:1.7;}

/* ---- άρθρο σε «οθόνη πάνω στην οθόνη» (overlay): στον υπολογιστή κεντραρισμένο φύλλο, στο κινητό ολόκληρη η οθόνη. Κυλά ΜΟΝΟ το κείμενο: η επικεφαλίδα με το «Κλείσιμο» μένει πάντα ορατή ---- */
html.av-open,html.av-open body{overflow:hidden;}
.av-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:rgba(0,0,0,.62);display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;}
.av-panel{display:flex;flex-direction:column;width:100%;max-width:860px;max-height:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.5);}
.av-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);flex:none;}
.av-title{margin:0;font-size:var(--fs-lg);font-weight:600;line-height:1.3;overflow-wrap:anywhere;min-width:0;}
.av-body{padding:16px 20px;overflow-y:auto;flex:1 1 auto;min-height:0;}
.av-foot{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border);flex:none;}
.av-foot:empty{display:none;}
@media (max-width:560px){
  .av-layer{padding:0;}
  .av-panel{max-width:none;height:100%;max-height:none;border:0;border-radius:0;}
  .av-body{padding:14px 16px;}
  .av-foot .btn{flex:1 1 auto;}
}

/* Στατιστικά χρήσης (public/beacon-stats-view.js) */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0;}
.stat-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;}
.stat-num{font-size:var(--fs-md);font-weight:600;}
.stat-label{font-size:var(--fs-sm);color:var(--text-soft);}
.stat-bars{display:flex;align-items:flex-end;gap:2px;height:56px;margin:6px 0 12px;}
.stat-bar{flex:1;min-width:2px;background:var(--accent);border-radius:2px 2px 0 0;}
.stat-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin-top:8px;}
.stat-table th,.stat-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top;}
.stat-tag{display:inline-block;border:1px solid var(--border);border-radius:var(--r);padding:0 6px;color:var(--text-soft);}
