:root{--bg:#fafafa;--bg-secondary:#fff;--text:#1a1a2e;--text-secondary:#555;--border:#e0e0e0;--accent:#4361ee;--accent-hover:#3a56d4;--danger:#e63946;--success:#2a9d8f;--warning:#e9c46a;--highlight-yellow:#ffeb3b66;--highlight-green:#4caf504d;--highlight-blue:#2196f34d;--highlight-pink:#e91e634d;--sidebar-width:260px;--reader-max-width:720px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:Georgia, "Times New Roman", serif;--font-mono:"SF Mono", "Fira Code", monospace;--radius:8px;--shadow:0 1px 3px #00000014}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border-radius:var(--radius);border:none;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{border:1px solid var(--border);color:var(--text);background:0 0}.btn-secondary:hover{background:var(--bg)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-sm{padding:.25rem .5rem;font-size:.75rem}.btn-icon{color:var(--text-secondary);background:0 0;align-items:center;padding:.25rem;display:inline-flex}.btn-icon:hover{color:var(--accent)}input,textarea,select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);color:var(--text);width:100%;padding:.5rem .75rem;font-family:inherit;font-size:.875rem}input:focus,textarea:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #4361ee1a}textarea{resize:vertical;min-height:80px}.layout{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem;display:flex}.sidebar-header h1{color:var(--accent);font-size:1.25rem;font-weight:700}.sidebar-nav{flex:1;padding:.5rem 0}.sidebar-nav a,.sidebar-nav button{text-align:left;width:100%;color:var(--text);background:0 0;border-radius:0;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;text-decoration:none;display:flex}.sidebar-nav a:hover,.sidebar-nav button:hover{background:var(--bg);text-decoration:none}.sidebar-nav a.active{color:var(--accent);background:#4361ee14;font-weight:500}.sidebar-section{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:.75rem 1rem .25rem;font-size:.7rem;font-weight:600}.main-content{flex-direction:column;flex:1;display:flex;overflow-y:auto}.page-header{border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.page-header h2{font-size:1.25rem;font-weight:600}.page-content{flex:1;padding:1.5rem}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.doc-list{flex-direction:column;gap:.5rem;display:flex}.doc-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);cursor:pointer;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;transition:all .15s;display:flex}.doc-item:hover{border-color:var(--accent);box-shadow:0 2px 8px #4361ee1a}.doc-item-icon{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.75rem;font-weight:600;display:flex}.doc-item-icon.pdf{color:#e63946;background:#fde8e8}.doc-item-icon.epub{color:#2e7d32;background:#e8f5e9}.doc-item-icon.article{color:#1565c0;background:#e3f2fd}.doc-item-icon.reference{color:#e65100;background:#fff3e0}.doc-item-content{flex:1;min-width:0}.doc-item-title{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:500;overflow:hidden}.doc-item-meta{color:var(--text-secondary);flex-wrap:wrap;gap:.5rem;margin-top:.25rem;font-size:.75rem;display:flex}.tag{color:var(--accent);background:#4361ee14;border-radius:12px;padding:.125rem .5rem;font-size:.7rem;font-weight:500;display:inline-block}.status-badge{border-radius:12px;padding:.125rem .5rem;font-size:.7rem;font-weight:500;display:inline-block}.status-badge.inbox{color:#e65100;background:#fff3e0}.status-badge.to_read{color:#1565c0;background:#e3f2fd}.status-badge.reading{color:#2e7d32;background:#e8f5e9}.status-badge.archived{color:#7b1fa2;background:#f3e5f5}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border-radius:var(--radius);width:100%;max-width:500px;max-height:90vh;padding:1.5rem;overflow-y:auto}.modal h3,.modal .form-group{margin-bottom:1rem}.modal label{margin-bottom:.25rem;font-size:.8rem;font-weight:500;display:block}.modal .btn-row{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.reader-container{flex-direction:column;flex:1;height:100vh;display:flex}.reader-toolbar{border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.reader-body{flex:1;position:relative;overflow:auto}.article-reader{max-width:var(--reader-max-width);font-family:var(--font-serif);color:var(--text);margin:0 auto;padding:2rem 1.5rem;font-size:1.125rem;line-height:1.7}.article-reader h1,.article-reader h2,.article-reader h3{font-family:var(--font-sans);margin:1.5em 0 .5em}.article-reader p{margin-bottom:1em}.article-reader pre{border-radius:var(--radius);font-family:var(--font-mono);background:#f5f5f5;padding:1rem;font-size:.85rem;line-height:1.5;overflow-x:auto}.article-reader code{font-family:var(--font-mono);background:#f5f5f5;border-radius:3px;padding:.15em .3em;font-size:.85em}.article-reader pre code{background:0 0;padding:0}.article-reader img{border-radius:var(--radius);max-width:100%;height:auto}.article-reader blockquote{border-left:3px solid var(--accent);color:var(--text-secondary);margin:1em 0;padding-left:1rem}.article-reader a{color:var(--accent)}.pdf-container{width:100%;height:100%}.pdf-container iframe{border:none;width:100%;height:100%}.epub-container{width:100%;height:100%;position:relative}.search-bar{border-bottom:1px solid var(--border);padding:.75rem 1rem}.search-bar input{background:var(--bg)}.filter-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1.5rem;display:flex}.filter-bar select{width:auto}.empty-state{text-align:center;color:var(--text-secondary);padding:3rem}.empty-state p{margin-top:.5rem}.highlight-list{flex-direction:column;gap:.75rem;display:flex}.highlight-item{border-left:3px solid var(--warning);border-radius:0 var(--radius) var(--radius) 0;background:#e9c46a14;padding:.75rem}.highlight-item .hl-text{margin-bottom:.5rem;font-style:italic}.highlight-item .hl-note{color:var(--text-secondary);border-left:2px solid var(--border);padding-left:.5rem;font-size:.85rem}.highlight-item .hl-meta{color:var(--text-secondary);margin-top:.25rem;font-size:.7rem}.notes-panel{border-left:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;width:320px;padding:1rem;overflow-y:auto}.notes-panel h3{margin-bottom:.75rem;font-size:.9rem}.toast{border-radius:var(--radius);background:var(--text);color:#fff;z-index:2000;padding:.75rem 1rem;font-size:.85rem;animation:.2s slideIn;position:fixed;bottom:1.5rem;right:1.5rem}@keyframes slideIn{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.loading{color:var(--text-secondary);justify-content:center;align-items:center;padding:3rem;display:flex}@media (width<=768px){.sidebar{display:none}.sidebar.open{z-index:100;width:100%;max-width:300px;display:flex;position:fixed;inset:0}.page-content{padding:1rem}.notes-panel{display:none}.notes-panel.open{z-index:100;display:block;position:fixed;top:0;bottom:0;right:0}.article-reader{padding:1rem;font-size:1rem}.filter-bar{padding:.5rem}}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{width:100%;max-width:400px}.login-card h1{text-align:center;color:var(--accent);margin-bottom:1.5rem}.login-card .form-group{margin-bottom:1rem}.login-card label{margin-bottom:.25rem;font-size:.8rem;font-weight:500;display:block}.login-card button{width:100%;margin-top:.5rem}.login-card .error{color:var(--danger);margin-top:.5rem;font-size:.8rem}
