/* ==========================================================================
   EduTutor — arkusz stylów (responsywny, mobile-first)
   ========================================================================== */
:root{
  --bg:#f6f7fb; --surface:#ffffff; --surface-2:#f1f3f9;
  --text:#1f2430; --muted:#6b7280; --line:#e6e8ef;
  --brand:#4f46e5; --brand-2:#7c3aed; --brand-ink:#ffffff;
  --accent:#06b6d4; --ok:#16a34a; --warn:#d97706; --err:#dc2626;
  --radius:16px; --radius-sm:10px; --shadow:0 10px 30px rgba(30,32,60,.10);
  --shadow-sm:0 2px 8px rgba(30,32,60,.08);
  --grad:linear-gradient(135deg,#4f46e5 0%,#7c3aed 55%,#06b6d4 120%);
  --maxw:1120px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:var(--bg); color:var(--text); line-height:1.6; font-size:16px;
}
a{color:var(--brand); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%; display:block}
.wrap{width:100%; max-width:var(--maxw); margin:0 auto; padding:0 20px}
.muted{color:var(--muted)}
.small{font-size:.85rem}
h1,h2,h3{line-height:1.2; margin:0 0 .5em}

/* ── Header / nav ─────────────────────────────────────────────────────── */
.site-header{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid var(--line)}
.header-inner{display:flex; align-items:center; gap:16px; height:64px}
.brand{display:flex; align-items:center; gap:10px; font-weight:800; color:var(--text)}
.brand:hover{text-decoration:none}
.brand-logo{font-size:1.4rem}
.brand-name{font-size:1.1rem; letter-spacing:-.02em}
.main-nav{margin-left:auto; display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.main-nav a{padding:8px 12px; border-radius:10px; color:var(--text); font-weight:500}
.main-nav a:hover{background:var(--surface-2); text-decoration:none}
.nav-cta{background:var(--grad); color:#fff !important}
.nav-cta:hover{opacity:.92}
.nav-admin{color:var(--brand-2) !important; font-weight:600}
.nav-muted{color:var(--muted) !important}
.nav-toggle{display:none; margin-left:auto; font-size:1.4rem; background:none; border:0; cursor:pointer}

/* ── Hero ─────────────────────────────────────────────────────────────── */
.hero{position:relative; color:#fff; background:var(--grad); overflow:hidden}
.hero::after{content:""; position:absolute; inset:0;
  background:radial-gradient(600px 300px at 80% -10%, rgba(255,255,255,.25), transparent 60%)}
.hero-inner{position:relative; z-index:1; padding:72px 0 84px; display:grid;
  grid-template-columns:1.15fr .85fr; gap:40px; align-items:center}
.hero h1{font-size:clamp(2rem,4.5vw,3.2rem); font-weight:800; letter-spacing:-.03em}
.hero p.lead{font-size:1.15rem; opacity:.95; max-width:46ch}
.hero .cta-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:24px}
.hero-card{background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.25);
  border-radius:var(--radius); padding:22px; backdrop-filter:blur(6px)}
.hero-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:8px}
.hero-stats .stat{background:rgba(255,255,255,.12); border-radius:12px; padding:14px; text-align:center}
.hero-stats .num{font-size:1.6rem; font-weight:800}

/* ── Buttons ──────────────────────────────────────────────────────────── */
.btn{display:inline-flex; align-items:center; gap:8px; padding:12px 20px; border-radius:12px;
  font-weight:600; border:1px solid transparent; cursor:pointer; font-size:1rem; transition:.15s}
.btn:hover{text-decoration:none; transform:translateY(-1px)}
.btn-primary{background:var(--grad); color:#fff}
.btn-light{background:#fff; color:var(--brand)}
.btn-ghost{background:transparent; color:#fff; border-color:rgba(255,255,255,.55)}
.btn-outline{background:#fff; color:var(--text); border-color:var(--line)}
.btn-outline:hover{border-color:var(--brand); color:var(--brand)}
.btn-block{width:100%; justify-content:center}
.btn-sm{padding:8px 14px; font-size:.9rem}

/* ── Sections / cards ─────────────────────────────────────────────────── */
.section{padding:56px 0}
.section-title{text-align:center; margin-bottom:8px; font-size:clamp(1.5rem,3vw,2.2rem)}
.section-sub{text-align:center; color:var(--muted); max-width:60ch; margin:0 auto 36px}
.grid{display:grid; gap:20px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px; box-shadow:var(--shadow-sm)}
.card:hover{box-shadow:var(--shadow)}
.card .ico{font-size:1.8rem}
.card h3{margin:.4em 0 .3em; font-size:1.15rem}
.feature{display:flex; flex-direction:column; gap:6px}
.pill{display:inline-block; padding:3px 10px; border-radius:999px; background:var(--surface-2);
  color:var(--brand); font-size:.78rem; font-weight:600}

/* ── Articles ─────────────────────────────────────────────────────────── */
.article-card{display:flex; flex-direction:column; overflow:hidden; padding:0}
.article-card .body{padding:20px}
.article-card .cover{height:150px; background:var(--grad); display:flex; align-items:center;
  justify-content:center; font-size:3rem}
.prose{max-width:76ch; margin:0 auto}
.prose h2{margin-top:1.4em}
.prose p{margin:.8em 0}
.prose ul{margin:.6em 0 .6em 1.2em}

/* ── Forms / auth ─────────────────────────────────────────────────────── */
.auth-wrap{min-height:calc(100vh - 64px); display:grid; place-items:center; padding:32px 16px}
.auth-card{width:100%; max-width:420px; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); padding:30px; box-shadow:var(--shadow)}
.auth-card h1{font-size:1.5rem}
.field{margin:14px 0}
.field label{display:block; font-weight:600; margin-bottom:6px; font-size:.92rem}
.input{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:12px;
  font-size:1rem; background:#fff; font-family:inherit}
.input:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(79,70,229,.15)}
.check{display:flex; align-items:center; gap:8px; font-size:.92rem; color:var(--muted)}
.form-foot{margin-top:16px; text-align:center; color:var(--muted); font-size:.92rem}

/* ── Flash ────────────────────────────────────────────────────────────── */
.flash{padding:12px 0; color:#fff; font-weight:500}
.flash .wrap{padding:0 20px}
.flash-info{background:var(--brand)}
.flash-success{background:var(--ok)}
.flash-error{background:var(--err)}
.flash-warn{background:var(--warn)}

/* ── Panel / learning ────────────────────────────────────────────────── */
.panel-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:18px}
.stat-tile{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px}
.stat-tile .num{font-size:2rem; font-weight:800; color:var(--brand)}
.tag{display:inline-block; padding:2px 8px; border-radius:8px; background:var(--surface-2);
  font-size:.75rem; font-weight:600; color:var(--muted)}

/* ── Flashcard ────────────────────────────────────────────────────────── */
.flashcard{max-width:520px; margin:24px auto; perspective:1200px}
.fc-inner{position:relative; min-height:260px; border-radius:20px; background:var(--surface);
  border:1px solid var(--line); box-shadow:var(--shadow); display:grid; place-items:center;
  padding:30px; text-align:center; transition:transform .4s; transform-style:preserve-3d; cursor:pointer}
.fc-inner.flipped{transform:rotateY(180deg)}
.fc-face{backface-visibility:hidden; position:absolute; inset:0; display:grid; place-content:center; gap:10px; padding:30px}
.fc-back{transform:rotateY(180deg)}
.fc-word{font-size:2rem; font-weight:800}
.fc-sub{color:var(--muted)}
.speak-btn{border:1px solid var(--line); background:#fff; border-radius:999px; padding:8px 14px;
  cursor:pointer; font-size:.95rem}
.speak-btn:hover{border-color:var(--brand)}

/* ── Tables ───────────────────────────────────────────────────────────── */
.table-wrap{overflow-x:auto}
table.data{width:100%; border-collapse:collapse; background:var(--surface); border-radius:12px; overflow:hidden}
table.data th, table.data td{padding:10px 12px; border-bottom:1px solid var(--line); text-align:left}
table.data th{background:var(--surface-2); font-size:.85rem; text-transform:uppercase; letter-spacing:.03em; color:var(--muted)}

/* ── QR / download ────────────────────────────────────────────────────── */
.qr-box{display:flex; gap:28px; align-items:center; flex-wrap:wrap; justify-content:center}
.qr-box .qr{background:#fff; padding:16px; border-radius:16px; border:1px solid var(--line); box-shadow:var(--shadow-sm)}

/* ── Footer ───────────────────────────────────────────────────────────── */
.site-footer{background:#0f1222; color:#c7cbe0; margin-top:64px; padding:40px 0}
.footer-inner{display:grid; grid-template-columns:1.5fr 1fr; gap:24px; align-items:start}
.site-footer a{color:#c7cbe0}
.footer-nav{display:flex; flex-direction:column; gap:8px}
.site-footer .small{grid-column:1/-1; border-top:1px solid #23263b; padding-top:16px; margin-top:8px}

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr; padding:52px 0 60px}
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
  .footer-inner{grid-template-columns:1fr}
}
@media (max-width:640px){
  .nav-toggle{display:block}
  .main-nav{display:none; position:absolute; top:64px; left:0; right:0; flex-direction:column;
    align-items:stretch; background:#fff; border-bottom:1px solid var(--line); padding:10px 16px; gap:2px}
  body.nav-open .main-nav{display:flex}
  .main-nav a{padding:12px}
  .grid-3,.grid-4,.grid-2{grid-template-columns:1fr}
  .section{padding:40px 0}
}
