:root { --ink:#1e2a2a; --muted:#68716c; --paper:#f6f3ed; --card:#fffdf9; --accent:#db5b35; --teal:#287c74; --line:#dfddd5; --yellow:#f3d98d; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; }
button { font:inherit; cursor:pointer; }
[hidden] { display:none !important; }
.page-shell { max-width:1130px; min-height:100vh; margin:auto; padding:0 44px; }
.topbar { height:84px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.brand { color:var(--ink); text-decoration:none; display:flex; align-items:center; gap:9px; font-size:21px; font-weight:700; letter-spacing:-.8px; }.brand-mark { display:grid; place-items:center; color:var(--paper); background:var(--ink); width:27px; height:27px; border-radius:50%; font-family:Fraunces,serif; font-size:21px; }.muted-dot { color:var(--accent); }.streak { font-size:13px; color:var(--muted); }.streak span { color:var(--accent); margin-right:4px; }.streak strong { color:var(--ink); }
.hero { padding:83px 0 61px; max-width:680px; }.eyebrow { margin:0 0 12px; font:500 11px "DM Mono",monospace; letter-spacing:1.35px; color:var(--teal); }.hero h1,.section-heading h2 { font-family:Fraunces,Georgia,serif; font-weight:600; letter-spacing:-2.8px; }.hero h1 { font-size:clamp(50px,7vw,82px); line-height:.98; margin:0; }.hero h1 em { color:var(--accent); font-style:italic; }.hero-copy { max-width:475px; line-height:1.6; color:var(--muted); font-size:17px; margin:23px 0 28px; }.hero-actions { display:flex; gap:23px; align-items:center; }
.primary-button,.secondary-button,.text-button,.reset-button { border:0; background:transparent; transition:.2s ease; }.primary-button { background:var(--ink); border:1px solid var(--ink); color:#fff; padding:13px 17px; border-radius:4px; font-weight:600; }.primary-button span { margin-left:13px; font-size:18px; }.primary-button:hover { background:var(--accent); border-color:var(--accent); transform:translateY(-1px); }.text-button { color:var(--ink); text-decoration:underline; text-decoration-color:#b4b9b4; text-underline-offset:4px; font-size:14px; }.text-button:hover { color:var(--accent); }
.progress-strip { display:grid; grid-template-columns:260px 1fr auto; gap:28px; align-items:center; background:#e9e6de; padding:21px 25px; border-radius:4px; }.progress-strip .eyebrow { margin-bottom:5px; }.progress-copy p:last-child { margin:0; color:var(--muted); font-size:14px; }.progress-copy strong { font-size:22px; color:var(--ink); }.progress-track { height:5px; background:#d3d0c7; border-radius:5px; overflow:hidden; }.progress-track span { display:block; height:100%; width:0; background:var(--teal); transition:width .35s ease; }.reset-button { color:var(--muted); font-size:12px; text-decoration:underline; }.reset-button:hover { color:var(--accent); }
.mode-tabs { display:flex; margin-top:65px; border-bottom:1px solid var(--line); gap:28px; }.mode-tab { padding:0 0 17px; border:0; background:transparent; color:var(--muted); font-weight:600; font-size:14px; position:relative; }.mode-tab span { font:11px "DM Mono",monospace; color:#a3aaa4; margin-right:5px; }.mode-tab.active { color:var(--ink); }.mode-tab.active:after { content:""; position:absolute; bottom:-1px; left:0; right:0; height:2px; background:var(--accent); }
.study-panel { display:none; padding:42px 0 70px; }.study-panel.active { display:block; animation:appear .35s ease; }@keyframes appear { from { opacity:0; transform:translateY(7px) } }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:27px; }.section-heading.compact { margin-bottom:19px; }.section-heading h2 { font-size:34px; line-height:1; margin:0; }.filters { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }.filter { background:transparent; color:var(--muted); border:1px solid #cfcfc8; padding:7px 10px; border-radius:20px; font-size:12px; }.filter.active,.filter:hover { background:var(--ink); border-color:var(--ink); color:white; }.card-counter { display:flex; justify-content:space-between; margin:0 auto 10px; max-width:710px; font:11px "DM Mono",monospace; color:var(--muted); letter-spacing:.4px; }.card-counter span:last-child { color:var(--teal); }
.flashcard { display:block; width:100%; max-width:710px; min-height:310px; margin:auto; border:1px solid #d8d5cc; border-radius:6px; padding:38px 55px; background:var(--card); color:var(--ink); text-align:left; position:relative; box-shadow:0 7px 17px rgba(44,39,24,.035); overflow:hidden; }.flashcard:hover { border-color:#b9b4aa; }.flashcard.is-flipped { background:#e7f0ed; }.card-hint { display:block; color:var(--accent); font:11px "DM Mono",monospace; letter-spacing:1.1px; }.card-face { display:block; max-width:560px; }.card-front { font-family:Fraunces,serif; font-size:clamp(29px,4vw,43px); line-height:1.12; margin-top:47px; }.card-back { display:none; color:#25433f; font-size:20px; line-height:1.55; margin-top:34px; }.is-flipped .card-front,.is-flipped .flip-instruction { display:none; }.is-flipped .card-back { display:block; }.flip-instruction { position:absolute; left:55px; bottom:26px; color:var(--muted); font-size:12px; }.flip-instruction b { color:var(--accent); margin-left:6px; }.card-actions { max-width:710px; margin:17px auto 0; display:flex; justify-content:space-between; align-items:center; min-height:42px; }.secondary-button { color:var(--ink); padding:9px 3px; font-size:13px; }.secondary-button:hover { color:var(--accent); }.recall-actions { display:flex; gap:8px; }.recall-button { border:1px solid; border-radius:3px; padding:8px 12px; font-size:12px; background:transparent; }.hard { color:#99452f; border-color:#d4a79a; }.good { color:var(--teal); border-color:#96bbb5; }.hard:hover { color:white; background:#a44d35; }.good:hover { color:white; background:var(--teal); }
.quiz-progress { display:flex; align-items:center; gap:16px; color:var(--muted); font:12px "DM Mono",monospace; margin-bottom:17px; }.quiz-progress div { width:140px; height:4px; border-radius:2px; background:#dedbd3; overflow:hidden; }.quiz-progress i { display:block; height:100%; width:10%; background:var(--teal); transition:.25s; }.quiz-card,.quiz-result { max-width:710px; padding:37px 43px; border:1px solid #d8d5cc; border-radius:5px; background:var(--card); }.question-topic { color:var(--teal); font:11px "DM Mono",monospace; letter-spacing:1px; margin:0 0 14px; }.quiz-card h3,.quiz-result h3 { font-family:Fraunces,serif; font-size:28px; font-weight:600; letter-spacing:-1px; line-height:1.2; margin:0 0 28px; }.answers { display:grid; gap:9px; }.answer { display:flex; align-items:flex-start; text-align:left; gap:12px; border:1px solid #d9d8d1; border-radius:3px; background:#fffefa; color:var(--ink); padding:13px; line-height:1.42; font-size:14px; }.answer .letter { flex:0 0 22px; height:22px; display:grid; place-items:center; border-radius:50%; background:#eceae3; color:var(--muted); font:11px "DM Mono",monospace; }.answer:hover:not(:disabled) { border-color:var(--teal); background:#f0f7f4; }.answer:disabled { cursor:default; }.answer.correct { border-color:var(--teal); background:#e5f1ed; }.answer.wrong { border-color:#c46a50; background:#fae9e5; }.quiz-feedback { min-height:23px; margin:18px 0 0; font-size:14px; line-height:1.5; }.quiz-feedback.correct { color:#19665d; }.quiz-feedback.wrong { color:#9b402a; }.next-question { margin-top:10px; }.quiz-result { text-align:center; padding:50px; }.result-number { margin:6px 0; color:var(--accent); font:66px Fraunces,serif; letter-spacing:-4px; }.quiz-result h3 { margin-bottom:28px; font-size:27px; }
.pill { font:11px "DM Mono",monospace; color:var(--teal); border:1px solid #a8c7c0; padding:8px 10px; border-radius:20px; }.problems-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }.problem { border:1px solid #d8d5cc; background:var(--card); padding:25px; border-radius:5px; }.problem-number { color:var(--accent); font:11px "DM Mono",monospace; letter-spacing:1px; }.problem h3 { font:600 21px Fraunces,serif; letter-spacing:-.5px; margin:13px 0 12px; }.problem p { color:#58625d; line-height:1.55; font-size:14px; margin:0 0 17px; }.solution { border-top:1px solid var(--line); padding-top:17px; margin-top:16px; color:#24574f; line-height:1.55; font-size:13px; }.solution strong { display:block; color:var(--teal); font:11px "DM Mono",monospace; letter-spacing:1px; margin-bottom:6px; }.show-solution { font-size:13px; color:var(--ink); text-decoration:underline; text-underline-offset:4px; border:0; padding:0; background:transparent; }.show-solution:hover { color:var(--accent); }
.subtle { margin:0; color:var(--muted); font-size:14px; }.summary-list { border-top:1px solid var(--line); }.summary { border-bottom:1px solid var(--line); }.summary-toggle { width:100%; display:flex; align-items:center; gap:18px; text-align:left; padding:22px 5px; color:var(--ink); border:0; background:transparent; }.summary-number { color:var(--accent); font:11px "DM Mono",monospace; }.summary-title { font:600 21px Fraunces,serif; letter-spacing:-.4px; }.summary-arrow { margin-left:auto; color:var(--teal); font-size:20px; transition:.2s; }.summary.open .summary-arrow { transform:rotate(45deg); }.summary-content { display:none; padding:0 35px 25px; max-width:850px; color:#4e5c56; font-size:15px; line-height:1.63; }.summary.open .summary-content { display:block; }.summary-content p { margin:0 0 12px; }.summary-content ul { padding-left:19px; margin:0; }.summary-content li { margin:5px 0; }.formula { font:500 13px "DM Mono",monospace; color:#205d55; background:#e4efeb; padding:2px 5px; border-radius:2px; }
footer { padding:35px 0 45px; color:#858b85; font-size:12px; border-top:1px solid var(--line); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.glossary-heading { align-items:center; }.glossary-search input { width:min(310px,44vw); border:1px solid #cfcfc8; border-radius:4px; background:#fffdf9; color:var(--ink); padding:11px 13px; font:14px "DM Sans",Arial,sans-serif; outline:none; }.glossary-search input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(40,124,116,.12); }.glossary-intro { max-width:670px; margin:0 0 18px; color:var(--muted); line-height:1.55; }.glossary-filters { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:15px; }.glossary-count { margin:0 0 16px; color:var(--teal); font:11px "DM Mono",monospace; letter-spacing:.3px; }.glossary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }.glossary-item { min-height:186px; padding:20px; border:1px solid #d8d5cc; border-radius:5px; background:var(--card); display:flex; flex-direction:column; }.glossary-symbol { margin:0 0 12px; color:var(--accent); font:600 20px "DM Mono",monospace; letter-spacing:-.6px; }.glossary-item h3 { margin:0 0 8px; font:600 19px Fraunces,Georgia,serif; letter-spacing:-.45px; line-height:1.15; }.glossary-item > p:not(.glossary-symbol) { margin:0; color:#58625d; font-size:13px; line-height:1.48; }.glossary-item span { margin-top:auto; padding-top:15px; color:var(--teal); font:10px "DM Mono",monospace; letter-spacing:.5px; text-transform:uppercase; }.glossary-empty { grid-column:1/-1; padding:20px; margin:0; border:1px dashed #cfcfc8; color:var(--muted); }
@media (max-width:700px) { .page-shell{padding:0 21px}.topbar{height:67px}.hero{padding:58px 0 47px}.hero h1{letter-spacing:-2px}.progress-strip{grid-template-columns:1fr;gap:13px;padding:19px}.reset-button{justify-self:start}.mode-tabs{gap:17px;margin-top:43px;overflow-x:auto}.mode-tab{white-space:nowrap}.section-heading h2{font-size:30px}.section-heading{align-items:flex-start}.filters{justify-content:flex-start}.flashcard{padding:31px 27px;min-height:285px}.flip-instruction{left:27px}.card-front{margin-top:42px}.quiz-card,.quiz-result{padding:28px 22px}.quiz-card h3{font-size:25px}.problems-grid{grid-template-columns:1fr}.hero-actions{gap:16px;flex-wrap:wrap}.subtle{display:none}.summary-content{padding-left:12px}.summary-title{font-size:19px}.glossary-heading{align-items:flex-start;flex-direction:column}.glossary-search,.glossary-search input{width:100%}.glossary-grid{grid-template-columns:1fr}.glossary-item{min-height:0} }

.source-badge { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:12px; }
.source-badge span { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; color:var(--teal); background:#e2efeb; font-weight:700; }
.hero-copy strong { color:var(--ink); }
.source-strip { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin-bottom:16px; border:1px solid var(--line); border-radius:4px; background:var(--line); overflow:hidden; }
.source-strip > div { padding:18px 24px; background:var(--card); }
.source-strip .eyebrow { margin-bottom:5px; }
.source-strip p:last-child { margin:0; color:#53605a; font-size:13px; }
.compact-select { display:flex; align-items:center; gap:9px; color:var(--muted); font:11px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.5px; }
.compact-select select { min-width:160px; border:1px solid #cfcfc8; border-radius:4px; background:var(--card); color:var(--ink); padding:9px 32px 9px 11px; font:13px "DM Sans",Arial,sans-serif; }
.study-heading { align-items:center; }
.study-filters { display:flex; align-items:center; justify-content:flex-end; gap:12px; flex-wrap:wrap; }
.study-pool { margin:-11px 0 18px; color:var(--teal); font:11px "DM Mono",monospace; letter-spacing:.3px; }
.quiz-settings { display:grid; grid-template-columns:minmax(250px,1fr) minmax(210px,.7fr) auto; align-items:center; gap:14px; margin:0 0 21px; padding:16px 18px; border:1px solid var(--line); border-radius:4px; background:#f0eee8; }
.quiz-settings .study-pool { margin:0; text-align:right; }
.panel-intro { max-width:760px; margin:-8px 0 24px; color:var(--muted); line-height:1.58; font-size:14px; }
.scope-list { border-top:1px solid var(--line); }
.scope-chapter { border-bottom:1px solid var(--line); }
.scope-toggle { width:100%; display:flex; align-items:center; gap:19px; padding:20px 5px; border:0; background:transparent; color:var(--ink); text-align:left; }
.scope-toggle:hover .scope-copy strong { color:var(--accent); }
.scope-number { flex:0 0 34px; color:var(--accent); font:12px "DM Mono",monospace; }
.scope-copy { display:flex; flex-direction:column; gap:5px; }
.scope-copy small { color:var(--teal); font:10px "DM Mono",monospace; letter-spacing:.55px; text-transform:uppercase; }
.scope-copy strong { font:600 21px Fraunces,Georgia,serif; letter-spacing:-.4px; transition:.2s; }
.scope-arrow { margin-left:auto; color:var(--teal); font-size:21px; transition:.2s; }
.scope-chapter.open .scope-arrow { transform:rotate(45deg); }
.scope-content { display:none; padding:0 35px 22px 58px; }
.scope-chapter.open .scope-content { display:block; }
.scope-content ol { margin:0; padding-left:19px; columns:2; column-gap:44px; color:#52605a; font-size:14px; line-height:1.5; }
.scope-content li { margin:0 0 7px; break-inside:avoid; padding-left:4px; }
.concepts-heading { align-items:center; }
.concept-search input { width:min(370px,46vw); border:1px solid #cfcfc8; border-radius:4px; background:var(--card); color:var(--ink); padding:11px 13px; font:14px "DM Sans",Arial,sans-serif; outline:none; }
.concept-search input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(40,124,116,.12); }
.concept-filters { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:15px; }
.concept-filters .filter { min-width:32px; }
.concept-count { margin:0 0 16px; color:var(--teal); font:11px "DM Mono",monospace; letter-spacing:.3px; }
.concept-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; align-items:start; }
.concept-card { position:relative; padding:22px 23px 23px; border:1px solid #d8d5cc; border-radius:5px; background:var(--card); }
.concept-card h3 { max-width:85%; margin:0 0 10px; font:600 21px Fraunces,Georgia,serif; letter-spacing:-.45px; line-height:1.18; }
.concept-card > p:last-child { margin:0; color:#53605a; font-size:14px; line-height:1.58; }
.concept-page { position:absolute; top:21px; right:20px; margin:0; color:var(--accent); font:10px "DM Mono",monospace; letter-spacing:.4px; }
.concept-note { margin:-3px 0 10px; color:var(--teal); font:11px "DM Mono",monospace; }
.concept-empty { grid-column:1/-1; margin:0; padding:23px; border:1px dashed #cfcfc8; color:var(--muted); }

@media (max-width:700px) {
  .source-badge { font-size:0; }
  .source-strip { grid-template-columns:1fr; }
  .source-strip > div { padding:16px 18px; }
  .section-heading { flex-direction:column; }
  .compact-select { width:100%; justify-content:space-between; }
  .compact-select select { flex:1; }
  .scope-content { padding-left:26px; }
  .scope-content ol { columns:1; }
  .scope-copy strong { font-size:19px; }
  .concepts-heading { align-items:flex-start; }
  .concept-search,.concept-search input { width:100%; }
  .concept-grid { grid-template-columns:1fr; }
  .concept-card h3 { font-size:20px; }
}

.answers-heading,.math-heading { align-items:center; }
.answer-search { position:relative; display:block; margin:2px 0 14px; }
.answer-search input { width:100%; border:1px solid #c9c7bf; border-radius:5px; background:var(--card); color:var(--ink); padding:17px 78px 17px 18px; font:16px "DM Sans",Arial,sans-serif; outline:none; box-shadow:0 4px 15px rgba(44,39,24,.025); }
.answer-search input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(40,124,116,.12); }
.search-key { position:absolute; right:14px; top:50%; transform:translateY(-50%); padding:5px 7px; border:1px solid var(--line); border-radius:3px; color:#8b918c; font:9px "DM Mono",monospace; letter-spacing:.5px; }
.answer-prompts { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 20px; }
.answer-prompts button { padding:7px 10px; border:1px solid #d2d0c8; border-radius:20px; background:transparent; color:var(--muted); font-size:12px; }
.answer-prompts button:hover { border-color:var(--teal); color:var(--teal); background:#edf5f2; }
.answer-count,.math-count { margin:0 0 16px; color:var(--teal); font:11px "DM Mono",monospace; letter-spacing:.3px; }
.answer-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; align-items:start; }
.answer-card { padding:23px; border:1px solid #d8d5cc; border-radius:5px; background:var(--card); }
.answer-meta,.formula-meta { display:flex; justify-content:space-between; gap:12px; margin-bottom:14px; color:var(--teal); font:10px "DM Mono",monospace; letter-spacing:.55px; text-transform:uppercase; }
.answer-card h3 { margin:0 0 11px; font:600 21px Fraunces,Georgia,serif; letter-spacing:-.45px; line-height:1.2; }
.answer-card p { margin:0; color:#4f5e57; font-size:14px; line-height:1.62; }
.answer-card small { display:block; margin-top:15px; padding-top:13px; border-top:1px solid #ebe8e1; color:#888f89; font-size:11px; }

.scope-tools { display:flex; align-items:flex-start; justify-content:space-between; gap:25px; margin-bottom:20px; }
.scope-tools .panel-intro { margin:-3px 0 0; }
.scope-search { flex:0 0 min(330px,42vw); }
.scope-search input { width:100%; }
.scope-overview { max-width:820px; margin:0 0 17px; color:#3f534c; font-size:15px; line-height:1.64; }
.scope-content-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:14px; margin-bottom:12px; border-top:1px solid #e6e3dc; }
.scope-content-head strong { color:var(--teal); font:10px "DM Mono",monospace; letter-spacing:.5px; text-transform:uppercase; }

.math-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 16px; }
.formula-total { margin:0; color:var(--muted); font-size:13px; }
.formula-total strong { margin-left:5px; color:var(--teal); font:500 14px "DM Mono",monospace; }
.math-search { flex:0 0 min(360px,43vw); }
.math-search input { width:100%; }
.formula-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; align-items:start; }
.formula-card { border:1px solid #d8d5cc; border-radius:5px; background:var(--card); padding:22px; }
.formula-card h3 { margin:0 0 13px; font:600 21px Fraunces,Georgia,serif; letter-spacing:-.45px; line-height:1.18; }
.formula-expression { overflow-x:auto; margin:0 0 15px; padding:16px; border-left:3px solid var(--accent); background:#f0eee8; color:#183f3a; font:500 18px "DM Mono",monospace; white-space:nowrap; }
.formula-card p { margin:0 0 11px; color:#4f5e57; font-size:14px; line-height:1.55; }
.formula-detail { padding:12px 0; border-top:1px solid #ebe8e1; }
.formula-detail strong { display:block; margin-bottom:5px; color:var(--teal); font:500 10px "DM Mono",monospace; letter-spacing:.55px; text-transform:uppercase; }
.formula-detail p { margin:0; }
.formula-detail.audit-note { margin:5px -8px -5px; padding:13px 8px; border-top:0; border-radius:3px; background:#f4eee1; }
.formula-detail.audit-note strong { color:#9a6522; }
.formula-card small { display:block; padding-top:11px; border-top:1px solid #ebe8e1; color:#727b75; font-size:12px; line-height:1.5; }
@media (max-width:700px) {
  .answers-heading,.math-heading { align-items:flex-start; }
  .answer-results,.formula-grid { grid-template-columns:1fr; }
  .answer-card,.formula-card { padding:19px; }
  .answer-card h3,.formula-card h3 { font-size:20px; }
  .scope-tools,.math-toolbar { flex-direction:column; }
  .scope-search,.math-search { flex-basis:auto; width:100%; }
  .scope-content-head { align-items:flex-start; flex-direction:column; gap:8px; }
  .scope-content { padding-right:4px; }
  .formula-expression { font-size:15px; }
  .study-filters { width:100%; justify-content:flex-start; }
  .study-filters .compact-select { align-items:flex-start; flex-direction:column; gap:6px; }
  .study-filters .compact-select select { width:100%; }
  .quiz-settings { grid-template-columns:1fr; }
  .quiz-settings .study-pool { text-align:left; }
}

/* Główna nawigacja nauki */
.learning-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:46px; align-items:start; margin-top:56px; }
.learning-content { min-width:0; }
.learning-layout .mode-tabs { position:sticky; top:22px; display:grid; gap:5px; margin:0; padding:16px 12px; border:1px solid var(--line); border-radius:7px; background:#eeece5; }
.nav-label { margin:2px 9px 9px; color:#929992; font:500 9px "DM Mono",monospace; letter-spacing:1.2px; }
.learning-layout .mode-tab { display:grid; grid-template-columns:27px 1fr; grid-template-rows:auto auto; column-gap:5px; width:100%; padding:12px 10px; border:0; border-radius:4px; color:var(--muted); text-align:left; }
.learning-layout .mode-tab span { grid-row:1/3; align-self:start; margin-top:2px; }
.learning-layout .mode-tab b { font-size:14px; color:inherit; }
.learning-layout .mode-tab small { margin-top:3px; color:#8a918c; font-size:10px; font-weight:400; }
.learning-layout .mode-tab:hover { color:var(--ink); background:#e4e1d8; }
.learning-layout .mode-tab.active { color:#fff; background:var(--ink); }
.learning-layout .mode-tab.active small,.learning-layout .mode-tab.active span { color:#b9cbc6; }
.learning-layout .mode-tab.active:after { display:none; }
.nav-divider { height:1px; margin:7px 9px; background:#d6d3ca; }
.learning-layout .study-panel { padding:2px 0 70px; }
.more-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.more-card { min-height:235px; display:flex; flex-direction:column; align-items:flex-start; padding:23px; border:1px solid #d8d5cc; border-radius:6px; background:var(--card); color:var(--ink); text-align:left; transition:.2s ease; }
.more-card:hover { transform:translateY(-3px); border-color:var(--teal); box-shadow:0 9px 22px rgba(30,42,42,.07); }
.more-card > span { color:var(--accent); font:11px "DM Mono",monospace; }
.more-card > strong { margin:24px 0 9px; font:600 24px Fraunces,serif; letter-spacing:-.7px; }
.more-card p { margin:0; color:var(--muted); font-size:13px; line-height:1.52; }
.more-card > b { margin-top:auto; padding-top:20px; color:var(--teal); font-size:12px; }

/* Punkty, rangi i profil nauki */
.topbar-actions { display:flex; align-items:center; gap:13px; }
.points-trigger { display:flex; align-items:center; gap:6px; padding:8px 11px; border:1px solid #d5d1c7; border-radius:20px; background:var(--card); color:var(--muted); font-size:12px; transition:.2s; }
.points-trigger:hover,.points-trigger[aria-expanded="true"] { color:var(--ink); border-color:var(--accent); box-shadow:0 0 0 3px rgba(219,91,53,.09); }
.points-trigger strong { color:var(--ink); font:500 12px "DM Mono",monospace; }
.points-star { color:var(--accent); font-size:15px; }
.account-trigger { max-width:180px; display:flex; align-items:center; gap:8px; padding:5px 10px 5px 5px; border:1px solid #d5d1c7; border-radius:22px; background:transparent; color:var(--muted); font-size:12px; transition:.2s; }
.account-trigger:hover,.account-trigger[aria-expanded="true"] { color:var(--ink); border-color:var(--teal); background:var(--card); }
.account-trigger > span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-avatar,.profile-avatar,.leaderboard-avatar { display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--ink); font:600 10px "DM Mono",monospace; letter-spacing:.2px; }
.account-avatar { flex:0 0 26px; width:26px; height:26px; }
.account-trigger.signed-in .account-avatar { background:var(--teal); }
.rank-line { margin-top:5px !important; font-size:12px !important; }
.rank-line span { color:var(--teal); font-weight:700; }
.rank-line strong { color:var(--accent); font-size:12px; }
.progress-bars { display:grid; gap:11px; }
.progress-bars > div > span { display:inline-block; margin-bottom:5px; color:#7c847f; font:9px "DM Mono",monospace; letter-spacing:.5px; }
.progress-bars > div > span:nth-child(2) { float:right; color:var(--ink); }
.progress-track i { display:block; width:0; height:100%; border-radius:inherit; background:var(--teal); transition:width .6s cubic-bezier(.22,1,.36,1); }
.rank-track i { background:linear-gradient(90deg,var(--accent),#eda24c); }
.quiz-points-earned { max-width:470px; margin:-13px auto 25px; color:var(--teal); font-size:13px; line-height:1.5; }

.points-backdrop { position:fixed; z-index:80; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(23,31,30,.35); cursor:default; animation:fade-in .2s ease; }
.points-menu { position:fixed; z-index:90; top:0; right:0; width:min(430px,92vw); height:100dvh; overflow-y:auto; padding:30px; background:#f8f5ef; box-shadow:-18px 0 50px rgba(19,29,27,.16); animation:slide-menu .28s cubic-bezier(.22,1,.36,1); }
.points-menu-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.points-menu-head h2 { margin:0; font:600 32px Fraunces,serif; letter-spacing:-1.2px; }
.points-close { width:37px; height:37px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--muted); font-size:23px; line-height:1; }
.points-close:hover { color:#fff; border-color:var(--ink); background:var(--ink); }
.current-rank-card { display:flex; align-items:center; gap:18px; margin:23px 0 19px; padding:20px; border-radius:6px; color:#fff; background:linear-gradient(135deg,#1e2a2a,#285f59); }
.rank-emblem { flex:0 0 58px; width:58px; height:58px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.38); border-radius:50%; color:#fff; background:rgba(255,255,255,.08); font:600 15px "DM Mono",monospace; box-shadow:inset 0 0 0 5px rgba(255,255,255,.07); }
.current-rank-card p { margin:0 0 4px; color:#c7dbd6; font-size:12px; text-transform:uppercase; letter-spacing:.7px; }
.current-rank-card strong { font:600 23px Fraunces,serif; }
.cloud-status { margin:-7px 0 18px; color:var(--muted); font:10px "DM Mono",monospace; letter-spacing:.35px; }
.cloud-status::before { content:""; display:inline-block; width:6px; height:6px; margin-right:7px; border-radius:50%; background:#aaa; vertical-align:1px; }
.cloud-status[data-state="success"]::before { background:var(--teal); }
.cloud-status[data-state="working"]::before { background:#d59a35; animation:status-pulse 1s ease infinite; }
.cloud-status[data-state="error"] { color:#984832; }
.cloud-status[data-state="error"]::before { background:#c45c40; }
.menu-rank-progress { padding:0 2px 23px; border-bottom:1px solid var(--line); }
.menu-rank-progress > div:first-child { display:flex; justify-content:space-between; gap:12px; margin-bottom:8px; color:var(--muted); font-size:11px; }
.points-rules { padding:23px 0 17px; }
.points-rules ul { padding:0; margin:0; list-style:none; }
.points-rules li { display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px solid #e8e4dc; color:#59645f; font-size:12px; }
.points-rules li strong { color:var(--teal); font:500 11px "DM Mono",monospace; }
.rank-ladder { display:grid; gap:7px; padding-top:4px; }
.rank-step { display:grid; grid-template-columns:33px 1fr auto; align-items:center; gap:11px; padding:10px 11px; border:1px solid var(--line); border-radius:4px; color:#8a908c; background:#f2efe9; }
.rank-step > span { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#e1ded7; font:500 9px "DM Mono",monospace; }
.rank-step div { display:flex; flex-direction:column; gap:2px; }
.rank-step strong { font-size:12px; }
.rank-step small { font-size:10px; }
.rank-step > b { color:var(--teal); font:500 9px "DM Mono",monospace; }
.rank-step.reached { color:var(--ink); border-color:#bad0ca; background:#edf5f2; }
.rank-step.reached > span { color:#fff; background:var(--teal); }
.rank-step.current { border-color:var(--accent); box-shadow:0 0 0 2px rgba(219,91,53,.08); }

.points-toast { position:fixed; z-index:110; top:95px; right:30px; min-width:175px; padding:15px 19px; border-radius:6px; color:#fff; background:var(--ink); box-shadow:0 12px 30px rgba(20,30,28,.2); opacity:0; transform:translateY(-14px) scale(.95); pointer-events:none; }
.points-toast.animate { animation:points-pop 2.2s ease both; }
.points-toast span { color:var(--yellow); font:600 25px Fraunces,serif; }
.points-toast p { margin:2px 0 0; color:#c5d0cc; font-size:11px; }
.rank-celebration { position:fixed; z-index:120; inset:0; display:grid; place-items:center; padding:24px; background:rgba(18,27,26,.76); opacity:0; transition:opacity .25s ease; }
.rank-celebration.visible { opacity:1; }
.celebration-card { position:relative; z-index:2; width:min(430px,100%); padding:42px; border-radius:9px; background:var(--card); text-align:center; transform:scale(.88); transition:transform .35s cubic-bezier(.22,1,.36,1); }
.rank-celebration.visible .celebration-card { transform:scale(1); }
.celebration-card .rank-emblem { margin:15px auto 18px; color:#fff; background:linear-gradient(145deg,var(--accent),#ed9a48); border:0; }
.celebration-card h2 { margin:0 0 8px; font:600 38px Fraunces,serif; letter-spacing:-1.5px; }
.celebration-card > p:not(.eyebrow) { margin:0 0 25px; color:var(--muted); }
.celebration-burst { position:absolute; width:280px; height:280px; border:1px solid rgba(243,217,141,.55); border-radius:50%; animation:burst 1.4s ease-out infinite; }

/* Konto i logowanie */
.auth-modal-open,.points-menu-open { overflow:hidden; }
.auth-backdrop { position:fixed; z-index:130; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(23,31,30,.45); cursor:default; animation:fade-in .2s ease; }
.auth-modal { position:fixed; z-index:140; top:50%; left:50%; width:min(460px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow-y:auto; padding:28px; border-radius:9px; background:#f8f5ef; box-shadow:0 25px 75px rgba(19,29,27,.25); transform:translate(-50%,-50%); animation:auth-in .25s cubic-bezier(.22,1,.36,1); }
.auth-modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-bottom:19px; border-bottom:1px solid var(--line); }
.auth-modal-head h2 { margin:0; font:600 31px Fraunces,serif; letter-spacing:-1.1px; }
.auth-copy { margin:22px 0 2px; padding:17px; border:1px solid #e0d6c2; border-radius:5px; color:#655c4d; background:#f5ede0; font-size:13px; line-height:1.6; }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; gap:4px; margin:20px 0 18px; padding:4px; border-radius:5px; background:#e9e6de; }
.auth-tabs button { padding:9px; border:0; border-radius:3px; color:var(--muted); background:transparent; font-size:12px; }
.auth-tabs button.active { color:var(--ink); background:var(--card); box-shadow:0 2px 6px rgba(30,42,42,.06); }
.auth-form { display:grid; gap:14px; }
.auth-form label { display:grid; gap:6px; color:#59645f; font-size:12px; }
.auth-form input { width:100%; padding:12px 13px; border:1px solid #cbc9c1; border-radius:4px; outline:none; color:var(--ink); background:var(--card); font:14px "DM Sans",Arial,sans-serif; }
.auth-form input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(40,124,116,.11); }
.auth-form .primary-button { margin-top:2px; }
.auth-form button:disabled,.auth-profile button:disabled { cursor:wait; opacity:.58; }
.auth-form > small { margin-top:-5px; color:#848b86; font-size:10px; line-height:1.45; }
.auth-feedback { min-height:20px; margin:14px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.auth-feedback[data-state="error"] { color:#a0442d; }
.auth-feedback[data-state="success"] { color:var(--teal); }
.auth-profile { display:grid; grid-template-columns:55px 1fr; gap:15px; align-items:center; padding-top:24px; }
.profile-avatar { width:55px; height:55px; background:var(--teal); font-size:15px; }
.auth-profile > div { min-width:0; display:grid; gap:3px; }
.auth-profile > div strong { overflow:hidden; text-overflow:ellipsis; font:600 22px Fraunces,serif; white-space:nowrap; }
.auth-profile > div small { overflow:hidden; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.auth-profile > p { grid-column:1/-1; margin:5px 0 1px; padding:12px 13px; border-radius:4px; color:var(--teal); background:#e8f1ee; font-size:11px; }
.auth-profile > p[data-state="error"] { color:#9b432e; background:#f8e9e5; }
.auth-profile > button { grid-column:1/-1; }

/* Ranking */
.leaderboard-heading { align-items:center; }
.cloud-notice { min-height:18px; margin:-7px 0 17px; color:var(--muted); font:10px "DM Mono",monospace; letter-spacing:.35px; }
.cloud-notice[data-state="error"] { color:#a0442d; }
.cloud-notice[data-state="success"] { color:var(--teal); }
.leaderboard-list { max-width:760px; display:grid; gap:7px; }
.leaderboard-row { display:grid; grid-template-columns:34px 38px minmax(0,1fr) auto; align-items:center; gap:13px; min-height:62px; padding:10px 15px; border:1px solid var(--line); border-radius:5px; background:var(--card); }
.leaderboard-row.current-user { border-color:var(--teal); box-shadow:0 0 0 2px rgba(40,124,116,.08); }
.leaderboard-position { color:#8a918c; font:500 11px "DM Mono",monospace; text-align:center; }
.leaderboard-avatar { width:38px; height:38px; background:#526863; }
.leaderboard-row > div { min-width:0; display:grid; gap:3px; }
.leaderboard-row > div strong { overflow:hidden; color:var(--ink); font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.leaderboard-row > div small { color:var(--muted); font-size:10px; }
.leaderboard-row > b { color:var(--teal); font:500 12px "DM Mono",monospace; white-space:nowrap; }
.leaderboard-row.podium { border-color:#d9c79a; background:#fffcf3; }
.leaderboard-row.podium-1 .leaderboard-position { color:#b57a19; font-size:15px; }
.leaderboard-row.podium-1 .leaderboard-avatar { background:#b78324; }
.leaderboard-empty { margin:0; padding:24px; border:1px dashed #cbc8bf; border-radius:5px; color:var(--muted); text-align:center; font-size:13px; }

@keyframes slide-menu { from { transform:translateX(100%); } }
@keyframes fade-in { from { opacity:0; } }
@keyframes points-pop { 0%{opacity:0;transform:translateY(-14px) scale(.95)} 14%,76%{opacity:1;transform:translateY(0) scale(1)} 100%{opacity:0;transform:translateY(-8px) scale(.98)} }
@keyframes burst { 0%{transform:scale(.55);opacity:0} 30%{opacity:1} 100%{transform:scale(1.6);opacity:0} }
@keyframes auth-in { from { opacity:0; transform:translate(-50%,-47%) scale(.97); } }
@keyframes status-pulse { 50% { opacity:.35; } }

@media (max-width:900px) {
  .learning-layout { grid-template-columns:1fr; gap:24px; margin-top:42px; }
  .learning-layout .mode-tabs { position:static; display:flex; gap:7px; overflow-x:auto; padding:9px; }
  .learning-layout .nav-label,.learning-layout .nav-divider { display:none; }
  .learning-layout .mode-tab { flex:0 0 auto; display:flex; align-items:center; gap:5px; width:auto; padding:11px 13px; }
  .learning-layout .mode-tab span { grid-row:auto; margin:0; }
  .learning-layout .mode-tab small { display:none; }
  .more-grid { grid-template-columns:1fr; }
  .more-card { min-height:175px; }
}

@media (max-width:700px) {
  .topbar-actions { gap:7px; }
  .points-trigger { padding:7px 9px; }
  .progress-strip { grid-template-columns:1fr; }
  .progress-bars { width:100%; }
  .learning-layout .mode-tabs { margin:0 -6px; }
  .learning-layout .mode-tab b { font-size:12px; }
  .learning-layout .mode-tab span { display:none; }
  .points-menu { padding:23px 20px; }
  .points-menu-head h2 { font-size:28px; }
  .points-toast { top:75px; right:16px; }
  .celebration-card { padding:34px 24px; }
  .account-trigger { padding-right:5px; }
  .account-trigger > span:last-child { display:none; }
  .auth-modal { padding:22px 19px; }
  .auth-modal-head h2 { font-size:28px; }
  .leaderboard-row { grid-template-columns:25px 34px minmax(0,1fr) auto; gap:9px; padding:9px 10px; }
  .leaderboard-avatar { width:34px; height:34px; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* Minimalny tryb nauki i animacje informacji zwrotnej */
.source-badge { display:none; }
.hero { max-width:620px; padding:55px 0 38px; }
.hero h1 { font-size:clamp(46px,6vw,68px); line-height:1; }
.hero-copy { max-width:420px; margin:19px 0 24px; font-size:16px; }
.progress-strip { grid-template-columns:210px 1fr auto; gap:22px; padding:17px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.progress-copy .eyebrow { display:none; }
.progress-copy > p:nth-child(2) { margin:0; color:var(--muted); font-size:13px; }
.progress-copy > p:nth-child(2) strong { font-size:18px; }
.rank-line { margin-top:4px !important; }
.learning-layout { gap:38px; margin-top:36px; }
.learning-layout .mode-tabs { border:0; background:#eeece6; }
.learning-layout .study-panel { padding-top:0; }
.learning-content > .study-panel > .section-heading .eyebrow { display:none; }
.section-heading { margin-bottom:20px; }
.section-heading h2 { font-size:32px; letter-spacing:-1.7px; }
.study-pool { margin:-7px 0 15px; }
.starred-filter { display:flex; align-items:center; gap:7px; min-height:38px; padding:8px 11px; border:1px solid #d2cfc6; border-radius:4px; background:var(--card); color:var(--muted); font-size:12px; transition:.2s ease; }
.starred-filter span { color:#b4aa94; font-size:16px; line-height:1; }
.starred-filter b { min-width:19px; padding:2px 5px; border-radius:10px; background:#ece9e1; color:#7b827d; font:500 9px "DM Mono",monospace; }
.starred-filter:hover,.starred-filter.active { border-color:#d6a333; color:var(--ink); background:#fff9e8; }
.starred-filter:hover span,.starred-filter.active span { color:#e0a925; }
.starred-filter.active b { color:#7b5810; background:#f4df9d; }
.quiz-settings { padding:13px 15px; border:0; background:#eeece6; }
.quiz-card,.quiz-result { border-color:#e2dfd7; box-shadow:0 8px 24px rgba(30,42,42,.035); }
.question-topic { margin-bottom:11px; letter-spacing:.7px; }
.quiz-feedback { min-height:20px; margin-top:14px; }
.more-card { min-height:190px; padding:20px; }
.more-card > strong { margin:18px 0 7px; font-size:22px; }

.flashcard { min-height:310px; padding:0; border:0; background:transparent; box-shadow:none; overflow:visible; perspective:1200px; }
.flashcard-stage { position:relative; width:100%; max-width:710px; margin:auto; }
.flashcard-stage .flashcard { margin:0; }
.card-star { position:absolute; z-index:8; top:20px; right:22px; width:39px; height:39px; display:grid; place-items:center; padding:0; border:1px solid #ded9cc; border-radius:50%; background:rgba(255,253,249,.9); color:#a9a08e; font-size:23px; line-height:1; box-shadow:0 4px 12px rgba(35,40,36,.06); transition:.22s ease; }
.card-star:hover { transform:scale(1.08) rotate(8deg); border-color:#d6a333; color:#d6a333; }
.card-star.active { border-color:#d6a333; color:#e0a925; background:#fff8df; animation:star-pop .35s cubic-bezier(.22,1,.36,1); }
.flashcard:hover { border-color:transparent; }
.flashcard-inner { position:relative; display:block; width:100%; min-height:310px; transform-style:preserve-3d; transition:transform .68s cubic-bezier(.22,1,.36,1); }
.flashcard.is-flipped { background:transparent; }
.flashcard.is-flipped .flashcard-inner { transform:rotateY(180deg); }
.flashcard .card-face { position:absolute; inset:0; display:flex; align-items:center; width:100%; max-width:none; margin:0; padding:72px 55px 58px; border:1px solid #dedbd3; border-radius:8px; background:var(--card); box-shadow:0 10px 25px rgba(34,43,40,.045); backface-visibility:hidden; -webkit-backface-visibility:hidden; overflow:auto; }
.flashcard .card-front { font-family:Fraunces,serif; font-size:clamp(29px,4vw,43px); line-height:1.12; }
.flashcard .card-back { color:#25433f; background:#e7f0ed; font-size:20px; line-height:1.55; transform:rotateY(180deg); }
.flashcard.is-flipped .card-front { display:flex; }
.flashcard.is-flipped .card-back { display:flex; }
.flashcard .card-hint { position:absolute; z-index:4; top:28px; left:55px; }
.flashcard .flip-instruction { z-index:4; }

.answer.correct { animation:answer-correct .48s cubic-bezier(.22,1,.36,1); }
.answer.wrong { animation:answer-wrong .42s ease; }
.quiz-card.answer-correct { animation:quiz-correct .5s ease; }
.quiz-card.answer-wrong { animation:quiz-wrong .42s ease; }
.quiz-result.quiz-finished { animation:quiz-finished .7s cubic-bezier(.22,1,.36,1); }
.quiz-result.quiz-finished .result-number { animation:result-pop .72s .08s cubic-bezier(.22,1,.36,1) both; }

.test-card h3 { margin-bottom:24px; }
.test-answer-form { display:grid; gap:8px; }
.test-answer-form label { color:var(--muted); font:500 10px "DM Mono",monospace; letter-spacing:.65px; text-transform:uppercase; }
.test-answer-form > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px; }
.test-answer-form input { min-width:0; padding:13px 15px; border:1px solid #d3d1c9; border-radius:4px; background:#fffefa; color:var(--ink); font:16px "DM Sans",Arial,sans-serif; outline:none; transition:.2s; }
.test-answer-form input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(40,124,116,.11); }
.test-answer-form input:disabled { color:#6f7772; background:#f0eee8; }
.test-answer-form button:disabled { opacity:.55; cursor:default; }
.reveal-test-answer { justify-self:start; margin-top:2px; color:var(--muted); }
.quiz-feedback.revealed { color:#8a6a24; }

.study-timer-card { margin:0 0 22px; padding:17px; border:1px solid #d9d6ce; border-radius:6px; background:var(--card); }
.study-timer-card > div:first-child { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:9px; color:var(--muted); font:500 9px "DM Mono",monospace; letter-spacing:.7px; }
.study-timer-card strong { color:var(--ink); font-size:12px; }
.study-timer-card small { display:block; margin-top:8px; color:#7d8580; font-size:10px; }
.study-timer-card .progress-track i { background:linear-gradient(90deg,var(--teal),#5aa79d); }

@keyframes answer-correct {
  0% { transform:scale(1); }
  45% { transform:scale(1.025); box-shadow:0 0 0 4px rgba(40,124,116,.11); }
  100% { transform:scale(1); }
}
@keyframes answer-wrong {
  0%,100% { transform:translateX(0); }
  25% { transform:translateX(-6px); }
  50% { transform:translateX(5px); }
  75% { transform:translateX(-3px); }
}
@keyframes quiz-correct {
  0%,100% { box-shadow:0 8px 24px rgba(30,42,42,.035); }
  50% { box-shadow:0 0 0 4px rgba(40,124,116,.12),0 14px 35px rgba(40,124,116,.09); }
}
@keyframes quiz-wrong {
  0%,100% { transform:translateX(0); }
  30% { transform:translateX(-5px); }
  60% { transform:translateX(4px); }
}
@keyframes quiz-finished {
  from { opacity:0; transform:translateY(22px) scale(.96); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
@keyframes result-pop {
  from { opacity:0; transform:scale(.65) rotate(-4deg); }
  to { opacity:1; transform:scale(1) rotate(0); }
}
@keyframes star-pop {
  0% { transform:scale(.7) rotate(-18deg); }
  70% { transform:scale(1.12) rotate(6deg); }
  100% { transform:scale(1) rotate(0); }
}

@media (max-width:700px) {
  .hero { padding:39px 0 29px; }
  .hero h1 { font-size:clamp(42px,13vw,55px); }
  .hero-copy { font-size:15px; }
  .progress-strip { padding:14px 0; }
  .progress-bars > div:first-child { display:none; }
  .learning-layout { margin-top:24px; }
  .flashcard,.flashcard-inner { min-height:285px; padding:0; }
  .flashcard .card-face { padding:66px 27px 54px; }
  .flashcard .card-hint { top:24px; left:27px; }
  .flashcard .flip-instruction { left:27px; }
  .flashcard .card-back { font-size:18px; }
  .quiz-settings { padding:12px; }
  .study-filters { align-items:stretch; }
  .starred-filter { justify-content:center; width:100%; }
  .card-star { top:15px; right:15px; }
  .test-answer-form > div { grid-template-columns:1fr; }
  .test-answer-form button { width:100%; }
}

/* Mobilne quizy, tryb skupienia i dyskretne nagrody */
.heading-actions { display:flex; align-items:center; gap:16px; }
.focus-toggle { min-height:38px; display:inline-flex; align-items:center; gap:7px; padding:8px 11px; border:1px solid #d2cfc6; border-radius:4px; background:var(--card); color:var(--muted); font-size:12px; white-space:nowrap; transition:.2s ease; }
.focus-toggle:hover { border-color:var(--teal); color:var(--teal); background:#edf5f2; }
.focus-exit { position:fixed; z-index:300; top:14px; right:14px; min-height:40px; padding:9px 13px; border:1px solid #ccd2cf; border-radius:22px; background:rgba(255,253,249,.94); color:var(--ink); box-shadow:0 5px 18px rgba(22,34,31,.12); font-size:12px; }
.focus-exit:hover { color:#fff; border-color:var(--ink); background:var(--ink); }

.quiz-settings { grid-template-columns:minmax(0,300px) minmax(0,190px) auto; justify-content:start; }
.quiz-settings .compact-select { min-width:0; }
.quiz-settings .compact-select select { min-width:0; max-width:100%; }
.quiz-card,.quiz-result,.answers,.answer { width:100%; min-width:0; }
.quiz-card h3,.answer span:last-child,.quiz-feedback { overflow-wrap:anywhere; word-break:normal; }
.answer { flex-shrink:0; }

.points-burst { position:fixed; z-index:280; display:flex; align-items:center; gap:7px; max-width:170px; pointer-events:none; color:var(--teal); filter:drop-shadow(0 3px 8px rgba(32,86,78,.14)); animation:points-from-source 1.25s cubic-bezier(.18,.85,.28,1) both; }
.points-burst strong { padding:5px 8px; border:1px solid #aad0c8; border-radius:18px; background:#f3fbf8; font:700 15px "DM Mono",monospace; white-space:nowrap; }
.points-burst span { color:#55716b; font-size:10px; line-height:1.2; }

.boost-card { display:grid; gap:13px; margin:0 0 22px; padding:17px; border:1px solid #d9d6ce; border-radius:6px; background:var(--card); }
.boost-card > div { display:flex; align-items:center; gap:12px; }
.boost-icon { flex:0 0 40px; width:40px; height:40px; display:grid; place-items:center; border-radius:50%; color:#7a5512; background:#f6dfa0; font:700 12px "DM Mono",monospace; }
.boost-card > div > div { min-width:0; display:grid; gap:3px; }
.boost-card strong { font-size:13px; }
.boost-card small { color:var(--muted); font-size:10px; line-height:1.35; }
.boost-button { width:100%; padding:9px 12px; border:1px solid #d5a435; border-radius:4px; background:#fff8e4; color:#795615; font-size:12px; font-weight:700; }
.boost-button:hover:not(:disabled) { color:#fff; background:#b9821e; }
.boost-button:disabled { cursor:default; opacity:.68; }
.boost-active .points-trigger { border-color:#d5a435; background:#fff8e4; }

.leaderboard-row.podium-1 { position:relative; min-height:72px; border:2px solid #d5a435; background:linear-gradient(100deg,#fff7d8,#fffdf6); box-shadow:0 8px 23px rgba(150,104,24,.1); }
.leaderboard-row.podium-1:after { content:"LIDER"; position:absolute; top:-9px; right:12px; padding:3px 7px; border-radius:10px; color:#fff; background:#b7821f; font:700 8px "DM Mono",monospace; letter-spacing:.8px; }
.leaderboard-row.podium-1 .leaderboard-position { display:grid; place-items:center; gap:0; color:#b57a19; line-height:1; }
.leaderboard-row.podium-1 .leaderboard-position i { font-size:18px; font-style:normal; }
.leaderboard-row.podium-1 .leaderboard-position b { font-size:9px; }

.danger-zone { grid-column:1/-1; display:grid; gap:10px; margin-top:12px; padding:16px; border:1px solid #e0b7ad; border-radius:6px; background:#fbefec; }
.danger-zone > strong { color:#8f3c29; font-size:13px; }
.danger-zone p { margin:0; color:#795e57; font-size:11px; line-height:1.45; }
.danger-zone label { display:grid; gap:6px; color:#795e57; font-size:10px; }
.danger-zone input { width:100%; min-width:0; padding:10px 11px; border:1px solid #dab0a6; border-radius:4px; background:#fff; color:var(--ink); font:13px "DM Sans",Arial,sans-serif; outline:none; }
.danger-zone input:focus { border-color:#a94832; box-shadow:0 0 0 3px rgba(169,72,50,.1); }
.delete-account-button { padding:10px 12px; border:1px solid #a94832; border-radius:4px; color:#fff; background:#a94832; font-size:12px; font-weight:700; }
.delete-account-button:disabled { cursor:not-allowed; opacity:.42; }

.focus-mode { overflow:hidden; background:#f6f3ed; }
.focus-mode .page-shell { max-width:none; height:100dvh; padding:0; overflow:auto; }
.focus-mode .topbar,.focus-mode .hero,.focus-mode .progress-strip,.focus-mode .mode-tabs,.focus-mode footer { display:none !important; }
.focus-mode .learning-layout { display:block; max-width:880px; min-height:100dvh; margin:0 auto; padding:58px 32px 32px; }
.focus-mode .learning-content > .study-panel { display:none !important; }
.focus-mode .learning-content > .study-panel.focus-active { display:block !important; padding:0; animation:none; }
.focus-mode .focus-active > .section-heading,.focus-mode .focus-active > .quiz-settings,.focus-mode .focus-active > .study-pool { display:none; }
.focus-mode .flashcard-stage,.focus-mode .card-counter,.focus-mode .card-actions,.focus-mode .quiz-card,.focus-mode .quiz-result,.focus-mode .quiz-progress { max-width:780px; margin-left:auto; margin-right:auto; }
.focus-mode .flashcard,.focus-mode .flashcard-inner { min-height:min(62vh,560px); }
.focus-mode .quiz-card { max-height:calc(100dvh - 115px); overflow:auto; }

@keyframes points-from-source {
  0% { opacity:0; transform:translateY(4px) scale(.86); }
  18% { opacity:1; transform:translateY(-8px) scale(1); }
  72% { opacity:1; transform:translateY(-38px) scale(1); }
  100% { opacity:0; transform:translateY(-64px) scale(.96); }
}

@media (prefers-reduced-motion:reduce) {
  .points-burst { animation-duration:.25s; }
}

@media (max-width:700px) {
  html,body { max-width:100%; overflow-x:hidden; }
  .page-shell { width:100%; padding-left:15px; padding-right:15px; }
  .learning-layout,.learning-content,.study-panel { width:100%; min-width:0; }
  .quiz-settings { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:9px; width:100%; padding:10px; }
  .quiz-settings .compact-select { width:auto; min-width:0; align-items:flex-start; flex-direction:column; justify-content:flex-start; gap:5px; }
  .quiz-settings .compact-select select { width:100%; min-width:0; max-width:100%; padding:8px 26px 8px 8px; font-size:12px; }
  .quiz-settings .study-pool { grid-column:1/-1; margin:2px 0 0; font-size:10px; }
  .quiz-card,.quiz-result { width:100%; max-width:100%; padding:22px 16px; overflow:hidden; }
  .quiz-card h3 { font-size:clamp(21px,6.7vw,25px); letter-spacing:-.6px; }
  .answer { padding:12px 10px; gap:9px; font-size:13px; }
  .answer .letter { flex-basis:21px; width:21px; height:21px; }
  .quiz-progress { width:100%; justify-content:space-between; gap:10px; }
  .quiz-progress div { flex:1; min-width:0; max-width:150px; }
  .heading-actions { width:100%; justify-content:space-between; }
  .study-filters .focus-toggle { width:100%; justify-content:center; }
  .focus-toggle span { display:none; }
  .study-filters .focus-toggle span { display:inline; }
  .focus-mode .learning-layout { width:100%; padding:64px 12px 18px; }
  .focus-mode .flashcard,.focus-mode .flashcard-inner { min-height:calc(100dvh - 190px); }
  .focus-mode .flashcard .card-face { padding:68px 23px 58px; }
  .focus-mode .quiz-card { max-height:calc(100dvh - 120px); }
  .focus-exit { top:10px; right:10px; }
  .points-burst { max-width:130px; }
}

/* Jedno menu aplikacji, osobna strona główna i narożny tryb skupienia */
.topbar { position:relative; }
.app-menu-trigger { position:fixed; z-index:72; top:17px; right:20px; min-height:43px; display:flex; align-items:center; gap:9px; padding:8px 12px; border:1px solid #cfcdc5; border-radius:23px; background:rgba(255,253,249,.94); color:var(--ink); box-shadow:0 5px 18px rgba(30,42,42,.07); backdrop-filter:blur(10px); font-size:12px; font-weight:700; transition:.2s ease; }
.app-menu-trigger:hover,.app-menu-trigger[aria-expanded="true"] { border-color:var(--teal); color:var(--teal); background:#fff; }
.menu-lines { width:18px; display:grid; gap:5px; }
.menu-lines i { display:block; width:18px; height:1.5px; border-radius:2px; background:currentColor; transition:.2s ease; }
.app-menu-trigger[aria-expanded="true"] .menu-lines i:first-child { transform:translateY(3.25px) rotate(45deg); }
.app-menu-trigger[aria-expanded="true"] .menu-lines i:last-child { transform:translateY(-3.25px) rotate(-45deg); }
.menu-unread-badge { min-width:18px; height:18px; display:grid; place-items:center; margin-left:-3px; padding:0 5px; border-radius:10px; color:#fff; background:var(--accent); font:700 9px "DM Mono",monospace; }

.home-panel { padding:0 0 70px; }
.home-active .learning-layout { display:none; }
.learning-layout { display:block; width:100%; max-width:900px; margin:48px auto 0; }
.learning-content { width:100%; min-width:0; }
.learning-layout .study-panel { padding:2px 0 70px; }

.app-menu-open,.notification-center-open { overflow:hidden; }
.app-menu-backdrop { position:fixed; z-index:170; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(23,31,30,.38); cursor:default; animation:fade-in .18s ease; }
.app-menu { position:fixed; z-index:180; top:0; right:0; width:min(430px,94vw); height:100dvh; overflow-y:auto; padding:26px; background:#f8f5ef; box-shadow:-18px 0 52px rgba(19,29,27,.18); animation:slide-menu .27s cubic-bezier(.22,1,.36,1); }
.app-menu-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.app-menu-head h2 { margin:0; font:600 32px Fraunces,serif; letter-spacing:-1.2px; }
.app-menu-head-actions { display:flex; align-items:center; gap:8px; }
.notification-trigger { position:relative; width:38px; height:38px; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--card); color:var(--ink); font-size:22px; line-height:1; transition:.2s ease; }
.notification-trigger:hover,.notification-trigger[aria-expanded="true"] { color:var(--teal); border-color:var(--teal); background:#edf5f2; }
.notification-trigger b { position:absolute; top:-5px; right:-4px; min-width:18px; height:18px; display:grid; place-items:center; padding:0 4px; border:2px solid #f8f5ef; border-radius:10px; color:#fff; background:var(--accent); font:700 8px "DM Mono",monospace; }
.app-menu-nav { display:grid; gap:6px; padding:19px 0; }
.menu-section-label { margin:11px 10px 2px; color:#929992; font:500 9px "DM Mono",monospace; letter-spacing:1.2px; }
.menu-nav-button { width:100%; min-width:0; display:grid; grid-template-columns:32px minmax(0,1fr); align-items:start; gap:8px; padding:12px 11px; border:0; border-radius:5px; background:transparent; color:var(--muted); text-align:left; transition:.18s ease; }
.menu-nav-button:hover { color:var(--ink); background:#ebe8e0; }
.menu-nav-button.active { color:#fff; background:var(--ink); }
.menu-nav-button > span { padding-top:2px; color:#a2aaa5; font:500 10px "DM Mono",monospace; }
.menu-nav-button.active > span { color:#b9cbc6; }
.menu-nav-button > div { min-width:0; display:grid; gap:3px; }
.menu-nav-button strong { font-size:13px; }
.menu-nav-button small { overflow:hidden; color:#858d88; font-size:10px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.menu-nav-button.active small { color:#b9c4c0; }
.app-menu-profile { display:grid; gap:7px; padding-top:18px; border-top:1px solid var(--line); }
.menu-profile-button,.menu-profile-button.account-trigger { width:100%; max-width:none; display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:11px; padding:10px; border:1px solid #d7d4cc; border-radius:6px; background:var(--card); color:var(--ink); text-align:left; transition:.18s ease; }
.menu-profile-button:hover,.menu-profile-button.account-trigger:hover { border-color:var(--teal); background:#f0f7f4; }
.menu-profile-icon { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--teal); }
.menu-profile-button > div { min-width:0; display:grid; gap:3px; }
.menu-profile-button > div strong { overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.menu-profile-button > div small { overflow:hidden; color:var(--muted); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.menu-profile-button > div small b { color:var(--teal); font:600 10px "DM Mono",monospace; }
.menu-profile-button > i { color:#929a95; font-size:20px; font-style:normal; }
.menu-profile-button .account-avatar { width:36px; height:36px; font-size:11px; }

.notification-center { margin:17px 0 0; padding:16px; border:1px solid #d7d4cb; border-radius:7px; background:var(--card); animation:appear .22s ease; }
.notification-center-head { display:grid; gap:10px; padding-bottom:13px; border-bottom:1px solid #e6e3db; }
.notification-center-head > div { display:grid; gap:3px; }
.notification-center-head strong { font:600 18px Fraunces,serif; }
.notification-center-head small { color:var(--muted); font-size:10px; }
.notification-center-head .text-button { justify-self:start; font-size:10px; }
.notification-list { display:grid; }
.notification-item { position:relative; display:grid; grid-template-columns:8px minmax(0,1fr); gap:10px; padding:14px 0; border-bottom:1px solid #ece9e2; }
.notification-item:last-child { border-bottom:0; padding-bottom:2px; }
.notification-dot { width:7px; height:7px; margin-top:5px; border-radius:50%; background:#b9bdb8; }
.notification-item.unread .notification-dot { background:var(--accent); box-shadow:0 0 0 3px rgba(219,91,53,.1); }
.notification-copy { min-width:0; display:grid; gap:4px; }
.notification-copy strong { font-size:12px; }
.notification-copy p { margin:0; color:#5d6863; font-size:11px; line-height:1.45; }
.notification-copy time { color:#939993; font:9px "DM Mono",monospace; }
.notification-empty { margin:0; padding:13px 0 2px; color:var(--muted); font-size:11px; }

.focus-toggle { width:38px; height:38px; min-height:38px; display:grid; place-items:center; padding:0; border-radius:50%; font-size:18px; line-height:1; }
.focus-corner { position:absolute; z-index:12; right:15px; bottom:15px; border-color:#d8d6ce; background:rgba(255,253,249,.9); box-shadow:0 3px 12px rgba(25,37,34,.07); backdrop-filter:blur(8px); }
.quiz-card,.quiz-result { position:relative; padding-bottom:70px; }
.quiz-result .focus-corner { right:15px; bottom:15px; }
.focus-mode .focus-corner { color:#fff; border-color:var(--ink); background:rgba(30,42,42,.92); }
.focus-mode .app-menu-trigger { display:none; }

.email-confirmation-backdrop { position:fixed; z-index:210; inset:0; width:100%; height:100%; padding:0; border:0; background:rgba(19,29,27,.68); cursor:default; animation:fade-in .2s ease; }
.email-confirmation-popup { position:fixed; z-index:220; top:50%; left:50%; width:min(430px,calc(100vw - 30px)); padding:31px; border-radius:10px; background:#fffdf9; box-shadow:0 28px 80px rgba(10,18,17,.32); text-align:center; transform:translate(-50%,-50%); animation:auth-in .28s cubic-bezier(.22,1,.36,1); }
.confirmation-icon { width:62px; height:62px; display:grid; place-items:center; margin:0 auto 18px; border-radius:50%; color:#fff; background:var(--teal); font-size:27px; }
.email-confirmation-popup h2 { margin:0 0 12px; font:600 31px Fraunces,serif; letter-spacing:-1.2px; }
.email-confirmation-popup > p:not(.eyebrow) { margin:0; color:#4f5e58; font-size:14px; line-height:1.58; }
.email-confirmation-popup > p strong { color:var(--ink); overflow-wrap:anywhere; }
.email-confirmation-popup small { display:block; margin:15px 0 22px; color:#7d8580; font-size:11px; line-height:1.45; }
.email-confirmation-popup .primary-button { width:100%; }

@media (max-width:700px) {
  .page-shell { padding-left:15px; padding-right:15px; }
  .topbar { height:66px; }
  .brand { font-size:18px; }
  .app-menu-trigger { top:12px; right:12px; min-height:41px; padding:8px 11px; }
  .app-menu-trigger > span:nth-child(2) { display:none; }
  .app-menu { width:min(390px,100vw); padding:20px 17px; }
  .app-menu-head h2 { font-size:29px; }
  .home-panel { padding-bottom:38px; }
  .hero { padding:54px 0 34px; }
  .hero h1 { font-size:clamp(41px,13vw,54px); }
  .learning-layout { margin-top:31px; }
  .study-filters { width:100%; }
  .starred-filter { width:auto; flex:1; }
  .flashcard .card-face { padding-bottom:67px; }
  .quiz-card,.quiz-result { padding-bottom:66px; }
  .focus-corner { right:12px; bottom:12px; }
  .focus-mode .learning-layout { margin-top:0; padding:18px 10px; }
  .focus-mode .flashcard,.focus-mode .flashcard-inner { min-height:calc(100dvh - 105px); }
  .focus-mode .flashcard .card-face { padding:68px 23px 72px; }
  .focus-mode .quiz-card { max-height:calc(100dvh - 36px); }
  .email-confirmation-popup { padding:27px 20px 22px; }
  .email-confirmation-popup h2 { font-size:28px; }
}

/* Strona główna, bezpośredni ranking oraz streszczenia rozdziałów */
.home-overview { display:grid; grid-template-columns:minmax(220px,.72fr) minmax(0,1.5fr); gap:52px; margin-top:54px; padding-top:34px; border-top:1px solid var(--line); }
.home-overview-heading h2 { max-width:350px; margin:0 0 13px; font:600 31px/1.08 Fraunces,Georgia,serif; letter-spacing:-1.4px; }
.home-overview-heading > p:last-child { max-width:390px; margin:0; color:var(--muted); font-size:14px; line-height:1.6; }
.home-info-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.home-info-grid article { min-width:0; padding:2px 22px 2px; border-left:1px solid var(--line); }
.home-info-grid article:first-child { padding-left:0; border-left:0; }
.home-info-grid article > span { display:block; margin-bottom:23px; color:var(--accent); font:500 10px "DM Mono",monospace; }
.home-info-grid strong { display:block; margin-bottom:8px; font:600 17px Fraunces,Georgia,serif; letter-spacing:-.25px; }
.home-info-grid strong b { font:inherit; }
.home-info-grid p { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.home-account-cta { min-width:145px; }

.card-direction { position:absolute; z-index:8; top:20px; right:69px; width:39px; height:39px; display:grid; place-items:center; padding:0; border:1px solid #ded9cc; border-radius:50%; background:rgba(255,253,249,.9); color:#8f9993; box-shadow:0 4px 12px rgba(35,40,36,.06); font:600 18px/1 "DM Mono",monospace; transition:.22s ease; }
.card-direction:hover { transform:scale(1.06); border-color:var(--teal); color:var(--teal); background:#f2f8f6; }
.card-direction.active { border-color:var(--teal); color:#fff; background:var(--teal); }

.scope-chapter-head { display:flex; align-items:center; gap:12px; }
.scope-chapter-head .scope-toggle { flex:1; min-width:0; }
.scope-topics-label { margin-left:auto; color:#878f89; font:500 9px "DM Mono",monospace; letter-spacing:.55px; text-transform:uppercase; }
.scope-summary-toggle { flex:0 0 auto; margin-right:5px; padding:8px 11px; border:1px solid #c9d8d4; border-radius:18px; background:transparent; color:var(--teal); font:500 10px "DM Mono",monospace; letter-spacing:.35px; transition:.18s ease; }
.scope-summary-toggle:hover,.scope-summary-toggle[aria-expanded="true"] { border-color:var(--teal); background:#e7f0ed; color:#175e56; }
.scope-chapter.topics-open .scope-arrow { transform:rotate(45deg); }
.scope-chapter.topics-open .scope-content { display:block; }
.scope-summary-panel { display:none; margin:0 35px 23px 58px; padding:22px 24px; border-left:2px solid var(--teal); background:#edf2ef; }
.scope-chapter.summary-open .scope-summary-panel { display:block; animation:appear .25s ease; }
.scope-summary-panel > p { max-width:790px; margin:0 0 20px; color:#314b45; font-size:15px; line-height:1.65; }
.scope-summary-label { display:block; margin-bottom:11px; color:var(--teal); font:500 9px "DM Mono",monospace; letter-spacing:.8px; text-transform:uppercase; }
.scope-summary-panel ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 28px; margin:0; padding:0; list-style:none; }
.scope-summary-panel li { display:grid; gap:4px; }
.scope-summary-panel li strong { color:var(--ink); font-size:12px; line-height:1.35; }
.scope-summary-panel li span { color:#586862; font-size:12px; line-height:1.5; }

@media (max-width:800px) {
  .home-overview { grid-template-columns:1fr; gap:27px; margin-top:39px; }
  .home-overview-heading h2 { max-width:none; }
}

@media (max-width:700px) {
  .home-info-grid { grid-template-columns:1fr; }
  .home-info-grid article,.home-info-grid article:first-child { display:grid; grid-template-columns:28px minmax(0,1fr); gap:2px 10px; padding:14px 0; border-left:0; border-top:1px solid var(--line); }
  .home-info-grid article:first-child { border-top:0; }
  .home-info-grid article > span { grid-row:1/3; margin:3px 0 0; }
  .home-info-grid strong { margin:0; }
  .card-direction { top:15px; right:62px; }
  .scope-chapter-head { align-items:stretch; flex-wrap:wrap; gap:0; padding:15px 0; }
  .scope-chapter-head .scope-toggle { width:100%; flex-basis:100%; padding:4px 2px 10px; }
  .scope-copy strong { font-size:19px; }
  .scope-topics-label { display:none; }
  .scope-summary-toggle { margin:0 0 0 53px; }
  .scope-content { padding:3px 4px 20px 22px; }
  .scope-content ol { columns:1; }
  .scope-summary-panel { margin:0 0 20px 22px; padding:18px; }
  .scope-summary-panel ul { grid-template-columns:1fr; }
}
