:root{--bg: #f6f7fb;--surface: #ffffff;--surface-2: #f0f2f8;--text: #1b2033;--muted: #646b82;--border: #e2e5ef;--primary: #2f6fed;--primary-soft: #e6eeff;--success: #1f9d61;--success-soft: #e3f6ec;--danger: #d64545;--danger-soft: #fdeaea;--warn: #b7791f;--warn-soft: #fff4dc;--radius: 14px;--shadow: 0 1px 2px rgba(20, 30, 60, .06), 0 4px 16px rgba(20, 30, 60, .05);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #11141c;--surface: #1a1e29;--surface-2: #232838;--text: #e9ecf5;--muted: #9aa1b7;--border: #2d3346;--primary: #6b9bff;--primary-soft: #22304f;--success: #4cc98a;--success-soft: #19352a;--danger: #ff7b7b;--danger-soft: #3d1f22;--warn: #f0b955;--warn-soft: #3a2f17;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}h1,h2,h3{line-height:1.25;margin:0 0 .5rem}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1.02rem}p{margin:0 0 .75rem}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1rem;padding:.6rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--text)}.brand img{width:28px;height:28px}.nav{display:flex;gap:.25rem;margin:0 auto}.nav-link{display:flex;align-items:center;gap:.4rem;padding:.45rem .8rem;border-radius:10px;color:var(--muted);font-weight:500}.nav-link:hover{background:var(--surface-2)}.nav-link.active{background:var(--primary-soft);color:var(--primary)}.hello{color:var(--muted);font-size:.9rem}.main{max-width:920px;margin:0 auto;padding:1.5rem 1rem 6rem}@media(max-width:760px){.hello{display:none}.nav{position:fixed;bottom:0;left:0;right:0;margin:0;justify-content:space-around;background:var(--surface);border-top:1px solid var(--border);padding:.35rem .25rem calc(.35rem + env(safe-area-inset-bottom))}.nav-link{flex-direction:column;gap:0;padding:.3rem .4rem;font-size:.7rem}.nav-icon{font-size:1.2rem}h1{font-size:1.35rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;border-radius:10px;padding:.6rem 1.1rem;font:inherit;font-weight:600;cursor:pointer;background:var(--primary);color:#fff;transition:filter .15s,transform .05s}.btn:hover{filter:brightness(1.07)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn.ghost{background:transparent;color:var(--primary)}.btn.danger{background:var(--danger)}.btn.block{width:100%}.btn.sm{padding:.35rem .7rem;font-size:.875rem}.input,select.input{width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit}.input:focus{outline:2px solid var(--primary);outline-offset:1px}label.field{display:flex;flex-direction:column;gap:.3rem;font-weight:500;font-size:.92rem}.badge{display:inline-block;padding:.12rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--primary-soft);color:var(--primary)}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.muted{background:var(--surface-2);color:var(--muted)}.alert{padding:.75rem 1rem;border-radius:10px;background:var(--danger-soft);color:var(--danger)}.alert.info{background:var(--primary-soft);color:var(--primary)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.progress{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--primary);border-radius:999px;transition:width .3s}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--surface-2);border-top-color:var(--primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{min-height:100vh;display:grid;place-items:center;padding:1rem}.choice{text-align:left;width:100%;cursor:pointer;font:inherit;color:inherit;background:var(--surface);border:2px solid var(--border);border-radius:12px;padding:.9rem 1rem;transition:border-color .15s,background .15s}.choice:hover{border-color:var(--primary)}.choice.selected{border-color:var(--primary);background:var(--primary-soft)}.choice.correct{border-color:var(--success);background:var(--success-soft)}.choice.wrong{border-color:var(--danger);background:var(--danger-soft)}.choice:disabled{cursor:default}.plan-item{display:flex;align-items:center;gap:.9rem;padding:.9rem 1rem;border-radius:12px;background:var(--surface-2);color:var(--text)}.plan-item:hover{filter:brightness(.98)}.plan-item .icon{font-size:1.5rem;width:2.2rem;text-align:center}.plan-item .grow{flex:1;min-width:0}.plan-item.done{opacity:.65}.plan-item.done .title{text-decoration:line-through}.ring{--p: 0;width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--success) calc(var(--p) * 1%),var(--surface-2) 0);flex-shrink:0}.ring>div{width:76px;height:76px;border-radius:50%;background:var(--surface);display:grid;place-items:center;text-align:center;line-height:1.1}.stage{border-left:3px solid var(--border);padding-left:1rem;margin-left:.5rem}.stage.current{border-color:var(--primary)}.lesson-row{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:10px;color:var(--text)}.lesson-row:hover{background:var(--surface-2)}.dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;flex-shrink:0;background:var(--surface-2);border:2px solid var(--border)}.dot.done{background:var(--success);border-color:var(--success);color:#fff}.dot.next{border-color:var(--primary);color:var(--primary)}.flashcard{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none}.flashcard .word{font-size:1.9rem;font-weight:700}.steps{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.25rem}.step{white-space:nowrap;padding:.4rem .8rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;font:inherit;font-size:.875rem}.step.active{background:var(--primary);color:#fff;border-color:var(--primary)}.step.done{color:var(--success);border-color:var(--success)}.dialogue-line{display:flex;gap:.6rem;padding:.5rem 0;border-bottom:1px dashed var(--border)}.dialogue-line:last-child{border-bottom:0}.speaker{font-weight:700;min-width:5.5rem;color:var(--primary)}.chat{display:flex;flex-direction:column;height:calc(100vh - 150px);min-height:420px}.chat-log{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;padding:.5rem .25rem}.bubble{max-width:82%;padding:.65rem .9rem;border-radius:16px;white-space:pre-wrap}.bubble.ai{background:var(--surface);border:1px solid var(--border);align-self:flex-start;border-bottom-left-radius:4px}.bubble.me{background:var(--primary);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.feedback{align-self:flex-end;max-width:82%;font-size:.86rem;border-radius:12px;padding:.6rem .8rem;background:var(--warn-soft);color:var(--text);border:1px solid var(--border)}.feedback.ok{background:var(--success-soft)}.feedback b{font-weight:600}.feedback ul{margin:.3rem 0 0;padding-left:1.1rem}.composer{display:flex;gap:.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.composer textarea{resize:none;height:48px}@media(max-width:760px){.chat{height:calc(100vh - 190px)}.bubble,.feedback{max-width:92%}}.icon-btn{background:none;border:0;cursor:pointer;font-size:1.1rem;padding:.2rem;color:inherit}@media(max-width:760px){.nav-link{font-size:.64rem;padding:.3rem .2rem}}.print-only{display:none}.cv-print{color:#000;background:#fff;font-size:11pt;line-height:1.45}.cv-print h1{font-size:20pt}.cv-print h3{border-bottom:1px solid #999;padding-bottom:2px;margin:12px 0 6px;font-size:12pt;text-transform:uppercase;letter-spacing:.5px}@media print{body{background:#fff}.topbar,.nav,.no-print{display:none!important}.main{padding:0;max-width:none}.print-only{display:block!important}}
