
/* ==========================================================
   GermanBook v1.7.0
   COMPLETE STYLE REWRITE
   Unified rounded techno UI, dark/light, mobile-first.
   ========================================================== */

:root{
  color-scheme: light dark;

  --bg:#eaf0f4;
  --bg-deep:#e4ebef;
  --header:#f4f8fa;
  --footer:#f4f8fa;
  --surface:#f8fbfc;
  --surface-2:#eef4f7;
  --surface-3:#e8eff3;

  --text:#18232d;
  --muted:#687784;
  --soft:#87949f;
  --line:rgba(28,49,65,.10);
  --line-strong:rgba(28,49,65,.16);

  --blue:#5c96d8;
  --green:#78a95f;
  --cyan:#4da5a8;
  --violet:#9a70bc;
  --amber:#b38745;
  --red:#b7665e;

  --r-xl:26px;
  --r-lg:20px;
  --r-md:15px;
  --r-sm:11px;

  --nav-h:48px;
  --shadow:0 12px 30px rgba(28,48,64,.07);
  --shadow-soft:0 5px 18px rgba(28,48,64,.05);
}

/* ---------- v1.7.92 Schweizerdeutsch · Aargau/Zürich ---------- */
.swiss-view{max-width:1040px;margin:0 auto;padding-bottom:28px}
.swiss-hero{
  position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:20px;
  margin-bottom:14px;padding:24px 26px;border:1px solid rgba(183,42,52,.2);border-radius:var(--r-xl);
  background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--surface) 84%,#d52b3a 16%));box-shadow:var(--shadow)
}
.swiss-hero::after{content:"";position:absolute;right:-75px;bottom:-120px;width:260px;height:260px;border-radius:50%;background:rgba(213,43,58,.08)}
.swiss-kicker{display:block;color:#c52b39;font-size:.73rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.swiss-hero h1{margin:4px 0 3px;font-size:clamp(1.65rem,4vw,2.45rem);line-height:1.08}
.swiss-hero p{font-size:.94rem}
.swiss-hero-mark{position:relative;z-index:1;flex:0 0 auto;display:grid;place-items:center;width:74px;height:74px;border-radius:22px;background:#d52b3a;color:#fff;font-size:1.3rem;font-weight:850;box-shadow:0 12px 28px rgba(213,43,58,.24)}
.swiss-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:12px}
.swiss-stats>div{display:flex;flex-direction:column;gap:1px;padding:14px 16px;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-soft)}
.swiss-stats strong{font-size:1.45rem;line-height:1.1}
.swiss-stats span{color:var(--muted);font-size:.77rem}
.swiss-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:12px;padding:5px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.swiss-mode-btn{min-height:43px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-weight:750}
.swiss-mode-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}
.swiss-category-filters{display:flex;gap:7px;overflow-x:auto;padding:1px 1px 10px;scrollbar-width:none}
.swiss-category-filters::-webkit-scrollbar{display:none}
.swiss-category-btn{flex:0 0 auto;min-height:38px;padding:0 12px;border-radius:999px;background:var(--surface);color:var(--muted);white-space:nowrap}
.swiss-category-btn span{margin-left:4px;color:var(--soft);font-size:.75rem}
.swiss-category-btn.active{border-color:rgba(213,43,58,.4);background:rgba(213,43,58,.09);color:var(--text)}
.swiss-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.swiss-card{display:flex;flex-direction:column;min-width:0;padding:17px;border:1px solid var(--line-strong);border-radius:21px;background:var(--surface);box-shadow:var(--shadow-soft)}
.swiss-card.is-learned{border-color:color-mix(in srgb,var(--green) 58%,transparent);background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface) 91%,var(--green) 9%))}
.swiss-card-top{display:flex;align-items:center;gap:7px;margin-bottom:13px}
.swiss-card-number{color:var(--soft);font-size:.72rem;font-weight:750}
.swiss-card-category{padding:4px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:.68rem;font-weight:750}
.swiss-card-status{margin-left:auto;font-size:.68rem;font-weight:800}
.swiss-status-new{color:var(--soft)}.swiss-status-learning{color:var(--amber)}.swiss-status-learned{color:var(--green)}
.swiss-card-hd{display:flex;flex-direction:column;color:var(--muted);font-size:1rem}
.swiss-card-hd span,.swiss-card-dialect span{color:var(--soft);font-size:.68rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.swiss-card-dialect{display:flex;flex-direction:column;margin:8px 0 6px;color:var(--text)}
.swiss-card-dialect strong{font-size:1.55rem;line-height:1.2}
.swiss-card-ru{font-size:1.04rem;color:var(--text)}
.swiss-card-note{margin-top:12px;padding-top:11px;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}
.swiss-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:14px;color:var(--soft);font-size:.72rem}
.swiss-learn-btn{padding:7px 10px;border-radius:10px;background:var(--surface-2);color:var(--text);font-size:.72rem;font-weight:700}
.swiss-loading{grid-column:1/-1;padding:30px;text-align:center;border:1px dashed var(--line-strong);border-radius:18px;color:var(--muted)}
.swiss-error{color:var(--red)}
.swiss-training-setup,.swiss-training-result{padding:32px 24px;text-align:center;border:1px solid var(--line-strong);border-radius:23px;background:var(--surface);box-shadow:var(--shadow-soft)}
.swiss-training-setup h2,.swiss-training-result h2{margin:5px 0}.swiss-training-setup p,.swiss-training-result p{margin:0 auto 18px;max-width:520px}
.swiss-primary-btn{min-height:46px;padding:0 24px;border:0;border-radius:14px;background:#d52b3a;color:#fff;font-weight:800;box-shadow:0 10px 24px rgba(213,43,58,.2)}
.swiss-training-progress{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:4px 2px 12px;color:var(--muted);font-size:.75rem;font-weight:700}
.swiss-training-progress>div{height:7px;overflow:hidden;border-radius:999px;background:var(--surface-3)}
.swiss-training-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d52b3a,var(--amber))}
.swiss-question-card{padding:24px;border:1px solid var(--line-strong);border-radius:23px;background:var(--surface);box-shadow:var(--shadow)}
.swiss-question-prompt{margin:15px 0 20px;font-size:clamp(1.45rem,5vw,2.2rem);font-weight:800;line-height:1.22}
.swiss-answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.swiss-answer-btn{min-height:56px;padding:10px 12px;border-radius:14px;background:var(--surface-2);color:var(--text);font-weight:680}
.swiss-answer-btn.correct,.swiss-blank-form input.correct{border-color:var(--green);background:color-mix(in srgb,var(--surface) 84%,var(--green) 16%)}
.swiss-answer-btn.wrong,.swiss-blank-form input.wrong{border-color:var(--red);background:color-mix(in srgb,var(--surface) 84%,var(--red) 16%)}
.swiss-blank-form{display:grid;grid-template-columns:1fr auto;gap:8px}.swiss-blank-form input{min-width:0}.swiss-blank-form button{padding:0 18px;color:#fff;background:#d52b3a}
.swiss-feedback{display:flex;align-items:center;gap:10px;margin-top:14px;padding:13px;border-radius:14px;background:var(--surface-2)}
.swiss-feedback strong{color:var(--green)}.swiss-feedback.wrong strong{color:var(--red)}.swiss-feedback span{font-weight:750}.swiss-feedback button{margin-left:auto;padding:8px 13px;background:var(--text);color:var(--surface);font-weight:750}
.swiss-training-result>strong{display:block;margin:7px 0;font-size:2.4rem;color:#d52b3a}

@media(max-width:700px){
  .swiss-view{padding-bottom:10px}.swiss-hero{padding:18px}.swiss-hero-mark{width:58px;height:58px;border-radius:17px;font-size:1.02rem}
  .swiss-stats{grid-template-columns:1fr 1fr}.swiss-stats>div{padding:11px 13px}.swiss-card-list{grid-template-columns:1fr}
  .swiss-card{padding:15px}.swiss-answer-grid{grid-template-columns:1fr}.swiss-question-card{padding:18px 15px}
  .swiss-card-footer{align-items:flex-end}.swiss-learn-btn{max-width:48%}.swiss-blank-form{grid-template-columns:1fr}.swiss-blank-form button{min-height:46px}
  .swiss-feedback{align-items:flex-start;flex-wrap:wrap}.swiss-feedback button{width:100%;margin:2px 0 0}
}

html[data-theme="dark"]{
  color-scheme:dark;

  --bg:#08131c;
  --bg-deep:#061019;
  --header:#0e1c27;
  --footer:#0e1c27;
  --surface:#12212c;
  --surface-2:#172732;
  --surface-3:#1b2d39;

  --text:#f1f5f7;
  --muted:#9aa8b2;
  --soft:#768792;
  --line:rgba(174,208,229,.08);
  --line-strong:rgba(174,208,229,.13);

  --blue:#66a9ec;
  --green:#82bd68;
  --cyan:#55bfc0;
  --violet:#b47bd0;
  --amber:#c7984b;
  --red:#c46d62;

  --shadow:0 18px 42px rgba(0,0,0,.22);
  --shadow-soft:0 8px 24px rgba(0,0,0,.14);
}

/* ---------- reset ---------- */

*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg)}
html{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Arial,sans-serif;
  -webkit-text-size-adjust:100%;
}
body{
  min-height:100vh;
  min-height:100svh;
  color:var(--text);
  font-size:16px;
  line-height:1.42;
  overflow-x:hidden;
}
button,input,select,textarea{font:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:disabled{opacity:.5;cursor:default}
a{color:inherit}
h1,h2,h3,h4,p{margin:0}
p{color:var(--muted)}
.hidden{display:none !important}
.muted{color:var(--muted)!important}
.wide{grid-column:1/-1}
.spacer{flex:1}

/* ---------- shared controls ---------- */

button,.linkbtn,input,select,textarea{
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  outline:none;
}
input,select,textarea{
  width:100%;
  min-height:46px;
  padding:10px 13px;
  background:var(--surface-2);
  color:var(--text);
}
textarea{min-height:100px;resize:vertical}
input:focus,select:focus,textarea:focus{
  border-color:color-mix(in srgb,var(--blue) 64%,var(--line));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 12%,transparent);
}
.primary-large,.mini-add,.return-review,.dialog-actions button{
  min-height:48px;
  padding:10px 17px;
  background:linear-gradient(180deg,#3d6a89,#315b76);
  color:#f7fafc;
  border:1px solid rgba(108,173,218,.35);
  border-radius:14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.ghost,.linkbtn{
  min-height:42px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--surface-2);
  color:var(--text);
  text-decoration:none;
}

/* ---------- header ---------- */

.app-header{
  position:sticky;
  top:0;
  z-index:40;
  padding-top:env(safe-area-inset-top,0px);
  background:var(--header);
  border-bottom:1px solid var(--line-strong);
  box-shadow:0 5px 18px rgba(0,0,0,.035);
}
.header-row{
  min-height:58px;
  max-width:1180px;
  margin:0 auto;
  padding:8px 16px;
  display:flex;
  align-items:center;
  gap:14px;
}
.brand-mini{display:flex;align-items:center;gap:13px;min-width:max-content}
.logo-mini.logo-book{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:var(--surface-2);
  color:var(--text);
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb,var(--blue) 66%,transparent),
    inset 0 -2px 0 color-mix(in srgb,var(--amber) 82%,transparent);
}
.book-mark{font-size:1.72rem;line-height:1;transform:rotate(90deg)}
.brand-title{font-size:1.18rem;font-weight:720;letter-spacing:-.015em}
.brand-stats{font-size:.68rem;color:var(--soft)}
.top-tabs{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:3px;
  overflow-x:auto;
  scrollbar-width:none;
}
.top-tabs::-webkit-scrollbar{display:none}
.tab{
  border:0;
  background:transparent;
  color:var(--muted);
  min-height:40px;
  padding:0 11px;
  border-radius:12px;
  white-space:nowrap;
}
.tab.active{background:var(--surface-2);color:var(--text)}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:5px}
.header-actions .theme-toggle{
  width:38px;
  height:38px;
  padding:0;
  border-radius:50%;
  background:var(--surface-2);
  font-size:1.18rem;
}
.compact-actions .ghost:not(.theme-toggle),
.compact-actions .linkbtn:not(.logout-icon){display:none}

/* ---------- main ---------- */

.shell{
  width:min(100%,1180px);
  margin:0 auto;
  padding:12px 12px calc(28px + env(safe-area-inset-bottom));
}
.view{width:100%}
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding:10px 2px 14px;
}
.section-head h2{font-size:1.55rem;font-weight:730;letter-spacing:-.02em}
.section-head h3{font-size:1.12rem}
.section-head p{margin-top:4px}
.section-head.compact{padding:8px 0 10px}

/* ---------- home dashboard ---------- */

.render-home{
  display:grid;
  gap:10px;
  width:min(100%,760px);
  margin:0 auto;
}
.render-section{
  padding:12px;
  border-radius:22px;
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.render-section-title{
  margin:0 0 10px;
  font-size:1.14rem;
  line-height:1.15;
  font-weight:740;
  letter-spacing:-.02em;
}
.render-grid{display:grid;gap:9px}
.render-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.render-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}

.render-tile{
  --tile-color:var(--blue);
  --tile-bg1:#edf5ff;
  --tile-bg2:#e4eef9;
  --tile-glow:rgba(89,147,218,.17);

  position:relative;
  min-width:0;
  min-height:138px;
  padding:13px;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto auto 1fr auto auto;
  text-align:left;
  color:var(--text);
  border:.7px solid color-mix(in srgb,var(--tile-color) 68%,transparent);
  border-radius:18px;
  background:
    radial-gradient(circle at 18% 4%,var(--tile-glow),transparent 48%),
    linear-gradient(145deg,var(--tile-bg1),var(--tile-bg2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 24px rgba(0,0,0,.06);
}
html[data-theme="dark"] .render-tile-blue{
  --tile-bg1:#163154;--tile-bg2:#13283f;--tile-glow:rgba(72,148,235,.31)
}
html[data-theme="dark"] .render-tile-green{
  --tile-bg1:#223e24;--tile-bg2:#17301e;--tile-glow:rgba(113,192,89,.28)
}
html[data-theme="dark"] .render-tile-cyan{
  --tile-bg1:#164044;--tile-bg2:#123136;--tile-glow:rgba(74,201,198,.25)
}
html[data-theme="dark"] .render-tile-violet{
  --tile-bg1:#3a2746;--tile-bg2:#2b2138;--tile-glow:rgba(190,99,223,.27)
}
html[data-theme="dark"] .render-tile-amber{
  --tile-bg1:#49331b;--tile-bg2:#302317;--tile-glow:rgba(226,161,52,.28)
}
html[data-theme="dark"] .render-tile-red{
  --tile-bg1:#482722;--tile-bg2:#311d1c;--tile-glow:rgba(225,91,72,.26)
}
html:not([data-theme="dark"]) .render-tile-blue{
  --tile-color:#5b97d9;--tile-bg1:#edf5ff;--tile-bg2:#e5effb;--tile-glow:rgba(80,141,219,.17)
}
html:not([data-theme="dark"]) .render-tile-green{
  --tile-color:#78a960;--tile-bg1:#eff8ed;--tile-bg2:#e6f2e4;--tile-glow:rgba(110,177,94,.17)
}
html:not([data-theme="dark"]) .render-tile-cyan{
  --tile-color:#4fa4a8;--tile-bg1:#edf9fa;--tile-bg2:#e4f3f4;--tile-glow:rgba(75,185,182,.17)
}
html:not([data-theme="dark"]) .render-tile-violet{
  --tile-color:#9971ba;--tile-bg1:#f6effb;--tile-bg2:#eee5f6;--tile-glow:rgba(165,100,215,.16)
}
html:not([data-theme="dark"]) .render-tile-amber{
  --tile-color:#b28645;--tile-bg1:#fbf3e6;--tile-bg2:#f4ead9;--tile-glow:rgba(211,156,65,.16)
}
html:not([data-theme="dark"]) .render-tile-red{
  --tile-color:#ba685f;--tile-bg1:#faefed;--tile-bg2:#f4e5e3;--tile-glow:rgba(206,103,89,.15)
}

.render-tile-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  margin-bottom:9px;
  border-radius:50%;
  color:color-mix(in srgb,var(--tile-color) 84%,var(--text));
  background:color-mix(in srgb,var(--tile-color) 17%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tile-color) 38%,transparent);
  font-size:1.02rem;
}
.render-tile-label{
  min-height:0;
  color:var(--muted);
  font-size:.96rem;
  line-height:1.14;
  font-weight:560;
}
.render-tile strong{
  align-self:end;
  margin-top:8px;
  color:var(--text);
  font-size:1.72rem;
  line-height:1;
  font-weight:690;
}
.render-tile-unit{
  margin-top:4px;
  color:var(--muted);
  font-size:.68rem;
}
.render-stat{min-height:116px}
.render-training-stats .render-tile{padding:11px}
.render-training-stats .render-tile-icon{width:34px;height:34px;margin-bottom:7px}
.render-training-stats .render-tile-label{font-size:.84rem}
.render-training-stats .render-tile strong{font-size:1.48rem}

/* ---------- filters / dictionary ---------- */

.filters,.irr-filters{
  display:grid;
  grid-template-columns:minmax(180px,2fr) repeat(4,minmax(130px,1fr));
  gap:8px;
  margin-bottom:12px;
}
.cards{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(270px,1fr));
  gap:10px;
}
.card,.panel,.exercise{
  position:relative;
  padding:15px;
  border-radius:var(--r-lg);
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.card{cursor:pointer}
.card-edit{
  position:absolute;
  top:10px;
  right:10px;
  width:34px;
  height:34px;
  padding:0;
  border-radius:50%;
  background:var(--surface-2);
  color:var(--muted);
}
.card-meta-top{display:flex;gap:5px;flex-wrap:wrap;padding-right:38px;min-height:24px}
.card-top{display:flex;align-items:center;gap:8px;margin-top:6px}
.card-top h3{font-size:1.22rem;letter-spacing:-.015em}
.status-dot{width:8px;height:8px;border-radius:50%;margin-left:auto}
.status-new{background:var(--blue)}
.status-seen{background:var(--amber)}
.status-learned{background:var(--green)}
.top-chip,.badge,.freq-pill,.irr-status{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 8px;
  border-radius:999px;
  background:var(--surface-2);
  color:var(--muted);
  font-size:.72rem;
}
.level{color:var(--blue)}
.verb-line{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;color:var(--muted);font-size:.86rem}
.verb-aux{margin-top:3px;color:var(--soft);font-size:.72rem}
.verb-aux strong{color:var(--muted);font-weight:650}
.dot{color:var(--soft)}
.translation{margin-top:10px;font-size:1rem;color:var(--text)}
.synonyms{margin-top:5px;color:var(--muted);font-size:.86rem}
.prep-pair{display:flex;align-items:center;gap:7px;margin-top:8px}
.prep-arrow{color:var(--blue)}
.card-examples{margin-top:10px}
.example-de{font-size:.88rem;color:var(--text)}
.example-ru{font-size:.82rem;color:var(--muted);margin-top:2px}
.empty{padding:28px;text-align:center;color:var(--muted)}

/* ---------- review ---------- */

.review-card{
  max-width:700px;
  margin:18px auto;
  padding:22px;
  border-radius:var(--r-xl);
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.review-progress{text-align:right;color:var(--soft);font-size:.8rem}
.review-front{
  min-height:260px;
  display:grid;
  place-items:center;
  text-align:center;
}
.review-word{font-size:clamp(2rem,7vw,3.5rem);font-weight:720}
.review-back{margin-top:14px;text-align:center}
.review-translation{font-size:1.45rem;font-weight:650;margin-bottom:10px}
.grade-row,.detail-review-actions{display:grid;gap:8px;margin-top:14px}
.grade-row-3,.detail-review-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.grade,.detail-grade{
  min-height:54px;
  border-radius:14px;
  color:#fff;
  background:#775d32;
}
.grade.bad,.detail-grade.bad{background:#7a3838}
.grade.good,.detail-grade.good{background:#356747}

/* ---------- study ---------- */

.render-study-view{
  height:100%;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.render-study-topbar{
  flex:0 0 46px;
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.render-round-btn{
  width:40px;
  height:40px;
  padding:0;
  border-radius:50%;
  background:var(--surface);
  color:var(--text);
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
  font-size:1.3rem;
}
.render-study-title{text-align:center;font-size:1.02rem;font-weight:720}

.render-study-setup{
  width:100%;
  max-width:780px;
  margin:8px auto 0;
  padding:22px 18px 20px;
  border-radius:var(--r-xl);
  background:var(--surface);
  border:1px solid var(--line-strong);
  box-shadow:var(--shadow);
  text-align:center;
}
.study-launch-kicker{
  color:var(--blue);
  font-size:.8rem;
  font-weight:760;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.render-study-setup h3{
  margin:6px 0 4px;
  font-size:clamp(1.7rem,6vw,2.25rem);
  letter-spacing:-.025em;
}
.study-count-note{color:var(--muted)}
.study-count-row-clean{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:9px;
  max-width:560px;
  margin:20px auto 18px;
}
.study-count{
  min-height:60px;
  background:var(--surface-2);
  color:var(--muted);
  border:1px solid var(--line);
  border-radius:15px;
}
.study-count.active{
  color:var(--text);
  background:var(--surface-3);
  border-color:color-mix(in srgb,var(--blue) 58%,var(--line));
  box-shadow:inset 0 -3px 0 var(--blue);
}
.study-start-clean{
  display:block;
  width:min(100%,320px);
  margin:0 auto;
  min-height:56px;
  border-radius:16px;
}

#studyArea{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.study-progress-wrap{flex:0 0 auto;margin-bottom:10px}
.study-progress-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  color:var(--muted);
  font-size:.84rem;
  margin-bottom:7px;
}
.study-progress-bar{
  height:8px;
  overflow:hidden;
  border-radius:999px;
  background:var(--surface-3);
}
.study-progress-bar i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#76cf68,#b8d8f2);
}
.study-stage-sub{display:none}

.study-card.study-card-immersive{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  padding:11px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:var(--r-xl);
  background:var(--surface);
  border:1px solid var(--line-strong);
  box-shadow:var(--shadow);
}
.study-scene{
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.study-focus-card{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  padding:64px 18px 18px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  overflow:hidden;
  text-align:center;
  border-radius:20px;
  background:
    radial-gradient(circle at 50% 84%,rgba(83,166,142,.12),transparent 38%),
    var(--surface-2);
  border:1px solid var(--line);
}
.study-scene-top{
  position:absolute;
  top:15px;left:0;right:0;
  padding:0 17px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  color:var(--muted);
}
.study-scene-kicker,.study-meta-badge{font-size:.9rem}
.study-focus-word{
  width:100%;
  font-size:clamp(2rem,7.2vw,3.5rem);
  line-height:1.05;
  font-weight:700;
  letter-spacing:-.03em;
  overflow-wrap:anywhere;
}
.study-focus-word-ru{font-size:clamp(1.55rem,5.6vw,2.7rem)}
.study-ask{font-size:1rem;color:var(--muted);margin-bottom:10px}
.study-example{
  width:100%;
  max-width:680px;
  margin:14px auto 0;
  color:var(--muted);
  font-size:.96rem;
  line-height:1.34;
}
.study-chip-action{
  min-height:48px;
  padding:0 22px;
  border-radius:999px;
  background:var(--surface-3);
  color:var(--text);
}
.study-answer{width:100%;display:grid;gap:12px;margin-top:auto}
.study-answer-main{font-size:1.6rem;font-weight:680;text-align:center}
.study-three-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.study-three-actions button{
  min-height:68px;
  border-radius:15px;
  color:#fff;
}
.study-wrong{background:#783638}
.study-repeat{background:#75572a}
.study-right{background:#356648}
.study-action-icon{display:block;margin-top:4px}

.study-options{width:100%;margin-top:auto}
.study-options-choices{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.study-options-choices button{
  min-height:72px;
  padding:10px;
  border-radius:15px;
  background:var(--surface-3);
  color:var(--text);
}
.study-options-choices button.correct{background:#285b3d;color:#fff}
.study-options-choices button.wrong{background:#713539;color:#fff}

.study-typing{
  width:100%;
  margin-top:auto;
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
}
.study-typing input{min-height:56px;border-radius:16px}
.study-typing button{
  min-height:54px;
  border-radius:16px;
  background:var(--surface-3);
  color:var(--blue);
}
.study-feedback{width:100%}
.study-result-panel{
  display:grid;
  gap:10px;
  padding:13px;
  border-radius:18px;
  border:1px solid var(--line);
}
.study-result-panel.is-correct{background:color-mix(in srgb,var(--green) 16%,var(--surface))}
.study-result-panel.is-wrong{background:color-mix(in srgb,var(--red) 15%,var(--surface))}
.study-result-head{display:flex;align-items:center;gap:11px}
.study-result-icon{
  width:42px;height:42px;display:grid;place-items:center;border-radius:50%;
  background:var(--surface-3);font-weight:800
}
.study-result-head>div{display:grid;gap:1px}
.study-result-head>div>span{font-size:.8rem;color:var(--muted)}
.study-result-line{
  display:grid;
  grid-template-columns:95px 1fr;
  gap:10px;
  padding-top:8px;
  border-top:1px solid var(--line);
}
.study-result-line span{font-size:.76rem;color:var(--muted)}
.study-next-btn{
  min-height:50px;
  border-radius:15px;
  background:color-mix(in srgb,var(--cyan) 23%,var(--surface-2));
  color:var(--text);
}
.study-finish{text-align:center;padding:20px}
.study-finish-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:16px 0}
.study-finish-actions{display:flex;justify-content:center;gap:8px}

/* ---------- topics / lessons ---------- */

.topics-list,.exercise-list{display:grid;gap:9px}
.topic-accordion{
  overflow:hidden;
  border-radius:var(--r-lg);
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.topic-accordion summary{
  list-style:none;
  cursor:pointer;
  padding:16px;
}
.topic-accordion summary::-webkit-details-marker{display:none}
.topic-kicker{color:var(--blue);font-size:.74rem;font-weight:720;text-transform:uppercase;letter-spacing:.08em}
.topic-accordion h3{margin-top:3px;font-size:1.1rem}
.topic-accordion summary p{margin-top:5px;font-size:.88rem}
.topic-body{padding:0 13px 13px;display:grid;gap:9px}
.topic-block{
  padding:13px;
  border-radius:15px;
  background:var(--surface-2);
  border:1px solid var(--line);
}
.topic-block h4{margin-bottom:7px}
.grammar-formula,.topic-compare{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin:9px 0;
}
.grammar-formula span,.topic-compare>div{
  padding:9px;
  border-radius:11px;
  background:var(--surface-3);
  text-align:center;
}
.topic-example{
  padding:10px;
  margin-top:7px;
  border-radius:11px;
  background:var(--surface-3);
}
.topic-example .de{color:var(--text)}
.topic-example .ru{margin-top:3px;color:var(--muted)}
.topic-list{padding-left:20px}
.lesson-block{margin-bottom:12px}
.lessons-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}
.exercise{display:grid;gap:7px}
.ex-delete{justify-self:end;background:transparent;color:var(--red)}
.checkline{display:flex;gap:8px;align-items:center}

/* ---------- irregular tables ---------- */

.irregular-head{align-items:center}
.irregular-view-toggle{display:flex;gap:6px}
.irregular-view-toggle .active{color:var(--blue)}
.irregular-table-wrap{
  overflow:auto;
  border-radius:var(--r-lg);
  border:1px solid var(--line);
  background:var(--surface);
}
.irr-table{
  width:100%;
  border-collapse:collapse;
  min-width:760px;
}
.irr-table th,.irr-table td{
  padding:11px 10px;
  text-align:left;
  border-bottom:1px solid var(--line);
  vertical-align:middle;
}
.irr-table th{font-size:.72rem;color:var(--muted);font-weight:650;background:var(--surface-2)}
.irr-click-row{cursor:pointer}
.irr-click-row:hover{background:var(--surface-2)}
.irr-click-row.is-mine{background:color-mix(in srgb,var(--green) 8%,transparent)}
.present-slash{color:var(--muted)}
.study-mask .maskable span{filter:blur(5px);user-select:none}
.in-dict-mark{color:var(--green)}
.mini-add{width:34px;height:34px;padding:0}

/* ---------- dialogs / detail ---------- */

dialog{
  padding:0;
  border:0;
  color:var(--text);
  background:transparent;
}
dialog::backdrop{background:rgba(2,8,13,.70);backdrop-filter:blur(7px)}
.detail-dialog,
dialog#editor,
dialog#exerciseDialog,
dialog#irrDetail{
  width:min(760px,calc(100vw - 20px));
  max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);
  margin-top:max(10px,env(safe-area-inset-top));
  margin-bottom:max(10px,env(safe-area-inset-bottom));
  border-radius:var(--r-xl);
  background:var(--surface);
  box-shadow:0 28px 80px rgba(0,0,0,.42);
  overflow:auto;
}
.detail-wrap{padding:16px}
.detail-head,.dialog-head{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding:4px 0 13px;
  background:var(--surface);
}
.detail-meta{color:var(--muted);font-size:.8rem;margin-bottom:5px}
.detail-head h2{font-size:1.65rem;letter-spacing:-.025em}
.detail-head-actions{display:flex;gap:6px}
.icon-btn{
  width:42px;height:42px;padding:0;border-radius:50%;
  background:var(--surface-2);color:var(--text)
}
.detail-translation{
  padding:16px;
  border-radius:16px;
  background:color-mix(in srgb,var(--green) 9%,var(--surface-2));
  font-size:1.25rem;
  font-weight:650;
}
.detail-synonyms,.detail-prep{padding:9px 2px;color:var(--muted)}
.detail-section{
  margin-top:10px;
  padding:13px;
  border-radius:16px;
  background:var(--surface-2);
  border:1px solid var(--line);
}
.detail-section h3{margin-bottom:9px;font-size:1rem}
.detail-verb-grid,.detail-adjective-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.detail-principal-grid{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:7px;
}
.detail-verb-grid>.conj-block{grid-column:1/-1}
.detail-form-cell,.conj-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:46px;
  padding:9px 11px;
  border-radius:11px;
  background:var(--surface-3);
}
.detail-form-cell span,.conj-row span{color:var(--muted)}
.detail-example{
  padding:10px 12px;
  margin-bottom:7px;
  border-radius:11px;
  background:var(--surface-3);
}
.detail-example .ru{margin-top:3px;color:var(--muted)}
.conj-block{display:grid;gap:6px}
.conj-title{color:var(--muted);font-size:.8rem}
.dialog-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:12px;
}

/* ---------- more sheet ---------- */

.more-sheet{position:fixed;inset:0;z-index:90;display:grid;align-items:end}
.more-sheet-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.54);backdrop-filter:blur(6px)}
.more-sheet-panel{
  position:relative;
  width:min(100%,640px);
  margin:0 auto;
  padding:15px 15px calc(15px + env(safe-area-inset-bottom));
  border-radius:24px 24px 0 0;
  background:var(--surface);
  border:1px solid var(--line-strong);
  box-shadow:0 -20px 60px rgba(0,0,0,.28);
}
.more-menu-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.more-close{width:40px;height:40px;padding:0;border-radius:50%;background:var(--surface-2);color:var(--text)}
.more-menu-grid{display:grid;gap:6px}
.more-menu-grid>button,.more-menu-grid>a{
  min-height:52px;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  border-radius:13px;
  background:var(--surface-2);
  color:var(--text);
  text-decoration:none;
}

/* ---------- bottom nav ---------- */

/* ---------- bottom nav + mobile layout: v1.7.8 ---------- */

.mobile-nav{display:none}

@media(max-width:900px){
  /*
    Mobile layout:
    - body is a normal flex column: header + content
    - footer is fixed independently
    - no vh/svh/dvh sizing for Home/Training
    - footer is extended down by iOS safe-area amount so its visible edge
      reaches the physical bottom of a standalone PWA.
  */
  html,body{
    width:100%;
    min-height:100%;
  }

  body{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    overflow-x:hidden;
  }

  .app-header{
    position:relative;
    flex:0 0 auto;
    z-index:40;
  }

  .header-row{
    min-height:52px;
    padding:5px 12px;
  }

  .logo-mini.logo-book{
    width:39px;
    height:39px;
    border-radius:12px;
  }

  .brand-title{font-size:1.08rem}

  .header-actions .theme-toggle{
    width:38px;
    height:38px;
  }

  .top-tabs{display:none}

  .header-actions .ghost:not(.theme-toggle),
  .header-actions .linkbtn{display:none}

  .shell{
    flex:1 1 auto;
    width:100%;
    min-height:0;
    padding:10px 9px 68px;
  }

  .mobile-nav{
    position:fixed !important;
    z-index:100;
    left:0 !important;
    right:0 !important;

    /* Key iOS PWA fix: compensate the area Safari/standalone keeps
       below CSS bottom:0 on some first-render states. */
    bottom:calc(-1 * env(safe-area-inset-bottom, 0px)) !important;

    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));

    width:100%;
    height:calc(60px + env(safe-area-inset-bottom, 0px));
    min-height:calc(60px + env(safe-area-inset-bottom, 0px));
    margin:0 !important;
    padding:0 0 env(safe-area-inset-bottom, 0px);

    background:var(--footer);
    border-top:1px solid var(--line-strong);
    box-shadow:0 -4px 16px rgba(0,0,0,.035);
  }

  .mobile-nav-btn{
    position:relative;
    min-width:0;
    height:60px;
    min-height:60px;
    padding:6px 2px 3px;
    border:0;
    border-radius:0;

    display:grid;
    grid-template-rows:33px 16px;
    align-content:center;
    justify-items:center;

    background:transparent;
    color:var(--soft);
  }

  .mobile-nav-btn + .mobile-nav-btn::before{
    content:"";
    position:absolute;
    left:0;
    top:14%;
    bottom:14%;
    width:1.25px;
    background:var(--line-strong);
    opacity:.62;
  }

  .mobile-nav-btn.active{color:var(--green)}

  .mobile-nav-btn.active::after{
    content:"";
    position:absolute;
    top:3px;
    left:35%;
    right:35%;
    height:2px;
    border-radius:999px;
    background:currentColor;
    opacity:.68;
  }

  .nav-glyph{
    height:33px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.58rem;
    line-height:1;
  }

  .mobile-nav-btn small{
    color:inherit;
    font-size:.57rem;
    line-height:1;
  }

  .filters,.irr-filters{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  /* HOME: use ALL free vertical space between header and footer. */
  body[data-view="home"] .shell{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    padding:6px 8px 66px;
  }

  body[data-view="home"] .render-home{
    flex:1 1 auto;
    min-height:0;
    width:min(100%,760px);
    margin:0 auto;
    display:grid;
    grid-template-rows:minmax(0,1.82fr) minmax(0,.82fr) minmax(0,.80fr);
    gap:6px;
  }

  body[data-view="home"] .render-section{
    min-height:0;
    height:100%;
    padding:7px;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    gap:5px;
    overflow:hidden;
  }

  body[data-view="home"] .render-section-title{
    margin:0;
    font-size:1.06rem;
  }

  body[data-view="home"] .render-grid{
    height:100%;
    min-height:0;
    gap:5px;
  }

  body[data-view="home"] .render-section:first-child .render-grid-2{
    grid-template-rows:repeat(2,minmax(0,1fr));
  }

  body[data-view="home"] .render-section:last-child .render-grid-2,
  body[data-view="home"] .render-grid-3{
    grid-template-rows:minmax(0,1fr);
  }

  body[data-view="home"] .render-tile{
    min-height:0;
    height:100%;
    padding:7px 8px;
    border-radius:13px;
  }

  body[data-view="home"] .render-tile-icon{
    width:27px;
    height:27px;
    margin-bottom:4px;
    font-size:.82rem;
  }

  body[data-view="home"] .render-tile-label{
    font-size:.88rem;
    line-height:1.12;
  }

  body[data-view="home"] .render-tile strong{
    font-size:1.28rem;
    margin-top:3px;
  }

  body[data-view="home"] .render-tile-unit{
    font-size:.60rem;
    margin-top:2px;
  }

  body[data-view="home"] .render-training-stats .render-tile-label{
    font-size:.76rem;
  }

  body[data-view="home"] .render-training-stats .render-tile strong{
    font-size:1.18rem;
  }

  /* TRAINING: no page-specific viewport/footer model.
     It intentionally uses the same .shell and .mobile-nav as every other page. */
  #studyView.render-study-view{
    min-height:calc(100vh - 128px);
    height:auto;
  }

  .render-study-topbar{
    flex:0 0 44px;
    grid-template-columns:40px 1fr 40px;
    margin-bottom:6px;
  }

  .render-round-btn{
    width:38px;
    height:38px;
  }

  .render-study-setup{
    max-width:780px;
    margin:6px auto 0;
    padding:20px 18px 18px;
  }
}

@media(max-width:620px){
  .filters,.irr-filters{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}

  .grade-row-3,.detail-review-actions{grid-template-columns:1fr}
  .grammar-formula,.topic-compare{grid-template-columns:1fr}
  .detail-verb-grid,.detail-adjective-grid{grid-template-columns:1fr}

  .study-count-row-clean{gap:7px}
  .study-count{min-height:56px}
  .study-three-actions{gap:6px}
  .study-three-actions button{min-height:62px;font-size:.78rem}
  .study-options-choices{gap:7px}
  .study-options-choices button{min-height:64px}
}

@media(max-width:390px){
  body[data-view="home"] .render-tile-label{font-size:.82rem}
  body[data-view="home"] .render-training-stats .render-tile-label{font-size:.70rem}
  body[data-view="home"] .render-tile strong{font-size:1.20rem}
  .study-result-line{grid-template-columns:82px 1fr}
}




/* v1.7.10 — Study uses the exact same footer anchoring as all other pages */
@media(max-width:900px){
  body[data-view="study"] .shell{
    overflow:visible !important;
  }

  body[data-view="study"] #studyView{
    padding-bottom:8px;
  }

  body[data-view="study"] .mobile-nav{
    /* deliberately only inherits the global mobile-nav geometry */
    height:calc(60px + env(safe-area-inset-bottom, 0px)) !important;
    min-height:calc(60px + env(safe-area-inset-bottom, 0px)) !important;
  }
}


/* ==========================================================
   v1.7.11 — Study feedback stability + compact correct state
   ========================================================== */
.study-feedback{
  min-height:96px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

.study-result-panel{
  min-height:88px;
  padding:10px 12px;
  gap:7px;
}

.study-result-panel.is-correct{
  grid-template-columns:1fr;
}

.study-result-head{
  min-height:34px;
}

.study-result-icon{
  width:34px;
  height:34px;
}

.study-result-hint{
  padding:7px 9px;
  border-radius:10px;
  background:var(--surface-3);
  color:var(--muted);
  font-size:.82rem;
  line-height:1.2;
}

.study-result-hint strong{
  color:var(--text);
  font-weight:620;
}

.study-next-btn{
  min-height:44px;
}


/* ==========================================================
   v1.7.12 — Grammar visual structure
   ========================================================== */

.grammar-legend{
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
  margin:0 0 10px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
  color:var(--muted);
  font-size:.72rem;
}

.grammar-legend>span{
  display:inline-flex;
  align-items:center;
  gap:5px;
}

.legend-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  display:inline-block;
}
.legend-dot.connector{background:#4dbbc6}
.legend-dot.konj{background:#af79dc}
.legend-dot.vend{background:#68b77c}
.legend-dot.v2{background:#d6a14f}
.legend-dot.inf{background:#6ea2dc}

#topicsView .topic-example .de{
  line-height:1.85;
  font-size:.94rem;
}

#topicsView .g-connector,
#topicsView .g-konj,
#topicsView .g-vend,
#topicsView .g-v2,
#topicsView .g-inf,
#topicsView .g-case{
  display:inline-block;
  position:relative;
  padding:1px 5px 2px;
  border-radius:7px;
  font-weight:700;
  line-height:1.35;
}

#topicsView .g-connector{
  color:#79d9e1;
  background:rgba(63,184,195,.13);
  box-shadow:inset 0 0 0 1px rgba(83,203,212,.18);
}

#topicsView .g-konj{
  color:#d3a4ef;
  background:rgba(169,102,211,.14);
  box-shadow:inset 0 0 0 1px rgba(190,132,226,.18);
}

#topicsView .g-vend{
  color:#9bd4a6;
  background:rgba(84,166,105,.13);
  box-shadow:inset 0 0 0 1px rgba(105,190,126,.18);
}

#topicsView .g-v2{
  color:#e5bd72;
  background:rgba(190,139,54,.14);
  box-shadow:inset 0 0 0 1px rgba(214,161,73,.18);
}

#topicsView .g-inf{
  color:#9fc4eb;
  background:rgba(84,139,199,.13);
  box-shadow:inset 0 0 0 1px rgba(106,163,222,.18);
}

#topicsView [data-pos]::after{
  content:attr(data-pos);
  position:relative;
  top:-.08em;
  margin-left:4px;
  font-size:.52em;
  font-weight:800;
  letter-spacing:.05em;
  opacity:.68;
}

#topicsView .g-case.g-dativ{
  color:#9bd4a6;
  background:rgba(84,166,105,.13);
}
#topicsView .g-case.g-akk{
  color:#e5bd72;
  background:rgba(190,139,54,.14);
}

#topicsView .grammar-formula{
  align-items:stretch;
}

#topicsView .grammar-formula span{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:4px;
  min-height:48px;
  line-height:1.25;
}

#topicsView .grammar-formula small{
  display:block;
  width:100%;
  margin-top:2px;
  color:var(--soft);
  font-size:.66rem;
  font-weight:600;
}

#topicsView .topic-block h4 em,
#topicsView .topic-accordion summary em{
  color:#79d9e1;
  font-style:normal;
  font-weight:750;
}

html:not([data-theme="dark"]) #topicsView .g-connector{color:#267d86}
html:not([data-theme="dark"]) #topicsView .g-konj{color:#7c4ea0}
html:not([data-theme="dark"]) #topicsView .g-vend{color:#447f52}
html:not([data-theme="dark"]) #topicsView .g-v2{color:#8e641e}
html:not([data-theme="dark"]) #topicsView .g-inf{color:#477aa9}
html:not([data-theme="dark"]) #topicsView .topic-block h4 em,
html:not([data-theme="dark"]) #topicsView .topic-accordion summary em{color:#267d86}

@media(max-width:620px){
  .grammar-legend{
    gap:5px 8px;
    font-size:.67rem;
  }

  #topicsView .topic-example .de{
    line-height:1.9;
    font-size:.91rem;
  }

  #topicsView .g-connector,
  #topicsView .g-konj,
  #topicsView .g-vend,
  #topicsView .g-v2,
  #topicsView .g-inf,
  #topicsView .g-case{
    padding-left:4px;
    padding-right:4px;
  }
}


/* ==========================================================
   v1.7.13 — Grammar rule blocks / connected trotzdem examples
   ========================================================== */

#topicsView .topic-list{
  display:grid;
  gap:7px;
  margin:7px 0 0;
  padding-left:20px;
}

#topicsView .topic-list li{
  padding:7px 9px 7px 4px;
  line-height:1.55;
  border-bottom:1px solid var(--line);
}

#topicsView .topic-list li:last-child{
  border-bottom:0;
}

#topicsView .topic-list .g-connector,
#topicsView .topic-list .g-konj,
#topicsView .topic-list .g-vend,
#topicsView .topic-list .g-v2,
#topicsView .topic-list .g-inf{
  margin:0 1px;
}

#topicsView .topic-compare .g-connector{
  font-size:1.02rem;
  margin-bottom:4px;
}

#topicsView .topic-compare p .g-vend,
#topicsView .topic-compare p .g-v2{
  margin-top:4px;
}

#topicsView .topic-example .de{
  word-spacing:.03em;
}


/* ==========================================================
   v1.7.14 — Unified sentence structure diagrams
   ========================================================== */

#topicsView .grammar-formula{
  display:none;
}

#topicsView .sentence-structure{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:5px;
  margin:10px 0 12px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface-2);
}

#topicsView .ss-part{
  min-width:58px;
  min-height:50px;
  padding:6px 8px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  border-radius:10px;
  background:var(--surface-3);
  box-shadow:inset 0 0 0 1px var(--line);
  text-align:center;
}

#topicsView .ss-part small{
  color:var(--soft);
  font-size:.56rem;
  line-height:1.05;
  font-weight:700;
  letter-spacing:.035em;
  text-transform:uppercase;
}

#topicsView .ss-part b{
  color:var(--text);
  font-size:.82rem;
  line-height:1.14;
  font-weight:720;
}

#topicsView .ss-punct{
  min-width:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--text);
  font-size:1.35rem;
  font-weight:800;
}

#topicsView .ss-connector{
  background:rgba(63,184,195,.14);
  box-shadow:inset 0 0 0 1px rgba(83,203,212,.22);
}
#topicsView .ss-connector b{color:#79d9e1}

#topicsView .ss-konj{
  background:rgba(169,102,211,.14);
  box-shadow:inset 0 0 0 1px rgba(190,132,226,.22);
}
#topicsView .ss-konj b{color:#d3a4ef}

#topicsView .ss-vend{
  border-bottom:2px solid rgba(105,190,126,.72);
}
#topicsView .ss-vend small,
#topicsView .ss-vend b{color:#9bd4a6}

#topicsView .ss-v2{
  border-bottom:2px solid rgba(214,161,73,.78);
}
#topicsView .ss-v2 small,
#topicsView .ss-v2 b{color:#e5bd72}

#topicsView .ss-inf{
  background:rgba(84,139,199,.13);
  box-shadow:inset 0 0 0 1px rgba(106,163,222,.20);
}
#topicsView .ss-inf b{color:#9fc4eb}

#topicsView .ss-question{
  background:rgba(111,160,210,.11);
}
#topicsView .ss-question b{color:#9fc4eb}

#topicsView .ss-dativ{
  background:rgba(84,166,105,.13);
}
#topicsView .ss-dativ b{color:#9bd4a6}

#topicsView .ss-akk{
  background:rgba(190,139,54,.14);
}
#topicsView .ss-akk b{color:#e5bd72}

html:not([data-theme="dark"]) #topicsView .ss-connector b{color:#267d86}
html:not([data-theme="dark"]) #topicsView .ss-konj b{color:#7c4ea0}
html:not([data-theme="dark"]) #topicsView .ss-vend small,
html:not([data-theme="dark"]) #topicsView .ss-vend b{color:#447f52}
html:not([data-theme="dark"]) #topicsView .ss-v2 small,
html:not([data-theme="dark"]) #topicsView .ss-v2 b{color:#8e641e}
html:not([data-theme="dark"]) #topicsView .ss-inf b,
html:not([data-theme="dark"]) #topicsView .ss-question b{color:#477aa9}
html:not([data-theme="dark"]) #topicsView .ss-dativ b{color:#447f52}
html:not([data-theme="dark"]) #topicsView .ss-akk b{color:#8e641e}

@media(max-width:620px){
  #topicsView .sentence-structure{
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:7px;
  }

  #topicsView .sentence-structure::-webkit-scrollbar{display:none}

  #topicsView .ss-part{
    flex:0 0 auto;
    min-width:68px;
    min-height:48px;
  }

  #topicsView .ss-part b{font-size:.78rem}
  #topicsView .ss-part small{font-size:.52rem}
}


/* ==========================================================
   v1.7.15 — Grammar structures wrap inside the topic card
   ========================================================== */

#topicsView .sentence-structure{
  width:100%;
  max-width:100%;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin:10px 0 12px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}

#topicsView .ss-part{
  flex:0 1 auto;
  min-width:0;
  min-height:40px;
  max-width:100%;
  padding:6px 9px;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  border-radius:9px;
  white-space:normal;
  overflow-wrap:anywhere;
}

#topicsView .ss-part b{
  font-size:.91rem;
  line-height:1.16;
}

#topicsView .ss-part small{
  font-size:.57rem;
  line-height:1.05;
}

#topicsView .ss-punct{
  flex:0 0 auto;
  min-width:auto;
  padding:0 1px;
  font-size:1.22rem;
}

@media(max-width:620px){
  #topicsView .sentence-structure{
    display:flex;
    flex-wrap:wrap;
    overflow:visible;
    gap:5px;
    padding:0;
  }

  #topicsView .ss-part{
    flex:0 1 auto;
    min-width:0;
    min-height:38px;
    padding:6px 8px;
  }

  #topicsView .ss-part b{
    font-size:.88rem;
  }

  #topicsView .ss-part small{
    font-size:.54rem;
  }
}

/* ---------- Video lessons ---------- */

#topicsView .topic-video{
  margin-top:10px;
  padding:11px;
  border-radius:15px;
  border:1px solid var(--line);
  background:var(--surface-2);
}

#topicsView .topic-video-kicker{
  margin:0 0 7px 2px;
  color:var(--muted);
  font-size:.72rem;
  font-weight:720;
  letter-spacing:.05em;
  text-transform:uppercase;
}

#topicsView .topic-video-link{
  min-width:0;
  min-height:58px;
  padding:9px 10px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 24px;
  align-items:center;
  gap:9px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface-3);
  color:var(--text);
  text-decoration:none;
}

#topicsView .topic-video-link + .topic-video-link{
  margin-top:6px;
}

#topicsView .topic-video-link.secondary{
  background:color-mix(in srgb,var(--surface-3) 72%,transparent);
}

#topicsView .topic-video-play{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(201,65,55,.14);
  color:#e06b62;
  font-size:.92rem;
}

#topicsView .topic-video-copy{
  min-width:0;
  display:grid;
  gap:2px;
}

#topicsView .topic-video-copy strong{
  min-width:0;
  font-size:.88rem;
  line-height:1.18;
  overflow-wrap:anywhere;
}

#topicsView .topic-video-copy small{
  color:var(--muted);
  font-size:.70rem;
  line-height:1.2;
}

#topicsView .topic-video-open{
  color:var(--soft);
  font-size:1rem;
}

@media(max-width:620px){
  #topicsView .topic-video{
    padding:9px;
  }

  #topicsView .topic-video-link{
    grid-template-columns:34px minmax(0,1fr) 20px;
    min-height:54px;
    padding:8px;
    gap:8px;
  }

  #topicsView .topic-video-play{
    width:32px;
    height:32px;
  }

  #topicsView .topic-video-copy strong{
    font-size:.84rem;
  }
}


/* ==========================================================
   v1.7.16 — Momente B1 review section
   ========================================================== */

.momente-course{
  margin:0 0 14px;
  padding:12px;
  border-radius:22px;
  border:1px solid color-mix(in srgb,var(--cyan) 34%,var(--line));
  background:
    radial-gradient(circle at 92% 0%,rgba(70,174,171,.10),transparent 34%),
    var(--surface);
  box-shadow:var(--shadow-soft);
}

.momente-course-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:3px 3px 11px;
}

.momente-course-head h3{
  margin:3px 0 2px;
  font-size:1.18rem;
  letter-spacing:-.015em;
}

.momente-course-head p{
  font-size:.84rem;
}

.momente-badge{
  color:var(--cyan);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.12em;
}

.momente-progress{
  flex:0 0 auto;
  min-width:52px;
  padding:7px 9px;
  text-align:center;
  border-radius:12px;
  background:var(--surface-2);
  color:var(--muted);
  font-size:.78rem;
  font-weight:720;
  border:1px solid var(--line);
}

.momente-lessons{
  display:grid;
  gap:8px;
}

.momente-lesson{
  border-color:color-mix(in srgb,var(--cyan) 22%,var(--line));
}

.momente-lesson .topic-kicker{
  color:var(--cyan);
}

.momente-map-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}

.momente-map-grid>div{
  min-width:0;
  padding:10px;
  display:grid;
  gap:4px;
  border-radius:11px;
  background:var(--surface-3);
}

.momente-map-grid span{
  color:var(--soft);
  font-size:.66rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.045em;
}

.momente-map-grid strong{
  font-size:.86rem;
  line-height:1.25;
}

.momente-compare{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:8px 0 10px;
}

.momente-compare.three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.momente-compare>div{
  min-width:0;
  padding:10px;
  display:grid;
  gap:5px;
  border-radius:12px;
  background:var(--surface-3);
  border:1px solid var(--line);
}

.momente-compare>div>strong{
  font-size:.85rem;
  line-height:1.22;
}

.momente-compare>div>small{
  color:var(--muted);
  font-size:.70rem;
  line-height:1.25;
}

.momente-speaking{
  background:
    radial-gradient(circle at 0 0,rgba(93,151,218,.08),transparent 46%),
    var(--surface-2);
}

.momente-prompts{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px;
}

.momente-prompts span{
  padding:7px 9px;
  border-radius:10px;
  background:var(--surface-3);
  color:var(--text);
  font-size:.82rem;
  border:1px solid var(--line);
}

.topics-divider{
  display:flex;
  align-items:center;
  gap:10px;
  margin:14px 2px 10px;
  color:var(--muted);
  font-size:.72rem;
  font-weight:720;
  text-transform:uppercase;
  letter-spacing:.07em;
}

.topics-divider::before,
.topics-divider::after{
  content:"";
  height:1px;
  flex:1;
  background:var(--line);
}

@media(max-width:620px){
  .momente-course{
    padding:9px;
    border-radius:19px;
  }

  .momente-course-head{
    align-items:flex-start;
  }

  .momente-course-head h3{
    font-size:1.08rem;
  }

  .momente-map-grid,
  .momente-compare,
  .momente-compare.three{
    grid-template-columns:1fr;
  }

  .momente-progress{
    min-width:48px;
    padding:6px 7px;
  }
}


/* ==========================================================
   v1.7.17 — Momente mint panel + timestamp video badges
   ========================================================== */

.momente-course{
  border-color:rgba(74,190,170,.24);
  background:
    radial-gradient(circle at 88% 0%,rgba(70,204,177,.16),transparent 38%),
    linear-gradient(145deg,
      color-mix(in srgb,var(--surface) 86%,#5fc9af 14%),
      color-mix(in srgb,var(--surface) 94%,#5fc9af 6%));
}

html[data-theme="dark"] .momente-course{
  background:
    radial-gradient(circle at 90% 0%,rgba(68,211,179,.16),transparent 40%),
    linear-gradient(145deg,#102a2a,#112328 68%,#102128);
  border-color:rgba(93,214,187,.25);
}

html:not([data-theme="dark"]) .momente-course{
  background:
    radial-gradient(circle at 90% 0%,rgba(77,196,169,.18),transparent 40%),
    linear-gradient(145deg,#effaf7,#f5fbf9 70%,#eef7f5);
  border-color:rgba(68,173,151,.24);
}

.momente-badge{
  color:#69cfb6;
}

html:not([data-theme="dark"]) .momente-badge{
  color:#2f907c;
}

.topic-video-link{
  position:relative;
}

.topic-video-timebadge{
  position:absolute;
  top:6px;
  right:28px;
  padding:2px 5px;
  border-radius:999px;
  background:color-mix(in srgb,var(--cyan) 13%,var(--surface));
  color:var(--cyan);
  font-size:.55rem;
  font-weight:760;
  letter-spacing:.04em;
  text-transform:uppercase;
  pointer-events:none;
}

@media(max-width:620px){
  .topic-video-timebadge{
    top:5px;
    right:24px;
    font-size:.51rem;
  }
}


/* ==========================================================
   v1.7.18 — Momente flatter hierarchy + tense examples
   ========================================================== */

/* Outer Momente area remains the only clearly tinted container. */
.momente-course{
  padding:12px 12px 10px;
}

/* Lessons are no longer "cards inside a card": use flat rows + separators. */
.momente-course .momente-lessons{
  gap:0;
}

.momente-course .momente-lesson{
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.momente-course .momente-lesson + .momente-lesson{
  margin-top:5px;
  padding-top:5px;
  border-top:1px solid color-mix(in srgb,var(--cyan) 20%,var(--line));
}

.momente-course .momente-lesson > summary{
  padding:12px 5px 10px;
  border-radius:12px;
  background:color-mix(in srgb,var(--surface-2) 76%,transparent);
}

.momente-course .momente-lesson[open] > summary{
  background:color-mix(in srgb,var(--cyan) 7%,var(--surface-2));
}

.momente-course .momente-lesson .topic-body{
  padding:5px 4px 10px;
  gap:0;
}

/* Inner learning sections are flat content sections, not nested cards. */
.momente-course .momente-lesson .topic-block{
  margin:0;
  padding:13px 4px 14px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.momente-course .momente-lesson .topic-block + .topic-block,
.momente-course .momente-lesson .topic-video{
  border-top:1px solid var(--line);
}

.momente-course .momente-lesson .topic-block h4{
  margin-bottom:8px;
}

/* The "what we repeat" content becomes a simple compact grid with no boxes. */
.momente-course .momente-book-map{
  padding-top:9px;
}

.momente-course .momente-map-grid{
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.momente-course .momente-map-grid>div{
  padding:9px 7px;
  border-radius:0;
  background:transparent;
}

.momente-course .momente-map-grid>div:nth-child(odd){
  border-right:1px solid var(--line);
}

.momente-course .momente-map-grid>div:nth-child(n+3){
  border-top:1px solid var(--line);
}

/* Comparison elements keep emphasis, but lose another heavy container layer. */
.momente-course .momente-compare{
  gap:6px;
}

.momente-course .momente-compare>div{
  padding:9px 10px;
  border-radius:10px;
  background:color-mix(in srgb,var(--surface-3) 72%,transparent);
  border:0;
}

/* Sentence structures are kept flat within the lesson. */
.momente-course .sentence-structure{
  margin-top:10px;
}

/* Speaking area: subtle tint only, no full nested card look. */
.momente-course .momente-speaking{
  background:transparent;
}

.momente-course .momente-prompts span{
  background:color-mix(in srgb,var(--surface-3) 72%,transparent);
  border-color:color-mix(in srgb,var(--cyan) 12%,var(--line));
}

/* Video block also becomes a flat section. */
.momente-course .topic-video{
  margin-top:0;
  padding:13px 4px 4px;
  border-radius:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
  background:transparent;
}

.momente-course .topic-video-link{
  background:color-mix(in srgb,var(--surface-3) 76%,transparent);
}

/* Tense examples: one vertical strip instead of another grid of cards. */
.momente-tense-strip>p{
  margin-bottom:8px;
}

.momente-tense-list{
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.momente-tense-list>div{
  padding:10px 4px 9px;
}

.momente-tense-list>div + div{
  border-top:1px solid var(--line);
}

.momente-tense-list .de{
  margin:5px 0 3px;
  color:var(--text);
  font-size:.92rem;
  line-height:1.6;
}

.momente-tense-list small{
  color:var(--muted);
  font-size:.74rem;
  line-height:1.3;
}

.tense-tag{
  display:inline-flex;
  padding:2px 7px;
  border-radius:999px;
  background:color-mix(in srgb,var(--cyan) 10%,var(--surface-2));
  color:var(--cyan);
  font-size:.64rem;
  font-weight:750;
  letter-spacing:.03em;
}

/* Mobile: keep the hierarchy especially clean. */
@media(max-width:620px){
  .momente-course{
    padding:9px 9px 7px;
  }

  .momente-course .momente-lesson > summary{
    padding:11px 3px 9px;
  }

  .momente-course .momente-lesson .topic-body{
    padding-left:2px;
    padding-right:2px;
  }

  .momente-course .momente-map-grid{
    grid-template-columns:1fr;
  }

  .momente-course .momente-map-grid>div:nth-child(odd){
    border-right:0;
  }

  .momente-course .momente-map-grid>div + div{
    border-top:1px solid var(--line);
  }
}


/* ==========================================================
   v1.7.19 — Momente content cleanup
   ========================================================== */

.momente-intro-line{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:5px;
  padding:9px 4px 11px;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.45;
  border-bottom:1px solid var(--line);
}

.momente-intro-sep{
  color:var(--soft);
}

.momente-core{
  padding-top:12px !important;
}

.momente-rule-line{
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  align-items:baseline;
  column-gap:6px;
  row-gap:2px;
  padding:7px 2px;
  line-height:1.35;
}

.momente-rule-line + .momente-rule-line{
  border-top:1px solid var(--line);
}

.momente-rule-line .g-connector{
  font-size:1rem;
  min-width:52px;
  text-align:center;
}

.momente-rule-dash{
  color:var(--soft);
}

.momente-rule-line strong{
  font-size:.88rem;
  font-weight:650;
}

.momente-rule-line small{
  grid-column:3;
  color:var(--muted);
  font-size:.72rem;
}

.momente-structure-title{
  margin-top:12px !important;
  margin-bottom:7px !important;
  font-size:.88rem !important;
  color:var(--muted);
  font-weight:700 !important;
}

/* Lessons themselves stay flat; summary is the only clear sub-panel. */
.momente-course .momente-lesson > summary{
  box-shadow:none;
}

/* Remove residual "card" feeling from inner Momente sections. */
.momente-course .topic-block,
.momente-course .topic-video{
  box-shadow:none !important;
}

@media(max-width:620px){
  .momente-rule-line{
    grid-template-columns:auto auto minmax(0,1fr);
    column-gap:5px;
    padding:7px 0;
  }

  .momente-rule-line .g-connector{
    min-width:48px;
  }

  .momente-rule-line strong{
    font-size:.84rem;
  }

  .momente-rule-line small{
    font-size:.69rem;
  }
}


/* ==========================================================
   v1.7.20 — General grammar cleanup
   Same content rhythm as Momente, without nested cards.
   ========================================================== */
#topicsView .general-topic .topic-body{
  display:block;
  padding-top:0;
}
#topicsView .general-topic .general-topic-intro{
  margin:0 2px;
}
#topicsView .general-topic .topic-block{
  margin:0;
  padding:14px 4px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
#topicsView .general-topic .topic-block + .topic-block,
#topicsView .general-topic .topic-video{
  border-top:1px solid var(--line);
}
#topicsView .general-topic .topic-block h4{
  margin-top:0;
}
#topicsView .general-topic .topic-video{
  margin-top:0;
  padding:13px 4px 4px;
  border-radius:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
  background:transparent;
}
#topicsView .general-topic .topic-video-link{
  background:color-mix(in srgb,var(--surface-3) 76%,transparent);
}
#topicsView .topic-mini-review p{
  margin:0;
  line-height:1.6;
}
#topicsView .mini-review-answer{
  display:block;
  margin-top:7px;
  color:var(--muted);
}
@media(max-width:620px){
  #topicsView .general-topic .topic-body{
    padding-left:10px;
    padding-right:10px;
  }
  #topicsView .general-topic .topic-block{
    padding-left:2px;
    padding-right:2px;
  }
}


/* v1.7.23 — experimental vocabulary trainers */
.special-study-block{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid color-mix(in srgb,var(--border) 78%,transparent);
}
.special-study-head{display:grid;gap:4px;margin-bottom:12px}
.special-study-head>span{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.special-study-head p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.45}
.special-study-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.special-study-card{
  min-width:0;text-align:left;display:grid;grid-template-columns:38px 1fr;align-items:center;column-gap:10px;row-gap:2px;
  padding:14px;border-radius:18px;background:color-mix(in srgb,var(--surface) 92%,var(--violet) 8%);
  border:1px solid color-mix(in srgb,var(--border) 70%,var(--violet) 30%);color:var(--text);
}
.special-study-card:nth-child(2){background:color-mix(in srgb,var(--surface) 92%,var(--amber) 8%);border-color:color-mix(in srgb,var(--border) 70%,var(--amber) 30%)}
.special-study-card .special-study-icon{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--violet) 15%,transparent);font-size:1.25rem;font-weight:800}
.special-study-card:nth-child(2) .special-study-icon{background:color-mix(in srgb,var(--amber) 15%,transparent)}
.special-study-card strong{font-size:.98rem}
.special-study-card small{display:block;min-width:0;color:var(--muted);font-size:.76rem;line-height:1.35;overflow-wrap:anywhere}
.special-study-session .study-focus-card{min-height:155px}
.special-prompt-translation{margin-top:8px;color:var(--muted);font-size:.9rem;text-align:center}
.special-example{display:grid;gap:3px;margin-top:10px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--border) 65%,transparent);font-size:.86rem;line-height:1.4}
.special-example span{color:var(--muted)}
.special-study-finish .study-finish-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:360px;margin-inline:auto}
@media (max-width:640px){
  .special-study-grid{grid-template-columns:1fr}
  .special-study-card{padding:13px}
  .special-study-session .study-focus-card{min-height:140px}
}

/* v1.7.24 — short training builder */
.custom-study-block{
  margin-top:18px;padding-top:18px;border-top:1px solid var(--border);display:grid;gap:14px
}
.custom-study-head{display:grid;gap:4px}
.custom-study-head>span{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.custom-study-head h3{margin:0;font-size:1.08rem}
.custom-study-head p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.45}
.custom-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.custom-mode-card{
  position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:15px;
  background:color-mix(in srgb,var(--surface) 95%,var(--violet) 5%);cursor:pointer;min-width:0
}
.custom-mode-card input{position:absolute;opacity:0;pointer-events:none}
.custom-mode-icon{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:color-mix(in srgb,var(--violet) 14%,transparent);font-weight:800}
.custom-mode-card strong{font-size:.9rem;line-height:1.15}
.custom-mode-card small{color:var(--muted);font-size:.72rem;line-height:1.28;overflow-wrap:anywhere}
.custom-mode-card:has(input:checked){border-color:color-mix(in srgb,var(--green) 62%,var(--border));background:color-mix(in srgb,var(--surface) 88%,var(--green) 12%)}
.custom-mode-card:has(input:checked) .custom-mode-icon{background:color-mix(in srgb,var(--green) 20%,transparent)}
.custom-mode-card:has(input:checked)::after{content:'✓';position:absolute;right:9px;top:8px;color:var(--green);font-size:.76rem;font-weight:900}
.custom-study-note{font-size:.82rem;color:var(--muted)}
.custom-study-start{margin-top:0}
.custom-study-start:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:520px){
  .custom-mode-grid{grid-template-columns:1fr 1fr;gap:7px}
  .custom-mode-card{grid-template-columns:31px minmax(0,1fr);column-gap:8px;padding:10px 9px;border-radius:13px}
  .custom-mode-icon{width:31px;height:31px;border-radius:9px}
  .custom-mode-card strong{font-size:.82rem;padding-right:10px}
  .custom-mode-card small{font-size:.67rem}
}

/* v1.7.90 — safe personal-card comparison with Master Dictionary. */
.master-sync-panel{
  margin:0 0 16px;
  padding:14px;
  border:1px solid color-mix(in srgb,var(--green) 48%,var(--line));
  border-radius:16px;
  background:color-mix(in srgb,var(--green) 8%,var(--surface));
}
.master-sync-head,.master-sync-block-head,.master-sync-conflict{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.master-sync-head>div{display:flex;flex-direction:column;gap:4px}
.master-sync-head strong{font-size:1rem}
.master-sync-state{font-size:.78rem;color:var(--muted);text-align:right}
.master-sync-content{display:grid;gap:10px;margin-top:12px}
.master-sync-translation,.master-sync-block,.master-sync-ok{
  padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);
}
.master-sync-translation{display:grid;gap:4px}
.master-sync-translation span,.master-sync-muted,.master-sync-note,.master-sync-block p{
  margin:0;color:var(--muted);font-size:.82rem;line-height:1.4;
}
.master-sync-translation b{font-size:.95rem;line-height:1.35}
.master-sync-block{display:grid;gap:9px}
.master-sync-block-head button,.master-sync-conflict button{
  width:auto;padding:8px 10px;font-size:.78rem;white-space:nowrap;
}
.master-sync-ok{color:var(--muted);font-size:.85rem}
.master-sync-conflicts{gap:8px}
.master-sync-conflict{padding-top:8px;border-top:1px solid var(--line)}
.master-sync-conflict>div{display:grid;gap:3px;min-width:0}
.master-sync-conflict span{font-weight:700}
.master-sync-conflict small{color:var(--muted);overflow-wrap:anywhere}
.master-sync-note{padding:0 2px}
@media(max-width:560px){
  .master-sync-head,.master-sync-block-head{align-items:flex-start}
  .master-sync-conflict{align-items:flex-end}
  .master-sync-block-head{flex-direction:column}
  .master-sync-block-head button{width:100%}
}

/* v1.7.86 — read-only Master Dictionary audit */
.master-audit-btn{white-space:nowrap}
.master-audit-dialog{width:min(760px,calc(100vw - 24px));max-height:min(88vh,900px);padding:20px}
.master-audit-content{display:grid;gap:16px;max-height:68vh;overflow:auto;padding:2px 4px 8px}
.master-audit-loading,.master-audit-error{padding:34px 18px;text-align:center;color:var(--muted)}
.master-audit-error{color:var(--red)}
.master-audit-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.master-audit-metric{display:flex;flex-direction:column;gap:5px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.master-audit-metric span{font-size:.68rem;color:var(--muted)}
.master-audit-metric strong{font-size:1.35rem;line-height:1;color:var(--text)}
.master-audit-metric small{font-size:.62rem;color:var(--soft)}
.master-audit-section{padding:15px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.master-audit-section h3{margin:0 0 12px;font-size:.82rem}
.master-audit-quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.master-audit-quality{display:grid;gap:3px;padding:11px;border-radius:13px;background:var(--surface-2);border:1px solid var(--line)}
.master-audit-quality span,.master-audit-quality small{font-size:.62rem;color:var(--muted)}
.master-audit-quality strong{font-size:1.06rem}
.master-audit-quality.q0{border-color:color-mix(in srgb,var(--green) 35%,var(--line))}
.master-audit-quality.q1{border-color:color-mix(in srgb,#d8a747 38%,var(--line))}
.master-audit-row{display:grid;gap:5px;margin-top:10px}
.master-audit-row>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:.68rem}
.master-audit-row b{font-weight:700;color:var(--soft);white-space:nowrap}
.master-audit-row b small{display:block;margin-top:2px;font-size:.55rem;font-weight:500;color:var(--muted);text-align:right}
.master-audit-track{height:7px;overflow:hidden;border-radius:99px;background:var(--surface-2)}
.master-audit-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--green))}
.master-audit-grammar+.master-audit-grammar{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.master-audit-grammar h4{display:flex;justify-content:space-between;margin:0 0 8px;font-size:.70rem;color:var(--soft)}
.master-audit-grammar h4 span{font-weight:600;color:var(--muted)}
.master-audit-explain{margin-top:10px;font-size:.62rem;line-height:1.45;color:var(--muted)}
.master-morph-status{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 12px;border-radius:13px;background:var(--surface-2);font-size:.66rem}
.master-morph-status strong{color:var(--text)}
.master-morph-status span{color:var(--muted);text-align:right}
.master-audit-error-inline{margin-top:9px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--red) 8%,var(--surface));color:var(--red);font-size:.60rem;overflow-wrap:anywhere}
.master-audit-note{display:flex;gap:10px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--cyan) 7%,var(--surface));font-size:.68rem;color:var(--muted)}
.master-audit-note b{color:var(--text)}
.master-audit-timestamp{font-size:.62rem;color:var(--muted)}
@media(max-width:640px){
  .master-audit-dialog{padding:15px}
  .master-audit-hero{grid-template-columns:1fr}
  .master-audit-quality-grid{grid-template-columns:1fr 1fr 1fr}
  .master-audit-content{max-height:70vh}
  .dictionary-toolbar .master-audit-btn{width:100%}
}

/* v1.7.25 — article choice */
.article-choice-options{
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:auto;
}
.article-choice-options button{
  min-height:54px;
  font-size:1.08rem;
  font-weight:750;
}


/* v1.7.28 — 5 минут сегодня + phrase foundation */
.daily-five-card{width:100%;display:flex;align-items:center;gap:14px;text-align:left;padding:16px 18px;margin:0 0 14px;border-radius:20px;border:1px solid rgba(91,231,184,.28);background:linear-gradient(135deg,rgba(41,123,101,.22),rgba(29,52,86,.20));box-shadow:none}
.daily-five-card:hover{transform:none;border-color:rgba(91,231,184,.48)}
.daily-five-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:rgba(91,231,184,.13);font-size:1.35rem}
.daily-five-copy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.daily-five-copy strong{font-size:1.08rem}.daily-five-copy small{opacity:.72;line-height:1.35}
.daily-five-arrow{font-size:1.8rem;opacity:.7}
@media(max-width:560px){.daily-five-card{padding:14px;border-radius:18px}.daily-five-copy small{font-size:.78rem}}


/* v1.7.31 — Daily Five layout + clearer short-training tasks */
.daily-five-card{
  min-height:76px;
  margin:0 0 10px;
  padding:12px 14px;
  gap:11px;
  align-self:start;
}
.daily-five-icon{width:38px;height:38px;flex-basis:38px;border-radius:12px}
.daily-five-copy{gap:2px;overflow:hidden}
.daily-five-copy strong{font-size:1rem;line-height:1.15}
.daily-five-copy small{font-size:.76rem;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
.daily-five-arrow{font-size:1.55rem;line-height:1;flex:0 0 auto}

.study-ask{
  width:min(100%,680px);
  margin:0 auto 12px;
  font-size:.92rem;
  line-height:1.35;
  color:var(--muted);
  overflow-wrap:anywhere;
}
.special-study-session .study-focus-word{line-height:1.14}
.special-study-session .study-focus-word-ru{font-size:clamp(1.35rem,5vw,2.35rem)}

@media(max-width:900px){
  /* Home is allowed to grow vertically. Do not squeeze new content into a fixed viewport. */
  body[data-view="home"] .shell{
    display:block;
    overflow:visible;
    padding:6px 8px 76px;
  }
  body[data-view="home"] .render-home{
    min-height:0;
    height:auto;
    display:grid;
    grid-template-rows:auto auto auto;
    gap:8px;
  }
  body[data-view="home"] .render-section{
    height:auto;
    min-height:0;
    overflow:visible;
    display:block;
    padding:8px;
  }
  body[data-view="home"] .render-section-title{margin:0 0 7px}
  body[data-view="home"] .render-grid{height:auto;min-height:0}
  body[data-view="home"] .render-tile{min-height:112px;height:auto}
  body[data-view="home"] .render-training-stats .render-tile{min-height:92px}
}
@media(max-width:560px){
  .daily-five-card{min-height:72px;padding:11px 12px;border-radius:16px}
  .daily-five-copy small{font-size:.72rem}
  .special-study-session .study-focus-card{padding:60px 14px 16px;min-height:180px}
  .study-ask{font-size:.86rem;margin-bottom:10px}
}

/* v1.7.31 — contextual target highlighting */
.study-target-word{
  color:var(--accent, #7ee7c4);
  background:rgba(126,231,196,.10);
  border-radius:.28em;
  padding:0 .10em;
  font-weight:750;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}


/* v1.7.31 — reliable context highlighting + adaptive home fill */
@media(max-width:900px){
  body[data-view="home"] .render-home{
    min-height:calc(100svh - 154px);
    grid-template-rows:minmax(max-content,1.55fr) minmax(max-content,1fr) minmax(max-content,.82fr);
    align-content:stretch;
  }
  body[data-view="home"] .render-section{
    display:flex;
    flex-direction:column;
  }
  body[data-view="home"] .render-section .render-grid{
    flex:1 1 auto;
    align-content:stretch;
  }
  body[data-view="home"] .render-section .render-grid-2{
    grid-auto-rows:minmax(112px,1fr);
  }
  body[data-view="home"] .render-training-stats{
    grid-auto-rows:minmax(92px,1fr);
  }
  body[data-view="home"] .render-tile{height:100%;}
}
@supports not (height:100svh){
  @media(max-width:900px){
    body[data-view="home"] .render-home{min-height:calc(100vh - 154px);}
  }
}


/* v1.7.36 — hidden Master Dictionary search */
.master-results{margin-top:14px;padding:14px;border:1px solid color-mix(in srgb,var(--accent,#76e6bf) 24%,transparent);border-radius:18px;background:color-mix(in srgb,var(--panel,#111827) 92%,var(--accent,#76e6bf) 8%)}
.master-results-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.master-results-head strong{display:block;font-size:14px}.master-results-head small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35}.master-count{font-size:11px;color:var(--muted);white-space:nowrap}
.master-cards{display:grid;gap:9px}.master-card{display:flex;gap:12px;align-items:center;padding:12px 12px 12px 13px;border:1px solid color-mix(in srgb,var(--border,#334155) 75%,transparent);border-radius:15px;background:color-mix(in srgb,var(--panel,#111827) 96%,white 4%)}.master-card-main{min-width:0;flex:1}.master-card-title{font-weight:750;font-size:16px}.master-card-meta{margin-top:2px;font-size:10px;color:var(--muted)}.master-card-translation{margin-top:6px;font-size:13px;line-height:1.35}.master-card-forms{margin-top:4px;font-size:11px;color:var(--accent,#76e6bf)}.master-card-example{margin-top:7px;padding-top:7px;border-top:1px solid color-mix(in srgb,var(--border,#334155) 55%,transparent);font-size:11px;line-height:1.35}.master-card-example small{display:block;margin-top:2px;color:var(--muted)}.master-add{flex:0 0 auto;border:0;border-radius:11px;padding:9px 11px;font-weight:700;font-size:11px;background:var(--accent,#76e6bf);color:#07130f}.master-add.is-added{background:transparent;color:var(--muted);border:1px solid var(--border,#334155)}.master-empty{padding:12px;color:var(--muted);font-size:12px;text-align:center}
@media(max-width:640px){.master-results{padding:11px}.master-card{align-items:flex-start;flex-direction:column}.master-add{align-self:stretch}.master-results-head{align-items:flex-start}}

/* v1.7.36 · Master Dictionary: three examples without bloating search cards */
.master-more-examples{margin-top:8px;border-top:1px solid rgba(255,255,255,.06);padding-top:6px}
.master-more-examples summary{cursor:pointer;color:var(--muted);font-size:.82rem;list-style:none}
.master-more-examples summary::-webkit-details-marker{display:none}
.master-more-examples[open] summary{margin-bottom:6px}
.master-more-examples .master-card-example{margin-top:6px}

/* v1.7.38 — UI cleanup: search-first dictionary, calmer home, safer iPhone nav */
.dictionary-toolbar{
  margin-bottom:12px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--surface);
  box-shadow:var(--shadow-soft);
}
.dictionary-search-box{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:0 14px;
  border:1.2px solid color-mix(in srgb,var(--green) 42%,var(--line));
  border-radius:17px;
  background:var(--surface-2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.dictionary-search-box:focus-within{
  border-color:color-mix(in srgb,var(--green) 78%,white 8%);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 12%,transparent);
}
.dictionary-search-icon{
  flex:0 0 auto;
  color:var(--green);
  font-size:1.45rem;
  line-height:1;
  opacity:.88;
}
.dictionary-search-box #search{
  width:100%;
  min-width:0;
  height:auto;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  box-shadow:none;
  font-size:1rem;
  color:var(--text);
}
.dictionary-search-box #search:focus{border:0;outline:0;box-shadow:none}
.dictionary-filters{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
  margin:9px 0 0;
}
.dictionary-filters select{
  min-height:42px;
  padding:0 10px;
  border-radius:12px;
  font-size:.78rem;
  color:var(--soft);
  background:var(--surface-2);
}

/* Search results from the hidden master dictionary should look like the primary answer. */
.master-results{
  margin:0 0 12px;
  padding:13px;
  border:1.4px solid color-mix(in srgb,var(--green) 46%,transparent);
  border-radius:20px;
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--surface) 92%,var(--green) 8%),
    color-mix(in srgb,var(--surface) 97%,var(--blue) 3%));
  box-shadow:0 8px 28px rgba(0,0,0,.08);
}
.master-results-head{align-items:center;margin-bottom:11px}
.master-results-head strong{font-size:1rem;line-height:1.15}
.master-kicker{
  display:inline-flex;
  margin-bottom:4px;
  padding:3px 7px;
  border-radius:999px;
  background:color-mix(in srgb,var(--green) 15%,transparent);
  color:var(--green);
  font-size:.62rem;
  font-weight:750;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.master-count{font-size:.7rem}
.master-card{
  position:relative;
  align-items:flex-start;
  padding:14px;
  border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));
  border-radius:17px;
  background:var(--surface-2);
}
.master-card::before{
  content:"";
  position:absolute;
  left:0;
  top:14px;
  bottom:14px;
  width:3px;
  border-radius:0 999px 999px 0;
  background:var(--green);
  opacity:.78;
}
.master-card-main{padding-left:4px}
.master-card-title{font-size:1.22rem;font-weight:780;letter-spacing:-.015em}
.master-card-translation{font-size:.96rem;line-height:1.4}
.master-card-meta{font-size:.68rem}
.master-card-forms{font-size:.78rem}
.master-card-example{font-size:.78rem}
.master-add{
  min-height:42px;
  padding:10px 15px;
  border-radius:12px;
  font-size:.78rem;
}

/* Home: one clear action + compact secondary information. */
.home-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.home-metric{
  min-width:0;
  min-height:52px;
  padding:7px 5px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--surface-2);
  color:var(--text);
  text-align:center;
}
button.home-metric{cursor:pointer}
.home-metric strong{font-size:1.05rem;line-height:1;font-weight:730}
.home-metric span{font-size:.64rem;line-height:1.1;color:var(--muted)}
.home-quick-grid .render-tile{
  min-height:96px;
  padding:10px;
  grid-template-rows:auto auto 1fr;
}
.home-quick-grid .render-tile-icon{
  width:31px;height:31px;margin-bottom:6px;font-size:.86rem;
}
.home-quick-grid .render-tile-label{font-size:.76rem;line-height:1.08}
.home-quick-grid .render-tile strong{font-size:1.34rem;margin-top:5px}
.render-today-section .daily-five-card{margin-bottom:8px}

@media(max-width:900px){
  .shell{padding-bottom:84px}
  body[data-view="home"] .shell{padding-bottom:84px}

  .mobile-nav{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    height:calc(68px + env(safe-area-inset-bottom, 0px)) !important;
    min-height:calc(68px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .mobile-nav-btn{
    height:68px !important;
    min-height:68px !important;
    padding:7px 2px 5px;
    grid-template-rows:36px 18px;
  }
  .nav-glyph{height:36px;font-size:1.66rem}
  .mobile-nav-btn small{font-size:.64rem;font-weight:620;line-height:1.05}
  .mobile-nav-btn.active::after{top:4px;left:37%;right:37%;height:2.5px}
  body[data-view="study"] .mobile-nav{
    height:calc(68px + env(safe-area-inset-bottom, 0px)) !important;
    min-height:calc(68px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body[data-view="home"] .render-home{
    min-height:calc(100svh - 166px);
    grid-template-rows:minmax(max-content,1.08fr) minmax(max-content,1fr) minmax(max-content,.92fr);
    gap:8px;
  }
  body[data-view="home"] .render-section{padding:9px}
  body[data-view="home"] .render-section-title{font-size:1.02rem;margin-bottom:7px}
  body[data-view="home"] .render-quick-section .render-grid{flex:1 1 auto}
  body[data-view="home"] .home-quick-grid .render-tile{height:100%}

  .dictionary-toolbar{padding:9px;border-radius:17px}
  .dictionary-search-box{min-height:54px;border-radius:15px;padding:0 12px}
  .dictionary-search-box #search{font-size:.96rem}
  .dictionary-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .dictionary-filters select{min-height:40px;font-size:.72rem;padding:0 8px}
  .master-results{padding:11px;border-radius:17px}
  .master-card{padding:13px;gap:9px}
  .master-card-title{font-size:1.16rem}
  .master-add{align-self:stretch;width:100%;font-size:.82rem}
}

/* v1.7.93 — Schweizerdeutsch follows the normal GermanBook card/training UI. */
#swissCards .swiss-dictionary-card{--dict-card-accent:#d94a55;cursor:grab}
#swissCards .swiss-dictionary-card:active{cursor:grabbing}
#swissCards .swiss-dictionary-card.dictionary-list-card-learned{--dict-card-accent:var(--green)}
#swissCards .swiss-standard-line{align-items:baseline;gap:8px}
#swissCards .swiss-standard-line span{color:var(--soft);font-size:.65rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
#swissCards .swiss-standard-line strong{color:var(--muted);font-size:.9rem;font-weight:650}
#swissCards .swiss-card-progress{margin-top:9px;color:var(--soft);font-size:.7rem}
#swissCards .swiss-learn-toggle{font-weight:850;color:var(--green)}
.swiss-study-setup{margin-top:0}
.swiss-training-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#swissTrainingGame{display:flex;flex-direction:column;min-height:0;overflow:hidden}
body.flashcards-active #swissTrainingGame{overflow:hidden}
#swissTrainingGame .flashcard-stage{flex:1 1 auto}
#swissTrainingGame .flashcard-back .flashcard-example{font-size:.83rem;font-weight:500;color:var(--muted)}

@media(max-width:900px){
  .mobile-nav-btn small{font-size:.57rem}
}
@media(max-width:640px){.swiss-training-mode-grid{grid-template-columns:1fr}}

/* v1.7.95 — Schweizerdeutsch is a home module, not a fifth navigation root. */
.swiss-home-tile{
  width:100%;min-height:94px;
  grid-template-columns:42px minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-items:center;column-gap:11px;text-align:left
}
.swiss-home-tile .swiss-home-icon{grid-column:1;grid-row:1/3;margin:0;font-size:.78rem;font-weight:850;letter-spacing:-.03em}
.swiss-home-tile .render-tile-label{grid-column:2;grid-row:1;align-self:end}
.swiss-home-tile strong{grid-column:2;grid-row:2;align-self:start;margin:3px 0 0;font-size:1.26rem;line-height:1.08}
.swiss-home-tile .render-tile-unit{grid-column:3;grid-row:1/3;align-self:center;margin:0;padding:7px 9px;border-radius:999px;background:color-mix(in srgb,var(--tile-color) 12%,var(--surface));font-size:.7rem;white-space:nowrap}
@media(max-width:480px){
  .swiss-home-tile{grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto auto;min-height:104px}
  .swiss-home-tile .swiss-home-icon{grid-row:1/4}
  .swiss-home-tile .render-tile-unit{grid-column:2;grid-row:3;justify-self:start;margin-top:5px;padding:4px 7px}
}
@media(max-width:560px){
  .home-quick-grid.render-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .home-quick-grid .render-tile{min-height:88px;border-radius:15px;padding:8px}
  .home-quick-grid .render-tile-icon{width:28px;height:28px;margin-bottom:5px}
  .home-quick-grid .render-tile-label{font-size:.68rem}
  .home-quick-grid .render-tile strong{font-size:1.2rem}
  .home-metric{min-height:48px;border-radius:12px}
}
@media(max-width:900px){
  body[data-view="home"] .render-home{min-height:calc(100svh - 146px)}
}
@supports not (height:100svh){
  @media(max-width:900px){body[data-view="home"] .render-home{min-height:calc(100vh - 146px)}}
}


/* v1.7.39 — clearer training completion */
.study-promoted-box{
  margin:14px auto 16px;
  max-width:520px;
  padding:14px 15px;
  border:1px solid color-mix(in srgb,var(--green) 36%,var(--line));
  border-radius:18px;
  background:color-mix(in srgb,var(--green) 9%,var(--surface));
  text-align:left;
}
.study-promoted-kicker{font-size:.72rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase;color:var(--green);margin-bottom:4px}
.study-promoted-title{font-weight:800;margin-bottom:9px}
.study-promoted-list{display:flex;flex-wrap:wrap;gap:7px}
.study-promoted-list span{display:inline-flex;padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--green) 14%,var(--surface-2));border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));font-weight:750}
.study-promoted-note{margin-top:9px;color:var(--muted);font-size:.78rem}
.study-action-count{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:21px;padding:0 6px;margin-left:5px;border-radius:999px;background:rgba(255,255,255,.16);font-size:.75rem}
@media(max-width:620px){.study-finish-actions{flex-wrap:wrap}.study-finish-actions button{min-height:46px}.study-promoted-box{margin-inline:0}}

/* v1.7.40 — accumulated error training */
.error-study-block{
  margin-top:14px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  padding:15px 16px;
  border-radius:18px;
  border:1px solid color-mix(in srgb,var(--red) 32%,var(--border));
  background:color-mix(in srgb,var(--surface) 92%,var(--red) 8%);
}
.error-study-copy{display:grid;gap:4px;min-width:0}
.error-study-kicker{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--red) 76%,var(--text))}
.error-study-copy h3{margin:0;font-size:1.02rem}
.error-study-copy p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.35}
.error-study-types{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}
.error-study-types span{padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.045);border:1px solid var(--border);font-size:.7rem;color:var(--muted)}
.error-study-types b{color:var(--text)}
.error-study-start{min-height:44px;padding:0 14px;border-radius:13px;white-space:nowrap}
.error-study-start:disabled{opacity:.45;cursor:not-allowed}
.error-study-block.is-empty{border-color:var(--border);background:color-mix(in srgb,var(--surface) 97%,var(--muted) 3%)}
@media(max-width:560px){
  .error-study-block{grid-template-columns:1fr;padding:13px 14px;gap:11px}
  .error-study-start{width:100%}
}

/* v1.7.41 — adaptive per-word training */
.adaptive-study-block{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px;
  border:1px solid rgba(100,255,184,.18);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(48,122,92,.15),rgba(70,74,142,.10));
}
.adaptive-study-copy{min-width:0;}
.adaptive-study-kicker{
  display:block;
  margin-bottom:4px;
  color:#8de4b8;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.adaptive-study-copy h3{margin:0 0 5px;font-size:1.05rem;}
.adaptive-study-copy p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.35;max-width:36rem;}
.adaptive-study-start{
  flex:0 0 auto;
  min-width:94px;
  min-height:42px;
  border-radius:14px;
  font-weight:800;
}
@media(max-width:520px){
  .adaptive-study-block{align-items:stretch;flex-direction:column;padding:14px;}
  .adaptive-study-start{width:100%;}
}


/* v1.7.45 — simple spaced-repetition queue */
.srs-review-block{
  margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:15px 16px;border-radius:18px;
  border:1px solid color-mix(in srgb,var(--cyan) 30%,var(--border));
  background:linear-gradient(135deg,color-mix(in srgb,var(--cyan) 10%,var(--surface)),color-mix(in srgb,var(--blue) 7%,var(--surface)));
}
.srs-review-copy{min-width:0;display:grid;gap:4px}.srs-review-copy h3{margin:0;font-size:1.04rem}
.srs-review-copy p{margin:0;color:var(--muted);font-size:.83rem;line-height:1.35}
.srs-review-kicker{font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}
.srs-review-start{flex:0 0 auto;min-height:44px;padding:0 15px;border-radius:14px;font-weight:800;white-space:nowrap}
.srs-review-start:disabled{opacity:.48}.srs-review-block.is-empty{border-color:var(--border);background:var(--surface)}
.review-learned-badge{display:inline-flex;align-self:center;margin:4px auto 0;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:750;color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent);border:1px solid color-mix(in srgb,var(--green) 22%,var(--border))}
.review-grade-help{margin:15px 0 7px;color:var(--muted);font-size:.8rem;text-align:center}
.grade-row .grade{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px}
.grade-row .grade small{font-size:.66rem;font-weight:600;opacity:.7}
.review-next-due{margin-top:10px;text-align:center;color:var(--soft);font-size:.78rem}
@media(max-width:520px){.srs-review-block{align-items:stretch;flex-direction:column;padding:14px}.srs-review-start{width:100%}}


/* v1.7.47 — swipeable flip cards */
.flashcard-study-block{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;border:1px solid color-mix(in srgb,var(--violet) 28%,var(--border));border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--violet) 10%,var(--surface)),color-mix(in srgb,var(--cyan) 7%,var(--surface)))}
.flashcard-study-copy{min-width:0}.flashcard-study-kicker{display:block;margin-bottom:4px;color:var(--violet);font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.flashcard-study-copy h3{margin:0 0 5px;font-size:1.05rem}.flashcard-study-copy p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.35}.flashcard-study-start{flex:0 0 auto;min-width:94px;min-height:42px;border-radius:14px;font-weight:800}
.flashcard-stage{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:min(65vh,620px);padding:20px 0 8px;overflow:hidden}.flashcard-drag{position:relative;width:min(100%,560px);height:390px;margin:0 auto;perspective:1200px;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;z-index:2}.flashcard-drag:active{cursor:grabbing}.flashcard-flip{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .46s cubic-bezier(.2,.7,.2,1)}.flashcard-flip.is-flipped{transform:rotateY(180deg)}.flashcard-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px;text-align:center;border:1px solid var(--border);border-radius:28px;background:radial-gradient(circle at 50% 52%,color-mix(in srgb,var(--cyan) 10%,transparent),transparent 45%),var(--surface);box-shadow:0 18px 48px rgba(0,0,0,.18);backface-visibility:hidden;-webkit-backface-visibility:hidden}.flashcard-back{transform:rotateY(180deg);background:radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--violet) 12%,transparent),transparent 48%),var(--surface)}.flashcard-face>strong{font-size:clamp(2rem,7vw,3.2rem);line-height:1.08;max-width:100%;overflow-wrap:anywhere}.flashcard-back>strong{font-size:clamp(1.7rem,6vw,2.7rem)}.flashcard-side-label{position:absolute;top:20px;left:22px;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.flashcard-face>small{color:var(--muted);font-weight:750}.flashcard-tap-hint{position:absolute;bottom:18px;color:var(--muted);font-size:.76rem}.flashcard-meta{color:var(--soft);font-size:.88rem;line-height:1.35}.flashcard-example{display:grid;gap:5px;max-width:92%;padding-top:4px;color:var(--soft);font-size:.88rem;line-height:1.35}.flashcard-example span{color:var(--muted)}.flashcard-swipe-label{position:absolute;top:50%;z-index:1;opacity:0;padding:9px 13px;border-radius:12px;font-size:.86rem;font-weight:900;letter-spacing:.08em;transform:translateY(-50%);pointer-events:none}.flashcard-swipe-no{left:14px;color:var(--red);border:1px solid color-mix(in srgb,var(--red) 55%,transparent);background:color-mix(in srgb,var(--red) 12%,var(--surface))}.flashcard-swipe-yes{right:14px;color:var(--green);border:1px solid color-mix(in srgb,var(--green) 55%,transparent);background:color-mix(in srgb,var(--green) 12%,var(--surface))}.flashcard-gesture-help{display:flex;justify-content:space-between;width:min(100%,560px);margin:15px auto 0;padding:0 8px;color:var(--muted);font-size:.78rem}.flashcard-finish .study-promoted{margin-top:14px}
@media(max-width:520px){.flashcard-study-block{align-items:stretch;flex-direction:column;padding:14px}.flashcard-study-start{width:100%}.flashcard-stage{min-height:560px;padding-top:12px}.flashcard-drag{height:360px}.flashcard-face{padding:24px 20px;border-radius:24px}.flashcard-side-label{top:17px;left:18px}.flashcard-tap-hint{bottom:15px}}

/* v1.7.47 — richer swipe feedback for flashcards */
.flashcard-drag{isolation:isolate}
.flashcard-swipe-tint{position:absolute;inset:0;z-index:4;border-radius:28px;opacity:0;pointer-events:none;transition:opacity .06s linear;mix-blend-mode:normal}
.flashcard-swipe-tint-yes{background:linear-gradient(135deg,rgba(68,210,112,.16),rgba(54,190,94,.52));box-shadow:inset 0 0 0 2px rgba(98,235,138,.34),inset 0 -80px 120px rgba(25,135,67,.18)}
.flashcard-swipe-tint-no{background:linear-gradient(225deg,rgba(242,78,78,.16),rgba(210,47,62,.52));box-shadow:inset 0 0 0 2px rgba(255,113,113,.34),inset 0 -80px 120px rgba(145,25,43,.18)}
.flashcard-swipe-badge{position:absolute;top:24px;z-index:5;display:flex;align-items:center;gap:9px;padding:9px 13px 9px 9px;border-radius:999px;opacity:0;pointer-events:none;transform:scale(.72);transform-origin:center;will-change:transform,opacity;box-shadow:0 12px 30px rgba(0,0,0,.26);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.flashcard-swipe-badge b{font-size:.86rem;letter-spacing:.075em;white-space:nowrap}
.flashcard-swipe-badge-yes{right:20px;color:#dfffe8;background:rgba(31,124,65,.72);border:1px solid rgba(135,255,169,.55)}
.flashcard-swipe-badge-no{left:20px;color:#ffe7e7;background:rgba(151,39,53,.74);border:1px solid rgba(255,140,140,.52)}
.flashcard-swipe-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-size:1.22rem;background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.13)}
@media(max-width:520px){.flashcard-swipe-tint{border-radius:24px}.flashcard-swipe-badge{top:18px}.flashcard-swipe-badge-yes{right:14px}.flashcard-swipe-badge-no{left:14px}.flashcard-swipe-icon{width:36px;height:36px}}

/* v1.7.48 — smoother, viewport-anchored flashcard swipe */
body.flashcards-active{overflow:hidden;overscroll-behavior:none}
body.flashcards-active #studyArea{overflow:hidden}
body.flashcards-active .flashcard-stage{
  flex:1 1 auto;
  min-height:0;
  padding:8px 0 4px;
  overflow:clip;
  overscroll-behavior:none;
}
body.flashcards-active .flashcard-drag{
  height:clamp(300px,52svh,390px);
  max-height:100%;
  touch-action:none;
  overscroll-behavior:none;
  will-change:transform,opacity;
  transform:translate3d(0,0,0);
  -webkit-tap-highlight-color:transparent;
}
body.flashcards-active .flashcard-flip{will-change:transform}
body.flashcards-active .flashcard-swipe-badge{
  top:42%;
  z-index:8;
  transform:translateY(-50%) scale(.74);
  transform-origin:center;
  will-change:opacity,transform;
}
body.flashcards-active .flashcard-swipe-badge-yes{right:clamp(14px,5vw,38px)}
body.flashcards-active .flashcard-swipe-badge-no{left:clamp(14px,5vw,38px)}
body.flashcards-active .flashcard-swipe-icon{width:42px;height:42px;font-size:1.32rem}
body.flashcards-active .flashcard-swipe-badge b{font-size:.9rem}
@media(max-width:520px){
  body.flashcards-active .flashcard-stage{min-height:0;padding-top:6px}
  body.flashcards-active .flashcard-drag{height:clamp(300px,50svh,360px)}
  body.flashcards-active .flashcard-swipe-badge{top:41%}
}

/* v1.7.49 — unified training card system */
.unified-training-card{
  padding:0 !important;
  overflow:visible !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.unified-training-card .study-scene{gap:14px}
.unified-training-card .study-focus-card{
  min-height:clamp(260px,42svh,390px);
  border-radius:28px;
  background:radial-gradient(circle at 50% 52%,color-mix(in srgb,var(--cyan) 9%,transparent),transparent 46%),var(--surface);
  border:1px solid var(--border);
  box-shadow:0 18px 48px rgba(0,0,0,.18);
}
.unified-training-card .study-options-choices button,
.unified-training-card .study-typing input,
.unified-training-card .study-typing button,
.unified-training-card .study-result-panel{border-radius:18px}

.study-swipe-stage{
  position:relative;
  width:min(100%,560px);
  min-height:clamp(330px,52svh,430px);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  touch-action:none;
}
.study-swipe-card{
  position:relative;
  width:100%;
  height:clamp(300px,48svh,390px);
  perspective:1200px;
  user-select:none;
  -webkit-user-select:none;
  cursor:grab;
  z-index:2;
  isolation:isolate;
  will-change:transform,opacity;
  touch-action:none;
}
.study-swipe-card:active{cursor:grabbing}
.study-swipe-flip{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .46s cubic-bezier(.2,.7,.2,1);will-change:transform}
.study-swipe-flip.is-flipped{transform:rotateY(180deg)}
.study-swipe-face{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px;text-align:center;
  border:1px solid var(--border);border-radius:28px;background:radial-gradient(circle at 50% 52%,color-mix(in srgb,var(--cyan) 10%,transparent),transparent 45%),var(--surface);
  box-shadow:0 18px 48px rgba(0,0,0,.18);backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.study-swipe-back{transform:rotateY(180deg);background:radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--violet) 12%,transparent),transparent 48%),var(--surface)}
.study-swipe-face>strong{font-size:clamp(2rem,7vw,3.2rem);line-height:1.08;max-width:100%;overflow-wrap:anywhere}
.study-swipe-back>strong{font-size:clamp(1.7rem,6vw,2.7rem)}
.study-swipe-face>small{color:var(--muted);font-weight:750}
.study-swipe-tint{position:absolute;inset:0;z-index:4;border-radius:28px;opacity:0;pointer-events:none;transition:opacity .06s linear}
.study-swipe-tint-yes{background:linear-gradient(135deg,rgba(68,210,112,.16),rgba(54,190,94,.52));box-shadow:inset 0 0 0 2px rgba(98,235,138,.34),inset 0 -80px 120px rgba(25,135,67,.18)}
.study-swipe-tint-no{background:linear-gradient(225deg,rgba(242,78,78,.16),rgba(210,47,62,.52));box-shadow:inset 0 0 0 2px rgba(255,113,113,.34),inset 0 -80px 120px rgba(145,25,43,.18)}
.study-swipe-badge{
  position:absolute;top:43%;z-index:5;display:flex;align-items:center;gap:9px;padding:9px 13px 9px 9px;border-radius:999px;opacity:0;pointer-events:none;
  transform:translateY(-50%) scale(.74);transform-origin:center;will-change:transform,opacity;box-shadow:0 12px 30px rgba(0,0,0,.26);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)
}
.study-swipe-badge b{font-size:.9rem;letter-spacing:.075em;white-space:nowrap}
.study-swipe-badge-yes{right:clamp(14px,5vw,38px);color:#dfffe8;background:rgba(31,124,65,.72);border:1px solid rgba(135,255,169,.55)}
.study-swipe-badge-no{left:clamp(14px,5vw,38px);color:#ffe7e7;background:rgba(151,39,53,.74);border:1px solid rgba(255,140,140,.52)}
@media(max-width:520px){
  .unified-training-card .study-focus-card{min-height:270px;border-radius:24px;padding:58px 18px 20px}
  .study-swipe-stage{min-height:0;padding-top:4px}
  .study-swipe-card{height:clamp(300px,50svh,360px)}
  .study-swipe-face,.study-swipe-tint{border-radius:24px}
  .study-swipe-face{padding:24px 20px}
}


/* v1.7.51 — training hub + dynamic home focus */
.home-focus-section{padding-top:0}
.home-focus-card{position:relative;display:flex;align-items:center;gap:14px;min-height:104px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--cyan) 28%,var(--border));border-radius:22px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 92%,var(--cyan) 8%),color-mix(in srgb,var(--surface) 94%,var(--violet) 6%));box-shadow:0 10px 32px rgba(0,0,0,.10)}
.home-focus-card::after{content:"";position:absolute;inset:-35% auto auto 60%;width:180px;height:180px;border-radius:50%;background:color-mix(in srgb,var(--cyan) 11%,transparent);filter:blur(8px);pointer-events:none;animation:homeFocusGlow 6s ease-in-out infinite alternate}
@keyframes homeFocusGlow{from{transform:translate3d(-6px,0,0) scale(.92);opacity:.55}to{transform:translate3d(8px,4px,0) scale(1.08);opacity:1}}
.home-focus-review{border-color:color-mix(in srgb,var(--green) 42%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--green) 11%,var(--surface)),var(--surface))}
.home-focus-errors{border-color:color-mix(in srgb,#f0ad4e 38%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,#f0ad4e 9%,var(--surface)),var(--surface))}
.home-focus-phrase{border-color:color-mix(in srgb,var(--violet) 38%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--violet) 11%,var(--surface)),color-mix(in srgb,var(--cyan) 5%,var(--surface)))}
.home-focus-orb{position:relative;z-index:1;display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:16px;background:color-mix(in srgb,var(--green) 12%,var(--surface));font-size:1.3rem;font-weight:800}
.home-focus-body{position:relative;z-index:1;min-width:0;flex:1}.home-focus-kicker{display:block;margin-bottom:4px;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.66}.home-focus-title{display:block;font-size:1.08rem;line-height:1.22}.home-focus-text{margin:5px 0 0;font-size:.8rem;line-height:1.35;opacity:.72}.home-focus-actions{position:relative;z-index:2;display:flex;gap:7px;flex-wrap:wrap}.home-focus-action{position:relative;z-index:2;flex:0 0 auto;padding:10px 14px;border-radius:13px;font-weight:800}.home-focus-action.ghost{background:transparent}.home-focus-phrase-reveal{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.home-focus-phrase-reveal p{margin:0 0 5px;font-weight:700}.home-focus-phrase-reveal small{display:block;line-height:1.35;opacity:.8}
.training-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.training-mode-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:1fr auto;gap:5px 12px;min-height:154px;padding:15px;border:1px solid var(--border);border-radius:20px;background:color-mix(in srgb,var(--surface) 97%,var(--muted) 3%);box-shadow:none}
.training-mode-card-primary{border-color:color-mix(in srgb,var(--green) 38%,var(--border));background:linear-gradient(140deg,color-mix(in srgb,var(--green) 9%,var(--surface)),var(--surface))}.training-mode-card-phrase{border-color:color-mix(in srgb,var(--violet) 35%,var(--border));background:linear-gradient(140deg,color-mix(in srgb,var(--violet) 9%,var(--surface)),var(--surface))}
.training-mode-icon{grid-row:1;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--cyan) 9%,var(--surface));font-size:1.2rem}.training-mode-copy{min-width:0}.training-mode-copy>span{display:block;font-size:.67rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;opacity:.57}.training-mode-copy h3{margin:3px 0 4px;font-size:1rem}.training-mode-copy p{margin:0;font-size:.76rem;line-height:1.35;opacity:.7}.training-mode-action{grid-column:1/-1;width:100%;margin-top:7px;padding:10px 12px;border-radius:13px;font-weight:800}.training-mode-card .error-study-types{grid-column:auto;display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.training-mode-card .error-study-types span{font-size:.66rem;padding:3px 6px;border-radius:8px}.training-mode-card.is-empty{opacity:.76}.custom-study-details{margin-top:14px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--surface) 98%,var(--muted) 2%);overflow:hidden}.custom-study-details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;cursor:pointer;list-style:none;font-weight:800}.custom-study-details>summary::-webkit-details-marker{display:none}.custom-study-details>summary small{font-weight:500;opacity:.6}.custom-study-details .custom-study-block{margin:0;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent}
.phrase-card-stage .flashcard-drag{height:370px}.phrase-main-word{font-size:clamp(1.5rem,5vw,2.25rem);line-height:1.2}.phrase-translation{font-size:clamp(1.25rem,4.4vw,1.85rem)}
@media(max-width:620px){.training-mode-grid{grid-template-columns:1fr 1fr;gap:9px}.training-mode-card{min-height:146px;padding:12px;gap:5px 9px;border-radius:17px}.training-mode-icon{width:34px;height:34px;border-radius:11px}.training-mode-copy h3{font-size:.93rem}.training-mode-copy p{font-size:.71rem}.training-mode-action{padding:9px 10px}.home-focus-card{min-height:96px;padding:14px;border-radius:19px}.home-focus-orb{width:40px;height:40px;flex-basis:40px}.home-focus-title{font-size:1rem}.home-focus-text{font-size:.74rem}.home-focus-actions{width:100%;margin-top:8px}.home-focus-phrase{flex-wrap:wrap}.home-focus-phrase .home-focus-body{min-width:calc(100% - 58px)}}
@media(max-width:390px){.training-mode-grid{grid-template-columns:1fr}.training-mode-card{min-height:126px}}


/* v1.7.56 — SRS review uses the same flip/swipe interaction as flashcards */
.review-flashcard-stage{margin-top:8px}
.review-flashcard-drag{height:clamp(330px,54svh,410px)}
.review-save-state{width:min(100%,560px);margin:10px auto 0;text-align:center;color:var(--red);font-size:.82rem}
.review-swipe-progress{margin-bottom:2px}
@media(max-width:520px){.review-flashcard-drag{height:clamp(310px,51svh,370px)}}


/* v1.7.64 — visible build/backend version */
.brand-version{
  margin-top:2px;
  font-size:10px;
  line-height:1.15;
  letter-spacing:.02em;
  color:var(--muted);
  opacity:.78;
  white-space:nowrap;
}
.brand-version.version-ok{color:#79c879;opacity:.85}
.brand-version.version-warn{color:#e6ad62;opacity:1}


/* v1.7.64 — training hub: the whole card is the action */
.training-mode-card.training-mode-clickable{
  width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;
  transition:transform .16s ease,border-color .16s ease,filter .16s ease,box-shadow .16s ease;
}
.training-mode-card.training-mode-clickable:active{transform:scale(.985);filter:brightness(1.05)}
.training-mode-card.training-mode-clickable:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.training-mode-card-cyan{border-color:color-mix(in srgb,var(--cyan) 36%,var(--border));background:linear-gradient(140deg,color-mix(in srgb,var(--cyan) 9%,var(--surface)),var(--surface))}
.training-mode-card-violet{border-color:color-mix(in srgb,var(--violet) 38%,var(--border));background:linear-gradient(140deg,color-mix(in srgb,var(--violet) 10%,var(--surface)),var(--surface))}
.training-mode-card-green{border-color:color-mix(in srgb,var(--green) 42%,var(--border));background:linear-gradient(140deg,color-mix(in srgb,var(--green) 11%,var(--surface)),var(--surface))}
.training-mode-card-amber{border-color:color-mix(in srgb,#e9a844 42%,var(--border));background:linear-gradient(140deg,color-mix(in srgb,#e9a844 10%,var(--surface)),var(--surface))}
.training-mode-card-rose{border-color:color-mix(in srgb,#e97993 36%,var(--border));background:linear-gradient(140deg,color-mix(in srgb,#e97993 9%,var(--surface)),var(--surface))}
.training-mode-card.training-mode-clickable.is-empty,.training-mode-card.training-mode-clickable[data-disabled="1"]{opacity:.55;cursor:default;filter:saturate(.6)}
.training-mode-card .training-mode-copy{grid-column:2;align-self:start}
.training-mode-card .training-mode-icon{grid-column:1}


/* v1.7.65 — lightweight pronunciation buttons (Web Speech API) */
.speak-btn{
  appearance:none;border:1px solid color-mix(in srgb,var(--accent,#6ee7b7) 32%,transparent);
  background:color-mix(in srgb,var(--panel,#101827) 82%,transparent);color:inherit;
  width:32px;height:32px;min-width:32px;border-radius:999px;padding:0;
  display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;
  cursor:pointer;touch-action:manipulation;vertical-align:middle;box-shadow:none;
}
.speak-btn:active{transform:scale(.94)}
.speak-btn-large{width:36px;height:36px;min-width:36px;font-size:18px}
.card-top,.master-card-title,.detail-title-row,.flashcard-word-with-audio,.study-word-with-audio,.home-focus-title-row,.home-phrase-example-de,.flashcard-example-de,.master-example-de{display:flex;align-items:center;gap:9px}
.card-top h3,.master-card-title span,.detail-title-row h2,.home-focus-title-row .home-focus-title{min-width:0}
.detail-title-row{justify-content:space-between}
.example-de,.master-example-de,.flashcard-example-de,.home-phrase-example-de{justify-content:space-between}
.example-de .speak-btn,.master-example-de .speak-btn,.flashcard-example-de .speak-btn,.home-phrase-example-de .speak-btn{width:28px;height:28px;min-width:28px;font-size:14px}
.flashcard-word-with-audio,.phrase-main-word.study-word-with-audio,.study-word-with-audio{justify-content:center}
.phrase-main-word{display:flex;align-items:center;justify-content:center;gap:10px}
@media (max-width:640px){.speak-btn{width:34px;height:34px;min-width:34px}.speak-btn-large{width:38px;height:38px;min-width:38px}}


/* v1.7.69 — swipe-right directly from compact dictionary cards = Знаю */
#cards .card{overflow:hidden;touch-action:pan-y;will-change:transform}
#cards .card>*:not(.dictionary-swipe-tint):not(.dictionary-swipe-badge){position:relative;z-index:2}
.dictionary-swipe-tint{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;border-radius:inherit;background:linear-gradient(135deg,rgba(67,214,112,.08),rgba(45,185,91,.58));box-shadow:inset 0 0 0 2px rgba(109,246,151,.36);transition:opacity .05s linear}
.dictionary-swipe-badge{position:absolute;z-index:4;right:18px;top:50%;display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:14px;color:#e7ffed;background:rgba(31,124,65,.82);border:1px solid rgba(135,255,169,.58);box-shadow:0 8px 24px rgba(0,0,0,.2);opacity:0;transform:translateY(-50%) scale(.82);pointer-events:none}
.dictionary-swipe-badge span{font-size:1.2rem}.dictionary-swipe-badge b{font-size:.82rem;letter-spacing:.07em}
@media(max-width:520px){.dictionary-swipe-badge{right:12px;padding:8px 10px}.dictionary-swipe-badge b{font-size:.76rem}}

/* v1.7.69 — dictionary edit button restored + training hub visual alignment */
/* v1.7.67 swipe layering accidentally overrode position:absolute on the edit button. */
#cards .card>.card-edit{
  position:absolute;
  top:10px;
  right:10px;
  left:auto;
  z-index:6;
}
#cards .card-meta-top{padding-right:42px}

/* Training cards: icon + block name form one compact header; description uses full width. */
.training-mode-grid{
  align-items:stretch;
  grid-auto-flow:row;
}
.training-mode-card{
  --mode-accent:var(--cyan);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  min-height:166px;
  padding:15px 16px;
  gap:12px;
  overflow:hidden;
  position:relative;
  background:
    radial-gradient(circle at 10% 0%,color-mix(in srgb,var(--mode-accent) 18%,transparent),transparent 52%),
    linear-gradient(145deg,color-mix(in srgb,var(--mode-accent) 9%,var(--surface)),var(--surface));
  border-color:color-mix(in srgb,var(--mode-accent) 46%,var(--border));
}
.training-mode-card::after{
  content:'';
  position:absolute;
  right:-34px;
  bottom:-46px;
  width:120px;
  height:120px;
  border-radius:50%;
  background:color-mix(in srgb,var(--mode-accent) 7%,transparent);
  pointer-events:none;
}
.training-mode-head{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}
.training-mode-title{min-width:0;flex:1}
.training-mode-title>span{
  display:block;
  margin:0 0 3px;
  color:color-mix(in srgb,var(--mode-accent) 78%,var(--text));
  font-size:.69rem;
  line-height:1.15;
  font-weight:850;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.training-mode-title h3{
  margin:0;
  font-size:1.02rem;
  line-height:1.18;
  letter-spacing:-.01em;
}
.training-mode-card .training-mode-icon{
  position:relative;
  z-index:1;
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:13px;
  color:color-mix(in srgb,var(--mode-accent) 82%,white 18%);
  background:color-mix(in srgb,var(--mode-accent) 18%,var(--surface));
  border:1px solid color-mix(in srgb,var(--mode-accent) 34%,transparent);
  box-shadow:inset 0 0 18px color-mix(in srgb,var(--mode-accent) 8%,transparent);
  font-size:1.28rem;
}
.training-mode-description{
  position:relative;
  z-index:1;
  width:100%;
  margin:0;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.42;
  text-align:left;
  overflow-wrap:anywhere;
}
.training-mode-card .error-study-types{
  position:relative;
  z-index:1;
  width:100%;
  margin-top:auto;
  display:flex;
  gap:5px;
  flex-wrap:wrap;
}
.training-mode-card-primary{--mode-accent:var(--green)}
.training-mode-card-cyan{--mode-accent:var(--cyan)}
.training-mode-card-violet{--mode-accent:var(--violet)}
.training-mode-card-green{--mode-accent:#70d779}
.training-mode-card-amber{--mode-accent:#f2ae4d}
.training-mode-card-phrase{--mode-accent:#b18cff}
.training-mode-card-rose{--mode-accent:#ef7f9b}
.training-mode-card-wide{grid-column:1/-1;min-height:132px}

@media(max-width:620px){
  .training-mode-grid{gap:10px}
  .training-mode-card{min-height:158px;padding:13px 14px;gap:11px;border-radius:18px}
  .training-mode-card .training-mode-icon{width:39px;height:39px;flex-basis:39px;border-radius:12px;font-size:1.18rem}
  .training-mode-head{gap:9px}
  .training-mode-title>span{font-size:.64rem}
  .training-mode-title h3{font-size:.98rem}
  .training-mode-description{font-size:.73rem;line-height:1.38}
  .training-mode-card-wide{min-height:120px}
}
@media(max-width:390px){
  .training-mode-grid{grid-template-columns:1fr 1fr}
  .training-mode-card{min-height:154px}
  .training-mode-card-wide{grid-column:1/-1;min-height:116px}
}

/* v1.7.69 — equal training tiles, softer decoration, robust dictionary edit control */
/* Keep the edit pencil outside the swipe content stacking context on every dictionary list. */
#cards .card>*:not(.dictionary-swipe-tint):not(.dictionary-swipe-badge):not(.card-edit){
  position:relative;
  z-index:2;
}
.cards .card>.card-edit{
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  bottom:auto !important;
  left:auto !important;
  margin:0 !important;
  transform:none !important;
  z-index:10 !important;
}
#cards .card-meta-top,
#learnedCards .card-meta-top{padding-right:44px}

/* Six main training choices use one fixed visual height; the wide semantic tile stays compact. */
.training-mode-card:not(.training-mode-card-wide){
  height:188px;
  min-height:188px;
  max-height:188px;
}
.training-mode-card-wide{
  height:126px;
  min-height:126px;
  max-height:126px;
}
/* The decorative lower-right orb should read as texture, not a second UI element. */
.training-mode-card::after{
  background:color-mix(in srgb,var(--mode-accent) 3.5%,transparent);
  opacity:.58;
}

@media(max-width:620px){
  .training-mode-card:not(.training-mode-card-wide){
    height:190px;
    min-height:190px;
    max-height:190px;
  }
  .training-mode-card-wide{
    height:122px;
    min-height:122px;
    max-height:122px;
  }
}
@media(max-width:390px){
  .training-mode-card:not(.training-mode-card-wide){
    height:194px;
    min-height:194px;
    max-height:194px;
  }
}

/* v1.7.70 — training hub: true row alignment after legacy block styles */
/* Older standalone SRS/error styles still add top margins inside the new grid.
   Reset those legacy offsets here so every tile starts on the exact same grid line. */
.training-mode-grid > .training-mode-card{
  margin-top:0 !important;
  margin-bottom:0 !important;
  align-self:stretch;
  box-sizing:border-box;
}
.training-mode-grid > .training-mode-card.srs-review-block,
.training-mode-grid > .training-mode-card.error-study-block{
  margin-top:0 !important;
}
/* Keep the first six choices visually identical in size on iPhone/tablet widths. */
.training-mode-grid > .training-mode-card:not(.training-mode-card-wide){
  height:190px;
  min-height:190px;
  max-height:190px;
}
@media(max-width:390px){
  .training-mode-grid > .training-mode-card:not(.training-mode-card-wide){
    height:194px;
    min-height:194px;
    max-height:194px;
  }
}


/* v1.7.71 — restore soft decorative orbs on training tiles */
.training-mode-card::after{
  background:color-mix(in srgb,var(--mode-accent) 5.5%,transparent);
  opacity:.82;
}

/* v1.7.72 — swipe cards use the same soft, colorful visual language as training tiles */
.flashcard-face,
.study-swipe-face{
  --swipe-accent:var(--cyan);
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--swipe-accent) 15%,transparent),transparent 50%),
    linear-gradient(145deg,color-mix(in srgb,var(--swipe-accent) 7%,var(--surface)),var(--surface));
  border-color:color-mix(in srgb,var(--swipe-accent) 32%,var(--border));
}
.flashcard-back,
.study-swipe-back{
  --swipe-accent:var(--violet);
  background:
    radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--swipe-accent) 15%,transparent),transparent 50%),
    linear-gradient(145deg,color-mix(in srgb,var(--swipe-accent) 7%,var(--surface)),var(--surface));
}
.flashcard-face::after,
.study-swipe-face::after{
  content:'';
  position:absolute;
  right:-44px;
  bottom:-54px;
  width:154px;
  height:154px;
  border-radius:50%;
  background:color-mix(in srgb,var(--swipe-accent) 5.5%,transparent);
  opacity:.82;
  pointer-events:none;
  z-index:0;
}
.flashcard-face::before,
.study-swipe-face::before{
  content:'';
  position:absolute;
  left:-56px;
  top:-66px;
  width:142px;
  height:142px;
  border-radius:50%;
  background:color-mix(in srgb,var(--swipe-accent) 3.2%,transparent);
  opacity:.62;
  pointer-events:none;
  z-index:0;
}
.flashcard-face > *,
.study-swipe-face > *{
  position:relative;
  z-index:1;
}
/* Keep swipe feedback layers above the decorative orbs. */
.flashcard-swipe-tint,.study-swipe-tint{z-index:4}
.flashcard-swipe-badge,.study-swipe-badge{z-index:5}


/* v1.7.75 — compact binary detail cards */
.binary-detail-dialog{
  width:min(580px,calc(100vw - 20px));
  max-height:none;
  margin:auto;
  overflow:visible;
  background:transparent;
  box-shadow:none;
}
.binary-detail-shell{position:relative;padding:8px 0 0;overflow:visible}
.binary-detail-card{
  --swipe-accent:var(--cyan);
  position:relative;
  width:100%;
  height:min(75svh,680px);
  min-height:460px;
  border:1px solid color-mix(in srgb,var(--swipe-accent) 30%,var(--border));
  border-radius:28px;
  overflow:hidden;
  isolation:isolate;
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
  background:
    radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--swipe-accent) 14%,transparent),transparent 48%),
    linear-gradient(145deg,color-mix(in srgb,var(--swipe-accent) 6%,var(--surface)),var(--surface));
  box-shadow:0 24px 64px rgba(0,0,0,.34);
}
.binary-detail-card::after{
  content:'';position:absolute;right:-52px;bottom:-60px;width:170px;height:170px;border-radius:50%;
  background:color-mix(in srgb,var(--swipe-accent) 5%,transparent);opacity:.8;pointer-events:none;z-index:0;
}
.binary-detail-content{
  position:relative;z-index:2;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;
  padding:22px 22px 20px;overscroll-behavior:contain;touch-action:pan-y;
}
.binary-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.binary-detail-title-block{min-width:0;flex:1}.binary-detail-head h2{font-size:clamp(1.65rem,6vw,2.35rem);line-height:1.08;letter-spacing:-.035em}
.binary-detail-actions{display:flex;gap:7px;flex:0 0 auto}.binary-detail-actions .icon-btn,.binary-detail-close{width:42px;height:42px;flex:0 0 42px}
.binary-detail-translation{padding:13px 15px;font-size:clamp(1.08rem,4.4vw,1.35rem);border-radius:15px}
.binary-detail-grid{display:grid;grid-template-columns:1fr;gap:9px;margin-top:9px}
.binary-detail-section{margin-top:0;padding:11px 12px;border-radius:15px;background:color-mix(in srgb,var(--surface-2) 90%,transparent)}
.binary-detail-section h3{margin-bottom:7px;font-size:.88rem;color:var(--soft)}
.binary-detail-section .detail-example{padding:8px 10px;margin-bottom:6px;font-size:.92rem}
.binary-detail-section .detail-form-cell,.binary-detail-section .conj-row{min-height:38px;padding:7px 9px;font-size:.88rem}
.binary-detail-extra:empty{display:none}.binary-detail-extra{color:var(--muted);font-size:.86rem;display:grid;gap:5px}
.binary-detail-tint{position:absolute;inset:0;z-index:4;opacity:0;pointer-events:none;transition:opacity .05s linear}
.binary-detail-tint-study{background:linear-gradient(90deg,color-mix(in srgb,var(--amber) 64%,transparent),transparent 72%)}
.binary-detail-tint-learned{background:linear-gradient(270deg,color-mix(in srgb,var(--green) 64%,transparent),transparent 72%)}
.binary-detail-badge{position:absolute;top:50%;z-index:7;opacity:0;pointer-events:none;padding:10px 13px;border-radius:13px;font-size:.78rem;letter-spacing:.07em;transform:translateY(-50%) scale(.78)}
.binary-detail-badge-study{left:14px;color:var(--amber);border:1px solid color-mix(in srgb,var(--amber) 58%,transparent);background:color-mix(in srgb,var(--amber) 12%,var(--surface))}
.binary-detail-badge-learned{right:14px;color:var(--green);border:1px solid color-mix(in srgb,var(--green) 58%,transparent);background:color-mix(in srgb,var(--green) 12%,var(--surface))}
.binary-detail-help{display:flex;justify-content:space-between;padding:11px 10px 0;color:var(--muted);font-size:.78rem;font-weight:700}
.binary-detail-save{text-align:center;padding-top:7px;color:var(--muted);font-size:.78rem}
.binary-detail-dialog .detail-synonyms,.binary-detail-dialog .detail-prep{padding:7px 2px;font-size:.88rem}
.binary-detail-dialog .detail-meta{font-size:.76rem;margin-bottom:4px}
.binary-detail-dialog .detail-title-row{justify-content:flex-start;gap:8px}
.binary-detail-dialog .speak-btn-large{flex:0 0 auto}
@media(max-width:620px){
  .binary-detail-dialog{width:calc(100vw - 18px)}
  .binary-detail-card{height:min(75svh,650px);min-height:450px;border-radius:25px}
  .binary-detail-content{padding:18px 17px 17px}
  .binary-detail-head h2{font-size:clamp(1.55rem,7vw,2.05rem)}
  .binary-detail-actions .icon-btn,.binary-detail-close{width:39px;height:39px;flex-basis:39px}
  .binary-detail-section .detail-verb-grid,.binary-detail-section .detail-adjective-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:390px){
  .binary-detail-card{height:min(74svh,610px);min-height:430px}
  .binary-detail-content{padding:16px 14px}
  .binary-detail-section .detail-verb-grid,.binary-detail-section .detail-adjective-grid{grid-template-columns:1fr}
  .binary-detail-translation{font-size:1.04rem;padding:11px 13px}
}

/* v1.7.76 — adaptive inner layout for binary dictionary cards */
.binary-detail-card,
.binary-detail-content,
.binary-detail-section,
.binary-detail-section *{
  box-sizing:border-box;
}
.binary-detail-content{
  overflow-x:hidden;
}
.binary-detail-section{
  min-width:0;
  overflow:hidden;
}
.binary-detail-section .detail-form-cell,
.binary-detail-section .conj-row{
  min-width:0;
}
.binary-detail-section .detail-form-cell > span,
.binary-detail-section .conj-row > span{
  flex:0 0 auto;
}
.binary-detail-section .detail-form-cell > strong,
.binary-detail-section .conj-row > strong{
  min-width:0;
  max-width:100%;
  text-align:right;
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}
.binary-detail-section .detail-example{
  min-width:0;
  overflow:hidden;
}
.binary-detail-section .detail-example .de{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:8px;
  min-width:0;
}
.binary-detail-section .detail-example .de > span{
  min-width:0;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.binary-detail-section .detail-example .de > .speak-btn{
  flex:0 0 auto;
  align-self:start;
  margin-top:-2px;
}
.binary-detail-section .detail-example .ru{
  overflow-wrap:anywhere;
}

@media(max-width:620px){
  /* Long forms are much more readable as stacked rows on a phone. */
  .binary-detail-section .detail-adjective-grid{
    grid-template-columns:1fr !important;
  }
  .binary-detail-section .detail-form-cell{
    display:grid;
    grid-template-columns:minmax(88px,.72fr) minmax(0,1.28fr);
    align-items:center;
    gap:9px;
  }
  .binary-detail-section .detail-form-cell > strong{
    font-size:.86rem;
    line-height:1.22;
  }
}

@media(max-width:390px){
  .binary-detail-section .detail-form-cell{
    grid-template-columns:1fr;
    align-items:start;
    gap:3px;
  }
  .binary-detail-section .detail-form-cell > strong{
    text-align:left;
    font-size:.84rem;
  }
}


/* v1.7.77 — weekly summary + Master Dictionary quality */
.weekly-section{padding-top:2px}
.weekly-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.weekly-head>span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.weekly-card{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--border,#334155) 78%,transparent);border-radius:22px;padding:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel,#111827) 92%,#65d6b2 8%),color-mix(in srgb,var(--panel,#111827) 96%,#7c83ff 4%))}
.weekly-card::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;right:-70px;bottom:-95px;background:color-mix(in srgb,#65d6b2 9%,transparent);pointer-events:none}
.weekly-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;position:relative;z-index:1}
.weekly-metric{min-width:0;padding:12px 8px;border-radius:16px;background:color-mix(in srgb,var(--bg,#0b1220) 58%,transparent);text-align:center}
.weekly-metric strong{display:block;font-size:1.35rem;line-height:1.1;color:var(--text,#eef4f8)}
.weekly-metric span{display:block;margin-top:5px;font-size:.67rem;color:var(--muted);line-height:1.2}
.weekly-subline{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px;font-size:.76rem;color:var(--muted);position:relative;z-index:1}
.weekly-subline b{color:var(--text,#eef4f8)}
.weekly-hard{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px;padding-top:11px;border-top:1px solid color-mix(in srgb,var(--border,#334155) 65%,transparent);font-size:.72rem;color:var(--muted);position:relative;z-index:1}
.weekly-hard-chip{display:inline-flex;gap:5px;align-items:center;border-radius:999px;padding:6px 9px;background:color-mix(in srgb,#ef8f8f 10%,var(--panel,#111827));color:var(--text,#eef4f8)}
.weekly-hard-chip b{color:#f1a1a1}
.weekly-empty{padding:10px;text-align:center;color:var(--muted);font-size:.8rem}
.master-card-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.master-card-meta>span:first-child{min-width:0}
.master-quality{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:.62rem;font-weight:800;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}
.master-quality-full{color:#82e8c2;background:color-mix(in srgb,#45c995 12%,transparent);border-color:color-mix(in srgb,#45c995 32%,transparent)}
.master-quality-partial{color:#e9c778;background:color-mix(in srgb,#d8a747 12%,transparent);border-color:color-mix(in srgb,#d8a747 32%,transparent)}
.master-quality-basic{color:var(--muted);background:color-mix(in srgb,var(--muted) 8%,transparent);border-color:color-mix(in srgb,var(--muted) 22%,transparent)}
@media(max-width:640px){.weekly-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-card{padding:13px}.weekly-metric{padding:11px 6px}}


/* v1.7.80 — compact home dictionary + clipboard/photo list import + calmer flashcard labels */
@media(max-width:900px){
  body[data-view="home"] .render-home{
    min-height:0 !important;
    grid-template-rows:auto auto auto auto auto !important;
    align-content:start !important;
  }
  body[data-view="home"] .render-quick-section{
    flex:none !important;
    height:auto !important;
  }
  body[data-view="home"] .render-quick-section .render-grid{
    flex:none !important;
    height:auto !important;
    align-content:start !important;
  }
  body[data-view="home"] .render-quick-section .home-quick-grid .render-tile{
    height:88px !important;
    min-height:88px !important;
    max-height:88px !important;
  }
}
@media(max-width:560px){
  body[data-view="home"] .render-quick-section .home-quick-grid .render-tile{
    height:82px !important;
    min-height:82px !important;
    max-height:82px !important;
  }
}

/* The language cue belongs to the corner, not to the word itself. */
.flashcard-side-label{
  top:16px !important;
  left:18px !important;
  padding:4px 8px;
  border-radius:999px;
  background:color-mix(in srgb,var(--surface-2,#152332) 82%,transparent);
  border:1px solid color-mix(in srgb,var(--border,#334155) 60%,transparent);
  font-size:.66rem !important;
  line-height:1;
  letter-spacing:.07em;
  opacity:.78;
}
@media(max-width:520px){.flashcard-side-label{top:14px !important;left:14px !important}}

.dictionary-list-import-btn{
  width:100%;margin-top:8px;min-height:42px;border-radius:13px;
  border:1px dashed color-mix(in srgb,var(--accent,#76e6bf) 42%,var(--border,#334155));
  background:color-mix(in srgb,var(--accent,#76e6bf) 5%,var(--surface,#111827));
  color:var(--soft);font-size:.78rem;font-weight:750;
}
.bulk-text-dialog{width:min(94vw,620px)}
.bulk-text-help{margin-top:4px;color:var(--muted);font-size:.78rem;line-height:1.35}
.bulk-text-input{width:100%;min-height:190px;resize:vertical;margin-top:10px;border-radius:14px;padding:13px;font-size:.96rem;line-height:1.45}
.bulk-text-actions{display:flex;align-items:center;gap:10px;margin-top:10px}
.bulk-text-status{font-size:.76rem;color:var(--muted)}
.bulk-text-preview{display:grid;gap:8px;margin-top:12px;max-height:44vh;overflow:auto;-webkit-overflow-scrolling:touch}
.bulk-text-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}
.bulk-text-row input{width:20px;height:20px}
.bulk-text-main{min-width:0}.bulk-text-main strong{display:block;font-size:.94rem;overflow-wrap:anywhere}.bulk-text-main span{display:block;margin-top:3px;color:var(--muted);font-size:.75rem;line-height:1.3;overflow-wrap:anywhere}
.bulk-text-quality{white-space:nowrap;font-size:.66rem;font-weight:800;padding:5px 7px;border-radius:999px;border:1px solid var(--border);color:var(--soft)}
.bulk-text-row.not-found{opacity:.68}.bulk-text-row.not-found input{visibility:hidden}.bulk-text-footer{margin-top:12px}

/* v1.7.80 — personal dictionary cards use the same soft tile language as training/swipe cards */
.cards .dictionary-list-card{
  --dict-card-accent:var(--cyan);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--dict-card-accent) 13%,transparent),transparent 50%),
    linear-gradient(145deg,color-mix(in srgb,var(--dict-card-accent) 6%,var(--surface)),var(--surface));
  border-color:color-mix(in srgb,var(--dict-card-accent) 30%,var(--border));
  box-shadow:0 9px 26px rgba(0,0,0,.13);
}
.cards .dictionary-list-card::after{
  content:'';
  position:absolute;
  right:-42px;
  bottom:-52px;
  width:142px;
  height:142px;
  border-radius:50%;
  background:color-mix(in srgb,var(--dict-card-accent) 5.5%,transparent);
  opacity:.82;
  pointer-events:none;
  z-index:0;
}
.cards .dictionary-list-card::before{
  content:'';
  position:absolute;
  left:-58px;
  top:-70px;
  width:132px;
  height:132px;
  border-radius:50%;
  background:color-mix(in srgb,var(--dict-card-accent) 3%,transparent);
  opacity:.65;
  pointer-events:none;
  z-index:0;
}
.cards .dictionary-list-card > *:not(.dictionary-swipe-tint):not(.dictionary-swipe-badge){position:relative;z-index:2}
.cards .dictionary-list-card-new,
.cards .dictionary-list-card-seen{--dict-card-accent:var(--cyan)}
#learnedCards .dictionary-list-card,
.cards .dictionary-list-card-learned{--dict-card-accent:var(--green)}
.cards .dictionary-list-card.prep-card{--dict-card-accent:var(--violet)}
.cards .dictionary-list-card .card-meta-top{min-height:22px}
.cards .dictionary-list-card .card-top{margin-top:5px}
.cards .dictionary-list-card .translation{color:color-mix(in srgb,var(--text) 92%,var(--muted) 8%)}
.cards .dictionary-list-card .card-examples{padding-top:9px;border-top:1px solid color-mix(in srgb,var(--dict-card-accent) 13%,var(--border))}

/* v1.7.81 — move card language cues into the quiet top zone + soften dictionary outlines */
/* Every flip/swipe card shares one clear hierarchy: cue at the top, content in the center. */
.flashcard-face .flashcard-side-label{
  position:absolute !important;
  top:18px !important;
  left:20px !important;
  right:auto !important;
  bottom:auto !important;
  margin:0 !important;
  align-self:auto !important;
  z-index:6;
  max-width:calc(100% - 40px);
  padding:4px 8px;
  border-radius:999px;
  background:color-mix(in srgb,var(--surface-2,#152332) 78%,transparent);
  border:1px solid color-mix(in srgb,var(--border,#334155) 42%,transparent);
  color:color-mix(in srgb,var(--muted) 92%,var(--text) 8%);
  font-size:.64rem !important;
  line-height:1.05;
  font-weight:800;
  letter-spacing:.075em;
  text-transform:uppercase;
  opacity:.82;
  text-align:left;
  white-space:normal;
  pointer-events:none;
}
/* Reserve visual breathing room so even long words never feel glued to the cue. */
.flashcard-face{
  padding-top:58px;
}
.flashcard-front .flashcard-main-word,
.flashcard-back .flashcard-main-word,
.flashcard-face>.flashcard-word-with-audio,
.flashcard-face>strong{
  margin-top:8px;
}
@media(max-width:520px){
  .flashcard-face .flashcard-side-label{
    top:17px !important;
    left:18px !important;
    max-width:calc(100% - 36px);
  }
  .flashcard-face{padding-top:56px}
}

/* Personal dictionary cards: almost invisible, tinted hairline like the home dashboard tiles. */
.cards .dictionary-list-card{
  border-width:.5px !important;
  border-style:solid !important;
  border-color:color-mix(
    in srgb,
    var(--dict-card-accent) 10%,
    color-mix(in srgb,var(--surface-2,#152332) 88%,var(--border,#334155) 12%)
  ) !important;
  box-shadow:0 8px 24px rgba(0,0,0,.10), inset 0 1px 0 rgba(255,255,255,.012);
}
.cards .dictionary-list-card:hover,
.cards .dictionary-list-card:focus-within{
  border-color:color-mix(
    in srgb,
    var(--dict-card-accent) 15%,
    color-mix(in srgb,var(--surface-2,#152332) 84%,var(--border,#334155) 16%)
  ) !important;
}
.cards .dictionary-list-card .card-examples{
  border-top-color:color-mix(in srgb,var(--dict-card-accent) 7%,var(--surface-2,#152332)) !important;
}

/* v1.7.82 — same primary type scale on both sides of DE↔RU flip cards.
   The front often wraps the German term with the TTS button, so target that
   nested <strong> explicitly and keep it identical to the Russian back. */
:root{
  --flashcard-primary-size:clamp(1.7rem,6vw,2.7rem);
}
.flashcard-face>strong,
.flashcard-face>.flashcard-word-with-audio>strong,
.study-swipe-face>strong,
.study-swipe-face>.flashcard-word-with-audio>strong{
  font-size:var(--flashcard-primary-size) !important;
  line-height:1.08;
  max-width:100%;
  overflow-wrap:anywhere;
}

/* v1.7.83 — compact weekly summary; native light/dark surfaces. */
.weekly-card{
  border:1px solid var(--line);
  border-radius:20px;
  padding:12px;
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--surface) 96%,var(--green) 4%),
    color-mix(in srgb,var(--surface) 98%,var(--violet) 2%));
  box-shadow:var(--shadow-soft);
}
.weekly-card::after{
  width:118px;
  height:118px;
  right:-58px;
  bottom:-74px;
  background:color-mix(in srgb,var(--cyan) 7%,transparent);
}
.weekly-metrics{gap:8px}
.weekly-metric{
  padding:9px 6px;
  border-radius:14px;
  background:color-mix(in srgb,var(--surface-2) 93%,transparent);
  border:1px solid color-mix(in srgb,var(--line) 72%,transparent);
}
.weekly-metric strong{font-size:1.14rem;line-height:1.05;color:var(--text)}
.weekly-metric span{margin-top:4px;font-size:.60rem;color:var(--muted);letter-spacing:.015em}
.weekly-subline{gap:6px 12px;margin-top:9px;font-size:.68rem}
.weekly-subline b{color:var(--text)}
.weekly-hard{
  gap:6px;
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid var(--line);
  font-size:.66rem;
}
.weekly-hard-chip{
  gap:4px;
  padding:5px 8px;
  background:color-mix(in srgb,var(--red) 8%,var(--surface-2));
  color:var(--text);
  border:1px solid color-mix(in srgb,var(--red) 12%,var(--line));
}
.weekly-hard-chip b{color:color-mix(in srgb,var(--red) 82%,var(--text))}
.weekly-empty{padding:8px;font-size:.74rem}
html[data-theme="dark"] .weekly-card{
  background:linear-gradient(145deg,
    color-mix(in srgb,var(--surface) 94%,var(--cyan) 6%),
    color-mix(in srgb,var(--surface) 97%,var(--violet) 3%));
}
html[data-theme="dark"] .weekly-metric{
  background:color-mix(in srgb,var(--bg) 56%,var(--surface-2) 44%);
}
@media(max-width:640px){
  .weekly-card{padding:11px}
  .weekly-metric{padding:8px 5px}
  .weekly-metric strong{font-size:1.10rem}
  .weekly-metric span{font-size:.58rem}
  .weekly-subline{font-size:.66rem;margin-top:8px}
  .weekly-hard{font-size:.64rem;margin-top:8px;padding-top:8px}
  .weekly-hard-chip{padding:4px 7px}
}

/* v1.7.84 — one vertical rhythm and one type scale for swipe/flip training cards. */
/* Flashcard modes used to center their whole stage in the remaining viewport,
   which pushed Live Phrases much lower than the normal recognition card. */
body.flashcards-active .flashcard-stage{
  justify-content:flex-start !important;
  padding-top:18px !important;
}

/* Phrase cards now use the same primary typography as the word cards on both
   sides. Long phrases can wrap, but the scale, weight and line-height are shared. */
.flashcard-main-word,
.phrase-main-word,
.phrase-translation{
  width:100%;
  max-width:100%;
  font-size:var(--flashcard-primary-size) !important;
  line-height:1.08 !important;
  font-weight:700;
  letter-spacing:-.025em;
  overflow-wrap:anywhere;
  word-break:normal;
}
.phrase-main-word{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.phrase-main-word>span{min-width:0;overflow-wrap:anywhere}

/* Keep the same card-to-progress spacing on phones as in the regular study flow. */
@media(max-width:520px){
  body.flashcards-active .flashcard-stage{
    padding-top:18px !important;
  }
  .flashcard-gesture-help{margin-top:13px}
}

/* v1.7.95 — compact Schweizerdeutsch landing + training/dictionary split */
.swiss-home-hero{width:100%;margin:0;padding:20px 22px;text-align:left;color:var(--text);cursor:pointer;font:inherit}
.swiss-home-hero-copy{position:relative;z-index:1;display:flex;min-width:0;flex-direction:column;align-items:flex-start}
.swiss-home-hero-copy>strong{margin:4px 0 4px;font-size:clamp(1.45rem,4vw,2rem);line-height:1.08}
.swiss-home-hero-copy>span:last-child{color:var(--muted);font-size:.84rem;font-weight:500}
.swiss-stats{gap:7px;margin-bottom:10px}
.swiss-stats>div{gap:0;padding:9px 11px;border-radius:14px;box-shadow:none}
.swiss-stats strong{font-size:1.12rem;font-weight:600;line-height:1.05}
.swiss-stats span{margin-top:2px;font-size:.68rem;font-weight:400}
.swiss-module-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:12px}
.swiss-module-action{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;min-height:72px;padding:11px 13px;text-align:left;border:1px solid var(--line-strong);border-radius:17px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}
.swiss-module-action>span{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--surface-2);color:#c52b39;font-size:.8rem;font-weight:800}
.swiss-module-action>strong{align-self:end;font-size:.94rem;font-weight:650}
.swiss-module-action>small{align-self:start;margin-top:2px;color:var(--muted);font-size:.69rem;font-weight:400}
.swiss-module-action.active{border-color:rgba(213,43,58,.34);background:color-mix(in srgb,var(--surface) 94%,#d52b3a 6%)}
.swiss-module-action-training>span{font-size:1.05rem}
.swiss-training-topics{margin-bottom:16px;text-align:left}
.swiss-training-topics .study-launch-kicker{margin-bottom:7px}
.swiss-training-topics .swiss-category-filters{padding-bottom:0}
.swiss-study-setup{padding-top:20px}
@media(max-width:700px){
  .swiss-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .swiss-stats>div{min-width:0;padding:8px 6px;text-align:center}
  .swiss-stats strong{font-size:1rem}.swiss-stats span{font-size:.61rem}
  .swiss-home-hero{padding:17px 16px}.swiss-home-hero .swiss-hero-mark{width:54px;height:54px}
  .swiss-module-action{grid-template-columns:32px 1fr;column-gap:7px;min-height:66px;padding:9px}
  .swiss-module-action>span{width:32px;height:32px;border-radius:10px}
  .swiss-module-action>strong{font-size:.84rem}.swiss-module-action>small{font-size:.62rem}
}

/* v1.7.97 — Schweizerdeutsch polish */
/* Home: one single CH hero, no render-section shell around it. */
.swiss-home-section{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
.swiss-home-section .swiss-home-hero{margin:0}
.swiss-home-hero-copy>strong{order:1;margin:0 0 5px;font-size:clamp(1.55rem,4.2vw,2.08rem)}
.swiss-home-region{order:2;color:var(--muted);font-size:.88rem;font-weight:500}
.swiss-home-kicker{order:3;margin-top:7px;font-size:.67rem}
.swiss-home-progress{order:4;margin-top:3px;color:var(--soft)!important;font-size:.68rem!important}

/* Module landing: tighter vertical rhythm without shrinking normal text. */
.swiss-view .swiss-hero{margin-bottom:9px;padding:19px 22px}
.swiss-view .swiss-stats{margin-bottom:7px}
.swiss-view .swiss-module-actions{margin-bottom:7px}
.swiss-view .swiss-panel{margin-top:0}
.swiss-training-topics{margin-bottom:10px}
.swiss-study-setup{padding-top:14px}

/* Full training: card sits almost directly under progress. */
#swissTrainingGame .study-progress-wrap{margin-bottom:8px!important}
#swissTrainingGame .swiss-question-card{margin-top:0!important;padding-top:16px;padding-bottom:16px}
#swissTrainingGame .swiss-question-prompt{margin:10px 0 13px}
#swissTrainingGame .swiss-answer-grid{gap:7px}
#swissTrainingGame .swiss-answer-btn{min-height:51px;padding:8px 11px;transition:background .12s ease,border-color .12s ease,transform .12s ease}
#swissTrainingGame .swiss-answer-btn.correct{border-color:var(--green);background:color-mix(in srgb,var(--surface) 64%,var(--green) 36%);transform:scale(1.008)}
#swissTrainingGame .swiss-answer-btn.wrong{border-color:var(--red);background:color-mix(in srgb,var(--surface) 64%,var(--red) 36%);transform:scale(.996)}
#swissTrainingGame .swiss-blank-form input.correct{border-color:var(--green);background:color-mix(in srgb,var(--surface) 70%,var(--green) 30%)}
#swissTrainingGame .swiss-blank-form input.wrong{border-color:var(--red);background:color-mix(in srgb,var(--surface) 70%,var(--red) 30%)}
.swiss-word-audio{display:inline-flex;align-items:center;gap:7px}
.swiss-speak-btn{flex:0 0 auto}
@media(max-width:700px){
  .swiss-view .swiss-hero{padding:14px 15px;margin-bottom:7px}
  .swiss-view .swiss-stats{margin-bottom:6px}
  .swiss-view .swiss-module-actions{margin-bottom:6px}
  #swissTrainingGame .study-progress-wrap{margin-bottom:6px!important}
  #swissTrainingGame .swiss-question-card{padding:13px 14px}
  #swissTrainingGame .swiss-question-prompt{margin:8px 0 11px}
  #swissTrainingGame .swiss-answer-btn{min-height:48px}
  .swiss-blank-form{grid-template-columns:minmax(0,1fr) auto}
  .swiss-blank-form button{min-height:44px;padding:0 15px}
}

/* v1.7.98 — compact interval review card on Home */
.home-review-section{margin:0 0 12px;border:1px solid color-mix(in srgb,var(--green) 40%,var(--border));border-radius:20px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 11%,var(--surface)),var(--surface));box-shadow:0 8px 24px rgba(0,0,0,.08)}
.home-review-section .home-focus-card{min-height:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.home-review-section .home-focus-card::after{display:none}
.home-review-main{width:100%;min-height:66px;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.home-review-copy{display:flex;align-items:baseline;gap:9px;min-width:0;flex-wrap:wrap}
.home-review-section .home-focus-title{font-size:1.04rem;font-weight:720;line-height:1.15}
.home-review-count{font-size:.82rem;color:var(--muted);white-space:nowrap}
.home-review-arrow{font-size:1.65rem;line-height:1;opacity:.55;font-weight:300}
.home-metrics-inline{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0 13px;border-top:1px solid color-mix(in srgb,var(--text) 10%,transparent)}
.home-metrics-inline .home-metric{min-height:34px;padding:7px 4px 8px;border:0;border-radius:0;background:transparent;gap:1px}
.home-metrics-inline .home-metric+.home-metric{border-left:1px solid color-mix(in srgb,var(--text) 8%,transparent)}
.home-metrics-inline .home-metric strong{font-size:.78rem;font-weight:600;line-height:1.05}
.home-metrics-inline .home-metric span{font-size:.58rem;line-height:1.05;opacity:.72}
@media(max-width:620px){.home-review-section{border-radius:18px;margin-bottom:10px}.home-review-main{min-height:60px;padding:11px 13px}.home-review-section .home-focus-title{font-size:1rem}.home-review-count{font-size:.78rem}.home-metrics-inline{margin:0 11px}.home-metrics-inline .home-metric{min-height:32px;padding:6px 3px 7px}}

/* v1.7.104 — Schweizerdeutsch flashcards: layered Alpine landscape */
#swissTrainingGame .flashcard-stage{
  justify-content:flex-start!important;
  min-height:0!important;
  padding-top:12px!important;
}
#swissTrainingGame .flashcard-drag{margin-top:0!important}
#swissTrainingGame .swiss-flash-face{
  overflow:hidden;
  isolation:isolate;
  border-color:rgba(255,73,105,.48)!important;
  box-shadow:0 18px 46px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.055);
}
#swissTrainingGame .swiss-flash-front{
  --swipe-accent:#ef3154;
  background:
    radial-gradient(circle at 18% 4%,rgba(255,84,125,.28),transparent 42%),
    linear-gradient(145deg,#8d2447 0%,#6f203f 46%,#431d3c 100%)!important;
}
#swissTrainingGame .swiss-flash-back{
  --swipe-accent:#8e6bd4;
  border-color:rgba(165,126,222,.40)!important;
  background:
    radial-gradient(circle at 18% 4%,rgba(180,126,220,.22),transparent 42%),
    linear-gradient(145deg,#473766 0%,#303250 48%,#202c48 100%)!important;
}
#swissTrainingGame .swiss-flash-face::before,
#swissTrainingGame .swiss-flash-face::after{content:none!important}
#swissTrainingGame .swiss-card-corner{
  position:absolute;z-index:7;top:0;right:0;width:76px;height:76px;
  display:flex;align-items:flex-start;justify-content:flex-end;padding:14px 11px 0 0;
  color:#fff;font-size:.86rem;font-weight:900;letter-spacing:.02em;
  background:linear-gradient(135deg,transparent 0 49%,#f12f45 50% 100%);
  pointer-events:none;
}
#swissTrainingGame .swiss-flash-back .swiss-card-corner{background:linear-gradient(135deg,transparent 0 49%,#c63a59 50% 100%)}
#swissTrainingGame .swiss-card-landscape{position:absolute!important;z-index:0!important;inset:0;overflow:hidden;pointer-events:none;opacity:.52}
#swissTrainingGame .swiss-card-landscape::before{
  content:'';position:absolute;left:-6%;right:-6%;bottom:12%;height:42%;
  background:rgba(42,19,48,.62);
  clip-path:polygon(0 82%,10% 58%,17% 70%,28% 34%,37% 62%,48% 25%,58% 65%,70% 38%,80% 70%,91% 48%,100% 78%,100% 100%,0 100%);
}
#swissTrainingGame .swiss-flash-back .swiss-card-landscape::before{background:rgba(25,31,67,.66)}
#swissTrainingGame .swiss-card-landscape::after{
  content:'';position:absolute;left:-4%;right:-4%;bottom:0;height:23%;
  background:linear-gradient(180deg,rgba(38,15,43,.28),rgba(24,15,34,.76));
  clip-path:polygon(0 38%,12% 31%,24% 47%,39% 26%,52% 45%,65% 24%,77% 44%,89% 29%,100% 42%,100% 100%,0 100%);
}
#swissTrainingGame .swiss-card-landscape>i{
  position:absolute;z-index:2;left:56%;bottom:8%;width:44px;height:25px;
  background:rgba(29,16,28,.82);border-radius:2px 2px 3px 3px;transform:translateX(-50%);
}
#swissTrainingGame .swiss-card-landscape>i::before{
  content:'';position:absolute;left:-5px;top:-12px;width:54px;height:19px;background:rgba(35,17,31,.92);
  clip-path:polygon(50% 0,100% 100%,0 100%);
}
#swissTrainingGame .swiss-card-landscape>i::after{
  content:'';position:absolute;left:8px;bottom:0;width:7px;height:11px;background:rgba(255,184,106,.34);box-shadow:20px 2px 0 rgba(255,184,106,.28);
}
#swissTrainingGame .swiss-card-landscape>b{
  position:absolute;z-index:2;left:18%;bottom:6%;width:5px;height:42px;background:rgba(25,16,29,.75);border-radius:50% 50% 2px 2px;box-shadow:17px 5px 0 2px rgba(25,16,29,.65),34px -2px 0 1px rgba(25,16,29,.58);
}
#swissTrainingGame .swiss-flash-face>*:not(.swiss-card-landscape){position:relative;z-index:3}
#swissTrainingGame .swiss-flash-face .flashcard-side-label{z-index:6}
@media(max-width:520px){
  #swissTrainingGame .flashcard-stage{padding-top:11px!important}
  #swissTrainingGame .swiss-card-corner{width:68px;height:68px;padding:12px 10px 0 0;font-size:.8rem}
}


/* v1.7.104 — closer to approved burgundy Alpine reference */
#swissTrainingGame .swiss-flash-front{
  background:
    radial-gradient(ellipse at 17% 3%,rgba(178,48,73,.20),transparent 38%),
    radial-gradient(ellipse at 86% 42%,rgba(67,15,38,.40),transparent 48%),
    linear-gradient(155deg,#74172f 0%,#58152b 42%,#351528 72%,#201422 100%)!important;
}
#swissTrainingGame .swiss-card-landscape{opacity:1}
/* distant, snow-tipped ridge */
#swissTrainingGame .swiss-card-landscape::before{
  left:-5%;right:-5%;bottom:21%;height:38%;
  background:linear-gradient(180deg,#a7475b 0 9%,#7b2a43 10% 28%,#5b2038 29% 100%);
  opacity:.92;
  clip-path:polygon(0 82%,7% 68%,12% 73%,18% 53%,21% 61%,27% 40%,31% 50%,37% 31%,40% 43%,46% 56%,51% 47%,57% 62%,63% 49%,69% 58%,75% 37%,79% 47%,85% 22%,88% 37%,92% 29%,96% 45%,100% 39%,100% 100%,0 100%);
}
/* near dark ridge / valley */
#swissTrainingGame .swiss-card-landscape::after{
  left:-5%;right:-5%;bottom:0;height:34%;
  background:linear-gradient(180deg,rgba(75,24,48,.82),rgba(29,14,28,.98));
  clip-path:polygon(0 35%,8% 29%,15% 41%,23% 30%,31% 45%,40% 27%,48% 39%,56% 24%,65% 38%,74% 26%,83% 41%,91% 31%,100% 39%,100% 100%,0 100%);
}
/* middle atmospheric ridge */
#swissTrainingGame .swiss-card-landscape>em{
  position:absolute;z-index:1;left:-5%;right:-5%;bottom:14%;height:34%;display:block;
  background:linear-gradient(180deg,rgba(111,39,61,.86),rgba(67,25,47,.92));
  clip-path:polygon(0 68%,9% 54%,17% 65%,26% 43%,34% 61%,43% 37%,51% 58%,61% 40%,70% 62%,80% 42%,90% 60%,100% 47%,100% 100%,0 100%);
}
#swissTrainingGame .swiss-flash-back .swiss-card-landscape>em{background:linear-gradient(180deg,rgba(75,66,111,.74),rgba(40,39,73,.92))}
#swissTrainingGame .swiss-flash-back .swiss-card-landscape::before{background:linear-gradient(180deg,#766b9b 0 9%,#554d80 10% 28%,#383a67 29% 100%);opacity:.82}
#swissTrainingGame .swiss-flash-back .swiss-card-landscape::after{background:linear-gradient(180deg,rgba(46,43,75,.84),rgba(24,25,48,.98))}
#swissTrainingGame .swiss-card-landscape>i{bottom:7%;left:72%;width:48px;height:27px;background:#281520;box-shadow:0 8px 18px rgba(0,0,0,.24)}
#swissTrainingGame .swiss-card-landscape>i::before{background:#321824}
#swissTrainingGame .swiss-card-landscape>i::after{background:rgba(255,175,92,.58);box-shadow:21px 2px 0 rgba(255,175,92,.48)}
#swissTrainingGame .swiss-card-landscape>b{left:12%;bottom:5%;background:#21131f;box-shadow:17px 5px 0 2px #241521,34px -2px 0 1px #291724}
#swissTrainingGame .swiss-flash-back{
  background:
    radial-gradient(ellipse at 16% 4%,rgba(123,103,165,.18),transparent 39%),
    linear-gradient(155deg,#45395f 0%,#34344f 46%,#222b43 75%,#171f33 100%)!important;
}

/* v1.7.104 — Swiss card geometry fix + deeper Alpine composition */
#swissTrainingGame .swiss-flash-face>*:not(.swiss-card-landscape):not(.swiss-card-corner){position:relative;z-index:3}
#swissTrainingGame .swiss-card-corner{
  position:absolute!important;top:0!important;right:0!important;left:auto!important;bottom:auto!important;
  z-index:8!important;width:88px;height:88px;margin:0!important;padding:15px 12px 0 0!important;
  display:flex!important;align-items:flex-start!important;justify-content:flex-end!important;
  background:linear-gradient(135deg,transparent 0 49.2%,#ef3048 50% 100%)!important;
  transform:none!important;border:0!important;border-radius:0!important;
}
#swissTrainingGame .swiss-flash-back .swiss-card-corner{background:linear-gradient(135deg,transparent 0 49.2%,#bd3c5c 50% 100%)!important}
#swissTrainingGame .swiss-flash-face{justify-content:center!important;padding-top:54px!important;padding-bottom:108px!important}
#swissTrainingGame .swiss-flash-face .flashcard-side-label{position:absolute!important;top:22px!important;left:24px!important}
/* Push the Alpine panorama upward and give the ridges more separation. */
#swissTrainingGame .swiss-card-landscape::before{
  bottom:20%!important;height:45%!important;
  background:linear-gradient(180deg,#c36570 0 7%,#a24758 8% 15%,#77283f 16% 43%,#512038 44% 100%)!important;
  clip-path:polygon(0 84%,6% 73%,11% 78%,17% 60%,20% 67%,26% 43%,29% 52%,36% 25%,39% 38%,45% 54%,50% 45%,56% 60%,62% 47%,68% 57%,74% 34%,78% 45%,84% 16%,87% 31%,91% 23%,95% 40%,100% 33%,100% 100%,0 100%)!important;
}
#swissTrainingGame .swiss-card-landscape>em{
  bottom:13%!important;height:39%!important;
  background:linear-gradient(180deg,rgba(126,47,66,.92),rgba(58,24,43,.96))!important;
  clip-path:polygon(0 73%,8% 57%,15% 67%,24% 42%,31% 60%,40% 31%,48% 55%,58% 35%,67% 59%,77% 38%,87% 57%,100% 43%,100% 100%,0 100%)!important;
}
#swissTrainingGame .swiss-card-landscape::after{
  height:30%!important;background:linear-gradient(180deg,rgba(58,22,42,.90),rgba(22,13,25,.99))!important;
  clip-path:polygon(0 43%,8% 34%,16% 47%,25% 36%,34% 50%,43% 31%,52% 45%,61% 29%,70% 43%,80% 31%,89% 46%,100% 35%,100% 100%,0 100%)!important;
}
#swissTrainingGame .swiss-card-landscape>i{bottom:5.5%!important;left:72%!important}
#swissTrainingGame .swiss-card-landscape>b{bottom:4.5%!important}
#swissTrainingGame .swiss-flash-back .swiss-card-landscape::before{background:linear-gradient(180deg,#aaa2c5 0 7%,#77709b 8% 16%,#514c78 17% 43%,#34375f 44% 100%)!important}
#swissTrainingGame .swiss-flash-back .swiss-card-landscape>em{background:linear-gradient(180deg,rgba(79,70,116,.90),rgba(38,38,70,.96))!important}
#swissTrainingGame .swiss-flash-back .swiss-card-landscape::after{background:linear-gradient(180deg,rgba(43,42,73,.91),rgba(19,22,43,.99))!important}
@media(max-width:520px){
 #swissTrainingGame .swiss-card-corner{width:78px;height:78px;padding:13px 10px 0 0!important}
 #swissTrainingGame .swiss-flash-face{padding-top:48px!important;padding-bottom:96px!important}
 #swissTrainingGame .swiss-flash-face .flashcard-side-label{top:18px!important;left:18px!important}
}


/* v1.7.104 — detailed Swiss Alpine card, CSS vector scene */
#swissTrainingGame .swiss-card-corner{
  top:0!important;right:0!important;width:66px!important;height:66px!important;padding:0!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  border-radius:0 24px 0 20px!important;background:#df2f42!important;
  color:#fff!important;font-size:1rem!important;font-weight:900!important;box-shadow:-8px 8px 24px rgba(223,47,66,.12)!important;
}
#swissTrainingGame .swiss-flash-back .swiss-card-corner{background:#b43b58!important}
#swissTrainingGame .swiss-flash-front{background:linear-gradient(155deg,#72172f 0%,#56162b 45%,#351526 74%,#1f1420 100%)!important}
#swissTrainingGame .swiss-card-landscape{position:absolute!important;inset:0!important;overflow:hidden!important;opacity:1!important;z-index:0!important}
#swissTrainingGame .swiss-card-landscape::before,#swissTrainingGame .swiss-card-landscape::after{content:none!important}
#swissTrainingGame .swiss-card-landscape em,#swissTrainingGame .swiss-card-landscape u{position:absolute;display:block;text-decoration:none;pointer-events:none}
/* Three broad ridges: fewer peaks, each farther ridge higher and lighter. */
#swissTrainingGame .ridge-far{left:-8%;right:-8%;bottom:23%;height:42%;background:linear-gradient(180deg,#a64b60,#713047 72%,#642840);clip-path:polygon(0 76%,8% 71%,15% 62%,23% 68%,31% 48%,39% 58%,49% 43%,58% 55%,67% 38%,76% 52%,86% 30%,94% 45%,100% 42%,100% 100%,0 100%)}
#swissTrainingGame .ridge-mid{left:-8%;right:-8%;bottom:15%;height:35%;background:linear-gradient(180deg,#783047,#4f2238);clip-path:polygon(0 68%,10% 58%,19% 67%,29% 50%,39% 63%,50% 45%,61% 59%,72% 42%,82% 57%,91% 46%,100% 53%,100% 100%,0 100%)}
#swissTrainingGame .ridge-near{left:-8%;right:-8%;bottom:8%;height:29%;background:linear-gradient(180deg,#4c2137,#281727);clip-path:polygon(0 59%,12% 50%,24% 62%,37% 45%,49% 58%,62% 42%,74% 56%,87% 44%,100% 51%,100% 100%,0 100%)}
/* Snow facets only on the distant ridge, kept muted rather than white. */
#swissTrainingGame .snowcaps{left:7%;right:5%;bottom:46%;height:18%;background:#d27a82;opacity:.78;clip-path:polygon(5% 78%,14% 46%,18% 60%,22% 50%,25% 72%,38% 58%,45% 34%,50% 54%,55% 43%,59% 67%,71% 55%,79% 25%,84% 48%,88% 39%,94% 68%,94% 78%,86% 62%,80% 47%,73% 69%,60% 76%,49% 64%,40% 75%,28% 82%,16% 70%)}
/* two foreground rolling hills */
#swissTrainingGame .hill-a{z-index:2;left:-12%;width:72%;bottom:-2%;height:18%;background:linear-gradient(180deg,#3c182c,#21131f);border-radius:50% 58% 0 0/55% 70% 0 0;transform:rotate(5deg)}
#swissTrainingGame .hill-b{z-index:2;right:-15%;width:78%;bottom:-4%;height:20%;background:linear-gradient(180deg,#481a30,#24131f);border-radius:60% 48% 0 0/60% 70% 0 0;transform:rotate(-6deg)}
#swissTrainingGame .chalet{z-index:4!important;left:73%!important;bottom:9%!important;width:52px!important;height:31px!important;background:#351822!important;border-radius:2px!important;box-shadow:0 7px 18px rgba(0,0,0,.22)!important}
#swissTrainingGame .chalet::before{content:''!important;position:absolute!important;left:-7px!important;top:-17px!important;width:66px!important;height:24px!important;background:#431c29!important;clip-path:polygon(50% 0,100% 100%,0 100%)!important}
#swissTrainingGame .chalet::after{content:''!important;position:absolute!important;left:10px!important;bottom:5px!important;width:8px!important;height:12px!important;background:#e39a5e!important;box-shadow:23px 1px 0 #d98b54!important;filter:drop-shadow(0 0 5px rgba(235,153,86,.28))!important}
#swissTrainingGame .pines{z-index:4!important;left:11%!important;bottom:7%!important;width:6px!important;height:48px!important;background:#21131f!important;border-radius:50% 50% 2px 2px!important;box-shadow:18px 7px 0 2px #241420,38px -3px 0 1px #291522!important}
#swissTrainingGame .swiss-flash-back .ridge-far{background:linear-gradient(180deg,#8b80ad,#5c5683)}
#swissTrainingGame .swiss-flash-back .ridge-mid{background:linear-gradient(180deg,#5d557e,#3c3b63)}
#swissTrainingGame .swiss-flash-back .ridge-near{background:linear-gradient(180deg,#3b385d,#20263f)}
#swissTrainingGame .swiss-flash-back .snowcaps{background:#b7abc9;opacity:.6}
#swissTrainingGame .swiss-flash-back .hill-a,#swissTrainingGame .swiss-flash-back .hill-b{background:linear-gradient(180deg,#2c2c4b,#171d31)}
@media(max-width:520px){#swissTrainingGame .swiss-card-corner{width:60px!important;height:60px!important;border-radius:0 24px 0 18px!important;font-size:.92rem!important}}

/* v1.7.117 — AI import */
.bulk-import-tabs{display:flex;gap:8px;margin:10px 0 4px}.bulk-import-tabs button{flex:1}.bulk-import-tabs button.active{box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.bulk-ai-tools{margin-top:10px;padding:11px 12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}.bulk-ai-tools p{margin:0 0 9px;color:var(--muted);font-size:.78rem;line-height:1.4}.ai-import-errors{padding:10px 12px;border:1px solid rgba(220,80,80,.45);border-radius:12px;font-size:.76rem;line-height:1.45}


/* v1.7.117 — reliable iOS AI-template fallback + mobile action layout */
.bulk-ai-tool-buttons{display:flex;flex-wrap:wrap;gap:8px}
.bulk-ai-tool-buttons button{min-height:44px}
@media(max-width:520px){
  .bulk-ai-tool-buttons{display:grid;grid-template-columns:1fr;gap:8px}
  .bulk-ai-tool-buttons button{width:100%;white-space:normal}
  .bulk-text-actions{display:grid;grid-template-columns:1fr;gap:7px}
  .bulk-text-actions #bulkTextPreviewBtn{width:100%;min-height:48px;white-space:normal}
  .bulk-text-actions .bulk-text-status{display:block;line-height:1.4;padding:0 3px}
}


/* v1.7.117 — compact verb principal forms + AI import completion */
.verb-principal-table{grid-column:1/-1;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface-3)}
.verb-principal-head,.verb-principal-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.verb-principal-head span{padding:7px 6px 5px;text-align:center;color:var(--muted);font-size:.68rem;font-weight:700;border-right:1px solid var(--line)}
.verb-principal-values strong{min-width:0;padding:7px 6px 9px;text-align:center;font-size:.86rem;line-height:1.2;overflow-wrap:anywhere;border-right:1px solid var(--line)}
.verb-principal-head span:last-child,.verb-principal-values strong:last-child{border-right:0}
.verb-principal-values{border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent)}
.verb-principal-aux{padding:6px 9px;border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:.68rem}.verb-principal-aux strong{color:var(--text);margin-left:4px}
.ai-import-success{display:grid;gap:5px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--green) 50%,var(--border));border-radius:14px;background:color-mix(in srgb,var(--green) 9%,var(--surface-2));font-size:.82rem}.ai-import-success strong{font-size:.96rem;color:var(--green)}.ai-import-success span{color:var(--muted)}.ai-import-success b{color:var(--text)}
@media(max-width:390px){.verb-principal-head span{font-size:.62rem;padding-inline:3px}.verb-principal-values strong{font-size:.78rem;padding-inline:3px}}
\n\n/* v1.7.117 — cleaner dictionary detail card hierarchy */\n/* Examples are three simple rows/cards, without another enclosing card around them. */\n.binary-detail-examples-section{\n  padding:0!important;\n  background:transparent!important;\n  border:0!important;\n  border-radius:0!important;\n  overflow:visible!important;\n}\n.binary-detail-examples-section h3{margin:2px 2px 7px!important}\n.binary-detail-examples-section .detail-examples{display:grid;gap:7px}\n.binary-detail-examples-section .detail-example{\n  margin:0!important;\n  padding:9px 11px!important;\n  border:0!important;\n  border-radius:13px!important;\n  background:color-mix(in srgb,var(--surface-2) 88%,transparent)!important;\n}\n.binary-detail-examples-section .detail-example .ru{margin-top:4px!important}\n/* Never render the empty lower capsule when a word has no antonym or notes. */\n#detailExtraSection.hidden{display:none!important}\n#detailExtraSection{margin-top:2px}\n/* Slightly tighter vertical rhythm after flattening the examples section. */\n.binary-detail-grid{gap:8px!important;margin-top:8px!important}\n@media(max-width:620px){\n  .binary-detail-examples-section .detail-example{padding:8px 10px!important}\n}\n/* v1.7.117 — personal card sets */
.bulk-set-name{display:grid;gap:7px;margin:14px 0}.bulk-set-name span{font-size:.86rem;color:var(--muted)}.bulk-set-name small{opacity:.72}.bulk-set-name input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);color:var(--text);padding:13px 14px;font:inherit}.sets-list{display:grid;gap:10px;max-height:68vh;overflow:auto}.set-card{border:1px solid var(--line);background:var(--panel-2);border-radius:18px;padding:15px;display:grid;gap:10px}.set-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.set-card h3{margin:0;font-size:1.02rem}.set-card-meta{color:var(--muted);font-size:.88rem}.set-card-actions{display:flex;gap:8px;flex-wrap:wrap}.set-card-actions button{padding:9px 12px}.set-words{display:grid;gap:6px}.set-word{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:.9rem}.set-word span{color:var(--muted);text-align:right}.sets-empty{padding:24px;text-align:center;color:var(--muted)}

/* v1.7.117 — simplified home and focused dictionary / statistics pages */
.gb-home-nav-grid{display:grid;gap:12px;margin:16px 0 22px}
.gb-home-nav{display:flex;align-items:center;gap:15px;width:100%;text-align:left;padding:19px 20px;border-radius:19px;border:1px solid var(--border,rgba(150,160,180,.2));background:var(--surface-1,var(--card));color:inherit;box-shadow:0 8px 24px rgba(0,0,0,.055)}
.gb-home-nav>span:nth-child(2){flex:1;display:grid;gap:4px}.gb-home-nav strong{font-size:1.15rem}.gb-home-nav small{font-size:.83rem;opacity:.67}.gb-home-nav-icon{font-size:1.7rem;opacity:.8}.gb-home-chevron{font-size:2rem;opacity:.5}.gb-home-stats{background:linear-gradient(120deg,rgba(86,131,206,.15),transparent 85%),var(--surface-1,var(--card))}.gb-home-dictionary{background:linear-gradient(120deg,rgba(58,174,131,.14),transparent 85%),var(--surface-1,var(--card))}
.gb-page-back{border:0;background:transparent;color:inherit;padding:9px 0;margin-bottom:10px;opacity:.75}.gb-page-heading{margin:10px 0 22px}.gb-page-heading h1{margin:5px 0;font-size:1.8rem}.gb-page-heading p{margin:0;opacity:.68}.gb-page-kicker{font-size:.72rem;letter-spacing:.15em;opacity:.6}.gb-statistics-content{padding:20px!important}.gb-statistics-content .weekly-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px}.gb-statistics-content .weekly-metric{min-width:0}.gb-statistics-content .weekly-subline{margin-top:20px}.gb-dictionary-tiles{margin-bottom:24px}.gb-dictionary-action-head{display:flex;align-items:baseline;justify-content:space-between;margin:12px 0 10px}.gb-dictionary-action-head h2{margin:0;font-size:1.1rem}.gb-dictionary-action-head p{margin:0;opacity:.6;font-size:.82rem}
#bulkTextDialog .dialog-head{margin-bottom:15px}#bulkTextDialog .bulk-set-name{display:grid;gap:8px;margin:12px 0 17px}#bulkTextDialog .bulk-import-tabs{margin-bottom:16px}#bulkTextDialog .bulk-text-input{background:color-mix(in srgb,var(--surface-2,#d4d7dd) 72%,transparent);border-radius:15px;min-height:175px}#bulkTextDialog .bulk-ai-tools{margin:0 0 15px;padding:0;border:0;background:transparent}#bulkTextDialog .bulk-ai-tools>p{display:none}.gb-ai-step{display:flex;align-items:flex-start;gap:12px;margin:13px 0}.gb-ai-step>div{flex:1;min-width:0}.gb-ai-step strong{display:block;margin:3px 0 5px}.gb-ai-step p{font-size:.85rem;opacity:.7;margin:0 0 11px}.gb-step-number{display:inline-flex;align-items:center;justify-content:center;flex:none;width:31px;height:31px;border-radius:11px;background:color-mix(in srgb,var(--accent,#648df5) 25%,transparent);font-weight:800}#bulkTextDialog .bulk-text-actions{display:flex;align-items:center;gap:10px;margin-top:13px}#bulkTextDialog #bulkTextPreviewBtn{flex:1;white-space:normal}#bulkTextDialog .bulk-text-status{flex-basis:100%}#bulkTextDialog .gb-ai-select{flex:none;width:19px;height:19px;accent-color:#4ca77e}#bulkTextDialog .bulk-text-row{gap:9px}#bulkTextDialog .bulk-text-footer{display:flex;gap:10px}#bulkTextDialog .bulk-text-footer button{flex:1;white-space:normal}
@media(max-width:520px){.gb-dictionary-tiles .render-tile{padding:11px 7px!important}.gb-dictionary-tiles .render-tile-label{font-size:.76rem}.gb-statistics-content{padding:13px!important}.gb-home-nav{padding:16px}}

/* v1.7.117 — personal dictionary landing and set management */
.gb-dictionary-strip{margin:0 -16px 19px;padding:12px 17px;border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--surface-2) 72%,transparent);color:var(--text);font-size:1.07rem;font-weight:700;letter-spacing:.01em}
.gb-dictionary-tiles{margin:0 0 14px!important}.gb-dictionary-action-head{display:none!important}
.dictionary-view .dictionary-toolbar{margin-top:0}.dictionary-view .dictionary-filters.hidden{display:none!important}
.dictionary-view #cards.hidden,.dictionary-view #dictionaryListHeading.hidden{display:none!important}
.dictionary-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:19px 0 10px;padding:0 2px}.dictionary-list-heading strong{font-size:1.06rem}.dictionary-list-heading button{padding:7px 10px;font-size:.8rem}
.gb-home-stats{background:linear-gradient(115deg,rgba(83,113,224,.26),rgba(116,81,185,.12) 78%),var(--surface-1,var(--card));border-color:rgba(110,125,222,.28)}
.gb-home-dictionary{background:linear-gradient(115deg,rgba(42,170,125,.26),rgba(57,143,166,.12) 78%),var(--surface-1,var(--card));border-color:rgba(64,171,135,.28)}
.sets-manager-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;margin-bottom:15px}.sets-manager-toolbar input,.set-manager-editor input,.set-manager-editor textarea{width:100%;box-sizing:border-box;padding:11px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font:inherit}
.set-manager-editor{display:grid;gap:13px;max-height:70vh;overflow:auto}.set-manager-editor h3{margin:0}.set-manager-editor label{display:grid;gap:6px;font-size:.85rem}.set-manager-word{display:flex!important;flex-direction:row;align-items:center;gap:10px;padding:9px;border-bottom:1px solid var(--border)}.set-manager-word input{width:18px;flex:none;accent-color:#51b58c}.set-manager-word span{display:grid;gap:3px;min-width:0}.set-manager-word small{color:var(--muted)}.set-word-candidates{max-height:230px;overflow:auto}.set-manager-selected{font-size:.85rem;color:var(--muted)}.set-manager-actions{display:flex;gap:10px}.set-manager-actions button{flex:1}
@media(max-width:520px){.gb-dictionary-strip{margin-inline:-12px;padding-inline:14px}.sets-manager-toolbar{grid-template-columns:1fr}.sets-manager-toolbar button{width:100%}}

/* v1.7.117 — full-screen, focused add / AI-import flow */
body:has(#bulkTextDialog[open]){overflow:hidden!important;overscroll-behavior:none}
#bulkTextDialog[open]{background:var(--surface,#151d29)!important;color:var(--text);opacity:1!important;box-shadow:0 22px 80px rgba(0,0,0,.38);border:1px solid var(--border);border-radius:18px;max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#bulkTextDialog::backdrop{background:rgba(5,10,17,.94)!important;backdrop-filter:blur(12px)}
#bulkTextDialog #bulkTextForm{padding:20px;min-width:0}
#bulkTextDialog .gb-import-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 15px;margin:0 0 12px;border-bottom:1px solid var(--border)}
#bulkTextDialog .gb-import-head h2{margin:0;font-size:1.24rem;text-align:center}
#bulkTextDialog .gb-import-back,#bulkTextDialog .gb-import-head-space{width:42px;height:42px;flex:none}
#bulkTextDialog .gb-import-back{font-size:1.45rem;padding:0;display:flex;align-items:center;justify-content:center}
#bulkTextDialog .bulk-import-tabs{margin:0 0 17px;gap:10px}
#bulkTextDialog .bulk-import-tabs button{min-width:0;min-height:49px}
#bulkTextDialog.gb-ai-mode .bulk-import-tabs{display:none!important}
#bulkTextDialog .bulk-set-name{margin:0 0 19px;gap:8px}
#bulkTextDialog .bulk-set-name input{width:100%;min-height:46px}
#bulkTextDialog .bulk-ai-tools{margin:0 0 17px!important}
#bulkTextDialog .gb-ai-step{display:grid;grid-template-columns:47px minmax(0,1fr);align-items:start;column-gap:11px;margin:0!important}
#bulkTextDialog .gb-step-number{width:47px;height:49px;min-width:47px;border-radius:13px;background:color-mix(in srgb,var(--green,#48b785) 27%,var(--surface-2));border:1px solid color-mix(in srgb,var(--green,#48b785) 48%,transparent);color:var(--green,#56c891);font-size:1.55rem;font-weight:850}
#bulkTextDialog .gb-ai-step-content{min-width:0}
#bulkTextDialog #copyAiTemplateBtn{width:100%;min-height:49px;margin:0;white-space:normal;text-align:center;font-size:.94rem;font-weight:750}
#bulkTextDialog .gb-ai-step p{margin:7px 0 0!important;font-size:.77rem;line-height:1.4;color:var(--muted);opacity:1}
#bulkTextDialog .gb-ai-input-step{display:block}
#bulkTextDialog.gb-ai-mode .gb-ai-input-step{display:grid}
#bulkTextDialog .gb-ai-input-hint{margin:0 0 8px!important}
#bulkTextDialog .bulk-text-input{display:block;width:100%;margin:0;min-height:184px;resize:vertical;background:color-mix(in srgb,var(--surface-2,#d4d7dd) 72%,transparent)}
#bulkTextDialog .bulk-text-actions{display:flex;align-items:stretch;gap:11px;margin-top:17px}
#bulkTextDialog .bulk-text-actions #bulkTextPreviewBtn{flex:1;min-width:0;min-height:49px;white-space:normal}
#bulkTextDialog .bulk-text-status{display:block;margin-top:9px;min-height:0;line-height:1.4}
#bulkTextDialog .bulk-text-status:empty{display:none}
#bulkTextDialog .bulk-text-footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px;margin-top:19px}
#bulkTextDialog .bulk-text-footer button{width:100%;min-width:0;min-height:49px;white-space:normal;margin:0}
#bulkTextDialog .bulk-text-preview{max-height:none}
@media(max-width:620px){
 #bulkTextDialog[open]{position:fixed!important;inset:0!important;margin:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;border:0!important;border-radius:0!important;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)!important}
 #bulkTextDialog #bulkTextForm{padding:12px 17px 24px}
 #bulkTextDialog .gb-import-head{margin-bottom:14px}
 #bulkTextDialog .gb-ai-step{grid-template-columns:43px minmax(0,1fr);column-gap:9px}
 #bulkTextDialog .gb-step-number{width:43px;min-width:43px;height:49px}
 #bulkTextDialog .bulk-text-footer{gap:9px}
 #bulkTextDialog .bulk-text-footer button{font-size:.87rem;padding:9px 7px}
}

/* v1.7.118 — portable sets import */
.set-import-panel{padding:16px;border:1px solid var(--border, #9995);border-radius:14px;margin:12px 0;display:grid;gap:12px}
.set-import-panel.hidden{display:none!important}
.set-import-panel input[type=file]{max-width:100%;font-size:14px}
.set-import-panel p{margin:0;opacity:.78;font-size:13px}
#setsImportPreview{font-size:14px;line-height:1.5;overflow-wrap:anywhere}

/* v1.7.124 — compact card-set library */
.gb-sets-entry{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:15px 17px;border:1px solid color-mix(in srgb,#61bca5 38%,var(--border));border-radius:17px;background:linear-gradient(110deg,rgba(55,170,137,.20),rgba(58,124,175,.09)),var(--surface-2);color:var(--text);font:inherit;font-weight:700;font-size:1.03rem;cursor:pointer}
.gb-sets-entry-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:rgba(61,182,150,.18);color:#69d6b1;font-size:1.4rem}.gb-sets-entry-arrow{margin-left:auto;color:var(--muted);font-size:1.6rem}
#setsDialog[open]{width:min(680px,calc(100vw - 16px));max-width:680px;max-height:calc(100dvh - 20px);overflow-y:auto;overscroll-behavior:contain;background:var(--surface,#151d29);color:var(--text)}
#setsDialog::backdrop{background:rgba(4,9,20,.88)}body:has(#setsDialog[open]){overflow:hidden}
.gb-sets-head{margin-bottom:18px}.gb-sets-head h2{font-size:1.4rem}
#setsDialog .sets-manager-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}
#setsDialog #setsSearch{grid-column:1/-1;grid-row:1;width:100%;padding:14px 16px;border-radius:15px}
#setsDialog .sets-manager-toolbar button{min-width:0;font-size:.85rem;padding:12px 8px}
#setsDialog .sets-recent{margin-bottom:23px}#setsDialog .sets-recent.hidden{display:none!important}
#setsDialog .sets-section-title{font-size:1rem;margin:0 0 12px;font-weight:750}
#setsDialog .sets-recent-list,#setsDialog .sets-list{display:grid;gap:10px;max-height:none;overflow:visible}
#setsDialog .set-card{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:0;align-items:center;padding:12px;border:1px solid var(--border);border-radius:17px;background:var(--surface-2)}
#setsDialog .set-card-main{min-width:0;display:flex;gap:12px;align-items:center;text-align:left;border:0;background:transparent;color:var(--text);padding:0;cursor:pointer}
#setsDialog .set-card-icon{flex:none;display:grid;place-items:center;width:53px;height:53px;border-radius:13px;background:rgba(80,166,208,.17);color:#66c8ec;font-size:1.8rem}
#setsDialog .set-card-info{min-width:0;display:grid;gap:5px}#setsDialog .set-card-info strong{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#setsDialog .set-card-info small{color:var(--muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#setsDialog .set-card-more{border:0;background:transparent;color:var(--text);font-size:1.6rem;padding:8px 4px;cursor:pointer}
#setsDialog .set-card-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid var(--border)}
#setsDialog .set-card-actions.hidden{display:none!important}#setsDialog .set-card-actions button{font-size:.82rem;padding:10px 5px;white-space:normal}#setsDialog .set-delete-action{color:#e98282}
#setsDialog .set-words{grid-column:1/-1;margin-top:12px;max-height:270px;overflow:auto;border-top:1px solid var(--border)}#setsDialog .set-words.hidden{display:none!important}
#setsDialog .set-word{align-items:baseline;gap:10px;padding:10px 2px}#setsDialog .set-word b{min-width:0;flex:1}#setsDialog .set-word span{min-width:0;flex:1;overflow-wrap:anywhere}
@media(max-width:520px){#setsDialog[open]{width:calc(100vw - 10px);max-height:calc(100dvh - 10px);padding:14px}#setsDialog .set-card-icon{width:47px;height:47px}#setsDialog .set-card{padding:10px}}

/* v1.7.124 — consistent home rhythm and dedicated card-set tiles */
body[data-view="home"] .home-review-section,
body[data-view="home"] .gb-home-nav-grid,
body[data-view="home"] .gb-home-sets-section,
body[data-view="home"] .swiss-home-section{margin:0!important}
body[data-view="home"] .home-dashboard{display:flex;flex-direction:column;gap:12px}
body[data-view="home"] .gb-home-nav-grid{gap:12px!important}
body[data-view="home"] .render-quick-section{margin:0!important}
.gb-home-sets-section{padding:0;border:0;background:transparent}
.gb-home-sets-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:120px;padding:19px 22px;text-align:left;color:var(--text);font:inherit;cursor:pointer;border:1px solid color-mix(in srgb,#64b9ad 45%,var(--border));border-radius:20px;background:linear-gradient(115deg,rgba(53,158,151,.19),rgba(94,106,194,.11) 75%),var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.055)}
.gb-home-sets-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:5px}
.gb-home-sets-copy>strong{font-size:clamp(1.55rem,4.2vw,2.08rem);line-height:1.08;font-weight:750;letter-spacing:-.025em}
.gb-home-sets-summary{color:var(--muted);font-size:.88rem}
.gb-home-sets-hint{font-size:.68rem;color:var(--soft);margin-top:3px}
.gb-home-sets-mark{display:grid;place-items:center;flex:none;width:62px;height:62px;border-radius:50%;background:rgba(64,162,153,.17);border:1px solid rgba(89,181,171,.32);color:#62bfb2;font-size:2rem;font-weight:750}
.gb-dictionary-sets-tile{margin:0 0 14px!important;min-height:76px;padding:13px 15px!important;border:1px solid color-mix(in srgb,#61bca5 38%,var(--border))!important;border-radius:17px!important;background:linear-gradient(110deg,rgba(55,170,137,.15),rgba(58,124,175,.07)),var(--surface)!important;box-shadow:0 5px 17px rgba(0,0,0,.045)}
.gb-sets-entry-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.gb-sets-entry-copy strong{font-size:1.03rem;font-weight:740}
.gb-sets-entry-copy small{font-size:.76rem;color:var(--muted);font-weight:450}
@media(max-width:520px){.gb-home-sets-hero{padding:17px 16px;min-height:108px}.gb-home-sets-mark{width:54px;height:54px}.home-dashboard{gap:12px!important}}

/* v1.7.128 — set training choice and study source */
.gb-study-set-picker{display:grid;gap:8px;margin:12px 0 16px;padding:14px;border:1px solid var(--border,rgba(130,150,165,.28));border-radius:14px;background:var(--surface-2,rgba(120,140,160,.08))}
.gb-study-set-picker label{font-weight:700}
.gb-study-set-picker select{width:100%;min-width:0;max-width:100%;padding:12px;border-radius:10px;background:var(--surface,rgba(130,140,150,.13));color:inherit;border:1px solid var(--border,rgba(130,150,165,.35));font:inherit}
.gb-study-set-picker small,.gb-set-training-info{opacity:.75;font-size:.84rem}
.gb-set-training-dialog{max-width:min(460px,calc(100vw - 24px));width:100%}
.gb-set-training-choices{display:grid;gap:12px;margin-top:16px}
.gb-set-training-choices button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;width:100%;min-height:92px;padding:18px}
.gb-set-training-choices button strong{font-size:1.1rem}
.gb-set-training-choices button small{font-size:.83rem;opacity:.82}

/* v1.7.128 — visible return from set training mode selection */
.gb-set-training-back{display:block;width:100%;margin-top:16px;min-height:46px;text-align:center;font-weight:650}

/* v1.7.128 shared sets */
.gb-shared-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.gb-shared-tabs button{border-radius:12px;min-height:44px}.gb-shared-tabs .gb-shared-active{background:rgba(55,169,130,.25);border-color:rgba(55,169,130,.65)}#setsPublishPanel label{display:block;padding:11px 6px}#setsPublishUsers{padding:5px 16px;background:rgba(110,130,150,.1);border-radius:12px}#setsPublishUsers label{padding:7px 3px}#setsLibraryList .set-card{gap:10px}#setsLibraryList .set-card>button{margin-left:auto}#setsLibraryList .set-words{display:block;margin-top:12px}

/* v1.7.128 — compact private link sharing */
.gb-link-receive{padding:14px;margin:12px 0;border:1px solid var(--border,#68778755);border-radius:14px;background:var(--surface-2,transparent)}
.gb-link-receive h3{margin:0 0 5px}.gb-link-receive p{font-size:13px;opacity:.78;margin:0 0 10px}
.gb-link-input-row{display:flex;gap:8px;align-items:stretch;margin:8px 0}
.gb-link-input-row input{min-width:0;flex:1}.gb-link-input-row button{flex:0 0 auto}
#setsPublishLink{padding:10px 0}#setsPublishLink p{font-size:13px;opacity:.8}
@media(max-width:430px){.gb-link-input-row{flex-wrap:wrap}.gb-link-input-row button{width:100%}}


/* v1.7.129 — shared library: full-width rows on narrow iPhone screens.
   Override the two-column layout used by personal sets. */
#setsDialog #setsLibraryList{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;width:100%;min-width:0}
#setsDialog #setsLibraryList .set-card{box-sizing:border-box;width:100%;min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:8px;padding:12px;border:1px solid var(--border);border-radius:17px;background:var(--surface-2)}
#setsDialog #setsLibraryList .set-card-icon{grid-column:1;grid-row:1;width:48px;height:48px}
#setsDialog #setsLibraryList .set-card-info{grid-column:2;grid-row:1;min-width:0;display:grid;gap:4px}
#setsDialog #setsLibraryList .set-card-info strong{display:block;white-space:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip;line-height:1.3}
#setsDialog #setsLibraryList .set-card-info small{display:block;white-space:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip;line-height:1.35}
#setsDialog #setsLibraryList .set-card>button[data-shared-view]{grid-column:3;grid-row:1;min-width:0;margin:0;padding:10px 12px;white-space:nowrap;font-size:.86rem}
#setsDialog #setsLibraryList .set-card .set-words{grid-column:1/-1;min-width:0}
#setsDialog #setsLibraryPanel{min-width:0;width:100%;box-sizing:border-box}
#setsDialog #setsLibraryPanel #setsLibrarySearch{display:block;width:100%;box-sizing:border-box;margin:12px 0;padding:13px 14px}
#setsDialog .gb-link-receive{box-sizing:border-box;min-width:0;width:100%}
#setsDialog .gb-link-input-row{min-width:0}
#setsDialog .gb-link-input-row input{box-sizing:border-box;width:100%}
@media(max-width:520px){
 #setsDialog #setsLibraryList .set-card{grid-template-columns:43px minmax(0,1fr);column-gap:10px}
 #setsDialog #setsLibraryList .set-card-icon{width:43px;height:43px}
 #setsDialog #setsLibraryList .set-card>button[data-shared-view]{grid-column:2;grid-row:2;justify-self:start;margin-top:0}
 #setsDialog #setsLibraryList .set-card-info strong{font-size:.97rem}
 #setsDialog #setsLibraryList .set-card-info small{font-size:.79rem}
 #setsDialog .gb-link-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
 #setsDialog .gb-link-input-row button{width:auto;min-width:0}
}
@media(max-width:370px){#setsDialog .gb-link-input-row{grid-template-columns:minmax(0,1fr)}#setsDialog .gb-link-input-row button{width:100%}}


/* v1.7.130 — Swiss alpine cards: light/dark palettes, gentle ridges, crisp snowy summits. */
#swissTrainingGame .swiss-flash-face{
  --alpine-ink:#293543;--alpine-muted:#64717e;
  color:var(--alpine-ink)!important;
  border:1px solid rgba(204,78,93,.24)!important;
  box-shadow:0 14px 30px rgba(62,70,88,.10),inset 0 1px 0 rgba(255,255,255,.58)!important;
}
#swissTrainingGame .swiss-flash-front{
  background:linear-gradient(155deg,#fff8f8 0%,#fae9eb 48%,#f0dce2 100%)!important;
}
#swissTrainingGame .swiss-flash-back{
  background:linear-gradient(155deg,#f8f6ff 0%,#eceaf9 49%,#dce7f3 100%)!important;
  border-color:rgba(113,104,177,.28)!important;
}
#swissTrainingGame .swiss-flash-face .flashcard-word-with-audio strong,
#swissTrainingGame .swiss-flash-face > strong{color:var(--alpine-ink)!important;text-shadow:none!important}
#swissTrainingGame .swiss-flash-face > small,
#swissTrainingGame .swiss-flash-face .flashcard-meta,
#swissTrainingGame .swiss-flash-face .flashcard-example,
#swissTrainingGame .swiss-flash-face .flashcard-side-label{color:var(--alpine-muted)!important;text-shadow:none!important}
#swissTrainingGame .swiss-flash-face .flashcard-side-label{background:rgba(255,255,255,.62)!important;border:1px solid rgba(140,112,126,.20)!important}
#swissTrainingGame .swiss-flash-face .speak-btn{color:var(--alpine-ink)!important}
/* Simplified mountain silhouette: broad, rounded-looking slopes rather than many sharp spikes. */
#swissTrainingGame .ridge-far{
  background:linear-gradient(180deg,#e4aab7,#c88e9f)!important;
  clip-path:polygon(0 76%,11% 70%,22% 57%,30% 65%,43% 37%,55% 58%,69% 29%,81% 56%,92% 43%,100% 52%,100% 100%,0 100%)!important;
}
#swissTrainingGame .ridge-mid{
  background:linear-gradient(180deg,#d9a4b2,#bd8a9e)!important;
  clip-path:polygon(0 73%,14% 63%,29% 69%,43% 49%,56% 66%,73% 43%,87% 59%,100% 51%,100% 100%,0 100%)!important;
}
#swissTrainingGame .ridge-near{
  background:linear-gradient(180deg,#bc93a8,#a67f97)!important;
  clip-path:polygon(0 67%,16% 56%,31% 65%,48% 48%,65% 64%,83% 49%,100% 60%,100% 100%,0 100%)!important;
}
#swissTrainingGame .snowcaps{
  left:-8%!important;right:-8%!important;bottom:23%!important;height:42%!important;
  background:#fffdfd!important;opacity:.94!important;
  clip-path:polygon(0 0,100% 0,100% 0,92% 43%,88% 48%,81% 56%,77% 46%,73% 35%,69% 29%,64% 39%,60% 46%,55% 58%,51% 50%,47% 43%,43% 37%,38% 48%,34% 57%,30% 65%,26% 61%,22% 57%,16% 65%,11% 70%,0 76%)!important;
}
#swissTrainingGame .hill-a{background:linear-gradient(180deg,#b48b9e,#a17f94)!important}
#swissTrainingGame .hill-b{background:linear-gradient(180deg,#c29aa8,#a78799)!important}
#swissTrainingGame .chalet{background:#8d685d!important;box-shadow:0 5px 12px rgba(67,48,52,.15)!important}
#swissTrainingGame .chalet::before{background:#6f7e8b!important}
#swissTrainingGame .chalet::after{background:#fff0ad!important;box-shadow:23px 1px 0 #ffe7a1!important}
#swissTrainingGame .pines{background:#658178!important;box-shadow:18px 7px 0 2px #66867b,38px -3px 0 1px #718b80!important}
#swissTrainingGame .swiss-flash-back .ridge-far{background:linear-gradient(180deg,#bfc5e4,#a8b3d8)!important}
#swissTrainingGame .swiss-flash-back .ridge-mid{background:linear-gradient(180deg,#adb7da,#96a6cd)!important}
#swissTrainingGame .swiss-flash-back .ridge-near{background:linear-gradient(180deg,#8eabc6,#819db9)!important}
#swissTrainingGame .swiss-flash-back .snowcaps{background:#fff!important;opacity:.96!important}
#swissTrainingGame .swiss-flash-back .hill-a{background:linear-gradient(180deg,#88a4bc,#7795b0)!important}
#swissTrainingGame .swiss-flash-back .hill-b{background:linear-gradient(180deg,#91a9c4,#829bb8)!important}
/* Night palette is deliberately lighter than the old near-black burgundy, with readable text. */
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face{
  --alpine-ink:#f8f2f4;--alpine-muted:#e5d6e1;
  border-color:rgba(239,154,176,.35)!important;
  box-shadow:0 16px 34px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.12)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-front{background:linear-gradient(155deg,#814b67,#6d4568 52%,#554361 100%)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back{background:linear-gradient(155deg,#55547f,#4b567b 55%,#394f69 100%)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face .flashcard-side-label{background:rgba(38,37,55,.42)!important;border-color:rgba(255,255,255,.24)!important}
html[data-theme="dark"] #swissTrainingGame .ridge-far{background:linear-gradient(180deg,#b482a0,#8c688a)!important}
html[data-theme="dark"] #swissTrainingGame .ridge-mid{background:linear-gradient(180deg,#926e91,#725776)!important}
html[data-theme="dark"] #swissTrainingGame .ridge-near{background:linear-gradient(180deg,#705778,#554b6c)!important}
html[data-theme="dark"] #swissTrainingGame .snowcaps{background:#f3eaf1!important;opacity:.87!important}
html[data-theme="dark"] #swissTrainingGame .hill-a{background:linear-gradient(180deg,#62506f,#4d4260)!important}
html[data-theme="dark"] #swissTrainingGame .hill-b{background:linear-gradient(180deg,#725977,#554665)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back .ridge-far{background:linear-gradient(180deg,#a9a4ce,#8687b4)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back .ridge-mid{background:linear-gradient(180deg,#888ab9,#696e9d)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back .ridge-near{background:linear-gradient(180deg,#677fa3,#526a8c)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back .snowcaps{background:#f5f4ff!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back .hill-a{background:linear-gradient(180deg,#4d6486,#394e6b)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back .hill-b{background:linear-gradient(180deg,#526c8d,#3d5475)!important}
html[data-theme="dark"] #swissTrainingGame .chalet{background:#65505a!important}
html[data-theme="dark"] #swissTrainingGame .chalet::before{background:#b0a2a4!important}
html[data-theme="dark"] #swissTrainingGame .pines{background:#3d5862!important;box-shadow:18px 7px 0 2px #3b5962,38px -3px 0 1px #45616b!important}


/* v1.8.14 — compact CH switch in the app header. */
.ch-header-toggle{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:4px 7px 4px 5px;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 4px 14px rgba(30,55,75,.06);cursor:pointer;user-select:none}
.ch-header-toggle input{position:absolute;opacity:0;pointer-events:none}
.ch-header-flag{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#e52f43;color:#fff;font-size:.66rem;font-weight:900;letter-spacing:.01em}
.ch-header-label{font-size:.78rem;font-weight:850;color:var(--text)}
.ch-header-switch{position:relative;width:36px;height:22px;border-radius:999px;background:var(--surface-3,#d8dee4);transition:.2s ease;box-shadow:inset 0 0 0 1px rgba(80,95,110,.12)}
.ch-header-switch::after{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.22);transition:.2s ease}
.ch-header-toggle input:checked + .ch-header-switch{background:#42b883}
.ch-header-toggle input:checked + .ch-header-switch::after{transform:translateX(14px)}
.ch-header-toggle:has(input:focus-visible){outline:2px solid color-mix(in srgb,#42b883 70%,white);outline-offset:2px}
html.ch-module-off .swiss-home-section{display:none!important}
@media(max-width:520px){.ch-header-toggle{min-height:36px;padding:3px 6px 3px 4px;gap:5px}.ch-header-flag{width:25px;height:25px}.ch-header-label{font-size:.74rem}.ch-header-switch{width:34px;height:21px}.ch-header-switch::after{width:17px;height:17px}.ch-header-toggle input:checked + .ch-header-switch::after{transform:translateX(13px)}}

/* v1.8.14 — illustrated Swiss Alpine flashcard, entirely CSS vector art (no bitmap payload). */
#swissTrainingGame .swiss-flash-face{border:1px solid rgba(93,126,153,.16)!important;box-shadow:0 18px 42px rgba(65,94,118,.14)!important;overflow:hidden!important}
#swissTrainingGame .swiss-flash-front{background:linear-gradient(180deg,#dce7ff 0%,#f8e8e7 40%,#d9edf0 100%)!important}
#swissTrainingGame .swiss-flash-back{background:linear-gradient(180deg,#e7e3ff 0%,#f6e9ef 42%,#d9e8f3 100%)!important}
#swissTrainingGame .swiss-card-landscape{opacity:1!important}
#swissTrainingGame .swiss-card-landscape::before{content:""!important;display:block!important;position:absolute!important;right:20%!important;top:14%!important;width:48px!important;height:48px!important;border-radius:50%!important;background:rgba(255,246,218,.94)!important;box-shadow:0 0 24px rgba(255,238,192,.45)!important}
#swissTrainingGame .swiss-card-landscape::after{content:""!important;display:block!important;position:absolute!important;left:-8%!important;right:-8%!important;bottom:11%!important;height:13%!important;background:linear-gradient(180deg,rgba(174,213,235,.88),rgba(135,188,220,.82))!important;clip-path:ellipse(58% 46% at 50% 52%)!important;opacity:.9!important}
#swissTrainingGame .ridge-far{left:-10%!important;right:-10%!important;bottom:28%!important;height:36%!important;background:linear-gradient(180deg,#a9c9ea,#86afd5)!important;clip-path:polygon(0 85%,9% 73%,17% 77%,27% 46%,34% 63%,43% 54%,53% 75%,63% 49%,71% 68%,82% 40%,91% 66%,100% 57%,100% 100%,0 100%)!important}
#swissTrainingGame .snowcaps{left:-2%!important;right:-2%!important;bottom:49%!important;height:17%!important;background:#fbfdff!important;opacity:.98!important;clip-path:polygon(6% 90%,15% 78%,27% 31%,31% 48%,35% 39%,40% 70%,51% 88%,63% 49%,67% 62%,71% 54%,75% 79%,82% 39%,86% 56%,90% 49%,95% 80%,95% 94%,82% 73%,70% 86%,61% 72%,52% 94%,40% 82%,28% 67%,17% 93%)!important}
#swissTrainingGame .ridge-mid{left:-10%!important;right:-10%!important;bottom:20%!important;height:30%!important;background:linear-gradient(180deg,#7fa8c8,#658fab)!important;clip-path:polygon(0 77%,11% 62%,22% 70%,34% 51%,45% 68%,57% 47%,69% 65%,80% 50%,90% 66%,100% 56%,100% 100%,0 100%)!important}
#swissTrainingGame .ridge-near{left:-10%!important;right:-10%!important;bottom:14%!important;height:23%!important;background:linear-gradient(180deg,#5f8ba3,#4f788d)!important;clip-path:polygon(0 72%,14% 55%,27% 69%,41% 50%,55% 66%,69% 49%,82% 65%,100% 52%,100% 100%,0 100%)!important}
#swissTrainingGame .hill-a{z-index:2!important;left:-14%!important;width:75%!important;bottom:-3%!important;height:20%!important;background:linear-gradient(180deg,#8bb68c,#6d9a75)!important;border-radius:52% 70% 0 0/72% 62% 0 0!important;transform:rotate(4deg)!important}
#swissTrainingGame .hill-b{z-index:2!important;right:-16%!important;width:78%!important;bottom:-4%!important;height:21%!important;background:linear-gradient(180deg,#91b88c,#719b74)!important;border-radius:65% 48% 0 0/64% 76% 0 0!important;transform:rotate(-5deg)!important}
#swissTrainingGame .chalet{z-index:5!important;left:74%!important;bottom:8%!important;width:54px!important;height:34px!important;background:#e7e2dc!important;border:1px solid rgba(65,74,82,.18)!important;border-radius:2px!important;box-shadow:0 7px 15px rgba(51,75,84,.18)!important}
#swissTrainingGame .chalet::before{content:""!important;position:absolute!important;left:-8px!important;top:-18px!important;width:70px!important;height:25px!important;background:#526271!important;clip-path:polygon(50% 0,100% 100%,0 100%)!important}
#swissTrainingGame .chalet::after{content:""!important;position:absolute!important;left:11px!important;bottom:6px!important;width:8px!important;height:12px!important;background:#ffd787!important;box-shadow:23px 1px 0 #ffd787!important;filter:drop-shadow(0 0 5px rgba(255,207,117,.42))!important}
#swissTrainingGame .pines{z-index:4!important;left:11%!important;bottom:8%!important;width:7px!important;height:48px!important;background:#315f52!important;border-radius:50% 50% 2px 2px!important;box-shadow:19px 7px 0 2px #3c6b5c,40px -3px 0 1px #356453!important}
#swissTrainingGame .swiss-card-corner{background:#e52f43!important;box-shadow:-8px 8px 22px rgba(229,47,67,.12)!important}
#swissTrainingGame .swiss-flash-back .swiss-card-corner{background:#d83d59!important}
#swissTrainingGame .swiss-flash-back .ridge-far{background:linear-gradient(180deg,#b8b9dc,#9fa8cf)!important}
#swissTrainingGame .swiss-flash-back .ridge-mid{background:linear-gradient(180deg,#8fa8c6,#7895b4)!important}
#swissTrainingGame .swiss-flash-back .ridge-near{background:linear-gradient(180deg,#6f8fa9,#5e7d96)!important}
#swissTrainingGame .swiss-flash-back .hill-a,#swissTrainingGame .swiss-flash-back .hill-b{background:linear-gradient(180deg,#86a98e,#6f917b)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-front{background:linear-gradient(180deg,#3f456f 0%,#7d526c 44%,#31556b 100%)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back{background:linear-gradient(180deg,#41486f 0%,#69536e 44%,#304e66 100%)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-card-landscape::before{background:#ffe7b1!important;box-shadow:0 0 28px rgba(255,204,135,.30)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-card-landscape::after{background:linear-gradient(180deg,rgba(87,136,169,.86),rgba(53,102,137,.88))!important}
html[data-theme="dark"] #swissTrainingGame .ridge-far{background:linear-gradient(180deg,#7c86b5,#596c9b)!important}
html[data-theme="dark"] #swissTrainingGame .snowcaps{background:#f2e8e4!important;opacity:.92!important}
html[data-theme="dark"] #swissTrainingGame .ridge-mid{background:linear-gradient(180deg,#536b91,#3d587a)!important}
html[data-theme="dark"] #swissTrainingGame .ridge-near{background:linear-gradient(180deg,#365b72,#28485e)!important}
html[data-theme="dark"] #swissTrainingGame .hill-a,html[data-theme="dark"] #swissTrainingGame .hill-b{background:linear-gradient(180deg,#416b5e,#294f47)!important}
html[data-theme="dark"] #swissTrainingGame .chalet{background:#c9c4bf!important;border-color:rgba(255,255,255,.12)!important}
html[data-theme="dark"] #swissTrainingGame .chalet::before{background:#313c4a!important}
html[data-theme="dark"] #swissTrainingGame .pines{background:#183f38!important;box-shadow:19px 7px 0 2px #204a40,40px -3px 0 1px #1c443b!important}

/* v1.8.14: Actual day/night WebP Alpine artwork, shared by every Swiss card. */
#swissTrainingGame .swiss-card-landscape{
  background-image:url('/static/swiss-alpine-day.webp?v=1.8.14')!important;
  background-position:center bottom!important;
  background-size:100% 78%!important;
  background-repeat:no-repeat!important;
  -webkit-mask-image:linear-gradient(to bottom,transparent 10%,#000 29%)!important;
  mask-image:linear-gradient(to bottom,transparent 10%,#000 29%)!important;
  opacity:1!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-card-landscape{
  background-image:url('/static/swiss-alpine-night.webp?v=1.8.14')!important;
}
#swissTrainingGame .swiss-card-landscape::before,
#swissTrainingGame .swiss-card-landscape::after,
#swissTrainingGame .swiss-card-landscape > *{display:none!important;content:none!important}
#swissTrainingGame .swiss-flash-front,
#swissTrainingGame .swiss-flash-back{background:linear-gradient(180deg,#a9d9ff 0%,#e4f3ff 48%,#c2e4fa 100%)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-front,
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back{background:linear-gradient(180deg,#122a4a 0%,#20426a 50%,#15314d 100%)!important}
#swissTrainingGame .swiss-flash-face .flashcard-word-with-audio strong,
#swissTrainingGame .swiss-flash-face > strong{color:#142c40!important}
#swissTrainingGame .swiss-flash-face > small,
#swissTrainingGame .swiss-flash-face .flashcard-meta,
#swissTrainingGame .swiss-flash-face .flashcard-example{color:#385268!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face .flashcard-word-with-audio strong,
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face > strong{color:#f6f9ff!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face > small,
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face .flashcard-meta,
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face .flashcard-example{color:#e4edff!important}


/* v1.8.14 — full-bleed muted Swiss artwork; front is softly rosy, reverse is cooler. */
#swissTrainingGame .swiss-flash-face{
  isolation:isolate!important;
  background:transparent!important;
  border-color:rgba(140,125,155,.18)!important;
}
#swissTrainingGame .swiss-card-landscape{
  inset:0!important;
  background-size:cover!important;
  background-position:center center!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  opacity:1!important;
}
/* Separate translucent wash preserves readable text while retaining the picture. */
#swissTrainingGame .swiss-flash-face::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:linear-gradient(180deg,rgba(255,229,237,.69) 0%,rgba(255,239,241,.56) 43%,rgba(252,232,239,.24) 70%,rgba(255,239,243,.10) 100%)!important;
}
#swissTrainingGame .swiss-flash-back::before{
  background:linear-gradient(180deg,rgba(231,239,255,.78) 0%,rgba(233,240,255,.66) 43%,rgba(222,233,252,.30) 73%,rgba(219,233,252,.12) 100%)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-front::before{
  background:linear-gradient(180deg,rgba(75,44,73,.68) 0%,rgba(76,48,79,.52) 43%,rgba(39,41,72,.27) 75%,rgba(27,39,66,.10) 100%)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back::before{
  background:linear-gradient(180deg,rgba(28,48,81,.76) 0%,rgba(34,55,87,.58) 43%,rgba(28,48,79,.32) 75%,rgba(25,45,76,.14) 100%)!important;
}
#swissTrainingGame .swiss-flash-face .flashcard-word-with-audio strong,
#swissTrainingGame .swiss-flash-face > strong{color:#192b3c!important;text-shadow:0 1px 12px rgba(255,255,255,.45)!important}
#swissTrainingGame .swiss-flash-face > small,
#swissTrainingGame .swiss-flash-face .flashcard-meta,
#swissTrainingGame .swiss-flash-face .flashcard-example{color:#344b61!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face .flashcard-word-with-audio strong,
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face > strong{color:#fff!important;text-shadow:0 2px 12px rgba(8,18,34,.55)!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face > small,
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face .flashcard-meta,
html[data-theme="dark"] #swissTrainingGame .swiss-flash-face .flashcard-example{color:#f1f4fc!important}
/* CH module collapses smoothly instead of blinking out of the home screen. */
.swiss-home-section{
  overflow:hidden;
  max-height:300px;
  opacity:1;
  transform:translateY(0) scale(1);
  transition:max-height .38s ease,opacity .28s ease,transform .38s ease,margin .38s ease!important;
  transform-origin:top center;
}
html.ch-module-off .swiss-home-section{
  display:block!important;
  max-height:0!important;
  opacity:0!important;
  transform:translateY(-10px) scale(.98)!important;
  margin-top:0!important;
  margin-bottom:0!important;
  pointer-events:none!important;
  visibility:hidden;
  transition: max-height .38s ease,opacity .28s ease,transform .38s ease,margin .38s ease,visibility 0s linear .38s!important;
}
@media(prefers-reduced-motion:reduce){
 .swiss-home-section,html.ch-module-off .swiss-home-section{transition:none!important}
}
.ch-module-toast{
 position:fixed;z-index:10000;left:50%;bottom:max(94px,calc(env(safe-area-inset-bottom) + 76px));
 transform:translate(-50%,12px);opacity:0;pointer-events:none;
 background:#96384e;color:white;border:1px solid rgba(255,255,255,.3);
 box-shadow:0 9px 28px rgba(40,25,50,.22);border-radius:999px;
 padding:10px 17px;font-size:.83rem;font-weight:700;white-space:nowrap;
 transition:opacity .22s ease,transform .22s ease;
}
.ch-module-toast.visible{opacity:1;transform:translate(-50%,0)}
html:not([data-theme="dark"]) .ch-module-toast{background:#fff1f3;color:#922c45;border-color:#f4b9c6}
@media(prefers-reduced-motion:reduce){.ch-module-toast{transition:none}}

/* v1.8.14 — gentle full-card Swiss pink wash and lower-contrast artwork.
   Overlay is uniform over the whole front (no localized left-hand blotch). */
#swissTrainingGame .swiss-flash-front .swiss-card-landscape{
  filter:saturate(.70) contrast(.78) brightness(1.055)!important;
}
#swissTrainingGame .swiss-flash-back .swiss-card-landscape{
  filter:saturate(.76) contrast(.82) brightness(1.045)!important;
}
#swissTrainingGame .swiss-flash-front::before{
  background:linear-gradient(180deg,rgba(255,224,233,.77) 0%,rgba(255,228,236,.66) 46%,rgba(255,222,232,.43) 100%)!important;
}
#swissTrainingGame .swiss-flash-back::before{
  background:linear-gradient(180deg,rgba(231,240,253,.79) 0%,rgba(231,241,254,.68) 46%,rgba(224,237,251,.40) 100%)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-front .swiss-card-landscape{
  filter:saturate(.66) contrast(.75) brightness(1.10)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back .swiss-card-landscape{
  filter:saturate(.73) contrast(.80) brightness(1.08)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-front::before{
  background:linear-gradient(180deg,rgba(102,63,91,.77) 0%,rgba(105,65,94,.65) 46%,rgba(94,58,87,.44) 100%)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back::before{
  background:linear-gradient(180deg,rgba(40,59,88,.77) 0%,rgba(43,63,92,.65) 46%,rgba(39,59,87,.43) 100%)!important;
}


/* v1.8.14 — even, edge-to-edge color wash; alpine image recedes behind the text.
   No radial gradients, circular masks or local tint patches on either side. */
#swissTrainingGame .swiss-flash-front{background:#f3cbd4!important}
#swissTrainingGame .swiss-flash-back{background:#dbe7f3!important}
#swissTrainingGame .swiss-flash-face::after{content:none!important;display:none!important}
#swissTrainingGame .swiss-flash-face::before{
  content:""!important;display:block!important;position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;border-radius:inherit!important;
  z-index:1!important;pointer-events:none!important;filter:none!important;
  background:rgba(247,203,214,.64)!important;
}
#swissTrainingGame .swiss-flash-back::before{background:rgba(219,233,249,.65)!important}
#swissTrainingGame .swiss-flash-front .swiss-card-landscape{
  filter:saturate(.52) contrast(.68) brightness(1.03)!important;
}
#swissTrainingGame .swiss-flash-back .swiss-card-landscape{
  filter:saturate(.55) contrast(.70) brightness(1.02)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-front{background:#46313e!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back{background:#29394d!important}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-front::before{
  background:rgba(76,43,62,.73)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back::before{
  background:rgba(35,51,72,.73)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-front .swiss-card-landscape{
  filter:saturate(.48) contrast(.68) brightness(.77)!important;
}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-back .swiss-card-landscape{
  filter:saturate(.52) contrast(.70) brightness(.78)!important;
}
/* Text and audio stay above the wash; corner badge remains on top. */
#swissTrainingGame .swiss-flash-face>*:not(.swiss-card-landscape):not(.swiss-card-corner){z-index:3!important}
#swissTrainingGame .swiss-card-corner{z-index:8!important}

/* v1.8.14 — sets library: keep the exit control below iPhone Dynamic Island.
   The dialog is the scroll container, so the heading stays visible while browsing. */
#setsDialog[open]{
  box-sizing:border-box;
  position:fixed;
  inset:auto 0;
  margin:max(20px, env(safe-area-inset-top, 0px)) auto max(12px, env(safe-area-inset-bottom, 0px));
  max-height:calc(100dvh - max(20px, env(safe-area-inset-top, 0px)) - max(12px, env(safe-area-inset-bottom, 0px)));
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
#setsDialog .gb-sets-head{
  position:sticky;
  top:-1px;
  z-index:20;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 0 14px;
  margin-bottom:12px;
  background:var(--surface,#151d29);
  border-bottom:1px solid var(--border,#ffffff24);
}
#setsDialog .gb-sets-head h2{margin:0;min-width:0}
#setsDialog #setsCloseBtn{
  flex:none;
  min-width:86px;
  min-height:44px;
  padding:9px 12px;
  font-size:.92rem;
  white-space:nowrap;
  touch-action:manipulation;
}
@media(max-width:620px){
  #setsDialog[open]{
    inset:0 0 auto;
    margin:max(66px, calc(env(safe-area-inset-top, 0px) + 12px)) auto max(10px, env(safe-area-inset-bottom, 0px));
    width:calc(100vw - 10px);
    max-height:calc(100dvh - max(66px, calc(env(safe-area-inset-top, 0px) + 12px)) - max(10px, env(safe-area-inset-bottom, 0px)));
    padding:0 14px 18px;
    border-radius:18px;
  }
  #setsDialog .gb-sets-head{padding:15px 0 12px}
  #setsDialog .gb-sets-head h2{font-size:1.2rem}
}

/* v1.8.14 — iPhone PWA viewport stability: prevent document-wide sideways pan. */
@media (max-width:900px){
  html{width:100%;max-width:100%;overflow-x:clip;overscroll-behavior-x:none}
  body{width:100%;max-width:100%;min-width:0;overflow-x:clip;overscroll-behavior-x:none}
  .shell,#studyView,.render-study-view,.render-study-setup,.training-mode-grid{max-width:100%;min-width:0}
  input,textarea,select{font-size:16px}
}


/* v1.8.14 — compact dashboard tiles and a native-feeling training page */
body[data-view="home"] .gb-home-nav-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px!important}
body[data-view="home"] .gb-home-nav{position:relative;display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;min-height:108px;margin:0;padding:16px 14px;border-radius:20px;overflow:hidden;text-align:left;box-shadow:0 8px 24px rgba(0,0,0,.055)}
body[data-view="home"] .gb-home-nav-copy{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;flex:1}
body[data-view="home"] .gb-home-nav-copy strong{font-size:clamp(1.06rem,3.7vw,1.5rem);font-weight:750;letter-spacing:-.025em;line-height:1.12}
body[data-view="home"] .gb-home-nav-copy small{font-size:clamp(.66rem,2.25vw,.8rem);line-height:1.42;color:var(--muted);opacity:1;overflow-wrap:anywhere}
body[data-view="home"] .gb-home-nav-mark{display:grid;place-items:center;flex:none;width:39px;height:39px;border-radius:50%;font-size:1.35rem;border:1px solid currentColor;opacity:.75}
body[data-view="home"] .gb-home-stats{background:linear-gradient(120deg,rgba(98,117,203,.19),rgba(123,88,184,.08)),var(--surface);border-color:color-mix(in srgb,#8589ce 42%,var(--border));color:var(--text)}
body[data-view="home"] .gb-home-stats .gb-home-nav-mark{color:#9698db;background:rgba(126,127,212,.13)}
body[data-view="home"] .gb-home-dictionary{background:linear-gradient(120deg,rgba(55,155,130,.19),rgba(68,142,173,.07)),var(--surface);border-color:color-mix(in srgb,#57ac9d 42%,var(--border));color:var(--text)}
body[data-view="home"] .gb-home-dictionary .gb-home-nav-mark{color:#66b9aa;background:rgba(72,164,148,.13)}
#studyView.render-study-view{height:auto;min-height:0;display:block}
#studyView .gb-study-page-title{margin:8px 0 20px;font-size:clamp(1.5rem,5vw,1.95rem);line-height:1.2;font-weight:750;text-align:left}
#studyView .render-study-setup{width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
#studyView .study-count{border:1px solid color-mix(in srgb,var(--border) 85%,var(--blue) 15%);background:var(--surface-2);color:var(--muted);box-shadow:none;transition:background .18s ease,border-color .18s ease,color .18s ease}
#studyView .study-count.active{border:1.5px solid var(--blue);background:color-mix(in srgb,var(--blue) 15%,var(--surface));color:var(--text);box-shadow:0 0 0 1px color-mix(in srgb,var(--blue) 23%,transparent);font-weight:750}
#studyView .study-count:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
@media(max-width:390px){body[data-view="home"] .gb-home-nav{padding:13px 10px;min-height:110px}body[data-view="home"] .gb-home-nav-mark{width:31px;height:31px;font-size:1.08rem}body[data-view="home"] .gb-home-nav-grid{gap:9px!important}}


/* v1.8.14 — dashboard rhythm and flat, coherent tile borders */
body[data-view="home"] .home-dashboard{gap:14px!important}
body[data-view="home"] .gb-home-nav-grid{margin:10px 0 0!important;gap:12px!important}
body[data-view="home"] .gb-home-nav{
  border:1px solid color-mix(in srgb,var(--border) 65%,transparent)!important;
  box-shadow:none!important;
  min-height:108px;
}
body[data-view="home"] .gb-home-stats{border-color:rgba(130,134,205,.36)!important}
body[data-view="home"] .gb-home-dictionary{border-color:rgba(76,159,140,.36)!important}
body[data-view="home"] .gb-home-nav-copy{gap:8px}
body[data-view="home"] .gb-home-nav-copy small{line-height:1.4}
body[data-view="home"] .gb-home-grammar-section{margin:0!important;padding:0;border:0;background:transparent}
.gb-home-grammar-hero{
  display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;
  min-height:110px;padding:18px 21px;text-align:left;font:inherit;color:var(--text);
  border:1px solid color-mix(in srgb,#9887c8 43%,var(--border));border-radius:21px;
  background:linear-gradient(115deg,rgba(124,94,170,.20),rgba(81,111,172,.10) 80%),var(--surface);
  box-shadow:none;cursor:pointer;
}
.gb-home-grammar-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
.gb-home-grammar-copy strong{font-size:clamp(1.55rem,4.2vw,2.08rem);font-weight:750;line-height:1.1;letter-spacing:-.025em}
.gb-home-grammar-copy>span{font-size:.9rem;color:var(--muted)}
.gb-home-grammar-copy small{font-size:.72rem;color:var(--soft)}
.gb-home-grammar-mark{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:1px solid rgba(160,135,209,.34);background:rgba(142,116,194,.14);color:#b5a0e2;font-size:1.8rem}
/* Three dictionary counters stand on their own; the search/add/audit controls remain. */
.dictionary-view .gb-dictionary-tiles{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.dictionary-view .gb-dictionary-tiles .render-tile{box-shadow:none!important;border-width:1px!important}
.dictionary-view .dictionary-toolbar{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important}
.dictionary-view .dictionary-search-box,
.dictionary-view #bulkTextBtn,
.dictionary-view #masterAuditBtn{box-sizing:border-box;border:1px solid var(--border)!important;border-radius:15px!important}
#studyView .study-launch-head{padding-top:3px}
#studyView .study-launch-head h3{font-size:clamp(1.2rem,4.3vw,1.55rem);line-height:1.25}
@media(max-width:520px){
  body[data-view="home"] .gb-home-nav-grid{margin-top:12px!important}
  body[data-view="home"] .home-dashboard{gap:14px!important}
  body[data-view="home"] .gb-home-nav{padding:15px 12px}
  .gb-home-grammar-hero{padding:17px 16px}
  .gb-home-grammar-mark{width:52px;height:52px}
}


/* v1.8.14 — native card-sets page; no modal/backdrop or nested scroll. */
#setsDialog.gb-sets-page,#setsDialog.gb-sets-page.hidden{box-sizing:border-box}
#setsDialog.gb-sets-page.hidden{display:none!important}
#setsDialog.gb-sets-page:not(.hidden){display:block;position:static;inset:auto;margin:0;padding:14px 0 28px;width:100%;max-width:none;max-height:none;overflow:visible;border:0;border-radius:0;box-shadow:none;background:transparent;color:var(--text)}
#setsDialog.gb-sets-page .gb-sets-head{position:static;display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:5px 0 13px;background:transparent;border-bottom:1px solid var(--border)}
#setsDialog.gb-sets-page .gb-sets-heading{flex:1;min-width:0;display:grid;gap:3px}
#setsDialog.gb-sets-page .gb-sets-heading h2{margin:0;font-size:clamp(1.18rem,4.7vw,1.6rem)}
#setsDialog.gb-sets-page .gb-sets-heading small{color:var(--muted);font-size:.81rem}
#setsDialog.gb-sets-page .gb-sets-back,#setsDialog.gb-sets-page .gb-sets-add{flex:none;display:grid;place-items:center;width:43px;height:43px;min-width:43px;min-height:43px;padding:0;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);color:var(--text);font-size:1.45rem;box-shadow:none}
#setsDialog.gb-sets-page .gb-sets-add{background:rgba(65,166,133,.15);border-color:rgba(65,166,133,.33);color:var(--text)}
#setsDialog.gb-sets-page .sets-manager-toolbar{display:block;margin:0 0 13px}
#setsDialog.gb-sets-page #setsSearch{display:block;box-sizing:border-box;width:100%;margin:0;padding:14px 16px;min-height:49px;border-radius:16px;background:var(--surface-2);border:1px solid var(--border);color:var(--text)}
#setsDialog.gb-sets-page #setsSearch.hidden{display:none!important}
#setsDialog.gb-sets-page .gb-sets-quick-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 23px}
#setsDialog.gb-sets-page .gb-sets-action{min-width:0;min-height:84px;padding:11px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;border-radius:16px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);box-shadow:none;font-size:.78rem;line-height:1.25}
#setsDialog.gb-sets-page .gb-sets-action strong{font-size:.79rem;font-weight:650;overflow-wrap:anywhere}
#setsDialog.gb-sets-page .gb-sets-action-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:rgba(64,157,147,.13);color:#4ba99c;font-size:1.25rem}
#setsDialog.gb-sets-page .gb-sets-action.selected{border-color:rgba(65,166,133,.52);background:rgba(65,166,133,.13)}
#setsDialog.gb-sets-page .sets-section-title{font-size:1.06rem;margin:0 0 12px}
#setsDialog.gb-sets-page .sets-list{display:grid;gap:10px}
#setsDialog.gb-sets-page .set-card{border:1px solid var(--border);background:var(--surface-2);border-radius:17px;padding:12px}
#setsDialog.gb-sets-page .set-card-icon{color:#54aebd;background:rgba(72,162,190,.12)}
#setsDialog.gb-sets-page .set-card-actions button,#setsDialog.gb-sets-page #setsLinkOpen,#setsDialog.gb-sets-page #setsImportBtn{background:var(--surface-2);border:1px solid var(--border);color:var(--text);box-shadow:none}
#setsDialog.gb-sets-page .gb-sets-receive{border:1px solid var(--border);border-radius:18px;background:var(--surface-2);padding:17px 14px;margin:0 0 16px}
#setsDialog.gb-sets-page .gb-sets-receive h3{margin:0 0 8px}
#setsDialog.gb-sets-page .gb-sets-receive p{color:var(--muted);font-size:.9rem}
#setsDialog.gb-sets-page .gb-sets-file-button{width:100%;margin-top:13px;padding:13px}
#setsDialog.gb-sets-page .gb-shared-tabs.hidden{display:none!important}
#setsDialog.gb-sets-page #setsLibrarySearch{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}
#setsDialog.gb-sets-page #setsLibraryList .set-card>button[data-shared-view]{background:rgba(65,166,133,.12);color:var(--text);border:1px solid rgba(65,166,133,.35)}
#setsDialog.gb-sets-page button:focus-visible{outline:2px solid #61aa9c;outline-offset:2px}
@media(max-width:380px){#setsDialog.gb-sets-page .gb-sets-action strong{font-size:.7rem}#setsDialog.gb-sets-page .gb-sets-quick-actions{gap:5px}}

/* v1.8.14 — balanced light-theme home palette and sets navigation repair. */
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-stats{
 background:linear-gradient(120deg,#e5e9fa,#f0edfa 95%)!important;
 border-color:#bfc8e7!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-dictionary{
 background:linear-gradient(120deg,#ddf1ec,#e8f4f4 95%)!important;
 border-color:#add9ce!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-sets-hero{
 background:linear-gradient(115deg,#d5edec,#e3eafa 95%)!important;
 border-color:#a5d4d0!important;
 box-shadow:none!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-sets-mark{
 background:#c3e4df!important;border-color:#93c9c2!important;color:#348b82!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-grammar-hero{
 background:linear-gradient(115deg,#e7e1f5,#e9eef9 95%)!important;
 border-color:#c9bde5!important;
}
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .gb-sets-action{
 background:#eaf2f6!important;color:#263844!important;border-color:#d0dfe7!important;
}
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .gb-sets-action.selected{
 background:#d9f0e9!important;border-color:#9ecfc0!important;
}
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .set-card,
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .gb-sets-receive{
 background:#edf5f8!important;border-color:#d5e5eb!important;
}
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .gb-sets-back,
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .gb-sets-add{
 background:#e8f3f5!important;color:#243744!important;border-color:#d0e1e7!important;
}


/* v1.8.14 — cohesive pastel home tiles, fine tone-on-tone outlines and corner arc.
   Light theme only; the Swiss hero and dark theme retain their existing treatment. */
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-stats{
  background:linear-gradient(120deg,#e7eafa,#f0effc 95%)!important;
  border:1px solid #c8c9e9!important;box-shadow:none!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-dictionary{
  background:linear-gradient(120deg,#dff2ed,#e9f6f3 95%)!important;
  border:1px solid #b3dbd0!important;box-shadow:none!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-sets-hero,
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-grammar-hero{
  position:relative;isolation:isolate;overflow:hidden;
  border-width:1px!important;border-style:solid!important;box-shadow:none!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-sets-hero{
  background:linear-gradient(115deg,#def1f1,#e8effc 95%)!important;
  border-color:#acd6d4!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-grammar-hero{
  background:linear-gradient(115deg,#eae5f8,#edf0fc 95%)!important;
  border-color:#d0c5e9!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-sets-hero::before,
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-grammar-hero::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  width:76%;aspect-ratio:1;right:-31%;top:-34%;border-radius:50%;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-sets-hero::before{
  background:rgba(83,177,166,.12);
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-grammar-hero::before{
  background:rgba(149,119,202,.11);
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-sets-hero > *,
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-grammar-hero > *{position:relative;z-index:1}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-sets-mark{
  background:#d2ebe6!important;border-color:#9acbc2!important;color:#348b82!important;
}
html:not([data-theme="dark"]) body[data-view="home"] .gb-home-grammar-mark{
  background:#e3def4!important;border-color:#c3b6e4!important;color:#9880c8!important;
}
/* Remove inherited dark solid-button skins in the sets page and its subpanels. */
html:not([data-theme="dark"]) #setsDialog.gb-sets-page button:not(.hidden),
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .gb-sets-file-button{
  color:#263844;
}
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .gb-sets-action:not(.selected),
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .set-card-actions button,
html:not([data-theme="dark"]) #setsDialog.gb-sets-page #setsLinkOpen,
html:not([data-theme="dark"]) #setsDialog.gb-sets-page #setsImportBtn,
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .gb-sets-file-button{
  background:#eaf2f6!important;border:1px solid #d0dfe7!important;box-shadow:none!important;
}

/* v1.8.14 — compact set training chooser; safe area, consistent light/dark surfaces */
#setTrainingDialog{display:none}
#setTrainingDialog[open]{display:block}
#setTrainingDialog.gb-set-training-dialog{
  box-sizing:border-box;width:min(480px,calc(100vw - 24px));max-width:calc(100vw - 24px);
  max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 28px);
  overflow-y:auto;overscroll-behavior:contain;margin:auto;padding:18px;
  border:1px solid var(--border);border-radius:24px;background:var(--surface);color:var(--text);
  box-shadow:0 24px 70px rgba(0,0,0,.28);
}
#setTrainingDialog.gb-set-training-dialog::backdrop{background:rgba(7,18,27,.55);backdrop-filter:blur(4px)}
#setTrainingDialog .gb-set-training-top{display:flex;align-items:center;gap:10px;margin:0 0 24px;color:var(--muted);font-size:.85rem;font-weight:650}
#setTrainingDialog .gb-set-training-top>span{flex:1;text-align:center}
#setTrainingDialog .gb-set-training-nav{display:grid;place-items:center;flex:none;width:43px;height:43px;min-height:43px;padding:0;border:1px solid var(--border);border-radius:13px;background:var(--surface-2);color:var(--text);box-shadow:none;font-size:1.35rem}
#setTrainingDialog .gb-set-training-heading{padding:0 2px 7px}
#setTrainingDialog .gb-set-training-kicker{font-size:.71rem;letter-spacing:.14em;font-weight:800;color:var(--green)}
#setTrainingDialog #setTrainingTitle{margin:9px 0 6px;font-size:clamp(1.35rem,5vw,1.75rem);line-height:1.18;overflow-wrap:anywhere}
#setTrainingDialog #setTrainingInfo{margin:0;color:var(--muted);font-size:.88rem;opacity:1}
#setTrainingDialog .gb-set-training-choices{display:grid;gap:11px;margin-top:18px}
#setTrainingDialog .gb-set-training-choice{display:flex;flex-direction:row;align-items:center;gap:13px;box-sizing:border-box;width:100%;min-height:90px;padding:15px 13px;border:1px solid var(--border);border-radius:18px;text-align:left;color:var(--text);box-shadow:none;transform:none}
#setTrainingDialog .gb-set-training-choice-quick{background:color-mix(in srgb,var(--green) 10%,var(--surface));border-color:color-mix(in srgb,var(--green) 32%,var(--border))}
#setTrainingDialog .gb-set-training-choice-full{background:color-mix(in srgb,#4b9db7 10%,var(--surface));border-color:color-mix(in srgb,#4b9db7 32%,var(--border))}
#setTrainingDialog .gb-set-training-choice-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:14px;background:color-mix(in srgb,var(--green) 15%,var(--surface));color:var(--green);font-size:1.5rem}
#setTrainingDialog .gb-set-training-choice-full .gb-set-training-choice-icon{background:color-mix(in srgb,#4b9db7 16%,var(--surface));color:#4b9db7}
#setTrainingDialog .gb-set-training-choice-copy{display:grid;gap:5px;flex:1;min-width:0}
#setTrainingDialog .gb-set-training-choice-copy strong{font-size:1rem;line-height:1.25;color:var(--text)}
#setTrainingDialog .gb-set-training-choice-copy small{font-size:.8rem;line-height:1.4;color:var(--muted);opacity:1}
#setTrainingDialog .gb-set-training-chevron{font-size:1.65rem;color:var(--muted)}
@media(max-width:380px){#setTrainingDialog.gb-set-training-dialog{padding:14px}#setTrainingDialog .gb-set-training-choice{gap:9px;padding:12px 10px}}

/* v1.8.17 — compact five-action icon toolbar for card sets. */
#setsDialog.gb-sets-page .set-card-actions.set-icon-actions{
 grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
 gap:5px;margin-top:12px;padding:13px 0 1px;border-top:1px solid var(--border);
 min-width:0;
}
#setsDialog.gb-sets-page .set-card-actions.set-icon-actions.hidden{display:none!important}
#setsDialog.gb-sets-page .set-icon-actions .set-icon-action{
 min-width:0;width:100%;min-height:69px;padding:7px 1px 5px;display:flex;
 flex-direction:column;align-items:center;justify-content:center;gap:6px;
 background:transparent!important;border:0!important;box-shadow:none!important;
 color:#6bc1b5;border-radius:13px;cursor:pointer;
 -webkit-tap-highlight-color:transparent;touch-action:manipulation;
 transition:background .17s ease,transform .17s ease;
}
#setsDialog.gb-sets-page .set-icon-actions .set-icon-action svg{
 box-sizing:content-box;width:21px;height:21px;padding:10px;
 border:1px solid rgba(83,184,168,.47);border-radius:50%;
 background:rgba(68,170,151,.09);transition:background .17s ease,border-color .17s ease;
}
#setsDialog.gb-sets-page .set-icon-actions .set-icon-action span{
 display:block;max-width:100%;font-size:clamp(.59rem,2.5vw,.73rem);
 line-height:1.2;font-weight:550;white-space:nowrap;letter-spacing:-.02em;
}
#setsDialog.gb-sets-page .set-icon-actions .set-icon-action:active{transform:scale(.92);background:rgba(66,174,154,.12)!important}
#setsDialog.gb-sets-page .set-icon-actions .set-icon-action:active svg,
#setsDialog.gb-sets-page .set-icon-actions .set-icon-action:focus-visible svg{background:rgba(66,174,154,.22);border-color:currentColor}
#setsDialog.gb-sets-page .set-icon-actions .set-delete-action{color:#db787d!important}
#setsDialog.gb-sets-page .set-icon-actions .set-delete-action svg{border-color:rgba(219,120,125,.43);background:rgba(219,120,125,.07)}
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .set-icon-actions .set-icon-action{color:#328f83!important;background:transparent!important;border:0!important}
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .set-icon-actions .set-icon-action svg{background:#e8f5f2;border-color:#a3d5ca}
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .set-icon-actions .set-delete-action{color:#c35b63!important}
html:not([data-theme="dark"]) #setsDialog.gb-sets-page .set-icon-actions .set-delete-action svg{background:#fff0f0;border-color:#e5adb1}
@media(max-width:360px){#setsDialog.gb-sets-page .set-icon-actions .set-icon-action svg{padding:7px}#setsDialog.gb-sets-page .set-icon-actions .set-icon-action span{font-size:.56rem}}
@media(prefers-reduced-motion:reduce){#setsDialog.gb-sets-page .set-icon-actions .set-icon-action,#setsDialog.gb-sets-page .set-icon-actions .set-icon-action svg{transition:none}}

/* v1.8.17 — compact, animated dictionary/deck training source */
.gb-study-source{--source-accent:#6ac3aa;position:relative;isolation:isolate;overflow:hidden;display:grid;gap:13px;margin:16px 0 18px;padding:17px;border:1px solid rgba(99,184,165,.30);border-radius:21px;background:linear-gradient(130deg,rgba(69,167,143,.12),rgba(78,141,170,.065)),var(--surface,#192934);transition:border-color .32s,background-color .32s,box-shadow .32s}
.gb-study-source[data-source="set"]{--source-accent:#75b8dd;border-color:rgba(105,172,213,.46);box-shadow:inset 0 0 0 1px rgba(105,172,213,.07)}
.gb-study-source-heading{display:flex;align-items:center;gap:11px;text-align:left}
.gb-study-source-heading>div{display:grid;gap:2px}
.gb-study-source-heading strong{font-size:1.04rem;letter-spacing:-.015em}
.gb-study-source-heading small{font-size:.76rem;color:var(--muted)}
.gb-study-source-spark{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:rgba(96,185,161,.15);color:var(--source-accent);font-size:1.1rem;transition:color .32s,background .32s}
.gb-study-source-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0;min-width:0;padding:4px;border-radius:16px;background:rgba(104,142,153,.11);border:1px solid rgba(119,159,165,.19)}
.gb-study-source-glider{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/2);border-radius:12px;background:linear-gradient(115deg,rgba(84,176,151,.26),rgba(81,171,153,.15));border:1px solid rgba(99,196,170,.45);box-shadow:0 3px 13px rgba(17,45,48,.12);transition:transform .42s cubic-bezier(.22,1,.36,1),background .3s,border-color .3s;pointer-events:none;overflow:hidden}
.gb-study-source-glider::after{content:"";position:absolute;inset:0;transform:translateX(-135%);background:linear-gradient(100deg,transparent,rgba(255,255,255,.16),transparent)}
.gb-study-source[data-source="set"] .gb-study-source-glider{transform:translateX(100%);background:linear-gradient(115deg,rgba(76,158,199,.27),rgba(94,152,209,.14));border-color:rgba(115,184,226,.50)}
.gb-study-source[data-source="set"] .gb-study-source-glider::after,.gb-study-source[data-source="dictionary"] .gb-study-source-glider::after{animation:gb-source-glint .52s ease-out}
@keyframes gb-source-glint{from{transform:translateX(-135%)}to{transform:translateX(135%)}}
.gb-study-source-option{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:49px;padding:8px 5px!important;border:0!important;border-radius:12px!important;background:transparent!important;color:var(--muted)!important;font-size:clamp(.79rem,3.25vw,.99rem)!important;font-weight:650!important;line-height:1.2;box-shadow:none!important;transition:color .25s,transform .2s}
.gb-study-source-option.is-active{color:var(--text,#e8f2f4)!important}
.gb-study-source-option:active{transform:scale(.965)}
.gb-study-source-detail{display:flex;align-items:center;gap:9px;min-width:0;font-size:.83rem;color:var(--muted);animation:gb-source-reveal .32s ease both}
.gb-study-source-detail.hidden{display:none!important}
.gb-study-source-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#69bfa7;box-shadow:0 0 0 4px rgba(105,191,167,.11)}
.gb-study-source-set-detail{display:grid;gap:8px}
.gb-study-source-set-detail label{font-size:.84rem;font-weight:650;color:var(--text,inherit)}
.gb-study-source-set-detail select{width:100%;max-width:100%;min-width:0;min-height:48px;padding:10px 12px;border-radius:12px;border:1px solid rgba(112,180,208,.45);background:var(--surface,#1a2c37);color:inherit;font:inherit;font-size:16px}
.gb-study-source-set-detail small{font-size:.76rem;line-height:1.4;color:var(--muted)}
@keyframes gb-source-reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
html:not([data-theme="dark"]) .gb-study-source{background:linear-gradient(125deg,#e7f5f0,#edf7f8);border-color:#b2d9ce}
html:not([data-theme="dark"]) .gb-study-source[data-source="set"]{background:linear-gradient(125deg,#e7f3f9,#edf1fb);border-color:#a8d0e4}
html:not([data-theme="dark"]) .gb-study-source-switch{background:rgba(80,130,146,.085);border-color:rgba(89,149,155,.20)}
html:not([data-theme="dark"]) .gb-study-source-option.is-active{color:#23483e!important}
html:not([data-theme="dark"]) .gb-study-source[data-source="set"] .gb-study-source-option.is-active{color:#234d6b!important}
html:not([data-theme="dark"]) .gb-study-source-set-detail select{background:#fff;color:#263842}
@media(prefers-reduced-motion:reduce){.gb-study-source-glider,.gb-study-source-option,.gb-study-source,.gb-study-source-spark{transition:none!important}.gb-study-source-glider::after,.gb-study-source-detail{animation:none!important}}

/* v1.8.17 — full-surface training source morph; no segmented buttons */
.gb-study-source.gb-source-full{--gb-source-tint:rgba(65,170,143,.18);--gb-source-line:rgba(92,188,164,.44);position:relative;display:block;isolation:isolate;overflow:hidden;padding:0!important;margin:16px 0 18px;border:1px solid var(--gb-source-line)!important;border-radius:21px;background:linear-gradient(120deg,rgba(65,157,130,.17),rgba(43,122,145,.10)),var(--surface,#192934)!important;box-shadow:none;transition:border-color .5s,background-color .5s}
.gb-source-full[data-source="set"]{--gb-source-tint:rgba(73,145,198,.22);--gb-source-line:rgba(109,172,215,.52);background:linear-gradient(120deg,rgba(58,135,184,.19),rgba(80,121,182,.13)),var(--surface,#192934)!important}
.gb-source-full::before{content:"";position:absolute;inset:-2px;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 12%,rgba(132,220,195,.13) 48%,transparent 85%);transform:translateX(-115%);transition:transform .7s cubic-bezier(.2,.75,.25,1)}
.gb-source-full[data-source="set"]::before{transform:translateX(115%)}
.gb-source-caption{position:relative;z-index:1;padding:15px 18px 0;color:var(--muted);font-size:.83rem;font-weight:700;letter-spacing:.035em}
.gb-source-stage{position:relative;min-height:120px;overflow:hidden}
.gb-source-face{display:flex;align-items:center;gap:16px;width:100%;min-height:120px;text-align:left;padding:16px 18px 20px!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--text)!important;box-shadow:none!important;cursor:pointer;transition:opacity .38s,transform .52s cubic-bezier(.2,.8,.2,1),visibility .38s}
.gb-source-face-icon{flex:none;display:grid;place-items:center;width:51px;height:51px;border-radius:16px;background:rgba(83,184,157,.13);border:1px solid rgba(101,190,164,.32);color:#78cbb0;font-size:1.45rem;transition:background .45s,color .45s}
.gb-source-set .gb-source-face-icon{background:rgba(95,160,207,.15);border-color:rgba(107,175,215,.38);color:#8ec4e8}
.gb-source-face-copy{display:grid;gap:4px;min-width:0;flex:1}
.gb-source-face-copy strong{font-size:1.18rem;letter-spacing:-.02em}
.gb-source-face-copy small{font-size:.85rem;color:var(--muted);line-height:1.4}
.gb-source-face-next{font-size:.79rem;color:#78cbb0;margin-top:8px;font-weight:650}
.gb-source-set .gb-source-face-next{color:#8ec4e8}
.gb-source-face:active{filter:brightness(1.12)}
.gb-source-face:not(.is-active){position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(22%)}
.gb-source-full[data-source="set"] .gb-source-dictionary:not(.is-active){transform:translateX(-22%)}
.gb-source-face.is-active{position:relative;opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0)}
.gb-source-full .gb-study-source-set-detail{position:relative;z-index:1;margin:0 17px 17px;padding:14px;border:1px solid rgba(110,176,213,.24);border-radius:14px;background:rgba(73,140,182,.075);animation:gb-source-reveal .35s ease both}
.gb-source-full .gb-study-source-set-detail.hidden{display:none!important}
html:not([data-theme="dark"]) .gb-study-source.gb-source-full{background:linear-gradient(120deg,#e3f4ed,#e9f7f3)!important;--gb-source-line:#a5d5c4}
html:not([data-theme="dark"]) .gb-study-source.gb-source-full[data-source="set"]{background:linear-gradient(120deg,#e0f1f9,#eaf1fc)!important;--gb-source-line:#a8cce4}
html:not([data-theme="dark"]) .gb-source-dictionary .gb-source-face-next{color:#267b68}
html:not([data-theme="dark"]) .gb-source-set .gb-source-face-next{color:#397da8}
html:not([data-theme="dark"]) .gb-source-face-icon{color:#398f78}
html:not([data-theme="dark"]) .gb-source-set .gb-source-face-icon{color:#4b91bd}
@media(prefers-reduced-motion:reduce){.gb-source-full::before,.gb-source-face,.gb-source-face-icon{transition:none!important}.gb-source-full .gb-study-source-set-detail{animation:none!important}}

/* v1.8.43 — single-layer source selector, larger tappable/swipeable labels */
.gb-source-full .gb-source-stage{min-height:112px}
.gb-source-full .gb-source-face{min-height:112px;padding:14px 18px 15px!important;touch-action:pan-y}
.gb-source-full .gb-source-face-copy{gap:11px}
.gb-source-full .gb-source-face-copy strong{font-size:clamp(1.29rem,4.8vw,1.55rem);line-height:1.18}
.gb-source-full .gb-source-face-next{display:inline-flex;align-items:center;justify-self:start;gap:7px;margin-top:0;padding:5px 11px;border:1px solid currentColor;border-radius:999px;font-size:clamp(.94rem,3.7vw,1.08rem);font-weight:700;line-height:1.4;background:rgba(91,181,156,.085)}
.gb-source-full .gb-source-set .gb-source-face-next{background:rgba(95,160,207,.09)}
.gb-source-full .gb-study-source-set-detail{display:grid;gap:8px;margin:0!important;padding:0 18px 18px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.gb-source-full .gb-study-source-set-detail label{font-size:.93rem;font-weight:650}
.gb-source-full .gb-study-source-set-detail select{min-height:52px;border-radius:13px}
@media(max-width:390px){.gb-source-full .gb-source-face{gap:12px;padding-left:14px!important;padding-right:14px!important}.gb-source-full .gb-source-face-icon{width:43px;height:43px}.gb-source-full .gb-study-source-set-detail{padding-left:14px!important;padding-right:14px!important}}

/* v1.8.43 — a short, accessible celebration for real learning progress */
.study-finish .study-finish-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 10px;border-radius:50%;background:color-mix(in srgb,var(--green) 16%,var(--surface));color:var(--green);font-size:1.55rem;animation:gb-finish-check .65s cubic-bezier(.16,1.3,.36,1) both}
.study-finish-cheer{font-size:.82rem;font-weight:800;letter-spacing:.055em;color:var(--green);margin-bottom:5px;animation:gb-finish-enter .55s .12s both}
.study-finish-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
.study-finish-grid>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;padding:10px 5px}
.study-finish-grid strong{font-size:clamp(1.35rem,5vw,1.7rem);line-height:1.15;font-variant-numeric:tabular-nums}
.study-finish-grid span{font-size:.78rem;color:var(--muted);line-height:1.25}
.study-achievement{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding:23px 15px 20px;border:1px solid color-mix(in srgb,var(--green) 56%,var(--line));background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--green) 23%,transparent),transparent 75%),color-mix(in srgb,var(--green) 11%,var(--surface));box-shadow:0 12px 36px color-mix(in srgb,var(--green) 12%,transparent);animation:gb-achievement-in .7s cubic-bezier(.2,1.15,.3,1) both}
.study-achievement-emblem{font-size:2.15rem;line-height:1.2;color:var(--green);text-shadow:0 0 22px color-mix(in srgb,var(--green) 65%,transparent);animation:gb-achievement-emblem .85s .12s both}
.study-achievement .study-promoted-kicker{margin:8px 0 7px;letter-spacing:.12em}
.study-achievement .study-promoted-title{font-size:clamp(1.25rem,5vw,1.65rem);line-height:1.2;margin-bottom:8px}
.study-achievement-count{font-size:1.12rem;font-weight:850;color:var(--green);margin-bottom:15px}
.study-achievement .study-promoted-list{justify-content:center;gap:8px}
.study-achievement .study-promoted-list span{font-size:clamp(1.12rem,5vw,1.45rem);padding:9px 15px;border-color:color-mix(in srgb,var(--green) 43%,var(--line));background:color-mix(in srgb,var(--green) 15%,var(--surface));animation:gb-achievement-word .6s .3s both}
.study-achievement .study-promoted-note{margin-top:15px}
.study-achievement-message{margin:14px auto 0;max-width:320px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--green) 22%,var(--line));font-size:.86rem;line-height:1.45;color:var(--muted)}
.study-achievement-sparks{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.study-achievement-sparks i{position:absolute;top:37%;left:50%;width:5px;height:9px;border-radius:3px;background:var(--green);opacity:0;--angle:calc(var(--spark) * 30deg);animation:gb-achievement-spark 1.3s .15s ease-out both}
.study-achievement-sparks i:nth-child(3n){background:#dfb96b;width:4px;height:4px}
.study-achievement-sparks i:nth-child(4n){background:var(--cyan)}
@keyframes gb-finish-check{from{opacity:0;transform:scale(.5) rotate(-20deg)}65%{transform:scale(1.14) rotate(4deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes gb-finish-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes gb-achievement-in{from{opacity:0;transform:translateY(17px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes gb-achievement-emblem{from{opacity:0;transform:scale(.35) rotate(-45deg)}70%{transform:scale(1.2) rotate(8deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes gb-achievement-word{from{opacity:0;transform:translateY(10px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes gb-achievement-spark{0%{opacity:0;transform:rotate(var(--angle)) translateY(0) scale(.6)}18%{opacity:1}75%{opacity:.85}100%{opacity:0;transform:rotate(var(--angle)) translateY(-120px) scale(.2)}}
@media(prefers-reduced-motion:reduce){.study-finish .study-finish-icon,.study-finish-cheer,.study-achievement,.study-achievement-emblem,.study-achievement .study-promoted-list span,.study-achievement-sparks i{animation:none!important}.study-achievement-sparks{display:none}}

/* v1.8.43: learning history / word mastery */
.gb-learning-panel{display:grid;gap:12px;margin-bottom:14px}
.gb-learning-periods{display:flex;gap:6px;overflow-x:auto;padding:3px 0 6px;scrollbar-width:none}
.gb-learning-periods button{flex:0 0 auto;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--muted);padding:9px 12px;font:inherit;font-size:.8rem}
.gb-learning-periods button.active{border-color:#68bca1;background:color-mix(in srgb,#68bca1 17%,var(--panel));color:var(--text);font-weight:700}
.gb-learning-summary{display:flex;align-items:center;gap:14px;padding:19px;border:1px solid color-mix(in srgb,#68bca1 55%,var(--border));border-radius:20px;background:color-mix(in srgb,#68bca1 10%,var(--panel))}
.gb-learning-summary strong{font-size:2.5rem;line-height:1;color:#68bca1}
.gb-learning-summary span{font-size:.88rem;color:var(--text)}
.gb-learning-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.gb-learning-stages>div{display:grid;gap:5px;min-width:0;padding:12px 7px;border-radius:14px;background:var(--panel);border:1px solid var(--border);text-align:center}
.gb-learning-stages b{font-size:1.35rem;color:var(--text)}
.gb-learning-stages span{font-size:.68rem;line-height:1.3;color:var(--muted)}
.gb-learning-details{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:13px 14px}
.gb-learning-details summary{cursor:pointer;font-weight:650;color:var(--text)}
.gb-learning-details p,.gb-learning-note{color:var(--muted);font-size:.77rem;line-height:1.55}
.gb-learning-wordlist{display:grid;gap:0;margin-top:10px;max-height:390px;overflow-y:auto}
.gb-learning-wordlist>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:10px 0;border-top:1px solid var(--border)}
.gb-learning-wordlist b{grid-column:1;color:var(--text);overflow-wrap:anywhere}
.gb-learning-wordlist span{grid-column:1;color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}
.gb-learning-wordlist small{grid-column:2;grid-row:1/3;color:var(--muted);font-size:.7rem;align-self:center}

/* v1.8.43 — user-confirmed translation variants */
.study-accept-translation{display:block;width:100%;margin:12px 0 8px;padding:12px 14px;border:1px solid #60b99b;border-radius:12px;background:rgba(81,177,143,.13);color:var(--text,#e8f2f4);font-weight:650;cursor:pointer;touch-action:manipulation}
.study-accept-translation:disabled{opacity:.75;cursor:default}

/* v1.8.43 — settings page and accessible language/Swiss preferences */
.gb-settings-header{font-size:24px!important;min-width:38px;min-height:38px;display:inline-flex!important;align-items:center;justify-content:center;cursor:pointer}
.gb-settings-view{max-width:780px;margin:0 auto;padding-bottom:32px}
.gb-settings-view h1{margin:12px 0 22px;font-size:clamp(25px,5vw,32px)}
.gb-settings-card{background:var(--panel,#fff);border:1px solid var(--line,rgba(130,155,160,.25));border-radius:19px;padding:20px;margin-bottom:14px;box-shadow:0 4px 22px rgba(0,0,0,.035)}
.gb-settings-card h2{font-size:18px;margin:0 0 6px}
.gb-settings-card p{font-size:13px;line-height:1.5;color:var(--muted,#82909a);margin:0 0 18px}
.gb-language-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gb-language-choice{border-radius:13px;border:1px solid var(--line,rgba(130,155,160,.25));background:transparent;color:inherit;min-height:54px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:650;cursor:pointer}
.gb-language-choice span{font-size:11px;opacity:.7}
.gb-language-choice.active{border-color:#52ac94;background:rgba(82,172,148,.13);box-shadow:inset 0 0 0 1px rgba(82,172,148,.3)}
.gb-settings-switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.gb-settings-switch-row p{margin-bottom:0}
.gb-settings-ch-toggle{display:flex!important;position:relative!important;flex-shrink:0;align-items:center;gap:8px}
.gb-settings-view .gb-page-back{margin:0 0 6px}
@media(max-width:520px){.gb-settings-card{padding:17px}.gb-settings-view{padding-bottom:90px}}

/* Keep the settings entry visible in the compact header on all screen sizes. */
.header-actions.compact-actions .gb-settings-header.ghost{display:inline-flex!important;background:var(--surface-2);border-radius:50%;padding:0;width:38px;height:38px;color:var(--text)}

/* v1.8.43: settings use the same themed surface as the rest of GermanBook.
   --panel was never defined in this theme, so the previous fallback forced white in dark mode. */
.gb-settings-view .gb-settings-card{background:var(--surface)!important;color:var(--text)!important;border:1px solid var(--line-strong)!important;box-shadow:var(--shadow-soft)}
.gb-settings-view .gb-settings-card h2{color:var(--text)!important}
.gb-settings-view .gb-settings-card p{color:var(--muted)!important}
.gb-settings-view .gb-language-choice{background:var(--surface-2);color:var(--text)!important;border-color:var(--line-strong)}
.gb-settings-view .gb-language-choice.active{background:color-mix(in srgb,var(--surface) 82%,#52ac94 18%);color:var(--text)!important;border-color:#52ac94}
.gb-settings-view .gb-language-choice span{color:var(--muted);opacity:1}
.gb-settings-view .gb-page-back{color:var(--muted)}

/* v1.8.43 — one immersive, animated language card instead of two buttons. */
.gb-language-stage{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(83,174,145,.4);border-radius:22px;padding:20px 20px 17px;background:linear-gradient(130deg,rgba(68,158,129,.17),rgba(70,143,168,.08) 65%,rgba(76,155,177,.11));transition:background .5s,border-color .45s,box-shadow .45s;box-shadow:inset 0 1px rgba(255,255,255,.07)}
.gb-language-stage[data-language=de]{border-color:rgba(100,157,219,.48);background:linear-gradient(130deg,rgba(69,133,198,.2),rgba(87,143,195,.07) 62%,rgba(95,121,211,.13))}
.gb-language-glow{pointer-events:none;position:absolute;z-index:-1;width:220px;height:220px;border-radius:50%;right:-90px;top:-110px;background:radial-gradient(circle,rgba(75,186,150,.2),transparent 72%);transition:transform .65s,background .65s}
.gb-language-stage[data-language=de] .gb-language-glow{transform:translate(-80px,45px);background:radial-gradient(circle,rgba(93,161,228,.25),transparent 72%)}
.gb-language-stage-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.gb-language-stage-eyebrow{font-size:11px;letter-spacing:.14em;font-weight:800;color:var(--muted)}
.gb-language-stage-code{border-radius:9px;padding:5px 9px;border:1px solid rgba(86,177,145,.35);color:#53b795;font-size:12px;font-weight:800;letter-spacing:.08em;transition:color .4s,border-color .4s}
.gb-language-stage[data-language=de] .gb-language-stage-code{color:#79aee8;border-color:rgba(104,163,228,.45)}
.gb-language-stage-name{font-size:clamp(26px,6vw,36px);font-weight:800;letter-spacing:-.035em;margin:11px 0 3px;color:var(--text);transition:opacity .2s}
.gb-language-stage-caption{color:var(--muted);font-size:13px;line-height:1.5;min-height:20px;margin-bottom:18px}
.gb-language-slider{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;width:100%;height:58px;padding:5px;border-radius:17px;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--muted);cursor:pointer;touch-action:pan-y;overflow:hidden;-webkit-tap-highlight-color:transparent}
.gb-language-slider-glider{position:absolute;z-index:0;left:5px;top:5px;bottom:5px;width:calc(50% - 5px);border-radius:12px;background:linear-gradient(125deg,#367e6b,#55ae91);box-shadow:0 3px 13px rgba(40,119,96,.27);transition:transform .46s cubic-bezier(.22,1,.36,1),background .45s,box-shadow .45s}
.gb-language-stage[data-language=de] .gb-language-slider-glider{transform:translateX(100%);background:linear-gradient(125deg,#477eb4,#6b9dd0);box-shadow:0 3px 13px rgba(59,114,180,.3)}
.gb-language-slider-side{z-index:1;font-size:15px;font-weight:800;letter-spacing:.08em;transition:color .3s}.gb-language-stage[data-language=ru] .gb-language-slider-ru,.gb-language-stage[data-language=de] .gb-language-slider-de{color:white}
.gb-language-stage-hint{margin-top:13px;color:var(--muted);font-size:12px;text-align:center;line-height:1.45}
.gb-language-slider:focus-visible{outline:2px solid #55ae91;outline-offset:4px}
@media(max-width:520px){.gb-language-stage{padding:17px}.gb-language-slider{height:55px}}
@media(prefers-reduced-motion:reduce){.gb-language-stage,.gb-language-glow,.gb-language-slider-glider,.gb-language-stage-code{transition:none!important}}

/* v1.8.43: single minimal flip card; no nested settings panel. */
.gb-settings-view .gb-language-flip-wrap{margin:0 0 22px;perspective:1100px;isolation:isolate}
.gb-settings-view .gb-language-flip{display:block;width:100%;height:180px;padding:0;border:0;border-radius:23px;background:transparent;cursor:pointer;text-align:left;color:inherit;touch-action:pan-y;-webkit-tap-highlight-color:transparent}
.gb-language-flip-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .72s cubic-bezier(.2,.75,.2,1)}
.gb-language-flip-wrap[data-language=de] .gb-language-flip-inner{transform:rotateY(180deg)}
.gb-language-face{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;padding:21px 24px;border-radius:23px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid rgba(91,175,145,.48);background:linear-gradient(125deg,color-mix(in srgb,var(--surface) 85%,#2e9e7b 15%),color-mix(in srgb,var(--surface) 96%,#2e9e7b 4%));box-shadow:0 9px 26px rgba(0,0,0,.06);color:var(--text)}
.gb-language-face::after{content:"";position:absolute;width:190px;height:190px;right:-95px;bottom:-135px;border-radius:50%;border:30px solid rgba(85,177,141,.07);pointer-events:none}
.gb-language-face-de{transform:rotateY(180deg);border-color:rgba(98,153,214,.52);background:linear-gradient(125deg,color-mix(in srgb,var(--surface) 84%,#498bd2 16%),color-mix(in srgb,var(--surface) 96%,#498bd2 4%))}
.gb-language-face-de::after{border-color:rgba(94,157,218,.09)}
.gb-language-face-top,.gb-language-face-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}
.gb-language-face-kicker{font-size:11px;letter-spacing:.13em;font-weight:750;color:var(--muted)}
.gb-language-face-code{font-size:12px;letter-spacing:.1em;font-weight:800;color:#51af8e;border:1px solid rgba(85,177,141,.35);border-radius:9px;padding:5px 9px}
.gb-language-face-de .gb-language-face-code{color:#77aae4;border-color:rgba(94,157,218,.45)}
.gb-language-face-title{font-size:clamp(30px,7vw,42px);line-height:1.1;letter-spacing:-.04em;font-weight:800;color:var(--text)}
.gb-language-face-bottom{font-size:14px;font-weight:650;color:var(--muted)}
.gb-language-face-arrow{font-size:25px;line-height:1;color:#51af8e}.gb-language-face-de .gb-language-face-arrow{color:#77aae4}
.gb-language-flip:focus-visible{outline:2px solid #51af8e;outline-offset:5px}
.gb-language-flip:active .gb-language-flip-inner{scale:.985}
@media(prefers-reduced-motion:reduce){.gb-language-flip-inner{transition:none!important}}

/* v1.8.43 — common training flip-card hierarchy, both sides and all swipe modes. */
.flashcard-face.gb-unified-flip-face,
.study-swipe-face.gb-unified-flip-face{padding-top:60px!important;}
.flashcard-corner-level{position:absolute;right:20px;top:18px;z-index:7;max-width:42%;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--surface-2,#152332) 78%,transparent);border:1px solid color-mix(in srgb,var(--border,#334155) 42%,transparent);color:var(--muted);font-size:.7rem;font-weight:800;line-height:1.15;text-align:right;pointer-events:none;}
.flashcard-face .flashcard-side-label,.study-swipe-face .flashcard-side-label{max-width:53%!important;}
.flashcard-face.gb-unified-flip-face>.flashcard-word-with-audio,
.study-swipe-face.gb-unified-flip-face>.flashcard-word-with-audio{width:100%;justify-content:center;align-items:center;gap:8px;min-width:0;}
.flashcard-face.gb-unified-flip-face>.flashcard-word-with-audio>strong,
.study-swipe-face.gb-unified-flip-face>.flashcard-word-with-audio>strong{min-width:0;overflow-wrap:anywhere;}
.flashcard-face.gb-unified-flip-face .speak-btn,
.study-swipe-face.gb-unified-flip-face .speak-btn{flex-shrink:0;position:relative;z-index:8;}
#swissTrainingGame .swiss-flash-level{right:62px;top:20px;z-index:7;background:rgba(255,255,255,.65);color:#594452;}
html[data-theme="dark"] #swissTrainingGame .swiss-flash-level{background:rgba(38,37,55,.55);color:#f3e6ec;}
@media(max-width:520px){.flashcard-corner-level{top:17px;right:18px;font-size:.66rem}.flashcard-face.gb-unified-flip-face,.study-swipe-face.gb-unified-flip-face{padding-top:56px!important}#swissTrainingGame .swiss-flash-level{right:54px;top:17px;max-width:35%;}}

/* v1.8.43 — full-training flip: keep the language cue in the top-left,
   not in the centered word stack.  The swipe-face child rule previously
   overrode position:absolute with position:relative. */
.study-swipe-face.gb-unified-flip-face > .flashcard-side-label{
  position:absolute!important;top:18px!important;left:20px!important;
  right:auto!important;bottom:auto!important;margin:0!important;
  align-self:auto!important;z-index:6;max-width:53%!important;
  padding:4px 8px;border-radius:999px;
  background:color-mix(in srgb,var(--surface-2,#152332) 78%,transparent);
  border:1px solid color-mix(in srgb,var(--border,#334155) 42%,transparent);
  color:color-mix(in srgb,var(--muted) 92%,var(--text) 8%);
  font-size:.64rem!important;line-height:1.05;font-weight:800;
  letter-spacing:.075em;text-transform:uppercase;opacity:.82;text-align:left;
  pointer-events:none;
}
/* The pronunciation control belongs to the word, not the far edge of the card. */
.flashcard-face.gb-unified-flip-face > .flashcard-word-with-audio,
.study-swipe-face.gb-unified-flip-face > .flashcard-word-with-audio{
  width:fit-content;max-width:100%;align-self:center;justify-content:center;
  gap:10px;min-width:0;margin-inline:auto;
}
.flashcard-face.gb-unified-flip-face > .flashcard-word-with-audio > strong,
.study-swipe-face.gb-unified-flip-face > .flashcard-word-with-audio > strong{
  flex:0 1 auto;min-width:0;max-width:100%;overflow-wrap:anywhere;
}
.flashcard-face.gb-unified-flip-face > .flashcard-word-with-audio > .speak-btn,
.study-swipe-face.gb-unified-flip-face > .flashcard-word-with-audio > .speak-btn{
  flex:0 0 34px;width:34px;height:34px;min-width:34px;
}
@media(max-width:520px){
 .study-swipe-face.gb-unified-flip-face > .flashcard-side-label{top:17px!important;left:18px!important;}
}

/* v1.8.43 — full-training recognition: align the German word optically with
   the Russian reverse face. Move only the word/audio row; the language and
   CEFR corner badges stay fixed and long expressions keep their wrapping. */
.study-swipe-front.gb-unified-flip-face > .flashcard-word-with-audio{
  transform:translateY(-12px);
}

/* v1.8.43 — language pair settings */
.gb-language-pair{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:end}.gb-language-pair label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:.78rem;font-weight:800}.gb-language-pair select{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:13px;background:var(--surface-2);color:var(--text);padding:0 12px;font:inherit;font-weight:750}.gb-language-pair-arrow{padding-bottom:12px;color:var(--muted);font-weight:900}.gb-language-profile-status{min-height:18px;margin-top:10px;color:var(--muted);font-size:.78rem}@media(max-width:520px){.gb-language-pair{gap:8px}.gb-language-pair select{padding:0 8px}}
/* Import input can be reset without closing the dialog. */
#bulkClearBtn { display:block; margin:10px 0 0 auto; padding:8px 14px; min-height:40px; }

/* v1.8.58 — Russian-study dictionary uses the full row for its two status tiles. */
.gb-dictionary-tiles.gb-dictionary-tiles-2{grid-template-columns:repeat(2,minmax(0,1fr))!important;}

/* v1.8.58 — interactive Russian alphabet reference: colorful paired Cyrillic/German cues. */
.russian-alphabet-body{padding-top:14px!important;}
.russian-alphabet-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:16px 0 14px;}
.russian-letter-tile{position:relative;min-width:0;min-height:116px;padding:11px 7px 10px;border:1px solid color-mix(in srgb,var(--cyan,#55bfc0) 42%,var(--line));border-radius:17px;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 4px 13px rgba(0,0,0,.055);transition:transform .12s ease,filter .12s ease;overflow:hidden;}
.russian-letter-tone-1{background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 72%,#66c8c8 28%),color-mix(in srgb,var(--surface-2) 88%,#66c8c8 12%));}
.russian-letter-tone-2{background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 73%,#7da7e8 27%),color-mix(in srgb,var(--surface-2) 89%,#7da7e8 11%));}
.russian-letter-tone-3{background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 74%,#d49ac8 26%),color-mix(in srgb,var(--surface-2) 89%,#d49ac8 11%));}
.russian-letter-tone-4{background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 74%,#d6b56f 26%),color-mix(in srgb,var(--surface-2) 89%,#d6b56f 11%));}
.russian-letter-tile:active{transform:scale(.965);filter:brightness(.98);}
.russian-letter-pair{display:flex;align-items:baseline;justify-content:center;gap:9px;min-height:36px;}
.russian-letter-main{font-size:2rem;font-weight:820;line-height:1;letter-spacing:-.04em;}
.russian-letter-german{font-size:1.28rem;font-weight:760;line-height:1;color:var(--muted);letter-spacing:-.025em;}
.russian-letter-word{width:100%;font-size:.76rem;font-weight:760;line-height:1.12;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.russian-letter-word small{display:block;color:var(--muted);font-size:.66rem;font-weight:650;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.russian-letter-audio{position:absolute;right:7px;bottom:6px;font-size:.7rem;color:color-mix(in srgb,var(--muted) 70%,transparent);transform:rotate(-18deg);}
.russian-letter-tile.russian-letter-sign .russian-letter-main{color:var(--muted);}
.russian-letter-tile.russian-letter-sign .russian-letter-word{font-size:.66rem;color:var(--muted);white-space:normal;}
.russian-alphabet-note{padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--surface-2) 88%,transparent);color:var(--muted);font-size:.86rem;line-height:1.45;}
@media(max-width:620px){.russian-alphabet-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.russian-letter-tile{min-height:108px;padding:9px 4px}.russian-letter-main{font-size:1.82rem}.russian-letter-german{font-size:1.16rem}.russian-letter-pair{gap:7px}.russian-letter-word{font-size:.69rem}.russian-letter-word small{font-size:.6rem}}

/* v1.8.58 — calmer alphabet typography and special-letter emphasis. */
.russian-letter-main{font-size:1.78rem;font-weight:650;letter-spacing:-.025em;}
.russian-letter-german{font-size:1.16rem;font-weight:560;letter-spacing:-.015em;}
.russian-letter-word{font-size:.72rem;font-weight:600;}
.russian-letter-word small{font-weight:520;}
.russian-letter-tile.russian-letter-sign,.russian-letter-tile.russian-letter-y{border-width:2px;border-color:color-mix(in srgb,#d85f68 56%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--surface-2) 76%,#d85f68 24%),color-mix(in srgb,var(--surface-2) 91%,#d85f68 9%));}
.russian-letter-tile.russian-letter-sign .russian-letter-main,.russian-letter-tile.russian-letter-y .russian-letter-main{color:#d85f68;}
.russian-letter-highlight{color:#d85f68;font-weight:760;}
@media(max-width:620px){.russian-letter-main{font-size:1.58rem}.russian-letter-german{font-size:1.02rem}.russian-letter-word{font-size:.65rem}.russian-letter-pair{gap:5px}}

/* v1.8.58 — restore a clear word-audio affordance on alphabet tiles. */
.russian-letter-audio{right:7px;bottom:6px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:.78rem;line-height:1;color:var(--muted);opacity:.9;transform:none;filter:none;}
.russian-letter-tile[data-speak="1"]{padding-bottom:14px;}
.russian-letter-tile[data-speak="0"]{cursor:default;}
@media(max-width:620px){.russian-letter-audio{right:5px;bottom:5px;width:18px;height:18px;font-size:.7rem}.russian-letter-tile[data-speak="1"]{padding-bottom:13px}}

/* v1.8.58 — study-language selector mirrors the interface-language flip card. */
.gb-settings-view .gb-learning-flip-wrap{margin:0 0 22px;perspective:1100px;isolation:isolate}
.gb-learning-flip-wrap[data-language=ru] .gb-language-flip-inner{transform:rotateY(180deg)}
.gb-learning-face-de{border-color:rgba(190,139,87,.52);background:linear-gradient(125deg,color-mix(in srgb,var(--surface) 84%,#b87945 16%),color-mix(in srgb,var(--surface) 96%,#b87945 4%))}
.gb-learning-face-de::after{border-color:rgba(201,145,87,.10)}
.gb-learning-face-ru{transform:rotateY(180deg);border-color:rgba(173,105,168,.52);background:linear-gradient(125deg,color-mix(in srgb,var(--surface) 84%,#9b5f9d 16%),color-mix(in srgb,var(--surface) 96%,#9b5f9d 4%))}
.gb-learning-face-ru::after{border-color:rgba(177,102,171,.10)}
.gb-learning-face-de .gb-language-face-code,.gb-learning-face-de .gb-language-face-arrow{color:#d69a63;border-color:rgba(214,154,99,.42)}
.gb-learning-face-ru .gb-language-face-code,.gb-learning-face-ru .gb-language-face-arrow{color:#c985c4;border-color:rgba(201,133,196,.42)}
.gb-learning-language-flip:focus-visible{outline-color:#c98572}
.gb-learning-flip-wrap .gb-language-profile-status{min-height:18px;margin:8px 4px 0;text-align:center;color:var(--muted);font-size:12px}


/* v1.8.61 — compact CEFR profile control for adaptive/generated exercises. */
.gb-level-settings-card{margin-bottom:18px}.gb-level-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.gb-level-settings-head h2{margin:0 0 5px}.gb-level-settings-head p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.4}.gb-level-value{font-size:1.35rem;line-height:1;padding:8px 10px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.gb-level-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-top:15px}.gb-level-picker button{min-width:0;padding:9px 4px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);color:var(--text);font-weight:700}.gb-level-picker button.active{border-color:color-mix(in srgb,#8b6ccf 60%,var(--line));background:color-mix(in srgb,var(--surface-2) 78%,#8b6ccf 22%);box-shadow:inset 0 0 0 1px color-mix(in srgb,#8b6ccf 35%,transparent)}.gb-level-hint{margin-top:10px;color:var(--muted);font-size:.78rem;text-align:center}@media(max-width:420px){.gb-level-picker{gap:5px}.gb-level-picker button{font-size:.78rem;padding:8px 2px}}
/* v1.8.61 — CEFR-aware Definition ↔ Wort cards */
.training-mode-card-definition{--mode-accent:#5b9cf0;border-color:color-mix(in srgb,#5b9cf0 40%,var(--border));background:linear-gradient(140deg,color-mix(in srgb,#5b9cf0 10%,var(--surface)),var(--surface))}
.definition-study-shell{max-width:680px;margin:0 auto}.definition-study-card{position:relative;min-height:360px;perspective:1200px;cursor:pointer;-webkit-tap-highlight-color:transparent}.definition-study-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.2,.75,.25,1)}.definition-study-card.is-flipped .definition-study-inner{transform:rotateY(180deg)}.definition-study-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--border);border-radius:28px;background:var(--surface);padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 16px 42px rgba(0,0,0,.08)}.definition-study-back{transform:rotateY(180deg)}.definition-study-label{position:absolute;top:20px;left:22px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.definition-study-level{position:absolute;top:18px;right:20px;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,#5b9cf0 14%,var(--surface));font-weight:700}.definition-study-definition{font-size:clamp(1.25rem,4vw,1.7rem);line-height:1.45;max-width:560px}.definition-study-word{font-size:clamp(2rem,8vw,3.1rem);line-height:1.1}.definition-study-example{margin-top:22px;color:var(--muted);font-size:1rem;line-height:1.45}.definition-study-hint{position:absolute;bottom:18px;font-size:.8rem;color:var(--muted)}.definition-study-actions{display:flex;gap:10px;margin-top:18px}.definition-study-actions button{flex:1}.definition-study-progress{margin-bottom:14px}
@media(max-width:600px){.definition-study-card{min-height:330px}.definition-study-face{padding:24px 20px;border-radius:24px}}

/* v1.8.63 — Definition cards now use the standard GermanBook flip/swipe card language. */
.definition-flashcard-stage{padding-top:4px}.definition-card-text{max-width:92%;font-size:clamp(1.25rem,4.8vw,1.75rem);line-height:1.42;font-weight:560}.definition-unified-face .flashcard-word-with-audio>strong{font-size:clamp(2rem,8vw,3.1rem);line-height:1.1}.definition-study-progress{margin-bottom:2px}@media(max-width:520px){.definition-flashcard-stage .flashcard-drag{height:clamp(330px,51svh,390px)}}

/* v1.8.63 — iPhone performance pass + light-theme flashcard shadow cleanup.
   Keep static training screens compositor-light: no permanent animated blur or
   always-on layer promotion. Layers are created by Safari only while needed. */
.home-focus-card::after{
  animation:none!important;
  filter:none!important;
  transform:translate3d(0,0,0) scale(1)!important;
  opacity:.72;
}
body.flashcards-active .flashcard-drag,
body.flashcards-active .flashcard-flip,
body.flashcards-active .flashcard-swipe-badge,
.study-swipe-card,
.study-swipe-flip,
.study-swipe-badge,
#cards .card{
  will-change:auto!important;
}
.flashcard-swipe-badge,.study-swipe-badge{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
/* The old 48px shadow was clipped by the rectangular swipe stage on the light
   theme, producing the dark square visible below/around the rounded card. */
html:not([data-theme="dark"]) .flashcard-face,
html[data-theme="light"] .flashcard-face,
html:not([data-theme="dark"]) .study-swipe-face,
html[data-theme="light"] .study-swipe-face{
  box-shadow:0 10px 26px rgba(40,64,78,.075)!important;
}
html:not([data-theme="dark"]) .flashcard-stage,
html[data-theme="light"] .flashcard-stage,
html:not([data-theme="dark"]) .study-swipe-stage,
html[data-theme="light"] .study-swipe-stage{
  background:transparent!important;
}


/* v1.8.67 — cleaner light training palette + compositor-safe cards. */
html[data-theme="light"] .unified-training-card .study-focus-card,
html:not([data-theme="dark"]) .unified-training-card .study-focus-card{
  background:
    radial-gradient(circle at 52% 50%,rgba(90,190,196,.075),transparent 52%),
    linear-gradient(145deg,#f8fcfd,#f1f8fa)!important;
  border-color:rgba(92,132,148,.14)!important;
  box-shadow:none!important;
}
html[data-theme="light"] .unified-training-card .study-options-choices button,
html:not([data-theme="dark"]) .unified-training-card .study-options-choices button{
  background:#f3f8f9!important;
  border:1px solid rgba(93,126,139,.14)!important;
  color:#63737b!important;
  box-shadow:none!important;
}
html[data-theme="light"] .unified-training-card .study-options-choices button.correct,
html:not([data-theme="dark"]) .unified-training-card .study-options-choices button.correct{
  background:#58a87a!important;
  border-color:#58a87a!important;
  color:#fff!important;
}
html[data-theme="light"] .study-result-panel.is-correct,
html:not([data-theme="dark"]) .study-result-panel.is-correct{
  background:#e7f6e9!important;
  border-color:#b8dfbf!important;
  box-shadow:none!important;
}
html[data-theme="light"] .study-result-panel.is-correct .study-next-btn,
html:not([data-theme="dark"]) .study-result-panel.is-correct .study-next-btn{
  background:#d8f1e0!important;
  border-color:#acd8b9!important;
  color:#315f43!important;
}
/* Avoid large blurred shadows on training surfaces: besides looking rectangular
   when clipped by a parent, they are costly to rasterize on mobile Safari. */
html[data-theme="light"] .special-study-session,
html:not([data-theme="dark"]) .special-study-session,
html[data-theme="light"] .unified-training-card,
html:not([data-theme="dark"]) .unified-training-card{
  box-shadow:none!important;
}

/* v1.8.67 — cleaner answer cards and swipe-to-continue feedback. */
html[data-theme="light"] .unified-training-card .study-focus-card,
html:not([data-theme="dark"]) .unified-training-card .study-focus-card{
  background:
    radial-gradient(circle at 52% 50%,rgba(75,183,192,.11),transparent 50%),
    linear-gradient(145deg,#f7fcfd 0%,#edf8fa 100%)!important;
  border:1px solid rgba(71,139,153,.18)!important;
  box-shadow:0 7px 16px rgba(45,76,88,.065)!important;
}
html[data-theme="light"] .unified-training-card .study-options-choices button,
html:not([data-theme="dark"]) .unified-training-card .study-options-choices button{
  background:#edf6f7!important;
  border-color:rgba(75,128,141,.20)!important;
  color:#536a73!important;
}
html[data-theme="light"] .unified-training-card .study-options-choices button.correct,
html:not([data-theme="dark"]) .unified-training-card .study-options-choices button.correct{
  background:#45b978!important;
  border-color:#38aa6b!important;
  color:#fff!important;
  box-shadow:0 3px 9px rgba(47,151,91,.12)!important;
}
html[data-theme="light"] .unified-training-card .study-options-choices button.wrong,
html:not([data-theme="dark"]) .unified-training-card .study-options-choices button.wrong{
  background:#d97070!important;
  border-color:#cb6060!important;
  color:#fff!important;
}
/* Feedback no longer reserves a result panel under multiple-choice cards. */
.unified-training-card #choiceFeedback:has(.study-answer-flash){height:0;min-height:0;margin:0;overflow:visible;position:relative;z-index:12}
.study-answer-flash{position:absolute;left:50%;bottom:clamp(220px,34svh,320px);width:74px;height:74px;margin-left:-37px;display:grid;place-items:center;border-radius:50%;pointer-events:none;font-size:2.15rem;background:rgba(255,255,255,.88);border:1px solid rgba(72,167,111,.22);box-shadow:0 5px 14px rgba(34,74,54,.10);animation:gbAnswerFlash .72s ease-out forwards}
.study-answer-flash.is-wrong{border-color:rgba(196,88,88,.22)}
@keyframes gbAnswerFlash{0%{opacity:0;transform:translateY(10px) scale(.72)}28%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-14px) scale(.9)}}
.study-awaiting-swipe{touch-action:pan-y;transition:transform .16s ease,opacity .16s ease}
.study-awaiting-swipe::after{content:'← Свайп для следующей';display:block;text-align:center;margin-top:8px;font-size:.78rem;color:var(--muted);opacity:.72}
.study-swipe-leave{transform:translate3d(-115%,0,0)!important;opacity:0!important}
@media(prefers-reduced-motion:reduce){.study-answer-flash{animation-duration:.01ms}.study-awaiting-swipe{transition:none}}

/* v1.8.67 — article-choice polish: answer colors carry the feedback; swipe continues. */
html[data-theme="light"] .unified-training-card .article-choice-options button,
html:not([data-theme="dark"]) .unified-training-card .article-choice-options button{
  background:#e2eef0!important;
  border-color:rgba(67,112,124,.28)!important;
  color:#61747c!important;
}
html[data-theme="light"] .unified-training-card .article-choice-options button.correct,
html:not([data-theme="dark"]) .unified-training-card .article-choice-options button.correct{
  background:#37ad70!important;border-color:#299b61!important;color:#fff!important;
}
html[data-theme="light"] .unified-training-card .article-choice-options button.wrong,
html:not([data-theme="dark"]) .unified-training-card .article-choice-options button.wrong{
  background:#cf6568!important;border-color:#be5559!important;color:#fff!important;
}
/* A small branded arc/orb on the focus card, kept behind all content. */
.unified-training-card .study-focus-card{overflow:hidden;isolation:isolate}
.unified-training-card .study-focus-card::after{
  content:"";position:absolute;right:-74px;bottom:-88px;width:190px;height:190px;border-radius:50%;
  background:radial-gradient(circle at 34% 30%,rgba(88,188,194,.11),rgba(88,188,194,.045) 58%,transparent 60%);
  pointer-events:none;z-index:0;
}
.unified-training-card .study-focus-card>*{position:relative;z-index:1}
/* Feedback icon is 20% slower and softer than v1.8.65. */
.study-answer-flash{animation-duration:.864s!important}
@keyframes gbAnswerFlash{0%{opacity:0;transform:translateY(8px) scale(.78)}24%{opacity:1;transform:translateY(0) scale(1)}68%{opacity:.92;transform:translateY(-4px) scale(.98)}100%{opacity:0;transform:translateY(-16px) scale(.92)}}
/* Follow the finger without blur; release uses the same calm card-like easing. */
.study-awaiting-swipe{touch-action:pan-y;transition:transform .28s cubic-bezier(.22,.72,.22,1),opacity .28s ease;will-change:auto}
.study-awaiting-swipe.is-dragging{transition:none}
.study-awaiting-swipe::after{content:''!important;display:none!important}
.study-swipe-leave{transform:translate3d(-112%,0,0)!important;opacity:0!important}
.study-swipe-leave-right{transform:translate3d(112%,0,0)!important;opacity:0!important}
@media(prefers-reduced-motion:reduce){.study-answer-flash{animation-duration:.01ms!important}.study-awaiting-swipe{transition:none!important}}


/* v1.8.67 — reverse-translation layout fix after branded-card polish.
   The generic child stacking rule in v1.8.67 must not turn the top label into
   normal flow content. Keep the label pinned and center the prompt geometrically. */
.unified-training-card .reverse-translation-focus .study-scene-top{
  position:absolute!important;
  top:15px!important;left:0!important;right:0!important;
  z-index:3!important;
}
.unified-training-card .reverse-translation-focus .study-focus-word-ru{
  position:absolute!important;
  left:18px!important;right:18px!important;top:50%!important;
  width:auto!important;
  transform:translateY(-50%)!important;
  z-index:2!important;
}
.unified-training-card .reverse-translation-focus .study-example{
  position:absolute!important;
  left:18px!important;right:18px!important;bottom:22px!important;
  width:auto!important;margin:0!important;z-index:2!important;
}

/* v1.8.68 — full-training card geometry audit.
   Branded decorative children must never participate in the content flow.
   Every stage header is pinned to the top; the main prompt is centered against
   the card itself rather than against the remaining flex space. */
.unified-training-card .typing-focus .study-scene-top,
.unified-training-card .forms-focus .study-scene-top,
.unified-training-card .errors-focus .study-scene-top{
  position:absolute!important;top:15px!important;left:0!important;right:0!important;z-index:3!important;
}
.unified-training-card .typing-focus .study-focus-word-ru,
.unified-training-card .errors-focus .study-focus-word{
  position:absolute!important;left:18px!important;right:18px!important;top:50%!important;width:auto!important;
  transform:translateY(-50%)!important;margin:0!important;z-index:2!important;
}
.unified-training-card .typing-focus .study-hint-chip{
  position:absolute!important;left:18px!important;right:18px!important;top:calc(50% + 46px)!important;
  width:auto!important;margin:0!important;z-index:2!important;
}
/* Forms contains a question plus the word, so center that pair as one compact unit. */
.unified-training-card .forms-focus{justify-content:center!important;padding-top:58px!important}
.unified-training-card .forms-focus .study-ask,
.unified-training-card .forms-focus .study-focus-word{position:relative!important;z-index:2!important}
\n\n/* v1.8.69 — lock full-training geometry and keep answer feedback inside the card. */
.unified-training-card .forms-focus{
  position:relative!important;
  justify-content:initial!important;
  padding:58px 18px 20px!important;
}
.unified-training-card .forms-focus .study-scene-top{
  position:absolute!important;top:15px!important;left:0!important;right:0!important;
  padding:0 17px!important;display:flex!important;justify-content:space-between!important;align-items:center!important;
  z-index:5!important;
}
.unified-training-card .forms-focus .study-ask{
  position:absolute!important;left:18px!important;right:18px!important;top:calc(50% - 42px)!important;
  width:auto!important;margin:0!important;transform:none!important;z-index:3!important;
}
.unified-training-card .forms-focus .study-focus-word{
  position:absolute!important;left:18px!important;right:18px!important;top:calc(50% + 4px)!important;
  width:auto!important;margin:0!important;transform:translateY(-50%)!important;z-index:3!important;
  display:flex!important;justify-content:center!important;align-items:center!important;
}
/* The feedback belongs to the focus card, not to the answer area below it. */
.unified-training-card .study-focus-card>.study-answer-flash{
  position:absolute!important;left:50%!important;top:50%!important;bottom:auto!important;z-index:20!important;
  width:74px!important;height:74px!important;margin:0!important;
  transform-origin:center!important;pointer-events:none!important;
  animation:gbAnswerFlashCard .864s cubic-bezier(.2,.72,.22,1) forwards!important;
}
@keyframes gbAnswerFlashCard{
  0%{opacity:0;transform:translate(-50%,-42%) scale(.76)}
  24%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  68%{opacity:.92;transform:translate(-50%,-55%) scale(.98)}
  100%{opacity:0;transform:translate(-50%,-70%) scale(.92)}
}
@media(prefers-reduced-motion:reduce){.unified-training-card .study-focus-card>.study-answer-flash{animation-duration:.01ms!important}}

/* v1.8.70 — final-round geometry + lighter answer motion cue. */
.unified-training-card .errors-focus{
  position:relative!important;
  padding:58px 18px 20px!important;
  justify-content:initial!important;
}
.unified-training-card .errors-focus .study-scene-top{
  position:absolute!important;top:15px!important;left:0!important;right:0!important;
  padding:0 17px!important;display:flex!important;justify-content:space-between!important;align-items:center!important;
  z-index:5!important;
}
.unified-training-card .errors-focus .study-focus-word{
  position:absolute!important;left:18px!important;right:18px!important;top:50%!important;
  width:auto!important;margin:0!important;transform:translateY(-50%)!important;z-index:3!important;
}
.unified-training-card .errors-focus .study-example{
  position:absolute!important;left:34px!important;right:34px!important;top:calc(50% + 58px)!important;
  width:auto!important;margin:0!important;z-index:3!important;line-height:1.35!important;
}
/* Correct-answer gesture: start in the lower half, float upward, grow slightly, then dissolve. */
.unified-training-card .study-focus-card>.study-answer-flash{
  top:68%!important;
  animation:gbAnswerFlashCard170 .778s cubic-bezier(.22,.68,.24,1) forwards!important;
  background:rgba(255,255,255,.90)!important;
}
@keyframes gbAnswerFlashCard170{
  0%{opacity:0;transform:translate(-50%,10%) scale(.78)}
  18%{opacity:1;transform:translate(-50%,-8%) scale(.94)}
  64%{opacity:.96;transform:translate(-50%,-112%) scale(1.08)}
  100%{opacity:0;transform:translate(-50%,-168%) scale(1.14)}
}
/* Once an answer is locked, hint that the whole card can be pulled left. */
.study-swipe-ready-hint{
  position:absolute!important;right:18px!important;bottom:16px!important;z-index:18!important;
  width:38px;height:30px;border-radius:15px;display:grid;place-items:center;
  color:var(--muted);background:color-mix(in srgb,var(--surface) 84%,transparent);
  border:1px solid var(--line);font-size:1.25rem;font-weight:650;line-height:1;
  opacity:.68;pointer-events:none;
  animation:gbSwipeReadyIn .28s ease-out both;
}
.study-awaiting-swipe.is-dragging .study-swipe-ready-hint{opacity:0!important;transition:opacity .12s ease}
@keyframes gbSwipeReadyIn{from{opacity:0;transform:translateX(7px)}to{opacity:.68;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){
  .unified-training-card .study-focus-card>.study-answer-flash{animation-duration:.01ms!important}
  .study-swipe-ready-hint{animation:none!important}
}


/* v1.8.71 — dark-home visual parity + clearer light training controls.
   Static gradients/corner circles only: no blur, backdrop-filter or animation. */
html[data-theme="dark"] body[data-view="home"] .gb-home-sets-hero,
html[data-theme="dark"] body[data-view="home"] .gb-home-grammar-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  box-shadow:none!important;
}
html[data-theme="dark"] body[data-view="home"] .gb-home-sets-hero{
  background:linear-gradient(118deg,rgba(48,145,132,.27),rgba(39,65,79,.22) 72%),var(--surface)!important;
  border-color:rgba(92,190,174,.38)!important;
}
html[data-theme="dark"] body[data-view="home"] .gb-home-grammar-hero{
  background:linear-gradient(118deg,rgba(128,91,181,.27),rgba(65,62,108,.20) 76%),var(--surface)!important;
  border-color:rgba(166,132,214,.38)!important;
}
html[data-theme="dark"] body[data-view="home"] .gb-home-sets-hero::before,
html[data-theme="dark"] body[data-view="home"] .gb-home-grammar-hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  width:76%;
  aspect-ratio:1;
  right:-31%;
  top:-34%;
  border-radius:50%;
}
html[data-theme="dark"] body[data-view="home"] .gb-home-sets-hero::before{background:rgba(82,199,180,.12)}
html[data-theme="dark"] body[data-view="home"] .gb-home-grammar-hero::before{background:rgba(166,126,221,.12)}
html[data-theme="dark"] body[data-view="home"] .gb-home-sets-hero > *,
html[data-theme="dark"] body[data-view="home"] .gb-home-grammar-hero > *{position:relative;z-index:1}
html[data-theme="dark"] body[data-view="home"] .gb-home-sets-mark{
  background:rgba(70,180,163,.20)!important;
  border-color:rgba(98,204,186,.36)!important;
  color:#79d4c4!important;
}
html[data-theme="dark"] body[data-view="home"] .gb-home-grammar-mark{
  background:rgba(151,112,207,.20)!important;
  border-color:rgba(178,143,226,.36)!important;
  color:#c1a4e9!important;
}

/* Light training hub: keep the existing pastel identity but separate every tile
   clearly from the page with a fine tone-on-tone outline and slightly deeper fill. */
html:not([data-theme="dark"]) #studyView .training-mode-card{
  background:
    radial-gradient(circle at 10% 0%,color-mix(in srgb,var(--mode-accent) 22%,transparent),transparent 52%),
    linear-gradient(145deg,color-mix(in srgb,var(--mode-accent) 14%,#f7fafb),#f4f8f9)!important;
  border:1px solid color-mix(in srgb,var(--mode-accent) 42%,#c9d4d9)!important;
  box-shadow:none!important;
}
html:not([data-theme="dark"]) #studyView .training-mode-card::after{
  background:color-mix(in srgb,var(--mode-accent) 10%,transparent)!important;
}
html:not([data-theme="dark"]) #studyView .training-mode-card-definition{
  background:linear-gradient(145deg,#e8f1fc,#f1f6fb)!important;
  border-color:#b8cfea!important;
}
html:not([data-theme="dark"]) #studyView .custom-study-details{
  background:#edf2f4!important;
  border:1px solid #cbd7dc!important;
  box-shadow:none!important;
}
html:not([data-theme="dark"]) #studyView .custom-study-details>summary{
  background:linear-gradient(120deg,#e8eef1,#f1f5f6)!important;
}
html:not([data-theme="dark"]) #studyView .custom-study-details .custom-study-block{
  border-top-color:#cbd7dc!important;
}

/* Session length buttons were almost indistinguishable from the light page. */
html:not([data-theme="dark"]) #studyView .study-count{
  background:#e7eef2!important;
  border:1px solid #c4d1d8!important;
  color:#526773!important;
  box-shadow:none!important;
}
html:not([data-theme="dark"]) #studyView .study-count.active{
  background:#dbeaf6!important;
  border-color:#79aeca!important;
  color:#274a5d!important;
  box-shadow:inset 0 -3px 0 #5f9fbe!important;
}

/* v1.8.72 — one geometry for every 1-card + multiple-choice training. */
.unified-training-card .choice-focus{
  position:relative!important;
  min-height:clamp(260px,42svh,390px)!important;
  padding:58px 20px 24px!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  gap:10px!important;text-align:center!important;
}
.unified-training-card .choice-focus .study-scene-top{
  position:absolute!important;top:15px!important;left:0!important;right:0!important;padding:0 17px!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;z-index:5!important;
}
.unified-training-card .choice-focus .study-ask{margin:0!important;max-width:94%;font-size:clamp(.88rem,3.7vw,1.05rem);line-height:1.3;color:var(--muted)}
.unified-training-card .choice-focus .study-focus-word{position:relative!important;inset:auto!important;transform:none!important;margin:0!important;width:100%!important;max-width:100%;font-size:clamp(1.55rem,6.4vw,2.35rem)!important;line-height:1.12!important;overflow-wrap:anywhere}
.unified-training-card .choice-focus .study-focus-word-ru{font-size:clamp(1.45rem,6vw,2.2rem)!important}
.unified-training-card .choice-focus .special-prompt-translation,.unified-training-card .choice-focus .study-example{margin:2px 0 0!important;max-width:94%;position:relative!important;inset:auto!important;transform:none!important}
.unified-training-card .study-options-choices{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.unified-training-card .study-options-choices button{min-height:74px!important;padding:12px 10px!important;line-height:1.2!important;overflow-wrap:anywhere;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease!important}
/* Answer stays visible until the user swipes; the arrow is the only next-step cue. */
.study-swipe-ready-hint{
  right:16px!important;bottom:14px!important;width:42px!important;height:42px!important;display:grid!important;place-items:center!important;
  border-radius:50%!important;color:#f2fff5!important;background:linear-gradient(145deg,#59cf82,#269d5a)!important;
  border:1px solid rgba(255,255,255,.42)!important;box-shadow:0 5px 12px rgba(29,128,72,.24),inset 0 1px 1px rgba(255,255,255,.38)!important;
  opacity:.94!important;font-size:1.55rem!important;font-weight:900!important;line-height:1!important;
  animation:gbSwipeReadyPulse 1.9s ease-in-out infinite!important;
}
.study-swipe-ready-hint span{display:block;transform:translateX(-1px);text-shadow:0 1px 2px rgba(0,0,0,.16)}
@keyframes gbSwipeReadyPulse{0%,100%{transform:translateX(0) scale(1);box-shadow:0 5px 12px rgba(29,128,72,.24),inset 0 1px 1px rgba(255,255,255,.38)}50%{transform:translateX(-3px) scale(1.055);box-shadow:0 7px 17px rgba(29,128,72,.32),inset 0 1px 1px rgba(255,255,255,.42)}}
@media(max-width:520px){.unified-training-card .choice-focus{min-height:270px!important;padding:54px 18px 22px!important}.unified-training-card .study-options-choices button{min-height:68px!important}.study-swipe-ready-hint{right:13px!important;bottom:12px!important;width:40px!important;height:40px!important}}
@media(prefers-reduced-motion:reduce){.study-swipe-ready-hint{animation:none!important}}


/* v1.8.75 — Definition progressive reveal: answers exist only on the hint side. */
.definition-quiz-shell{max-width:680px;margin:0 auto;position:relative}
.definition-quiz-shell .definition-flashcard-stage{padding-bottom:0}
.definition-hint-label{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.definition-example-text{max-width:92%;font-size:clamp(1.2rem,4.8vw,1.65rem);line-height:1.45;font-weight:600;text-align:center}
.definition-choices{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;opacity:0;transform:translateY(-5px);pointer-events:none;max-height:0;overflow:hidden;transition:opacity .22s ease,transform .22s ease,max-height .28s ease}
.definition-choices.is-visible{opacity:1;transform:none;pointer-events:auto;max-height:220px;overflow:visible}
.definition-choices button{min-height:68px;padding:11px 9px;line-height:1.2;overflow-wrap:anywhere;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}
.definition-choices button.correct{background:rgba(55,190,103,.20)!important;border-color:#36b96c!important;color:var(--text)!important}
.definition-choices button.wrong{background:rgba(224,76,76,.18)!important;border-color:#dc5555!important;color:var(--text)!important}
.definition-choices button:disabled{opacity:1}
.definition-quiz-shell .study-swipe-ready-hint{z-index:12}
@media(max-width:520px){.definition-choices button{min-height:64px}.definition-choices{margin-top:10px}}
@media(prefers-reduced-motion:reduce){.definition-choices{transition:none}}


/* v1.8.75 — Definition card geometry fix.
   Keep the flip card independent from the generic study-focus-card box. */
.definition-quiz-shell{width:100%;max-width:680px;margin:0 auto;padding:0 16px;box-sizing:border-box}
.definition-quiz-scene{width:100%;margin:0 auto}
.definition-quiz-shell .definition-flashcard-stage{
  min-height:0!important;height:auto!important;padding:8px 0 0!important;overflow:visible!important;justify-content:flex-start!important;
}
.definition-quiz-shell .definition-flashcard-stage .flashcard-drag{
  width:min(100%,560px)!important;height:390px!important;margin:0 auto!important;
}
.definition-unified-face{padding:64px 28px 52px!important}
.definition-card-text{max-width:92%;margin:auto 0;font-size:clamp(1.25rem,4.8vw,1.75rem);line-height:1.42;font-weight:600;text-align:center;overflow-wrap:anywhere}
.definition-hint-face .definition-hint-label{position:absolute;top:62px;left:0;right:0;margin:0 auto}
.definition-hint-face .definition-example-text{margin:auto 0}
.definition-choices{width:min(100%,560px);margin:12px auto 0!important}
@media(max-width:520px){
  .definition-quiz-shell{padding:0 16px}
  .definition-quiz-shell .definition-flashcard-stage .flashcard-drag{height:clamp(350px,47svh,390px)!important}
  .definition-unified-face{padding:60px 22px 48px!important;border-radius:26px!important}
  .definition-card-text{font-size:clamp(1.22rem,5.6vw,1.65rem)}
}

/* v1.8.75 — Definition answer feedback parity with the shared training cards. */
.definition-quiz-shell #definitionCardDrag > .study-answer-flash{
  z-index:24!important;
  top:68%!important;
  animation:gbAnswerFlashCard170 .778s cubic-bezier(.22,.68,.24,1) forwards!important;
  background:rgba(255,255,255,.90)!important;
}
.definition-quiz-shell #definitionCardDrag > .study-swipe-ready-hint{z-index:25!important}

/* v1.8.84 — reverse-translation long-example safety + 10% larger audio controls */
.unified-training-card .reverse-translation-focus.has-example .study-focus-word-ru{
  top:39%!important;
  max-height:44%!important;
  overflow:hidden!important;
}
.unified-training-card .reverse-translation-focus .study-example{
  max-height:4.15em!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:3!important;
  line-clamp:3!important;
  font-size:clamp(.82rem,3.4vw,.96rem)!important;
  line-height:1.32!important;
}
@media(max-width:520px){
  .unified-training-card .reverse-translation-focus.has-example .study-focus-word-ru{top:37%!important;}
  .unified-training-card .reverse-translation-focus .study-example{bottom:18px!important;-webkit-line-clamp:3!important;line-clamp:3!important;}
}
/* +10% pronunciation button size, preserving circular geometry. */
.speak-btn{width:35px;height:35px;min-width:35px;font-size:18px}
.speak-btn-large{width:40px;height:40px;min-width:40px;font-size:20px}
.example-de .speak-btn,.master-example-de .speak-btn,.flashcard-example-de .speak-btn,.home-phrase-example-de .speak-btn{width:31px;height:31px;min-width:31px;font-size:15px}
@media (max-width:640px){.speak-btn{width:37px;height:37px;min-width:37px}.speak-btn-large{width:42px;height:42px;min-width:42px}}


/* v1.8.86 — reverse translation prompt must fit without clipping.
   Show fewer senses in JS, use lighter type and size progressively by length. */
.unified-training-card .reverse-translation-focus .study-focus-word-ru{
  font-weight:600!important;
  font-size:clamp(1.65rem,6vw,2.45rem)!important;
  line-height:1.14!important;
  max-height:none!important;
  overflow:visible!important;
  text-wrap:balance;
}
.unified-training-card .reverse-translation-focus.has-example .study-focus-word-ru{
  top:40%!important;
}
@media(max-width:520px){
  .unified-training-card .reverse-translation-focus .study-focus-word-ru{
    left:20px!important;right:20px!important;
    font-size:clamp(1.45rem,5.7vw,2.15rem)!important;
    line-height:1.12!important;
  }
  .unified-training-card .reverse-translation-focus.has-example .study-focus-word-ru{top:39%!important;}
}


/* v1.8.86 — reverse translation card: content-flow layout, no geometric clipping.
   The previous absolute centering could push a tall prompt outside the visible card.
   Header stays pinned; prompt and hint now own separate grid rows. */
.unified-training-card .reverse-translation-focus{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  align-items:stretch!important;
  justify-items:stretch!important;
  padding:58px 20px 20px!important;
  overflow:hidden!important;
}
.unified-training-card .reverse-translation-focus .study-focus-word-ru,
.unified-training-card .reverse-translation-focus.has-example .study-focus-word-ru{
  position:static!important;
  inset:auto!important;
  top:auto!important;left:auto!important;right:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:100%!important;
  max-height:none!important;
  align-self:center!important;
  margin:0!important;
  padding:4px 0!important;
  overflow:visible!important;
  font-size:clamp(1.45rem,5.15vw,2.18rem)!important;
  line-height:1.12!important;
  font-weight:570!important;
  letter-spacing:-.018em!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:auto!important;
  text-wrap:balance;
}
.unified-training-card .reverse-translation-focus .study-example{
  position:static!important;
  inset:auto!important;
  width:100%!important;
  max-width:100%!important;
  margin:12px 0 0!important;
  padding:0!important;
  align-self:end!important;
  max-height:2.8em!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  line-clamp:2!important;
  font-size:clamp(.80rem,3.25vw,.94rem)!important;
  line-height:1.35!important;
}
@media(max-width:520px){
  .unified-training-card .reverse-translation-focus{padding:54px 18px 18px!important;}
  .unified-training-card .reverse-translation-focus .study-focus-word-ru,
  .unified-training-card .reverse-translation-focus.has-example .study-focus-word-ru{
    font-size:clamp(1.35rem,5.2vw,1.95rem)!important;
    line-height:1.13!important;
  }
}


/* v1.8.87 — compact word search on the home screen */
.gb-home-search-section{margin:12px 0 4px}
.gb-home-search-box{min-height:52px;display:flex;align-items:center;gap:10px;padding:0 12px;border:1px solid color-mix(in srgb,var(--border,#334155) 78%,transparent);border-radius:16px;background:color-mix(in srgb,var(--panel,#111827) 96%,white 4%);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.gb-home-search-box:focus-within{border-color:color-mix(in srgb,var(--accent,#76e6bf) 62%,var(--border,#334155));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent,#76e6bf) 11%,transparent)}
.gb-home-search-icon{font-size:1.15rem;color:var(--muted);line-height:1}
#homeWordSearch{min-width:0;flex:1;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:13px 0!important;font:inherit;font-size:.98rem;color:inherit}
.gb-home-search-clear{flex:0 0 auto;width:34px;height:34px;border:0;border-radius:50%;padding:0;background:color-mix(in srgb,var(--border,#334155) 55%,transparent);color:var(--muted);font-size:1.2rem;line-height:1}
.gb-home-master-results{margin-top:9px;padding:9px;border:1px solid color-mix(in srgb,var(--accent,#76e6bf) 20%,transparent);border-radius:16px;background:color-mix(in srgb,var(--panel,#111827) 97%,var(--accent,#76e6bf) 3%)}
.gb-home-master-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:2px 3px 7px;font-size:.72rem;color:var(--muted)}
.gb-home-master-head strong{font-size:.76rem;color:inherit;font-weight:650}
.gb-home-master-cards{display:grid;gap:7px}
.gb-home-master-card{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 12px;border:1px solid color-mix(in srgb,var(--border,#334155) 68%,transparent);border-radius:13px;background:color-mix(in srgb,var(--panel,#111827) 96%,white 4%)}
.gb-home-master-copy{min-width:0;flex:1}.gb-home-master-title{display:flex;align-items:center;gap:7px;font-size:1rem;font-weight:720}.gb-home-master-title>span{min-width:0;overflow-wrap:anywhere}.gb-home-master-copy small{display:block;margin-top:1px;color:var(--muted);font-size:.65rem}.gb-home-master-translation{margin-top:4px;font-size:.83rem;line-height:1.3;color:var(--text)}
.gb-home-master-add{flex:0 0 auto;border:0;border-radius:10px;padding:8px 10px;background:var(--accent,#76e6bf);color:#07130f;font-size:.72rem;font-weight:720}.gb-home-master-add.is-added{background:transparent;color:var(--muted);border:1px solid var(--border,#334155)}
.gb-home-master-empty{padding:12px;text-align:center;color:var(--muted);font-size:.78rem}.gb-home-master-error{color:#e58d8d}
@media(max-width:640px){.gb-home-search-section{margin-top:10px}.gb-home-search-box{min-height:50px}.gb-home-master-card{align-items:flex-start;flex-wrap:wrap}.gb-home-master-add{margin-left:auto}.gb-home-master-copy{flex-basis:calc(100% - 90px)}}


/* v1.8.98 — Social lives in navigation; Home social hero removed. */
.gb-social-view{max-width:820px;margin:0 auto;padding-bottom:90px}.gb-social-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 18px}.gb-social-stats>div{display:flex;flex-direction:column;gap:3px;padding:15px 10px;border-radius:17px;background:var(--surface-1,var(--card));border:1px solid var(--border)}.gb-social-stats strong{font-size:1.35rem}.gb-social-stats span{font-size:.72rem;color:var(--muted)}
.gb-social-search-panel,.gb-social-section{margin-top:16px}.gb-social-search{display:flex;align-items:center;gap:10px;padding:3px 7px 3px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-1,var(--card))}.gb-social-search input{flex:1;min-width:0;border:0!important;background:transparent!important;box-shadow:none!important;padding:12px 2px!important;color:inherit}.gb-social-search .ghost{min-width:38px;padding:7px}
.gb-social-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.gb-social-section-head h2{font-size:1rem;margin:0}.gb-social-section-head span{font-size:.78rem;color:var(--muted)}.gb-social-list{display:grid;gap:8px}.gb-social-user{display:flex;align-items:center;gap:11px;padding:12px;border-radius:16px;background:var(--surface-1,var(--card));border:1px solid var(--border)}.gb-social-avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;font-weight:800;background:rgba(126,127,212,.15);color:#8d8fd2}.gb-social-user-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.gb-social-user-copy strong,.gb-social-user-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gb-social-user-copy small{color:var(--muted);font-size:.74rem}.gb-social-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.gb-social-actions button{padding:8px 10px;font-size:.75rem;border-radius:11px}.gb-social-empty{padding:16px;text-align:center;color:var(--muted);font-size:.86rem}
@media(max-width:520px){.gb-social-user{align-items:flex-start}.gb-social-actions{max-width:48%}.gb-social-actions button{padding:7px 8px;font-size:.7rem}.gb-social-stats>div{padding:12px 7px}.gb-home-social-hero{padding:15px 14px}}


/* v1.8.98 — Social polish, notification badge and shareable progress cards */
.gb-social-view{max-width:860px;margin:0 auto;padding:8px 10px 110px}
.gb-social-hero-new{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px 2px 12px}
.gb-social-hero-new h1{margin:3px 0 5px;font-size:clamp(2rem,7vw,3.1rem);letter-spacing:-.035em}
.gb-social-hero-new p{margin:0;max-width:560px;color:var(--muted);font-size:.94rem;line-height:1.45}
.gb-share-progress-btn{flex:0 0 auto;border-radius:16px;padding:12px 15px;background:linear-gradient(135deg,rgba(119,169,95,.22),rgba(82,148,211,.18));border:1px solid color-mix(in srgb,var(--green) 45%,var(--line));color:var(--text);box-shadow:var(--shadow-soft)}
.gb-social-stats-new{margin:10px 0 14px;gap:8px}.gb-social-stats-new>div{padding:14px 15px;text-align:left}.gb-social-stats-new strong{font-size:1.65rem}.gb-social-stats-new span{font-size:.72rem}
.gb-social-panel,.gb-social-search-panel-new,.gb-social-updates,.gb-social-achievements{margin:12px 0;padding:15px;border:1px solid var(--line);border-radius:20px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-soft)}
.gb-social-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}.gb-social-section-head h2{margin:2px 0 0;font-size:1.02rem}.gb-social-eyebrow{display:block;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.14em}.gb-social-count{min-width:25px;height:25px;display:grid;place-items:center;border-radius:999px;background:rgba(120,169,95,.13);color:var(--green);font-size:.72rem;font-weight:800}
.gb-social-search{min-height:48px;border-radius:15px;background:var(--surface-2);border:1px solid var(--line);padding:0 12px}.gb-social-search input{font-size:.98rem}
.gb-social-user{border-radius:16px;padding:11px 10px;background:transparent;border:0}.gb-social-user+.gb-social-user{border-top:1px solid var(--line);border-radius:0}.gb-social-avatar{width:44px;height:44px;border-radius:15px;background:linear-gradient(145deg,rgba(126,110,208,.22),rgba(75,112,181,.14));color:#9b8be7;font-size:1.03rem}
.gb-social-user-copy strong{font-size:.98rem}.gb-social-user-copy small{font-size:.75rem}.gb-social-actions{gap:6px}.gb-social-actions button{min-height:38px;padding:8px 11px;border-radius:13px;font-size:.76rem}.gb-social-small-action{opacity:.78}
.gb-social-secondary{margin:12px 0;border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden}.gb-social-secondary>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;padding:14px 16px;font-weight:750}.gb-social-secondary>summary::-webkit-details-marker{display:none}.gb-social-secondary>summary span{color:var(--muted);font-size:.72rem;font-weight:500}.gb-social-secondary .gb-social-section{padding:8px 14px 14px;margin:0}
.gb-social-events{display:grid;gap:7px}.gb-social-event{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:13px;background:var(--surface-2);font-size:.82rem}.gb-social-event-dot{width:8px;height:8px;border-radius:50%;background:var(--green);margin-top:5px;box-shadow:0 0 0 4px rgba(120,169,95,.10)}.gb-social-event small{display:block;color:var(--muted);font-size:.62rem;margin-top:3px}
.gb-social-nav-badge{position:absolute;top:4px;right:19%;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border-radius:999px;background:#d96565;color:#fff;font-size:.55rem;font-weight:900;line-height:1;box-shadow:0 0 0 2px var(--footer)}
.gb-achievement-inbox{display:grid;gap:10px}.gb-achievement-card{position:relative;overflow:hidden;border-radius:22px;padding:17px;border:1px solid rgba(120,169,95,.24);background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 86%,#78a95f 14%),color-mix(in srgb,var(--surface) 94%,#5c96d8 6%));box-shadow:0 10px 28px rgba(0,0,0,.06)}.gb-achievement-glow{position:absolute;right:-55px;top:-65px;width:180px;height:180px;border-radius:50%;background:rgba(120,169,95,.10);filter:blur(1px);pointer-events:none}.gb-achievement-kicker{position:relative;display:block;color:var(--green);font-size:.61rem;font-weight:900;letter-spacing:.14em}.gb-achievement-card h3{position:relative;margin:4px 0 13px;font-size:1.35rem}.gb-achievement-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.gb-achievement-grid>div{padding:10px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid var(--line)}.gb-achievement-grid strong{display:block;font-size:1.18rem}.gb-achievement-grid span{display:block;color:var(--muted);font-size:.64rem;margin-top:2px}.gb-achievement-streak,.gb-achievement-card-foot{position:relative;display:flex;align-items:center;gap:7px;margin-top:11px;color:var(--muted);font-size:.77rem}.gb-achievement-streak strong{color:var(--text);font-size:1.05rem}.gb-achievement-card-foot{justify-content:space-between}.gb-achievement-card-foot button{padding:5px 8px;border-radius:10px;background:transparent;border:1px solid var(--line);font-size:.85rem}.gb-achievement-card-foot button.active{background:rgba(120,169,95,.16);border-color:rgba(120,169,95,.4)}.gb-achievement-from{position:relative;display:flex;align-items:center;gap:9px;margin-bottom:11px}.gb-achievement-from .gb-social-avatar{width:34px;height:34px;border-radius:11px}.gb-achievement-from>div{display:flex;flex-direction:column;flex:1}.gb-achievement-from strong{font-size:.82rem}.gb-achievement-from small,.gb-achievement-from>span{color:var(--muted);font-size:.61rem}.gb-achievement-received.is-new{box-shadow:0 0 0 1px rgba(120,169,95,.30),0 12px 30px rgba(0,0,0,.07)}
.gb-achievement-dialog,.gb-milestone-dialog{width:min(94vw,520px);border:0;border-radius:24px;padding:0;background:var(--surface);color:var(--text);box-shadow:0 26px 80px rgba(0,0,0,.35)}.gb-achievement-dialog::backdrop,.gb-milestone-dialog::backdrop{background:rgba(4,13,20,.62);backdrop-filter:blur(5px)}.gb-achievement-dialog-body{padding:18px}.gb-achievement-dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.gb-achievement-dialog-head h2{margin:2px 0 0;font-size:1.25rem}.gb-achievement-dialog-head button{font-size:1.35rem}.gb-card-type-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 10px}.gb-card-type-tabs button{border-radius:12px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.gb-card-type-tabs button.active{color:var(--text);border-color:rgba(120,169,95,.42);background:rgba(120,169,95,.12)}.gb-achievement-recipient{display:flex;flex-direction:column;gap:5px;margin:12px 0 7px;font-size:.73rem;color:var(--muted)}.gb-achievement-recipient select{min-height:44px;border-radius:13px}.gb-achievement-send-note{min-height:18px;color:var(--muted);font-size:.69rem;margin-bottom:8px}.gb-achievement-send-btn{width:100%;min-height:46px;border-radius:14px}.gb-milestone-body{position:relative;overflow:hidden;padding:28px 22px 20px;text-align:center}.gb-milestone-body h2{font-size:1.8rem;margin:5px 0 7px}.gb-milestone-body p{color:var(--muted);margin:0 auto 18px;max-width:360px}.gb-milestone-confetti{font-size:2rem;letter-spacing:.25em;color:var(--green);animation:gbMilestoneFloat 1.6s ease-in-out infinite alternate}.gb-milestone-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gb-milestone-actions button{min-height:44px;border-radius:14px}@keyframes gbMilestoneFloat{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-5px) rotate(2deg)}}
@media(max-width:640px){.gb-social-view{padding:3px 8px 96px}.gb-social-hero-new{align-items:flex-start;flex-direction:column;padding-top:6px}.gb-share-progress-btn{width:100%;justify-content:center}.gb-social-stats-new>div{padding:11px}.gb-social-stats-new strong{font-size:1.4rem}.gb-social-panel,.gb-social-search-panel-new,.gb-social-updates,.gb-social-achievements{padding:12px;border-radius:17px}.gb-social-actions{flex-wrap:wrap;justify-content:flex-end}.gb-achievement-dialog-body{padding:14px}.gb-achievement-card{padding:14px;border-radius:19px}}
@media(prefers-reduced-motion:reduce){.gb-milestone-confetti{animation:none}}


/* v1.8.98 — automatic “Последние 10” set */
.gb-system-set-card{border-color:color-mix(in srgb,var(--green) 35%,var(--line));background:linear-gradient(110deg,rgba(120,169,95,.08),transparent 55%),var(--surface)}
.gb-system-set-card .set-card-icon{color:var(--green)}
.gb-set-title-row{display:flex;align-items:center;gap:7px;min-width:0}
.gb-set-auto-badge{flex:0 0 auto;padding:3px 6px;border-radius:999px;background:rgba(120,169,95,.13);border:1px solid rgba(120,169,95,.28);color:var(--green);font-size:.52rem;font-weight:850;letter-spacing:.08em}
.gb-system-set-card .set-card-info small{color:var(--muted)}


/* v1.8.98 — Home search focus mode: pin the field while iOS keyboard is open. */
@media(max-width:900px){
  body[data-view="home"].gb-home-search-active{
    overflow:hidden;
  }
  body[data-view="home"].gb-home-search-active .shell{
    overflow:hidden !important;
    padding-top:4px !important;
  }
  body[data-view="home"].gb-home-search-active #homeView.render-home{
    display:block !important;
    width:min(100%,760px);
    min-height:0;
    margin:0 auto;
    overflow:visible;
  }

  /* Everything except search collapses while the keyboard/search mode is active. */
  body[data-view="home"].gb-home-search-active #homeView > :not(.gb-home-search-section){
    display:none !important;
  }

  /* Fixed instead of sticky: Safari/iOS can pan the layout viewport when typing,
     which used to push the sticky search field above the visible screen. */
  body[data-view="home"].gb-home-search-active .gb-home-search-section{
    position:fixed !important;
    left:8px;
    right:8px;
    top:calc(var(--gb-vv-offset-top,0px) + var(--gb-search-top,54px)) !important;
    z-index:150;
    width:auto;
    max-width:744px;
    margin:0 auto !important;
    padding:5px 0 8px;
    background:var(--bg);
    animation:gbHomeSearchLift .16s ease-out both;
  }
  body[data-view="home"].gb-home-search-active .gb-home-search-box{
    min-height:54px;
    border-radius:17px;
    box-shadow:0 8px 26px rgba(0,0,0,.14),0 0 0 1px color-mix(in srgb,var(--accent,#76e6bf) 26%,transparent);
  }
  body[data-view="home"].gb-home-search-active #homeWordSearch{
    font-size:16px !important;
  }
  body[data-view="home"].gb-home-search-active .gb-home-master-results{
    margin-top:8px;
    max-height:calc(var(--gb-visual-height,100vh) - var(--gb-search-top,54px) - 132px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    box-shadow:0 12px 30px rgba(0,0,0,.10);
  }
  body[data-view="home"].gb-home-search-active .gb-home-master-cards{gap:6px}
  body[data-view="home"].gb-home-search-active .gb-home-master-card{padding:9px 9px 9px 11px}
}
@keyframes gbHomeSearchLift{
  from{opacity:.82;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
  body[data-view="home"].gb-home-search-active .gb-home-search-section{animation:none}
}


/* v1.8.98 — the post-answer swipe arrow is also a tap target. */
.study-swipe-ready-hint{
  width:58px!important;
  height:58px!important;
  right:8px!important;
  bottom:6px!important;
  padding:8px!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:1!important;
  pointer-events:auto!important;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  animation:none!important;
}
.study-swipe-ready-hint span{
  width:42px;
  height:42px;
  display:grid!important;
  place-items:center;
  border-radius:50%;
  color:#f2fff5;
  background:linear-gradient(145deg,#59cf82,#269d5a);
  border:1px solid rgba(255,255,255,.42);
  box-shadow:0 5px 12px rgba(29,128,72,.24),inset 0 1px 1px rgba(255,255,255,.38);
  font-size:1.55rem;
  font-weight:900;
  line-height:1;
  text-shadow:0 1px 2px rgba(0,0,0,.16);
  animation:gbSwipeReadyPulseInner 1.9s ease-in-out infinite;
}
.study-swipe-ready-hint:active span{
  transform:scale(.92)!important;
  box-shadow:0 3px 8px rgba(29,128,72,.20),inset 0 1px 1px rgba(255,255,255,.30);
}
.study-swipe-ready-hint:focus-visible{
  outline:2px solid color-mix(in srgb,var(--green) 72%,white);
  outline-offset:1px;
}
.study-awaiting-swipe.is-dragging .study-swipe-ready-hint{
  opacity:0!important;
  pointer-events:none!important;
}
@keyframes gbSwipeReadyPulseInner{
  0%,100%{transform:translateX(0) scale(1)}
  50%{transform:translateX(-3px) scale(1.055)}
}
@media(max-width:520px){
  .study-swipe-ready-hint{width:56px!important;height:56px!important;right:6px!important;bottom:4px!important;padding:8px!important}
  .study-swipe-ready-hint span{width:40px;height:40px}
}
@media(prefers-reduced-motion:reduce){
  .study-swipe-ready-hint span{animation:none!important}
}


/* v1.8.98 — cleaner, brighter success/error feedback colors */
:root{
  --gb-feedback-green:#35c96f;
  --gb-feedback-green-deep:#1fa85a;
  --gb-feedback-green-soft:rgba(53,201,111,.16);
  --gb-feedback-red:#e25a5f;
  --gb-feedback-red-deep:#c94349;
  --gb-feedback-red-soft:rgba(226,90,95,.16);
}

.unified-training-card .feedback-panel.correct,
.unified-training-card .study-feedback.correct,
.unified-training-card .answer-feedback.correct,
.unified-training-card .training-feedback.correct,
.study-feedback.correct,
.answer-feedback.correct{
  background:linear-gradient(180deg,var(--gb-feedback-green-soft),rgba(53,201,111,.10))!important;
  border-color:rgba(53,201,111,.34)!important;
}

.unified-training-card .feedback-panel.wrong,
.unified-training-card .study-feedback.wrong,
.unified-training-card .answer-feedback.wrong,
.unified-training-card .training-feedback.wrong,
.study-feedback.wrong,
.answer-feedback.wrong{
  background:linear-gradient(180deg,var(--gb-feedback-red-soft),rgba(226,90,95,.10))!important;
  border-color:rgba(226,90,95,.34)!important;
}

/* Correct / wrong choice buttons in 4-answer modes */
.unified-training-card .article-choice-options button.correct,
.unified-training-card .answer-grid button.correct,
.unified-training-card .training-choices button.correct,
.answer-grid button.correct,
.training-choices button.correct{
  background:linear-gradient(180deg,var(--gb-feedback-green-soft),rgba(53,201,111,.10))!important;
  border-color:var(--gb-feedback-green)!important;
  color:#effff4!important;
  box-shadow:0 0 0 1px rgba(53,201,111,.12) inset, 0 8px 18px rgba(31,168,90,.12)!important;
}

.unified-training-card .article-choice-options button.wrong,
.unified-training-card .answer-grid button.wrong,
.unified-training-card .training-choices button.wrong,
.answer-grid button.wrong,
.training-choices button.wrong{
  background:linear-gradient(180deg,var(--gb-feedback-red-soft),rgba(226,90,95,.10))!important;
  border-color:var(--gb-feedback-red)!important;
  color:#fff5f5!important;
  box-shadow:0 0 0 1px rgba(226,90,95,.10) inset, 0 8px 18px rgba(201,67,73,.12)!important;
}

/* Writing / typing mode summary block */
.study-answer-banner.correct,
.training-status.correct,
.answer-status.correct{
  background:linear-gradient(180deg,rgba(53,201,111,.18),rgba(53,201,111,.12))!important;
  border-color:rgba(53,201,111,.34)!important;
}
.study-answer-banner.wrong,
.training-status.wrong,
.answer-status.wrong{
  background:linear-gradient(180deg,rgba(226,90,95,.18),rgba(226,90,95,.12))!important;
  border-color:rgba(226,90,95,.34)!important;
}

/* Icon bubbles / chips */
.study-answer-banner.correct .icon,
.training-status.correct .icon,
.answer-status.correct .icon,
.feedback-icon.correct{
  background:linear-gradient(145deg,var(--gb-feedback-green),var(--gb-feedback-green-deep))!important;
  color:white!important;
}
.study-answer-banner.wrong .icon,
.training-status.wrong .icon,
.answer-status.wrong .icon,
.feedback-icon.wrong{
  background:linear-gradient(145deg,var(--gb-feedback-red),var(--gb-feedback-red-deep))!important;
  color:white!important;
}

/* Existing green / red blocks seen in typing screen */
.unified-training-card .typing-result.correct,
.unified-training-card .writing-result.correct,
.unified-training-card .result-panel.correct,
.unified-training-card .feedback-result.correct{
  background:linear-gradient(180deg,rgba(53,201,111,.18),rgba(53,201,111,.12))!important;
  border-color:rgba(53,201,111,.34)!important;
}
.unified-training-card .typing-result.wrong,
.unified-training-card .writing-result.wrong,
.unified-training-card .result-panel.wrong,
.unified-training-card .feedback-result.wrong{
  background:linear-gradient(180deg,rgba(226,90,95,.18),rgba(226,90,95,.12))!important;
  border-color:rgba(226,90,95,.34)!important;
}

/* Stronger title color inside green/red result areas */
.training-status.correct strong,
.study-answer-banner.correct strong,
.answer-status.correct strong,
.result-panel.correct strong{
  color:#f4fff8!important;
}
.training-status.wrong strong,
.study-answer-banner.wrong strong,
.answer-status.wrong strong,
.result-panel.wrong strong{
  color:#fff7f7!important;
}


/* v1.8.98 — make “Формы” tasks unmistakable: article / Partizip II / translation etc. */
.unified-training-card .forms-focus .study-task-kind{
  position:absolute!important;
  top:54px!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  z-index:4!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:27px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(179,135,69,.12);
  border:1px solid rgba(179,135,69,.26);
  color:#d7ad68;
  font-size:.61rem;
  font-weight:850;
  letter-spacing:.11em;
  white-space:nowrap;
}
.unified-training-card .forms-focus .study-ask{
  position:absolute!important;
  top:92px!important;
  left:18px!important;
  right:18px!important;
  z-index:4!important;
  text-align:center;
  color:var(--muted);
  font-size:.92rem;
  font-weight:650;
}
@media(max-width:520px){
  .unified-training-card .forms-focus .study-task-kind{top:51px!important}
  .unified-training-card .forms-focus .study-ask{top:88px!important;font-size:.88rem}
}


/* v1.8.98 — compact PWA install card, shown only when Chrome offers installation. */
.pwa-install-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 16px;
  padding:14px 15px;
  border:1px solid color-mix(in srgb,var(--accent,#55cdb0) 38%,var(--line));
  border-radius:18px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#55cdb0) 12%,var(--surface)),var(--surface));
}
.pwa-install-card.hidden{display:none!important}
.pwa-install-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.pwa-install-copy strong{font-size:.98rem}
.pwa-install-copy span{font-size:.82rem;line-height:1.35;color:var(--muted)}
.pwa-install-card .primary{flex:0 0 auto;min-height:42px;padding:0 15px;border-radius:13px}
@media(max-width:520px){
  .pwa-install-card{align-items:flex-start}
  .pwa-install-card .primary{min-height:40px;padding:0 13px}
}
