/* ============================================================
   Tiko · ЯЗЫКИ → ЦЕПОЧКИ (Chains)
   Learn a word through progressively harder sentences,
   ending in a small AI conversation.
   Uses the host app's design tokens.
   ============================================================ */

/* ── Sub-navigation inside the Языки page ────────────────── */
.lang-subnav{display:flex;gap:6px;margin-bottom:22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:4px;box-shadow:var(--sh-1) inset;}
.lang-subtab{flex:1;padding:11px;background:none;border:none;border-radius:9px;color:var(--muted);font-family:var(--font-ui);font-size:13.5px;font-weight:600;cursor:pointer;transition:color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease),transform .12s var(--ease);display:flex;align-items:center;justify-content:center;gap:7px;letter-spacing:-.01em;}
.lang-subtab svg{width:16px;height:16px;}
.lang-subtab:hover:not(.active){color:var(--text2);background:rgba(255,255,255,.04);}
.lang-subtab.active{background:var(--accent);color:var(--accent-ink);box-shadow:0 2px 10px -2px rgba(0,0,0,.5);}
.lang-view{animation:lv-in .3s var(--ease);}
@keyframes lv-in{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:none;}}

/* ── Chains hub header ───────────────────────────────────── */
.chains-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap;}
.chains-title{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.02em;}
.chains-sub{font-size:12.5px;color:var(--muted);margin-top:3px;max-width:46ch;line-height:1.45;}
.chains-new-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 17px;background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--r-sm);font-family:var(--font-ui);font-size:13.5px;font-weight:700;cursor:pointer;transition:transform .15s var(--spring),box-shadow .2s;box-shadow:var(--sh-2);white-space:nowrap;}
.chains-new-btn:hover{transform:translateY(-2px);box-shadow:var(--sh-3);}
.chains-new-btn svg{width:15px;height:15px;}

/* ── Chain cards list ────────────────────────────────────── */
.chains-list{display:flex;flex-direction:column;gap:11px;}
.chain-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;cursor:pointer;transition:border-color .2s,transform .15s,box-shadow .2s;position:relative;overflow:hidden;}
.chain-card:hover{border-color:var(--border2);transform:translateY(-2px);box-shadow:var(--sh-2);}
.chain-card.done{border-color:var(--border2);}
.chain-card-top{display:flex;align-items:center;gap:14px;margin-bottom:15px;}
.chain-seed{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.chain-seed-word{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.chain-seed-tr{font-size:13px;color:var(--muted);}
.chain-badge{font-size:10.5px;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);white-space:nowrap;flex-shrink:0;}
.chain-badge.active{background:var(--accent-soft);color:var(--text);}
.chain-badge.done{background:rgba(134,239,172,.14);color:var(--good);}
.chain-badge.new{background:rgba(255,255,255,.06);color:var(--muted);}
.chain-card-del{position:absolute;top:12px;right:14px;width:26px;height:26px;border:none;background:none;color:var(--dim);font-size:14px;cursor:pointer;border-radius:6px;opacity:0;transition:opacity .18s,color .18s,background .18s;display:flex;align-items:center;justify-content:center;z-index:2;}
.chain-card:hover .chain-card-del{opacity:1;}
.chain-card-del:hover{color:var(--danger);background:rgba(248,113,113,.1);}

/* ── chain link progression visual ──────────────────────── */
.chain-track{display:flex;align-items:center;gap:0;width:100%;}
.chain-node{position:relative;flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--border2);background:var(--surface2);color:var(--dim);font-size:11px;font-weight:700;transition:all .3s var(--spring);z-index:1;}
.chain-node svg{width:13px;height:13px;}
.chain-node.done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.chain-node.current{border-color:var(--accent);color:var(--text);box-shadow:0 0 0 4px var(--accent-soft);}
.chain-node.final{border-radius:7px;}
.chain-node.final.done{background:var(--gold);border-color:var(--gold);color:#1a1407;}
.chain-link{flex:1;height:2px;background:var(--border2);min-width:8px;transition:background .3s;}
.chain-link.done{background:var(--accent);}

/* ── empty state ─────────────────────────────────────────── */
.chains-empty{text-align:center;padding:46px 24px;border:1.5px dashed var(--border2);border-radius:var(--r-lg);color:var(--muted);}
.chains-empty-ico{width:54px;height:54px;margin:0 auto 16px;border-radius:50%;background:var(--surface2);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;}
.chains-empty-ico svg{width:26px;height:26px;color:var(--muted);}
.chains-empty h3{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--text);margin-bottom:7px;}
.chains-empty p{font-size:13px;line-height:1.5;max-width:38ch;margin:0 auto 18px;}

