/* Small non-design runtime components: the six user-supplied v145 screens
   and their 232KB locked stylesheet remain byte-for-byte unchanged. */
#app,#speakV145{width:100%;max-width:100%}
#speakV145{overflow-anchor:none}
#speakV145 .no-reference-photo{background:linear-gradient(135deg,#233b3a,#112f2c)}
#speakV145 .ref-level-card{cursor:pointer;display:block;width:100%;border:1px solid var(--brd);border-radius:14px;margin:9px 0;padding:15px;background:var(--card);color:var(--text);text-align:left;font:700 14px 'DM Sans',system-ui}
#speakV145 .ref-level-card span{display:block;margin:6px 0 0;font-weight:400;opacity:.8}
#speakV145 .ref-level-word{display:flex;justify-content:space-between;gap:10px;padding:10px 8px;border-bottom:1px solid var(--brd)}
#speakV145 .ref-empty{margin:12px 0;padding:15px;border:1px dashed var(--brd);border-radius:14px;font:13px/1.5 'DM Sans',system-ui;color:var(--muted)}
.subscription-box{position:relative;max-width:calc(100vw - 24px);max-height:calc(100svh - 32px);overflow-y:auto;overflow-wrap:anywhere}
.subscription-box form{display:grid;gap:12px;margin:20px 0;text-align:left}
.subscription-box form[hidden]{display:none}
.subscription-box select{width:100%;min-width:0;padding:12px;border:1px solid var(--brd);border-radius:10px;background:var(--card);color:var(--text);font:inherit}
.subscription-box .subscription-note,.conversation-subscription p{font:13px/1.6 'DM Sans',sans-serif;color:var(--muted)}
.subscription-benefits{padding-inline-start:22px;text-align:start;font:13px/1.6 'DM Sans',sans-serif;color:var(--muted)}
.subscription-benefits li{margin:8px 0}
.conversation-subscription{margin:15px 0}
.conversation-subscription .cplay-action{width:100%;margin-top:8px}
#speakV145 .ref-drow-core{min-width:0;flex:1}
#speakV145 .ref-translation{font-weight:800;margin-top:6px}
#speakV145 .ref-phonetic{font-size:12px;color:var(--muted);margin-top:5px}
#speakV145 .ref-dict-category{border:1px solid var(--brd);border-radius:30px;padding:7px 12px;margin:3px;cursor:pointer;background:var(--card);color:var(--text)}
#speakV145 .ref-revise{border:1px solid var(--brd);background:transparent;color:var(--text);border-radius:9px;padding:7px;font-size:11px}
#speakV145 .ref-finish{text-align:center;padding:30px 6px}.ref-finish strong{display:block;font-size:25px;margin:12px 0}
#speakV145 .ref-local{font-size:11px}
#speakV145 .gameboard,#speakV145 .answers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
#speakV145 .panel{margin:10px 0 18px;padding:18px;border:1px solid var(--brd);border-radius:16px;background:var(--card)}
#speakV145 .panel h2{font-size:19px;margin-bottom:12px}
#speakV145 .panel .quiz-prompt{font-size:30px;font-weight:900;text-align:center;margin:16px 0}
#speakV145 .panel .primary,#speakV145 .panel .secondary,#speakV145 .panel .answer,#speakV145 .panel .card{border:1px solid var(--brd);border-radius:11px;padding:13px;color:var(--text);background:var(--card)}
#speakV145 .panel .primary{background:var(--accent);color:#111;font-weight:800}
#speakV145 .panel .answer,#speakV145 .panel .card{width:100%;font-weight:700}
#speakV145 .panel .hint{font-size:12px;color:var(--muted)}
#speakV145 #gameHubScreen .game-hub-grid[style*="display: none"] + #activity{margin-top:15px}
/* The original sentinel is passive; its explicit pagination fallback is clickable. */
#dictScreen button.dict-load-sentinel{pointer-events:auto;cursor:pointer;opacity:1}
#speakV145 .dpl-row[hidden]{display:none}
/* Let expanded dictionary actions participate in the card height. */
#dictScreen .ditem.exp .drow{height:auto}
/* Le mot en LANGUE CIBLE et sa phonetique s'affichent en ORANGE, dans toutes les applications. */
#speakV145 .dph,
#speakV145 .cwtn,
#speakV145 .ref-translation{color:#FFD84D !important}
#speakV145 .dar,
#speakV145 .ref-phonetic{color:#FFD84D !important}
/* La traduction (mot en langue cible) dans le dictionnaire : plus grande et lisible. */
#dictScreen .dph{font-size:1rem !important;line-height:1.35}
#dictScreen .dar{font-size:.95rem !important}
/* Shared responsive corrections. Keep the locked original stylesheet intact. */
#app,#speakV145{min-width:0;margin-inline:auto}
#speakV145 .screen{min-width:0;margin-inline:auto}
#homeScreen .hero-home{width:100%;max-width:100%;left:auto;margin-left:auto;margin-right:auto}
#speakV145 .wfr,#speakV145 .wtn,#speakV145 .w-ar,#speakV145 .w-pron,
#speakV145 .opt,#speakV145 .pw,#speakV145 .pair-card,#speakV145 .puzzle-token,
#speakV145 .cplay-tn,#speakV145 .cplay-fr,#speakV145 .ref-level-word>*,
#speakV145 .diff-info,#speakV145 .diff-ph{min-width:0;max-width:100%;overflow-wrap:anywhere}
#speakV145 .cplay-native-script{font:1.15rem/1.7 'Noto Naskh Arabic',serif;color:var(--accent);overflow-wrap:anywhere;margin-top:5px}
#speakV145 #conversationScreen .conv-card,#speakV145 #conversationScreen .conv-card>div{min-width:0;max-width:100%}
#speakV145 #conversationScreen .conv-name{white-space:normal;overflow-wrap:anywhere}
#speakV145 .yg-big{min-width:0;max-width:100%;overflow-wrap:anywhere}
/* Preserve the supplied landing renderer and constrain its intrinsic grid
   tracks when original fonts or long translated words exceed a narrow screen. */
