:root{--bg-1:#F6F7FB;--bg-2:#EEF1F7;--card:#FFFFFF;--hairline:#E2E6EF;--ink:#0F172A;--ink-2:#2A334A;--muted:#545B6F;--muted-2:#99A0B3;--primary:#2C63E2;--primary-hover:#1E4FCC;--primary-press:#173EA8;--primary-soft:#E2EAFB;--primary-glow:rgba(44,99,226,0.45);--primary-fg:#FFFFFF;--status-red:#D8453A;--status-red-soft:#FBE2DE;--status-red-fg:#FFFFFF;--status-amber:#E89E1A;--status-amber-soft:#FCEFD3;--status-amber-fg:#4A3306;--status-green:#2E9656;--status-green-soft:#DCEEDB;--status-green-fg:#FFFFFF;--selection:#C7D6F7;--focus-ring:#2C63E2;--font-display:"Instrument Serif","Iowan Old Style",Georgia,serif;--font-sans:"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--fs-hero:clamp(40px,7vw,88px);--fs-h1:clamp(32px,4.5vw,56px);--fs-h2:clamp(26px,3vw,36px);--fs-h3:22px;--fs-h4:18px;--fs-body:15px;--fs-small:13px;--fs-xs:11px;--lh-hero:1.02;--lh-heading:1.12;--lh-body:1.55;--lh-tight:1.25;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--radius-xs:4px;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--shadow-paper:0 1px 0 rgba(15,23,42,0.04),0 1px 2px rgba(15,23,42,0.05);--shadow-lift:0 8px 24px -8px rgba(15,23,42,0.12),0 2px 6px rgba(15,23,42,0.06);--shadow-primary:0 8px 24px -10px var(--primary-glow);--ease-paper:cubic-bezier(0.22,0.61,0.36,1);--dur-micro:120ms;--dur-hover:180ms;--dur-page:320ms;--page-max:1120px;--gutter:24px;--sidebar-w:220px;--bg:var(--bg-1);--bg-3:#D4DAE8;--surface:var(--card);--surface-2:#F2F4FA;--dark-bg:#161B2B;--dark-bg-2:#0F1320;--dark-surface:#1C2236;--text-1:var(--ink);--text-2:var(--ink-2);--text-3:var(--muted);--dark-text-1:#ECEFF6;--dark-text-2:#C7CCDB;--dark-text-3:#8C93AA;--accent:var(--primary);--accent-2:var(--primary-hover);--accent-fg:var(--primary-fg);--accent-soft:var(--primary-soft);--accent-glow:var(--primary-glow);--border:var(--hairline);--border-2:rgba(226,230,239,0.65);--shadow:var(--shadow-paper);--radius:var(--radius-md);--ease:0.18s var(--ease-paper);color-scheme:light}:root[data-theme=dark]{--bg-1:#0F1320;--bg-2:#161B2B;--card:#1C2236;--hairline:#2A3146;--ink:#ECEFF6;--ink-2:#C7CCDB;--muted:#8C93AA;--muted-2:#6A718A;--primary:#5B89EE;--primary-hover:#7AA0F2;--primary-press:#A6BEF7;--primary-soft:rgba(91,137,238,0.16);--primary-glow:rgba(91,137,238,0.55);--primary-fg:#0F1320;--status-red:#EB6E63;--status-red-soft:rgba(235,110,99,0.18);--status-amber:#F5B844;--status-amber-soft:rgba(245,184,68,0.18);--status-green:#4FBE7C;--status-green-soft:rgba(79,190,124,0.18);--selection:rgba(91,137,238,0.35);--focus-ring:#7AA0F2;--shadow-paper:0 1px 0 rgba(0,0,0,0.4),0 1px 2px rgba(0,0,0,0.4);--shadow-lift:0 10px 28px -8px rgba(0,0,0,0.65),0 2px 8px rgba(0,0,0,0.45);--shadow-primary:0 10px 28px -10px var(--primary-glow);color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg-1:#0F1320;--bg-2:#161B2B;--card:#1C2236;--hairline:#2A3146;--ink:#ECEFF6;--ink-2:#C7CCDB;--muted:#8C93AA;--muted-2:#6A718A;--primary:#5B89EE;--primary-hover:#7AA0F2;--primary-press:#A6BEF7;--primary-soft:rgba(91,137,238,0.16);--primary-glow:rgba(91,137,238,0.55);--primary-fg:#0F1320;--status-red:#EB6E63;--status-red-soft:rgba(235,110,99,0.18);--status-amber:#F5B844;--status-amber-soft:rgba(245,184,68,0.18);--status-green:#4FBE7C;--status-green-soft:rgba(79,190,124,0.18);--selection:rgba(91,137,238,0.35);--focus-ring:rgba(122,160,242,0.65);--shadow-paper:0 1px 0 rgba(0,0,0,0.4),0 1px 2px rgba(0,0,0,0.4);--shadow-lift:0 10px 28px -8px rgba(0,0,0,0.65),0 2px 8px rgba(0,0,0,0.45);--shadow-primary:0 10px 28px -10px var(--primary-glow);color-scheme:dark}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{min-height:100%;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);background:var(--bg);color:var(--text-1);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:has(.app){overflow:hidden}::selection{background:var(--selection);color:var(--ink)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}button{cursor:pointer;border:none;background:none}button,input,select,textarea{font:inherit}textarea{resize:none}.app{display:flex;height:100vh;height:100svh;overflow:hidden;padding-top:env(safe-area-inset-top,0)}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--dark-bg);display:flex;flex-direction:column;padding:20px 12px;gap:4px;position:relative;z-index:10}.sidebar-brand{gap:10px;padding:8px 12px 20px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px}.brand-mark,.sidebar-brand{display:flex;align-items:center}.brand-mark{color:var(--dark-text-1)}.brand-mark svg{width:20px;height:20px}.brand-name{font-size:16px;font-weight:800;color:var(--dark-text-1);letter-spacing:-.02em}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1 1;min-height:0;overflow-y:auto;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.nav-btn{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius);color:var(--dark-text-2);font-size:14px;font-weight:500;transition:background var(--ease),color var(--ease);text-align:left;width:100%}.nav-btn:hover{background:rgba(255,255,255,.07);color:var(--dark-text-1)}.nav-btn.active{background:rgba(255,255,255,.15);color:#ffffff;font-weight:700}.nav-ico{flex-shrink:0;display:flex;align-items:center;justify-content:center}.nav-ico,.nav-ico svg{width:18px;height:18px}.nav-lbl{flex:1 1}.sidebar-settings-btn .nav-ico{opacity:.7}.nav-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:100px;min-width:20px;text-align:center;display:none}.nav-badge.visible{display:block}.nav-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);display:none}.nav-dot.visible{display:block}.nav-dot.gen-generating{display:block;background:#facc15;animation:gen-pulse 1s ease-in-out infinite}.nav-dot.gen-done{display:block;background:#16a34a}.nav-dot.gen-error{display:block;background:#e11d48}@keyframes spin{to{transform:rotate(1turn)}}@keyframes gen-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.65)}}.sidebar-settings-btn{display:flex;align-items:center;gap:10px;border-radius:var(--radius);color:var(--dark-text-3);font-size:14px;font-weight:500;transition:background var(--ease),color var(--ease);border-top:1px solid rgba(255,255,255,.08);margin-top:8px;padding:16px 14px 11px}.sidebar-settings-btn:hover{color:var(--dark-text-1);background:rgba(255,255,255,.05)}.main-area{flex:1 1;overflow:hidden;position:relative;background:var(--bg)}.panel{position:absolute;inset:0;display:flex;flex-direction:column;opacity:1;transition:opacity var(--ease)}.panel.hidden{opacity:0;pointer-events:none}.chat-topbar{justify-content:space-between;padding:16px 24px;background:var(--surface);border-bottom:1px solid var(--border-2);flex-shrink:0}.chat-topbar,.ctb-info{display:flex;align-items:center}.ctb-info{gap:12px}.ctb-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 0 0 3px var(--accent-soft)}.ctb-name{font-size:15px;font-weight:700;color:var(--text-1)}.ctb-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3);margin-top:2px}.status-dot{width:7px;height:7px;border-radius:50%;background:#16a34a;animation:pulse 2s ease-in-out infinite}.status-dot.thinking{background:var(--accent);animation:pulse .8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.icon-btn{padding:8px;border-radius:var(--radius);color:var(--text-3);font-size:15px;transition:background var(--ease),color var(--ease)}.icon-btn:hover{background:var(--bg-2);color:var(--text-1)}.messages{flex:1 1;overflow-y:auto;padding:24px max(24px,calc(50% - 480px));display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth}.messages::-webkit-scrollbar{width:4px}.messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.msg{display:flex;gap:12px;animation:msgIn .28s cubic-bezier(.34,1.56,.64,1) both}@keyframes msgIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.msg.user{flex-direction:row-reverse}.msg-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.msg.ai .msg-avatar{background:var(--accent);color:#fff;box-shadow:0 0 0 2px var(--accent-soft)}.msg.user .msg-avatar{background:var(--bg-2);color:var(--text-1);border:1px solid var(--border)}.msg-body{display:flex;flex-direction:column;max-width:72%}.msg-bubble{padding:14px 18px;border-radius:var(--radius-lg);line-height:1.65;font-size:14.5px}.msg-actions{display:flex;gap:6px;margin-top:6px;padding-left:2px}.msg-retry-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:transparent;color:var(--text-3);border:1px solid var(--border);border-radius:100px;font-size:12px;font-weight:500;cursor:pointer;transition:background var(--ease),color var(--ease),border-color var(--ease)}.msg-retry-btn:hover{background:var(--bg-2);color:var(--text-1);border-color:var(--border-2)}.msg.ai .msg-bubble{background:var(--surface);border:1px solid var(--border-2);border-bottom-left-radius:4px;color:var(--text-1);box-shadow:0 2px 12px var(--shadow)}.msg.ai .msg-bubble:has(.welcome-msg){background:transparent;border:none;box-shadow:none;padding:0}.msg.ai:has(.welcome-msg) .msg-body{max-width:min(100%,680px)}.msg.user .msg-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px;box-shadow:0 4px 16px var(--accent-glow)}.msg-bubble p{margin-bottom:8px}.msg-bubble p:last-child{margin-bottom:0}.msg-bubble strong{font-weight:700}.msg-bubble em{font-style:italic}.msg-bubble code{background:var(--accent-soft);padding:2px 6px;border-radius:4px;font-size:13px;font-family:var(--font-mono)}.msg.user .msg-bubble code{background:rgba(255,255,255,.2)}.msg-action-btn{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:8px 16px;background:var(--accent);color:#fff;border-radius:100px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:background var(--ease),transform var(--ease)}.msg-action-btn:hover{background:var(--accent-2);transform:translateY(-1px)}.thinking-dots{display:flex;gap:4px;align-items:center;padding:4px 0}.thinking-dots span{width:6px;height:6px;border-radius:50%;background:var(--text-3);animation:dotBounce 1.2s ease-in-out infinite}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.input-zone{background:var(--surface);border-top:1px solid var(--border-2);padding:16px max(24px,calc(50% - 480px)) 20px;flex-shrink:0}.sugg-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.sugg-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--bg-2);border:1px solid var(--border-2);border-radius:100px;font-size:13px;color:var(--text-2);font-weight:500;transition:background var(--ease),border-color var(--ease),color var(--ease),transform var(--ease);white-space:nowrap}.sugg-chip:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.input-row{display:flex;gap:10px;align-items:flex-end;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:10px 10px 10px 16px;transition:border-color var(--ease),box-shadow var(--ease)}.input-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.msg-input{flex:1 1;border:none;background:transparent;color:var(--text-1);font-size:14.5px;line-height:1.55;max-height:140px;overflow-y:auto;outline:none}.msg-input::placeholder{color:var(--text-3)}.send-btn{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--ease),transform var(--ease),opacity var(--ease)}.send-btn:not([disabled]):hover{background:var(--accent-2);transform:scale(1.08)}.send-btn[disabled]{opacity:.35;cursor:not-allowed}.input-footer-note{font-size:11.5px;color:var(--text-3);margin-top:10px;text-align:center}.panel-topbar{justify-content:space-between;padding:18px 28px;background:var(--surface);border-bottom:1px solid var(--border-2);flex-shrink:0}.panel-topbar,.ptb-left{display:flex;align-items:center}.ptb-left{gap:14px}.ptb-icon{display:flex;align-items:center;color:var(--text-3)}.ptb-icon svg{width:24px;height:24px}.ptb-title{font-size:17px;font-weight:800;color:var(--text-1);letter-spacing:-.02em}.ptb-sub{font-size:12px;color:var(--text-3);margin-top:2px}.back-link{font-size:13px;font-weight:600;color:var(--accent);padding:8px 14px;border-radius:100px;border:1.5px solid var(--border);transition:background var(--ease),border-color var(--ease)}.back-link:hover{background:var(--accent-soft);border-color:var(--accent)}.panel-scroll{flex:1 1;overflow-y:auto;padding:28px}.panel-scroll::-webkit-scrollbar{width:4px}.panel-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.empty-state{flex-direction:column;min-height:360px;text-align:center;gap:12px}.empty-state,.es-icon{display:flex;align-items:center;justify-content:center}.es-icon{color:var(--text-3);opacity:.5}.es-icon svg{width:56px;height:56px}.es-title{font-size:20px;font-weight:800;color:var(--text-1);letter-spacing:-.02em}.es-desc{font-size:14px;color:var(--text-3);line-height:1.65}.es-desc em{font-style:italic;color:var(--text-2)}.cta-btn{margin-top:8px;padding:12px 28px;background:var(--accent);color:#fff;border-radius:100px;font-size:14px;font-weight:700;transition:background var(--ease),transform var(--ease),box-shadow var(--ease);box-shadow:0 4px 16px var(--accent-glow)}.cta-btn:hover{background:var(--accent-2);transform:translateY(-2px);box-shadow:0 8px 24px var(--accent-glow)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:20px;gap:20px}.flip-card{height:300px;perspective:1200px}.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.4,0,.2,1)}.flip-card.flipped .flip-inner{transform:rotateY(180deg)}.flip-back,.flip-front{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:var(--radius-xl);padding:22px;display:flex;flex-direction:column;gap:10px}.flip-front{background:var(--surface);border:1.5px solid var(--border-2);box-shadow:0 4px 20px var(--shadow)}.fc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.fc-num{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.fc-badge,.fc-num{color:var(--accent)}.fc-badge{font-size:10px;font-weight:600;padding:3px 8px;background:var(--accent-soft);border-radius:100px}.fc-question{font-size:15px;font-weight:700;color:var(--text-1);line-height:1.5;flex:1 1}.fc-input{width:100%;padding:10px 14px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius);font-size:13.5px;color:var(--text-1);outline:none;transition:border-color var(--ease),box-shadow var(--ease)}.fc-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.fc-input::placeholder{color:var(--text-3)}.fc-reveal-btn{width:100%;padding:11px;background:var(--accent);color:#fff;border-radius:var(--radius);font-size:13.5px;font-weight:700;transition:background var(--ease),transform var(--ease);box-shadow:0 2px 12px var(--accent-glow)}.fc-reveal-btn:hover{background:var(--accent-2);transform:translateY(-1px)}.flip-back{background:var(--accent);transform:rotateY(180deg);justify-content:center;align-items:center;text-align:center;gap:16px}.fb-tag{letter-spacing:.12em;color:rgba(255,255,255,.65)}.fb-answer{font-size:16px;line-height:1.5;padding:0 8px}.fb-answer,.fb-retry-btn{font-weight:700;color:#fff}.fb-retry-btn{padding:10px 24px;background:rgba(255,255,255,.18);border:1.5px solid rgba(255,255,255,.35);border-radius:100px;font-size:13px;transition:background var(--ease)}.fb-retry-btn:hover{background:rgba(255,255,255,.28)}#quizContainer{max-width:680px;margin:0 auto}.quiz-progress-bar-wrap{background:var(--bg-2);border-radius:100px;height:6px;margin-bottom:28px;overflow:hidden}.quiz-progress-fill{height:100%;background:var(--accent);border-radius:100px;transition:width .5s cubic-bezier(.4,0,.2,1)}.quiz-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.quiz-counter{font-size:12px;font-weight:700;color:var(--text-3);letter-spacing:.06em;text-transform:uppercase}.quiz-score-badge{font-size:12px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:100px}.quiz-question-card{background:var(--surface);border:1.5px solid var(--border-2);border-radius:var(--radius-xl);padding:28px;box-shadow:0 4px 20px var(--shadow);animation:msgIn .3s cubic-bezier(.34,1.56,.64,1) both}.quiz-question-text{font-size:17px;font-weight:700;color:var(--text-1);line-height:1.55;margin-bottom:24px;letter-spacing:-.015em}.quiz-options{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.quiz-option{width:100%;text-align:left;padding:14px 18px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-lg);font-size:14.5px;color:var(--text-1);transition:background var(--ease),border-color var(--ease),transform var(--ease);display:flex;align-items:center;gap:12px}.quiz-option:not(.locked):hover{background:var(--accent-soft);border-color:var(--accent);transform:translateX(3px)}.quiz-option.selected-correct{background:rgba(22,163,74,.1);border-color:#16a34a;color:#14532d}.quiz-option.selected-wrong{background:rgba(225,29,72,.1);border-color:#e11d48;color:#4c0519}.quiz-option.reveal-correct{background:rgba(22,163,74,.07);border-color:rgba(22,163,74,.3);color:#16a34a}.quiz-option.locked{cursor:not-allowed}.option-letter{width:26px;height:26px;border-radius:50%;background:var(--border-2);color:var(--text-2);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--ease),color var(--ease)}.selected-correct .option-letter{background:#16a34a;color:#fff}.selected-wrong .option-letter{background:#e11d48;color:#fff}.reveal-correct .option-letter{background:rgba(22,163,74,.2);color:#16a34a}.quiz-explanation{padding:14px 16px;background:var(--bg-2);border-radius:var(--radius);font-size:13.5px;color:var(--text-2);line-height:1.6;display:none;border-left:3px solid var(--accent)}.quiz-explanation.visible{display:block;animation:msgIn .25s ease both}.quiz-explanation strong{color:var(--text-1)}.quiz-next-btn{width:100%;padding:14px;background:var(--accent);color:#fff;border-radius:var(--radius-lg);font-size:14.5px;font-weight:700;margin-top:16px;transition:background var(--ease),transform var(--ease);box-shadow:0 4px 16px var(--accent-glow);display:none}.quiz-next-btn.visible{display:block;animation:msgIn .2s ease both}.quiz-next-btn:hover{background:var(--accent-2);transform:translateY(-1px)}.quiz-score-screen{text-align:center;padding:48px 32px;background:var(--surface);border-radius:var(--radius-xl);border:1.5px solid var(--border-2);box-shadow:0 8px 32px var(--shadow);animation:msgIn .4s cubic-bezier(.34,1.56,.64,1) both}.score-circle{width:110px;height:110px;border-radius:50%;background:var(--accent-soft);border:4px solid var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 24px;box-shadow:0 0 0 8px var(--accent-soft)}.score-num{font-size:28px;font-weight:900;color:var(--accent);letter-spacing:-.04em}.score-denom{font-size:11px;color:var(--text-3);font-weight:600}.score-title{font-size:22px;font-weight:900;color:var(--text-1);letter-spacing:-.025em;margin-bottom:8px}.score-desc{font-size:14px;color:var(--text-3);line-height:1.6;margin-bottom:24px}.score-retry-btn{padding:13px 32px;background:var(--accent);color:#fff;border-radius:100px;font-size:14px;font-weight:700;transition:background var(--ease),transform var(--ease);box-shadow:0 4px 16px var(--accent-glow)}.score-retry-btn:hover{background:var(--accent-2);transform:translateY(-2px)}.cheatsheet-wrap{max-width:860px;margin:0 auto}.cheatsheet-wrap h2{font-size:26px;font-weight:900;color:var(--text-1);letter-spacing:-.03em;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--border-2)}.cheatsheet-wrap h2 span{color:var(--accent)}.cs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px}.cs-section{background:var(--surface);border:1.5px solid var(--border-2);border-radius:var(--radius-xl);padding:20px;box-shadow:0 2px 12px var(--shadow);transition:border-color var(--ease),box-shadow var(--ease),transform var(--ease)}.cs-section:hover{border-color:var(--accent);box-shadow:0 8px 24px var(--accent-glow);transform:translateY(-2px)}.cs-section h3{font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border-2)}.cs-section ul{list-style:none;display:flex;flex-direction:column;gap:8px}.cs-section ul li{font-size:13.5px;color:var(--text-2);line-height:1.55;padding-left:14px;position:relative}.cs-section ul li:before{content:"·";position:absolute;left:0;color:var(--accent);font-weight:800;font-size:16px;line-height:1.3}.cs-section ul li strong{color:var(--text-1);font-weight:700}.cs-section ul li code{background:var(--accent-soft);color:var(--accent);padding:1px 5px;border-radius:4px;font-size:12px;font-family:var(--font-mono)}.settings-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:100;opacity:0;pointer-events:none;transition:opacity .3s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.settings-overlay.open{opacity:1;pointer-events:all}.settings-panel{position:fixed;right:0;top:0;bottom:0;width:380px;background:var(--surface);z-index:101;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);box-shadow:-8px 0 40px rgba(0,0,0,.15)}.settings-panel.open{transform:translateX(0)}.sp-header{justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-2);background:var(--dark-bg);color:var(--dark-text-1);flex-shrink:0}.sp-header,.sp-header-left{display:flex;align-items:center}.sp-header-left{gap:10px}.sp-icon{display:flex;align-items:center}.sp-icon svg{width:18px;height:18px}.sp-title{font-size:16px;font-weight:800;color:var(--dark-text-1);letter-spacing:-.02em}.sp-close{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.1);color:var(--dark-text-2);display:flex;align-items:center;justify-content:center;font-size:14px;transition:background var(--ease),color var(--ease)}.sp-close:hover{background:rgba(255,255,255,.2);color:var(--dark-text-1)}.sp-body{flex:1 1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:8px}.sp-body::-webkit-scrollbar{width:4px}.sp-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.history-item{display:block;width:100%;text-align:left;padding:14px 20px;border:none;border-bottom:1px solid var(--border-2);background:transparent;cursor:pointer;transition:background .15s ease}.history-item:hover{background:var(--bg-2)}.hi-date{font-size:11px;font-weight:600;color:var(--text-3);margin-bottom:4px;letter-spacing:.02em}.hi-preview{font-size:13px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.sp-label{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-bottom:4px;margin-top:4px}.sp-divider{height:1px;background:var(--border-2);margin:12px 0}.sp-note{font-size:12px;color:var(--text-3);line-height:1.6;margin-top:8px;padding:10px 12px;background:var(--bg-2);border-radius:var(--radius);border-left:3px solid var(--border)}.sp-note.demo-note{background:rgba(217,119,6,.08);border-left-color:#d97706;color:#92400e}.swatch-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:12px}.swatch{border-radius:var(--radius-lg);overflow:hidden;border:2px solid transparent;cursor:pointer;transition:border-color var(--ease),transform var(--ease),box-shadow var(--ease);background:var(--surface-2);box-shadow:0 2px 8px var(--shadow)}.swatch:hover{transform:translateY(-2px);box-shadow:0 6px 18px var(--shadow)}.swatch.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),0 4px 16px var(--shadow)}.sw-top{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:#ffffff}.sw-check{font-size:14px;color:#fff;opacity:0;transition:opacity var(--ease);font-weight:800}.swatch.active .sw-check{opacity:1}.sw-icon{font-size:18px}.sw-foot{padding:8px 10px}.sw-name{font-size:12px;font-weight:700;color:var(--text-1);letter-spacing:-.01em}.sw-desc{font-size:10px;color:var(--text-3);margin-top:2px}.active-theme-bar{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-2);border-radius:var(--radius);border:1px solid var(--border-2);margin-top:4px;margin-bottom:4px}.theme-bar-dot{width:14px;height:14px;border-radius:50%;background:var(--accent);flex-shrink:0;box-shadow:0 0 0 3px var(--accent-soft)}.theme-bar-name{font-size:13px;font-weight:700;color:var(--text-1)}.theme-bar-hint{font-size:11px;color:var(--text-3);margin-top:1px}.key-wrap{display:flex;gap:8px;align-items:center}.key-input{flex:1 1;padding:10px 14px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text-1);outline:none;font-family:var(--font-mono);letter-spacing:.04em;transition:border-color var(--ease),box-shadow var(--ease)}.key-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.key-input::placeholder{color:var(--text-3);font-family:var(--font-sans);letter-spacing:normal}.key-toggle{width:38px;height:38px;border-radius:var(--radius);background:var(--bg-2);border:1.5px solid var(--border);font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--ease),border-color var(--ease)}.key-toggle:hover{background:var(--accent-soft);border-color:var(--accent)}.key-save-btn{width:100%;padding:10px;background:var(--accent);color:#fff;border-radius:var(--radius);font-size:13.5px;font-weight:700;transition:background var(--ease),transform var(--ease);margin-top:4px}.key-save-btn:hover{background:var(--accent-2);transform:translateY(-1px)}.key-status{font-size:12px;font-weight:600;padding:8px 12px;border-radius:var(--radius);margin-top:2px}.key-ok{background:rgba(22,163,74,.1);color:#16a34a}.key-missing{background:rgba(225,29,72,.08);color:#e11d48}.tgl{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13.5px;color:var(--text-1);font-weight:500}.tgl input{display:none}.tgl-track{width:40px;height:22px;background:var(--bg-3);border-radius:100px;position:relative;transition:background var(--ease);flex-shrink:0;border:1.5px solid var(--border)}.tgl input:checked+.tgl-track{background:var(--accent);border-color:var(--accent)}.tgl-thumb{position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:1px;left:1px;transition:transform var(--ease);box-shadow:0 1px 4px rgba(0,0,0,.2)}.tgl input:checked+.tgl-track .tgl-thumb{transform:translateX(18px)}.welcome-msg{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-radius:var(--radius-xl);padding:24px;color:#fff;margin-bottom:8px}.wm-title{font-size:17px;font-weight:800;margin-bottom:6px;letter-spacing:-.02em}.wm-body{font-size:13.5px;line-height:1.65;opacity:.9}.wm-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.wm-chip{padding:6px 12px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.28);border-radius:100px;font-size:12px;font-weight:600;color:#1e4fcc;cursor:pointer;transition:background var(--ease)}.wm-chip:hover{background:#fff}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--dark-bg);color:var(--dark-text-1);padding:12px 24px;border-radius:100px;font-size:13.5px;font-weight:600;pointer-events:none;opacity:0;transition:opacity .25s ease,transform .25s ease;z-index:999;box-shadow:0 8px 32px rgba(0,0,0,.25);white-space:nowrap}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.toast-error{background:#be123c;color:#fff;box-shadow:0 8px 32px rgba(190,18,60,.35)}.page{display:none}.page.page-active{display:block}#page-auth.page-active{display:flex;flex-direction:column;min-height:100vh}#page-app.page-active{display:block}body:has(#page-app.page-active){overflow:hidden}#page-landing{--bg-1:#F6F7FB;--bg-2:#EEF1F7;--card:#FFFFFF;--hairline:#E2E6EF;--ink:#0F172A;--ink-2:#2A334A;--muted:#6A7388;--primary:#2C63E2;--primary-hover:#1E4FCC;--primary-soft:#E2EAFB;--primary-glow:rgba(44,99,226,0.45);--primary-fg:#FFFFFF;--bg:var(--bg-1);--surface:var(--card);--surface-2:#F2F4FA;--dark-bg:#161B2B;--text-1:var(--ink);--text-2:var(--ink-2);--text-3:var(--muted);--accent:var(--primary);--accent-2:var(--primary-hover);--accent-fg:var(--primary-fg);--accent-soft:var(--primary-soft);--accent-glow:var(--primary-glow);--border:var(--hairline);--border-2:rgba(226,230,239,0.65);background:radial-gradient(circle at 15% 0,rgba(37,99,235,.1) 0,transparent 45%),radial-gradient(circle at 90% 20%,rgba(37,99,235,.08) 0,transparent 40%),radial-gradient(circle at 50% 100%,rgba(37,99,235,.06) 0,transparent 50%),var(--bg);color:var(--text-1);min-height:100vh;font-size:16px;line-height:1.5;color-scheme:light}#page-landing a{color:inherit;text-decoration:none}#page-landing .lp-cta-btn{color:#0F172A!important}#page-landing .lp-btn-primary{color:var(--accent-fg)!important}#page-landing .lp-btn-ghost{color:var(--text-1)!important}.lp-nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);background:rgba(246,247,251,.85);border-bottom:1px solid var(--border-2)}.lp-nav-inner{max-width:1200px;margin:0 auto;padding:18px 28px;justify-content:space-between}.lp-brand,.lp-nav-inner{display:flex;align-items:center}.lp-brand{gap:10px;font-weight:600;font-size:18px;letter-spacing:-.01em;color:var(--text-1)}.lp-brand-mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-fg);display:grid;place-items:center;font-size:16px;box-shadow:0 4px 12px var(--accent-glow)}.lp-nav-links{display:flex;align-items:center;gap:6px}.lp-nav-link{padding:9px 14px;border-radius:10px;color:var(--text-2);font-size:14px;font-weight:500;transition:background var(--ease),color var(--ease)}.lp-nav-link:hover{background:var(--accent-soft);color:var(--text-1)}.lp-nav-cta{padding:9px 16px;border-radius:10px;background:var(--accent);color:var(--accent-fg);font-size:14px;font-weight:600;transition:transform var(--ease),background var(--ease),box-shadow var(--ease);box-shadow:0 2px 8px var(--accent-glow)}.lp-nav-cta:hover{background:var(--accent-2);transform:translateY(-1px);box-shadow:0 4px 14px var(--accent-glow)}.lp-hero{max-width:1100px;margin:0 auto;padding:80px 28px 100px;text-align:center;position:relative}.lp-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-2);box-shadow:0 1px 2px rgba(30,58,95,.06),0 2px 6px rgba(30,58,95,.04);margin-bottom:28px;animation:lpFadeUp .7s var(--ease) both}.lp-badge-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.lp-hero-title{font-family:var(--font-display);font-weight:400;font-size:clamp(44px,7vw,84px);line-height:1.04;letter-spacing:-.02em;color:var(--text-1);max-width:14ch;margin:0 auto 24px;animation:lpFadeUp .8s var(--ease) .05s both}.lp-hero-title em{font-style:italic;color:var(--accent);font-weight:400}.lp-hero-sub{font-size:clamp(16px,1.6vw,19px);color:var(--text-2);max-width:58ch;margin:0 auto 40px;line-height:1.55;animation:lpFadeUp .8s var(--ease) .15s both}.lp-hero-cta-row{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:12px;animation:lpFadeUp .8s var(--ease) .25s both}.lp-btn{padding:14px 26px;border-radius:12px;font-size:15px;font-weight:600;transition:transform var(--ease),background var(--ease),box-shadow var(--ease);display:inline-flex;align-items:center;gap:8px;cursor:pointer}.lp-btn-primary{background:var(--accent);color:var(--accent-fg);box-shadow:0 4px 16px var(--accent-glow)}.lp-btn-primary:hover{background:var(--accent-2);transform:translateY(-2px);box-shadow:0 8px 24px var(--accent-glow)}.lp-btn-ghost{background:var(--surface);color:var(--text-1);border:1px solid var(--border);box-shadow:0 1px 2px rgba(30,58,95,.06)}.lp-btn-ghost:hover{background:var(--surface-2);transform:translateY(-2px)}.lp-hero-meta{margin-top:22px;font-size:13px;color:var(--text-3);animation:lpFadeUp .8s var(--ease) .35s both}.lp-preview{max-width:1000px;margin:0 auto 120px;padding:0 28px;animation:lpFadeUp 1s var(--ease) .4s both}.lp-preview-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:22px;box-shadow:0 12px 40px rgba(30,58,95,.14),0 30px 80px rgba(30,58,95,.1);position:relative}.lp-preview-bar{display:flex;align-items:center;gap:6px;padding-bottom:16px;border-bottom:1px solid var(--border-2);margin-bottom:18px}.lp-preview-dot{width:11px;height:11px;border-radius:50%;background:var(--bg-3)}.lp-preview-dot.lp-r{background:#FCA5A5}.lp-preview-dot.lp-y{background:#FCD34D}.lp-preview-dot.lp-g{background:#86EFAC}.lp-preview-grid{display:grid;grid-template-columns:180px 1fr;grid-gap:18px;gap:18px;min-height:320px}.lp-preview-side{background:var(--dark-bg);border-radius:var(--radius);padding:18px 12px;display:flex;flex-direction:column;gap:6px}.lp-preview-side-brand{color:white;font-weight:600;padding:6px 8px 16px;display:flex;align-items:center;gap:8px;font-size:14px}.lp-ps-mark{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-size:12px}.lp-preview-side-item{padding:9px 12px;border-radius:8px;color:rgba(255,255,255,.65);font-size:13px;display:flex;align-items:center;gap:10px}.lp-preview-side-item.lp-active{background:rgba(255,255,255,.1);color:white}.lp-preview-main{background:var(--surface-2);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;gap:14px}.lp-bubble{max-width:78%;padding:12px 16px;border-radius:16px;font-size:14px;line-height:1.5}.lp-bubble.lp-user{align-self:flex-end;background:var(--accent);color:var(--accent-fg);border-bottom-right-radius:6px}.lp-bubble.lp-bot{align-self:flex-start;background:var(--surface);border:1px solid var(--border-2);color:var(--text-1);border-bottom-left-radius:6px}.lp-section{max-width:1100px;margin:0 auto;padding:0 28px 120px}.lp-section-head{text-align:center;margin-bottom:56px}.lp-eyebrow{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.lp-section-title{font-family:var(--font-display);font-weight:400;font-size:clamp(32px,4.5vw,52px);line-height:1.1;letter-spacing:-.02em;color:var(--text-1);max-width:18ch;margin:0 auto 16px}.lp-section-title em{font-style:italic;color:var(--accent)}.lp-section-sub{max-width:56ch;margin:0 auto;color:var(--text-2);font-size:17px}.lp-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:20px;gap:20px}.lp-feature{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius-lg);padding:28px;transition:transform var(--ease),box-shadow var(--ease),border-color var(--ease);position:relative;overflow:hidden}.lp-feature:hover{transform:translateY(-4px);box-shadow:0 4px 12px rgba(30,58,95,.08),0 12px 32px rgba(30,58,95,.06);border-color:var(--border)}.lp-feature-icon{width:48px;height:48px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:18px;flex-shrink:0}.lp-feature-icon svg{width:24px;height:24px}.lp-feature-name{font-size:17px;font-weight:600;color:var(--text-1);margin-bottom:8px}.lp-feature-desc{font-size:14.5px;color:var(--text-2);line-height:1.55}.lp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:28px;gap:28px}.lp-step{text-align:left;padding:4px}.lp-step-num{font-family:var(--font-display);font-style:italic;font-size:56px;line-height:1;color:var(--accent);margin-bottom:14px;opacity:.85}.lp-step-title{font-size:18px;font-weight:600;color:var(--text-1);margin-bottom:8px}.lp-step-desc{font-size:15px;color:var(--text-2);line-height:1.55}.lp-cta-banner{max-width:1100px;margin:0 auto 80px;padding:0 28px}.lp-cta-inner{background:linear-gradient(135deg,var(--dark-bg),#2a4a73);border-radius:var(--radius-xl);padding:64px 40px;text-align:center;color:white;position:relative;overflow:hidden;box-shadow:0 12px 40px rgba(30,58,95,.14),0 30px 80px rgba(30,58,95,.1)}.lp-cta-inner:before{content:"";position:absolute;top:-40%;right:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(37,99,235,.45),transparent 60%);pointer-events:none}.lp-cta-title{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,4vw,46px);line-height:1.1;letter-spacing:-.02em;margin-bottom:14px;position:relative}.lp-cta-title em{font-style:italic;color:#BFDBFE}.lp-cta-sub{color:rgba(255,255,255,.75);font-size:17px;margin-bottom:32px;position:relative}.lp-cta-btn{position:relative;padding:16px 32px;background:white;color:#0F172A;border-radius:12px;font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:8px;transition:transform var(--ease),box-shadow var(--ease)}.lp-cta-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.25)}.lp-footer{border-top:1px solid var(--border-2);padding:32px 28px;text-align:center;color:var(--text-3);font-size:13.5px}@keyframes lpFadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width:720px){.lp-hero{padding:56px 22px 70px}.lp-nav-inner{padding:14px 20px}.lp-nav-link.lp-hide-sm{display:none}.lp-preview-grid{grid-template-columns:1fr}.lp-preview-side{display:none}.lp-cta-inner{padding:44px 24px}}#page-auth{background:radial-gradient(circle at 20% 0,rgba(37,99,235,.12) 0,transparent 45%),radial-gradient(circle at 80% 100%,rgba(37,99,235,.1) 0,transparent 45%),var(--bg);font-size:16px;line-height:1.5}#page-auth a{color:inherit;text-decoration:none}.auth-topbar{padding:22px 28px;justify-content:space-between}.auth-brand,.auth-topbar{display:flex;align-items:center}.auth-brand{gap:10px;font-weight:600;font-size:18px;letter-spacing:-.01em;color:var(--text-1)}.auth-brand-mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-fg);display:grid;place-items:center;font-size:16px;box-shadow:0 4px 12px var(--accent-glow)}.auth-back-link{padding:9px 14px;border-radius:10px;color:var(--text-2);font-size:14px;font-weight:500;transition:background var(--ease),color var(--ease);display:inline-flex;align-items:center;gap:6px}.auth-back-link:hover{background:var(--accent-soft);color:var(--text-1)}.auth-wrap{flex:1 1;display:grid;place-items:center;padding:24px 22px 60px}.auth-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius-xl);box-shadow:0 12px 40px rgba(30,58,95,.14),0 30px 80px rgba(30,58,95,.1);padding:40px 36px 32px;animation:authRise .55s cubic-bezier(.4,0,.2,1) both}.auth-head{text-align:center;margin-bottom:28px}.auth-title{font-family:var(--font-display);font-weight:400;font-size:38px;line-height:1.1;letter-spacing:-.01em;color:var(--text-1);margin-bottom:8px}.auth-title em{font-style:italic;color:var(--accent)}.auth-sub{color:var(--text-2);font-size:14.5px}.auth-tabs{display:flex;background:var(--bg);border-radius:12px;padding:4px;margin-bottom:24px;position:relative}.auth-tab{flex:1 1;padding:10px 12px;font-size:14px;font-weight:600;color:var(--text-2);border-radius:9px;transition:color var(--ease);position:relative;z-index:1;cursor:pointer;border:none;background:none;font-family:inherit}.auth-tab.auth-active{color:var(--text-1)}.auth-tab-glider{position:absolute;top:4px;left:4px;width:calc(50% - 4px);height:calc(100% - 8px);background:var(--surface);border-radius:9px;box-shadow:0 1px 2px rgba(30,58,95,.06);transition:transform var(--ease)}.auth-tabs.auth-signup-active .auth-tab-glider{transform:translateX(100%)}.auth-form{display:none;flex-direction:column;gap:14px}.auth-field,.auth-form.auth-active{display:flex}.auth-field{flex-direction:column;gap:6px}.auth-field label{font-size:13px;font-weight:500;color:var(--text-2);padding-left:2px}.auth-field input{width:100%;padding:12px 14px;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;font-size:15px;color:var(--text-1);outline:none;transition:border-color var(--ease),background var(--ease),box-shadow var(--ease);font-family:inherit}.auth-pass-wrap{position:relative}.auth-pass-wrap input{padding-right:44px}.auth-pass-toggle{position:absolute;top:50%;right:12px;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;color:var(--text-3);display:flex;align-items:center;justify-content:center;transition:color var(--ease)}.auth-pass-toggle:hover{color:var(--text-1)}.auth-field input::placeholder{color:var(--text-3)}.auth-field input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 4px var(--accent-soft)}.auth-field input.auth-error-input{border-color:#DC2626;box-shadow:0 0 0 4px rgba(220,38,38,.1)}.auth-field-meta{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text-3);margin:2px 2px 0}.auth-field-meta a{color:var(--accent);font-weight:500}.auth-field-meta a:hover{text-decoration:underline}.auth-submit-btn{width:100%;padding:14px 18px;background:var(--accent);color:var(--accent-fg);border-radius:11px;font-size:15px;font-weight:600;transition:transform var(--ease),background var(--ease),box-shadow var(--ease);margin-top:6px;box-shadow:0 4px 14px var(--accent-glow);cursor:pointer;border:none;font-family:inherit}.auth-submit-btn:hover{background:var(--accent-2);transform:translateY(-1px);box-shadow:0 6px 18px var(--accent-glow)}.auth-submit-btn:active{transform:translateY(0)}.auth-error-msg{color:#DC2626;font-size:13px;padding:6px 2px 0;min-height:19px}.auth-divider{display:flex;align-items:center;gap:12px;margin:22px 0 18px;color:var(--text-3);font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--border-2)}.auth-social-row{display:flex;gap:10px}.auth-social-btn{flex:1 1;padding:11px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text-1);font-size:14px;font-weight:500;transition:background var(--ease),transform var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-family:inherit}.auth-social-btn:hover{background:var(--surface-2);transform:translateY(-1px)}.auth-footer-line{text-align:center;margin-top:22px;font-size:13.5px;color:var(--text-2)}.auth-footer-line a{color:var(--accent);font-weight:600}.auth-footer-line a:hover{text-decoration:underline}.auth-terms{text-align:center;margin-top:20px;font-size:12px;color:var(--text-3);line-height:1.5}.auth-terms a{color:var(--text-2);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}@keyframes authRise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:480px){.auth-card{padding:32px 24px 28px}.auth-title{font-size:32px}.auth-topbar{padding:18px 20px}}.file-input-hidden{display:none}.attach-btn{width:40px;height:40px;flex-shrink:0;border-radius:10px;background:transparent;color:var(--text-2);font-size:18px;display:grid;place-items:center;cursor:pointer;transition:background var(--ease),color var(--ease),transform var(--ease);align-self:flex-end;margin-bottom:0}.attach-btn:hover{background:var(--accent-soft);color:var(--accent);transform:translateY(-1px)}.attach-btn:active{transform:translateY(0)}.attach-btn:disabled{opacity:.4;cursor:not-allowed}.attachment-pill{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 14px;margin-bottom:8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 2px 8px rgba(30,58,95,.06);animation:pillRise .25s cubic-bezier(.4,0,.2,1) both}.attachment-pill.hidden{display:none}@keyframes pillRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ap-icon{width:36px;height:36px;flex-shrink:0;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:18px}.ap-info{flex:1 1;min-width:0}.ap-name{font-size:14px;font-weight:600;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ap-meta{font-size:12px;color:var(--text-3);margin-top:2px}.ap-remove{width:28px;height:28px;flex-shrink:0;border-radius:7px;color:var(--text-3);background:transparent;font-size:13px;cursor:pointer;transition:background var(--ease),color var(--ease);display:grid;place-items:center}.ap-remove:hover{background:rgba(220,38,38,.1);color:#DC2626}.msg-attachment{display:flex;align-items:center;gap:10px;padding:8px 12px;margin-bottom:8px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.25);border-radius:10px;font-size:13px;max-width:100%}.msg-attachment-icon{width:28px;height:28px;border-radius:7px;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:14px;flex-shrink:0}.msg-attachment-info{min-width:0;flex:1 1}.msg-attachment-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:white}.msg-attachment-meta{font-size:11.5px;opacity:.8;color:white;margin-top:1px}.msg-attachment-thumb{display:block;max-width:240px;max-height:180px;border-radius:10px;margin-bottom:8px;border:1px solid rgba(255,255,255,.25)}.quiz-exp-head{font-weight:700;color:var(--text-1);font-size:14px;margin-bottom:10px;letter-spacing:-.01em}.quiz-exp-bullets{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.quiz-exp-bullets li{position:relative;padding-left:18px;font-size:13.5px;color:var(--text-2);line-height:1.55}.quiz-exp-bullets li:before{content:"";position:absolute;top:8px;left:4px;width:5px;height:5px;border-radius:50%;background:var(--accent)}.quiz-exp-bullets li strong{color:var(--text-1);font-weight:600}.quiz-exp-bullets li code{background:var(--accent-soft);color:var(--accent-2);padding:1px 6px;border-radius:5px;font-size:12.5px;font-family:var(--font-mono)}.quiz-exp-line{font-size:13.5px;color:var(--text-2);line-height:1.6;margin:0}.quiz-learn-more{margin-top:14px;padding:9px 16px 9px 18px;background:var(--dark-bg);color:white;border:none;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:transform var(--ease),background var(--ease),box-shadow var(--ease);font-family:inherit}.quiz-learn-more:hover{background:#2a4a73;transform:translateY(-1px);box-shadow:0 4px 14px rgba(30,58,95,.25)}.quiz-learn-more .qlm-plus{width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-items:center;font-size:13px;line-height:1}.ctb-actions{display:flex;align-items:center;gap:8px}.pill-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;background:var(--dark-bg);color:white;border:none;border-radius:999px;font-size:13.5px;font-weight:600;cursor:pointer;transition:transform var(--ease),background var(--ease),box-shadow var(--ease);font-family:inherit;white-space:nowrap}.pill-btn:hover{background:#2a4a73;transform:translateY(-1px);box-shadow:0 4px 14px rgba(30,58,95,.25)}.pill-btn-icon{font-size:14px;line-height:1}@media (max-width:720px){.pill-btn-text{display:none}.pill-btn{padding:8px 12px}}.dialog-overlay{position:fixed;inset:0;background:rgba(15,30,50,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;opacity:0;pointer-events:none;transition:opacity .22s ease;display:grid;place-items:center;padding:20px}.dialog-overlay.open{opacity:1;pointer-events:all}.dialog{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius-xl);box-shadow:0 24px 80px rgba(15,30,50,.3);width:100%;max-width:460px;padding:28px;transform:translateY(12px) scale(.98);opacity:0;transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .22s ease}.dialog-overlay.open .dialog{transform:translateY(0) scale(1);opacity:1}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px;gap:10px}.dialog-title{font-size:20px;font-weight:700;color:var(--text-1);letter-spacing:-.01em}.dialog-close{width:32px;height:32px;border-radius:9px;background:transparent;border:none;color:var(--text-3);cursor:pointer;font-size:14px;display:grid;place-items:center;transition:background var(--ease),color var(--ease);font-family:inherit}.dialog-close:hover{background:var(--accent-soft);color:var(--text-1)}.dialog-desc{color:var(--text-2);font-size:14px;line-height:1.55;margin:0 0 18px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.dialog-btn{padding:10px 18px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none;font-family:inherit;transition:transform var(--ease),background var(--ease),box-shadow var(--ease)}.dialog-btn-ghost{background:transparent;color:var(--text-2)}.dialog-btn-ghost:hover{background:var(--accent-soft);color:var(--text-1)}.dialog-btn-primary{background:var(--accent);color:white;box-shadow:0 4px 14px var(--accent-glow)}.dialog-btn-primary:hover{background:var(--accent-2);transform:translateY(-1px)}.dialog-btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.share-link-row{display:flex;gap:8px;margin-bottom:18px}.share-link-input{flex:1 1;padding:11px 14px;background:var(--bg);border:1px solid var(--border);border-radius:10px;font-size:13px;color:var(--text-2);font-family:var(--font-mono);outline:none;min-width:0}.share-copy-btn{padding:11px 18px;background:var(--accent);color:white;border:none;border-radius:10px;font-size:13.5px;font-weight:600;cursor:pointer;transition:background var(--ease),transform var(--ease);font-family:inherit;flex-shrink:0;min-width:80px}.share-copy-btn:hover{background:var(--accent-2);transform:translateY(-1px)}.share-link-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.share-copy-btn.copied{background:#16a34a}.share-channels{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.share-channel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px 8px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:12px;color:var(--text-1);text-decoration:none;font-size:12.5px;font-weight:500;cursor:pointer;transition:background var(--ease),border-color var(--ease),transform var(--ease)}.share-channel:hover{background:var(--accent-soft);border-color:var(--border);transform:translateY(-2px)}.share-channel-icon{font-size:20px;line-height:1}.feedback-type-row{display:flex;gap:6px;margin-bottom:14px;background:var(--bg);padding:4px;border-radius:11px}.feedback-type-btn{flex:1 1;padding:9px 8px;background:transparent;color:var(--text-2);border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--ease),color var(--ease);font-family:inherit}.feedback-type-btn.active{background:var(--surface);color:var(--text-1);box-shadow:0 1px 2px rgba(30,58,95,.06)}.feedback-textarea,.feedback-type-btn:not(.active):hover{color:var(--text-1)}.feedback-textarea{width:100%;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;font-size:14px;outline:none;resize:vertical;min-height:110px;max-height:280px;font-family:inherit;line-height:1.55;transition:border-color var(--ease),background var(--ease),box-shadow var(--ease)}.feedback-textarea::placeholder{color:var(--text-3)}.feedback-textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 4px var(--accent-soft)}.flip-card[class*=graded-] .flip-back{justify-content:flex-start;padding:22px 20px;text-align:left;gap:12px}.flip-card.graded-correct .fb-tag{background:rgba(187,247,208,.95);color:#14532d;border-color:rgba(34,197,94,.5)}.flip-card.graded-partial .fb-tag{background:rgba(254,240,138,.95);color:#713f12;border-color:rgba(234,179,8,.5)}.flip-card.graded-wrong .fb-tag{background:rgba(254,202,202,.95);color:#881337;border-color:rgba(239,68,68,.5)}.flip-card.graded-empty .fb-tag{background:rgba(255,255,255,.92);color:var(--accent-2);border-color:rgba(255,255,255,.4)}.fb-your-attempt:empty{display:none}.fb-your-attempt{width:100%;margin:0;padding:12px 14px;background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.5);border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.08)}.fb-your-label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:4px}.fb-your-text{font-size:14px;font-weight:600;color:var(--text-1);line-height:1.45;word-break:break-word}.fb-answer-label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.7);margin:4px 0 -6px;align-self:flex-start}.flip-card[class*=graded-] .fb-answer{text-align:left;font-size:15px;font-weight:500;padding:0;margin-bottom:4px}.fb-tag{display:inline-block;align-self:flex-start;padding:5px 12px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;border:1px solid transparent;transition:background var(--ease),color var(--ease)}.flip-card[class*=graded-] .fb-retry-btn{margin-top:auto;align-self:stretch}.cs-toolbar{display:flex;align-items:center;gap:12px}.cs-density{display:inline-flex;background:var(--bg);border:1px solid var(--border-2);border-radius:999px;padding:3px}.cs-density-btn{padding:6px 14px;background:transparent;border:none;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--text-2);cursor:pointer;transition:background var(--ease),color var(--ease);font-family:inherit;white-space:nowrap}.cs-density-btn:hover:not(.active){color:var(--text-1)}.cs-density-btn.active{background:var(--surface);color:var(--text-1);box-shadow:0 1px 3px rgba(30,58,95,.08)}@media (max-width:720px){.cs-toolbar{gap:8px}.cs-density-btn{padding:6px 10px;font-size:11.5px}}.cs-action-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;background:var(--surface);color:var(--text-1);border:1px solid var(--border);border-radius:999px;font-size:12.5px;font-weight:600;cursor:pointer;transition:background var(--ease),color var(--ease),border-color var(--ease),transform var(--ease);font-family:inherit;white-space:nowrap}.cs-action-btn:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2);transform:translateY(-1px)}.cs-action-btn:disabled{opacity:.45;cursor:not-allowed}.cs-action-icon{font-size:13px;line-height:1}@media (max-width:720px){.cs-action-label{display:none}.cs-action-btn{padding:7px 10px}}@media print{body.printing-cs *{visibility:hidden}body.printing-cs #csContent,body.printing-cs #csContent *{visibility:visible}body.printing-cs #csContent{position:absolute;left:0;top:0;width:100%;padding:0;margin:0;background:white!important;color:black!important}body.printing-cs #csContent h2{font-size:22pt;margin:0 0 14pt;color:black!important;border-bottom:2pt solid black;padding-bottom:6pt}body.printing-cs #csContent h2 span{color:black!important;font-style:italic}body.printing-cs #csContent h3{font-size:13pt;margin:12pt 0 4pt;color:black!important;border-bottom:.5pt solid #888;padding-bottom:2pt}body.printing-cs #csContent .cs-grid{display:block;column-count:2;column-gap:24pt}body.printing-cs #csContent .cs-section{background:white!important;border:none!important;padding:0!important;margin:0 0 14pt;break-inside:avoid;page-break-inside:avoid}body.printing-cs #csContent ul{list-style:none;padding:0;margin:0}body.printing-cs #csContent li{font-size:10pt;line-height:1.4;margin-bottom:4pt;color:black!important;padding-left:10pt;position:relative}body.printing-cs #csContent li:before{content:"\2022";position:absolute;left:2pt;top:0}body.printing-cs #csContent strong{color:black!important;font-weight:700}body.printing-cs #csContent code{font-family:var(--font-mono);font-size:9.5pt;background:#f0f0f0!important;color:black!important;padding:1pt 4pt;border-radius:3pt}@page{size:auto;margin:12mm 14mm}}@media (min-width:641px) and (max-width:1024px){:root{--sidebar-w:68px}.brand-name,.nav-lbl{display:none}.sidebar-brand{justify-content:center;padding:8px 0 20px}.nav-btn{justify-content:center;padding:12px}.sidebar-settings-btn{justify-content:center;padding:14px 0}.sidebar-settings-btn span:last-child{display:none}.messages{padding:20px 16px}.input-zone{padding:14px 18px 18px}.panel-scroll{padding:20px}.chat-topbar,.panel-topbar{padding:14px 20px}}@media (max-width:640px){.app{flex-direction:column}.sidebar{order:2;width:100%;min-width:unset;height:60px;flex-direction:row;align-items:stretch;padding:0;gap:0;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0}.sidebar-brand{display:none}.sidebar-nav{flex-direction:row;flex:1 1;gap:0;align-items:stretch;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.nav-btn{flex:0 0 64px;min-width:64px;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 4px;border-radius:0}.nav-ico,.nav-ico svg{width:22px;height:22px}.nav-lbl{font-size:10px;flex:none;line-height:1}.nav-badge,.nav-dot,.sidebar-beta-divider{display:none!important}.sidebar-settings-btn{flex:0 0 60px;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 4px;border-top:none;border-left:1px solid rgba(255,255,255,.08);margin-top:0;border-radius:0;font-size:10px;white-space:nowrap;overflow:hidden}.sidebar-settings-btn .nav-ico,.sidebar-settings-btn .nav-ico svg{width:22px;height:22px}.sidebar-settings-btn span:last-child{font-size:10px;line-height:1}.main-area{order:1;flex:1 1;min-height:0}.chat-topbar{padding:10px 14px}.ctb-avatar{width:34px;height:34px;font-size:14px}.messages{padding:12px 10px;gap:10px}.msg-body{max-width:90%}.msg-bubble{font-size:14px;padding:11px 13px}.msg-avatar{width:28px;height:28px;font-size:12px}.input-zone{padding:10px 12px 12px}.sugg-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;gap:6px;margin-bottom:10px}.sugg-row::-webkit-scrollbar{display:none}.sugg-chip{font-size:12px;padding:7px 12px;flex-shrink:0}.input-footer-note{display:none}.panel-topbar{padding:10px 12px;flex-wrap:wrap;gap:6px}.ptb-icon{font-size:20px}.ptb-title{font-size:15px}.ptb-left{gap:10px}.back-link{font-size:12px;padding:9px 12px;min-height:38px}.panel-scroll{padding:12px}.cards-grid{grid-template-columns:1fr;gap:12px}.flip-card{height:290px}.quiz-question-card{padding:18px 14px}.quiz-question-text{font-size:15px;margin-bottom:16px}.quiz-option{padding:12px;font-size:13.5px;min-height:44px}.cs-toolbar{flex-wrap:wrap;gap:6px;justify-content:flex-end;width:100%}.settings-panel{width:100%}.msg-attachment-thumb{max-width:100%;max-height:160px}.toast{bottom:calc(60px + env(safe-area-inset-bottom, 0px) + 16px);font-size:13px;padding:10px 20px}.feedback-fab{bottom:calc(60px + env(safe-area-inset-bottom, 0px) + 12px)!important;right:14px!important;padding:9px 14px!important;font-size:12px!important}.lp-features{padding:48px 18px}.lp-hero{padding:52px 18px 64px}}@media (max-width:480px){.wm-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.wm-chips::-webkit-scrollbar{display:none}.wm-chip{flex-shrink:0;padding:8px 14px;min-height:36px}}.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:8000;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;background:#1e293b;color:#e2e8f0;font-size:13px;line-height:1.5;box-shadow:0 -4px 24px rgba(0,0,0,.25)}.cookie-text{margin:0;flex:1 1}.cookie-text a{color:#93c5fd;text-decoration:underline}.cookie-btn{flex-shrink:0;padding:8px 20px;border-radius:8px;border:none;background:#2563eb;color:#fff;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:opacity .15s}.cookie-btn:hover{opacity:.85}@media (max-width:480px){.cookie-banner{flex-direction:column;align-items:flex-start;padding:16px 18px}}@supports (padding-bottom:env(safe-area-inset-bottom)){@media (max-width:640px){.sidebar{padding-bottom:env(safe-area-inset-bottom);height:calc(60px + env(safe-area-inset-bottom))}.toast{bottom:calc(60px + env(safe-area-inset-bottom) + 16px)}.feedback-fab{bottom:calc(60px + env(safe-area-inset-bottom) + 12px)!important}}}