/* ============================================================
   CREATE CHAIN modal  (reuses .modal-bg from host)
   ============================================================ */
.chain-create-box{background:var(--surface);border:1px solid var(--border);border-top:1px solid var(--border2);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:24px 24px 28px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 -20px 60px -10px rgba(0,0,0,.7);}
.chain-create-title{font-family:var(--font-display);font-size:19px;font-weight:700;margin-bottom:5px;letter-spacing:-.02em;}
.chain-create-hint{font-size:12px;color:var(--muted);margin-bottom:18px;line-height:1.45;}
.chain-field{margin-bottom:14px;}
.chain-field-lbl{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:700;margin-bottom:8px;display:block;}
.chain-input{width:100%;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--r-sm);padding:13px 15px;color:var(--text);font-family:var(--font-ui);font-size:15px;outline:none;transition:border-color .2s,background .2s;}
.chain-input:focus{border-color:var(--border3);background:var(--raised);}
.chain-input::placeholder{color:var(--muted);}
.chain-len-row{display:flex;gap:8px;}
.chain-len-opt{flex:1;padding:12px 8px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;text-align:center;transition:border-color .2s,background .2s,transform .12s;}
.chain-len-opt:hover{border-color:var(--border2);transform:translateY(-2px);}
.chain-len-opt.sel{border-color:var(--accent);background:var(--accent-soft);}
.chain-len-opt b{display:block;font-family:var(--font-display);font-size:18px;font-weight:700;}
.chain-len-opt span{font-size:10.5px;color:var(--muted);}
.chain-create-go{width:100%;padding:15px;background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--r-sm);font-family:var(--font-ui);font-size:14px;font-weight:700;cursor:pointer;margin-top:8px;transition:transform .15s var(--spring),box-shadow .2s,opacity .2s;box-shadow:var(--sh-2);}
.chain-create-go:hover{transform:translateY(-2px);box-shadow:var(--sh-3);}
.chain-create-go:disabled{opacity:.5;cursor:wait;transform:none;box-shadow:none;}

/* ============================================================
   CHAIN PLAYER  (fullscreen overlay)
   ============================================================ */
.chain-player{position:fixed;inset:0;z-index:360;background:var(--bg);display:none;flex-direction:column;}
.chain-player.open{display:flex;}
.cp-top{display:flex;align-items:center;gap:14px;padding:15px 20px;border-bottom:1px solid var(--border);}
.cp-exit{width:36px;height:36px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);color:var(--text2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s,background .2s;flex-shrink:0;}
.cp-exit:hover{border-color:var(--border2);color:var(--text);background:var(--surface2);}
.cp-progress{flex:1;}
.cp-prog-track{display:flex;align-items:center;gap:0;}
.cp-word-lbl{font-family:var(--font-display);font-size:14px;font-weight:700;white-space:nowrap;flex-shrink:0;}

