:root{
  --bg:#f6f7f9; --card:#fff; --ink:#1f2733; --muted:#6b7686; --line:#e5e8ec;
  --accent:#1f4e78; --accent2:#2e7d32; --warn:#b3541e;
}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

.topbar{background:var(--accent);color:#fff;padding:14px 18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.topbar h1{font-size:18px;margin:0;font-weight:600}
.topbar .meta{color:#dbe6f2;font-size:13px;margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.topbar .back{color:#fff;font-weight:600}
/* Χωρίς αυτό τα links της μπάρας παίρνουν το γενικό a{color:var(--accent)} —
   που είναι ΤΟ ΙΔΙΟ χρώμα με το φόντο της μπάρας, άρα γίνονται αόρατα.
   Το :not(.badge) εξαιρεί τα badges ενοτήτων του view.php, που έχουν ανοιχτό
   φόντο και δικό τους χρώμα — αλλιώς θα γίνονταν λευκά πάνω σε λευκό. */
.topbar .meta a:not(.badge){color:#fff;font-weight:600;border:1px solid rgba(255,255,255,.55);
  padding:3px 10px;border-radius:999px;white-space:nowrap}
.topbar .meta a:not(.badge):hover{background:rgba(255,255,255,.18);text-decoration:none}

.controls{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:12px 18px;background:var(--card);border-bottom:1px solid var(--line)}
.controls select,.controls input[type=search]{padding:6px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}
.controls .chk{color:var(--muted);font-size:14px;display:flex;align-items:center;gap:6px}

main{padding:16px 18px;max-width:960px;margin:0 auto}
.unit{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:0 0 16px;overflow:hidden}
.unit h2{margin:0;padding:12px 16px;font-size:16px;background:#eef3f8;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.unit h2 .ucode{background:var(--accent);color:#fff;border-radius:6px;padding:1px 8px;font-size:14px}
.unit h2 .count{margin-left:auto;color:var(--muted);font-size:13px;font-weight:400}

.themes{list-style:none;margin:0;padding:6px}
.theme{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px}
.theme:hover{background:#f2f6fa}
.theme .code{font-variant-numeric:tabular-nums;font-weight:600;font-size:15px}
.theme.is-seen{opacity:.55}
.theme.is-seen .code{text-decoration:line-through}
body.hide-seen .theme.is-seen{display:none!important}

.badge{font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.badge.th2{background:#eaf2fb;color:#1f4e78;border-color:#cfe0f3}
.badge.th4{background:#fdeede;color:#8a4b12;border-color:#f2d6b3}
.badge.th1,.badge.th3{background:#eee;color:#555}
.badge.multi{background:#eef7ee;color:#2e7d32;border-color:#cfe6cf}
.badge.warn{background:#fbeaea;color:#a23}
.badge.soft{background:#f3f0fa;color:#6a4fb3}
.badge.unitlink{background:#eef3f8;color:var(--accent)}

.empty{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;color:var(--muted)}

/* viewer */
body.viewer{display:flex;flex-direction:column;height:100vh}
.tabs{display:flex;align-items:center;gap:8px;padding:8px 18px;background:var(--card);border-bottom:1px solid var(--line)}
.tab{font:inherit;border:1px solid var(--line);background:#fff;padding:6px 16px;border-radius:8px;cursor:pointer}
.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.tab:disabled{opacity:.5;cursor:not-allowed}
.tabs .spacer{flex:1}
.tabs .nav{padding:6px 10px}
/* το PDF πιάνει όλο το πλάτος/ύψος — χωρίς το max-width του γενικού main */
.frames{flex:1;min-height:0;width:100%;max-width:none;margin:0;padding:0;background:#525659}
.pdf{width:100%;height:100%;border:0;display:block}
.pdf.hidden{display:none}
