:root{--bg:#f6f7fb;--surface:#fff;--surface-soft:#fbfcfe;--surface-muted:#eef3ff;--border:#dfe3ea;--border-strong:#cfd6e2;--text:#111827;--text-strong:#101827;--text-muted:#526070;--text-soft:#667085;--primary:#2563eb;--primary-strong:#1d4ed8;--primary-soft:#2563eb24;--success-bg:#dff7ea;--success-text:#0f5132;--error-bg:#ffe4e8;--error-text:#8a1f25;--info-bg:#e8f1ff;--info-text:#1f4f9c;--shadow:0 24px 70px #1f293714;--shadow-soft:0 14px 42px #1f29370f;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--bg:#0f172a;--surface:#182235;--surface-soft:#111c2f;--surface-muted:#1d2c49;--border:#2d3b52;--border-strong:#3a4a63;--text:#e5edf7;--text-strong:#f8fafc;--text-muted:#b5c2d3;--text-soft:#96a6ba;--primary:#60a5fa;--primary-strong:#93c5fd;--primary-soft:#60a5fa2e;--success-bg:#123526;--success-text:#9ce6bd;--error-bg:#3b1820;--error-text:#ffb4c0;--info-bg:#162d4f;--info-text:#bfdbfe;--shadow:0 24px 70px #00000047;--shadow-soft:0 14px 42px #0003}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.app-shell{min-height:100vh}.navbar{z-index:10;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-content:space-between;align-items:center;gap:24px;padding:18px clamp(18px,4vw,48px);display:flex;position:sticky;top:0}.brand,.nav-links{align-items:center;display:flex}.brand{color:var(--text-strong);gap:12px;font-size:1.02rem;font-weight:800}.brand-mark{color:#fff;letter-spacing:0;background:#2563eb;border-radius:8px;place-items:center;width:38px;height:38px;font-size:.86rem;display:grid}.nav-links{gap:8px}.nav-links a,.theme-toggle{min-height:42px;color:var(--text-muted);border-radius:8px;font-weight:700}.nav-links a{padding:10px 14px}.nav-links a.active,.nav-links a:hover,.theme-toggle:hover{color:var(--text-strong);background:var(--surface-muted)}.theme-toggle{border:1px solid var(--border);background:var(--surface);cursor:pointer;place-items:center;width:42px;transition:background .16s,color .16s,border-color .16s;display:grid}.theme-toggle span{font-size:1.1rem;line-height:1}.main-content{width:min(1120px,100% - 36px);margin:0 auto;padding:clamp(34px,7vw,72px) 0}.page-grid{grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr);align-items:start;gap:clamp(28px,6vw,72px);display:grid}.hero-copy{padding-top:22px}.eyebrow{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:.78rem;font-weight:800}h1,h2,p{overflow-wrap:break-word}h1{color:var(--text-strong);letter-spacing:0;word-break:normal;margin:0;font-size:clamp(2.45rem,6vw,4.8rem);line-height:.98}.hero-title{white-space:nowrap;max-width:100%;font-size:clamp(2.25rem,5.4vw,4.45rem)}.subtitle{max-width:560px;color:var(--text-muted);margin:22px 0 0;font-size:1.1rem;line-height:1.7}.portfolio-feature-list{gap:10px;max-width:560px;margin-top:24px;display:grid}.portfolio-feature-list span{color:var(--text);align-items:center;gap:10px;font-weight:750;line-height:1.45;display:flex}.portfolio-feature-list span:before{content:"";background:var(--primary);width:8px;height:8px;box-shadow:0 0 0 5px var(--primary-soft);border-radius:999px;flex:0 0 8px}.topic-form,.topic-detail,.empty-state{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.topic-form{gap:12px;padding:clamp(20px,4vw,34px);display:grid}label{color:var(--text);font-size:.9rem;font-weight:800}input,textarea{border:1px solid var(--border-strong);width:100%;color:var(--text);background:var(--surface-soft);border-radius:8px;outline:none;transition:border-color .16s,box-shadow .16s,background .16s}input{height:48px;padding:0 14px}textarea{resize:vertical;min-height:280px;padding:14px;line-height:1.65}input:focus,textarea:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px var(--primary-soft)}.input-mode-tabs,.result-tabs{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;gap:6px;padding:5px;display:flex}.input-mode-tabs button,.result-tabs button{min-height:42px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;font-weight:800}.input-mode-tabs button.active,.result-tabs button.active{color:var(--text-strong);background:var(--surface);box-shadow:0 8px 24px #1f293714}.pdf-upload-panel{gap:12px;display:grid}.pdf-dropzone{border:1px dashed var(--border-strong);min-height:188px;color:var(--text-muted);background:var(--surface-soft);text-align:center;cursor:pointer;border-radius:8px;place-items:center;gap:8px;padding:24px;display:grid}.pdf-dropzone input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.pdf-dropzone.usage-limit-reached{cursor:not-allowed;opacity:.72}.pdf-icon{color:#fff;background:#db2777;border-radius:8px;place-items:center;width:54px;height:54px;font-size:.82rem;font-weight:900;display:grid}.pdf-title{color:var(--text-strong);font-size:1.05rem;font-weight:900}.pdf-help,.selected-file{color:var(--text-soft);font-size:.92rem;line-height:1.45}.selected-file{margin:0}.primary-button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:8px;min-height:48px;margin-top:6px;font-weight:800;transition:transform .16s,background .16s}.primary-button:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.primary-button:disabled{cursor:not-allowed;opacity:.72}.status-message{border-radius:8px;margin:4px 0;padding:12px 14px;font-weight:700;line-height:1.45}.status-message.success{color:var(--success-text);background:var(--success-bg)}.status-message.error{color:var(--error-text);background:var(--error-bg)}.status-message.info{color:var(--info-text);background:var(--info-bg)}.status-message.compact{margin:0}.page-section{gap:24px;display:grid}.section-heading h1,.detail-header h1{font-size:clamp(2.2rem,5vw,3.8rem);line-height:1.05}.topic-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.notes-search{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-soft);border-radius:8px;gap:10px;padding:18px;display:grid}.topic-card{border:1px solid var(--border);background:var(--surface);min-height:158px;box-shadow:var(--shadow-soft);border-radius:8px;flex-direction:column;justify-content:space-between;gap:22px;padding:20px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex}.topic-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px)}.topic-card h2{color:var(--text-strong);margin:0 0 12px;font-size:1.25rem;line-height:1.25}.topic-card-date,.detail-header p{color:var(--text-soft);margin:0;font-weight:650}.topic-card-preview{color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:14px 0 0;font-weight:600;line-height:1.55;display:-webkit-box;overflow:hidden}.topic-card span,.back-link{color:var(--primary);font-weight:800}.back-link{width:fit-content}.topic-detail{overflow:hidden}.detail-hero{border-bottom:1px solid var(--border);background:linear-gradient(135deg, var(--surface) 0%, var(--surface-soft) 100%);grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:20px;padding:clamp(22px,4vw,36px);display:grid}.detail-header{align-content:center;gap:14px;display:grid}.detail-stats{grid-template-columns:repeat(3,1fr);align-content:center;gap:10px;display:grid}.detail-stats div{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-content:center;gap:4px;min-height:96px;padding:14px;display:grid}.detail-stats strong{color:var(--text-strong);font-size:1.4rem}.detail-stats span{color:var(--text-soft);text-transform:uppercase;font-size:.82rem;font-weight:800}.detail-content-grid{grid-template-columns:minmax(0,1fr) 300px;gap:22px;padding:clamp(22px,4vw,36px);display:grid}.notes-panel,.topic-side-panel,.ai-generation-section,.results-section{border:1px solid var(--border);background:var(--surface);border-radius:8px}.notes-panel{padding:clamp(20px,3vw,28px)}.panel-heading{margin-bottom:14px}.notes-panel h2,.empty-state h2,.topic-side-panel h2,.ai-generation-section h2{color:var(--text-strong);margin:0 0 14px;font-size:1.15rem}.notes-panel p{color:var(--text);white-space:pre-wrap;margin:0;line-height:1.8}.topic-side-panel{align-self:start;padding:22px}.topic-side-panel p:last-child{color:var(--text-muted);margin:0;line-height:1.65}.ai-generation-section,.results-section{gap:18px;margin:0 clamp(22px,4vw,36px) clamp(22px,4vw,36px);padding:clamp(20px,3vw,28px);display:grid}.section-title-row{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.generation-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.generation-card{border:1px solid var(--border);min-height:176px;color:var(--text);background:var(--surface-soft);text-align:left;cursor:pointer;border-radius:8px;align-content:start;gap:12px;padding:18px 18px 44px;transition:transform .16s,border-color .16s,background .16s;display:grid}.generation-card:hover:not(:disabled){border-color:var(--primary);background:var(--surface-muted);transform:translateY(-2px)}.generation-card:disabled{cursor:wait;opacity:.72}.generation-card.usage-limit-reached{cursor:not-allowed}.generation-icon{width:46px;height:46px;color:var(--primary);background:var(--primary-soft);border-radius:8px;place-items:center;display:grid}.generation-title{color:var(--text-strong);font-size:1rem;font-weight:900}.generation-description{color:var(--text-muted);font-size:.92rem;line-height:1.45}.result-panel{border:1px dashed var(--border-strong);background:var(--surface-soft);min-height:170px;color:var(--text-muted);text-align:center;border-radius:8px;place-items:center;font-weight:800;display:grid}.result-panel.has-content{place-items:initial;text-align:left;padding:20px;display:block}.result-panel.has-content p{color:var(--text);white-space:pre-wrap;margin:0;font-weight:600;line-height:1.75}.markdown-content{color:var(--text);font-weight:600;line-height:1.75}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{color:var(--text-strong);margin:22px 0 10px;line-height:1.25}.markdown-content h1{font-size:1.55rem}.markdown-content h2{font-size:1.3rem}.markdown-content h3{font-size:1.12rem}.markdown-content h4{font-size:1rem}.markdown-content p,.result-panel.has-content .markdown-content p{white-space:normal;margin:0 0 12px}.markdown-content ul,.markdown-content ol{margin:8px 0 14px;padding-left:24px}.markdown-content li{margin:6px 0}.markdown-content strong{color:var(--text-strong);font-weight:900}.markdown-content hr{border:0;border-top:1px solid var(--border);margin:20px 0}.quiz-result-list{gap:18px;display:grid}.quiz-result-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:18px}.quiz-result-card h3{color:var(--text-strong);margin:0 0 14px;font-size:1.05rem;line-height:1.45}.quiz-option-list{gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.quiz-option-list li{color:var(--text);grid-template-columns:34px minmax(0,1fr);align-items:start;gap:8px;font-weight:650;line-height:1.5;display:grid}.quiz-option-list span{color:var(--primary);font-weight:900}.result-panel.has-content .quiz-answer{border-top:1px solid var(--border);color:var(--text-strong);white-space:normal;margin:0;padding-top:12px;font-weight:900}.flashcard-result-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.flashcard-result-card{border:1px solid var(--border);min-height:230px;color:var(--text);background:var(--surface);text-align:left;cursor:pointer;perspective:1000px;border-radius:8px;padding:18px 18px 44px;transition:border-color .16s,transform .16s,box-shadow .16s;display:block;position:relative}.flashcard-result-card:hover,.flashcard-result-card:focus-visible{border-color:var(--primary);box-shadow:var(--shadow-soft);transform:translateY(-2px)}.flashcard-result-card:focus-visible{outline:3px solid var(--primary-soft);outline-offset:3px}.flashcard-number,.flashcard-flip-hint{z-index:2;position:relative}.flashcard-number{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:900;display:block}.flashcard-flip-hint{color:var(--text-soft);text-transform:uppercase;margin-top:4px;font-size:.78rem;font-weight:850;display:block}.flashcard-flip-stage{min-height:142px;transform-style:preserve-3d;margin-top:16px;transition:transform .42s;position:relative}.flashcard-action-hint{color:var(--text-soft);text-align:center;font-size:.78rem;font-weight:800;position:absolute;bottom:16px;left:18px;right:18px}.flashcard-result-card.is-flipped .flashcard-flip-stage{transform:rotateY(180deg)}.flashcard-face{backface-visibility:hidden;align-content:center;padding:4px 0;display:grid;position:absolute;inset:0}.flashcard-back{transform:rotateY(180deg)}.flashcard-face .markdown-content{font-size:.98rem}.flashcard-face .markdown-content p{color:var(--text-strong);font-weight:750}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.empty-state{padding:26px}.empty-state p{color:var(--text-soft);margin:0}.loading-state{color:var(--text-muted);align-items:center;gap:12px;font-weight:800;display:flex}.spinner{border:3px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=960px){.detail-hero,.detail-content-grid{grid-template-columns:1fr}.topic-side-panel{align-self:stretch}.generation-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.navbar{flex-direction:column;align-items:flex-start}.nav-links{width:100%}.nav-links a{text-align:center;flex:1}.page-grid{grid-template-columns:1fr}.hero-copy{padding-top:0}.hero-title{font-size:clamp(2.35rem,10vw,4rem)}.section-title-row{display:grid}}@media (width<=620px){.detail-stats,.generation-card-grid{grid-template-columns:1fr}.input-mode-tabs,.result-tabs{display:grid}}@media (width<=520px){.main-content{width:min(100% - 24px,1120px);padding:28px 0}.brand{font-size:.98rem}.nav-links{flex-wrap:wrap}.nav-links a{padding:10px 8px}.theme-toggle{flex:0 0 42px}h1{font-size:2.45rem}.hero-title{font-size:clamp(2.1rem,11.5vw,2.8rem)}.subtitle{font-size:1rem}.ai-generation-section,.results-section{margin-left:16px;margin-right:16px}}
