/* --- шапка курса уроков --- */
.lp-top{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-m);padding:14px 16px;margin:0 0 14px}
.lp-top-bar{height:5px;border-radius:3px;background:var(--surface-3);overflow:hidden}
.lp-top-bar i{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .35s cubic-bezier(.4,0,.2,1)}
.lp-top-row{display:flex;align-items:baseline;gap:10px;margin:10px 0 0}
.lp-top-txt{flex:1;min-width:0;font-size:13px;font-weight:700;color:var(--ink-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lp-top-num{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:var(--ink-3);flex:0 0 auto}
.lp-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
/* плавное раскрытие: grid-template-rows 0fr -> 1fr анимируется до авто-высоты,
   поэтому не нужно угадывать max-height */
.stage-body{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1),opacity .22s ease}
.stage-body-in{overflow:hidden;min-height:0}
.stage-block.open .stage-body{grid-template-rows:1fr;opacity:1}
@media(prefers-reduced-motion:reduce){.stage-body{transition:none}}
.lesson-card .lc-goal{display:flex;gap:6px;flex-wrap:wrap}
.lesson-card .lc-goal span{font-size:10px;font-family:'JetBrains Mono',monospace;color:var(--ink-3);background:var(--surface-1);border:1px solid var(--line);border-radius:4px;padding:1px 5px}
.lesson-card .lc-best{font-size:10.5px;font-family:'JetBrains Mono',monospace;color:#28c840;font-weight:700}
.lesson-card .stars{letter-spacing:1px;font-size:11px;color:#ffd43b}
.lesson-card.locked{opacity:0.5;cursor:not-allowed}
.quiz{display:flex;flex-direction:column;gap:10px}
.quiz-q{font-size:14px;font-weight:600;margin-bottom:2px}
.quiz-opt{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-s);color:var(--ink-1);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:all 0.15s}
.quiz-opt:hover:not(:disabled){border-color:var(--line-2)}
.quiz-opt:disabled{cursor:default}
.quiz-opt.r{background:rgba(40,200,64,0.14);border-color:rgba(40,200,64,0.5)}
.quiz-opt.w{background:rgba(255,95,95,0.14);border-color:rgba(255,95,95,0.5)}
.quiz-opt .mark{margin-left:auto;font-weight:700;font-size:13px}
.quiz-feedback{font-size:12px;color:var(--ink-2);min-height:16px;margin-top:4px}
.quiz-nav{display:flex;gap:8px;margin-top:14px}
.quiz-nav button{flex:1;padding:10px;border-radius:var(--radius-s);border:none;font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.quiz-nav .next{background:var(--accent);color:var(--accent-ink)}
.quiz-nav .next:disabled{opacity:0.35;cursor:not-allowed}
.quiz-nav .later{background:var(--surface-2);color:var(--ink-1);border:1px solid var(--line)}
.quiz-result{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-m);padding:20px;text-align:center}
.quiz-result .qr-score{font-family:'JetBrains Mono',monospace;font-size:34px;font-weight:800;margin:8px 0 2px}
.quiz-result .qr-line{font-size:13px;color:var(--ink-2);margin-bottom:12px}
.lesson-done-note{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#28c840;font-weight:700;margin-top:8px}
@media (max-width:860px){.metrics{grid-template-columns:repeat(2,1fr)}.profile-layout{grid-template-columns:1fr}.nav{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.canvas{padding:20px 22px;font-size:16px}}

/* --- Premium / clans --- */
.premium-card{background:linear-gradient(135deg,var(--surface-2),var(--surface-1));border:1px solid var(--line-2);border-radius:var(--radius-m);padding:16px;margin-bottom:14px}
.premium-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.premium-title{font-size:15px;font-weight:800}.premium-desc{font-size:11.5px;color:var(--ink-2);line-height:1.5;margin-top:4px}
.balance{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:800}
.clan-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,1.4fr);gap:14px}
.clan-list{display:flex;flex-direction:column;gap:7px}.clan-item{padding:11px 13px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-s)}
.clan-item.active{border-color:var(--line-2);background:var(--surface-3)}
.clan-name{font-weight:800;font-size:13px}.clan-meta{font-size:10.5px;color:var(--ink-3);margin-top:3px}
.clan-members{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.clan-member{padding:5px 8px;background:var(--surface-2);border:1px solid var(--line);border-radius:5px;font-size:10.5px}
.clan-code{font-family:'JetBrains Mono',monospace;letter-spacing:.08em}
.clan-form{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.clan-form input{flex:1;min-width:160px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-s);padding:9px 10px;color:var(--ink-1);font-family:inherit;outline:none}
.clan-form input:focus{border-color:var(--line-2)}
.clan-empty{padding:25px;text-align:center;color:var(--ink-3);font-size:12px}
.clan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.clan-role{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:9px;color:var(--ink-2);font-weight:800}.clan-role.leader{background:rgba(245,158,11,.14);color:#f59e0b;border-color:rgba(245,158,11,.35)}.clan-role.deputy{background:rgba(59,130,246,.12);color:#60a5fa;border-color:rgba(59,130,246,.3)}.clan-role.officer{background:rgba(139,92,246,.12);color:#a78bfa;border-color:rgba(139,92,246,.3)}.clan-manage{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.clan-member-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.clan-member-row:last-child{border-bottom:0}.clan-member-name{font-weight:700;font-size:11px}.clan-member-sub{font-size:9px;color:var(--ink-3);margin-top:2px}.clan-select,.clan-name-input{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;color:var(--ink-1);padding:7px 8px;font:inherit;font-size:10px}.clan-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.clan-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:800;margin:13px 0 7px}.clan-progress{margin-top:10px}.clan-progress-top{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--ink-2)}.clan-progress-bar{height:7px;background:var(--surface-3);border-radius:99px;overflow:hidden;margin-top:6px}.clan-progress-fill{height:100%;background:var(--accent);border-radius:99px}.clan-task{padding:9px 10px;border:1px solid var(--line);background:var(--surface-2);border-radius:7px;margin-top:6px}.clan-task-top{display:flex;justify-content:space-between;gap:8px;font-size:10px;font-weight:800}.clan-task-meta{font-size:9px;color:var(--ink-3);margin-top:3px}.clan-task-settings{display:grid;grid-template-columns:1fr 90px;gap:6px;align-items:center}.clan-task-settings label{font-size:10px;color:var(--ink-2)}.clan-note{font-size:9px;color:var(--ink-3);line-height:1.45;margin-top:6px}@media(max-width:760px){.clan-member-row{grid-template-columns:1fr}.clan-select{width:100%}}

@media(max-width:760px){.clan-grid{grid-template-columns:1fr}}
/* Финальные стили окна настроек и Premium */
.overlay{background:rgba(0,0,0,.48);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.modal{background:rgba(24,24,24,.74);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
[data-theme="light"] .modal{background:#fff!important;backdrop-filter:none;-webkit-backdrop-filter:none}
.mini-seg button.active .premium-label{color:#fff !important;text-shadow:0 1px 2px rgba(0,0,0,.35)}

/* ===== CODE EDITOR ASSIST ===== */
.code-complete{position:absolute;z-index:40;display:none;width:min(480px,calc(100% - 16px));background:var(--surface-1);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 14px 34px rgba(0,0,0,.28);overflow:hidden;font-family:'JetBrains Mono',monospace}.code-complete.show{display:block}.code-complete-head{display:flex;align-items:center;gap:8px;padding:7px 10px;font:600 10px Manrope,sans-serif;color:var(--ink-2);border-bottom:1px solid var(--line);background:var(--surface-2)}.code-complete-head .cc-title{flex:1}.code-complete-head .cc-count{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--ink-3)}.code-complete-list{max-height:190px;overflow:auto;padding:3px;scroll-behavior:auto;overscroll-behavior:contain}.code-complete-item{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;cursor:pointer;color:var(--ink-1);font-size:11.5px;border-radius:5px}.code-complete-item:hover,.code-complete-item.active{background:var(--surface-3)}.code-complete-item.active{box-shadow:inset 2px 0 0 var(--accent)}.code-complete-item .cc-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2);color:var(--accent);font:700 10px 'JetBrains Mono',monospace}.code-complete-item .cc-main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-complete-item .cc-kind{margin-left:8px;font:600 9px Manrope,sans-serif;color:var(--ink-3);text-transform:uppercase;white-space:nowrap}.code-complete-item .cc-detail{grid-column:2 / 4;margin-top:-3px;font:10px Manrope,sans-serif;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-complete-hint{display:flex;align-items:center;gap:8px;padding:6px 10px;border-top:1px solid var(--line);font:10px Manrope,sans-serif;color:var(--ink-3)}.code-complete-hint kbd{padding:1px 5px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:4px;background:var(--surface-2);color:var(--ink-2);font:700 9px 'JetBrains Mono',monospace}.code-complete-hint .spacer{flex:1}


/* Free accent palettes: authoritative rules, including light theme. */
html[data-theme="dark"][data-palette="black"]{--accent:#111;--accent-ink:#fff}
html[data-theme="dark"][data-palette="white"]{--accent:#fff;--accent-ink:#111}
html[data-theme="light"][data-palette="black"]{--accent:#111;--accent-ink:#fff}
html[data-theme="light"][data-palette="white"]{--accent:#fff;--accent-ink:#111}
html[data-theme="dark"][data-palette="violet"]{--accent:#7c3aed;--accent-ink:#fff}
html[data-theme="dark"][data-palette="blue"]{--accent:#2563eb;--accent-ink:#fff}
html[data-theme="dark"][data-palette="green"]{--accent:#16a34a;--accent-ink:#fff}
html[data-theme="dark"][data-palette="orange"]{--accent:#ea580c;--accent-ink:#fff}
html[data-theme="dark"][data-palette="pink"]{--accent:#db2777;--accent-ink:#fff}
html[data-theme="dark"][data-palette="cyan"]{--accent:#06b6d4;--accent-ink:#071114}
html[data-theme="dark"][data-palette="red"]{--accent:#ef4444;--accent-ink:#fff}
html[data-theme="dark"][data-palette="yellow"]{--accent:#eab308;--accent-ink:#17120a}
html[data-theme="dark"][data-palette="teal"]{--accent:#14b8a6;--accent-ink:#06110f}
html[data-theme="dark"][data-palette="indigo"]{--accent:#6366f1;--accent-ink:#fff}
html[data-theme="dark"][data-palette="sky"]{--accent:#0ea5e9;--accent-ink:#06131b}
html[data-theme="dark"][data-palette="lime"]{--accent:#84cc16;--accent-ink:#142006}
html[data-theme="dark"][data-palette="amber"]{--accent:#f59e0b;--accent-ink:#211000}
html[data-theme="dark"][data-palette="rose"]{--accent:#f43f5e;--accent-ink:#fff}
html[data-theme="light"][data-palette="violet"]{--accent:#7c3aed;--accent-ink:#fff}
html[data-theme="light"][data-palette="blue"]{--accent:#2563eb;--accent-ink:#fff}
html[data-theme="light"][data-palette="green"]{--accent:#16a34a;--accent-ink:#fff}
html[data-theme="light"][data-palette="orange"]{--accent:#ea580c;--accent-ink:#fff}
html[data-theme="light"][data-palette="pink"]{--accent:#db2777;--accent-ink:#fff}
html[data-theme="light"][data-palette="cyan"]{--accent:#0891b2;--accent-ink:#fff}
html[data-theme="light"][data-palette="red"]{--accent:#dc2626;--accent-ink:#fff}
html[data-theme="light"][data-palette="yellow"]{--accent:#ca8a04;--accent-ink:#17120a}
html[data-theme="light"][data-palette="teal"]{--accent:#0f766e;--accent-ink:#fff}
html[data-theme="light"][data-palette="indigo"]{--accent:#4f46e5;--accent-ink:#fff}
html[data-theme="light"][data-palette="sky"]{--accent:#0284c7;--accent-ink:#fff}
html[data-theme="light"][data-palette="lime"]{--accent:#65a30d;--accent-ink:#101800}
html[data-theme="light"][data-palette="amber"]{--accent:#d97706;--accent-ink:#211000}
html[data-theme="light"][data-palette="rose"]{--accent:#e11d48;--accent-ink:#fff}

/* ===== ЧАТЫ ===== */
.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;align-items:start}.chat-panel{min-height:560px;display:flex;flex-direction:column}.chat-tabs{display:flex;gap:4px;padding-bottom:12px;border-bottom:1px solid var(--line)}.chat-tab{border:1px solid transparent;background:transparent;color:var(--ink-2);padding:9px 14px;border-radius:8px;font:700 12px Manrope,sans-serif;cursor:pointer}.chat-tab:hover{background:var(--surface-2);color:var(--ink-1)}.chat-tab.active{background:var(--surface-3);color:var(--ink-1);border-color:var(--line-2)}.chat-head{font-size:12px;font-weight:700;margin:14px 0 10px}.chat-messages{height:390px;overflow-y:auto;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px}.chat-empty{text-align:center;color:var(--ink-3);font-size:12px;padding:70px 20px}.chat-message{padding:8px 10px;margin-bottom:7px;border-radius:9px;background:var(--surface-1);border:1px solid var(--line)}.chat-message.mine{border-color:var(--line-2)}.chat-message-top{display:flex;align-items:center;gap:8px;margin-bottom:3px}.chat-author{font-size:11px;font-weight:800}.chat-time{font-size:9px;color:var(--ink-3)}.chat-text{font-size:12px;color:var(--ink-1);line-height:1.45;word-break:break-word}.chat-compose{display:flex;gap:8px;margin-top:10px}.chat-compose input{flex:1;min-width:0;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:11px 12px;color:var(--ink-1);font:500 12px Manrope,sans-serif;outline:none}.chat-compose input:focus{border-color:var(--line-2)}.chat-note{font-size:10px;color:var(--ink-3);margin-top:8px}.chat-info-item{display:flex;flex-direction:column;gap:3px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.chat-info-item span{color:var(--ink-2);font-size:10.5px}@media(max-width:850px){.chat-layout{grid-template-columns:1fr}.chat-info{display:none}}
