/* ═══ LEARN CSS — AI mentor, desktop layout ═══ */
/* Размеры — через единую type-scale (--fs-1..6 в tokens.css). */

/* Top */
.ln-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:6px}
.ln-crumb{font-size:var(--fs-1);text-transform:uppercase;letter-spacing:1.2px;color:rgba(255,255,255,.35);font-weight:600}
.ln-h1{font-size:var(--fs-5);font-weight:700;letter-spacing:-.3px;margin-top:4px;color:#fff}
.ln-status{display:flex;align-items:center;gap:7px;margin-top:9px;font-size:var(--fs-3);color:rgba(255,255,255,.65)}
.ln-status-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;animation:lnPulseDot 2.4s infinite}
@keyframes lnPulseDot{0%,100%{box-shadow:0 0 0 0 rgba(52,199,89,.45)}50%{box-shadow:0 0 0 4px rgba(52,199,89,0)}}
.ln-sep{color:var(--border-s)}

/* State switch */
.ln-switch{display:flex;align-items:center;gap:16px;flex-shrink:0}
.ln-switch button{appearance:none;background:transparent;border:none;font-size:var(--fs-2);font-weight:500;color:rgba(255,255,255,.35);cursor:pointer;padding:0 0 8px;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;font-family:var(--font)}
.ln-switch button.active{color:var(--text);border-bottom-color:var(--accent)}

/* 2-column grid */
.ln-layout{display:grid;grid-template-columns:1fr 320px;gap:40px;margin-top:24px;align-items:start}
@media(max-width:980px){.ln-layout{grid-template-columns:1fr}}

