:root { font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; line-height: 1.5; font-weight: 400; color-scheme: light dark; color: rgba(255, 255, 255, 0.87); background-color: #242424; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-text-size-adjust: 100%; } body { margin: 0; min-width: 320px; min-height: 100vh; } #root { max-width: 1280px; margin: 0 auto; padding: 2rem; } .app { text-align: center; } .app header { margin-bottom: 2rem; } .app header h1 { font-size: 2.5rem; margin: 0; color: #646cff; } .app header p { margin: 0.5rem 0 0 0; color: #888; } /* Login Styles */ .login-container { display: flex; justify-content: center; align-items: center; min-height: 50vh; } .login-card { background: #1a1a1a; padding: 2rem; border-radius: 8px; border: 1px solid #333; max-width: 400px; width: 100%; } .login-card h2 { margin: 0 0 1rem 0; color: #fff; } .login-card p { margin: 0 0 1.5rem 0; color: #ccc; } .login-button { background: #646cff; color: white; border: none; padding: 0.75rem 1.5rem; border-radius: 4px; font-size: 1rem; cursor: pointer; transition: background-color 0.2s; } .login-button:hover:not(:disabled) { background: #535bf2; } .login-button:disabled { opacity: 0.6; cursor: not-allowed; } /* Bookmarks Styles */ .bookmarks-container { text-align: left; } .bookmarks-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid #333; } .bookmarks-header > div { flex: 1; } .bookmarks-header h2 { margin: 0; color: #fff; } .user-info { margin: 0.5rem 0 0 0; color: #888; font-size: 0.9rem; font-family: monospace; } .bookmark-count { color: #666; font-size: 0.9rem; margin: 0.5rem 0; } .bookmark-urls { margin: 1rem 0; } .bookmark-urls h4 { margin: 0 0 0.5rem 0; font-size: 0.9rem; color: #666; } .bookmark-url { display: block; margin: 0.25rem 0; color: #007bff; text-decoration: none; word-break: break-all; } .bookmark-url:hover { text-decoration: underline; } .bookmark-events { margin: 1rem 0; } .bookmark-events h4 { margin: 0 0 0.5rem 0; font-size: 0.9rem; color: #666; } .event-ids { display: flex; flex-wrap: wrap; gap: 0.5rem; } .event-id { background: #f5f5f5; padding: 0.25rem 0.5rem; border-radius: 4px; font-family: monospace; font-size: 0.8rem; color: #666; } .more-events { color: #999; font-style: italic; font-size: 0.8rem; } .parsed-content { margin: 1rem 0; line-height: 1.6; word-wrap: break-word; overflow-wrap: break-word; word-break: break-word; } .nostr-mention { color: #007bff; text-decoration: none; font-family: monospace; background: #f8f9fa; padding: 0.2rem 0.4rem; border-radius: 3px; font-size: 0.9rem; word-wrap: break-word; overflow-wrap: break-word; word-break: break-word; } .nostr-mention:hover { background: #e9ecef; text-decoration: underline; } .nostr-link { color: #007bff; text-decoration: none; word-wrap: break-word; overflow-wrap: break-word; word-break: break-word; } .nostr-link:hover { text-decoration: underline; } .logout-button { background: #dc3545; color: white; border: none; padding: 0.5rem 1rem; border-radius: 4px; cursor: pointer; transition: background-color 0.2s; } .logout-button:hover { background: #c82333; } .loading { text-align: center; padding: 2rem; color: #ccc; } .empty-state { text-align: center; padding: 3rem; color: #888; } .empty-state p { margin: 0.5rem 0; } .bookmarks-list { display: flex; flex-direction: column; gap: 1.5rem; max-width: 600px; margin: 0 auto; } /* Two-pane layout */ .two-pane { display: grid; grid-template-columns: 360px 1fr; gap: 1rem; align-items: start; } .pane.sidebar { position: sticky; top: 1rem; align-self: start; } .pane.main { min-height: 60vh; } .content-panel { background: #1a1a1a; border: 1px solid #333; border-radius: 12px; padding: 1rem; } .content-panel.empty { color: #888; } .content-title { margin: 0 0 1rem 0; } .content-html { color: #ddd; line-height: 1.6; word-wrap: break-word; overflow-wrap: break-word; word-break: break-word; } .bookmark-item { background: #1a1a1a; padding: 1.5rem; border-radius: 12px; border: 1px solid #333; transition: all 0.2s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .bookmark-item:hover { border-color: #646cff; transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); } .bookmark-item h3 { margin: 0 0 0.5rem 0; color: #fff; font-size: 1.2rem; } .bookmark-url { color: #646cff; text-decoration: none; display: block; margin-bottom: 0.5rem; word-break: break-all; } .bookmark-url:hover { text-decoration: underline; } .bookmark-content { color: #ccc; margin: 0.5rem 0; line-height: 1.4; word-wrap: break-word; overflow-wrap: break-word; word-break: break-word; } .bookmark-meta { color: #888; font-size: 0.9rem; margin-top: 0.5rem; } /* Individual Bookmarks Styles */ .individual-bookmarks { margin: 1rem 0; } .individual-bookmarks h4 { margin: 0 0 1rem 0; font-size: 1rem; color: #fff; } .bookmarks-grid { display: flex; flex-direction: column; gap: 1rem; } .individual-bookmark { background: #2a2a2a; padding: 1.25rem; border-radius: 8px; border: 1px solid #444; transition: all 0.2s ease; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); word-wrap: break-word; overflow-wrap: break-word; word-break: break-word; overflow: hidden; } .individual-bookmark:hover { border-color: #646cff; transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } .bookmark-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.75rem; flex-wrap: wrap; gap: 0.5rem; } .bookmark-type { background: #646cff; color: white; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.8rem; font-weight: 500; text-transform: uppercase; display: flex; align-items: center; gap: 0.25rem; } .bookmark-id { font-family: monospace; font-size: 0.8rem; color: #888; background: #1a1a1a; padding: 0.25rem 0.5rem; border-radius: 4px; } .bookmark-date { font-size: 0.8rem; color: #666; } .individual-bookmark .bookmark-content { margin: 0.75rem 0; color: #ccc; line-height: 1.5; word-wrap: break-word; overflow-wrap: break-word; word-break: break-word; } .individual-bookmark .bookmark-meta { display: flex; gap: 1rem; flex-wrap: wrap; font-size: 0.8rem; color: #888; margin-top: 0.75rem; } .individual-bookmark .bookmark-meta span { background: #1a1a1a; padding: 0.25rem 0.5rem; border-radius: 4px; font-family: monospace; } /* Private Bookmark Styles */ .private-bookmark { border-left: 4px solid #ff6b6b; background: linear-gradient(135deg, #2a2a2a 0%, #1f1f1f 100%); } .private-bookmark:hover { border-color: #ff6b6b; box-shadow: 0 2px 8px rgba(255, 107, 107, 0.2); } .private-indicator { margin-left: 0.5rem; color: #ff6b6b; } @media (prefers-color-scheme: light) { :root { color: #213547; background-color: #ffffff; } .login-card, .bookmark-item { background: #f9f9f9; border-color: #ddd; } .bookmarks-header { border-bottom-color: #ddd; } .bookmark-item h3 { color: #213547; } .bookmark-content { color: #666; } .user-info { color: #666; } .individual-bookmark { background: #f5f5f5; border-color: #ddd; } .individual-bookmark:hover { border-color: #646cff; } .individual-bookmarks h4 { color: #213547; } .individual-bookmark .bookmark-content { color: #666; } .bookmark-id { background: #e9ecef; color: #666; } .individual-bookmark .bookmark-meta span { background: #e9ecef; color: #666; } .private-bookmark { background: linear-gradient(135deg, #f5f5f5 0%, #e9ecef 100%); } }