.repeat-page { min-height:100vh; background:linear-gradient(145deg,var(--bg),var(--bg2)); color:var(--text); }
.repeat-shell { width:min(980px,calc(100% - 32px)); margin:0 auto; padding:28px 0 48px; }
.repeat-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.repeat-actions { display:flex; align-items:center; gap:16px; }
.repeat-bottom-actions { display:flex; justify-content:center; gap:12px; margin-top:20px; padding-top:18px; border-top:1px solid var(--border); }
.repeat-restart,.repeat-exit { padding:8px 12px; border:1px solid var(--border-strong); border-radius:999px; color:var(--text); text-decoration:none; font-size:13px; font-weight:800; background:var(--surface2); cursor:pointer; }
.repeat-restart:hover,.repeat-exit:hover { background:rgba(var(--accent-rgb),.22); }
.repeat-exit { color:var(--danger); }
.repeat-back { color:var(--text2); text-decoration:none; font-weight:700; }
.repeat-back:hover { text-decoration:underline; }
.repeat-report { padding:8px 12px; border:1px solid var(--border-strong); border-radius:999px; color:var(--accent); text-decoration:none; font-size:13px; font-weight:800; background:var(--surface2); }.repeat-report:hover { background:rgba(var(--accent-rgb),.22); }
.repeat-kicker { color:var(--accent); font-size:13px; text-transform:uppercase; letter-spacing:.12em; }
.repeat-card { background:var(--surface); border:1px solid var(--border); border-radius:22px; padding:28px; box-shadow:var(--shadow-lg); }
.repeat-card h1 { margin:0 0 8px; font-size:clamp(26px,4vw,42px); }
.repeat-card .intro { color:var(--text2); margin:0 0 20px; }
.repeat-stats { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.repeat-stat { background:var(--surface2); border:1px solid var(--border); padding:8px 13px; border-radius:999px; color:var(--text2); font-size:13px; }
.repeat-feedback { min-height:24px; text-align:center; font-weight:800; color:var(--accent); }
.repeat-feedback.good { color:var(--success); }
.repeat-feedback.bad { color:var(--danger); }
.repeat-zone { position:relative; min-height:360px; border:2px dashed var(--border-strong); border-radius:18px; background:var(--surface3); overflow:hidden; display:flex; align-items:center; justify-content:center; }
.repeat-message { color:var(--text2); text-align:center; padding:20px; font-size:18px; }
.repeat-button { border:0; border-radius:14px; padding:14px 22px; font-weight:800; cursor:pointer; background:var(--accent); color:var(--bg); box-shadow:0 8px 18px rgba(var(--accent-rgb),.3); }
.repeat-button:hover { filter:brightness(1.08); transform:translateY(-1px); }
.repeat-button.secondary { background:var(--surface2); color:var(--text); }
.repeat-target { position:absolute; width:76px; height:76px; border-radius:50%; border:4px solid var(--border-strong); background:var(--accent3); color:var(--text); font-size:25px; font-weight:800; cursor:pointer; display:grid; place-items:center; box-shadow:0 8px 22px rgba(var(--accent3-rgb),.4); user-select:none; }
.repeat-token { position:absolute; width:64px; height:64px; border-radius:14px; display:grid; place-items:center; background:#fbbf24; color:#422006; font-weight:900; cursor:grab; user-select:none; touch-action:none; }
.repeat-drop { width:190px; height:130px; border:3px dashed var(--border-strong); border-radius:16px; display:grid; place-items:center; color:var(--text2); text-align:center; }
.repeat-drag-board,.path-board { position:relative; width:92%; height:min(320px,62vw); max-height:88%; }
.repeat-drag-board .repeat-drop,.repeat-drag-board .repeat-token { position:absolute; }
.repeat-drop.placed { background:rgba(var(--accent2-rgb),.18); }
.repeat-token.dragging { transform:scale(1.08); box-shadow:0 14px 30px rgba(0,0,0,.35); cursor:grabbing; }
.repeat-drop small { display:block; color:var(--text2); margin-top:4px; }
.hold-workspace { width:min(520px,90%); display:grid; justify-items:center; gap:13px; text-align:center; }
.hold-brief { display:grid; gap:2px; }.hold-brief span { color:var(--accent); font-size:11px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }.hold-brief strong { color:var(--text); font-size:19px; }.hold-brief small { color:var(--text3); }
.hold-dial { --progress:0deg; width:172px; height:172px; display:grid; place-items:center; padding:10px; border-radius:50%; background:conic-gradient(var(--accent) 0deg,var(--success) var(--progress),var(--bg3) var(--progress),var(--bg3) 360deg); box-shadow:0 0 0 1px var(--border-strong),0 14px 30px rgba(0,0,0,.25); transition:box-shadow .2s,background .15s; }.hold-dial.active { box-shadow:0 0 0 5px rgba(var(--accent2-rgb),.17),0 0 28px rgba(var(--accent-rgb),.35); }.hold-dial.release { background:conic-gradient(var(--warning) 0deg,#e08a2b 360deg); box-shadow:0 0 0 6px rgba(var(--warning-rgb),.25),0 0 34px rgba(var(--warning-rgb),.55); animation:hold-release-pulse .38s infinite alternate; }
.hold-button { width:100%; height:100%; display:grid; place-content:center; gap:3px; border:1px solid var(--border-strong); border-radius:50%; background:radial-gradient(circle at 35% 28%,var(--bg3),var(--bg2) 68%); color:var(--text); cursor:pointer; user-select:none; touch-action:none; box-shadow:inset 0 2px 0 rgba(255,255,255,.16),inset 0 -8px 16px rgba(0,0,0,.25); transition:transform .12s,background .12s; }.hold-button b { font-size:16px; }.hold-button small { color:var(--text3); font-size:12px; }.hold-icon { color:var(--warning); font-size:28px; line-height:1; }.hold-button.holding { transform:scale(.96); background:radial-gradient(circle at 35% 28%,rgba(var(--accent2-rgb),.35),var(--bg2) 68%); }.hold-button.holding .hold-icon { color:var(--success); }.hold-button.release-now { transform:scale(.94); background:radial-gradient(circle at 35% 28%,rgba(var(--warning-rgb),.4),var(--bg2) 68%); }.hold-button.release-now .hold-icon { color:var(--warning); }
@keyframes hold-release-pulse { from { transform:scale(1); } to { transform:scale(1.045); } }
.hold-tip { margin:0; color:var(--text3); font-size:12px; }
.wheel-workspace { width:min(760px,92%); display:grid; gap:12px; }
.wheel-brief { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px; padding:13px 16px; border:1px solid var(--border); border-radius:16px; background:linear-gradient(145deg,var(--bg3),var(--bg2)); box-shadow:inset 0 1px 0 rgba(255,255,255,.1); }
.wheel-symbol { width:44px; height:44px; display:grid; place-items:center; border-radius:12px; background:var(--bg3); color:var(--text2); font-size:28px; font-weight:900; transition:.18s; }
.wheel-brief strong,.wheel-brief span,.wheel-brief small { display:block; }.wheel-brief strong { color:var(--text); font-size:16px; }.wheel-brief span,.wheel-brief small { color:var(--text3); font-size:12px; }.wheel-brief.active .wheel-symbol { background:rgba(var(--accent2-rgb),.35); color:var(--text); transform:translateY(-2px); }
.wheel-progress-wrap { display:flex; align-items:center; gap:8px; }
.wheel-progress { width:94px; height:9px; overflow:hidden; border-radius:999px; background:var(--bg3); position:relative; }.wheel-progress i { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--accent),var(--success)); transition:width .15s; }
.wheel-progress-label { color:var(--accent); font-size:10px; font-weight:800; white-space:nowrap; }
.wheel-scroller { height:250px; overflow-y:auto; overscroll-behavior:contain; padding:9px; border:1px solid var(--border); border-radius:16px; background:var(--bg3); scrollbar-color:var(--accent) var(--bg2); }
.repeat-scroll-content { display:grid; gap:8px; padding:2px; }
.wheel-list-intro { display:flex; align-items:end; justify-content:space-between; gap:14px; padding:9px 8px 12px; color:var(--text2); border-bottom:1px solid var(--border); }.wheel-list-intro span { color:var(--text); font-size:14px; font-weight:800; }.wheel-list-intro small { color:var(--text3); text-align:right; }
.scroll-row { display:grid; grid-template-columns:25px 1fr auto; align-items:center; min-height:46px; padding:0 13px; border:1px solid var(--border); border-radius:10px; background:linear-gradient(90deg,var(--bg3),var(--bg2)); color:var(--text2); }.scroll-row b { color:var(--text3); font-size:12px; }.scroll-row-icon { color:var(--accent); font-size:18px; }
.wheel-target { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:0 12px; min-height:70px; padding:10px 15px; border:1px solid var(--warning); border-radius:12px; background:linear-gradient(135deg,rgba(var(--warning-rgb),.32),rgba(var(--warning-rgb),.12)); color:var(--text); cursor:pointer; text-align:left; box-shadow:0 7px 16px rgba(0,0,0,.22); }.wheel-target span { grid-row:span 2; font-size:30px; color:var(--warning); }.wheel-target b { font-size:15px; }.wheel-target small { color:var(--text2); }.wheel-target:hover { filter:brightness(1.15); transform:translateY(-1px); }
.path-dot { position:absolute; width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:var(--bg3); border:3px solid var(--border-strong); color:var(--text2); font-weight:800; transition:.15s; }
.path-dot:hover,.path-dot.hit { background:var(--success); color:var(--bg); transform:scale(1.08); }
.path-line { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.path-line polyline { fill:none; stroke:var(--accent); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:7 5; }
.path-level-1 .path-line polyline { stroke:var(--success); }.path-level-2 .path-line polyline { stroke:#c084fc; stroke-dasharray:4 4; }
.path-route-name { position:absolute; top:8px; left:10px; z-index:2; padding:5px 9px; border-radius:999px; background:var(--surface3); color:var(--text2); font-size:11px; font-weight:800; letter-spacing:.04em; }
.path-marker { position:absolute; z-index:1; width:11px; height:11px; margin:-5.5px 0 0 -5.5px; border:2px solid var(--text2); border-radius:50%; background:var(--accent3); box-shadow:0 0 0 3px var(--surface3); pointer-events:none; }.path-marker.start { width:17px; height:17px; margin:-8.5px 0 0 -8.5px; border-color:var(--warning); background:var(--warning); }.path-marker.end { width:17px; height:17px; margin:-8.5px 0 0 -8.5px; border-color:rgba(var(--success-rgb),.5); background:var(--success); }
.path-handle { position:absolute; width:34px; height:34px; margin:-17px 0 0 -17px; border-radius:50%; background:var(--warning); color:var(--bg); display:grid; place-items:center; cursor:grab; touch-action:none; box-shadow:0 4px 12px rgba(var(--warning-rgb),.4); }
.repeat-progress { width:min(420px,80%); height:18px; border-radius:999px; background:var(--bg3); overflow:hidden; border:1px solid var(--border); }
.repeat-progress > span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--accent),var(--success)); transition:width .08s linear; }
.key-workspace { width:min(920px,96%); display:grid; justify-items:center; gap:18px; }
.key-prompt { display:grid; justify-items:center; gap:5px; text-align:center; }
.key-prompt-label { color:var(--accent); font-size:11px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.key-prompt p { margin:0; color:var(--text2); }
.repeat-sequence.key-target { display:grid; place-items:center; min-width:96px; min-height:70px; margin:0; padding:5px 18px; border:1px solid var(--border-strong); border-radius:16px; background:linear-gradient(145deg,var(--bg3),var(--bg2)); box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 12px 25px rgba(0,0,0,.24); font-size:clamp(28px,4vw,42px); letter-spacing:.05em; }
.swiss-keyboard { width:100%; padding:17px; border:1px solid var(--border); border-radius:22px; background:linear-gradient(145deg,var(--bg3),var(--bg2)); box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 16px 28px rgba(0,0,0,.24); }
.swiss-keyboard-head { display:flex; justify-content:space-between; padding:0 6px 12px; color:var(--text3); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.repeat-keyboard { display:grid; gap:7px; width:100%; }
.repeat-key-row { display:flex; gap:7px; justify-content:center; }
.repeat-key-row:nth-child(2) { padding-left:18px; }.repeat-key-row:nth-child(3) { padding-left:30px; }.repeat-key-row:nth-child(4) { padding-left:46px; }
.repeat-key { flex:1 1 0; min-width:0; min-height:52px; border:1px solid var(--border-strong); border-radius:9px; background:linear-gradient(145deg,var(--bg3),var(--bg2)); box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 3px 0 var(--bg); color:var(--text); font-weight:800; cursor:pointer; transition:transform .12s,background .12s,box-shadow .12s; }
.repeat-key.wide { flex-grow:1.45; }.repeat-key.caps { flex-grow:1.7; font-size:11px; }.repeat-key.enter { flex-grow:1.75; }.repeat-key.shift { flex-grow:2; }.repeat-key.space { flex-grow:5.3; }.repeat-key.ctrl,.repeat-key.fn,.repeat-key.win,.repeat-key.alt,.repeat-key.altgr { flex-grow:1.35; font-size:11px; }
.repeat-key.nav { font-size:11px; }
.repeat-keyboard-extra { margin-top:10px; padding-top:10px; border-top:1px dashed var(--border); }
.repeat-key.legend { color:var(--text3); cursor:default; opacity:.78; }
.repeat-key:hover:not(:disabled),.repeat-key.active { background:linear-gradient(145deg,var(--accent),var(--accent3)); color:var(--text); transform:translateY(2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 0 var(--bg); }
.repeat-key.pressed { box-shadow:0 0 0 3px var(--success); }
.repeat-key.error { box-shadow:0 0 0 3px var(--danger); }
.chain-workspace { display:grid; justify-items:center; gap:14px; width:min(680px,96%); }
.chain-workspace .swiss-keyboard { width:100%; }
.chain-workspace .repeat-key-row { flex-wrap:wrap; }
.repeat-sequence { font-size:30px; letter-spacing:.2em; text-align:center; color:var(--warning); margin-bottom:18px; }
.chain-sequence { display:flex; gap:9px; justify-content:center; letter-spacing:normal; flex-wrap:wrap; }
.chain-sequence span { min-width:50px; padding:12px 9px; border:1px solid var(--border-strong); border-radius:10px; background:var(--bg3); font-size:19px; transition:.18s; }
.chain-sequence span.done { background:rgba(var(--success-rgb),.28); border-color:var(--success); color:var(--text); transform:translateY(-2px); }
.special-character-workspace { display:grid; gap:18px; justify-items:center; }
.special-character-target { width:min(100%,620px); padding:18px; text-align:center; border:1px solid var(--border-strong); border-radius:14px; background:var(--bg3); }
.special-character-target span { display:block; color:var(--muted); font-size:13px; }
.special-character-target strong { display:block; margin:5px 0; color:var(--accent); font-size:48px; line-height:1; }
.special-character-target p { margin:0; font-weight:700; }
.special-character-keyboard {
  width:min(100%,760px); padding:14px; border:1px solid var(--border-strong); border-radius:14px; background:var(--bg2);
  /* Même code couleur par doigt que games/doigts-clavier.html */
  --finger-l-pinky:  #ef4444;
  --finger-l-ring:   #f97316;
  --finger-l-middle: #eab308;
  --finger-l-index:  #22c55e;
  --finger-r-index:  #06b6d4;
  --finger-r-middle: #3b82f6;
  --finger-r-ring:   #8b5cf6;
  --finger-r-pinky:  #ec4899;
  --finger-thumb:    #94a3b8;
}
.special-character-row { display:flex; justify-content:center; gap:7px; margin:7px 0; flex-wrap:wrap; }
.special-character-key { min-width:42px; min-height:42px; padding:8px 12px; border:1px solid var(--border-strong); border-radius:8px; background:var(--bg3); color:var(--text); font-size:19px; font-weight:800; cursor:pointer; }
.special-character-key:hover { border-color:var(--accent); transform:translateY(-1px); }
.special-character-key.done { background:rgba(var(--success-rgb),.28); border-color:var(--success); }
.special-character-key[data-finger="l-pinky"]  { --finger-color:var(--finger-l-pinky); }
.special-character-key[data-finger="l-ring"]   { --finger-color:var(--finger-l-ring); }
.special-character-key[data-finger="l-middle"] { --finger-color:var(--finger-l-middle); }
.special-character-key[data-finger="l-index"]  { --finger-color:var(--finger-l-index); }
.special-character-key[data-finger="r-index"]  { --finger-color:var(--finger-r-index); }
.special-character-key[data-finger="r-middle"] { --finger-color:var(--finger-r-middle); }
.special-character-key[data-finger="r-ring"]   { --finger-color:var(--finger-r-ring); }
.special-character-key[data-finger="r-pinky"]  { --finger-color:var(--finger-r-pinky); }
.special-character-key[data-finger="thumb"]    { --finger-color:var(--finger-thumb); }
.special-character-key[data-finger] { background:color-mix(in srgb, var(--finger-color) 20%, var(--bg3)); box-shadow:inset 0 -3px 0 0 var(--finger-color); }
.special-character-keyboard.complete { width:min(100%,900px); }
.special-character-keyboard.complete .special-character-key { position:relative; min-width:48px; min-height:52px; }
.special-character-keyboard.complete .special-character-key small { display:block; min-height:15px; color:var(--muted); font-size:11px; }
.special-character-keyboard.complete .special-character-key b { display:block; }
.special-character-keyboard.complete .special-character-key .key-altgr { position:absolute; top:2px; left:3px; font-size:8px; color:#22c55e; line-height:1; letter-spacing:1px; white-space:nowrap; }
.special-character-keyboard.complete .special-character-key.active .key-altgr { color:rgba(255,255,255,.85); }
.special-character-keyboard.complete .special-character-key.wide { min-width:82px; font-size:13px; }
.special-character-keyboard.complete .special-character-key.active { background:var(--finger-color, #fbbf24) !important; border-color:var(--finger-color, #fbbf24); box-shadow:0 0 0 3px color-mix(in srgb, var(--finger-color, #fbbf24) 45%, transparent); color:#fff; }
.special-character-keyboard.complete .special-character-key.active small { color:rgba(255,255,255,.8); }
.special-character-keyboard.complete { overflow-x:auto; }
.special-character-keyboard.complete .special-character-row { justify-content:flex-start; flex-wrap:nowrap; gap:4px; min-width:720px; }
.special-character-keyboard.complete .special-character-row:nth-child(3) { padding-left:18px; }
.special-character-keyboard.complete .special-character-row:nth-child(4) { padding-left:34px; }
.special-character-keyboard.complete .special-character-row:nth-child(5) { padding-left:52px; }
.special-character-keyboard.complete .special-character-key { flex:1 0 40px; min-width:40px; min-height:50px; padding:5px 4px; border-radius:7px; }
.special-character-keyboard.complete .special-character-key.wide { flex:1.7 0 62px; min-width:62px; }
.special-character-keyboard.complete .special-character-key small { white-space:nowrap; font-size:10px; }
/* Rangees ajoutees pour un clavier complet (fonction, navigation, pave
   numerique) : hors combinaisons, taille compacte et centree plutot
   qu'etirees sur toute la largeur des rangees alphanumeriques. */
.special-character-keyboard.complete .special-character-row--compact {
  min-width:0; flex-wrap:wrap; justify-content:center; padding-left:0 !important; margin:2px 0;
}
.special-character-keyboard.complete .special-character-row--compact .special-character-key {
  flex:0 0 auto; min-width:38px; min-height:34px; padding:3px 8px; font-size:12px;
}
.special-character-keyboard.complete .special-character-row--compact .special-character-key.wide { flex:0 0 auto; min-width:76px; }
.special-character-keyboard.complete .special-character-row--compact:first-child { margin-bottom:8px; padding-bottom:8px; border-bottom:1px dashed var(--border); }
.special-character-keyboard.complete .special-character-row--compact:nth-last-child(5) { margin-top:10px; padding-top:10px; border-top:1px dashed var(--border); }
.repeat-pattern { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-bottom:26px; }
.repeat-pattern button { width:58px; height:58px; border:0; border-radius:14px; cursor:pointer; }
.repeat-pattern button:nth-child(1){background:#f87171}.repeat-pattern button:nth-child(2){background:#fbbf24}.repeat-pattern button:nth-child(3){background:#34d399}.repeat-pattern button:nth-child(4){background:#60a5fa}.repeat-pattern button:nth-child(5){background:#c084fc}
.repeat-help { color:var(--text3); font-size:13px; text-align:center; margin-top:16px; }
.model-workspace { width:min(680px,94%); display:grid; justify-items:center; gap:10px; }
.model-brief { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:11px 14px; border:1px solid var(--border); border-radius:14px; background:linear-gradient(145deg,var(--bg3),var(--bg2)); }.model-brief span,.model-brief strong,.model-brief small { display:block; }.model-brief span { color:var(--accent); font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.model-brief strong { color:var(--text); font-size:16px; }.model-brief small { color:var(--text3); font-size:12px; }.model-status { flex:none; padding:7px 10px; border-radius:999px; background:var(--surface2); color:var(--text2); font-size:12px; font-weight:900; }
.model-progress { display:flex; gap:8px; justify-content:center; }.model-progress i { width:25px; height:25px; display:grid; place-items:center; border:1px solid var(--border-strong); border-radius:50%; color:var(--text3); font-size:11px; font-style:normal; font-weight:900; transition:.18s; }.model-progress i.done { border-color:var(--success); background:rgba(var(--success-rgb),.28); color:var(--text); transform:translateY(-2px); }
.simon-board { position:relative; width:min(350px,88vw); height:205px; border:1px solid var(--border); border-radius:50%; background:radial-gradient(circle at center,var(--bg3) 0 24%,var(--bg2) 25% 57%,var(--bg) 58%); box-shadow:inset 0 0 0 12px rgba(15,23,42,.32),0 12px 22px rgba(0,0,0,.2); }
.simon-core { position:absolute; z-index:1; top:50%; left:50%; transform:translate(-50%,-50%); padding:8px 10px; border:1px solid var(--border-strong); border-radius:999px; background:var(--bg2); color:var(--text2); font-size:10px; font-weight:900; letter-spacing:.1em; pointer-events:none; }
.simon-board button { position:absolute; z-index:2; width:62px; height:62px; border:3px solid rgba(255,255,255,.48); border-radius:50%; cursor:pointer; opacity:.48; box-shadow:inset 0 0 0 3px rgba(0,0,0,.15),0 5px 0 rgba(5,10,20,.35); transition:transform .13s,filter .13s,opacity .13s,box-shadow .13s; }.simon-board button:disabled { cursor:default; }.simon-board button:nth-of-type(1) { top:5px; left:50%; transform:translateX(-50%); }.simon-board button:nth-of-type(2) { top:48px; right:17px; }.simon-board button:nth-of-type(3) { right:72px; bottom:7px; }.simon-board button:nth-of-type(4) { bottom:7px; left:72px; }.simon-board button:nth-of-type(5) { top:48px; left:17px; }
.simon-board button.flash,.simon-board button:not(:disabled):hover { opacity:1; filter:brightness(1.45); transform:scale(1.14); box-shadow:0 0 0 7px rgba(255,255,255,.12),0 0 26px rgba(var(--accent-rgb),.75); }.simon-board button:nth-of-type(1).flash,.simon-board button:nth-of-type(1):not(:disabled):hover { transform:translateX(-50%) scale(1.14); }
.model-replay { border:1px solid var(--border-strong); border-radius:999px; padding:8px 13px; background:var(--surface2); color:var(--text2); font-size:12px; font-weight:900; cursor:pointer; }.model-replay:hover:not(:disabled) { background:rgba(var(--accent-rgb),.22); }.model-replay:disabled { opacity:.48; cursor:default; }
.memory-grid { display:grid; grid-template-columns:repeat(4,62px); gap:10px; justify-content:center; }
.memory-grid.memory-grid-3 { grid-template-columns:repeat(3,62px); }
.memory-grid button { width:62px; height:62px; border:2px solid var(--border-strong); border-radius:10px; background:var(--bg3); cursor:pointer; transition:.15s; }
.memory-grid button.shown { background:var(--warning); border-color:rgba(var(--warning-rgb),.7); box-shadow:0 0 20px rgba(var(--warning-rgb),.55); }
.memory-grid button.selected { background:var(--success); border-color:rgba(var(--success-rgb),.6); }
@media (max-width:650px){.repeat-shell{width:min(100% - 20px,980px);padding-top:16px}.repeat-top{align-items:flex-start}.repeat-actions{gap:10px;flex-direction:column;align-items:flex-end}.repeat-bottom-actions{flex-wrap:wrap}.repeat-card{padding:18px}.repeat-zone{min-height:310px}.key-workspace{width:100%;gap:12px}.swiss-keyboard{padding:10px;border-radius:16px}.swiss-keyboard-head{padding-bottom:8px;font-size:9px}.repeat-keyboard{gap:4px}.repeat-key-row{gap:4px}.repeat-key-row:nth-child(2){padding-left:8px}.repeat-key-row:nth-child(3){padding-left:14px}.repeat-key-row:nth-child(4){padding-left:20px}.repeat-key{min-height:39px;font-size:11px;border-radius:6px}.repeat-key.caps,.repeat-key.ctrl,.repeat-key.fn,.repeat-key.win,.repeat-key.alt,.repeat-key.altgr{font-size:8px}}