.cp-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 20px 32px;scrollbar-width:none;}
.cp-body::-webkit-scrollbar{display:none;}
.cp-stage{width:100%;max-width:560px;display:flex;flex-direction:column;align-items:center;animation:cp-step .35s var(--ease);}
@keyframes cp-step{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.cp-level-tag{font-size:11px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.cp-level-tag b{color:var(--accent-ink);background:var(--accent);padding:2px 9px;border-radius:var(--r-pill);font-size:10px;letter-spacing:.5px;}
.cp-task{font-size:14px;color:var(--text2);text-align:center;margin-bottom:24px;font-weight:500;}

/* level 1 — meet the word */
.cp-meet{background:linear-gradient(180deg,var(--surface2),var(--surface));border:1px solid var(--border2);border-radius:var(--r-xl);padding:44px 32px;text-align:center;box-shadow:var(--sh-2);width:100%;}
.cp-meet-word{font-family:var(--font-display);font-size:40px;font-weight:700;letter-spacing:-.03em;margin-bottom:10px;}
.cp-meet-tr{font-size:19px;color:var(--text2);font-weight:500;}
.cp-meet-ipa{font-size:13px;color:var(--muted);margin-top:10px;font-style:italic;}

/* sentence display with translation */
.cp-sentence{font-family:var(--font-display);font-size:26px;font-weight:600;line-height:1.4;text-align:center;letter-spacing:-.01em;color:var(--text);}
.cp-sentence .blank{display:inline-block;min-width:90px;border-bottom:2.5px dashed var(--border3);margin:0 4px;color:transparent;}
.cp-sentence .blank.filled{border-bottom-color:var(--accent);color:var(--accent);}
.cp-sentence-tr{font-size:14px;color:var(--muted);text-align:center;margin-top:14px;font-style:italic;}

/* word-tile arrangement */
.cp-answer-zone{min-height:60px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;padding:16px;border:1.5px dashed var(--border2);border-radius:var(--r-md);width:100%;margin-bottom:18px;transition:border-color .2s,background .2s;}
.cp-answer-zone.filled{border-style:solid;border-color:var(--border);background:var(--surface);}
.cp-answer-zone.correct{border-color:var(--good);background:rgba(134,239,172,.07);}
.cp-answer-zone.wrong{border-color:var(--danger);background:rgba(248,113,113,.07);}
.cp-answer-zone.hinted{border-color:var(--gold);background:rgba(255,204,77,.07);}
.cp-answer-zone-empty{color:var(--dim);font-size:13px;}
.cp-bank{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-bottom:24px;}
.cp-tile{padding:11px 16px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-display);font-size:17px;font-weight:600;cursor:grab;transition:transform .14s var(--spring),border-color .18s,background .18s,opacity .18s;user-select:none;-webkit-user-select:none;touch-action:none;}
.cp-tile:hover{border-color:var(--border3);background:var(--raised);transform:translateY(-2px);}
.cp-tile:active{cursor:grabbing;}
.cp-tile.used{opacity:0;pointer-events:none;transform:scale(.6);}
.cp-tile.in-answer{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.cp-tile.dragging-src{opacity:.32;}
/* floating drag clone */
.cp-ghost{position:fixed;z-index:600;margin:0;pointer-events:none;box-shadow:var(--sh-3);opacity:.96;will-change:transform;display:flex;align-items:center;justify-content:center;}
/* insertion indicator in the answer zone */
.cp-insert-bar{flex:0 0 auto;width:3px;align-self:stretch;min-height:34px;border-radius:3px;background:var(--accent);box-shadow:0 0 8px var(--accent-soft);animation:cp-bar .9s ease-in-out infinite;}
@keyframes cp-bar{0%,100%{opacity:.55;}50%{opacity:1;}}

/* fill-blank options */
.cp-options{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:24px;}
.cp-opt{padding:13px 22px;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-display);font-size:18px;font-weight:600;cursor:pointer;transition:transform .14s var(--spring),border-color .18s,background .18s;}
.cp-opt:hover{border-color:var(--border3);background:var(--raised);transform:translateY(-2px);}
.cp-opt.correct{background:var(--good);border-color:var(--good);color:#0a2912;}
.cp-opt.wrong{background:rgba(248,113,113,.15);border-color:var(--danger);color:var(--danger);}
.cp-opt:disabled{cursor:default;}

/* feedback + actions */
.cp-feedback{font-size:13.5px;font-weight:600;text-align:center;min-height:20px;margin-bottom:16px;transition:opacity .2s;}
.cp-feedback.ok{color:var(--good);}
.cp-feedback.no{color:var(--danger);}
.cp-feedback.hint{color:var(--gold);}
.cp-actions{display:flex;gap:10px;width:100%;max-width:420px;}
.cp-btn{flex:1;padding:15px;border-radius:var(--r-md);font-family:var(--font-ui);font-size:14px;font-weight:700;cursor:pointer;transition:transform .14s var(--spring),box-shadow .2s,background .2s,border-color .2s,opacity .2s;border:1px solid var(--border2);background:var(--surface);color:var(--text);}
.cp-btn:hover{transform:translateY(-2px);border-color:var(--border3);}
.cp-btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);box-shadow:var(--sh-2);}
.cp-btn.primary:hover{box-shadow:var(--sh-3);}
.cp-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none;}
.cp-btn.ghost{background:none;}
.cp-btn-reset{flex:0 0 auto;padding-left:18px;padding-right:18px;color:var(--muted);}
.cp-btn-reset:hover{color:var(--text);border-color:var(--border3);}
.cp-btn-hint{flex:0 0 auto;padding-left:18px;padding-right:18px;color:var(--gold);border-color:rgba(255,204,77,.35);}
.cp-btn-hint:hover{border-color:var(--gold);background:rgba(255,204,77,.08);}

/* generating spinner */
.cp-loading{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--muted);}
.cp-loading .spin{width:34px;height:34px;border:3px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:cp-spin .8s linear infinite;}
@keyframes cp-spin{to{transform:rotate(360deg);}}
.cp-loading-txt{font-size:13px;}