#deLanding .ld-strip,#deLanding .ld-dico,#deLanding .ld-grid,#deLanding .ld-why,#deLanding .ld-steps{min-width:0}
#deLanding .ld-strip>*,#deLanding .ld-dico>*,#deLanding .ld-grid>*,#deLanding .ld-why>*,#deLanding .ld-steps>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
#deLanding h1,#deLanding h2,#deLanding .ld-card{overflow-wrap:anywhere;min-width:0}
#deLanding .ld-steps{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:820px){#deLanding .ld-steps{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
#dictScreen .ditem{min-width:0}
#dictScreen .drow>div:first-child,#dictScreen .dpr>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
#dictScreen .dtg{white-space:normal;overflow-wrap:anywhere}
#speakV145 .cwmain{flex-direction:column;align-items:stretch}
#speakV145 .cwtop,#speakV145 .cwar{min-width:0;max-width:100%;overflow-wrap:anywhere}
#speakV145 .cwtop>*{min-width:0;overflow-wrap:anywhere}
#speakV145 .toast{max-width:calc(100vw - 24px);white-space:normal;text-align:center;overflow-wrap:anywhere}

/* Original st_4lang_layout_v79 settings selector, shared across apps. */
.st-settings-lang-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.st-settings-lang-row button{border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#26364a;color:#fff;padding:9px 11px;font:800 .72rem 'DM Sans',sans-serif;cursor:pointer;min-width:0}
.st-settings-lang-row button.on{background:linear-gradient(135deg,#ffe58d,#f8c65d);color:#172235;border-color:#fff1a8}
@media(max-width:650px){.st-settings-lang-row button{flex:1 1 42%}}
#historicalGifts details{margin:10px 0;text-align:left;overflow-wrap:anywhere}
#historicalGifts summary{cursor:pointer;font-weight:800}
/* Accueil : image PLEIN ECRAN sans debordement horizontal (corrige le decalage / la marge a droite). */
body{--hpad:14px}
@media(max-width:699px){body{--hpad:10px}}
@media(max-width:390px){body{--hpad:8px}}
#speakV145 .hero-home{
  width:100vw !important;
  max-width:none !important;
  left:auto !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
}
/* The owner requests a taller home frame, without cropping the original image.
   Align the complete bitmap with the top edge; its proportions still constrain
   the painted height on narrow screens. Progress follows that painted bitmap. */
#speakV145 #homeScreen .hero-home-media{
  --home-image-ratio:1.333333;
  --home-frame-height:60vh;
  --home-frame-height:60svh;
  --home-painted-width:min(100vw,calc(var(--home-frame-height) * var(--home-image-ratio)));
  --home-painted-height:min(var(--home-frame-height),calc(100vw / var(--home-image-ratio)));
  height:60vh;
  height:60svh;
  aspect-ratio:auto;
}
#speakV145 #homeScreen .hero-home-img{
  width:100%;height:100%;object-fit:contain;object-position:50% 0%;
}
#speakV145 #homeScreen .hero-home-shade{
  inset:auto;
  width:var(--home-painted-width);height:var(--home-painted-height);
  left:50%;top:0;transform:translateX(-50%);
}
#speakV145 #homeScreen .hero-home-head{
  inset-inline:auto;
  width:calc(var(--home-painted-width) - 24px);
  left:50%;right:auto;transform:translateX(-50%);
  bottom:calc(var(--home-frame-height) - var(--home-painted-height) + 8px);
}
#speakV145 #homeScreen .hero-home-kicker{
  color:#FFD84D !important;
  font-size:clamp(.7rem,2.3vw,.95rem);
}
#speakV145 #homeScreen .hero-home-title,
#speakV145 #homeScreen .hero-home-title span{
  color:#fff !important;
  font-size:clamp(1.25rem,4.8vw,1.9rem);
  line-height:1.15;
}
#speakV145 #homeScreen .hero-home-bar{margin:8px 0 4px}
#speakV145 #flashScreen[data-learning-stage="flash"] #fBtns{grid-template-columns:1fr}
#speakV145 #flashScreen[data-learning-stage="flash"] #fBtns button[hidden]{display:none}
#speakV145 .ref-learning-heading{margin:8px 0 14px;font-weight:800;text-align:center}
