.chat-list{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow:hidden}.chat-list-label{font-size:12px;text-transform:uppercase;color:var(--text-light);font-weight:700;flex-shrink:0}.chat-list-items{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto}.chat-item{padding:8px 10px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px}.chat-item:hover{background:var(--bg-color)}.chat-item.active{background:var(--primary-light);color:var(--primary-color)}.chat-item.empty{color:var(--text-light);font-style:italic;cursor:default}.chat-item.empty:hover{background:transparent}.chat-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}.chat-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.chat-item:hover .chat-actions{opacity:1}.chat-action-btn{width:24px;height:24px;border:none;background:transparent;color:var(--text-light);cursor:pointer;border-radius:4px;font-size:14px;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s,color .15s}.chat-action-btn:hover{background:var(--border-color);color:var(--text-dark)}.chat-action-btn.delete:hover{background:#fee2e2;color:#dc2626}.chat-rename-input{flex:1;padding:4px 8px;border:1px solid var(--primary-color);border-radius:4px;font-size:.9rem;outline:none;background:#fff}.notes-list{display:flex;flex-direction:column;gap:8px;flex:1;overflow:hidden;min-height:0}.notes-list-label{font-size:12px;text-transform:uppercase;color:var(--text-light);font-weight:700;flex-shrink:0}.notes-list-items{display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto;min-height:0}.notes-empty{color:var(--text-light);font-style:italic;font-size:.9rem;padding:8px 0}.note-item{border-radius:6px;background:var(--bg-color);overflow:hidden;flex-shrink:0}.note-item.current{border-left:3px solid var(--primary-color)}.note-item.other-chat .note-title{color:var(--text-light)}.note-source{font-size:11px;color:var(--text-light);padding:0 10px 6px 30px;font-style:italic}.note-header{padding:8px 10px;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:36px}.note-header:hover{background:var(--border-color)}.note-expand-icon{font-size:10px;color:var(--text-light);width:12px;flex-shrink:0}.note-title{flex:1;font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-badge{font-size:10px;padding:2px 6px;border-radius:10px;background:var(--primary-light);color:var(--primary-color);font-weight:600;text-transform:uppercase}.note-content{padding:0 10px 10px 30px;border-top:1px solid var(--border-color);background:#fff}.note-markdown{font-size:.85rem;line-height:1.5}.note-markdown h2,.note-markdown h3,.note-markdown h4{margin:12px 0 6px;font-weight:600}.note-markdown h2{font-size:1rem}.note-markdown h3{font-size:.95rem}.note-markdown h4{font-size:.9rem}.note-markdown p{margin:8px 0}.note-markdown ul{margin:6px 0;padding-left:20px}.note-markdown li{margin:2px 0}.note-markdown code{background:var(--bg-color);padding:1px 4px;border-radius:3px;font-family:monospace;font-size:.85em}.note-markdown strong{font-weight:600}.note-markdown table{border-collapse:collapse;margin:8px 0;width:100%;font-size:.85em}.note-markdown th,.note-markdown td{border:1px solid var(--border-color);padding:4px 8px;text-align:left}.note-markdown th{background:var(--bg-color);font-weight:600}.note-markdown blockquote{margin:8px 0;padding-left:10px;border-left:3px solid var(--primary-color);color:var(--text-light)}.note-markdown pre{background:var(--bg-color);padding:8px;border-radius:4px;overflow-x:auto;font-size:.85em}.history-page{flex:1;padding:40px;max-width:900px;margin:0 auto;width:100%;overflow-y:auto}.history-header{margin-bottom:30px}.history-header h1{color:var(--primary-color);font-size:2rem;margin:0 0 8px}.history-subtitle{color:var(--text-light);font-size:1rem;margin:0}.history-login-prompt{text-align:center;padding:60px 20px;color:var(--text-light)}.history-login-prompt p{margin-bottom:20px}.history-search-container{display:flex;align-items:center;gap:16px;margin-bottom:24px}.history-search-input{flex:1;padding:12px 16px;font-size:1rem;border:2px solid var(--border-color);border-radius:10px;transition:border-color .2s,box-shadow .2s}.history-search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #d977061a}.history-count{color:var(--text-light);font-size:.9rem;white-space:nowrap}.history-list{display:flex;flex-direction:column;gap:12px}.history-empty{text-align:center;padding:40px 20px;color:var(--text-light)}.history-item{background:#fff;border:1px solid var(--border-color);border-radius:10px;display:flex;align-items:center;gap:16px;transition:box-shadow .2s,border-color .2s}.history-item:hover{box-shadow:0 2px 8px #00000014;border-color:var(--primary-color)}.history-item-main{flex:1;padding:16px 20px;cursor:pointer;display:flex;flex-direction:column;gap:4px;min-width:0}.history-item-title{font-weight:600;color:var(--text-dark);font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item:hover .history-item-title{color:var(--primary-color)}.history-item-date{font-size:.85rem;color:var(--text-light)}.history-item-actions{display:flex;gap:4px;padding-right:16px}.history-action-btn{width:32px;height:32px;border:1px solid var(--border-color);background:#fff;color:var(--text-light);cursor:pointer;border-radius:6px;font-size:16px;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s,color .15s,border-color .15s}.history-action-btn:hover{background:var(--bg-color);color:var(--text-dark);border-color:var(--text-light)}.history-action-btn.delete:hover{background:#fee2e2;color:#dc2626;border-color:#dc2626}.history-rename-input{flex:1;padding:8px 12px;border:2px solid var(--primary-color);border-radius:6px;font-size:1rem;outline:none;background:#fff}.dictionary-page{flex:1;padding:40px;max-width:900px;margin:0 auto;width:100%;overflow-y:auto}.dictionary-header{text-align:center;margin-bottom:30px}.dictionary-header h1{color:var(--primary-color);font-size:2rem;margin:0 0 8px}.dictionary-subtitle{color:var(--text-light);font-size:1rem}.dictionary-search-container{margin-bottom:30px}.dictionary-search-box{display:flex;flex-direction:column;gap:12px;max-width:600px;margin:0 auto}.dictionary-search-input{width:100%;padding:14px 20px;font-size:1.1rem;border:2px solid var(--border-color);border-radius:10px;transition:border-color .2s,box-shadow .2s}.dictionary-search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #d977061a}.dictionary-results{display:flex;flex-direction:column;gap:16px}.dictionary-placeholder{text-align:center;padding:60px 20px;color:var(--text-light)}.dictionary-placeholder .hint{font-size:.9rem;margin-top:10px;color:var(--primary-color)}.dict-loading{text-align:center;padding:40px;color:var(--text-light)}.dict-entry{background:#fff;border:1px solid var(--border-color);border-radius:10px;padding:20px;transition:box-shadow .2s,border-color .2s}.dict-entry:hover{box-shadow:0 4px 12px #00000014;border-color:var(--primary-color)}.dict-entry-header{display:flex;align-items:baseline;gap:12px;margin-bottom:10px;flex-wrap:wrap}.dict-pali{font-size:1.4rem;font-weight:700;color:var(--primary-color)}.dict-pos{font-size:.85rem;color:#fff;background:var(--text-light);padding:2px 8px;border-radius:4px;font-weight:500}.dict-pos.noun{background:#3b82f6}.dict-pos.verb{background:#10b981}.dict-pos.adjective{background:#8b5cf6}.dict-pos.adverb{background:#f59e0b}.dict-pos.particle{background:#ec4899}.dict-pos.pronoun{background:#06b6d4}.dict-pos.preposition{background:#84cc16}.dict-gender{font-size:.85rem;color:var(--text-light);font-style:italic}.dict-definition{font-size:1rem;line-height:1.6;color:var(--text-dark);margin-bottom:10px}.dict-meta{display:flex;gap:15px;font-size:.85rem;color:var(--text-light);flex-wrap:wrap}.dict-meta-item{display:flex;align-items:center;gap:4px}.dict-add-btn{margin-left:auto;padding:6px 12px;background:var(--primary-light);color:var(--primary-color);border:1px solid var(--primary-color);border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s}.dict-add-btn:hover:not(.added){background:var(--primary-color);color:#fff}.dict-add-btn.added{background:#dcfce7;color:#16a34a;border-color:#16a34a;cursor:default}.syllabus-page{flex:1;padding:40px;max-width:900px;margin:0 auto;width:100%;overflow-y:auto}.syllabus-header{text-align:center;margin-bottom:30px}.syllabus-header h1{color:var(--primary-color);font-size:2rem;margin:0 0 8px}.syllabus-subtitle{color:var(--text-light);font-size:1rem}.syllabus-progress{background:var(--bg-color);border-radius:12px;padding:20px;margin-bottom:30px;display:flex;justify-content:space-around;flex-wrap:wrap;gap:15px}.progress-stat{text-align:center}.progress-stat .stat-value{font-size:1.8rem;font-weight:700;color:var(--primary-color)}.progress-stat .stat-label{font-size:.85rem;color:var(--text-light)}.syllabus-login-prompt{text-align:center;margin-bottom:30px}.syllabus-levels{display:flex;flex-direction:column;gap:15px}.syllabus-level{background:#fff;border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.level-header{padding:20px;cursor:pointer;display:flex;align-items:center;gap:15px;transition:background .2s}.level-header:hover{background:var(--bg-color)}.level-number{width:40px;height:40px;background:var(--primary-light);color:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0}.level-info{flex:1}.level-title{font-weight:600;font-size:1.1rem;color:var(--text-dark)}.level-subtitle{font-size:.9rem;color:var(--text-light)}.level-progress{font-size:.85rem;color:var(--text-light);margin-top:4px}.level-expand{font-size:1rem;color:var(--text-light);transition:transform .2s}.level-modules{border-top:1px solid var(--border-color);padding:15px 20px;background:var(--bg-color)}.module-item{display:flex;align-items:center;gap:12px;padding:12px 15px;background:#fff;border-radius:8px;margin-bottom:10px;border:1px solid var(--border-color)}.module-item:last-child{margin-bottom:0}.module-status{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}.module-status.completed{background:#dcfce7;color:#16a34a}.module-status.current{background:var(--primary-light);color:var(--primary-color)}.module-status.locked{background:#f3f4f6;color:#9ca3af}.module-info{flex:1}.module-title{font-weight:500;color:var(--text-dark);font-size:.95rem}.module-subtitle{font-size:.85rem;color:var(--text-light)}.module-meta{font-size:.8rem;color:var(--text-light);margin-top:4px}.module-action{flex-shrink:0}.start-lesson-btn{padding:8px 16px;background:var(--primary-color);color:#fff;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:background .2s}.start-lesson-btn:hover{background:var(--primary-hover)}.start-lesson-btn.secondary{background:#fff;color:var(--primary-color);border:1px solid var(--primary-color)}.start-lesson-btn.secondary:hover{background:var(--primary-light)}.syllabus-picker{max-width:700px;margin:0 auto 24px;padding:16px 20px;background:var(--surface-color, #f8f9fa);border:1px solid var(--border-color, #e0e0e0);border-radius:10px}.syllabus-picker-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #888);margin-bottom:10px}.syllabus-picker-options{display:flex;gap:10px;flex-wrap:wrap}.syllabus-picker-btn{padding:8px 16px;border:1px solid var(--border-color, #d0d0d0);border-radius:20px;background:#fff;color:var(--text-color, #333);font-size:.9rem;cursor:pointer;transition:all .15s}.syllabus-picker-btn:hover:not(:disabled){border-color:var(--primary-color, #5b6eae);color:var(--primary-color, #5b6eae)}.syllabus-picker-btn.active{background:var(--primary-color, #5b6eae);border-color:var(--primary-color, #5b6eae);color:#fff;font-weight:500}.syllabus-picker-btn:disabled{opacity:.6;cursor:default}.syllabus-picker-check{margin-left:4px}.syllabus-picker-desc{margin:12px 0 0;font-size:.85rem;color:var(--text-muted, #666);line-height:1.4}.readings-page{flex:1;padding:40px;max-width:1000px;margin:0 auto;width:100%;overflow-y:auto}.readings-header{margin-bottom:24px}.readings-header h1{color:var(--primary-color);font-size:2rem;margin:0 0 6px}.readings-subtitle{color:var(--text-light);margin:0}.readings-filters{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.readings-filters select{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--sidebar-bg);color:var(--text-dark)}.readings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.reading-card{background:var(--sidebar-bg);border:1px solid var(--border-color);border-radius:10px;padding:18px 20px;text-decoration:none;color:var(--text-dark);transition:transform .1s ease,box-shadow .1s ease,border-color .1s ease;display:flex;flex-direction:column;gap:10px}.reading-card:hover{border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 4px 10px #0000000d}.reading-card-title{font-weight:600;font-size:1.05rem;margin:0}.reading-card-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.reading-card-meta{color:var(--text-light);font-size:.85rem;margin:0}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;background:var(--primary-light);color:var(--primary-color);font-weight:500;white-space:nowrap}.tag.difficulty-beginner{background:#dcfce7;color:#166534}.tag.difficulty-intermediate{background:#fef3c7;color:#92400e}.tag.difficulty-advanced{background:#fee2e2;color:#991b1b}.tag.corpus-constructed{background:#e0e7ff;color:#3730a3}.tag.corpus-dhammapada{background:#fef3c7;color:#92400e}.tag.corpus-sutta{background:#ede9fe;color:#5b21b6}.readings-empty,.readings-loading{text-align:center;padding:60px 20px;color:var(--text-light)}.reading-page{flex:1;padding:40px;max-width:860px;margin:0 auto;width:100%;overflow-y:auto}.reading-back{display:inline-block;margin-bottom:16px;color:var(--primary-color);text-decoration:none;font-size:.9rem}.reading-back:hover{text-decoration:underline}.reading-title{color:var(--primary-color);font-size:1.8rem;margin:0 0 6px}.reading-meta{color:var(--text-light);font-size:.9rem;margin:0 0 24px;display:flex;gap:14px;flex-wrap:wrap}.reading-meta .tag-row{display:flex;gap:6px;flex-wrap:wrap}.reading-segment{margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--border-color)}.reading-segment:last-child{border-bottom:none}.reading-pali{font-size:1.3rem;line-height:1.9;color:var(--text-dark);margin-bottom:10px;font-family:Georgia,Times New Roman,serif}.reading-translation{color:var(--text-light);font-style:italic;line-height:1.5}.reading-word{position:relative;cursor:help;border-bottom:1px dotted transparent;padding:0 1px;transition:background .12s ease,border-color .12s ease}.reading-word:hover{background:var(--primary-light);border-bottom-color:var(--primary-color)}.reading-word.unknown{border-bottom:1px dashed #9ca3af;color:#6b7280}.reading-word-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1f2937;color:#f9fafb;padding:10px 14px;border-radius:8px;font-size:.8rem;line-height:1.5;white-space:normal;min-width:220px;max-width:340px;z-index:20;box-shadow:0 10px 30px #0000002e;font-family:system-ui,-apple-system,sans-serif;font-style:normal;text-align:left}.reading-word-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1f2937}.reading-lemma-footer{margin-top:40px;padding:16px 20px;border-radius:10px;background:var(--ai-msg-bg);color:var(--text-light);font-size:.85rem}.reading-lemma-footer strong{color:var(--text-dark)}.vocab-page{flex:1;padding:40px;max-width:900px;margin:0 auto;width:100%;overflow-y:auto;display:flex;flex-direction:column}.vocab-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.vocab-header h1{color:var(--primary-color);font-size:2rem;margin:0 0 8px}.vocab-subtitle{color:var(--text-light);font-size:1rem;margin:0}.vocab-login-prompt{text-align:center;padding:60px 20px;color:var(--text-light)}.vocab-login-prompt p{margin-bottom:20px}.vocab-stats-bar{text-align:center;padding:10px;background:var(--primary-light);border-radius:8px;margin-bottom:20px;color:var(--primary-color);font-weight:600}.vocab-controls{display:flex;gap:12px;margin-bottom:20px}.vocab-search{flex:1;padding:10px 14px;border:1px solid var(--border-color);border-radius:8px;font-size:1rem}.vocab-search:focus{outline:none;border-color:var(--primary-color)}.vocab-filter{padding:10px 14px;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;background:#fff;cursor:pointer;min-width:150px}.vocab-filter:focus{outline:none;border-color:var(--primary-color)}.vocab-results{flex:1;display:flex;flex-direction:column;gap:16px}.vocab-loading{text-align:center;padding:40px;color:var(--text-light)}.vocab-empty{text-align:center;padding:60px 20px;color:var(--text-light)}.vocab-empty .hint{font-size:.9rem;margin-top:10px;color:var(--primary-color)}.vocab-entry{background:#fff;border:1px solid var(--border-color);border-radius:10px;padding:20px;transition:box-shadow .2s,border-color .2s}.vocab-entry:hover{box-shadow:0 4px 12px #00000014;border-color:var(--primary-color)}.vocab-entry-header{display:flex;align-items:baseline;gap:12px;margin-bottom:10px;flex-wrap:wrap}.vocab-pali{font-size:1.4rem;font-weight:700;color:var(--primary-color)}.vocab-pos{font-size:.85rem;color:#fff;background:var(--text-light);padding:2px 8px;border-radius:4px;font-weight:500}.vocab-pos.noun{background:#3b82f6}.vocab-pos.verb{background:#10b981}.vocab-pos.adjective{background:#8b5cf6}.vocab-pos.adverb{background:#f59e0b}.vocab-pos.particle{background:#ec4899}.vocab-pos.pronoun{background:#06b6d4}.vocab-pos.preposition{background:#84cc16}.vocab-gender{font-size:.85rem;color:var(--text-light);font-style:italic}.vocab-status{font-size:.85rem;color:#fff;padding:2px 8px;border-radius:4px;font-weight:500;text-transform:capitalize;margin-left:auto}.vocab-definition{font-size:1rem;line-height:1.6;color:var(--text-dark);margin-bottom:10px}.vocab-meta{display:flex;gap:15px;font-size:.85rem;color:var(--text-light);flex-wrap:wrap}.vocab-meta-item{display:flex;align-items:center;gap:4px}.settings-card{background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:16px}.settings-card h2{display:flex;align-items:center;gap:8px}.settings-card code{font-size:.9em;background:var(--bg-color);padding:1px 5px;border-radius:4px;overflow-wrap:anywhere}.settings-hint{color:var(--text-light);font-size:14px;margin:0 0 14px;line-height:1.45}.settings-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.settings-field .input-text{width:100%;font:inherit}.settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.settings-ok{color:#166534;font-size:14px}.settings-err{color:#991b1b;font-size:14px}.admin-badge{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--primary-color);background:var(--primary-light);padding:2px 8px;border-radius:999px}.model-meta{color:var(--text-light);font-size:13px;line-height:1.45}.admin-warning{color:#92400e;background:#fef3c7;border:1px solid #fde68a;padding:8px 10px;border-radius:6px;margin-bottom:12px;font-size:14px}.admin-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-bottom:14px}.admin-mode{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;cursor:pointer}.admin-mode.selected{border-color:var(--primary-color);background:var(--primary-light)}.admin-mode input{margin-top:3px;accent-color:var(--primary-color)}.admin-mode span{display:flex;flex-direction:column;gap:2px}.admin-kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;margin:0 0 12px;font-size:14px}.admin-kv dt{color:var(--text-light)}.admin-kv dd{margin:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.settings-card a{color:var(--primary-color)}:root{--bg-color: #f8f9fa;--sidebar-bg: #ffffff;--primary-color: #d97706;--primary-light: #fef3c7;--primary-hover: #b45309;--text-dark: #1f2937;--text-light: #6b7280;--border-color: #e5e7eb;--user-msg-bg: #dbeafe;--ai-msg-bg: #f3f4f6}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text-dark);background:var(--bg-color)}.app{display:flex;flex-direction:column;height:100%}.header{height:60px;background:var(--sidebar-bg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px;flex-shrink:0}.logo{font-weight:700;color:var(--primary-color);display:flex;align-items:center;gap:8px}.main-nav{display:flex;gap:8px;min-width:0}.nav-link{text-decoration:none;color:var(--text-light);padding:8px 12px;border-radius:20px;font-weight:500}.nav-link.active,.nav-link:hover{background:var(--primary-light);color:var(--primary-color)}.header-controls{display:flex;align-items:center;gap:10px}.auth-buttons{display:flex;gap:8px}.btn{border:1px solid var(--border-color);background:#fff;padding:8px 12px;border-radius:8px;cursor:pointer}.panel-toggle{width:28px;height:28px;border-radius:6px;border:1px solid var(--border-color);background:#fff;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;color:var(--text-light)}.panel-toggle:hover{background:var(--bg-color);color:var(--text-dark)}.btn.primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.btn.primary:hover{background:var(--primary-hover)}.danger-link{color:#dc2626;background:transparent;border:none;cursor:pointer}.link-btn{background:none;border:none;color:var(--primary-color);cursor:pointer;padding:0;text-decoration:underline}.link-btn:hover{color:var(--primary-hover)}.user-chip{position:relative;display:flex;align-items:center;gap:6px}.user-icon{width:32px;height:32px;border-radius:50%;background:var(--primary-light);color:var(--primary-color);display:flex;align-items:center;justify-content:center;font-weight:700;border:none;cursor:pointer}.user-menu{display:none;position:absolute;top:100%;right:0;background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:8px;box-shadow:0 4px 12px #00000026;min-width:140px}.user-menu:before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px}.user-menu.open{display:block}.user-menu a,.user-menu button{display:block;padding:6px 10px;color:var(--text-dark);text-decoration:none;background:none;border:none;text-align:left;width:100%;border-radius:6px}.user-menu a:hover,.user-menu button:hover{background:var(--bg-color)}.view-root{flex:1;display:flex;overflow:hidden;min-height:0}.container{display:flex;flex:1;overflow:hidden;min-width:0}.left-sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border-color);padding:16px;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden;flex-shrink:0}.sidebar-top{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.resize-handle{width:6px;cursor:col-resize;background:transparent;flex-shrink:0;position:relative}.resize-handle:hover{background:var(--primary-light)}.resize-handle:active{background:var(--primary-color)}.resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--border-color)}.history-item{padding:8px 10px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:space-between}.history-item:hover{background:var(--bg-color)}.history-item.active{background:var(--primary-light);color:var(--primary-color)}.chat-area{flex:1;display:flex;flex-direction:column;background:#fff;overflow:hidden;min-width:0;position:relative}.chat-topic-header{padding:10px 16px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:49px}.chat-header-left{display:flex;align-items:center;gap:12px;min-width:0}.mobile-view-switcher,.mobile-panel-backdrop{display:none}.messages-container{flex:1;padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.message{max-width:75%;line-height:1.6;font-size:1rem}.message.ai{align-self:flex-start}.message.user{align-self:flex-end}.bubble{padding:12px 16px;border-radius:12px}.user-bubble{white-space:pre-wrap;word-wrap:break-word}.ai .bubble{background:var(--ai-msg-bg);border-bottom-left-radius:2px}.user .bubble{background:var(--user-msg-bg);border-bottom-right-radius:2px}.bubble p{margin:0 0 .5em;line-height:1.5}.bubble p:last-child{margin-bottom:0}.bubble>*:first-child{margin-top:0}.bubble>*:last-child{margin-bottom:0}.note-indicator{display:block;padding:6px 10px;margin:8px 0;background:var(--primary-light);border-radius:6px;color:var(--primary-color);font-style:normal;font-size:.9em}.start-module-link{display:inline-block;margin:10px 0 2px;padding:8px 14px;background:var(--primary-color);color:#fff;border:none;border-radius:8px;font:inherit;font-weight:600;cursor:pointer}.start-module-link:hover{filter:brightness(1.05)}.start-module-link[disabled]{opacity:.6;cursor:progress}.thinking-indicator{display:inline-flex;align-items:center;gap:8px;color:var(--text-light);font-size:.95em}.thinking-label{text-transform:lowercase;letter-spacing:.02em}.tool-running-indicator{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:4px 10px;background:var(--bg-color);border-radius:12px;font-size:.85em;color:var(--text-light);width:fit-content}.thinking-dots{display:inline-flex;gap:3px}.thinking-dots span{width:6px;height:6px;background:var(--text-light);border-radius:50%;opacity:.4;animation:thinking-pulse 1.2s infinite ease-in-out}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.composer-wrapper{border-top:1px solid var(--border-color);background:#fff}.diacritic-toolbar{padding:8px 16px 0}.diacritic-keys{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.diacritic-char{min-width:32px;font-size:1.1rem;padding:4px 8px}.diacritic-close{padding:4px 8px;color:var(--text-light)}.diacritic-hint{margin-left:8px;font-size:.8rem;color:var(--text-light)}.input-area{padding:12px 16px;display:flex;gap:8px;align-items:flex-end}.input{flex:1;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;font-size:1rem}.chat-input{resize:none;min-height:40px;max-height:150px;font-family:inherit;line-height:1.4}.send-btn{background:var(--primary-color);color:#fff;border:none;padding:0 16px;border-radius:8px;height:40px;cursor:pointer}.send-btn:disabled{background:var(--text-light);cursor:not-allowed}.right-sidebar{background:var(--sidebar-bg);border-left:1px solid var(--border-color);display:flex;flex-direction:column;min-height:0;flex-shrink:0}.sidebar-header{padding:10px 12px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.sidebar-tabs{display:flex;gap:6px}.sidebar-tab{padding:6px 10px;border-radius:6px;background:transparent;border:1px solid transparent;color:var(--text-light);cursor:pointer}.sidebar-tab.active{background:var(--primary-light);color:var(--primary-color);border-color:var(--primary-light)}.sidebar-content{flex:1;overflow:auto}.modal-backdrop{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{width:380px;max-width:92vw;background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:16px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.label{font-size:.9rem;font-weight:600;color:var(--text-dark)}.input-text{padding:10px 12px;border:1px solid var(--border-color);border-radius:8px}.error{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;padding:8px 10px;border-radius:6px;margin-bottom:8px}.login-page{flex:1;min-height:calc(100vh - 64px);display:flex;align-items:flex-start;justify-content:center;padding:64px 16px 24px;overflow:auto}.login-card{width:420px;max-width:100%;background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:28px;box-shadow:0 6px 24px #0000000f}.login-title{margin:0 0 4px;font-size:1.4rem;color:var(--text-dark)}.login-subtitle{margin:0 0 18px;color:var(--text-light);font-size:.95rem}.login-submit{width:100%;margin-top:6px}.login-switch{display:block;margin:14px auto 0}.bubble h2{margin:.6em 0 .3em;font-size:1.2em;color:var(--primary-color)}.bubble h3{margin:.5em 0 .25em;font-size:1.1em;color:var(--primary-color)}.bubble h4{margin:.4em 0 .2em;font-size:1em;color:var(--primary-color)}.bubble ul,.bubble ol{margin:.4em 0;padding-left:1.5em}.bubble li{margin:.15em 0}.bubble blockquote{margin:.5em 0;padding-left:1em;border-left:3px solid var(--primary-color);color:var(--text-light)}.bubble hr{margin:.8em 0;border:none;border-top:1px solid var(--border-color)}.bubble pre{background:#1e1e1e;color:#d4d4d4;padding:10px;border-radius:6px;overflow:auto;margin:.5em 0}.bubble code{background:#0000000f;padding:2px 6px;border-radius:4px}.bubble strong{font-weight:600}.bubble table{border-collapse:collapse;margin:.6em 0;font-size:.95em}.bubble th,.bubble td{border:1px solid var(--border-color);padding:4px 10px;text-align:left}.bubble th{background:var(--bg-color);font-weight:600}.pali-word{text-decoration:underline dotted;text-decoration-color:var(--primary-color);text-underline-offset:2px;cursor:help}.pali-word:hover{background:var(--primary-light)}.word-tooltip{position:fixed;background:#1f2937;color:#f9fafb;padding:10px 14px;border-radius:8px;font-size:.8rem;line-height:1.5;min-width:220px;max-width:340px;z-index:1000;box-shadow:0 10px 30px #0000002e;pointer-events:none;text-align:left}.word-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1f2937}.word-tooltip.below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#1f2937}.tooltip-lemma{font-weight:700;font-size:.95rem;color:#fef3c7}.tooltip-root{margin-left:6px;font-style:italic;color:#fcd34d;font-size:.8rem}.tooltip-pos{display:inline-block;margin-left:6px;padding:1px 7px;background:#ffffff1f;border-radius:4px;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#e5e7eb}.tooltip-features{color:#d1d5db;margin-top:3px;font-family:Menlo,Consolas,monospace;font-size:.72rem}.tooltip-gloss{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.1);color:#f3f4f6}.tooltip-alt{margin-top:8px;padding-top:6px;border-top:1px solid rgba(255,255,255,.1);color:#9ca3af;font-size:.72rem}.settings-page{overflow-y:auto}.streak-indicator{display:flex;align-items:center;gap:16px;padding:6px 12px;background:var(--sidebar-bg);border-radius:8px;font-size:13px}.streak-module{display:flex;align-items:center;gap:6px}.streak-module-id{font-weight:600;color:var(--primary-color);background:var(--primary-light);padding:2px 6px;border-radius:4px;font-size:12px}.streak-module-title{color:var(--text-light)}.streak-progress{display:flex;align-items:center;gap:8px}.streak-dots{display:flex;gap:4px}.streak-dot{width:8px;height:8px;border-radius:50%;background:var(--border-color);transition:background .2s,transform .2s}.streak-dot.filled{background:var(--primary-color);transform:scale(1.1)}.streak-count{color:var(--text-light);font-size:12px;font-weight:500}@media(max-width:820px){.app{height:100dvh;min-height:0}.header{height:52px;padding:0 8px;gap:8px}.logo{flex:0 0 auto;gap:0;font-size:0}.logo span{font-size:22px}.main-nav{flex:1;overflow-x:auto;gap:4px;padding:0 2px;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}.nav-link{border-radius:7px;padding:6px 8px;font-size:13px;white-space:nowrap}.header-controls{flex-shrink:0;gap:6px}.auth-buttons{gap:4px}.auth-buttons .btn{padding:6px 8px}.container{width:100%;position:relative}.left-sidebar,.right-sidebar,.resize-handle{display:none}.chat-area{width:100%}.chat-topic-header{min-height:50px;padding:8px 10px;justify-content:center;gap:8px}.chat-header-left{position:absolute;left:8px;max-width:34%}.desktop-panel-toggle{display:none}.mobile-view-switcher{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(100%,310px);gap:2px;margin:0 auto;padding:2px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-color)}.mobile-view-switcher button{min-width:0;border:0;border-radius:6px;background:transparent;color:var(--text-light);cursor:pointer;font:inherit;font-size:12px;font-weight:600;padding:7px 4px}.mobile-view-switcher button.active{background:#fff;color:var(--primary-color);box-shadow:0 1px 2px #1f293714}.streak-indicator{max-width:100%;overflow:hidden;gap:6px;padding:4px 6px;border:1px solid var(--border-color);background:#fff}.streak-module{min-width:0}.streak-module-title{display:none}.streak-progress{gap:5px}.streak-dots{gap:3px}.streak-dot{width:6px;height:6px}.streak-count{font-size:11px}.messages-container{padding:14px 10px 16px;gap:12px;scroll-padding-bottom:140px}.message{max-width:92%;font-size:.96rem}.message.user{max-width:88%}.bubble{padding:10px 12px;border-radius:10px}.msg-meta{font-size:11px!important}.composer-wrapper{padding-bottom:calc(6px + env(safe-area-inset-bottom))}.diacritic-toolbar{padding:8px 10px 0}.diacritic-toggle{min-height:36px;padding:7px 9px}.diacritic-keys{gap:6px}.diacritic-char,.diacritic-close{min-width:38px;min-height:38px;padding:6px 8px}.diacritic-char{font-size:1.15rem}.diacritic-hint{display:none}.input-area{gap:6px;padding:8px 10px 0}.input{font-size:16px}.chat-input{min-height:44px;max-height:118px;padding:11px 12px}.send-btn{min-width:56px;height:44px;padding:0 12px;font-weight:600}.mobile-panel-backdrop{position:absolute;z-index:20;inset:50px 0 0;display:flex;align-items:flex-end;background:#1f293747}.mobile-panel{display:flex;flex-direction:column;width:100%;min-height:42dvh;max-height:min(76dvh,calc(100dvh - 102px));overflow:hidden;border-top:1px solid var(--border-color);border-radius:12px 12px 0 0;background:var(--sidebar-bg);box-shadow:0 -8px 24px #1f29372e}.mobile-panel-header{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--border-color)}.mobile-panel-title{color:var(--primary-color);font-weight:700}.mobile-panel-content{flex:1;min-height:0;overflow:hidden;padding:12px}.mobile-panel-content .chat-list,.mobile-panel-content .notes-list{height:100%}.mobile-panel-content .chat-item,.mobile-panel-content .note-header{min-height:44px}.mobile-panel-content .chat-actions{opacity:1}}@media(max-width:420px){.chat-header-left{display:none}.mobile-view-switcher{width:100%}.message,.message.user{max-width:96%}.bubble table{display:block;overflow-x:auto}}
