:root{
  --b50:#E6F1FB;--b100:#B5D4F4;--b600:#185FA5;--b800:#0C447C;--b900:#042C53;
  --r50:#FCEBEB;--r100:#F7C1C1;--r400:#E24B4A;--r600:#A32D2D;--r800:#791F1F;
  --a50:#FAEEDA;--a600:#854F0B;
  --g50:#EAF3DE;--g600:#3B6D11;--g800:#27500A;
  --gr50:#F1EFE8;--gr100:#D3D1C7;--gr400:#888780;--gr600:#5F5E5A;--gr800:#444441;
  --p50:#EEEDFE;--p600:#534AB7;
  --rad:10px;--radl:16px;
  --f:'Segoe UI',system-ui,sans-serif;
  --shadow-sm:0 1px 3px rgba(4,44,83,.06),0 1px 2px rgba(4,44,83,.08);
  --shadow-md:0 4px 12px rgba(4,44,83,.08),0 2px 4px rgba(4,44,83,.06);
  --shadow-lift:0 8px 20px rgba(4,44,83,.12),0 3px 6px rgba(4,44,83,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--f);background:#eef1f5;color:#1a1a2e;min-height:100vh;font-size:15px}
.tb{background:var(--b900);color:#fff;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:60px;position:sticky;top:0;z-index:100;flex-shrink:0}
.tb-t{font-size:16px;font-weight:600}.tb-s{font-size:12px;opacity:.65}
.tb-r{display:flex;align-items:center;gap:12px}
.role-badge{font-size:12px;background:rgba(255,255,255,.15);padding:3px 10px;border-radius:20px}
.btn-out{background:none;border:1px solid rgba(255,255,255,.3);color:#fff;padding:6px 13px;border-radius:var(--rad);font-size:13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:background .15s}
.btn-out:hover{background:rgba(255,255,255,.15)}

/* ── Κεντρικό περιεχόμενο: 80-90% πλάτους οθόνης, κεντραρισμένο ── */
.cnt{flex:1;padding:1.5rem;max-width:1600px;width:88%;margin:0 auto}

.card{background:#fff;border-radius:var(--radl);border:1px solid #e6e6e0;padding:1.5rem;margin-bottom:1rem;box-shadow:var(--shadow-sm);transition:box-shadow .15s}
.card:hover{box-shadow:var(--shadow-md)}
.card-t{font-size:16px;font-weight:600;color:var(--b800);margin-bottom:1rem}
label{font-size:13px;color:var(--gr600);display:block;margin-bottom:4px;margin-top:12px;font-weight:500}
label:first-child{margin-top:0}
select,input[type=text],input[type=password],input[type=email],input[type=date],input[type=number],textarea{width:100%;padding:10px 13px;border:1px solid #ccc;border-radius:var(--rad);font-size:14px;font-family:var(--f);background:#fff;color:#1a1a2e;transition:border-color .15s}
select:focus,input:focus{outline:2px solid var(--b600);outline-offset:1px;border-color:transparent}
.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--rad);font-size:14px;font-weight:600;cursor:pointer;border:none;transition:opacity .15s,box-shadow .15s,transform .1s;text-decoration:none}
.btn:hover{opacity:.9;box-shadow:var(--shadow-sm)}.btn:active{opacity:.78;transform:scale(.98)}
.btn-p{background:var(--b600);color:#fff}
.btn-s{background:var(--g600);color:#fff}
.btn-n{background:var(--gr100);color:var(--gr800);border:1px solid #ccc}
.btn-sm{padding:6px 13px;font-size:13px}
.btn-f{width:100%;justify-content:center}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;padding:10px 12px;font-size:12px;font-weight:600;color:var(--gr600);border-bottom:1px solid #eee;background:var(--gr50);text-transform:uppercase;letter-spacing:.03em}
td{padding:10px 12px;border-bottom:1px solid #eee;vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:#fafbfc}
.over-row td:first-child{border-left:3px solid var(--r400)}
.alert{padding:11px 15px;border-radius:var(--rad);font-size:13px;margin-bottom:1rem}
.ai{background:var(--b50);color:var(--b800);border:1px solid var(--b100)}
.ad{background:var(--r50);color:var(--r800);border:1px solid var(--r100)}
.as{background:var(--g50);color:var(--g800);border:1px solid #c0dd97}
.aw{background:var(--a50);color:var(--a600);border:1px solid #fac775}
.badge{display:inline-block;font-size:12px;font-weight:600;padding:3px 9px;border-radius:20px}
.bok{background:var(--g50);color:var(--g600)}
.bover{background:var(--r50);color:var(--r600)}
.bjust{background:var(--p50);color:var(--p600)}
.tr-row{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #eee}
.tr-row:last-child{border-bottom:none}
.tr-name{flex:1;font-size:14px}
.tr-ctrls{display:flex;align-items:center;gap:11px}
.cb-abs input[type=checkbox]{width:20px;height:20px;accent-color:var(--r400);cursor:pointer}
.cb-just input[type=checkbox]{width:20px;height:20px;accent-color:var(--p600);cursor:pointer}
.cb-lbl{font-size:11px;color:var(--gr600);text-align:center}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--b900),var(--b800))}
.login-card{background:#fff;border-radius:var(--radl);padding:2.25rem;width:100%;max-width:400px;box-shadow:var(--shadow-lift)}
.login-logo{text-align:center;margin-bottom:1.4rem}
.logo-icon{width:52px;height:52px;background:var(--b900);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:700;margin-bottom:.5rem}
.login-logo h1{font-size:19px;color:var(--b900);font-weight:700}
.login-logo p{font-size:12px;color:var(--gr600);margin-top:3px}

/* ── Admin/Εκπαιδευτής layout: κάθετο μενού + περιεχόμενο 80-90% πλάτους ── */
.adm-layout{display:flex;min-height:100vh}
.sidebar{width:250px;background:var(--b900);color:#fff;display:flex;flex-direction:column;flex-shrink:0}
.sb-logo{padding:1.25rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.1)}
.sb-logo h2{font-size:15px;font-weight:700;line-height:1.4}
.sb-logo p{font-size:11px;opacity:.6;margin-top:3px}
.sb-nav{flex:1;padding:.5rem 0}
.sb-nav a{display:flex;align-items:center;gap:10px;padding:12px 1.1rem;font-size:14px;color:rgba(255,255,255,.75);cursor:pointer;border-left:3px solid transparent;text-decoration:none;transition:background .15s,color .15s}
.sb-nav a:hover,.sb-nav a.act{background:rgba(255,255,255,.1);color:#fff}
.sb-nav a.act{border-left-color:#B5D4F4}
.ns{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:rgba(255,255,255,.35);padding:14px 1.1rem 4px}
.sb-foot{padding:1rem 1.1rem;border-top:1px solid rgba(255,255,255,.1);font-size:12px;opacity:.6;line-height:1.6}
.main{flex:1;overflow:auto;background:#eef1f5}
.main-c{max-width:1600px;width:90%;margin:0 auto;padding:1.75rem}
.ph{margin-bottom:1.5rem}
.ph h1{font-size:24px;font-weight:700;color:var(--b900)}
.ph p{font-size:13px;color:var(--gr600);margin-top:4px}
.sg{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:1.25rem}
.sc{background:#fff;border-radius:var(--rad);padding:1.1rem;text-align:center;box-shadow:var(--shadow-sm)}
.sn{font-size:28px;font-weight:700;color:var(--b800)}
.sl{font-size:12px;color:var(--gr600);margin-top:3px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modal-ov{position:fixed;inset:0;background:rgba(4,44,83,.45);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}
.modal-b{background:#fff;border-radius:var(--radl);padding:1.6rem;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lift)}
.modal-t{font-size:17px;font-weight:700;margin-bottom:1rem;color:var(--b900)}
.modal-a{display:flex;gap:8px;justify-content:flex-end;margin-top:1.1rem}
.imp-z{border:1.5px dashed #ccc;border-radius:var(--rad);padding:1.5rem;text-align:center;color:var(--gr400);cursor:pointer;font-size:13px}
.ts{font-size:11px;color:var(--gr400)}
.locked{display:inline-flex;align-items:center;gap:3px;font-size:11px;background:var(--gr50);color:var(--gr600);padding:3px 8px;border-radius:20px;border:1px solid #ddd}
.pw{background:#eee;border-radius:4px;height:6px;overflow:hidden;margin-top:4px}
.pb{height:100%;border-radius:4px}
[title]:not(select):not(input){position:relative}
[title]:not(select):not(input):hover::after{content:attr(title);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:#1a1a2e;color:#fff;font-size:12px;padding:5px 9px;border-radius:6px;white-space:nowrap;z-index:999;pointer-events:none}
[title]:not(select):not(input):hover::before{content:'';position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:#1a1a2e;z-index:999}
input[type=file]{font-size:13px;padding:5px}
code{background:var(--gr50);padding:2px 6px;border-radius:5px;font-size:12px}
@media(max-width:640px){.grid2{grid-template-columns:1fr}.sidebar{display:none}.adm-layout{display:block}.main-c{padding:1rem;width:100%}.cnt{width:100%;padding:1rem}}