/* ── AI FOCUS ── */
.ln-focus{padding:8px 0 28px;border-bottom:.5px solid var(--border);margin-bottom:26px}
.ln-focus-tag{display:flex;align-items:center;gap:7px;font-size:var(--fs-1);font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:16px}
.ln-focus-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:lnPulseBlue 2.4s infinite}
@keyframes lnPulseBlue{0%,100%{box-shadow:0 0 0 0 rgba(0,122,255,.45)}50%{box-shadow:0 0 0 5px rgba(0,122,255,0)}}
.ln-focus-line{font-size:var(--fs-6);font-weight:500;line-height:1.4;letter-spacing:-.2px;max-width:680px;color:#fff}
.ln-focus-line.l1{color:rgba(255,255,255,.65)}
.ln-focus-line .hl{color:var(--accent)}
.ln-focus-reason{font-size:var(--fs-3);color:rgba(255,255,255,.6);line-height:1.65;max-width:620px;margin-top:16px}
.ln-focus-narrative{font-size:var(--fs-4);line-height:1.65;color:rgba(255,255,255,.92);max-width:66ch;margin-bottom:14px}
.ln-focus-meta{font-size:var(--fs-2);color:rgba(255,255,255,.55);margin-top:6px}
.ln-focus-resources{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px}
.ln-res-link{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:var(--r-s);cursor:pointer;transition:background .2s}
.ln-res-link:hover{background:var(--overlay)}
.ln-res-icon{font-size:var(--fs-3)}
.ln-res-title{font-size:var(--fs-2)}
.ln-res-meta{font-size:var(--fs-1);color:rgba(255,255,255,.35);font-family:var(--mono);margin-left:2px}
.ln-res-divider{width:.5px;height:16px;background:var(--border-s)}
.ln-focus-actions{display:flex;gap:24px;margin-top:24px}
.ln-act{appearance:none;background:transparent;border:none;font-size:var(--fs-2);font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;padding:0;font-family:var(--font);transition:gap .2s}
.ln-act:hover{gap:9px}
.ln-act:hover .ln-arrow{transform:translateX(2px)}
.ln-act-green{color:var(--green)}
.ln-act-blue{color:var(--accent)}
.ln-arrow{transition:transform .2s}

/* Focus empty */
.ln-focus-empty-text{font-size:var(--fs-6);font-weight:500;color:rgba(255,255,255,.65);max-width:600px;line-height:1.4}
.ln-focus-empty-sub{font-size:var(--fs-3);color:rgba(255,255,255,.5);max-width:560px;margin-top:14px;line-height:1.6}
.ln-focus-empty-act{margin-top:20px;font-size:var(--fs-2);font-weight:500;color:var(--accent);cursor:pointer;display:inline-flex;align-items:center;gap:6px}

/* ── SECTION LABEL ── */
.ln-label{font-size:var(--fs-1);font-weight:600;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}
.ln-label-act{text-transform:none;font-weight:500;letter-spacing:0;color:rgba(255,255,255,.45);cursor:pointer;font-size:var(--fs-2);transition:color .2s}
.ln-label-act:hover{color:var(--accent)}

/* ── PLANS ── */
.ln-plan-row{border-bottom:.5px solid var(--border)}
.ln-plan-row:first-child{border-top:.5px solid var(--border)}
.ln-plan-head{display:flex;align-items:center;gap:14px;padding:14px 4px;cursor:pointer;transition:background .15s}
.ln-plan-head:hover{background:rgba(255,255,255,.025)}
.ln-plan-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
/* Имя плана больше НЕ обрезаем в одну строку — переносим до 2 строк (AI-имена длинные) */
.ln-plan-name{font-size:var(--fs-3);font-weight:600;flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;color:#fff;line-height:1.3}
.ln-plan-name>span:first-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ln-plan-tag{font-size:var(--fs-1);color:rgba(255,255,255,.4);font-weight:400;white-space:nowrap}
.ln-seg-row{display:flex;gap:3px;align-items:center;flex-shrink:0}
.ln-seg{width:6px;height:14px;border-radius:2px;flex-shrink:0}
.ln-seg-done{background:var(--green)}
.ln-seg-current{background:var(--accent);animation:lnPulseSeg 2s infinite}
@keyframes lnPulseSeg{0%,100%{box-shadow:0 0 0 0 rgba(0,122,255,.5)}50%{box-shadow:0 0 0 3px rgba(0,122,255,0)}}
.ln-seg-available{background:transparent;border:1px solid var(--accent)}
.ln-seg-locked{background:rgba(255,255,255,.07)}
.ln-plan-frac{font-family:var(--mono);font-size:var(--fs-2);color:rgba(255,255,255,.5);width:38px;flex-shrink:0;text-align:right}
.ln-plan-acts{display:flex;gap:4px;align-items:center;opacity:0;transition:opacity .15s;margin-right:6px;flex-shrink:0}
.ln-plan-head:hover .ln-plan-acts{opacity:1}
.ln-plan-act{appearance:none;background:transparent;border:none;color:rgba(255,255,255,.4);font-size:var(--fs-2);cursor:pointer;padding:3px 5px;border-radius:5px;line-height:1;transition:background .15s,color .15s}
.ln-plan-act:hover{background:var(--overlay);color:rgba(255,255,255,.75)}
.ln-plan-act-del:hover{color:var(--red)}
.ln-plan-chev{color:rgba(255,255,255,.35);flex-shrink:0;transition:transform .3s ease}
.ln-plan-row.expanded .ln-plan-chev{transform:rotate(180deg)}

/* Topics (expanded) */
.ln-plan-topics{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease;overflow:hidden}
.ln-plan-row.expanded .ln-plan-topics{grid-template-rows:1fr}
.ln-plan-topics-inner{overflow:hidden;min-height:0}
.ln-plan-row.expanded .ln-plan-topics-inner{padding:10px 0 14px;border-top:.5px solid var(--border);background:var(--surface);border-radius:0 0 var(--r-s) var(--r-s)}
.ln-chips{display:flex;flex-wrap:wrap;gap:7px;padding:4px 16px 4px 20px}
.ln-chip{font-size:var(--fs-2);padding:6px 10px 6px 8px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-s);color:rgba(255,255,255,.7);background:var(--raised)}
.ln-chip .cdot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.ln-chip-done .cdot{background:var(--green)}
.ln-chip-current{border-color:rgba(0,122,255,.4);color:var(--text);background:rgba(0,122,255,.08)}
.ln-chip-current .cdot{background:var(--accent);animation:lnPulseSeg 2s infinite}
.ln-chip-available .cdot{background:transparent;border:1px solid var(--accent)}
.ln-chip-locked{color:rgba(255,255,255,.35);opacity:.6}
.ln-chip-locked .cdot{background:rgba(255,255,255,.35)}

/* Plans empty */
.ln-plans-empty{padding:16px 4px;font-size:var(--fs-2);color:rgba(255,255,255,.4);font-style:italic;border-top:.5px solid var(--border);border-bottom:.5px solid var(--border)}

/* ── SIDEBAR INSIGHTS ── */
.ln-insight-item{background:var(--surface);border:.5px solid var(--border);border-radius:var(--r-l);padding:18px 20px;margin-bottom:12px}
.ln-insight-item:last-child{border-bottom:.5px solid var(--border)}
.ln-insight-top{display:flex;gap:9px;align-items:flex-start}
.ln-insight-emoji{font-size:var(--fs-3);margin-top:1px;flex-shrink:0}
.ln-insight-text{font-size:var(--fs-3);line-height:1.55;color:rgba(255,255,255,.85)}
.ln-insight-text b{color:var(--text);font-weight:600}
.ln-insight-action{margin-top:8px;margin-left:23px;font-size:var(--fs-2);font-weight:500;color:var(--accent);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:gap .2s}
.ln-insight-action:hover{gap:8px}
.ln-insight-type{font-size:var(--fs-1);color:rgba(255,255,255,.4);margin-top:8px;margin-left:23px;text-transform:uppercase;letter-spacing:.5px;font-family:var(--mono)}
.ln-insight-trend{border-left:3px solid var(--accent)}
.ln-insight-warning{border-left:3px solid var(--orange)}
.ln-insight-tip{border-left:3px solid var(--green)}
.ln-insight-empty{font-size:var(--fs-2);color:rgba(255,255,255,.5);font-style:italic;line-height:1.6}

/* ── JOB MARKET ── */
.ln-job-item{display:block;padding:12px 0;border-bottom:.5px solid var(--border);transition:background .15s;border-radius:var(--r-s);cursor:pointer}
.ln-job-item:last-child{border-bottom:none}
.ln-job-item:not(.no-link):hover{background:rgba(255,255,255,.02)}
.ln-job-item.no-link{cursor:default}
.ln-job-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.ln-job-demand{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.ln-job-demand-high{background:var(--green)}
.ln-job-demand-medium{background:var(--orange)}
.ln-job-demand-low{background:rgba(255,255,255,.25)}
.ln-job-title{font-size:var(--fs-2);font-weight:600;color:rgba(255,255,255,.9)}
.ln-job-badge-done{font-size:var(--fs-1);color:var(--green);background:rgba(52,199,89,.1);border:.5px solid rgba(52,199,89,.25);border-radius:999px;padding:1px 7px;font-family:var(--mono);flex-shrink:0;margin-left:6px}
.ln-job-analyze{margin-left:auto;font-size:var(--fs-1);font-weight:500;color:var(--accent);opacity:0;transition:opacity .15s;flex-shrink:0;white-space:nowrap}
.ln-job-item:hover .ln-job-analyze{opacity:1}
.ln-job-analyze:hover{text-decoration:underline}
.ln-job-salary{font-size:var(--fs-2);font-weight:500;color:var(--green);margin-bottom:4px;margin-left:14px}
.ln-job-detail{font-size:var(--fs-2);color:rgba(255,255,255,.55);line-height:1.5;margin-left:14px}
.ln-job-source{font-size:var(--fs-1);color:rgba(255,255,255,.3);margin-top:4px;margin-left:14px}

/* ── TOPIC DETAIL CARD ── */
.ln-topic-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);z-index:40;display:flex;align-items:center;justify-content:center;padding:20px}
.ln-topic-card{background:var(--surface);border:1px solid var(--border-s);border-radius:var(--r-l);max-width:1140px;width:100%;max-height:85vh;overflow-y:auto;padding:36px 48px;position:relative;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}
.ln-topic-card::-webkit-scrollbar{width:6px}
.ln-topic-card::-webkit-scrollbar-track{background:transparent}
.ln-topic-card::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:3px}
.ln-topic-card::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.2)}
.ln-topic-close{position:absolute;top:16px;right:16px;appearance:none;background:transparent;border:none;color:var(--dim);font-size:var(--fs-4);cursor:pointer;padding:4px;line-height:1}
.ln-topic-close:hover{color:#fff}
.ln-topic-num{font-family:var(--mono);font-size:var(--fs-1);color:rgba(255,255,255,.4);margin-bottom:4px}
.ln-topic-title{font-size:var(--fs-5);font-weight:700;color:#fff;margin-bottom:6px;letter-spacing:-.01em}
.ln-topic-plan{font-size:var(--fs-2);color:rgba(255,255,255,.45);margin-bottom:16px}
.ln-topic-desc{font-size:var(--fs-3);line-height:1.7;color:rgba(255,255,255,.75);margin-bottom:20px;white-space:pre-line}
.ln-topic-hours{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-1);color:rgba(255,255,255,.4);font-family:var(--mono);margin-bottom:20px;padding:4px 10px;background:var(--raised);border-radius:999px}
.ln-topic-section{font-size:var(--fs-1);font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:10px;margin-top:24px}
.ln-topic-placeholder{font-size:var(--fs-2);color:rgba(255,255,255,.35);font-style:italic;padding:12px 0}
.ln-res-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:.5px solid var(--border);cursor:pointer;transition:background .15s;border-radius:var(--r-s);padding-left:4px;padding-right:4px}
.ln-res-item:last-child{border-bottom:none}
.ln-res-item:not(.no-link):hover{background:var(--overlay)}
.ln-res-item.no-link{cursor:default}
.ln-res-item-icon{font-size:var(--fs-3);flex-shrink:0}
.ln-res-item-info{flex:1;min-width:0}
.ln-res-item-title{font-size:var(--fs-2);font-weight:500;color:rgba(255,255,255,.85);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ln-res-item-meta{font-size:var(--fs-1);color:rgba(255,255,255,.35);font-family:var(--mono);margin-top:1px}
.ln-res-item-badge{font-size:var(--fs-1);padding:2px 6px;border-radius:999px;flex-shrink:0;font-family:var(--mono)}
.ln-res-item-badge-ai{color:var(--accent);background:rgba(0,122,255,.08);border:.5px solid rgba(0,122,255,.2)}
.ln-res-item-badge-user{color:var(--green);background:rgba(52,199,89,.08);border:.5px solid rgba(52,199,89,.2)}
.ln-res-item-del{flex-shrink:0;width:20px;height:20px;border:none;background:none;color:rgba(255,255,255,.25);font-size:var(--fs-2);cursor:pointer;border-radius:var(--r-s);opacity:0;transition:opacity .15s,color .15s,background .15s;line-height:1}
.ln-res-item:hover .ln-res-item-del{opacity:1}
.ln-res-item-del:hover{color:var(--red);background:rgba(255,77,77,.1)}
.ln-res-search-btn{appearance:none;background:transparent;border:.5px solid var(--border-s);color:rgba(255,255,255,.5);font-size:var(--fs-1);font-weight:500;padding:6px 12px;border-radius:999px;cursor:pointer;font-family:var(--font);transition:border-color .2s,color .2s,opacity .2s;margin-top:8px;display:inline-flex;align-items:center;gap:6px}
.ln-res-search-btn:hover{border-color:rgba(0,122,255,.4);color:var(--accent)}
.ln-res-search-btn.loading{pointer-events:none;opacity:.6}
.ln-spinner{width:12px;height:12px;border:1.5px solid rgba(255,255,255,.15);border-top-color:var(--accent);border-radius:50%;animation:lnSpin .7s linear infinite;flex-shrink:0}
@keyframes lnSpin{to{transform:rotate(360deg)}}
.ln-topic-btn.loading{pointer-events:none;opacity:.6}
.ln-gate{margin-top:20px;padding:14px 16px;background:rgba(255,159,10,.07);border:1px solid rgba(255,159,10,.25);border-radius:var(--r-m)}
.ln-gate-msg{display:flex;gap:8px;font-size:var(--fs-2);color:var(--orange);line-height:1.5;margin-bottom:12px}
.ln-gate-acts{display:flex;gap:8px}
.ln-gate-btn{appearance:none;border-radius:999px;font-size:var(--fs-2);font-weight:500;padding:7px 14px;cursor:pointer;border:.5px solid transparent;font-family:var(--font);transition:background .2s}
.ln-gate-btn-blue{border-color:rgba(0,122,255,.35);color:var(--accent);background:rgba(0,122,255,.08)}
.ln-gate-btn-blue:hover{background:rgba(0,122,255,.16)}
.ln-gate-btn-dim{border-color:var(--border-s);color:rgba(255,255,255,.5);background:transparent}
.ln-gate-btn-dim:hover{background:var(--overlay)}
.ln-topic-actions{display:flex;gap:10px;margin-top:24px;padding-top:16px;border-top:.5px solid var(--border)}
.ln-topic-btn{appearance:none;border-radius:999px;font-size:var(--fs-2);font-weight:500;padding:10px 16px;cursor:pointer;flex:1;text-align:center;border:.5px solid transparent;font-family:var(--font);transition:transform .15s,background .2s}
.ln-topic-btn:active{transform:scale(.97)}
.ln-topic-btn-green{border-color:rgba(52,199,89,.35);color:var(--green);background:rgba(52,199,89,.07)}
.ln-topic-btn-green:hover{background:rgba(52,199,89,.14)}
.ln-topic-btn-blue{border-color:rgba(0,122,255,.35);color:var(--accent);background:rgba(0,122,255,.07)}
.ln-topic-btn-blue:hover{background:rgba(0,122,255,.14)}
.ln-topic-btn-dim{border-color:var(--border-s);color:rgba(255,255,255,.45);background:transparent}
.ln-topic-btn-dim:hover{background:var(--overlay)}
.ln-topic-status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-1);padding:4px 10px;border-radius:999px;margin-bottom:16px}
.ln-topic-status-done{color:var(--green);background:rgba(52,199,89,.08);border:.5px solid rgba(52,199,89,.25)}
.ln-topic-status-active{color:var(--accent);background:rgba(0,122,255,.08);border:.5px solid rgba(0,122,255,.25)}
.ln-topic-status-locked{color:rgba(255,255,255,.35);background:var(--raised);border:.5px solid var(--border)}

