:root{
  --bg:#0e1220; --bg2:#151b30; --card:#ffffff; --ink:#141a2b; --ink2:#5a6480;
  --line:#e5e8f0; --brand:#4f46e5; --brand2:#7c3aed; --accent:#06b6d4;
  --ok:#10b981; --warn:#f59e0b; --pink:#ec4899;
  --r:#f97316; --i:#3b82f6; --a:#ec4899; --s:#10b981; --e:#ef4444; --c:#8b5cf6;
  --radius:20px; --shadow:0 20px 60px rgba(10,15,40,.18);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  background:radial-gradient(1200px 700px at 15% -5%,#2a2160 0%,transparent 55%),
             radial-gradient(1000px 600px at 95% 5%,#0b4f63 0%,transparent 50%),
             linear-gradient(160deg,var(--bg) 0%,var(--bg2) 100%);
  background-attachment:fixed; color:var(--ink); min-height:100vh;
  display:flex; flex-direction:column; align-items:center; padding:24px 16px 60px;
}
.wrap{width:100%;max-width:820px}
.screen{display:none;animation:fade .45s ease}
.screen.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- INTRO ---------- */
.hero{background:var(--card);border-radius:var(--radius);padding:38px 34px;box-shadow:var(--shadow)}
.badge{display:inline-block;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;
  font-size:12px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;padding:7px 14px;border-radius:99px}
h1{font-size:clamp(26px,4.4vw,38px);line-height:1.18;margin:18px 0 10px;letter-spacing:-.6px}
h2{font-size:22px;margin:0 0 14px;letter-spacing:-.3px}
h3{font-size:16px;margin:0 0 8px}
.lead{color:var(--ink2);font-size:16.5px;line-height:1.65;margin:0 0 22px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:22px 0 26px}
.fact{background:#f6f7fc;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.fact b{display:block;font-size:20px;color:var(--brand)}
.fact span{font-size:12.5px;color:var(--ink2)}
label.fld{display:block;font-size:13px;font-weight:700;color:var(--ink2);margin:0 0 7px;letter-spacing:.2px}
input[type=text]{width:100%;padding:14px 16px;border:2px solid var(--line);border-radius:13px;font-size:16px;
  font-family:inherit;outline:none;transition:.2s;background:#fbfcff}
input[type=text]:focus{border-color:var(--brand);background:#fff}
.grades{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.grade{flex:1;min-width:120px;padding:14px;border:2px solid var(--line);border-radius:13px;background:#fbfcff;
  cursor:pointer;font-size:15px;font-weight:600;text-align:center;transition:.18s;font-family:inherit;color:var(--ink)}
.grade:hover{border-color:#c9cff0}
.grade.sel{border-color:var(--brand);background:#eef0ff;color:var(--brand)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}
@media(max-width:600px){.row2{grid-template-columns:1fr}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;border:none;padding:16px 30px;border-radius:14px;font-size:16.5px;font-weight:700;cursor:pointer;
  font-family:inherit;box-shadow:0 10px 26px rgba(79,70,229,.35);transition:.2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(79,70,229,.42)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn.ghost{background:#fff;color:var(--ink2);border:2px solid var(--line);box-shadow:none}
.btn.ghost:hover{border-color:#c9cff0;transform:none}
.btn.sm{padding:11px 20px;font-size:14px}
.note{font-size:12.5px;color:var(--ink2);margin-top:16px;line-height:1.6}

/* ---------- QUIZ ---------- */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;color:#cfd6ff;font-size:13.5px;font-weight:600}
.bar{height:9px;background:rgba(255,255,255,.14);border-radius:99px;overflow:hidden;margin-bottom:22px}
.bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--brand2));transition:width .4s cubic-bezier(.4,0,.2,1)}
.card{background:var(--card);border-radius:24px;padding:34px 32px;box-shadow:var(--shadow);animation:pop .38s cubic-bezier(.34,1.3,.64,1)}
@keyframes pop{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
.sect{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
  color:var(--brand);background:#eef0ff;padding:6px 12px;border-radius:99px;margin-bottom:18px}
.qtext{font-size:clamp(19px,2.9vw,25px);line-height:1.42;font-weight:600;letter-spacing:-.3px;margin:0 0 28px;min-height:76px}
.opts{display:flex;flex-direction:column;gap:9px}
.opt{display:flex;align-items:center;gap:14px;padding:15px 18px;border:2px solid var(--line);border-radius:14px;
  background:#fbfcff;cursor:pointer;font-size:15.5px;font-family:inherit;text-align:left;transition:.16s;color:var(--ink);width:100%}
.opt:hover{border-color:#c3caf5;background:#f4f6ff;transform:translateX(3px)}
.opt.sel{border-color:var(--brand);background:#eef0ff}
.dot{width:26px;height:26px;border-radius:50%;border:2px solid #cdd3e8;flex:none;display:flex;align-items:center;
  justify-content:center;font-size:12px;font-weight:800;color:var(--ink2);transition:.16s}
.opt.sel .dot{background:var(--brand);border-color:var(--brand);color:#fff}
.nav{display:flex;justify-content:space-between;align-items:center;margin-top:26px;gap:12px}
.kbd{font-size:12px;color:var(--ink2)}
.kbd b{background:#f0f2fa;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-family:ui-monospace,monospace}

/* ---------- RESULTS ---------- */
.res{background:var(--card);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow);margin-bottom:20px}
.code{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 8px}
.chip{padding:11px 18px;border-radius:14px;color:#fff;font-weight:800;font-size:15px;box-shadow:0 6px 18px rgba(0,0,0,.14)}
.split{display:grid;grid-template-columns:300px 1fr;gap:28px;align-items:center}
@media(max-width:700px){.split{grid-template-columns:1fr}}
.rbars{display:flex;flex-direction:column;gap:11px}
.rbar{display:grid;grid-template-columns:118px 1fr 44px;align-items:center;gap:10px;font-size:13.5px}
.rbar .t{font-weight:700}
.track{height:11px;background:#eef0f6;border-radius:99px;overflow:hidden}
.track i{display:block;height:100%;border-radius:99px;width:0;transition:width .9s cubic-bezier(.4,0,.2,1)}
.rbar .v{text-align:right;font-weight:800;color:var(--ink2);font-size:12.5px}
.pill{display:inline-block;background:#eef0ff;color:var(--brand);font-size:12px;font-weight:800;padding:5px 11px;border-radius:99px;letter-spacing:.4px}
.win{border:2px solid var(--brand);background:linear-gradient(135deg,#f7f8ff,#fff);border-radius:18px;padding:22px 24px;margin:16px 0}
.win .pill{background:var(--brand);color:#fff}
.opt2{border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin-bottom:12px;background:#fbfcff}
.opt2 .hd{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}
.score{font-weight:800;color:var(--brand);font-size:15px;white-space:nowrap}
.muted{color:var(--ink2);font-size:14.2px;line-height:1.62;margin:0}
ul.clean{margin:10px 0 0;padding-left:20px;color:var(--ink2);font-size:14.2px;line-height:1.85}
.jobs{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:6px}
.job{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fbfcff}
.job b{display:block;font-size:15px;margin-bottom:4px}
.job span{font-size:12.4px;color:var(--ink2)}
.job .m{float:right;font-size:12px;font-weight:800;color:var(--ok)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.tag{background:#f0f2fa;border:1px solid var(--line);border-radius:99px;padding:6px 13px;font-size:12.8px;color:var(--ink2);font-weight:600}
canvas{max-width:100%;height:auto}
.actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.disc{color:#aab3d6;font-size:12.5px;text-align:center;line-height:1.7;max-width:680px;margin:22px auto 0}
.foot{color:#8e97bd;font-size:12px;text-align:center;margin-top:26px}
@media print{
  body{background:#fff;padding:0}
  .noprint{display:none!important}
  .res{box-shadow:none;border:1px solid #ddd;page-break-inside:avoid;margin-bottom:14px}
}

/* ==========================================================================
   RESPONSIVE - mobile first fixes
   ========================================================================== */
html{-webkit-text-size-adjust:100%}
img,svg{max-width:100%}
.tag,.job,.opt2,.muted{overflow-wrap:anywhere}
.brand-logo{display:grid;place-items:center;border-radius:12px;
  background:linear-gradient(135deg,var(--brand),var(--accent));flex:none}
.brand-logo img{width:70%;height:70%;display:block}
.brand-row{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.brand-row .nm{font-size:23px;font-weight:800;letter-spacing:-.6px}

@media(max-width:760px){
  .split{grid-template-columns:1fr;gap:20px}
  .jobs{grid-template-columns:1fr}
}
@media(max-width:560px){
  body{padding:14px 12px 46px}
  .hero{padding:24px 20px;border-radius:18px}
  .card{padding:22px 18px;border-radius:18px}
  .res{padding:22px 18px;border-radius:18px}
  h1{font-size:25px;line-height:1.24}
  h2{font-size:19px}
  .lead{font-size:15.4px}
  .brand-row .nm{font-size:20px}
  .facts{grid-template-columns:1fr 1fr;gap:9px;margin:18px 0 20px}
  .fact{padding:11px 13px}
  .fact b{font-size:18px}
  .fact span{font-size:11.6px}
  .qtext{font-size:19.5px;min-height:0;margin-bottom:20px}
  .sect{margin-bottom:14px;font-size:10.6px}
  .opt{padding:13px 14px;font-size:14.8px;gap:12px}
  .opt:hover{transform:none;background:#fbfcff;border-color:var(--line)}
  .dot{width:24px;height:24px;font-size:11.5px}
  .btn{padding:14px 22px;font-size:15.5px}
  #start{width:100%}
  .actions{flex-direction:column;align-items:stretch}
  .actions .btn{width:100%}
  .chip{font-size:13.4px;padding:9px 14px}
  .code{gap:8px}
  /* μπάρες: ετικέτα πάνω, μπάρα από κάτω σε όλο το πλάτος */
  .rbar{grid-template-columns:1fr 42px;row-gap:5px;margin-bottom:5px}
  .rbar .t{grid-column:1;grid-row:1;font-size:13px}
  .rbar .v{grid-column:2;grid-row:1;text-align:right}
  .rbar .track{grid-column:1/3;grid-row:2}
  .win{padding:18px 16px}
  ul.clean{padding-left:18px;font-size:13.8px}
  .nav{flex-direction:row}
  .kbd{display:none}
}
@media(max-width:380px){
  .facts{grid-template-columns:1fr}
  .qtext{font-size:18px}
  .opt{font-size:14.2px}
}
/* συσκευές αφής: χωρίς hover εφέ που «κολλάνε» */
@media(hover:none){
  .opt:hover{transform:none}
  .btn:hover{transform:none;box-shadow:0 10px 26px rgba(79,70,229,.35)}
}

/* μήνυμα ελλιπών στοιχείων στην αρχική φόρμα */
.formerr{display:none;background:#fdecef;color:#c2185b;border:1px solid #f8d0da;border-radius:11px;
  padding:11px 15px;font-size:14px;font-weight:600;margin:0 0 14px;animation:fade .25s}
.grades .grade:focus-visible,input[type=text]:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
