:root{--bg: #17181c;--bg-raised: #1f2126;--bg-hover: #2a2d34;--border: #2f323a;--text: #e6e6e9;--text-dim: #9497a1;--accent: #6c8cff;--success: #7ee787;--error: #f28b82}@media(prefers-color-scheme:light){:root:not([data-theme]){--bg: #ffffff;--bg-raised: #f4f5f7;--bg-hover: #e9ebef;--border: #dde0e5;--text: #1c1d21;--text-dim: #6b6e76;--accent: #3b5bdb;--success: #1e7d32;--error: #c0392b}}:root[data-theme=light]{--bg: #ffffff;--bg-raised: #f4f5f7;--bg-hover: #e9ebef;--border: #dde0e5;--text: #1c1d21;--text-dim: #6b6e76;--accent: #3b5bdb;--success: #1e7d32;--error: #c0392b}.shelve-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:12px;max-width:min(480px,calc(100vw - 32px));padding:10px 12px 10px 16px;border-radius:6px;background:var(--bg-raised);border:1px solid var(--error);color:var(--error);font-size:13px;box-shadow:0 4px 16px #0000004d}.shelve-toast-dismiss{flex-shrink:0;background:none;border:none;color:inherit;font-size:16px;line-height:1;cursor:pointer;padding:0}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}#app{height:100vh}.layout{display:flex;height:100%;position:relative}.rail{width:180px;flex-shrink:0;background:var(--bg-raised);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:12px 8px;overflow-y:auto}.rail.collapsed{width:0;padding:0;overflow:hidden;border-right:none}.rail-item{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px;border-radius:6px;cursor:pointer;color:var(--text-dim)}.rail-item:hover{background:var(--bg-hover)}.rail-item.active{background:var(--bg-hover);color:var(--text)}.rail-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-item-delete{color:var(--text-dim);cursor:pointer;font-size:14px;line-height:1;visibility:hidden;flex-shrink:0}.rail-item:hover .rail-item-delete{visibility:visible}.rail-item-delete:hover{color:var(--text)}.rail-add{margin-top:8px;font-size:12px;color:var(--text-dim);cursor:pointer;padding:6px 8px}.rail-add:hover{color:var(--text)}.rail-trash{margin-top:16px}.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.toolbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.toolbar button.icon-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:16px;padding:4px 6px}.toolbar button.icon-btn:hover{color:var(--text)}.toolbar .icon-btn:last-child{display:none}.sync-status{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin:0 6px}.sync-status-unconfigured{background:var(--text-dim)}.sync-status-connected{background:#2ecc71}.sync-status-error{background:#e74c3c}.search-input{flex:1;max-width:320px;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:6px 10px;font-size:13px}.search-input:focus{outline:1px solid var(--accent)}.new-folder-btn{margin-left:auto;background:var(--bg-raised);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px}.new-folder-btn:hover{background:var(--bg-hover)}.folders,.trash,.settings{flex:1;overflow-y:auto;padding:16px}.settings{max-width:480px}.trash-heading-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.trash-heading{font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text)}.trash-empty-btn{background:none;border:1px solid var(--border);color:var(--text-dim);border-radius:6px;padding:4px 10px;cursor:pointer;font-size:12px}.trash-empty-btn:hover{border-color:#c0392b;color:#e74c3c}.trash-list{display:flex;flex-direction:column;gap:2px}.trash-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px}.trash-item:hover{background:var(--bg-hover)}.trash-item.trash-item-descendant{margin-left:24px}.trash-item-checkbox{flex-shrink:0;accent-color:var(--accent);cursor:pointer}.trash-item-expand-toggle{flex-shrink:0;width:22px;color:var(--text-dim);cursor:pointer;font-size:26px;text-align:center;line-height:1;position:relative;top:-3px}.trash-item-expand-toggle:hover{color:var(--text)}.trash-item-descendants{display:flex;flex-direction:column;gap:2px;margin-bottom:4px}.trash-item .favicon,.trash-item .favicon-placeholder{width:16px;height:16px;flex-shrink:0;border-radius:3px}.trash-folder-badge{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:44px;height:16px;padding:0 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);background:var(--bg-hover)}.trash-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-deleted-at{color:var(--text-dim);font-size:12px;flex-shrink:0}.trash-restore-btn,.trash-delete-forever-btn{background:var(--bg-raised);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:4px 10px;cursor:pointer;font-size:12px;flex-shrink:0}.trash-restore-btn:hover{background:var(--bg-hover)}.trash-delete-forever-btn:hover{border-color:#c0392b;color:#e74c3c}.trash-selection-bar{position:sticky;bottom:-16px;margin:16px -16px -16px;padding:10px 16px;background:var(--bg-raised);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.trash-selection-count{font-size:12px;color:var(--text-dim)}.trash-selection-actions{display:flex;align-items:center;gap:8px}.trash-selection-btn{background:var(--bg-hover);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer}.trash-selection-btn:hover{background:var(--bg)}.trash-selection-btn-danger:hover{border-color:#c0392b;color:#e74c3c}.trash-selection-clear{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px;padding:6px}.trash-selection-clear:hover{color:var(--text)}.folder-section{margin-bottom:24px}.folder-section.drag-over{outline:1px dashed var(--accent);border-radius:8px}.folder-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:4px;border-radius:6px;cursor:grab}.folder-header:hover{background:var(--bg-hover)}.folder-drop-indicator{height:2px;background:var(--accent);border-radius:1px}.collapse-toggle{color:var(--text);cursor:pointer;font-size:26px;width:22px;flex-shrink:0;text-align:center;line-height:1;position:relative;top:-3px}.folder-name{font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text);cursor:text}.folder-edit,.folder-delete{color:var(--text-dim);cursor:pointer;font-size:12px;visibility:hidden}.folder-header:hover .folder-edit,.folder-header:hover .folder-delete{visibility:visible}.folder-edit:hover,.folder-delete:hover{color:var(--text)}.entry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-content:start;gap:4px;min-height:72px;border-radius:8px;position:relative}.entry-drop-indicator{position:absolute;width:2px;background:var(--accent);border-radius:1px;pointer-events:none}.entry{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:grab;min-width:0}.entry:hover{background:var(--bg-hover)}.entry-icon-slot{position:relative;width:16px;height:16px;flex-shrink:0}.entry-icon-slot .favicon,.entry-icon-slot .favicon-placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:3px;transition:opacity .1s}.favicon-placeholder{background:var(--border);border-radius:3px}.entry-checkbox{position:absolute;inset:0;margin:0;width:100%;height:100%;accent-color:var(--accent);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .1s}.entry:hover .entry-checkbox,.entry.selected .entry-checkbox{opacity:1;pointer-events:auto}.entry:hover .entry-icon-slot .favicon,.entry:hover .entry-icon-slot .favicon-placeholder,.entry.selected .entry-icon-slot .favicon,.entry.selected .entry-icon-slot .favicon-placeholder{opacity:0}.entry .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry .entry-edit,.entry .entry-delete{color:var(--text-dim);visibility:hidden;font-size:12px;flex-shrink:0;cursor:pointer}.entry .entry-edit{margin-left:auto}.entry:hover .entry-edit,.entry:hover .entry-delete{visibility:visible}.entry .entry-edit:hover,.entry .entry-delete:hover{color:var(--text)}.entry-selection-bar{position:sticky;bottom:-16px;margin:16px -16px -16px;padding:10px 16px;background:var(--bg-raised);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.entry-selection-count{font-size:12px;color:var(--text-dim)}.entry-selection-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.entry-selection-btn{background:var(--bg-hover);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer}.entry-selection-btn:hover{background:var(--bg)}.entry-selection-btn-danger:hover{border-color:#c0392b;color:#e74c3c}.entry-selection-clear{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px;padding:6px}.entry-selection-clear:hover{color:var(--text)}.note-icon{display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-dim);background:var(--bg-hover)}.entry.entry-add-link{width:28px;height:28px;padding:0;justify-content:center;justify-self:start;color:var(--text-dim);cursor:pointer;border:1px dashed var(--border);border-radius:8px;font-size:15px;line-height:1}.entry.entry-add-link:hover{color:var(--text);border-color:var(--text-dim)}.empty-hint{color:var(--text-dim);font-size:13px;padding:16px;border-radius:8px;min-height:72px}.empty-hint.drag-over{outline:1px dashed var(--accent)}.folder-list{max-height:240px;overflow-y:auto;margin-bottom:8px}.workspace-label{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin:8px 0 4px}.workspace-label:first-child{margin-top:0}.folder-item{padding:6px 8px;border-radius:6px;cursor:pointer}.folder-item:hover{background:var(--bg-hover)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-box{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:16px;min-width:280px;max-width:100%;box-shadow:0 8px 24px #0006}.modal-title{font-size:13px;font-weight:600;margin-bottom:10px}.modal-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:7px 10px;font-size:13px;margin-bottom:14px}.modal-input:focus{outline:1px solid var(--accent)}.modal-textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:7px 10px;font-size:13px;font-family:inherit;resize:vertical;margin-bottom:4px}.modal-textarea:focus{outline:1px solid var(--accent)}.modal-hint{color:var(--text-dim);font-size:11px;margin-bottom:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-btn{background:var(--bg-hover);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer}.modal-btn:hover{opacity:.9}.modal-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.modal-btn-danger{background:#c0392b;border-color:#c0392b;color:#fff}.settings .title-row{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.settings h1{font-size:16px;margin:0}.settings .title-row .version{color:var(--text-dim);font-size:12px}.settings h2{font-size:14px;margin-top:28px;margin-bottom:4px}.settings p.hint{color:var(--text-dim);font-size:13px;margin-top:0;margin-bottom:20px}.back-btn{color:var(--text-dim);border:none;background:none;padding:4px 0;margin-bottom:8px;font-size:13px;cursor:pointer}.back-btn:hover{color:var(--text)}.field{margin-bottom:16px}.field label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:6px}.field input{width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:8px 10px;font-size:13px}.field input:focus{outline:1px solid var(--accent)}.theme-toggle{display:flex;gap:6px}.theme-toggle-btn{flex:1;background:var(--bg-raised);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer}.theme-toggle-btn:hover{background:var(--bg-hover)}.theme-toggle-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.save-btn{background:var(--accent);border:none;color:#fff;border-radius:6px;padding:8px 16px;cursor:pointer;font-size:13px}.save-btn:hover{opacity:.9}.status{margin-top:12px;font-size:12px;color:var(--text-dim)}.status.success{color:var(--success)}.status.error{color:var(--error)}.status a{color:inherit;text-decoration:underline}.data-row{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.menu-btn{background:var(--bg-raised);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 12px;cursor:pointer;font-size:13px}.menu-btn:hover{background:var(--border)}@media(max-width:768px){.rail{position:fixed;inset:0 auto 0 0;z-index:100;width:240px;padding:44px 8px 12px;border-right:1px solid var(--border);box-shadow:2px 0 12px #0000004d;transition:transform .15s ease;transform:translate(0)}.rail.collapsed{width:240px;overflow-y:auto;border-right:1px solid var(--border);transform:translate(-100%)}.toolbar{flex-wrap:wrap}.search-input{max-width:none;order:10;flex-basis:100%}.icon-btn-rail-open{position:fixed;top:8px;left:8px;z-index:101;background:var(--bg-raised);border-radius:6px}}
