:root{--bg: #ffffff;--surface: #f3f4f7;--surface2: #e8eaf0;--text: #1d222b;--muted: #667084;--accent: #3a6fe0;--green: #1a9e62;--yellow: #b07c0a;--red: #d64545;--border: #e4e7ee;--border-strong: #d4d9e4;--nav-bg: rgba(255, 255, 255, .95);--choice-active: #dde1ea;--menu-shadow: 0 8px 30px rgba(20, 28, 45, .18);--impulse-border: #b9d2ef;--impulse-bg: #e9f1fb;--overlay-bg: rgba(243, 245, 249, .88);--box-border: #dfe3ec;--radius: 16px}:root[data-theme=dark]{--bg: #0f1115;--surface: #181c23;--surface2: #222733;--text: #e8ebf0;--muted: #8b93a3;--accent: #4f8cff;--green: #3dd68c;--yellow: #f0b429;--red: #ff6b6b;--border: #262c38;--border-strong: #333a48;--nav-bg: rgba(24, 28, 35, .95);--choice-active: #2b3242;--menu-shadow: 0 8px 30px rgba(0, 0, 0, .5);--impulse-border: #31506e;--impulse-bg: #1a2230;--overlay-bg: rgba(10, 12, 16, .88);--box-border: #2c3342}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#root{min-height:100dvh;display:flex;flex-direction:column}button{font:inherit;color:inherit;border:none;border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent}input,textarea,select{font:inherit;color:var(--text);background:var(--surface2);border:1px solid var(--border-strong);border-radius:12px;padding:12px 14px;width:100%}input:focus,textarea:focus{outline:2px solid var(--accent);border-color:transparent}.app-main{flex:1;padding:12px 16px calc(84px + env(safe-area-inset-bottom));max-width:560px;width:100%;margin:0 auto}.nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:30}.nav button{background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;padding:4px 14px}.nav button.active{color:var(--accent)}.nav .icon{font-size:22px;line-height:1}.topbar{display:flex;align-items:center;gap:12px;padding:10px 0 14px}.topbar .goal{flex:1}.goalbar{height:6px;background:var(--surface2);border-radius:3px;overflow:hidden}.goalbar>div{height:100%;background:var(--green);border-radius:3px;transition:width .4s}.topbar .label{font-size:12px;color:var(--muted);margin-bottom:4px}.levelbadge{background:var(--surface2);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;white-space:nowrap}.card{background:var(--surface);border-radius:var(--radius);padding:24px 20px;margin-bottom:16px;border:1px solid var(--border)}.card.ai{border-color:var(--yellow)}.card.impulse{border-color:var(--impulse-border);background:linear-gradient(160deg,var(--surface),var(--impulse-bg))}.card .typerow{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.card .type{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.card .ai-tag{font-size:11px;color:var(--yellow)}.card .front{font-size:22px;font-weight:600;line-height:1.35}.card .hint{margin-top:12px;color:var(--muted);font-size:15px}.card .hint-btn{background:none;color:var(--muted);font-size:14px;padding:12px 0 0;display:block}.card .photo{width:100%;max-height:320px;object-fit:cover;border-radius:12px;margin-bottom:14px}.menu-btn{background:none;color:var(--muted);font-size:22px;padding:2px 8px}.menu{position:absolute;right:16px;background:var(--surface2);border-radius:12px;border:1px solid var(--border-strong);overflow:hidden;z-index:20;box-shadow:var(--menu-shadow)}.menu button{display:block;width:100%;text-align:left;background:none;padding:14px 18px;border-radius:0;font-size:15px}.menu button:active{background:var(--surface)}.menu button.danger{color:var(--red)}.choices{display:flex;flex-direction:column;gap:10px}.choices button{background:var(--surface2);padding:16px;font-size:16px;text-align:left;line-height:1.4;border:1px solid var(--border-strong)}.choices button:active{background:var(--choice-active)}.answer-row{display:flex;gap:10px}.answer-row textarea{flex:1;min-height:56px;resize:none}.mic,.send{min-width:56px;font-size:20px;border-radius:12px}.mic{background:var(--surface2)}.mic.listening{background:var(--red);animation:pulse 1s infinite}.send{background:var(--accent);color:#fff;font-weight:600;font-size:16px;padding:0 18px}@keyframes pulse{50%{opacity:.6}}.result{text-align:center;padding:8px 0}.result .verdict{font-size:26px;font-weight:700;margin-bottom:4px}.result.correct .verdict{color:var(--green)}.result.almost .verdict{color:var(--yellow)}.result.wrong .verdict{color:var(--red)}.result .praise{color:var(--muted);margin-bottom:14px}.result .solution{background:var(--surface);border-radius:12px;padding:16px;font-size:18px;margin-bottom:8px;line-height:1.4}.result .given,.result .comment{color:var(--muted);font-size:14px;margin-bottom:14px}.big-btn{display:block;width:100%;background:var(--accent);color:#fff;padding:18px;font-size:17px;font-weight:600;margin-top:12px}.big-btn.secondary{background:var(--surface2);color:var(--text)}.big-btn:disabled{opacity:.5}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--overlay-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadein .25s}@keyframes fadein{0%{opacity:0}}.overlay .box{background:var(--surface);border-radius:20px;padding:28px 24px;max-width:420px;width:100%;text-align:center;animation:popin .35s cubic-bezier(.18,1.25,.4,1);border:1px solid var(--box-border)}@keyframes popin{0%{transform:scale(.8);opacity:0}}.overlay .emoji{font-size:44px;margin-bottom:10px}.overlay h3{margin:0 0 14px;font-size:19px}.overlay p{margin:0 0 10px;line-height:1.5;font-size:16px}.overlay .source{color:var(--muted);font-size:13px;margin-bottom:18px}.overlay.tip .box{border-color:var(--impulse-border)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60;overflow:hidden}.confetti i{position:absolute;top:-12px;width:9px;height:14px;display:block;animation:fall 1.6s ease-in forwards}@keyframes fall{to{transform:translateY(105vh) rotate(720deg);opacity:.6}}.done{text-align:center;padding:60px 20px}.done .emoji{font-size:56px;margin-bottom:14px}.done h2{margin:0 0 8px}.done p{color:var(--muted)}.list-item{background:var(--surface);border-radius:12px;padding:14px 16px;margin-bottom:10px;border:1px solid var(--border)}.list-item .primary{font-size:16px;margin-bottom:4px}.list-item .secondary{font-size:14px;color:var(--muted)}.list-item.ai{border-left:3px solid var(--yellow)}.list-item .row{display:flex;justify-content:space-between;align-items:center;gap:10px}.searchbar{margin-bottom:14px}h1.page{font-size:22px;margin:10px 0 16px}.section-label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:22px 0 10px}.field{margin-bottom:12px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.person-photo{width:92px;height:92px;border-radius:50%;object-fit:cover}.person-photo-placeholder{width:92px;height:92px;border-radius:50%;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:34px;color:var(--muted)}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.stat{background:var(--surface);border-radius:12px;padding:16px;border:1px solid var(--border)}.stat .value{font-size:26px;font-weight:700}.stat .name{font-size:13px;color:var(--muted);margin-top:2px}.bars{display:flex;align-items:flex-end;gap:4px;height:90px;margin-top:8px}.bars .bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%}.bars .bar>div{background:var(--accent);border-radius:3px 3px 0 0;min-height:2px}.bars .bar span{font-size:9px;color:var(--muted);text-align:center;margin-top:4px}.error{color:var(--red);font-size:14px;margin:8px 0}.center{text-align:center;color:var(--muted);padding:40px 0}.login-wrap{max-width:380px;margin:10vh auto 0;padding:0 20px}.login-wrap h1{text-align:center;font-size:30px}.login-wrap .sub{text-align:center;color:var(--muted);margin-bottom:30px}
