*{box-sizing:border-box;scrollbar-color:var(--scrollbar-thumb) var(--bg-secondary);margin:0;padding:0}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}:root{--bg-primary:#1e1e2e;--bg-secondary:#181825;--bg-surface:#252536;--bg-hover:#2e2e42;--text-primary:#cdd6f4;--text-secondary:#a6adc8;--text-muted:#6c7086;--accent:#5b9cf5;--accent-hover:#4a8de8;--green:var(--accent);--red:#f38ba8;--yellow:#f9e2af;--border:#313244;--bg-panel-solid:#2a2d3d;--bg-console:#1a1a1a;--text-console:#ccc;--scrollbar-thumb:#3e4255;--scrollbar-thumb-hover:#525775;--radius:6px;--radius-pill:6px}:root[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f3f4f6;--bg-surface:#fff;--bg-hover:#eef0f3;--text-primary:#1f2937;--text-secondary:#4b5563;--text-muted:#6b7280;--accent:#2563eb;--accent-hover:#1d4ed8;--red:#dc2626;--yellow:#b45309;--border:#e5e7eb;--bg-panel-solid:#f3f4f6;--bg-console:#f9fafb;--text-console:#1f2937;--scrollbar-thumb:#cbd5e1;--scrollbar-thumb-hover:#94a3b8}body{background:var(--bg-primary);color:var(--text-primary);height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}html{height:100vh;overflow:hidden}#root{flex-direction:column;height:100vh;display:flex;overflow:hidden}.dashboard{flex:1;width:100%;height:100vh;min-height:0;display:flex;overflow:hidden}.dashboard-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;width:240px;min-width:240px;display:flex;overflow-y:auto}.dashboard-logo{border-bottom:1px solid var(--border);padding:24px 20px 16px}.dashboard-logo h1{color:var(--accent);margin-bottom:2px;font-size:1.4rem}.dashboard-logo p{color:var(--text-muted);font-size:12px}.new-project-btn-group{align-items:stretch;margin:12px 8px 0;display:flex;position:relative}.sidebar-new-project-btn{background:var(--accent);color:var(--bg-primary);border-radius:var(--radius-pill) 0 0 var(--radius-pill);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:600;display:flex}.sidebar-new-project-btn:hover{background:var(--accent-hover)}.new-project-menu-toggle{background:var(--accent);color:var(--bg-primary);border-radius:0 var(--radius-pill) var(--radius-pill) 0;cursor:pointer;border:none;border-left:1px solid #0003;align-items:center;padding:0 9px;display:flex}.new-project-menu-toggle:hover{background:var(--accent-hover)}.new-project-dropdown-menu{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);z-index:100;min-width:100%;padding:4px 0;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 4px 12px #0000004d}.new-project-dropdown-menu button{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:flex}.new-project-dropdown-menu button:hover{background:var(--bg-hover)}.sidebar-categories{padding:12px 8px}.sidebar-category{width:100%;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.sidebar-category:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-category.active{background:var(--bg-surface);color:var(--accent)}.sidebar-category svg{opacity:.7;flex-shrink:0}.sidebar-category.active svg{opacity:1}.sidebar-tags-section{border-top:1px solid var(--border);flex:1;padding:8px}.sidebar-tags-header{justify-content:space-between;align-items:center;padding:4px 12px 8px;display:flex}.sidebar-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:11px;font-weight:600}.sidebar-add-tag-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:2px;display:flex}.sidebar-add-tag-btn:hover{color:var(--accent);background:var(--bg-hover)}.sidebar-new-tag-form{padding:0 8px 8px}.sidebar-new-tag-form input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);width:100%;color:var(--text-primary);padding:5px 8px;font-size:13px}.sidebar-new-tag-form input:focus{border-color:var(--accent);outline:none}.sidebar-tags-list{flex-direction:column;display:flex}.sidebar-tag{width:100%;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.sidebar-tag:hover{background:var(--bg-hover)}.sidebar-tag.active{background:var(--bg-surface);color:var(--text-primary)}.sidebar-tag-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.sidebar-tag-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sidebar-tag-delete{opacity:0;color:var(--text-muted);font-size:16px;line-height:1}.sidebar-tag:hover .sidebar-tag-delete{opacity:1}.sidebar-tag-delete:hover{color:var(--red)}.sidebar-user{border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:auto;padding:12px 16px;display:flex}.sidebar-user-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.sidebar-icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;display:flex}.sidebar-icon-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.dashboard-main{flex:1;padding:30px 40px;overflow-y:auto}.dashboard-topbar{align-items:center;gap:20px;margin-bottom:24px;display:flex}.dashboard-view-title{white-space:nowrap;font-size:1.3rem;font-weight:600}.project-table{border-collapse:collapse;width:100%}.project-table-check-col,.project-table-check{width:32px;padding:0 0 0 12px!important}.project-table-check input,.project-table-check-col input{cursor:pointer;appearance:none;border:1.5px solid var(--text-muted);background:var(--bg-primary);vertical-align:middle;border-radius:3px;width:15px;height:15px;position:relative}.project-table-check input:checked,.project-table-check-col input:checked{border-color:var(--accent);background:var(--bg-primary)}.project-table-check input:checked:after,.project-table-check-col input:checked:after{content:"✓";color:var(--accent);font-size:12px;font-weight:700;position:absolute;top:-1px;left:1.5px}.project-table-row.selected{background:#89b4fa14}.bulk-actions-bar{background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:8px;padding:8px 12px;display:flex}.bulk-actions-count{color:var(--accent);margin-right:4px;font-size:13px;font-weight:600}.bulk-action-btn{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-primary);cursor:pointer;background:0 0;align-items:center;gap:5px;padding:5px 12px;font-size:12px;display:flex}.bulk-action-btn:hover{background:var(--bg-hover)}.bulk-action-danger{color:var(--red);border-color:var(--red)}.bulk-action-danger:hover{background:#f38ba81a}.bulk-action-btn-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:5px 12px;font-size:12px}.bulk-action-btn-clear:hover{color:var(--text-primary)}.bulk-tag-wrapper{display:inline-block;position:relative}.bulk-tag-dropdown{background:var(--bg-secondary,#2b2d30);border:1px solid var(--border-color,#3c3f41);z-index:100;border-radius:6px;min-width:160px;margin-top:4px;padding:4px 0;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #0000004d}.bulk-tag-option{width:100%;color:var(--text-primary,#ccc);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.bulk-tag-option:hover{background:var(--bg-hover,#3c3f41)}.bulk-tag-empty{color:#666;padding:8px 12px;font-size:12px;font-style:italic}.project-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:11px;font-weight:600}.project-table-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.project-table-sortable:hover{color:var(--text-primary)}.sort-icon{color:var(--accent);margin-left:4px;font-size:9px}.sort-icon.inactive{color:var(--text-muted);opacity:0}.project-table-sortable:hover .sort-icon.inactive{opacity:.5}.project-table-actions-col{white-space:nowrap;width:1%}.project-table-row{cursor:pointer;transition:background .1s}.project-table-row:hover{background:var(--bg-hover)}.project-table-row td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}.project-table-title{align-items:center;gap:8px;display:flex}.project-table-name{align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.project-github-icon{color:var(--text-muted);flex-shrink:0}.project-table-tags{gap:4px;display:inline-flex}.project-tag-chip{border-radius:var(--radius-pill);white-space:nowrap;padding:1px 7px;font-size:10px;font-weight:500}.project-table-cell{color:var(--text-secondary);white-space:nowrap;font-size:13px}.project-table-actions{gap:2px;display:flex}.project-action-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px 6px;display:flex}.project-action-btn:hover{color:var(--text-primary);background:var(--bg-surface)}.project-action-danger:hover{color:var(--red);background:#f38ba81a}.project-table-empty{text-align:center;color:var(--text-muted);padding:40px;font-size:14px}.project-search-bar{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;display:flex}.project-search-bar input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:13px}.project-search-bar input::placeholder{color:var(--text-muted)}.project-context-menu{z-index:1000;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #00000059}.context-menu-header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:6px 12px 4px;font-size:11px;font-weight:600}.context-menu-empty{color:var(--text-muted);padding:8px 12px;font-size:12px}.context-menu-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.context-menu-item:hover{background:var(--bg-hover)}.context-menu-check{text-align:center;width:16px;color:var(--accent);font-size:12px}.app{flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px 12px;min-height:48px;padding:8px 16px;display:flex}.toolbar-left,.toolbar-right{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.toolbar-left{flex:1 1 0;min-width:0}.toolbar-right{flex:1 1 0;justify-content:flex-end;gap:8px;min-width:0}.toolbar-center{text-align:center;flex:0 auto;justify-content:center;min-width:0;max-width:40%;display:flex}.toolbar-back{background:var(--accent);color:var(--bg-primary);border-radius:var(--radius-pill);cursor:pointer;border:none;justify-content:center;align-items:center;padding:6px 10px;display:inline-flex}.toolbar-back:hover{background:var(--accent-hover)}.toolbar-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.toolbar-title-editable{cursor:pointer;border-radius:var(--radius);padding:2px 10px}.toolbar-title-editable:hover{background:var(--bg-hover)}.toolbar-title-input{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--accent);border-radius:var(--radius);text-align:center;outline:none;width:200px;padding:2px 10px;font-family:inherit;font-size:15px;font-weight:600}.toolbar-sync-status.saving{color:var(--accent)}.toolbar-sync-status.saved{color:var(--green)}.toolbar-sync-status.error{color:var(--red)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toolbar-menu-bar{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.toolbar-dropdown{position:relative}.toolbar-menu-btn{color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;padding:4px 10px;font-size:13px}.toolbar-menu-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.toolbar-dropdown-menu{background:var(--bg-surface);border:1px solid var(--border);z-index:100;border-radius:6px;min-width:160px;margin-top:4px;position:absolute;top:100%;left:0;overflow:hidden;box-shadow:0 4px 12px #00000026}.toolbar-dropdown-menu button{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;padding:7px 14px;font-size:13px;display:block}.toolbar-dropdown-menu button:hover:not(:disabled){background:var(--bg-hover)}.toolbar-dropdown-menu button:disabled{color:var(--text-muted);cursor:not-allowed}.toolbar-dropdown-separator{background:var(--border);height:1px;margin:4px 0}.toolbar-users{align-items:center;gap:6px;display:flex}.main-layout{flex:1;display:flex;position:relative;overflow:hidden}.resize-handle{cursor:col-resize;background:var(--border);z-index:5;flex-shrink:0;width:5px;transition:background .15s}.resize-handle:hover{background:var(--accent)}.file-tree{background:var(--bg-secondary);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.file-tree-drag-over{outline:2px dashed var(--accent);outline-offset:-2px}.file-tree-drop-target{outline:1px solid var(--accent);outline-offset:-1px;background:#639cff2e}.file-tree-drop-target-root{outline-offset:-2px;outline:2px dashed #639cff8c}.file-tree-drop-overlay{color:var(--accent);pointer-events:none;z-index:5;background:#1ea0641f;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex;position:absolute;inset:0}.file-tree-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.file-tree-add{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.file-tree-add:hover{color:var(--text-primary)}.file-tree-add.active{color:var(--accent)}.file-tree-new{padding:6px 8px}.file-tree-new input{background:var(--bg-surface);border:1px solid var(--accent);width:100%;color:var(--text-primary);border-radius:4px;padding:4px 8px;font-size:13px}.file-tree-list{flex:1;overflow-y:auto}.file-tree-category{cursor:pointer;-webkit-user-select:none;user-select:none;border-top:1px solid var(--border);align-items:center;gap:4px;padding:5px 10px;display:flex}.file-tree-category:first-child{border-top:none}.file-tree-category-arrow{color:var(--text-muted);width:16px;font-size:14px}.file-tree-category-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:600}.file-tree-category-count{color:var(--text-muted);opacity:.6;margin-left:auto;font-size:9px}.file-tree-item{cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;padding:6px 12px;font-size:13px;transition:background .1s;display:flex}.file-tree-item:hover{background:var(--bg-hover)}.file-tree-item.active{background:var(--bg-surface);color:var(--text-primary);border-left:2px solid var(--accent)}.file-tree-icon{color:var(--accent);text-align:center;width:16px;font-family:monospace;font-size:11px;font-weight:700}.file-tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-tree-name.main-file{color:var(--accent);font-weight:700}.file-tree-delete{color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;font-size:14px;transition:opacity .1s}.file-tree-item:hover .file-tree-delete{opacity:1}.file-tree-delete:hover{color:var(--red)}.file-tree-context-menu{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);z-index:1000;min-width:120px;padding:4px 0;position:fixed;box-shadow:0 4px 12px #0000004d}.file-tree-context-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;padding:6px 14px;font-size:13px;display:block}.file-tree-context-item:hover{background:var(--bg-hover)}.file-tree-context-item.danger{color:var(--red)}.file-tree-rename-form{flex:1;min-width:0}.file-tree-rename-input{background:var(--bg-surface);border:1px solid var(--accent);width:100%;color:var(--text-primary);border-radius:3px;outline:none;padding:1px 4px;font-size:13px}.generated-files-panel{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;position:relative}.outline-panel{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;min-height:80px;font-size:12px;display:flex;position:relative}.outline-resize-handle{cursor:row-resize;z-index:2;height:6px;position:absolute;top:-3px;left:0;right:0}.outline-resize-handle:hover{background:var(--accent);opacity:.4}.outline-panel-header{background:var(--bg-secondary,var(--bg-surface));border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.outline-panel-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.outline-panel-collapse{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:14px;line-height:1}.outline-panel-body{flex:auto;min-height:0;overflow-y:auto}.outline-panel-empty{color:var(--text-muted);padding:10px 12px;font-size:12px;line-height:1.4}.outline-panel-list{margin:0;padding:4px 0;list-style:none}.outline-entry{cursor:pointer;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;padding:3px 8px;overflow:hidden}.outline-entry:hover{background:var(--bg-hover)}.outline-entry.outline-level-0,.outline-entry.outline-level-1{font-weight:600}.outline-entry.outline-level-5,.outline-entry.outline-level-6{color:var(--text-secondary);font-size:11px}.outline-entry-active-file{background:#5b9cf50f}.outline-entry-path{color:var(--text-muted);margin-left:6px;font-size:10px;font-style:italic}.generated-files-resize-handle{cursor:row-resize;z-index:5;height:6px;position:absolute;top:-3px;left:0;right:0}.generated-files-resize-handle:hover{background:var(--accent);opacity:.3}.generated-files-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:8px 12px;font-size:11px;font-weight:600}.generated-files-list{padding:4px 0;overflow-y:auto}.generated-file-item{cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;padding:4px 12px;font-size:12px;display:flex}.generated-file-item:hover{background:var(--bg-hover);color:var(--text-primary)}.generated-file-item.active{background:var(--bg-surface);color:var(--accent)}.generated-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.generated-file-viewer{flex-direction:column;flex:1;min-height:0;display:flex}.generated-file-overlay{z-index:5;background:var(--bg-primary);position:absolute;inset:0}.generated-file-content{color:var(--text-primary);background:var(--bg-primary);white-space:pre-wrap;word-wrap:break-word;flex:1;margin:0;padding:12px 16px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:13px;overflow:auto}.file-tree-header-actions{align-items:center;gap:4px;display:flex}.file-tree-folder{font-weight:500}.file-tree-folder-arrow{text-align:center;width:18px;color:var(--text-muted);flex-shrink:0;font-size:15px}.file-tree-folder-icon{flex-shrink:0;font-size:12px}.file-tree-folder-add{color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 2px;font-size:13px;line-height:1;transition:opacity .1s}.file-tree-folder:hover .file-tree-folder-add{opacity:1}.file-tree-folder-add:hover{color:var(--accent)}.history-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;min-height:48px;padding:8px 16px;display:flex}.history-back-btn{background:var(--accent);color:var(--bg-primary);border-radius:var(--radius-pill);cursor:pointer;border:none;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:flex}.history-back-btn:hover{background:var(--accent-hover)}.history-toolbar-title{color:var(--text-muted);font-size:13px}.history-file-panel{border-right:1px solid var(--border)}.history-file-item:hover{background:var(--bg-hover)}.history-file-item.active{background:var(--bg-hover);font-weight:600}.history-file-edited-badge{color:var(--accent);background:rgba(var(--accent-rgb,97, 175, 239), .15);border-radius:var(--radius-pill);flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:600}.history-panel{background:var(--bg-primary);flex:1;display:flex;overflow:hidden}.history-diff-pane{flex-direction:column;flex:1;display:flex;overflow:hidden}.history-diff-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;min-height:38px;padding:0 12px;font-size:13px;display:flex}.history-diff-filename{color:var(--text-primary);font-weight:600}.history-diff-meta{color:var(--text-muted);font-size:12px}.history-diff-placeholder{color:var(--text-muted)}.history-restore-btn{background:var(--accent);color:var(--bg-primary);border-radius:var(--radius-pill);cursor:pointer;border:none;margin-left:auto;padding:4px 12px;font-size:12px;font-weight:600}.history-restore-btn:hover:not(:disabled){background:var(--accent-hover)}.history-restore-btn:disabled{opacity:.5}.history-restore-modal{text-align:center;max-width:400px}.history-restore-modal-icon{margin-bottom:12px}.history-restore-modal h2{color:var(--text-primary);margin-bottom:10px;font-size:17px;font-weight:600}.history-restore-modal-desc{color:var(--text-secondary);margin-bottom:8px;font-size:13px;line-height:1.5}.history-restore-modal-note{color:var(--text-muted,var(--text-secondary));background:var(--bg-primary);border-radius:var(--radius);margin-bottom:18px;padding:8px 12px;font-size:12px;line-height:1.4}.history-restore-modal-actions{justify-content:center;gap:10px;display:flex}.history-restore-modal-cancel{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;padding:8px 20px;font-size:13px;font-weight:500}.history-restore-modal-cancel:hover{background:var(--bg-secondary)}.history-restore-modal-confirm{border-radius:var(--radius-pill);background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;padding:8px 20px;font-size:13px;font-weight:600}.history-restore-modal-confirm:hover{background:var(--accent-hover)}.history-context-menu{z-index:1000;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;min-width:180px;padding:4px;position:fixed;box-shadow:0 8px 24px #00000040}.history-context-menu-item{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 10px;font-size:13px;display:block}.history-context-menu-item:hover{background:var(--bg-hover)}.history-context-menu-danger{color:var(--danger,#d11)}.history-restore-modal-error{background:color-mix(in srgb, var(--danger,#d11) 12%, transparent);color:var(--danger,#d11);border-radius:4px;margin:0 0 8px;padding:8px 10px;font-size:13px}.history-header-controls{align-items:center;gap:6px;display:flex}.history-interval-select{background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:2px 4px;font-size:11px}.history-close-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.history-close-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.history-diff-body{flex:1;padding:0;overflow:auto}.history-diff-loading{text-align:center;color:var(--text-muted);padding:40px}.history-diff-stats{gap:8px;font-size:12px;font-weight:600;display:flex}.diff-stat-add{color:#3fb950}.diff-stat-remove{color:#f85149}.diff-stat-none{color:var(--text-muted)}.gh-diff{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:20px}.gh-diff-binary-note{text-align:center;color:var(--text-muted);padding:24px;font-family:inherit;font-style:italic}.gh-diff-hunk{border-bottom:1px solid #30363d}.gh-diff-hunk-header{color:#8b949e;-webkit-user-select:none;user-select:none;background:#388bfd1a;border-top:1px solid #30363d;border-bottom:1px solid #30363d;padding:4px 12px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12px}.gh-diff-expand{color:#58a6ff;text-align:center;cursor:default;-webkit-user-select:none;user-select:none;background:#161b22;border-top:1px solid #30363d;border-bottom:1px solid #30363d;padding:4px 12px;font-size:12px}.gh-diff-expand-icon{margin-right:6px}.gh-diff-large-toggle{color:#58a6ff;width:100%;font:inherit;text-align:center;cursor:pointer;background:#161b22;border:1px solid #30363d;border-left:none;border-right:none;padding:6px 12px;font-size:12px;display:block}.gh-diff-large-toggle:hover{background:#1f242c}.gh-diff-table{border-collapse:collapse;table-layout:fixed;width:100%}.gh-diff-row td{vertical-align:top;padding:0}.gh-diff-num{text-align:right;color:#484f58;-webkit-user-select:none;user-select:none;width:50px;min-width:50px;max-width:50px;font-size:12px;line-height:20px;padding:0 8px!important}.gh-diff-marker{text-align:center;-webkit-user-select:none;user-select:none;width:20px;min-width:20px;max-width:20px;font-weight:700;line-height:20px}.gh-diff-code{white-space:pre-wrap;word-break:break-all;line-height:20px;padding:0 12px!important}.gh-diff-row-same{background:0 0}.gh-diff-row-same .gh-diff-code{color:#c9d1d9}.gh-diff-row-add{background:#2ea04326}.gh-diff-row-add .gh-diff-num{color:#3fb950;background:#2ea04333}.gh-diff-row-add .gh-diff-marker{color:#3fb950}.gh-diff-row-add .gh-diff-code{color:#aff5b4}.gh-diff-row-remove{background:#f8514926}.gh-diff-row-remove .gh-diff-num{color:#f85149;background:#f8514933}.gh-diff-row-remove .gh-diff-marker{color:#f85149}.gh-diff-row-remove .gh-diff-code{color:#ffd7d5}.gh-diff-row-add .gh-diff-highlight{background-color:#89b4fa70;border-radius:3px;outline:1px solid #2ea0434d;padding:1px}.gh-diff-row-remove .gh-diff-highlight{background-color:#f8514970;border-radius:3px;outline:1px solid #f851494d;padding:1px}[data-theme=light] .gh-diff-hunk{border-bottom-color:var(--border)}[data-theme=light] .gh-diff-hunk-header{color:#57606a;border-top-color:var(--border);border-bottom-color:var(--border);background:#388bfd14}[data-theme=light] .gh-diff-expand,[data-theme=light] .gh-diff-large-toggle{color:#0969da;border-top-color:var(--border);border-bottom-color:var(--border);background:#f6f8fa}[data-theme=light] .gh-diff-large-toggle:hover{background:#eaeef2}[data-theme=light] .gh-diff-num{color:#6e7781}[data-theme=light] .gh-diff-row-same .gh-diff-code{color:var(--text-primary)}[data-theme=light] .gh-diff-row-add .gh-diff-code,[data-theme=light] .gh-diff-row-add .gh-diff-num,[data-theme=light] .gh-diff-row-add .gh-diff-marker{color:#1a7f37}[data-theme=light] .gh-diff-row-remove .gh-diff-code,[data-theme=light] .gh-diff-row-remove .gh-diff-num,[data-theme=light] .gh-diff-row-remove .gh-diff-marker{color:#cf222e}.history-list-pane{border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow:hidden}.history-list-header{min-height:38px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 12px;font-size:13px;font-weight:600;display:flex}.history-list-body{flex:1;overflow-y:auto}.history-list-loading,.history-list-empty{color:var(--text-muted);text-align:center;padding:20px 12px;font-size:13px}.history-date-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;padding:8px 12px 4px;font-size:11px;font-weight:600}.history-entry{cursor:pointer;border-bottom:1px solid var(--border);padding:8px 12px;transition:background .1s}.history-entry:hover{background:var(--bg-hover)}.history-entry.active{background:var(--bg-surface);border-left:2px solid var(--accent)}.history-entry.multi-selected{background:color-mix(in srgb, var(--accent) 14%, transparent)}.history-entry.multi-selected.active{background:color-mix(in srgb, var(--accent) 22%, transparent)}.history-entry-top{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.history-entry-file{color:var(--text-primary);font-size:13px;font-weight:500}.history-entry-time{color:var(--text-muted);flex-shrink:0;font-size:11px}.history-entry-meta{color:var(--text-muted);align-items:center;font-size:11px;display:flex}.history-entry-author{align-items:center;gap:4px;display:flex}.history-author-swatch{border-radius:50%;width:8px;height:8px;display:inline-block}.ws-disconnected-banner{color:var(--yellow);background:#ffc1071f;border-bottom:1px solid #ffc10780;flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;font-size:12px;line-height:1.3;display:flex}.ws-disconnected-dot{background:#f5a524;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.6s ease-out infinite ws-disconnected-pulse;box-shadow:0 0 #f5a5248c}@keyframes ws-disconnected-pulse{0%{box-shadow:0 0 #f5a5248c}70%{box-shadow:0 0 0 6px #f5a52400}to{box-shadow:0 0 #f5a52400}}.template-gallery{background:var(--bg-primary);height:100vh;color:var(--text-primary);flex-direction:column;display:flex}.template-gallery-header{border-bottom:1px solid var(--border);background:var(--bg-secondary);align-items:center;gap:16px;padding:16px 24px;display:flex}.template-gallery-header h2{flex:1;margin:0;font-size:18px;font-weight:600}.template-back-btn{border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:flex}.template-back-btn:hover{background:var(--bg-hover)}.template-categories{flex-wrap:wrap;gap:8px;padding:16px 24px;display:flex}.template-category-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 14px;font-size:13px;display:flex}.template-category-btn:hover{background:var(--bg-hover)}.template-category-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.template-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-rows:min-content;align-content:start;gap:16px;padding:0 24px 24px;display:grid;overflow-y:auto}.template-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;color:var(--text-primary);flex-direction:column;padding:0;font-size:13px;display:flex;position:relative;overflow:hidden}.template-card:hover{border-color:var(--accent);background:var(--bg-hover)}.template-card:disabled{opacity:.6;cursor:wait}.template-card-preview{background:var(--bg-hover);border-bottom:1px solid var(--border);justify-content:center;align-items:center;height:200px;padding:12px;display:flex}.template-card-preview img{object-fit:contain;border-radius:2px;max-width:100%;max-height:100%;box-shadow:0 1px 4px #00000026}.template-card-body{padding:14px 16px}.template-card-name{margin-bottom:4px;font-size:14px;font-weight:600}.template-card-desc{color:var(--text-secondary);margin-bottom:6px;font-size:12px}.template-card-meta{color:var(--text-muted);font-size:11px}.template-card-creating{border-radius:var(--radius);color:#fff;background:#00000080;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.template-loading{color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.template-upload-btn{background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;padding:7px 14px;font-size:13px;display:flex}.template-upload-btn:hover{filter:brightness(1.1)}.template-card-preview-placeholder{width:100%;height:120px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.template-card-preview-placeholder svg{width:36px;height:36px}.template-card-delete{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text-muted);opacity:0;padding:4px;transition:opacity .15s;position:absolute;top:6px;right:6px}.template-card:hover .template-card-delete{opacity:1}.template-card-delete:hover{color:#f38ba8;border-color:#f38ba8}.template-upload-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.template-upload-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;width:420px;max-width:90vw;padding:24px}.template-upload-dialog h3{margin:0 0 4px;font-size:16px}.template-upload-hint{color:var(--text-muted);margin:0 0 16px;font-size:12px}.template-upload-label{color:var(--text-secondary);margin-top:12px;margin-bottom:4px;font-size:12px;font-weight:600;display:block}.template-upload-label:first-of-type{margin-top:0}.template-upload-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);width:100%;color:var(--text-primary);box-sizing:border-box;padding:7px 10px;font-size:13px}.template-upload-input:focus{border-color:var(--accent);outline:none}.template-upload-file-row{align-items:center;gap:10px;margin-top:4px;display:flex}.template-upload-file-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-hover);color:var(--text-primary);cursor:pointer;white-space:nowrap;padding:6px 12px;font-size:12px}.template-upload-file-btn:hover{border-color:var(--accent)}.template-upload-file-name{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.template-upload-error{color:#f38ba8;margin-top:10px;font-size:12px}.template-upload-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.template-upload-cancel{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;background:0 0;padding:7px 14px;font-size:13px}.template-upload-cancel:hover{background:var(--bg-hover)}.template-upload-submit{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;border:none;padding:7px 14px;font-size:13px}.template-upload-submit:hover{filter:brightness(1.1)}.template-upload-submit:disabled{opacity:.5;cursor:not-allowed}.template-header-actions{align-items:center;gap:8px;display:flex}.template-tag-manage-btn{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text-primary);white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:7px 14px;font-size:13px;display:flex}.template-tag-manage-btn:hover{background:var(--bg-hover)}.template-tag-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.template-card-tags{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.template-card-tag{background:color-mix(in srgb, var(--tag-color) 20%, transparent);color:var(--tag-color);border:1px solid color-mix(in srgb, var(--tag-color) 30%, transparent);border-radius:10px;align-items:center;padding:1px 8px;font-size:10px;font-weight:500;display:inline-flex}.template-upload-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.template-upload-tag{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:5px;padding:4px 10px;font-size:12px;display:flex}.template-upload-tag:hover{background:var(--bg-hover)}.template-upload-tag.selected{background:color-mix(in srgb, var(--tag-color) 20%, transparent);border-color:var(--tag-color);color:var(--text-primary)}.template-tag-manager{width:480px}.template-tag-list{flex-direction:column;gap:8px;max-height:300px;margin-bottom:16px;display:flex;overflow-y:auto}.template-tag-row{border-radius:var(--radius);background:var(--bg-primary);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;display:flex}.template-tag-name{flex:1;font-size:13px}.template-tag-row-actions{gap:4px;margin-left:auto;display:flex}.template-tag-edit-btn,.template-tag-delete-btn{border-radius:var(--radius);cursor:pointer;color:var(--text-muted);background:0 0;border:1px solid #0000;padding:4px}.template-tag-edit-btn:hover{color:var(--accent);border-color:var(--border)}.template-tag-delete-btn:hover{color:#f38ba8;border-color:#f38ba8}.template-tag-edit-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);color:var(--text-primary);flex:1;min-width:0;padding:5px 8px;font-size:13px}.template-tag-edit-input:focus{border-color:var(--accent);outline:none}.template-tag-color-picker{align-items:center;gap:4px;display:flex}.template-tag-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:18px;height:18px;padding:0}.template-tag-color-swatch.active{border-color:var(--text-primary)}.template-tag-color-swatch:hover{transform:scale(1.15)}.template-tag-save-btn,.template-tag-cancel-btn{border-radius:var(--radius);cursor:pointer;border:1px solid var(--border);color:var(--text-primary);background:0 0;padding:4px 10px;font-size:12px}.template-tag-save-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.template-tag-save-btn:hover{filter:brightness(1.1)}.template-tag-cancel-btn:hover{background:var(--bg-hover)}.template-tag-create{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;display:flex}.template-tag-add-btn{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;padding:6px 14px;font-size:12px}.template-tag-add-btn:disabled{opacity:.5;cursor:not-allowed}.template-tag-add-btn:hover:not(:disabled){filter:brightness(1.1)}.template-tag-empty{color:var(--text-muted);text-align:center;padding:12px 0;font-size:13px}.template-ctx-menu{z-index:2000;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;padding:4px 0;animation:.12s ease-out template-ctx-in;position:fixed;box-shadow:0 4px 16px #00000040}@keyframes template-ctx-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.template-ctx-menu-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:6px 12px;font-size:11px;font-weight:600}.template-ctx-menu-empty{color:var(--text-muted);padding:8px 12px;font-size:12px}.template-ctx-menu-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.template-ctx-menu-item:hover{background:var(--bg-hover)}.template-ctx-menu-item.active{font-weight:500}.template-ctx-menu-check{width:14px;height:14px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.template-toast{border-radius:var(--radius);z-index:2000;align-items:center;gap:10px;padding:10px 16px;font-size:13px;animation:.25s ease-out template-toast-in;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000040}@keyframes template-toast-in{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.template-toast-error{background:var(--bg-surface);color:#f38ba8;border:1px solid #f38ba8}.template-toast-close{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:2px;display:flex}.template-toast-close:hover{opacity:1}.editor-area{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.editor-header{background:var(--bg-secondary);border-bottom:1px solid var(--bg-secondary);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px 10px;padding:6px 12px;display:flex}.editor-header-filename{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.editor-autosave-status.saving{color:var(--accent)}.editor-autosave-status.saved{color:var(--green)}.editor-autosave-status.error{color:#f38ba8}.editor-header-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:4px 8px;display:inline-flex}.editor-header-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.editor-zoom-controls{align-items:center;gap:2px;display:inline-flex}.editor-zoom-label{color:var(--text-secondary);text-align:center;min-width:32px;font-size:11px}.editor-header-btn-active{background:var(--bg-hover);color:var(--accent);border-color:var(--accent)}.table-builder{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-start;gap:16px;padding:10px 14px;display:flex}.table-builder-left{flex-direction:column;align-items:center;gap:6px;display:flex}.table-grid-label{color:var(--text-muted);text-align:center;min-width:60px;font-size:12px;font-weight:500}.table-grid{flex-direction:column;gap:2px;display:flex}.table-grid-row{gap:2px;display:flex}.table-grid-cell{border:1px solid var(--border);cursor:pointer;border-radius:2px;width:14px;height:14px;transition:background 50ms,border-color 50ms}.table-grid-cell:hover{border-color:var(--accent)}.table-grid-cell.active{background:var(--accent);border-color:var(--accent);opacity:.7}.table-grid-cell.locked{background:var(--accent);border-color:var(--accent);opacity:.4;cursor:not-allowed}.table-builder-opts{flex-direction:column;flex:1;gap:6px;min-width:200px;display:flex}.table-opt-row{align-items:center;gap:8px;display:flex}.table-opt-label{color:var(--text-muted);flex-shrink:0;width:90px;font-size:11px}.table-opt-select{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-primary);color:var(--text);cursor:pointer;max-width:110px;padding:2px 6px;font-size:11px}.table-opt-btn{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;background:0 0;padding:2px 8px;font-size:11px;transition:all .1s}.table-opt-btn:hover{border-color:var(--accent);color:var(--text)}.table-opt-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.table-opts-columns{gap:14px;display:flex}.table-opts-left{flex-direction:column;gap:6px;min-width:0;display:flex}.table-opts-right{border-left:1px solid var(--border);flex-direction:column;gap:6px;padding-left:12px;display:flex}.table-opts-right .table-opt-toggle{justify-content:space-between;min-width:110px}.table-opt-toggle{cursor:pointer;align-items:center;gap:6px;display:flex}.table-opt-toggle.disabled{opacity:.35;cursor:not-allowed}.table-opt-toggle.disabled .table-toggle{pointer-events:none}.table-opt-toggle-label{color:var(--text-muted);white-space:nowrap;font-size:11px}.table-toggle{background:var(--border);cursor:pointer;border:none;border-radius:8px;flex-shrink:0;width:28px;height:16px;padding:0;transition:background .15s;position:relative}.table-toggle.on{background:var(--accent)}.table-toggle-knob{background:#fff;border-radius:50%;width:12px;height:12px;transition:left .15s;position:absolute;top:2px;left:2px}.table-toggle.on .table-toggle-knob{left:14px}.table-opt-caption-group{border-top:1px solid var(--border);flex-direction:column;gap:5px;margin-top:2px;padding-top:6px;display:flex}.table-opt-input{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-primary);color:var(--text);flex:1;padding:2px 8px;font-size:11px}.caption-pos-grid{flex-wrap:nowrap;gap:3px;display:flex}.caption-pos-grid .table-opt-btn.active{border-color:var(--accent);color:var(--text);background:0 0}.caption-pos-grid .table-opt-btn:disabled{opacity:.3;cursor:not-allowed}.table-pkg-notice{color:var(--text-muted);flex-direction:column;gap:2px;margin-top:4px;font-size:10px;display:flex}.table-pkg-notice code{color:var(--accent);font-size:10px}.pkg-warn{color:#e6a700;vertical-align:middle;cursor:help;margin-right:4px;font-size:13px}.pkg-warn-btn{font:inherit;cursor:pointer;color:#e6a700;vertical-align:middle;background:0 0;border:none;margin-right:4px;padding:0;font-size:13px;line-height:1}.pkg-warn-btn:hover{color:#b27d00;text-shadow:0 0 .5px}.pkg-ok{color:#2ea043;vertical-align:middle;cursor:help;margin-right:4px;font-size:13px}.table-builder-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:6px;margin-top:6px;padding-top:6px;display:flex}.table-builder-insert{border-radius:var(--radius-pill);background:var(--accent);color:#fff;cursor:pointer;border:none;padding:4px 16px;font-size:12px;font-weight:500;transition:opacity .1s}.table-builder-insert:hover:not(:disabled){opacity:.85}.table-builder-insert:disabled{opacity:.4;cursor:default}.table-builder-cancel{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;background:0 0;padding:3px 12px;font-size:11px}.table-builder-cancel:hover{border-color:var(--text-muted);color:var(--text)}.table-builder-delete{border-radius:var(--radius-pill);color:#c44;cursor:pointer;background:0 0;border:1px solid #c44;margin-right:auto;padding:3px 12px;font-size:11px}.table-builder-delete:hover{color:#fff;background:#c44}.table-delete-confirm{align-items:center;gap:6px;margin-right:auto;display:flex}.table-delete-confirm-label{color:#c44;font-size:11px}.table-delete-confirm-yes,.table-delete-confirm-no{border-radius:var(--radius-pill);cursor:pointer;border:1px solid var(--border);padding:2px 10px;font-size:11px}.table-delete-confirm-yes{color:#fff;background:#c44;border-color:#c44}.table-delete-confirm-yes:hover{background:#b33}.table-delete-confirm-no{color:var(--text-muted);background:0 0}.table-delete-confirm-no:hover{border-color:var(--text-muted);color:var(--text)}.figure-builder{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-start;gap:16px;padding:10px 14px;display:flex}.figure-builder .figure-builder-opts{flex-direction:column;flex:1;gap:6px;display:flex}.figure-file-select{min-width:160px;max-width:260px}.figure-path-input{flex:1}.table-cell-layout{border-top:1px solid var(--border);width:100%;margin-top:6px;padding-top:8px}.table-cell-layout-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.table-cell-layout-title{color:var(--text-muted);font-size:11px;font-weight:500}.table-col-headers{gap:2px;margin-bottom:2px;display:grid}.table-col-header{flex-direction:column;align-items:center;gap:2px;display:flex}.table-col-align-btns{gap:1px;display:flex}.table-col-align-btn{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-muted);cursor:pointer;border-radius:2px;padding:1px 4px;font-size:9px;line-height:1.2}.table-col-align-btn:hover{border-color:var(--text-muted)}.table-col-align-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.table-col-header .table-col-width-input{background:var(--bg-primary);width:100%;max-width:80px;color:var(--text-primary);border:1px solid var(--border);text-align:center;border-radius:2px;padding:1px 3px;font-size:9px}.table-cell-preview{background:color-mix(in srgb, var(--text-muted) 35%, var(--bg-surface));border:1px solid var(--border);border-radius:4px;gap:1px;max-height:200px;padding:1px;display:grid;overflow:auto}.table-cell-preview-cell{background:var(--bg-primary);font-size:9px;font-family:var(--font-mono,monospace);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:30px;min-height:20px;padding:2px 4px;position:relative;overflow:hidden}.table-cell-preview-cell.header{background:color-mix(in srgb, var(--border) 30%, var(--bg-primary));font-weight:600}.table-cell-preview-cell.selected{background:color-mix(in srgb, var(--accent) 20%, var(--bg-primary));outline:2px solid var(--accent);outline-offset:-2px}.table-cell-preview-cell.merged{background:color-mix(in srgb, var(--accent) 10%, var(--bg-primary));border:1px dashed var(--accent);white-space:normal;word-break:break-word}.table-cell-merge-badge{color:var(--accent);font-size:7px;font-weight:600;position:absolute;top:1px;right:2px}.table-merge-btn{border:1px solid var(--accent);border-radius:var(--radius-pill);color:var(--accent);cursor:pointer;background:0 0;padding:1px 8px;font-size:10px}.table-merge-btn:hover{background:var(--accent);color:#fff}.table-cline-trim-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);color:var(--text-primary);padding:1px 4px;font-size:10px}.table-vlines-icons{gap:4px;display:flex}.table-vline-icon{background:var(--bg-primary);border:1px solid var(--border);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;padding:2px 3px;transition:border-color .1s,background .1s;display:flex}.table-vline-icon:hover{border-color:var(--accent)}.table-vline-icon.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, var(--bg-primary))}.table-vlines-icons.disabled,.table-vline-icon:disabled{opacity:.35;pointer-events:none}.table-vlines-icons.disabled .table-vline-icon.active{border-color:var(--border);background:var(--bg-primary)}.table-vlines-sep{background:var(--border);width:1px;height:16px;margin:0 2px}.symbol-picker-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.symbol-picker{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:520px;max-height:80vh;display:flex;box-shadow:0 8px 32px #0006}.symbol-picker-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.symbol-picker-title{color:var(--text-primary);font-size:14px;font-weight:600}.symbol-picker-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px;line-height:1}.symbol-picker-close:hover{color:var(--text-primary)}.symbol-picker-filter{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);border-radius:4px;outline:none;margin:8px 14px;padding:6px 10px;font-size:13px}.symbol-picker-filter:focus{border-color:var(--accent)}.symbol-picker-body{flex:1;padding:4px 14px 10px;overflow-y:auto}.symbol-picker-category{margin-bottom:10px}.symbol-picker-cat-name{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:11px;font-weight:600}.symbol-picker-grid{grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:2px;display:grid}.symbol-picker-cell{background:var(--bg-secondary);width:36px;height:36px;color:var(--text-primary);cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;font-size:18px;transition:background .1s,border-color .1s;display:flex}.symbol-picker-cell:hover{background:color-mix(in srgb, var(--accent) 20%, var(--bg-secondary));border-color:var(--accent)}.symbol-picker-cell.selected{background:color-mix(in srgb, var(--accent) 30%, var(--bg-secondary));border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.symbol-picker-cell.has-pkg:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:2px;right:2px}.symbol-picker-cell{position:relative}.symbol-picker-empty{color:var(--text-secondary);text-align:center;padding:20px;font-size:13px}.symbol-picker-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.symbol-picker-selected-cmd{color:var(--accent);min-height:16px;font-family:monospace;font-size:12px}.symbol-picker-insert-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:5px 16px;font-size:13px}.symbol-picker-insert-btn:disabled{opacity:.4;cursor:not-allowed}.symbol-picker-insert-btn:not(:disabled):hover{filter:brightness(1.1)}.symbol-picker-pkg{color:var(--text-secondary);margin-left:8px;font-size:11px}.editor-inverted{filter:invert();background:#000}.editor-header-tc-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;background:0 0;align-items:center;padding:3px 10px;font-size:12px;transition:all .15s;display:inline-flex}.editor-header-tc-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.editor-header-tc-active{color:#82b1ff;background:#64b4ff33;border-color:#82b1ff}.editor-header-autosave-active{color:var(--green);border-color:var(--green);background:#a6e3a126}.editor-container .cm-editor{height:100%}.cm-tooltip-autocomplete{background:var(--bg-surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;box-shadow:0 4px 12px #0000004d!important}.cm-tooltip-autocomplete ul li{color:var(--text-primary)!important;padding:4px 10px!important}.cm-tooltip-autocomplete ul li[aria-selected]{background:var(--accent)!important;color:var(--bg-primary)!important}.cm-tooltip-autocomplete .cm-completionDetail{margin-left:8px;font-style:italic;color:var(--text-muted)!important}.cm-tooltip-autocomplete ul li[aria-selected] .cm-completionDetail{color:var(--bg-secondary)!important}.editor-container.hide-line-numbers .cm-lineNumbers{display:none}.editor-placeholder{color:var(--text-muted);flex:1;justify-content:center;align-items:center;display:flex}.pdf-viewer{background:var(--bg-panel-solid);flex-direction:column;flex:1;min-width:250px;display:flex;overflow:hidden}.pdf-viewer-header{border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px 10px;padding:6px 12px;display:flex}.compile-btn-group{align-items:stretch;display:flex;position:relative}.pdf-compile-btn{background:var(--green);color:var(--bg-primary);border-radius:var(--radius-pill) 0 0 var(--radius-pill);cursor:pointer;border:none;padding:5px 14px;font-size:13px;font-weight:600}.pdf-compile-btn:hover{background:var(--accent-hover)}.pdf-compile-btn:disabled{opacity:.7;cursor:not-allowed}.compile-spinner{vertical-align:-2px;margin-right:4px;animation:.8s linear infinite spin}.zip-import-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:4px auto 12px;animation:.9s linear infinite spin}.project-loading-overlay{z-index:9000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.project-loading-card{background:var(--bg-surface);border:1px solid var(--border);text-align:center;border-radius:10px;min-width:220px;padding:24px 32px;box-shadow:0 12px 32px #00000040}.project-loading-title{color:var(--text-primary);font-size:14px;font-weight:600}.project-loading-subtitle{color:var(--text-secondary);word-break:break-all;margin-top:4px;font-size:12px}.compile-menu-toggle{background:var(--green);color:var(--bg-primary);border-radius:0 var(--radius-pill) var(--radius-pill) 0;cursor:pointer;border:none;border-left:1px solid #0003;align-items:center;padding:0 7px;display:flex}.compile-menu-toggle:hover{background:var(--accent-hover)}.compile-dropdown-menu{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);z-index:100;min-width:max(100%,210px);padding:4px 0;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 4px 12px #0000004d}.compile-dropdown-menu button{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:flex}.compile-dropdown-menu button:hover{background:var(--bg-hover)}.compile-dropdown-separator{background:var(--border);height:1px;margin:4px 0}.pdf-stop-btn{background:var(--yellow,#f9e2af);color:#1e1e2e;border-radius:var(--radius-pill);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.pdf-stop-btn:hover{opacity:.85}.sync-arrows-wrapper{z-index:20;width:0;position:relative}.sync-arrows{flex-direction:column;gap:6px;display:flex;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.sync-btn{border:2px solid var(--border);background:var(--bg-secondary);width:32px;height:32px;color:var(--text-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:16px;transition:background .15s,border-color .15s;display:flex;box-shadow:0 2px 6px #0006}.sync-btn:hover:not(:disabled){background:var(--accent);color:var(--bg-primary);border-color:var(--accent);box-shadow:0 2px 8px #00000080}.sync-btn:disabled{opacity:.4;cursor:not-allowed}.pdf-header-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:4px;padding:4px 12px;font-size:12px;line-height:1;display:inline-flex}.pdf-header-btn:hover,.pdf-header-btn.active{background:var(--bg-hover);color:var(--text-primary)}.pdf-header-btn.console-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.pdf-header-btn.has-errors{color:var(--red);border-color:var(--red)}.pdf-header-btn.has-warnings{color:var(--yellow);border-color:var(--yellow)}.pdf-header-diag{align-items:center;gap:4px;display:inline-flex}.pdf-header-diag-count{font-variant-numeric:tabular-nums}.pdf-download-btn{justify-content:center;align-items:center;padding:4px 8px;text-decoration:none;display:inline-flex}.pdf-page-nav{align-items:center;gap:4px;display:flex}.pdf-page-indicator{color:var(--text-secondary);text-align:center;white-space:nowrap;min-width:40px;font-size:11px}.pdf-zoom-controls{align-items:center;gap:4px;margin-left:auto;display:flex}.pdf-zoom-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:4px 8px;font-size:12px;display:inline-flex}.pdf-zoom-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.pdf-zoom-btn:disabled{opacity:.3;cursor:default}.pdf-zoom-level{color:var(--text-secondary);text-align:center;min-width:36px;font-size:11px}.pdf-log-panel{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;max-height:240px;padding:8px;font-size:12px;display:flex;overflow-y:auto}.pdf-log-hidden-notice{background:var(--bg-hover);color:var(--text-secondary);border-radius:4px;padding:6px 10px;font-size:12px}.pdf-log-hidden-notice.clickable{cursor:pointer}.pdf-log-hidden-notice.clickable:hover{background:var(--bg-surface);color:var(--accent)}.pdf-log-panel.empty{color:var(--text-muted);text-align:center;padding:12px;font-family:inherit}.pdf-console-panel{border-bottom:1px solid var(--border);background:var(--bg-console);max-height:200px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px;line-height:1.5;overflow-y:auto}.pdf-console-output{color:var(--text-console);white-space:pre-wrap;word-break:break-all;margin:0;padding:8px 12px}.pdf-console-empty{color:#666;text-align:center;padding:12px}.pdf-console-spinner{color:var(--accent);padding:4px 12px 8px;animation:1s infinite console-blink}.pdf-console-profile{border-bottom:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);padding:8px 12px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px}.pdf-console-profile-header{color:var(--text-secondary);margin-bottom:6px}.pdf-console-profile-header strong{color:var(--text-primary)}.pdf-console-profile-list{gap:3px;margin:0;padding:0;list-style:none;display:grid}.pdf-console-profile-list li{grid-template-columns:80px 32px 1fr 56px 38px;align-items:center;gap:6px;display:grid}.pdf-console-profile-tool{color:var(--text-primary)}.pdf-console-profile-count{color:var(--text-secondary);text-align:right;font-size:10px}.pdf-console-profile-bar{background:var(--bg-tertiary,var(--bg-secondary));border-radius:3px;height:6px;position:relative;overflow:hidden}.pdf-console-profile-bar>span{background:var(--accent);border-radius:3px;height:100%;display:block}.pdf-console-profile-ms{text-align:right;color:var(--text-primary)}.pdf-console-profile-pct{text-align:right;color:var(--text-secondary)}.pdf-console-rebuild{border-bottom:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);padding:8px 12px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px}.pdf-console-rebuild-header{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:6px;display:flex}.pdf-console-rebuild-cached-badge{background:var(--accent);color:var(--bg-primary);letter-spacing:.3px;border-radius:10px;padding:1px 8px;font-size:10px;font-weight:600;display:inline-block}.pdf-console-rebuild-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.pdf-console-rebuild-list li{grid-template-columns:16px 1fr;align-items:center;gap:6px;display:grid}.pdf-console-rebuild-mark{text-align:center;font-weight:600}.pdf-console-rebuild-mark.mark-modified{color:var(--accent)}.pdf-console-rebuild-mark.mark-added{color:var(--green,#2da44e)}.pdf-console-rebuild-mark.mark-removed{color:var(--red,#cf222e)}.pdf-console-rebuild-path{color:var(--text-primary);word-break:break-all}.pdf-console-rebuild-overflow{color:var(--text-secondary);padding-left:22px;font-style:italic;display:block}.pdf-console-rebuild-rerun{color:var(--text-secondary);margin-top:6px}@keyframes console-blink{0%,to{opacity:1}50%{opacity:.3}}.pdf-log-item{word-break:break-word;border-left:3px solid #0000;border-radius:6px;padding:8px 10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:12px;line-height:1.4}.pdf-log-item .pdf-log-message{color:var(--text-secondary);margin-top:4px;font-family:SF Mono,Fira Code,monospace;font-size:11px;line-height:1.5;display:block}.pdf-log-item.clickable{cursor:pointer}.pdf-log-item.clickable:hover{filter:brightness(1.2)}.pdf-log-line{color:var(--text-secondary);background:#ffffff14;border-radius:3px;margin-right:6px;padding:1px 5px;font-family:SF Mono,Fira Code,monospace;font-size:10px;display:inline-block}.pdf-log-item.error{color:#ffa198;background:#f8514914;border-left-color:#f85149}.pdf-log-item.warning{color:#e3b341;background:#d2992214;border-left-color:#d29922}.pdf-log-item.warning.taps{color:#5b9bd5;background:#2065ac14;border-left-color:#2065ac}.pdf-log-item.system-error{color:#8b949e;opacity:.7;background:#8b949e0f;border-left-color:#484f58;font-size:11px}.pdf-log-item-row{flex-wrap:wrap;align-items:baseline;gap:4px 6px;display:flex}.pdf-log-help-btn{cursor:pointer;width:20px;height:20px;color:var(--text-secondary);opacity:.5;background:0 0;border:1px solid #ffffff1a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0;transition:opacity .15s,border-color .15s;display:inline-flex}.pdf-log-help-btn:hover{opacity:1;border-color:var(--accent);color:var(--accent)}.pdf-log-fix-btn{border:1px solid var(--accent);cursor:pointer;color:var(--accent);background:0 0;border-radius:10px;flex-shrink:0;align-items:center;gap:4px;margin-left:auto;padding:1px 7px 1px 5px;font-size:11px;line-height:16px;transition:background .15s,color .15s;display:inline-flex}.pdf-log-fix-btn:hover{background:var(--accent);color:var(--bg-primary)}.pdf-log-fix-btn-label{font-weight:500}.pdf-log-fix-btn+.pdf-log-help-btn{margin-left:4px}.pdf-log-ai-btn{border:1px dashed var(--text-secondary);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:10px;flex-shrink:0;align-items:center;gap:4px;margin-left:auto;padding:1px 7px 1px 5px;font-size:11px;line-height:16px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.pdf-log-ai-btn:hover{border-color:var(--accent);color:var(--accent);border-style:solid}.pdf-log-ai-btn-label{font-weight:500}.latex-explain-floater{z-index:90;pointer-events:auto;width:min(520px,45vw);max-height:calc(100vh - 120px);position:fixed;top:80px;right:24px}.latex-explain-floater-inner{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;max-height:calc(100vh - 120px);display:flex;overflow:hidden;box-shadow:0 10px 32px #00000059,0 2px 6px #0003}.latex-explain-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 12px 8px 14px;display:flex}.latex-explain-header h2{color:var(--text-primary);margin:0;font-size:14px;font-weight:600}.latex-explain-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background .12s,color .12s;display:inline-flex}.latex-explain-close:hover{color:var(--text-primary);background:var(--bg-primary)}.latex-explain-body{padding:12px 14px 14px;overflow-y:auto}.latex-explain-context{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;margin-bottom:12px;padding:10px 12px}.latex-explain-error,.latex-explain-location{font-size:13px;line-height:1.5}.latex-explain-error code{background:#00000026;border-radius:3px;padding:1px 5px}.latex-explain-output{margin-top:4px}.latex-explain-text{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:6px;min-height:80px;max-height:50vh;margin:0;padding:12px 14px;font-family:inherit;font-size:14px;line-height:1.55;overflow:auto}.latex-explain-streaming-tag{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;margin-top:6px;font-size:11px}.latex-explain-status{color:var(--text-secondary);padding:12px;font-size:13px}.latex-explain-status-error{color:var(--text-primary)}.latex-explain-status p{margin:0 0 8px}.pdf-log-cascade-toggle{padding:2px 12px 6px;font-size:11px}.pdf-log-cascade-btn{color:var(--text-secondary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:2px 4px;font-size:11px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.pdf-log-cascade-btn:hover{color:var(--accent)}.pdf-log-followon{opacity:.8;padding-left:24px}.pdf-log-item.stale{opacity:.5;filter:saturate(.7)}.pdf-log-item.stale .pdf-log-message{-webkit-text-decoration:line-through dotted;text-decoration:line-through dotted;-webkit-text-decoration-color:var(--text-secondary);text-decoration-color:var(--text-secondary);text-underline-offset:3px}.cm-fix-glow{background-color:#6ec8822e;border-radius:2px;animation:1.2s ease-out 2 cm-fix-glow-pulse;box-shadow:inset 0 0 0 1px #6ec88266}@keyframes cm-fix-glow-pulse{0%{background-color:#6ec88266}to{background-color:#6ec8822e}}.cm-fix-ack-gutter{background:0 0;width:18px}.cm-fix-ack-marker{color:#6ec882f2;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:13px;font-weight:700;line-height:18px;display:inline-flex}.cm-fix-ack-marker:hover{color:#6ec882;background-color:#6ec88226;border-radius:3px}.pdf-log-copy-btn{cursor:pointer;width:20px;height:20px;color:var(--text-secondary);opacity:.5;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0;transition:opacity .15s,color .15s;display:inline-flex}.pdf-log-help-btn+.pdf-log-copy-btn{margin-left:4px}.pdf-log-copy-btn:hover{opacity:1;color:var(--accent)}.pdf-log-search-btn{cursor:pointer;width:20px;height:20px;color:var(--text-secondary);opacity:.5;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:4px;padding:0;transition:opacity .15s,color .15s;display:inline-flex}.pdf-log-search-btn:hover{opacity:1;color:var(--accent)}.pdf-help-panel{border-bottom:1px solid var(--border);max-height:300px;font-size:13px;overflow-y:auto}.pdf-help-header{border-bottom:1px solid var(--border);background:var(--bg-primary);z-index:1;padding:8px 12px;position:sticky;top:0}.pdf-help-back{color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:2px 0;font-size:13px;display:flex}.pdf-help-back:hover{text-decoration:underline}.pdf-help-content{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.pdf-help-title{color:var(--text-primary);font-size:15px;font-weight:600}.pdf-help-message{color:#ffa198;border-radius:var(--radius);word-break:break-word;background:#f8514914;border-left:3px solid #f85149;padding:8px 10px;font-family:SF Mono,Fira Code,monospace;font-size:12px}.pdf-help-suggestion{color:var(--text-secondary);line-height:1.5}.pdf-help-section{flex-direction:column;gap:6px;display:flex}.pdf-help-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.pdf-help-tips{color:var(--text-secondary);margin:0;padding-left:20px;font-size:13px;line-height:1.6}.pdf-help-tips li{margin-bottom:2px}.pdf-help-example{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);white-space:pre-wrap;background:#ffffff08;margin:0;padding:10px 12px;font-family:SF Mono,Fira Code,monospace;font-size:12px;line-height:1.5;overflow-x:auto}.pdf-help-links{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.pdf-help-link{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);align-items:center;gap:6px;padding:6px 14px;font-size:12px;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.pdf-help-link:hover{border-color:var(--accent);color:var(--accent)}.pdf-placeholder,.pdf-error{color:var(--text-secondary);flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.pdf-no-main-file-banner,.pdf-recompile-banner{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);margin:16px;padding:16px 20px;font-size:13px;line-height:1.5}.pdf-recompile-banner{border-color:var(--yellow);color:var(--yellow)}.pdf-no-main-file-banner code,.pdf-recompile-banner code{background:var(--bg-hover);border-radius:3px;padding:1px 5px;font-size:12px}.pdf-error{color:var(--red)}.pdf-container{touch-action:pan-x pan-y;flex-direction:column;flex:1;align-items:center;gap:16px;padding:16px;display:flex;overflow-y:auto}.pdf-inverted .pdf-page-wrapper{filter:invert();box-shadow:none}.pdf-zoom-btn.active{background:var(--accent);color:#fff}.pdf-tc-btn{margin-left:6px}.pdf-tc-btn-icon{line-height:0;display:inline-flex;position:relative}.pdf-tc-btn-loupe{background:var(--bg-surface);color:var(--accent);pointer-events:none;border-radius:50%;padding:1px;position:absolute;bottom:-2px;right:-3px}.pdf-page-wrapper{border-radius:2px;flex-shrink:0;box-shadow:0 2px 8px #0000004d}.pdf-page{display:block}.comments-sidebar{background:var(--bg-panel-solid);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.comments-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);background:var(--bg-primary);align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.comments-title{flex:1}.comments-count{background:var(--bg-surface);color:var(--text-secondary);letter-spacing:0;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:400}.comments-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.comments-close-btn:hover{color:var(--text)}.comments-toggle-btn{background:var(--bg-surface);border:none;border-left:1px solid var(--border);color:var(--text-muted);cursor:pointer;align-self:stretch;align-items:flex-start;padding:8px 6px;display:flex}.comments-toggle-btn:hover{color:var(--text);background:var(--bg-hover)}.comments-rail{flex-direction:column;flex-shrink:0;align-items:center;width:18px;padding:0;position:relative;overflow:visible}.comments-rail-header{z-index:2;background:var(--bg-primary);flex-direction:column;align-items:center;width:100%;padding-top:8px;display:flex;position:relative}.comments-rail-icon{margin:0 auto;position:relative}.comments-rail-marker{z-index:0;color:var(--accent,#6aa6e2);pointer-events:none;transition:transform 80ms ease-out;position:absolute;left:3px}.comments-rail:hover .comments-rail-marker{transform:scale(1.18)}.editor-readonly-banner{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 14px;font-size:13px;line-height:1.5;display:flex}.editor-readonly-banner-commenter{color:var(--text-primary);background:#6aa6e21f}.editor-readonly-banner-viewer{background:var(--bg-surface);color:var(--text-muted)}.editor-readonly-banner strong{font-weight:600}.comments-rail-icon-wrap{line-height:0;display:inline-block;position:relative}.comments-badge{background:var(--accent);color:#fff;text-align:center;box-sizing:border-box;border-radius:10px;min-width:16px;padding:2px 5px;font-size:10px;font-weight:600;line-height:1;position:absolute;top:-4px;right:-8px}.comments-empty{color:var(--text-muted);text-align:center;padding:20px 12px;font-size:13px}.comment-form{border-bottom:1px solid var(--border);background:var(--bg-secondary);z-index:2;box-sizing:border-box;padding:12px}.comment-form textarea{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);resize:vertical;padding:8px;font-family:inherit;font-size:13px}.comment-form textarea:focus{border-color:var(--accent);outline:none}.comment-form-actions{gap:8px;margin-top:8px;display:flex}.comment-form-actions button{border-radius:var(--radius-pill);cursor:pointer;border:none;flex:1;padding:6px;font-size:13px;font-weight:600}.comment-form-actions button[type=submit]{background:var(--accent);color:var(--bg-primary)}.comment-form-actions button[type=submit]:disabled{opacity:.4;cursor:not-allowed}.comment-cancel-btn{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border)!important}.comment-cancel-btn:hover{background:var(--bg-hover)}.comments-body{flex:1;position:relative;overflow:hidden auto}.comments-list{flex-direction:column;gap:8px;padding:8px;display:flex}.comments-list.positioned{min-height:100%;position:relative}.comment-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;margin-bottom:8px;padding:8px 64px 8px 12px;position:relative}.comment-item.resolved{opacity:.5}.comment-top-actions{align-items:center;gap:4px;display:flex;position:absolute;top:8px;right:8px}.comment-assignment+.comment-top-actions{top:34px}.comment-resolve-btn{border:1px solid var(--border);width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:flex}.comment-resolve-btn:hover{border-color:var(--green);color:var(--green);background:#a6e3a11a}.comment-menu-wrapper{position:relative}.comment-menu-btn{border:1px solid var(--border);width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:flex}.comment-menu-btn:hover{border-color:var(--text-muted);color:var(--text-primary);background:var(--bg-hover)}.comment-menu-dropdown{background:var(--bg-surface);border:1px solid var(--border);z-index:10;border-radius:6px;min-width:100px;margin-top:4px;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 4px 12px #00000026}.comment-menu-dropdown button{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;padding:6px 12px;font-size:12px;display:block}.comment-menu-dropdown button:hover{background:var(--bg-hover)}.comment-menu-delete{color:var(--red)!important}.comment-edit-form textarea{background:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius);width:100%;color:var(--text-primary);resize:none;padding:6px;font-family:inherit;font-size:12px}.comment-edit-form textarea:focus{outline:none}.comment-edit-actions{justify-content:flex-end;gap:6px;margin-top:4px;display:flex}.comment-edit-actions button{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;background:0 0;padding:2px 8px;font-size:11px}.comment-edit-actions button:hover{border-color:var(--text-muted);color:var(--text-primary)}.comment-edit-save{background:var(--accent)!important;color:var(--bg-primary)!important;border-color:var(--accent)!important}.comment-author{color:var(--accent);align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.comment-date{color:var(--text-muted);vertical-align:middle;margin-left:8px;font-size:11px;display:inline-block}.comment-text{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;font-size:13px;line-height:1.4}.comment-replies{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:8px;padding-top:6px;display:flex}.comment-reply{border-left:2px solid var(--border);padding-left:8px}.comment-reply-author{color:var(--accent);align-items:center;gap:5px;margin-right:6px;font-size:11px;font-weight:600;display:flex}.comment-reply-date{color:var(--text-muted);font-size:10px}.comment-reply-text{color:var(--text-primary);font-size:12px;line-height:1.3}.comment-reply-area{border-top:1px solid var(--border);margin-top:8px;padding-top:6px}.comment-reply-area textarea{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);resize:none;padding:6px;font-family:inherit;font-size:12px;overflow:hidden}.comment-reply-area textarea:focus{border-color:var(--accent);outline:none}.comment-reply-actions{justify-content:flex-end;gap:6px;margin-top:4px;display:flex}.comment-reply-actions button{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:11px}.comment-reply-actions button:hover{border-color:var(--text-muted);color:var(--text-primary)}.comment-reply-submit{background:var(--accent)!important;color:var(--bg-primary)!important;border-color:var(--accent)!important}.comment-reply-submit:disabled{opacity:.4;cursor:not-allowed}.mention-textarea-wrap{position:relative}.mention-textarea-wrap textarea{width:100%}.mention-autocomplete{background:var(--bg-surface);border:1px solid var(--border);z-index:100;border-radius:6px;max-height:180px;padding:4px 0;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.mention-option{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:flex}.mention-option:hover,.mention-option.selected{background:var(--accent);color:#fff}.mention-option-swatch{border-radius:50%;flex-shrink:0;width:14px;height:14px}.mention-option-role{color:var(--text-muted);margin-left:auto;font-size:10px}.mention-option:hover .mention-option-role,.mention-option.selected .mention-option-role{color:#ffffffb3}.mention-autocomplete-hint{color:var(--text-muted);border-top:1px solid var(--border);-webkit-user-select:none;user-select:none;margin-top:2px;padding:3px 10px 4px;font-size:10px}.mention-highlight{color:var(--accent);font-weight:600}.comment-assign-section{flex-direction:column;gap:2px;padding:4px 0 2px;display:flex}.comment-assign-option{color:var(--text-secondary);cursor:pointer;align-items:center;gap:5px;font-size:11px;display:flex}.comment-assign-option input[type=radio]{accent-color:var(--accent);margin:0}.comment-assignment{color:var(--accent);background:#64b5f61a;border-bottom:1px solid #64b5f633;border-radius:6px 6px 0 0;margin:-10px -64px 8px -12px;padding:6px 12px;font-size:10px;font-weight:600}.comments-resolved-header{color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-surface);align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:flex}.comments-resolved-header:hover{color:var(--text)}.comments-resolved-arrow{font-size:10px}.auth-loading{height:100vh;color:var(--text-secondary);justify-content:center;align-items:center;font-size:18px;display:flex}.auth-page{background:var(--bg-primary);justify-content:center;align-items:center;height:100vh;display:flex}.auth-page.has-marketing{flex-direction:row;justify-content:center;align-items:center;gap:56px;height:auto;min-height:100vh;padding:48px 32px}.auth-marketing{max-width:480px;color:var(--text-primary);flex:480px}.auth-marketing-headline{color:var(--text-primary);margin:0 0 12px;font-size:32px;line-height:1.15}.auth-marketing-lede{color:var(--text-secondary);margin:0 0 24px;font-size:15px;line-height:1.55}.auth-marketing-hero{border:1px solid var(--border);background:var(--bg-surface);border-radius:12px;margin:0 0 28px;overflow:hidden;box-shadow:0 12px 32px #0000002e}.auth-marketing-hero img{width:100%;height:auto;display:block}.auth-marketing-features{gap:16px;margin:0;padding:0;list-style:none;display:grid}.auth-marketing-features li{border-left:2px solid var(--accent);grid-template-columns:1fr;gap:2px;padding-left:16px;display:grid}.auth-marketing-features li strong{color:var(--text-primary);font-size:14px}.auth-marketing-features li span{color:var(--text-secondary);font-size:13px;line-height:1.5}@media (width<=900px){.auth-page.has-marketing{flex-direction:column;gap:32px;padding:32px 16px}.auth-marketing{flex:0 auto;max-width:480px}.auth-marketing-headline{font-size:24px}}.auth-card{background:var(--bg-surface);border:1px solid var(--border);text-align:center;border-radius:12px;width:380px;padding:40px}.auth-title{color:var(--accent);margin-bottom:4px;font-size:28px}.auth-subtitle{color:var(--text-secondary);margin-bottom:24px;font-size:14px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);color:var(--text-primary);outline:none;padding:10px 12px;font-size:14px}.auth-input:focus{border-color:var(--accent)}.auth-button{border-radius:var(--radius-pill);background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;padding:10px;font-size:14px;font-weight:600}.auth-button:hover{background:var(--accent-hover)}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:var(--red);text-align:left;font-size:13px}.auth-success{color:var(--green);text-align:left;font-size:13px}.auth-invite-banner{background:var(--bg-primary);border:1px solid var(--accent);border-left:4px solid var(--accent);color:var(--text-primary);text-align:left;border-radius:6px;margin:0 0 14px;padding:10px 12px;font-size:13px;line-height:1.5}.auth-tip{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);text-align:left;border-radius:6px;margin:-6px 0 4px;padding:8px 10px;font-size:12px;line-height:1.5}.auth-tip code{background:var(--bg-surface);border-radius:3px;padding:0 4px;font-size:11px}.auth-switch{color:var(--text-secondary);margin-top:16px;font-size:13px}.auth-switch button{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:13px}.auth-switch button:hover{text-decoration:underline}.auth-guide-link a{color:var(--accent);font-size:13px;text-decoration:none}.auth-guide-link a:hover{text-decoration:underline}.toolbar-btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;padding:4px 12px;font-size:13px}.toolbar-btn:hover{background:var(--bg-hover)}.toolbar-btn-history:hover{color:#a78bfa;background:#7c3aed26;border-color:#7c3aed4d}.toolbar-btn-share{background:var(--accent);color:var(--bg-primary);border-color:var(--accent);font-weight:600}.toolbar-btn-share:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.toolbar-user-menu,.toolbar-layout-menu{align-items:center;display:flex;position:relative}.toolbar-layout-trigger svg{display:block}.toolbar-layout-dropdown{min-width:200px;left:auto;right:0}.toolbar-user-menu-trigger{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;padding:1px;line-height:0;transition:border-color .12s,box-shadow .12s}.toolbar-user-menu-trigger:hover,.toolbar-user-menu-trigger[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 2px #5b9cf526}.toolbar-user-menu-dropdown{min-width:220px;left:auto;right:0}.toolbar-user-menu-header{border-bottom:1px solid var(--border);margin-bottom:4px;padding:10px 12px 8px}.toolbar-user-menu-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.toolbar-user-menu-email{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.toolbar-btn-active{color:#5b9cf5;background:#5b9cf526;border-color:#5b9cf54d}.toolbar-btn-visual{white-space:nowrap;flex-shrink:0}.vm-toolbar{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:5;flex-shrink:0;align-items:center;gap:2px;padding:4px 12px;font-size:13px;display:flex}.vm-toolbar-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;min-width:120px;padding:3px 8px;font-size:13px}.vm-toolbar-select:hover{border-color:var(--accent)}.vm-toolbar-sep{background:var(--border);width:1px;height:20px;margin:0 6px}.vm-toolbar-btn{border-radius:var(--radius);width:30px;height:28px;color:var(--text-primary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:14px;display:flex}.vm-toolbar-btn:hover{background:var(--bg-hover);border-color:var(--border)}.vm-toolbar-btn-active{color:#5b9cf5;background:#5b9cf526;border-color:#5b9cf54d}.vm-toolbar-color-wrap{display:inline-flex;position:relative}.vm-color-dropdown{z-index:100;background:var(--bg-surface,#fff);border:1px solid var(--border,#ddd);border-radius:6px;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:2px;padding:6px;display:grid;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000026}.vm-color-swatch{cursor:pointer;border:1px solid #00000026;border-radius:3px;width:22px;height:22px;padding:0;transition:transform .1s}.vm-color-swatch:hover{z-index:1;border-color:#0006;transform:scale(1.2)}.vm-color-swatch-active{outline:2px solid var(--accent);outline-offset:1px}.vm-color-none{background:#fff;position:relative;overflow:hidden}.vm-color-none:after{content:"";transform-origin:0 0;background:#e53935;width:141%;height:2px;position:absolute;top:0;left:0;transform:rotate(45deg)}.vm-toolbar-dropdown{display:inline-flex;position:relative}.vm-cite-popover{z-index:100;background:var(--bg-surface,#fff);border:1px solid var(--border,#ddd);border-radius:6px;flex-direction:column;width:360px;max-height:320px;margin-top:2px;display:flex;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 4px 12px #00000026}.vm-cite-search{border:none;border-bottom:1px solid var(--border,#ddd);color:var(--text-primary,#222);background:0 0;outline:none;padding:6px 10px;font-size:13px}.vm-cite-list{flex:1;max-height:270px;overflow-y:auto}.vm-cite-item{text-align:left;border:none;border-bottom:1px solid var(--border-light,#f0f0f0);cursor:pointer;width:100%;font:inherit;color:var(--text-primary,#222);background:0 0;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 10px;display:flex}.vm-cite-item-active{background:var(--bg-hover,#eef4ff)}.vm-cite-key{color:var(--accent,#1a73e8);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.vm-cite-detail{color:var(--text-secondary,#666);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.vm-cite-empty{color:var(--text-secondary,#888);text-align:center;padding:12px;font-size:12px}.cite-context-menu{background:var(--bg-surface,#fff);border:1px solid var(--border,#ddd);min-width:240px;font:inherit;border-radius:6px;padding:4px 0;box-shadow:0 4px 12px #00000026}.cite-context-header{border-bottom:1px solid var(--border-light,#eee);align-items:baseline;gap:8px;padding:6px 12px;display:flex}.cite-context-cmd{color:var(--text-secondary,#777);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.cite-context-key{color:var(--accent,#1a73e8);white-space:nowrap;text-overflow:ellipsis;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;overflow:hidden}.cite-context-item{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--text-primary,#222);background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 12px;display:flex}.cite-context-item:hover{background:var(--bg-hover,#eef4ff)}.cite-context-item-current{background:var(--bg-active,#f5f7fb)}.cite-context-item-label{font-size:13px}.cite-context-item-hint{color:var(--text-secondary,#888);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px}.cm-vm-ref-tooltip{color:#222;z-index:1000;background:#fff;border:1px solid #d0d7de;border-radius:6px;max-width:420px;padding:6px 10px;font-family:Helvetica Neue,Arial,sans-serif;font-size:12px;box-shadow:0 4px 14px #0000001f}.cm-tooltip.cm-vm-ref-tooltip{background:#fff!important;border:1px solid #d0d7de!important;border-radius:6px!important;padding:6px 10px!important;box-shadow:0 4px 14px #0000001f!important}.cm-vm-ref-tooltip-row+.cm-vm-ref-tooltip-row{border-top:1px solid #eee;margin-top:6px;padding-top:6px}.cm-vm-ref-tooltip-head{align-items:baseline;gap:6px;margin-bottom:2px;display:flex}.cm-vm-ref-tooltip-cmd{color:#777;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.cm-vm-ref-tooltip-key{color:#1967d2;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.cm-vm-ref-tooltip-body{color:#222;flex-direction:column;gap:2px;font-size:12px;display:flex}.cm-vm-ref-tooltip-kind{text-transform:capitalize;color:#444;font-weight:600}.cm-vm-ref-tooltip-title{color:#222;font-weight:600}.cm-vm-ref-tooltip-authors{color:#444}.cm-vm-ref-tooltip-venue{color:#555;font-style:italic}.cm-vm-ref-tooltip-missing{color:#b00020;font-style:italic}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;width:420px;max-height:80vh;padding:24px;overflow-y:auto}.project-settings-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:620px;max-height:80vh;display:flex;overflow:hidden}.project-settings-modal .modal-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.project-settings-modal .modal-header h2{margin:0;font-size:16px}.project-settings-modal .modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px}.project-settings-modal .modal-close:hover{color:var(--text-primary)}.settings-layout{flex:1;min-height:0;display:flex;overflow:hidden}.settings-sidebar{border-right:1px solid var(--border);background:var(--bg-primary);flex-direction:column;flex-shrink:0;gap:2px;width:160px;padding:8px;display:flex}.settings-nav-item{cursor:pointer;color:var(--text-secondary);text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;display:flex}.settings-nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-nav-item.active{background:var(--accent);color:#fff}.settings-nav-icon{opacity:.7;flex-shrink:0;justify-content:center;align-items:center;width:20px;display:flex}.settings-nav-item.active .settings-nav-icon{opacity:1}.settings-nav-label{white-space:nowrap}.settings-content{flex:1;min-height:280px;padding:20px;overflow-y:auto}.settings-content-title{color:var(--text-primary);margin:0 0 16px;font-size:15px;font-weight:600}.project-settings-modal .modal-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.settings-group{margin-bottom:16px}.settings-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.settings-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);width:100%;color:var(--text-primary);box-sizing:border-box;padding:8px 10px;font-size:13px}.settings-input:focus{border-color:var(--accent);outline:none}.settings-input:disabled{opacity:.6;cursor:not-allowed}.settings-toggle-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-toggle-label{color:var(--text-primary);font-size:13px}.settings-toggle{background:var(--border);cursor:pointer;border:none;border-radius:11px;flex-shrink:0;width:40px;height:22px;padding:0;transition:background .2s;position:relative}.settings-toggle.on{background:var(--accent)}.settings-toggle-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px}.settings-toggle.on .settings-toggle-knob{transform:translate(18px)}.settings-hint{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.settings-error{color:var(--red);margin-top:8px;font-size:13px}.modal-btn{border-radius:var(--radius-pill);cursor:pointer;border:1px solid var(--border);text-align:center;min-width:90px;padding:7px 24px;font-size:13px;font-weight:600}.modal-btn-secondary{background:var(--bg-primary);color:var(--text-primary)}.modal-btn-secondary:hover{background:var(--bg-hover)}.modal-btn-primary{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.modal-btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.modal-btn:disabled{opacity:.6;cursor:not-allowed}.shortcuts-modal .modal-header,.about-modal .modal-header{justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.shortcuts-modal .modal-header h2,.about-modal .modal-header h2{color:var(--text-primary);margin:0;font-size:16px}.shortcuts-modal .modal-close,.about-modal .modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:20px}.shortcuts-modal .modal-close:hover,.about-modal .modal-close:hover{color:var(--text-primary)}kbd{color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-family:inherit;font-size:12px;display:inline-block}.shortcuts-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:440px;max-width:90vw}.shortcuts-body{padding:16px 24px 24px}.shortcuts-table{border-collapse:collapse;width:100%}.shortcuts-table td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:8px 4px;font-size:13px}.shortcuts-table tr:last-child td{border-bottom:none}.shortcut-key{white-space:nowrap;text-align:right;color:var(--text-muted);padding-right:16px!important}.shortcut-key kbd{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);text-align:center;border-radius:4px;min-width:20px;padding:2px 6px;font-family:inherit;font-size:11px;display:inline-block}.about-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:340px;max-width:90vw}.about-body{text-align:center;padding:16px 24px 24px}.about-tagline{color:var(--text-primary);margin:0 0 8px;font-size:15px}.about-version{color:var(--text-muted);margin:0;font-size:12px}.about-build{color:var(--text-muted);margin:10px 0 0;font-size:11px}.about-build-label{opacity:.7}.about-actions{justify-content:center;margin-top:20px;display:flex}.about-actions button{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 18px;font-size:13px}.about-build-sha{font-family:var(--font-mono,ui-monospace, SFMono-Regular, monospace);background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);border-radius:3px;padding:0 4px;font-size:10px}.wordcount-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;width:420px;max-height:80vh;overflow-y:auto}.wordcount-modal .modal-header{align-items:center;padding:16px 20px;display:flex}.wordcount-modal .modal-header h2{margin:0;font-size:16px}.wordcount-modal .modal-body{padding:20px}.wordcount-modal .modal-footer{border-top:1px solid var(--border);justify-content:flex-end;padding:12px 20px;display:flex}.wordcount-loading{text-align:center;color:var(--text-secondary);padding:24px 0}.wordcount-table{border-collapse:collapse;width:100%;font-size:13px}.wordcount-table td,.wordcount-table th{padding:5px 8px}.wordcount-label{color:var(--text-secondary)}.wordcount-value,.wordcount-sec-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-primary)}.wordcount-total{border-top:1px solid var(--border);font-weight:600}.wordcount-total .wordcount-label,.wordcount-total .wordcount-value{color:var(--text-primary);padding-top:8px}.wordcount-sections-title{color:var(--text-primary);margin:14px 0 6px;font-size:13px;font-weight:600}.wordcount-sections-scroll{max-height:300px;overflow-y:auto}.wordcount-sections th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);background:var(--bg-surface);font-size:12px;font-weight:500;position:sticky;top:0}.wordcount-sections th.wordcount-sec-num{text-align:right}.wordcount-sec-name{color:var(--text-primary)}.modal-card h2{margin-bottom:16px;font-size:18px}.share-form{gap:8px;margin-bottom:16px;display:flex}.share-form .auth-input{flex:1}.share-form .auth-button{white-space:nowrap;padding:10px 16px}.share-role-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);color:var(--text-primary);padding:8px;font-size:13px}.member-list{margin-bottom:16px;list-style:none}.member-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 0;display:flex}.member-info{flex-direction:column;flex:1;display:flex}.member-name{font-size:14px}.member-email{color:var(--text-muted);font-size:12px}.member-role{color:var(--text-secondary);text-transform:capitalize;font-size:12px}.member-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:18px}.member-remove:hover{color:var(--red)}.share-section-title{color:var(--text-secondary);margin:12px 0 4px;font-size:13px;font-weight:600}.invitation-pending .invitation-status{color:var(--text-muted);font-size:11px;font-style:italic}.invitations-section{margin-bottom:24px}.invitations-title{color:var(--text-primary);margin-bottom:12px;font-size:16px;font-weight:600}.invitations-list{flex-direction:column;gap:8px;display:flex}.invitation-card{background:var(--bg-surface);border:1px solid var(--accent);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:14px 18px;transition:box-shadow .6s,transform .2s;display:flex}.invitation-card-highlight{box-shadow:0 0 0 3px var(--accent);animation:1.6s ease-in-out 2 invitation-card-pulse}@keyframes invitation-card-pulse{0%,to{box-shadow:0 0 #639cff00}50%{box-shadow:0 0 0 6px #639cff73}}.invite-mismatch-banner{background:var(--bg-surface);border-radius:var(--radius);color:var(--text-primary);border:1px solid #b71c1c;border-left-width:4px;margin-bottom:16px;padding:12px 36px 12px 16px;font-size:14px;position:relative}.invite-mismatch-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:20px;line-height:1;position:absolute;top:4px;right:8px}.invite-mismatch-dismiss:hover{color:var(--text-primary)}.invitation-info{flex-direction:column;gap:2px;display:flex}.invitation-project-name{font-size:14px;font-weight:600}.invitation-meta{color:var(--text-muted);font-size:12px}.invitation-actions{gap:8px;display:flex}.invitation-accept-btn{border-radius:var(--radius-pill);background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;padding:6px 16px;font-size:13px;font-weight:600}.invitation-accept-btn:hover{opacity:.9}.invitation-decline-btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;padding:6px 16px;font-size:13px}.invitation-decline-btn:hover{border-color:var(--red);color:var(--red)}.modal-close-btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-primary);width:100%;color:var(--text-primary);cursor:pointer;margin-top:12px;padding:10px;font-size:14px}.modal-close-btn:hover{background:var(--bg-hover)}.confirm-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:90%;max-width:400px;padding:24px;box-shadow:0 8px 32px #0006}.confirm-title{color:var(--text-primary);margin:0 0 12px;font-size:16px}.confirm-message{color:var(--text-secondary);margin:0 0 20px;font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.confirm-cancel-btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;padding:8px 18px;font-size:13px;font-weight:600}.confirm-cancel-btn:hover{background:var(--bg-hover)}.confirm-remove-btn{border-radius:var(--radius-pill);background:var(--red);color:#fff;cursor:pointer;border:none;padding:8px 18px;font-size:13px;font-weight:600}.confirm-remove-btn:hover{opacity:.9}.mfa-description{color:var(--text-secondary);margin-bottom:12px;font-size:13px;line-height:1.5}.mfa-qr{border-radius:var(--radius);width:200px;height:200px;margin:16px auto;display:block}.mfa-secret-details{color:var(--text-muted);margin-bottom:16px;font-size:12px}.mfa-secret-details summary{cursor:pointer;margin-bottom:6px}.mfa-secret-code{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);word-break:break-all;-webkit-user-select:all;user-select:all;padding:8px;font-family:monospace;font-size:12px;display:block}.mfa-success{color:var(--green);text-align:center;margin-bottom:16px;font-size:14px}.mfa-disable-btn{background:var(--red,#e06c75)!important}.mfa-modal .auth-button{margin-bottom:4px}.auth-input-totp{text-align:center;letter-spacing:8px;font-family:monospace;font-size:24px}.auth-trust-label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;margin:-4px 0 4px;font-size:13px;display:flex}.auth-trust-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.settings-modal{width:600px;max-width:90vw}.settings-user-info{color:var(--text-muted);margin:-4px 0 16px;font-size:13px}.settings-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;margin-bottom:16px;display:flex}.settings-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 16px;font-size:13px;transition:color .15s,border-color .15s}.settings-tab:hover{color:var(--text-primary)}.settings-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.settings-section{min-height:200px}.settings-label{color:var(--text-secondary);margin-top:12px;margin-bottom:6px;font-size:13px;display:block}.settings-label:first-child{margin-top:0}.delete-account-warning{border-radius:var(--radius);color:var(--text-secondary);background:#f38ba81a;border:1px solid #f38ba84d;margin-bottom:16px;padding:12px 14px;font-size:13px;line-height:1.5}.delete-account-warning strong{color:#f38ba8;margin-bottom:8px;display:block}.delete-account-warning ul{margin:8px 0 0;padding-left:20px}.delete-account-warning li{margin-bottom:4px}.delete-account-btn{margin-top:8px;background:#e06c75!important}.delete-account-btn:disabled{opacity:.5;cursor:not-allowed}.binary-preview{background:var(--bg-primary);flex-direction:column;align-items:center;height:100%;padding:16px;display:flex;overflow:auto}.binary-preview-label{color:#888;margin-bottom:12px;font-size:12px}.binary-preview-image{object-fit:contain;border-radius:4px;max-width:100%;max-height:calc(100% - 40px)}.binary-preview-pdf-container{background:var(--bg-panel-solid);align-items:stretch}.binary-preview-pdf-pages{flex-direction:column;flex:1;align-items:center;gap:12px;width:100%;padding:16px;display:flex;overflow-y:auto}.binary-preview-pdf-pages .pdf-page-wrapper{background:#fff;border-radius:2px;box-shadow:0 2px 8px #0000004d}.binary-preview-unsupported{color:#666;margin-top:40px;font-style:italic}.confirm-dialog-overlay{z-index:200}.confirm-dialog{width:380px;padding:28px}.confirm-dialog-message{color:var(--text-secondary);text-align:center;margin-bottom:24px;font-size:14px;line-height:1.6}.confirm-dialog-actions{justify-content:flex-end;gap:12px;display:flex}.confirm-dialog-cancel,.confirm-dialog-delete,.confirm-dialog-confirm{border-radius:var(--radius-pill);cursor:pointer;padding:7px 18px;font-size:13px;font-weight:600;transition:background .15s,opacity .15s}.confirm-dialog-confirm{background:var(--accent);color:#fff;border:none}.confirm-dialog-confirm:hover{background:var(--accent-hover)}.confirm-dialog-cancel{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.confirm-dialog-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.confirm-dialog-delete{background:var(--red);color:var(--bg-primary);border:none}.confirm-dialog-delete:hover{opacity:.85}.confirm-dialog-primary{background:var(--accent);color:var(--bg-primary);border:none}.confirm-dialog-primary:hover{opacity:.85}.admin-deleted-users{margin-top:24px}.admin-deleted-users h2{margin:0 0 4px}.admin-deleted-users-hint{color:var(--text-secondary);margin:0 0 12px;font-size:13px}.admin-recovery-countdown{font-variant-numeric:tabular-nums;white-space:nowrap}.admin-recovery-countdown--normal{color:var(--text-primary)}.admin-recovery-countdown--warn{color:var(--warning,#b86e00);font-weight:600}.admin-recovery-countdown--critical{color:var(--danger,#c03333);font-weight:700}.editor-wrapper{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.bib-lint-banner{color:#664d03;background:#fff3cd;border-bottom:1px solid #ffecb5;margin-right:15px;padding:4px 12px;font-size:12px;font-weight:600}.editor-container{flex:1;min-height:0;overflow:hidden}.editor-comment-btn{z-index:10;color:#1e1e1e;cursor:pointer;white-space:nowrap;background:#ffd54f;border:none;border-radius:4px;padding:3px 10px;font-size:12px;font-weight:600;position:absolute;box-shadow:0 2px 6px #0003}.editor-comment-btn:hover{background:#ffca28}.editor-search-panel{border-top:1px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;gap:4px;padding:6px 10px;display:flex}.editor-search-toolbar{justify-content:space-between;align-items:center;display:flex}.editor-search-scope{gap:2px;display:flex}.editor-search-scope-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius);background:0 0;padding:2px 10px;font-size:11px}.editor-search-scope-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.editor-search-scope-btn.active{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.editor-search-row{align-items:center;gap:4px;display:flex}.editor-search-input{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);outline:none;flex:1;padding:5px 8px;font-family:inherit;font-size:13px}.editor-search-input:focus{border-color:var(--accent)}.editor-search-count{color:var(--text-muted);white-space:nowrap;text-align:center;min-width:50px;font-size:11px}.editor-search-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:0 0;padding:3px 8px;font-size:12px}.editor-search-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.editor-search-btn.active{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.editor-search-btn:disabled{opacity:.4;cursor:not-allowed}.editor-search-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.editor-search-close:hover{color:var(--text-primary)}.editor-search-results{border-top:1px solid var(--border);max-height:200px;margin-top:2px;padding-top:2px;overflow-y:auto}.editor-search-result{cursor:pointer;border-radius:var(--radius);align-items:baseline;gap:4px;padding:3px 6px;font-size:12px;line-height:1.5;display:flex}.editor-search-result:hover{background:var(--bg-hover)}.search-result-file{color:var(--accent);white-space:nowrap;flex-shrink:0;font-weight:500}.search-result-line{color:var(--text-muted);white-space:nowrap;flex-shrink:0}.search-result-text{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono,monospace);overflow:hidden}.search-result-highlight{color:var(--text-primary);background:#ffc8324d;border-radius:2px;padding:0 1px}.toolbar-avatar-clickable{cursor:pointer;border-radius:50%;transition:transform .15s}.toolbar-avatar-clickable:hover{transform:scale(1.15)}.pdf-log-tag{background:var(--accent);color:var(--bg-primary);text-transform:uppercase;border-radius:3px;margin-right:6px;padding:1px 5px;font-family:inherit;font-size:10px;font-weight:600;display:inline-block}.pdf-log-file{background:var(--bg-hover);color:var(--text-secondary);border-radius:3px;margin-right:6px;padding:1px 6px;font-size:11px;display:inline-block}.github-import-modal{width:460px}.github-import-repo-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);max-height:200px;overflow:auto}.github-import-repo-item{border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;align-items:center;padding:7px 12px;font-size:13px;display:flex}.github-import-repo-item:last-child{border-bottom:none}.github-import-repo-item:hover{background:var(--bg-hover)}.github-import-repo-item.active{background:var(--accent);color:#fff}.github-sync-modal{width:480px}.github-sync-modal .modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.github-sync-modal .modal-header h2{margin:0}.github-sync-modal .modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:22px}.github-sync-modal .modal-close:hover{color:var(--text)}.github-sync-section{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:16px}.github-sync-section:last-child{border-bottom:none;margin-bottom:0}.github-sync-section h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin:0 0 10px;font-size:13px}.github-sync-status-dot{border-radius:50%;flex-shrink:0;width:10px;min-width:10px;height:10px;display:inline-block}.github-sync-status-dot.green{background:var(--green)}.github-sync-status-dot.red{background:var(--red,#f38ba8)}.editor-autosave-dot.on{background:var(--green)}.editor-autosave-dot.off{background:var(--red,#f38ba8)}.github-sync-hint{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.github-sync-hint code{background:var(--bg-primary);border-radius:3px;padding:1px 5px;font-size:11px}.github-sync-input-row{align-items:center;gap:8px;display:flex}.github-sync-input-row input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);color:var(--text-primary);flex:1;padding:7px 10px;font-size:13px}.github-sync-input-row button,.github-sync-link-btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-hover);color:var(--text-primary);cursor:pointer;white-space:nowrap;padding:7px 14px;font-size:13px}.github-sync-input-row button:hover,.github-sync-link-btn:hover{background:var(--border)}.github-sync-link-btn.danger{color:var(--red,#e06c75)}.github-sync-push{gap:8px;display:flex}.github-sync-push input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);color:var(--text-primary);flex:1;padding:7px 10px;font-size:13px}.github-sync-btn{border-radius:var(--radius-pill);cursor:pointer;border:none;padding:8px 16px;font-size:13px;font-weight:600}.github-sync-btn.push{background:var(--green);color:var(--bg-primary);white-space:nowrap}.github-sync-btn.pull{background:var(--accent);color:var(--bg-primary)}.github-sync-btn:disabled{opacity:.5;cursor:not-allowed}.github-sync-msg{border-radius:var(--radius);word-break:break-word;margin-bottom:12px;padding:8px 12px;font-size:13px}.github-sync-msg.error{color:var(--red,#e06c75);background:#e06c7526}.github-sync-msg.success{color:var(--green);background:#98c37926}.github-sync-mode-tabs{background:var(--bg-secondary);border-radius:var(--radius);gap:2px;margin-bottom:12px;padding:2px;display:flex}.github-sync-mode-tabs button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;padding:7px 12px;font-size:13px;font-weight:500}.github-sync-mode-tabs button.active{background:var(--bg-surface);color:var(--text-primary)}.github-sync-create-form{flex-direction:column;gap:8px;display:flex}.github-sync-repo-search{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);width:100%;color:var(--text-primary);margin-bottom:8px;padding:8px 10px;font-size:13px}.github-sync-repo-search:focus{border-color:var(--accent);outline:none}.github-sync-repo-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);max-height:260px;overflow-y:auto}.github-sync-repo-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.github-sync-repo-item:last-child{border-bottom:none}.github-sync-repo-item:hover{background:var(--bg-hover)}.github-sync-repo-item.selected{background:#89b4fa26}.github-sync-repo-name{font-weight:500}.github-sync-repo-meta{color:var(--text-muted);white-space:nowrap;margin-left:12px;font-size:11px}.github-sync-linked{flex-direction:column;gap:14px;display:flex}.github-sync-repo-info{align-items:center;gap:8px;font-size:13px;display:flex}.github-sync-autosave-toggle{color:var(--text-secondary);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.github-sync-toggle-label{flex:1;align-items:center;gap:8px;display:flex}.github-sync-switch{flex-shrink:0;width:40px;height:22px;position:relative}.github-sync-switch input{opacity:0;width:0;height:0;position:absolute}.github-sync-switch-slider{background:var(--bg-hover);border:1px solid var(--border);border-radius:11px;transition:background .2s,border-color .2s;position:absolute;inset:0}.github-sync-switch-slider:before{content:"";background:var(--text-muted);border-radius:50%;width:16px;height:16px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.github-sync-switch.on .github-sync-switch-slider{background:var(--accent);border-color:var(--accent)}.github-sync-switch.on .github-sync-switch-slider:before{background:#fff;transform:translate(18px)}.github-sync-bottom-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.github-sync-confirm-text{color:var(--text-primary);margin:0;font-size:14px}.github-sync-confirm-buttons{gap:8px;display:flex}.github-sync-footer{justify-content:flex-end;padding-top:8px;display:flex}.bib-enrich-modal{width:90vw;max-width:820px}.bib-enrich-body{padding:0 20px 20px}.bib-enrich-hint{color:var(--text-secondary);margin-bottom:14px;font-size:13px}.bib-enrich-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.bib-enrich-select-links{text-transform:none;letter-spacing:0;margin-left:auto;font-weight:400}.bib-enrich-select-links button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:12px}.bib-enrich-select-links button:hover{text-decoration:underline}.bib-enrich-fields{flex-wrap:wrap;gap:4px 14px;margin-bottom:16px;display:flex}.bib-enrich-field-checkbox{color:var(--text-primary);cursor:pointer;align-items:center;gap:5px;padding:3px 0;font-size:13px;display:flex}.bib-enrich-field-checkbox input{accent-color:var(--accent)}.bib-enrich-entry-table{border:1px solid var(--border);border-radius:var(--radius);max-height:240px;margin-bottom:16px;overflow-y:auto}.bib-enrich-entry-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:8px;padding:5px 10px;font-size:12px;transition:background .1s;display:flex}.bib-enrich-entry-row:last-child{border-bottom:none}.bib-enrich-entry-row:hover{background:var(--bg-hover)}.bib-enrich-entry-row.selected{background:#89b4fa0f}.bib-enrich-entry-row input{accent-color:var(--accent);flex-shrink:0}.bib-enrich-entry-key{color:var(--text-primary);flex-shrink:0;min-width:100px;font-family:monospace;font-weight:600}.bib-enrich-entry-title{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.bib-enrich-entry-existing{color:var(--text-muted);flex-shrink:0;font-size:11px}.bib-enrich-entry-row.previewing{border-left:2px solid var(--accent);background:#89b4fa1f;padding-left:8px}.bib-enrich-split{gap:12px;margin-bottom:16px;display:flex}.bib-enrich-split .bib-enrich-entry-table{flex:1;min-width:0;margin-bottom:0}.bib-enrich-preview{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;flex-shrink:0;width:280px;max-height:240px;display:flex}.bib-enrich-preview-header{color:var(--text-primary);background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 8px;font-family:monospace;font-size:12px;font-weight:600;display:flex}.bib-enrich-preview-header button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.bib-enrich-preview-header button:hover{color:var(--text-primary)}.bib-enrich-preview-code{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;flex:1;margin:0;padding:8px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px;line-height:1.5;overflow:auto}.bib-enrich-btn{border:1px solid var(--border);cursor:pointer;background:var(--bg-surface);color:var(--text-primary);border-radius:20px;padding:7px 18px;font-size:13px}.bib-enrich-btn:hover{background:var(--bg-hover)}.bib-enrich-btn:disabled{opacity:.5;cursor:default}.bib-enrich-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.bib-enrich-btn.primary:hover{filter:brightness(1.15)}.bib-enrich-btn.primary:disabled{filter:none}.bib-enrich-actions{gap:8px;margin-top:4px;display:flex}.bib-enrich-btn-sm{border:1px solid var(--border);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:12px;padding:2px 8px;font-size:12px;line-height:1.2}.bib-enrich-btn-sm:hover{background:var(--bg-hover)}.bib-enrich-btn-sm:disabled{opacity:.4;cursor:default}.bib-enrich-btn-sm.accept{color:var(--green);border-color:var(--green)}.bib-enrich-btn-sm.accept:hover{background:#a6e3a11a}.bib-enrich-btn-sm.reject{color:#f38ba8;border-color:#f38ba8}.bib-enrich-btn-sm.reject:hover{background:#f38ba81a}.bib-enrich-btn-sm.undo{color:var(--text-muted)}.bib-enrich-log{background:var(--bg-console);color:var(--text-console);border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;max-height:260px;margin:8px 0;padding:10px 12px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:1.5;overflow-y:auto}.bib-enrich-log-line{padding:1px 0}.bib-enrich-log-line.log-ok{color:var(--green)}.bib-enrich-log-line.log-err{color:#f38ba8}.bib-enrich-log-line.log-skip{color:#6c7086}.bib-enrich-log-line.log-cursor{color:#89b4fa;animation:1s step-end infinite blink-cursor}@keyframes blink-cursor{50%{opacity:0}}.bib-enrich-review-bar{justify-content:space-between;align-items:center;margin-bottom:10px;padding:6px 0;display:flex}.bib-enrich-review-counts{gap:12px;font-size:12px;display:flex}.bib-enrich-review-counts .review-pending{color:var(--text-muted)}.bib-enrich-review-counts .review-accepted{color:var(--green)}.bib-enrich-review-counts .review-rejected{color:#f38ba8}.bib-enrich-review-bulk{gap:6px;display:flex}.bib-enrich-diff-list{border:1px solid var(--border);border-radius:var(--radius);max-height:340px;margin-bottom:14px;overflow-y:auto}.bib-enrich-diff-entry{border-bottom:1px solid var(--border)}.bib-enrich-diff-entry:last-child{border-bottom:none}.bib-enrich-diff-entry-header{background:var(--bg-secondary);color:var(--text-secondary);border-bottom:1px solid var(--border);padding:6px 10px;font-size:12px;font-weight:600}.bib-enrich-diff-key{font-family:monospace}.bib-enrich-diff-line{border-bottom:1px solid var(--border);background:#a6e3a10f;align-items:baseline;gap:6px;padding:4px 10px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12px;transition:opacity .15s,background .15s;display:flex}.bib-enrich-diff-line:last-child{border-bottom:none}.bib-enrich-diff-line.accepted{background:#a6e3a11f}.bib-enrich-diff-line.rejected{opacity:.5;background:#f38ba80f;text-decoration:line-through}.bib-enrich-diff-plus{color:var(--green);flex-shrink:0;font-weight:700}.bib-enrich-diff-line.rejected .bib-enrich-diff-plus{color:#f38ba8}.bib-enrich-diff-field{color:var(--accent);flex-shrink:0;min-width:80px}.bib-enrich-diff-eq{color:var(--text-muted);flex-shrink:0}.bib-enrich-diff-value{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.bib-enrich-diff-actions{flex-shrink:0;gap:4px;margin-left:auto;display:flex}.spell-context-menu{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;padding:4px 0;box-shadow:0 4px 16px #00000026}.spell-context-word{color:var(--text-primary);border-bottom:1px solid var(--border);padding:6px 12px;font-size:13px;font-weight:600}.spell-context-badge{color:#e03131;vertical-align:middle;background:#e0313126;border-radius:3px;margin-right:6px;padding:1px 5px;font-size:10px;font-weight:600;display:inline-block}.spell-context-menu button{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:13px;display:block}.spell-context-menu button:hover{background:var(--bg-secondary)}.cm-tc-insert{cursor:pointer;background:#448aff26;border-bottom:2px solid #448aff;color:#448aff!important}.cm-tc-delete-widget{color:#b71c1c;cursor:pointer;vertical-align:baseline;opacity:.7;margin:0 1px;font-size:.85em;font-weight:700;display:inline}.cm-tc-delete-widget:hover{opacity:1;background:#b71c1c26;border-radius:2px}.cm-tc-delete{cursor:pointer;background:#b71c1c1f;-webkit-text-decoration:line-through #b71c1c;text-decoration:line-through #b71c1c;color:#b71c1c!important}.cm-tc-insert-gutter,.cm-tc-delete-gutter{margin-right:1px;width:3px!important;min-width:3px!important}.cm-tc-gutter-insert{background:#448aff;border-radius:1px;width:3px;height:100%;display:block}.cm-tc-gutter-delete{background:#b71c1c;border-radius:1px;width:3px;height:100%;display:block}.cm-cite-key{color:#9575cd}.tc-btn{border-radius:var(--radius);cursor:pointer;border:none;padding:3px 8px;font-size:11px;font-weight:500}.cm-tc-review-active{outline-offset:-1px;border-radius:2px;outline:2px solid #ffd54fcc;background:#ffd54f40!important}.tc-popup-buttons .tc-btn{flex:1;padding:4px 10px;font-size:12px}.chat-panel{background:var(--bg-secondary);border-left:1px solid var(--border);flex-direction:column;width:280px;min-width:280px;display:flex}.chat-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.chat-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.chat-close-btn:hover{color:var(--text-primary)}.chat-messages{flex-direction:column;flex:1;gap:4px;padding:12px;display:flex;overflow-y:auto}.chat-empty{color:var(--text-muted);text-align:center;margin-top:40px;font-size:13px}.chat-date-separator{text-align:center;color:var(--text-muted);margin:12px 0 8px;font-size:11px}.chat-date-separator span{background:var(--bg-secondary);border-radius:var(--radius-pill);border:1px solid var(--border);padding:2px 12px}.chat-message{flex-direction:column;align-items:flex-start;max-width:85%;display:flex}.chat-message.own{align-self:flex-end;align-items:flex-end}.chat-bubble{background:var(--bg-surface);color:var(--text-primary);border-radius:12px 12px 12px 4px;flex-wrap:wrap;align-items:flex-end;gap:2px 8px;padding:6px 12px;font-size:13px;line-height:1.4;display:flex;position:relative}.chat-react-trigger{border:1px solid var(--border);background:var(--bg-surface);width:22px;height:22px;color:var(--text-secondary);cursor:pointer;opacity:0;border-radius:50%;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:opacity .1s,transform .1s;display:inline-flex;position:absolute;top:-10px;right:6px}.chat-message:hover .chat-react-trigger{opacity:1}.chat-react-trigger:hover{color:var(--text-primary);transform:scale(1.08)}.chat-message.own .chat-react-trigger{left:6px;right:auto}.chat-react-picker{background:var(--bg-surface);border:1px solid var(--border);z-index:50;border-radius:8px;flex-wrap:wrap;gap:2px;max-width:min(260px,90vw);padding:4px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 4px 14px #00000040}.chat-message.own .chat-react-picker{left:auto;right:0}.chat-react-picker-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;line-height:1;display:inline-flex}.chat-react-picker-btn:hover{background:var(--bg-hover)}.chat-reactions{z-index:1;flex-wrap:wrap;gap:4px;margin-top:-3px;padding:0 6px;display:flex;position:relative}.chat-message.own .chat-reactions{justify-content:flex-end}.chat-reaction-pill{color:var(--text-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:3px;padding:0;font-size:11px;line-height:1.5;display:inline-flex}.chat-reaction-pill:hover{opacity:.8}.chat-reaction-pill.mine .chat-reaction-count{color:var(--accent);font-weight:600}.chat-message.own .chat-reaction-pill.mine .chat-reaction-count{color:var(--bg-primary)}.chat-reaction-emoji{font-size:14px}.chat-reaction-count{font-variant-numeric:tabular-nums}.chat-bubble-author{width:100%;font-size:12px;font-weight:600}.chat-message.own .chat-bubble{background:var(--accent);color:var(--bg-primary);border-radius:12px 12px 4px}.chat-bubble .mention-highlight{background:color-mix(in srgb, var(--accent) 25%, transparent);color:inherit;border-radius:4px;padding:0 4px;display:inline-block}.chat-message.own .chat-bubble .mention-highlight{background:color-mix(in srgb, var(--bg-primary) 30%, transparent)}.chat-bubble-time{opacity:.5;white-space:nowrap;flex-shrink:0;align-items:baseline;gap:4px;margin-left:auto;font-size:10px;display:inline-flex}.chat-bubble-read{letter-spacing:-2px;color:currentColor;opacity:.6;font-size:11px}.chat-bubble-read.all{color:var(--accent,#6aa6e2);opacity:1}.chat-typing-indicator{color:var(--text-secondary);flex-shrink:0;align-items:center;gap:6px;padding:4px 14px;font-size:12px;display:flex}.chat-typing-dots{align-items:center;gap:3px;display:inline-flex}.chat-typing-dots span{background:var(--text-secondary);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite chat-dot-bounce}.chat-typing-dots span:nth-child(2){animation-delay:.2s}.chat-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes chat-dot-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.chat-typing-text{font-style:italic}.chat-input-bar{border-top:1px solid var(--border);flex-shrink:0;gap:8px;padding:10px 12px;display:flex}.chat-input-bar .mention-textarea-wrap{flex:1}.chat-input{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-primary);width:100%;color:var(--text-primary);outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:13px}.chat-input:focus{border-color:var(--accent)}.chat-send-btn{background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.chat-send-btn:hover{background:var(--accent-hover)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.files-toggle-btn{background:var(--bg-secondary);border:none;border-right:1px solid var(--border);width:40px;color:var(--text-muted);cursor:pointer;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;padding:8px 0;display:flex}.files-toggle-btn:hover{color:var(--accent);background:var(--bg-hover)}.chat-toggle-btn{background:var(--bg-secondary);border:none;border-left:1px solid var(--border);width:40px;color:var(--text-muted);cursor:pointer;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;padding:8px 0;display:flex;position:relative}.chat-toggle-btn:hover{color:var(--accent);background:var(--bg-hover)}.chat-badge{background:var(--accent);color:var(--bg-primary);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-top:4px;font-size:10px;font-weight:600;display:flex}.admin-dashboard{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);width:100%;margin:0;padding:24px clamp(24px,4vw,64px);overflow:hidden auto}.admin-title{margin-bottom:16px;font-size:22px;font-weight:600}.admin-header{align-items:center;gap:16px;margin-bottom:20px;display:flex}.admin-back{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-pill);cursor:pointer;align-items:center;gap:6px;padding:6px 16px;font-size:13px;display:flex}.admin-back:hover{background:var(--bg-hover);color:var(--text-primary)}.admin-live-btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;display:flex}.admin-live-btn.active{border-color:var(--green);color:var(--green)}.admin-live-dot{background:var(--text-muted);border-radius:50%;width:8px;height:8px}.admin-live-btn.active .admin-live-dot{background:var(--green)}.admin-live-dot.pulse{animation:1.5s ease-in-out infinite admin-pulse}@keyframes admin-pulse{0%,to{opacity:1}50%{opacity:.3}}.admin-refresh-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:6px 8px;display:flex}.admin-refresh-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.admin-period{background:var(--bg-secondary);border-radius:var(--radius);gap:2px;padding:2px;display:flex}.admin-period button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:5px 12px;font-size:12px;font-weight:500}.admin-period button.active{background:var(--bg-surface);color:var(--text-primary)}.admin-tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:24px;display:flex}.admin-tabs button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 20px;font-size:13px;font-weight:500}.admin-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.admin-tabs button:hover:not(.active){color:var(--text-secondary)}.admin-cards{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:28px;display:grid}.admin-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.admin-card-value{color:var(--text-primary);margin-bottom:6px;font-size:28px;font-weight:700;line-height:1}.admin-card-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.admin-card-sub{color:var(--text-muted);margin-top:6px;font-size:11px}.admin-charts{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px;margin-bottom:28px;display:grid}.admin-chart{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.admin-chart-title{color:var(--text-secondary);margin-bottom:12px;font-size:13px;font-weight:600}.admin-chart-body{gap:8px;display:flex}.admin-chart-y{color:var(--text-muted);text-align:right;flex-direction:column;justify-content:space-between;min-width:28px;padding-bottom:18px;font-size:10px;display:flex}.admin-chart-area{flex:1;min-width:0}.admin-chart-bars{border-bottom:1px solid var(--border);align-items:flex-end;gap:1px;height:140px;display:flex}.admin-chart-bar-col{flex-direction:column;flex:1;justify-content:flex-end;min-width:2px;height:100%;display:flex}.admin-chart-bar{border-radius:2px 2px 0 0;min-height:0;transition:height .3s}.admin-chart-bar-col:hover .admin-chart-bar{opacity:.8}.admin-chart-x{gap:1px;margin-top:4px;display:flex}.admin-chart-x-label{min-width:2px;color:var(--text-muted);text-align:center;white-space:nowrap;flex:1;font-size:9px;overflow:hidden}.admin-section{margin-bottom:28px}.admin-section h2{margin-bottom:12px;font-size:18px;font-weight:600}.admin-section h3{font-size:15px;font-weight:600}.admin-table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;background:var(--bg-secondary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}.admin-table td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:8px 14px}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--bg-hover)}.admin-table-clickable tbody tr{cursor:pointer}.admin-row-expanded td{background:var(--bg-secondary);font-weight:600}.admin-users-layout{gap:16px;display:flex}.admin-users-list{flex:1;min-width:0;overflow-x:auto}.admin-users-layout.has-panel .admin-users-list{flex:0 0 45%;max-width:45%}.admin-users-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);flex:1;min-width:0;max-height:calc(100vh - 200px);position:relative;overflow-y:auto}.admin-users-panel-close{float:right;background:var(--bg-surface);cursor:pointer;color:var(--text-secondary);z-index:1;border:none;padding:8px 12px;font-size:20px;position:sticky;top:0}.admin-users-panel-close:hover{color:var(--text-primary)}.admin-user-detail{padding:16px 20px}.admin-user-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.admin-user-detail-email{color:var(--text-secondary);margin-left:8px;font-size:13px}.admin-user-detail-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.admin-user-detail-admin-toggle{border-radius:var(--radius-pill);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:0 0;padding:2px 10px;font-size:11px}.admin-user-detail-admin-toggle:hover:not(:disabled){background:var(--bg-hover)}.admin-user-detail-admin-toggle:disabled{opacity:.5;cursor:wait}.admin-user-detail-error{color:var(--accent);margin:6px 0;font-size:12px}.admin-badge{border-radius:var(--radius-pill);background:var(--bg-secondary);color:var(--text-secondary);padding:2px 8px;font-size:11px}.admin-badge-admin{background:var(--accent);color:#fff}.admin-badge-ok{background:color-mix(in srgb, var(--green) 20%, transparent);color:var(--green)}.admin-badge-warn{background:color-mix(in srgb, var(--yellow) 20%, transparent);color:var(--yellow)}.admin-user-detail-grid{flex-direction:column;gap:12px;display:flex}.admin-user-detail-section{background:var(--bg-surface);border-radius:var(--radius);border:1px solid var(--border);padding:12px 14px}.admin-user-detail-section h4{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.5px;margin:0 0 8px;font-size:12px}.admin-table-compact{font-size:12px}.admin-table-compact th{padding:4px 8px;font-size:10px}.admin-table-compact td{padding:3px 8px}.admin-user-detail-comment{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.admin-user-detail-empty{color:var(--text-muted);padding:8px 0;font-size:12px}.admin-user-detail-loading{color:var(--text-muted);text-align:center;padding:16px;font-size:13px}.admin-empty{color:var(--text-muted);text-align:center;padding:20px;font-size:13px}.admin-pagination{color:var(--text-secondary);justify-content:center;align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.admin-pagination button{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius);cursor:pointer;padding:5px 14px;font-size:12px}.admin-pagination button:disabled{opacity:.4;cursor:default}.admin-pagination button:hover:not(:disabled){background:var(--bg-hover)}.admin-audit-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.admin-audit-header h2{margin:0}.admin-audit-actions{align-items:center;gap:8px;display:flex}.admin-audit-btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius);cursor:pointer;padding:5px 12px;font-size:12px}.admin-audit-btn:hover:not(:disabled){background:var(--bg-hover)}.admin-audit-btn:disabled{opacity:.4;cursor:default}.admin-audit-btn-danger{color:var(--red,#c00);border-color:var(--red,#c00)}.admin-audit-btn-danger:hover:not(:disabled){background:var(--red,#c00);color:#fff}.admin-audit-confirm{color:var(--red,#c00);align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.admin-setting-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:flex-start;gap:24px;padding:16px;display:flex}.admin-setting-label{color:var(--text-primary);flex-direction:column;gap:4px;font-size:14px;display:flex}.admin-setting-hint{color:var(--text-secondary);font-size:12px}.admin-setting-input{flex-shrink:0;align-items:center;display:flex}.admin-live-indicator{color:var(--green);margin-left:8px;font-size:11px;font-weight:400}.admin-system-charts{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:16px;display:grid}.admin-minichart{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.admin-minichart-header{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.admin-minichart-label{color:var(--text-secondary);font-size:12px;font-weight:500}.admin-minichart-value{font-size:18px;font-weight:700}.admin-minichart-svg{width:100%;height:48px;display:block}.zotero-modal{flex-direction:column;width:820px;max-width:95vw;max-height:85vh;padding:24px;display:flex}.zotero-modal h2{align-items:center;gap:8px;margin-bottom:16px;display:flex}.zotero-username{color:var(--text-secondary);margin-left:auto;font-size:13px;font-weight:400}.zotero-loading{text-align:center;color:var(--text-secondary);padding:40px}.zotero-connect{flex-direction:column;display:flex}.zotero-connect-info{color:var(--text-secondary);margin:0 0 8px;font-size:14px;line-height:1.5}.zotero-connect-info a{color:var(--accent)}.zotero-connect-hint{color:var(--text-secondary);margin:0 0 20px;font-size:13px}.zotero-connect-form{gap:8px;display:flex}.zotero-connect-form .auth-input{flex:1;font-family:monospace}.zotero-connect-form .auth-button{white-space:nowrap;padding:10px 20px}.zotero-error{color:var(--error,#e74c3c);margin-top:12px;font-size:13px}.zotero-browser{flex-direction:column;flex:1;min-height:0;display:flex}.zotero-toolbar{align-items:center;gap:12px;margin-bottom:12px;display:flex}.zotero-search{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-primary);flex:1;align-items:center;gap:8px;padding:8px 12px;display:flex}.zotero-search svg{opacity:.4;flex-shrink:0}.zotero-search input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:13px}.zotero-search:focus-within{border-color:var(--accent)}.zotero-disconnect-btn{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:6px 14px;font-size:12px}.zotero-disconnect-btn:hover{color:var(--error,#e74c3c);border-color:var(--error,#e74c3c)}.zotero-body{border:1px solid var(--border);border-radius:var(--radius);flex:1;min-height:0;display:flex;overflow:hidden}.zotero-sidebar{border-right:1px solid var(--border);background:var(--bg-primary);width:200px;min-width:200px;padding:6px 0;overflow-y:auto}.zotero-collection{cursor:pointer;color:var(--text-secondary);align-items:center;gap:6px;padding:6px 12px;font-size:13px;transition:background .1s;display:flex}.zotero-collection:hover{background:var(--bg-hover,#ffffff0a)}.zotero-collection.active{background:var(--accent-bg,#4e9af11f);color:var(--accent)}.zotero-collection svg{opacity:.6;flex-shrink:0}.zotero-collection.active svg{opacity:1;stroke:var(--accent)}.zotero-collection-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.zotero-collection-count{opacity:.5;flex-shrink:0;font-size:11px}.zotero-items{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.zotero-items-header{border-bottom:1px solid var(--border);background:var(--bg-primary);justify-content:space-between;align-items:center;padding:8px 14px;font-size:13px;display:flex}.zotero-select-all{cursor:pointer;color:var(--text-secondary);align-items:center;gap:6px;display:flex}.zotero-select-all input{cursor:pointer}.zotero-items-count{color:var(--text-secondary);font-size:12px}.zotero-items-list{flex:1;overflow-y:auto}.zotero-item{cursor:pointer;border-bottom:1px solid var(--border-subtle,#ffffff0a);align-items:flex-start;gap:10px;padding:10px 14px;transition:background .1s;display:flex}.zotero-item:hover{background:var(--bg-hover,#ffffff0a)}.zotero-item.selected{background:var(--accent-bg,#4e9af114)}.zotero-item input[type=checkbox]{cursor:pointer;flex-shrink:0;margin-top:3px}.zotero-item-info{flex:1;min-width:0}.zotero-item-title{color:var(--text-primary);margin-bottom:3px;font-size:13px;font-weight:500;line-height:1.3}.zotero-item-meta{color:var(--text-secondary);flex-wrap:wrap;gap:4px 10px;font-size:12px;display:flex}.zotero-item-type{background:var(--bg-tertiary,#ffffff0f);border-radius:var(--radius-pill);padding:1px 6px;font-size:11px}.zotero-item-authors{text-overflow:ellipsis;white-space:nowrap;max-width:300px;overflow:hidden}.zotero-item-pub{text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-style:italic;overflow:hidden}.zotero-empty{text-align:center;color:var(--text-secondary);padding:40px;font-size:14px}.zotero-pagination{border-top:1px solid var(--border);color:var(--text-secondary);justify-content:center;align-items:center;gap:12px;padding:10px;font-size:13px;display:flex}.zotero-pagination button{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;background:0 0;padding:4px 14px;font-size:13px}.zotero-pagination button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.zotero-pagination button:disabled{opacity:.3;cursor:default}.zotero-fields-section{padding:10px 0}.zotero-fields-toggle{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:4px 0;font-size:13px;display:flex}.zotero-fields-toggle:hover{color:var(--text-primary)}.zotero-fields-count{background:var(--bg-tertiary,#ffffff0f);border-radius:var(--radius-pill);text-align:center;min-width:18px;padding:0 6px;font-size:11px}.zotero-fields-list{flex-wrap:wrap;gap:4px 16px;padding:8px 0 0 20px;display:flex}.zotero-field-option{color:var(--text-secondary);cursor:pointer;align-items:center;gap:5px;font-size:13px;display:flex}.zotero-field-option input{cursor:pointer}.zotero-footer{align-items:center;gap:12px;display:flex}.zotero-warning{color:var(--warning,#f0ad4e);margin-right:auto;font-size:12px}.zotero-duplicate-warning{background:var(--bg-warning,#fff3cd);border:1px solid var(--warning,#f0ad4e);border-radius:var(--radius,6px);color:var(--text-primary);margin:0 16px 8px;padding:10px 14px;font-size:13px}.zotero-duplicate-warning p{margin:0 0 8px}.zotero-duplicate-actions{justify-content:flex-end;gap:8px;display:flex}.zotero-cancel-btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;padding:8px 20px;font-size:14px}.zotero-cancel-btn:hover{background:var(--bg-hover)}.zotero-import-btn{padding:10px 24px}.zotero-import-btn:disabled{opacity:.5;cursor:default}.tc-bar{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.tc-bar-count{color:var(--text-secondary);font-weight:500}.tc-bar-counter{font-variant-numeric:tabular-nums;color:var(--text-secondary);text-align:center;min-width:3em}.tc-bar-btn{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:4px;padding:4px 10px;font-size:12px}.tc-bar-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.tc-bar-btn:disabled{opacity:.4;cursor:default}.tc-bar-btn-accept:hover:not(:disabled){background:#2ea043;border-color:#2ea043}.tc-bar-btn-reject:hover:not(:disabled){background:#cf222e;border-color:#cf222e}.tc-bar-arrow{padding:2px 8px;font-size:16px;line-height:1}.tc-bar-info{align-items:center;gap:6px;display:inline-flex}.tc-bar-info-ins .tc-bar-type{color:#448aff;font-weight:700}.tc-bar-info-del .tc-bar-type{color:#b71c1c;font-weight:700}.tc-bar-author{color:var(--text-secondary);font-size:11px}.tc-bar-sep{background:var(--border);align-self:stretch;width:1px;margin:0 4px}.tc-bar-close{margin-left:auto;padding:2px 8px;font-size:16px;line-height:1}.tc-context-menu{background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;min-width:160px;padding:4px 0;font-size:13px;box-shadow:0 2px 8px #0003}.tc-context-header{border-bottom:1px solid var(--border);margin-bottom:4px;padding:4px 12px}.tc-context-header-ins .tc-context-type{color:#448aff;font-weight:600}.tc-context-header-del .tc-context-type{color:#b71c1c;font-weight:600}.tc-context-author{color:var(--text-secondary);margin-left:6px;font-size:11px}.tc-context-menu button{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:4px 12px;font-size:13px;display:block}.tc-context-menu button:hover{background:var(--accent);color:#fff}.cm-tc-gutter{width:4px;min-width:4px;padding:0}.cm-tc-gutter-bar{width:100%;height:100%;min-height:1.4em}.cm-tc-gutter-bar-ins{background:#448aff}.cm-tc-gutter-bar-del{background:#b71c1c}.cm-tc-gutter-bar-both{background:linear-gradient(90deg,#448aff 50%,#b71c1c 50%)}.tc-panel{background:var(--bg-panel-solid);border-left:1px solid var(--border);flex-direction:column;height:100%;font-size:13px;display:flex;overflow:hidden}.tc-panel-header{border-bottom:1px solid var(--border);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:var(--bg-primary);align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.tc-panel-title{flex:1}.tc-panel-count{background:var(--bg-primary);color:var(--text-secondary);letter-spacing:0;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:400}.tc-panel-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.tc-panel-close:hover{color:var(--text-primary)}.tc-panel-empty{color:var(--text-secondary);text-align:center;padding:16px}.tc-panel-bulk{border-bottom:1px solid var(--border);gap:6px;padding:8px 12px;display:flex}.tc-panel-bulk button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:4px;flex:1;padding:4px 8px;font-size:12px}.tc-panel-bulk button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.tc-panel-list-scroll{flex:1;min-height:0;padding:8px;overflow-y:auto}.tc-panel-list{margin:0;padding:0;list-style:none}.tc-panel-list.positioned{min-height:100%;position:relative}.tc-panel-card{cursor:pointer;background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid #0000;border-radius:6px;margin-bottom:8px;padding:8px 12px}.tc-panel-card-ins{border-left-color:#448aff}.tc-panel-card-del{border-left-color:#b71c1c}.tc-panel-card-meta{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:4px;font-size:11px;display:flex}.tc-panel-card-type{font-weight:600}.tc-panel-card-ins .tc-panel-card-type{color:#448aff}.tc-panel-card-del .tc-panel-card-type{color:#b71c1c}.tc-panel-card-by{color:var(--text-secondary)}.tc-panel-card-author{color:var(--accent);font-weight:600}.tc-panel-card-time{margin-left:auto}.tc-panel-card-text{font-family:var(--font-mono,monospace);white-space:pre-wrap;overflow-wrap:anywhere;max-height:6em;margin-bottom:6px;font-size:12px;overflow-y:auto}.tc-panel-card-del .tc-panel-card-text{-webkit-text-decoration:line-through #b71c1c;text-decoration:line-through #b71c1c}.tc-panel-card-actions{justify-content:flex-end;gap:6px;margin-top:4px;display:flex}.tc-panel-icon-btn{border:1px solid var(--border);background:var(--bg-surface);width:22px;height:22px;color:var(--text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:flex}.tc-panel-icon-btn:hover{color:var(--text-primary)}.tc-panel-icon-accept:hover{color:#2ea043;background:#2ea0431f;border-color:#2ea043}.tc-panel-icon-reject:hover{color:#cf222e;background:#cf222e1f;border-color:#cf222e}.tc-toggle-btn{background:var(--bg-surface);border:none;border-left:1px solid var(--border);color:var(--text-muted);cursor:pointer;align-self:stretch;align-items:flex-start;padding:8px 6px;display:flex;position:relative}.tc-toggle-btn:hover{color:var(--text);background:var(--bg-hover)}.tc-toggle-badge{background:var(--accent);color:#fff;text-align:center;border-radius:10px;min-width:16px;padding:2px 5px;font-size:10px;font-weight:600;line-height:1;position:absolute;top:4px;right:0}.tc-bar-icon-btn{border:1px solid var(--border);background:var(--bg-surface);width:22px;height:22px;color:var(--text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.tc-bar-icon-btn:disabled{opacity:.4;cursor:default}.tc-bar-icon-btn:hover:not(:disabled){color:var(--text-primary)}.tc-bar-icon-accept:hover:not(:disabled){color:#2ea043;background:#2ea0431f;border-color:#2ea043}.tc-bar-icon-reject:hover:not(:disabled){color:#cf222e;background:#cf222e1f;border-color:#cf222e}.notif-wrapper{display:inline-block;position:relative}.notif-bell{justify-content:center;align-items:center;padding:4px 8px;display:inline-flex;position:relative}.notif-badge{color:#fff;text-align:center;pointer-events:none;background:#cf222e;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-4px;right:-4px}.notif-dropdown{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);z-index:200;width:340px;max-height:420px;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 8px 24px #00000040}.notif-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.notif-mark-all{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.notif-mark-all:hover{text-decoration:underline}.notif-empty{text-align:center;color:var(--text-secondary);padding:20px 12px;font-size:13px}.notif-list{margin:0;padding:0;list-style:none}.notif-item{border-bottom:1px solid var(--border);cursor:pointer;padding:10px 12px;font-size:13px}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--bg-hover)}.notif-item.unread{background:#7c3aed14}.notif-item.unread:hover{background:#7c3aed24}.notif-line1{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.notif-time{color:var(--text-secondary);white-space:nowrap;font-size:11px}.notif-line2{color:var(--text-secondary);margin-top:2px;font-size:12px}.notif-snippet{color:var(--text-primary);-webkit-line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;margin-top:4px;font-size:12px;display:-webkit-box;overflow:hidden}.comment-reactions-row{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex;position:relative}.comment-reactions{flex-wrap:wrap;gap:4px;display:flex}.comment-reaction-pill{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;border-radius:10px;align-items:center;gap:4px;padding:1px 7px;font-size:11px;line-height:1.6;display:inline-flex}.comment-reaction-pill:hover{background:var(--bg-hover)}.comment-reaction-pill.mine{background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:var(--accent)}.comment-reaction-emoji{font-size:13px}.comment-reaction-count{font-variant-numeric:tabular-nums}.comment-react-trigger{border:1px solid var(--border);background:var(--bg-surface);width:22px;height:22px;color:var(--text-secondary);cursor:pointer;opacity:.6;border-radius:50%;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:opacity .1s,transform .1s;display:inline-flex}.comment-item:hover .comment-react-trigger{opacity:1}.comment-react-trigger:hover{color:var(--text-primary);transform:scale(1.08)}.comment-react-picker{background:var(--bg-surface);border:1px solid var(--border);z-index:50;border-radius:8px;gap:2px;padding:4px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 4px 14px #00000040}.comment-react-picker-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;line-height:1;display:inline-flex}.comment-react-picker-btn:hover{background:var(--bg-hover)}.comment-reply .comment-reactions-row{margin-top:4px}.comment-reply .comment-react-trigger{width:18px;height:18px;font-size:11px}.comment-reply .comment-reaction-pill{padding:0 6px;font-size:10px}.comment-reply .comment-reaction-emoji{font-size:11px}.admin-user-delete-btn{color:#cf222e;cursor:pointer;background:0 0;border:1px solid #cf222e;border-radius:4px;padding:2px 8px;font-size:11px}.admin-user-delete-btn:hover{background:#cf222e1f}.admin-user-self-badge{color:var(--text-secondary);font-size:11px;font-style:italic}.admin-delete-user-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:460px;max-width:90vw;box-shadow:0 12px 32px #00000059}.admin-delete-user-modal .modal-header{align-items:center;padding:14px 20px;display:flex}.admin-delete-user-modal .modal-header h2{color:var(--text-primary);margin:0;font-size:15px;font-weight:600}.admin-delete-user-body{flex-direction:column;gap:12px;padding:16px;display:flex}.admin-delete-user-warning{background:#cf222e14;border:1px solid #cf222e4d;border-radius:6px;margin:0;padding:10px 12px;font-size:13px;line-height:1.45}.admin-delete-user-check{align-items:center;gap:8px;font-size:13px;display:flex}.admin-delete-user-field{flex-direction:column;gap:4px;font-size:13px;display:flex}.admin-delete-user-field input{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:4px;padding:6px 8px}.admin-delete-user-field code{background:var(--bg-surface);border-radius:3px;padding:0 4px}.admin-delete-user-error{color:#cf222e;font-size:12px}.admin-delete-user-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.admin-delete-user-actions button{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px}.admin-delete-user-confirm{color:#fff!important;background:#cf222e!important;border-color:#cf222e!important}.admin-delete-user-confirm:disabled{opacity:.5;cursor:not-allowed}.invitation-toast-stack{z-index:90;pointer-events:none;flex-direction:column-reverse;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.invitation-toast{pointer-events:auto;background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;align-items:flex-start;gap:10px;width:320px;padding:12px 14px;animation:.18s ease-out invitation-toast-in;display:flex;box-shadow:0 8px 24px #00000059}@keyframes invitation-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.invitation-toast-icon{color:var(--accent);flex-shrink:0;margin-top:2px;font-size:18px;line-height:1}.invitation-toast-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.invitation-toast-title{color:var(--text-secondary);letter-spacing:.3px;text-transform:uppercase;font-size:12px;font-weight:600}.invitation-toast-detail{color:var(--text-primary);word-break:break-word;font-size:13px;line-height:1.4}.invitation-toast-open{background:var(--accent);color:var(--bg-primary);border:1px solid var(--accent);cursor:pointer;border-radius:4px;align-self:flex-start;margin-top:2px;padding:3px 10px;font-size:12px}.invitation-toast-open:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.invitation-toast-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.invitation-toast-close:hover{color:var(--text-primary)}.copy-project-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:440px;max-width:90vw;box-shadow:0 12px 32px #00000059}.copy-project-modal .modal-header{padding:14px 20px}.copy-project-modal .modal-header h2{margin:0;font-size:15px;font-weight:600}.copy-project-body{flex-direction:column;gap:12px;padding:16px 20px;display:flex}.copy-project-field{flex-direction:column;gap:4px;font-size:13px;display:flex}.copy-project-field input{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:4px;padding:6px 8px;font-size:13px}.copy-project-check{cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;line-height:1.4;display:flex}.copy-project-members{background:var(--bg-primary);border:1px solid var(--border);max-height:140px;color:var(--text-secondary);border-radius:4px;flex-direction:column;gap:4px;margin:0;padding:8px 12px;font-size:12px;list-style:none;display:flex;overflow-y:auto}.copy-project-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.copy-project-actions button{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13px}.copy-project-confirm{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--bg-primary)!important}.copy-project-confirm:disabled,.copy-project-actions button:disabled{opacity:.5;cursor:not-allowed}.bug-report-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;width:520px;max-width:92vw;max-height:88vh;display:flex;box-shadow:0 12px 32px #00000059}.bug-report-modal .modal-header{justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.bug-report-modal .modal-header h2{margin:0;font-size:15px;font-weight:600}.bug-report-body{flex-direction:column;gap:14px;padding:16px 20px;display:flex;overflow-y:auto}.bug-report-field{flex-direction:column;gap:6px;font-size:13px;display:flex}.bug-report-field textarea{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);resize:vertical;border-radius:4px;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.45}.bug-report-features{border:1px solid var(--border);border-radius:6px;padding:8px 12px 10px}.bug-report-features legend{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;padding:0 6px;font-size:12px}.bug-report-features-grid{grid-template-columns:1fr 1fr;gap:4px 16px;margin-top:4px;display:grid}.bug-report-feature-option{color:var(--text-primary);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.bug-report-feature-option input[type=checkbox]{margin:0}.bug-report-error{color:#cf222e;font-size:12px}.bug-report-actions{justify-content:flex-end;gap:8px;margin-top:2px;display:flex}.bug-report-actions button{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:13px}.bug-report-submit{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--bg-primary)!important}.bug-report-submit:disabled,.bug-report-actions button:disabled{opacity:.5;cursor:not-allowed}.bug-report-sent{text-align:center;color:var(--text-primary);padding:24px 20px 28px;font-size:13px}.llm-dialog{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius,8px);width:560px;max-width:calc(100vw - 32px);max-height:80vh;color:var(--text-primary);flex-direction:column;display:flex;box-shadow:0 12px 32px #00000059}.llm-dialog .modal-header{padding:14px 20px 10px}.llm-dialog .modal-header h2{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.llm-dialog-body{flex-direction:column;gap:12px;padding:16px 20px 18px;display:flex;overflow-y:auto}.llm-dialog-row{color:var(--text-primary);align-items:center;gap:8px;font-size:13px;display:flex}.llm-dialog-row label{min-width:110px;color:var(--text-secondary)}.llm-dialog-row input[type=number]{width:80px;font:inherit;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:4px;padding:4px 6px}.llm-dialog-row select{font:inherit;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:4px;flex:1;padding:4px 6px}.llm-dialog-row-suffix{color:var(--text-muted);font-size:12px}.llm-dialog-source,.llm-dialog-output,.llm-dialog-instruction{flex-direction:column;gap:4px;display:flex}.llm-dialog-instruction textarea{resize:vertical;border:1px solid var(--border);background:var(--bg-primary);width:100%;min-height:60px;color:var(--text-primary);font:inherit;border-radius:6px;padding:8px 10px;font-size:13px}.llm-dialog-instruction textarea:focus{border-color:var(--accent);outline:none}.llm-dialog-source-label,.llm-dialog-output-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:11px}.llm-dialog-source-text,.llm-dialog-output-text{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);white-space:pre-wrap;word-break:break-word;border-radius:6px;max-height:180px;padding:10px 12px;font-size:13px;line-height:1.5;overflow-y:auto}.llm-dialog-output-text{border-color:var(--accent)}.llm-dialog-spinner{color:var(--accent)}.llm-dialog-error{color:var(--accent);font-size:12px}.llm-dialog-error-block{white-space:pre-wrap;background:var(--bg-primary);border:1px solid var(--accent);border-radius:6px;margin:0;padding:10px 12px;font-family:inherit;line-height:1.5}.llm-dialog-hint{color:var(--text-muted);font-size:12px}.llm-dialog-hint a{color:var(--accent)}.llm-dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.llm-dialog-actions button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font:inherit;cursor:pointer;border-radius:4px;padding:6px 14px}.llm-dialog-actions button:hover:not(:disabled){background:var(--bg-hover)}.llm-dialog-actions button:disabled{opacity:.5;cursor:not-allowed}.llm-dialog-accept{background:var(--accent)!important;color:var(--bg-primary)!important;border-color:var(--accent)!important}.saml-config-loading,.saml-config-empty{color:var(--text-secondary);padding:8px 0;font-size:13px}.saml-config-error{color:var(--red,#c00);background:var(--bg-surface);border:1px solid var(--red,#c00);border-radius:var(--radius);margin:12px 0;padding:8px 12px;font-size:13px}.saml-config-section-title{color:var(--text-primary);margin:0 0 8px;font-size:14px;font-weight:600}.saml-config-hint{color:var(--text-secondary);margin:4px 0 0;font-size:12px}.saml-config-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;padding:16px}.saml-config-card h3.saml-config-section-title{margin-top:0}.saml-config-copy-field{margin-top:10px}.saml-config-copy-label{color:var(--text-primary);font-size:13px;font-weight:600}.saml-config-copy-row{align-items:center;gap:8px;margin-top:4px;display:flex}.saml-config-copy-value{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);white-space:nowrap;color:var(--text-primary);flex:1;padding:4px 8px;font-size:12px;overflow:auto}.saml-config-meta{color:var(--text-primary);margin-top:12px;font-size:13px}.saml-config-fingerprint{word-break:break-all;font-size:11px}.saml-config-cert-details{margin-top:8px}.saml-config-cert-details summary{cursor:pointer;color:var(--text-secondary);font-size:13px}.saml-config-cert-pem{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);white-space:pre;margin-top:4px;padding:8px;font-size:10px;overflow:auto}.saml-config-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.saml-config-confirm{color:var(--red,#c00);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.saml-config-idp-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;padding:12px;display:flex}.saml-config-idp-info{flex:1;min-width:200px}.saml-config-idp-name{color:var(--text-primary);font-weight:600}.saml-config-idp-meta{color:var(--text-secondary);margin-top:2px;font-size:12px}.saml-config-idp-meta code{font-size:11px}.saml-config-toggle{color:var(--text-primary);-webkit-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:4px;font-size:13px;display:flex}.saml-config-modal{background:var(--bg-surface);border:1px solid var(--border);width:90%;max-width:720px;max-height:90vh;color:var(--text-primary);border-radius:12px;padding:24px;overflow:auto}.saml-config-modal h3.saml-config-section-title{margin-top:0}.saml-config-mode-tabs{gap:8px;margin:16px 0 8px;display:flex}.saml-config-mode-tabs .admin-audit-btn.active{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.saml-config-field{margin-top:12px;display:block}.saml-config-input,.saml-config-select{background:var(--bg-primary);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);box-sizing:border-box;margin-top:4px;padding:6px 10px;font-size:13px}.saml-config-input:focus,.saml-config-select:focus,.saml-config-textarea:focus{border-color:var(--accent);outline:none}.saml-config-input:disabled{opacity:.6;cursor:not-allowed}.saml-config-textarea{background:var(--bg-primary);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius);box-sizing:border-box;resize:vertical;margin-top:4px;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.saml-config-textarea--cert{font-size:11px}.saml-config-checkbox{color:var(--text-primary);-webkit-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:8px;margin-top:12px;font-size:14px;display:flex}.saml-config-preview{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);margin-top:8px;padding:8px 10px;font-size:12px}.saml-config-preview code{word-break:break-all;font-size:11px}.saml-config-modal-footer{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.helper-status-indicator{align-items:center;display:inline-flex;position:relative}.helper-status-indicator-trigger{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:inline-flex}.helper-status-indicator-trigger:hover{background:var(--bg-hover)}.helper-status-indicator-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.helper-status-indicator-dot.pulse{animation:1.6s ease-in-out infinite helper-status-pulse}@keyframes helper-status-pulse{0%,to{opacity:.4}50%{opacity:1}}.helper-status-indicator-label{font-weight:500}.helper-status-popover{z-index:50;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);min-width:280px;max-width:340px;color:var(--text-primary);padding:12px;font-size:13px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 16px #00000040}.helper-status-popover-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;display:flex}.helper-status-popover-dot{border-radius:50%;width:8px;height:8px}.helper-status-popover-title{font-weight:600}.helper-status-popover-meta{color:var(--text-primary);margin-bottom:12px;line-height:1.4}.helper-status-popover-meta p{margin:0 0 6px}.helper-status-popover-meta p:last-child{margin-bottom:0}.helper-status-popover-hint{color:var(--text-secondary);margin-top:6px;font-size:12px}.helper-status-popover-hint.helper-status-popover-update{color:#f59e0b;font-weight:600}.helper-status-popover-actions{flex-direction:column;gap:8px;display:flex}.helper-status-popover-primary{text-align:center;background:var(--accent);color:var(--bg-primary);border:1px solid var(--accent);border-radius:var(--radius);cursor:pointer;padding:6px 12px;font-weight:600;text-decoration:none;display:block}.helper-status-popover-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.helper-status-popover-secondary{flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.helper-status-popover-link{color:var(--accent);text-decoration:none}.helper-status-popover-link:hover{text-decoration:underline}.helper-status-popover-link-button{cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit}.helper-status-popover-disconnect{color:#b95757}.helper-status-popover-disconnect:hover{color:#d83838;text-decoration:underline}.encrypt-modal,.unlock-modal{width:92vw;max-width:460px;padding:20px 22px}.encrypt-modal h2,.unlock-modal h2{color:var(--text-primary);margin:0 0 10px;font-size:16px}.encrypt-modal-blurb,.unlock-modal-blurb{color:var(--text-secondary);margin:0 0 14px;font-size:13px;line-height:1.5}.encrypt-modal label,.unlock-modal label{color:var(--text-secondary);margin-bottom:10px;font-size:12px;display:block}.encrypt-modal input[type=password],.encrypt-modal input[type=text],.unlock-modal input[type=password]{background:var(--bg-primary);border:1px solid var(--border);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:5px;margin-top:4px;padding:7px 9px;font-size:13px}.encrypt-modal-error{color:#d83838;margin:4px 0 10px;font-size:12.5px}.encrypt-recovery-code{background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;display:flex}.encrypt-recovery-code code{letter-spacing:.04em;word-break:break-all;color:var(--accent);flex:1;font-size:13px}.encrypt-ack{align-items:flex-start;gap:8px;margin-bottom:14px;font-size:12.5px;color:var(--text-primary)!important;display:flex!important}.encrypt-ack input{margin-top:2px}.unlock-hint{color:var(--text-secondary);background:var(--bg-primary);border-left:3px solid var(--accent);margin-bottom:12px;padding:6px 10px;font-size:12.5px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.settings-encryption-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.btn-primary{background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;border-radius:5px;padding:7px 14px;font-size:13px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:5px;padding:7px 14px;font-size:13px}.btn-secondary:hover{border-color:var(--accent)}