/* ── QUIZ ── */
.ln-quiz-q{margin-bottom:16px}
.ln-quiz-qtext{font-size:var(--fs-3);font-weight:500;color:rgba(255,255,255,.85);margin-bottom:10px;display:flex;gap:8px}
.ln-quiz-qnum{font-family:var(--mono);font-size:var(--fs-1);color:rgba(255,255,255,.35);flex-shrink:0;margin-top:1px}
.ln-quiz-opts{display:flex;flex-direction:column;gap:4px;padding-left:20px}
.ln-quiz-opt{appearance:none;background:var(--raised);border:1px solid var(--border);border-radius:var(--r-s);padding:10px 14px;font-size:var(--fs-2);color:rgba(255,255,255,.75);cursor:pointer;text-align:left;font-family:var(--font);transition:border-color .15s,background .15s}
.ln-quiz-opt:hover{border-color:var(--border-s);background:var(--overlay)}
.ln-quiz-opt.selected{border-color:rgba(0,122,255,.5);background:rgba(0,122,255,.08);color:var(--text)}
.ln-quiz-opt.correct{border-color:rgba(52,199,89,.5);background:rgba(52,199,89,.08);color:var(--green)}
.ln-quiz-opt.wrong{border-color:rgba(255,77,77,.4);background:rgba(255,77,77,.06);color:var(--red)}
.ln-quiz-sticky{position:sticky;bottom:-36px;background:var(--surface);padding:16px 0;margin:0 -48px;padding-left:48px;padding-right:48px;border-top:.5px solid var(--border);z-index:2}
.ln-quiz-submit{appearance:none;width:100%;border-radius:var(--r-m);font-size:var(--fs-3);font-weight:500;padding:14px 20px;cursor:pointer;font-family:var(--font);transition:background .2s,border-color .2s;display:flex;align-items:center;justify-content:center;gap:10px;background:rgba(255,255,255,.04);border:1px solid var(--border-s);color:rgba(255,255,255,.4)}
.ln-quiz-submit.ready{background:rgba(0,122,255,.12);border-color:rgba(0,122,255,.4);color:var(--accent)}
.ln-quiz-submit.ready:hover{background:rgba(0,122,255,.22)}
.ln-quiz-submit:disabled{cursor:default}
.ln-quiz-counter{font-family:var(--mono);font-size:var(--fs-1);opacity:.6}
.ln-quiz-result{padding:12px 16px;border-radius:var(--r-m);margin-top:12px;font-size:var(--fs-2);font-weight:500;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ln-quiz-result-pass{background:rgba(52,199,89,.08);border:1px solid rgba(52,199,89,.25);color:var(--green)}
.ln-quiz-result-fail{background:rgba(255,159,10,.08);border:1px solid rgba(255,159,10,.25);color:var(--orange)}
.ln-quiz-rec{font-size:var(--fs-2);font-weight:400;color:inherit;opacity:.8;margin-top:4px;width:100%}
.ln-quiz-gen{appearance:none;background:transparent;border:.5px solid var(--border-s);color:rgba(255,255,255,.5);font-size:var(--fs-1);font-weight:500;padding:6px 12px;border-radius:999px;cursor:pointer;font-family:var(--font);transition:border-color .2s,color .2s;display:inline-flex;align-items:center;gap:6px}
.ln-quiz-gen:hover{border-color:rgba(0,122,255,.4);color:var(--accent)}
.ln-quiz-gen.loading{pointer-events:none;opacity:.6}

/* Footer */