/* ── FINAL TEST · AI conversation ────────────────────────── */
.cp-chat-intro{text-align:center;margin-bottom:18px;}
.cp-chat-intro .cp-trophy{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:linear-gradient(180deg,rgba(255,204,77,.2),rgba(255,204,77,.05));border:1px solid rgba(255,204,77,.3);display:flex;align-items:center;justify-content:center;}
.cp-chat-intro .cp-trophy svg{width:28px;height:28px;color:var(--gold);}
.cp-chat-intro h3{font-family:var(--font-display);font-size:20px;font-weight:700;margin-bottom:7px;letter-spacing:-.02em;}
.cp-chat-intro p{font-size:13px;color:var(--muted);line-height:1.5;max-width:40ch;margin:0 auto;}
.cp-vocab-pills{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px;}
.cp-vocab-pill{font-size:11px;font-weight:600;padding:4px 11px;border-radius:var(--r-pill);background:var(--surface2);border:1px solid var(--border);color:var(--text2);}
.cp-vocab-pill.used{background:var(--accent-soft);border-color:var(--border2);color:var(--text);}

.cp-chat{width:100%;max-width:560px;display:flex;flex-direction:column;flex:1;min-height:0;}
.cp-chat-scroll{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:8px 2px 16px;scrollbar-width:none;}
.cp-chat-scroll::-webkit-scrollbar{display:none;}
.cp-msg{max-width:80%;padding:12px 16px;border-radius:var(--r-lg);font-size:14.5px;line-height:1.5;animation:msg-in .28s var(--spring);}
@keyframes msg-in{from{opacity:0;transform:translateY(8px) scale(.97);}to{opacity:1;transform:none;}}
.cp-msg.ai{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:5px;color:var(--text);}
.cp-msg.me{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:5px;font-weight:500;}
.cp-msg-tr{font-size:11.5px;opacity:.7;margin-top:5px;font-style:italic;}
.cp-msg.typing{display:flex;gap:5px;align-items:center;padding:15px 18px;}
.cp-msg.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:cp-dot 1.2s ease-in-out infinite;}
.cp-msg.typing i:nth-child(2){animation-delay:.2s;}
.cp-msg.typing i:nth-child(3){animation-delay:.4s;}
@keyframes cp-dot{0%,60%,100%{opacity:.3;transform:translateY(0);}30%{opacity:1;transform:translateY(-3px);}}
.cp-chat-input-row{display:flex;gap:9px;align-items:flex-end;padding-top:12px;border-top:1px solid var(--border);}
.cp-chat-input{flex:1;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--r-md);padding:13px 15px;color:var(--text);font-family:var(--font-ui);font-size:14px;outline:none;resize:none;max-height:120px;line-height:1.4;transition:border-color .2s,background .2s;}
.cp-chat-input:focus{border-color:var(--border3);background:var(--raised);}
.cp-chat-send{width:46px;height:46px;flex-shrink:0;border-radius:var(--r-md);background:var(--accent);color:var(--accent-ink);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .14s var(--spring),box-shadow .2s,opacity .2s;box-shadow:var(--sh-2);}
.cp-chat-send:hover{transform:translateY(-2px);box-shadow:var(--sh-3);}
.cp-chat-send:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none;}
.cp-chat-send svg{width:19px;height:19px;}
.cp-chat-finish{margin-top:10px;}

/* ── completion screen ───────────────────────────────────── */
.cp-done{text-align:center;max-width:440px;}
.cp-done-medal{width:80px;height:80px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(180deg,rgba(255,204,77,.25),rgba(255,204,77,.06));border:2px solid rgba(255,204,77,.4);display:flex;align-items:center;justify-content:center;animation:medal-pop .5s var(--spring);}
@keyframes medal-pop{from{transform:scale(.4);opacity:0;}to{transform:scale(1);opacity:1;}}
.cp-done-medal svg{width:40px;height:40px;color:var(--gold);}
.cp-done h2{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.02em;margin-bottom:10px;}
.cp-done p{font-size:14px;color:var(--muted);line-height:1.55;margin-bottom:22px;}
.cp-score-row{display:flex;gap:10px;margin-bottom:24px;}
.cp-score-box{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:16px 12px;}
.cp-score-val{font-family:var(--font-display);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;}
.cp-score-lbl{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-weight:600;margin-top:4px;}

/* mobile */
@media(max-width:560px){
  .cp-meet-word{font-size:32px;}
  .cp-sentence{font-size:21px;}
  .cp-top{padding:13px 14px;gap:10px;}
  .cp-body{padding:18px 14px 26px;}
  .chains-title{font-size:20px;}
}
