/* ========================================= Special Views for Todos and Notes ========================================= */ /* --- Layout Wrapper (injected by JS) --- */ .special-view-wrapper { display: flex; flex-direction: row; width: 100%; min-height: calc(100vh - 60px); /* Adjust for header */ } /* --- TODO VIEW --- */ body.view-todo .content-container { padding: 2rem; background-color: var(--bg-body); min-height: 100vh; } [data-theme="dark"] body.view-todo .content-container { background-color: var(--bg-body); } body.view-todo #linklist { display: block; /* Show default list when wrapper is not active */ } /* Sidebar */ .todo-sidebar { width: 280px; background-color: var(--bg-sidebar); border-right: 1px solid var(--border); padding: 1rem; display: flex; flex-direction: column; flex-shrink: 0; } [data-theme="dark"] .todo-sidebar { background-color: #1e293b; border-color: #334155; } .create-task-btn { width: 100%; padding: 0.75rem 1rem; background-color: var(--primary-color, #2563eb); color: white; border: none; border-radius: 2rem; font-weight: 500; display: flex; align-items: center; justify-content: center; gap: 0.5rem; cursor: pointer; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); transition: transform 0.2s, background-color 0.2s; margin-bottom: 1.5rem; } .create-task-btn:hover { background-color: var(--primary-dark, #1d4ed8); transform: translateY(-1px); } .todo-list-item { padding: 0.75rem 1rem; margin-bottom: 0.25rem; border-radius: 0.5rem; cursor: pointer; color: var(--text-color, #334155); display: flex; align-items: center; gap: 0.75rem; transition: background-color 0.2s; } [data-theme="dark"] .todo-list-item { color: #cbd5e1; } .todo-list-item:hover { background-color: rgba(0, 0, 0, 0.05); } [data-theme="dark"] .todo-list-item:hover { background-color: rgba(255, 255, 255, 0.05); } .todo-list-item.active { background-color: rgba(37, 99, 235, 0.1); color: var(--primary-color, #2563eb); font-weight: 600; } /* Main Task Area */ .todo-main { flex: 1; padding: 2rem; overflow-y: auto; background-color: var(--bg-body); } [data-theme="dark"] .todo-main { background-color: #0f172a; } .todo-main-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .todo-main-header h2 { font-size: 1.5rem; font-weight: 600; margin: 0; } /* Todo Item */ .todo-item { padding: 1rem; border-bottom: 1px solid var(--border-color, #e2e8f0); display: flex; align-items: center; /* keep aligned */ gap: 1rem; transition: background-color 0.2s; } [data-theme="dark"] .todo-item { border-bottom-color: #334155; } .todo-item:hover { background-color: rgba(0, 0, 0, 0.02); } .todo-checkbox { width: 20px; height: 20px; border: 2px solid var(--text-light, #94a3b8); border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .todo-checkbox.checked { background-color: var(--primary-color, #2563eb); border-color: var(--primary-color, #2563eb); color: white; } .todo-content { flex: 1; display: flex; flex-direction: column; gap: 0.25rem; } .todo-title { font-size: 1rem; color: var(--text-color, #0f172a); font-weight: 400; } [data-theme="dark"] .todo-title { color: #f1f5f9; } .todo-item.completed .todo-title { text-decoration: line-through; color: var(--text-light, #94a3b8); } .todo-meta { display: flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; color: var(--text-light, #64748b); } .todo-badge { padding: 0.125rem 0.5rem; border-radius: 1rem; background-color: rgba(0, 0, 0, 0.05); font-size: 0.7rem; } [data-theme="dark"] .todo-badge { background-color: rgba(255, 255, 255, 0.1); } .due-date { display: flex; align-items: center; gap: 0.25rem; } .due-date.overdue { color: var(--danger-color, #ef4444); } /* --- NOTES VIEW --- */ /* Wrapper */ body.view-notes .content-container { padding: 2rem; background-color: var(--bg-body); min-height: 100vh; } [data-theme="dark"] body.view-notes .content-container { background-color: var(--bg-body); } /* Tool Bar / Input Area */ .notes-top-bar { display: flex; justify-content: center; align-items: flex-start; margin-bottom: 2rem; position: relative; padding-right: 60px; /* Space for toggle */ } .note-input-container { width: 600px; max-width: 100%; background-color: var(--background-secondary, #ffffff); border-radius: 8px; box-shadow: 0 1px 2px 0 rgba(60, 64, 67, 0.3), 0 2px 6px 2px rgba(60, 64, 67, 0.15); transition: box-shadow 0.2s; overflow: hidden; } [data-theme="dark"] .note-input-container { background-color: var(--bg-sidebar); border: 1px solid var(--border); box-shadow: none; } .note-input-collapsed { display: flex; align-items: center; padding: 12px 16px; cursor: text; color: var(--text-light, #80868b); font-weight: 500; font-size: 1rem; } .note-input-placeholder { flex: 1; } .note-input-actions { display: flex; gap: 16px; } .note-input-actions button { background: none; border: none; cursor: pointer; color: var(--text-light, #80868b); padding: 4px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background-color 0.2s, color 0.2s; } .note-input-actions button:hover { background-color: rgba(136, 136, 136, 0.1); color: var(--text-color); } /* Tools (View Toggle) */ .notes-tools { position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: flex; gap: 0.5rem; } .icon-btn { background: none; border: none; cursor: pointer; color: var(--text-light, #5f6368); width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background-color 0.2s; } .icon-btn:hover { background-color: rgba(136, 136, 136, 0.1); } .icon-btn.active { color: var(--primary-color, #202124); /* or specific active color */ background-color: rgba(136, 136, 136, 0.1); /* Keep highlight style */ } [data-theme="dark"] .icon-btn { color: #9aa0a6; } [data-theme="dark"] .icon-btn.active { color: #e8eaed; } /* --- LOGIC: Masonry vs List --- */ /* Masonry Grid */ .notes-masonry { column-count: 4; column-gap: 16px; width: 100%; } @media (max-width: 1200px) { .notes-masonry { column-count: 3; } } @media (max-width: 800px) { .notes-masonry { column-count: 2; } } @media (max-width: 500px) { .notes-masonry { column-count: 1; } } /* List View */ .notes-list-view { display: flex; flex-direction: column; align-items: center; gap: 16px; width: 600px; max-width: 100%; margin: 0 auto; } .notes-list-view .note-card { width: 100%; } .note-modal-overlay { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(0, 0, 0, 0.55); z-index: 1000; } .note-modal-overlay.open { display: flex; } .note-modal { width: min(720px, 92vw); max-height: 86vh; overflow: hidden; border-radius: 12px; background: var(--background-secondary, #ffffff); border: 1px solid rgba(0, 0, 0, 0.12); color: inherit; display: flex; flex-direction: column; } [data-theme="dark"] .note-modal { background: #202124; border-color: rgba(255, 255, 255, 0.12); } .note-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 18px 20px 10px; flex-shrink: 0; } .note-modal .note-title { font-size: 1.6rem; line-height: 1.35; margin: 0; color: inherit; font-weight: 500; } .note-modal-content { flex: 1; overflow-y: auto; padding: 0 20px 18px; } .note-modal .note-body { font-size: 1rem; line-height: 1.75; display: block; -webkit-line-clamp: initial; line-clamp: initial; -webkit-box-orient: initial; max-height: none; overflow: visible; color: inherit; } .note-modal .note-body * { color: inherit; } .note-modal-tags { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px 20px 12px; border-top: 1px solid rgba(0, 0, 0, 0.12); flex-shrink: 0; } [data-theme="dark"] .note-modal-tags { border-top-color: rgba(255, 255, 255, 0.12); } .note-modal-tags.is-empty { display: none; } .note-modal-tags .note-tag { display: inline-flex; align-items: center; gap: 0.25rem; background: var(--tag-bg); color: var(--tag-text); border-radius: 999px; padding: 0.25rem 0.5rem; font-size: 0.75rem; font-weight: 500; } .note-modal-tags .note-tag-text { line-height: 1.2; } .note-modal-tags .note-tag-remove-btn { display: inline-flex; align-items: center; justify-content: center; width: 1.1rem; height: 1.1rem; border: none; border-radius: 999px; background: rgba(0, 0, 0, 0.12); color: currentColor; cursor: pointer; padding: 0; line-height: 1; font-size: 0.8rem; } [data-theme="dark"] .note-modal-tags .note-tag-remove-btn { background: rgba(255, 255, 255, 0.18); } .note-modal-actions { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 8px 12px; border-top: 1px solid rgba(0, 0, 0, 0.12); background: rgba(0, 0, 0, 0.03); flex-shrink: 0; flex-wrap: wrap; } [data-theme="dark"] .note-modal-actions { border-top-color: rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.06); } .note-modal-actions-left { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; } .note-modal-actions-left > button, .note-modal-actions-left > a, .note-modal-actions-left > .note-modal-color-picker > button { background: transparent; border: none; color: inherit; opacity: 0.9; width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; text-decoration: none; } .note-modal-actions-left > button:hover, .note-modal-actions-left > a:hover, .note-modal-actions-left > .note-modal-color-picker > button:hover { opacity: 1; background: rgba(0, 0, 0, 0.08); } [data-theme="dark"] .note-modal-actions-left > button:hover, [data-theme="dark"] .note-modal-actions-left > a:hover, [data-theme="dark"] .note-modal-actions-left > .note-modal-color-picker > button:hover { background: rgba(255, 255, 255, 0.14); } .note-modal-close-btn { background: transparent; border: none; color: inherit; font-weight: 600; border-radius: 8px; padding: 6px 10px; cursor: pointer; } .note-modal-close-btn:hover { background: rgba(0, 0, 0, 0.08); } [data-theme="dark"] .note-modal-close-btn:hover { background: rgba(255, 255, 255, 0.14); } .note-modal-pin-toggle { background: transparent; border: none; color: inherit; opacity: 0.85; width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; } .note-modal-pin-toggle:hover, .note-modal-pin-toggle.active { opacity: 1; background-color: rgba(0, 0, 0, 0.08); } [data-theme="dark"] .note-modal-pin-toggle:hover, [data-theme="dark"] .note-modal-pin-toggle.active { background-color: rgba(255, 255, 255, 0.14); } /* --- CARD STYLING --- */ .note-card { background-color: var(--background-secondary, #ffffff); border: 1px solid #e0e0e0; border-radius: 8px; margin-bottom: 16px; break-inside: avoid; position: relative; transition: box-shadow 0.2s, transform 0.2s, background-color 0.2s; overflow: visible; color: var(--note-card-fg, #202124); } [data-theme="dark"] .note-card { background-color: #202124; border: 1px solid #5f6368; color: #e8eaed; } .note-card:hover { box-shadow: 0 1px 2px 0 rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15); } [data-theme="dark"] .note-card:hover { background-color: #202124; } /* Cover Image */ .note-cover { overflow: hidden; border-radius: 8px 8px 0 0; } .note-cover img { width: 100%; height: auto; display: block; object-fit: cover; } /* Inner Content */ .note-inner { padding: 12px 16px; display: flex; flex-direction: column; gap: 8px; position: relative; z-index: 2; } /* Title */ .note-title { font-size: 1rem; font-weight: 500; margin: 0; line-height: 1.5rem; color: var(--text-color, #202124); } [data-theme="dark"] .note-title { color: #e8eaed; } /* Body (Truncated) */ .note-body { font-size: 0.875rem; line-height: 1.25rem; color: var(--text-color, #202124); word-wrap: break-word; display: -webkit-box; -webkit-line-clamp: 12; line-clamp: 12; -webkit-box-orient: vertical; overflow: hidden; max-height: 300px; } [data-theme="dark"] .note-body { color: #e8eaed; } /* Tags */ .note-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; } .note-tag { display: inline-flex; align-items: center; gap: 0.25rem; background: var(--tag-bg); padding: 0.25rem 0.5rem; border-radius: 999px; font-size: 0.75rem; font-weight: 500; color: var(--tag-text); } [data-theme="dark"] .note-tag { background: var(--tag-bg); color: var(--tag-text); } .note-tag-text { line-height: 1.2; } .note-tag-remove-btn { display: inline-flex; align-items: center; justify-content: center; width: 1.1rem; height: 1.1rem; border: none; border-radius: 999px; background: rgba(0, 0, 0, 0.12); color: currentColor; cursor: pointer; padding: 0; line-height: 1; font-size: 0.8rem; } [data-theme="dark"] .note-tag-remove-btn { background: rgba(255, 255, 255, 0.18); } .note-tag:hover, .note-modal-tags .note-tag:hover { background: var(--primary); color: white; } .note-tag:hover .note-tag-remove-btn, .note-modal-tags .note-tag:hover .note-tag-remove-btn { background: rgba(255, 255, 255, 0.22); } .note-hover-actions { display: flex; align-items: center; gap: 0px; /* evenly spaced */ margin-top: 8px; margin-left: -8px; /* Alignment fix */ color: var(--text-light, #5f6368); opacity: 0; /* Hidden by default */ transition: opacity 0.2s; position: relative; /* For palette popup */ z-index: 2; } [data-theme="dark"] .note-hover-actions { color: #9aa0a6; } /* Show actions on hover */ .note-card:hover .note-hover-actions { opacity: 1; } /* Always show actions on touch devices? (Can't detect easily here, but opacity 1 is safer for UX if no hover) */ @media (hover: none) { .note-hover-actions { opacity: 1; } } .note-hover-actions > button, .note-hover-actions > a, .note-hover-actions > div > button { background: none; border: none; width: 34px; /* Touch target */ height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: inherit; cursor: pointer; font-size: 1.1rem; transition: background-color 0.2s, color 0.2s; text-decoration: none; } .note-hover-actions > button:hover, .note-hover-actions > a:hover, .note-hover-actions > div > button:hover { background-color: rgba(136, 136, 136, 0.2); color: var(--text-color); } .bookmark-palette { display: inline-flex; align-items: center; position: relative; color: var(--text-muted); } .bookmark-palette > button { background: none; border: none; width: 36px; height: 36px; border-radius: 0.375rem; display: flex; align-items: center; justify-content: center; color: inherit; cursor: pointer; font-size: 1.1rem; transition: background-color 0.2s, color 0.2s; } .bookmark-palette > button:hover { background: var(--primary-light); color: var(--primary); } .palette-popup { display: none; position: absolute; left: 0; bottom: calc(100% + 8px); background: var(--background-secondary, #ffffff); border: 1px solid rgba(0, 0, 0, 0.12); border-radius: 12px; padding: 12px; box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22); z-index: 50; width: max-content; max-width: min(340px, calc(100vw - 32px)); max-height: min(320px, calc(100vh - 140px)); overflow: auto; overscroll-behavior: contain; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } [data-theme="dark"] .palette-popup { background: #202124; border-color: rgba(255, 255, 255, 0.16); } .palette-popup.open { display: block; } .palette-section { display: flex; flex-direction: column; gap: 10px; } .palette-section-title { font-size: 0.75rem; line-height: 1; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: rgba(0, 0, 0, 0.62); } [data-theme="dark"] .palette-section-title { color: rgba(255, 255, 255, 0.72); } .palette-divider { height: 1px; background: rgba(0, 0, 0, 0.10); margin: 10px 0; } [data-theme="dark"] .palette-divider { background: rgba(255, 255, 255, 0.12); } .palette-row { display: flex; flex-wrap: wrap; gap: 8px; } .palette-row-colors { flex-wrap: nowrap; overflow-x: hidden; overflow-y: hidden; padding-bottom: 4px; scrollbar-width: thin; } .palette-row-colors::-webkit-scrollbar { height: 8px; } .palette-row-colors::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.18); border-radius: 10px; } [data-theme="dark"] .palette-row-colors::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.18); } .palette-row-backgrounds { display: grid; grid-template-columns: repeat(auto-fill, 28px); gap: 10px; justify-content: start; } .palette-row + .palette-row { margin-top: 10px; } .palette-btn { width: 28px; height: 28px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, 0.18); cursor: pointer; padding: 0; background-position: center bottom; background-size: cover; flex: 0 0 auto; transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease; } [data-theme="dark"] .palette-btn { border-color: rgba(255, 255, 255, 0.22); } .palette-btn.is-active { outline: 2px solid var(--primary-color, #2563eb); outline-offset: 2px; } .palette-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 14px rgba(0, 0, 0, 0.18); } [data-theme="dark"] .palette-btn:hover { box-shadow: 0 8px 18px rgba(0, 0, 0, 0.45); } .palette-btn:focus-visible { outline: 2px solid var(--primary-color, #2563eb); outline-offset: 2px; } .palette-btn-bg-none { display: flex; align-items: center; justify-content: center; } .note-modal-color-picker { position: relative; } .palette-popup.note-modal-palette { bottom: auto; top: calc(100% + 8px); } .bg-studio-panel { position: fixed; z-index: 1200; width: min(420px, calc(100vw - 24px)); border-radius: 20px; background: rgba(255, 255, 255, 0.92); border: 1px solid var(--border, #d1d5db); box-shadow: 0 20px 50px rgba(15, 23, 42, 0.22); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); color: var(--text-main, #0f172a); padding: 16px; } [data-theme="dark"] .bg-studio-panel { background: rgba(31, 37, 41, 0.92); border-color: #2A3238; box-shadow: 0 28px 70px rgba(0, 0, 0, 0.55); color: rgba(255, 255, 255, 0.92); } .bg-studio-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; } .bg-studio-title { font-size: 18px; font-weight: 600; letter-spacing: 0.01em; } .bg-studio-close { width: 34px; height: 34px; border-radius: 12px; border: 1px solid rgba(15, 23, 42, 0.16); background: rgba(15, 23, 42, 0.05); color: inherit; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; } .bg-studio-close:hover { background: rgba(15, 23, 42, 0.10); } [data-theme="dark"] .bg-studio-close { border-color: rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.06); } [data-theme="dark"] .bg-studio-close:hover { background: rgba(255, 255, 255, 0.10); } .bg-studio-gallery { display: grid; grid-auto-flow: column; grid-template-rows: repeat(2, 102px); grid-auto-columns: 84px; gap: 12px; overflow-x: auto; overflow-y: hidden; padding: 2px 2px 10px; margin-bottom: 12px; overscroll-behavior: contain; scrollbar-width: thin; } .bg-studio-gallery::-webkit-scrollbar { height: 10px; } .bg-studio-gallery::-webkit-scrollbar-thumb { background: rgba(15, 23, 42, 0.20); border-radius: 10px; } [data-theme="dark"] .bg-studio-gallery::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.18); } .bg-studio-thumb { width: 84px; height: 72px; border-radius: 12px; border: 1px solid rgba(15, 23, 42, 0.16); background: rgba(15, 23, 42, 0.05); background-position: center bottom; background-size: cover; cursor: pointer; padding: 0; position: relative; transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; flex: 0 0 auto; overflow: hidden; isolation: isolate; } .bg-studio-thumb:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(15, 23, 42, 0.28); } .bg-studio-thumb.is-active { border: 3px solid #3b82f6; box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.22); } .bg-studio-thumb:focus-visible { outline: 3px solid rgba(59, 130, 246, 0.9); outline-offset: 3px; } .bg-studio-thumb-color, .bg-studio-thumb-solid { position: absolute; inset: 0; border-radius: 12px; } .bg-studio-thumb-solid { background: linear-gradient(135deg, rgba(255,255,255,0.15), rgba(255,255,255,0.02)); } .bg-studio-tile { display: grid; grid-template-rows: 72px auto; gap: 6px; width: 84px; } .bg-studio-thumb-label { font-size: 0.72rem; line-height: 1.1; text-align: center; color: var(--text-muted, rgba(15, 23, 42, 0.62)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } [data-theme="dark"] .bg-studio-thumb-label { color: rgba(255, 255, 255, 0.72); } .bg-studio-rows { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 12px; } .bg-studio-row { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; } .bg-studio-row-heading { display: inline-flex; align-items: center; gap: 8px; } .bg-studio-row-label { min-width: 108px; font-size: 0.9rem; font-weight: 600; color: inherit; } .bg-studio-filters { display: flex; align-items: center; gap: 8px; min-width: 0; width: 100%; overflow-x: auto; overflow-y: hidden; } .bg-studio-filter-btn { width: 30px; height: 30px; border-radius: 8px; border: 1px solid rgba(15, 23, 42, 0.16); background: rgba(15, 23, 42, 0.05); color: inherit; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; } .bg-studio-filter-btn.is-active { border-color: rgba(59, 130, 246, 0.9); color: #60a5fa; } [data-theme="dark"] .bg-studio-filter-btn { border-color: rgba(255, 255, 255, 0.16); background: rgba(255, 255, 255, 0.06); } .bg-studio-reset { width: 28px; height: 28px; border-radius: 999px; border: 1px solid rgba(15, 23, 42, 0.18); background: linear-gradient(180deg, #ffffff, #f3f4f6); color: #111827; font-size: 0.82rem; font-weight: 600; cursor: pointer; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.16); transition: background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease; display: inline-flex; align-items: center; justify-content: center; } .bg-studio-reset i { font-size: 16px; color: inherit; } .bg-studio-reset:hover { border-color: rgba(59, 130, 246, 0.5); background: linear-gradient(180deg, #ffffff, #e9eefb); box-shadow: 0 6px 14px rgba(59, 130, 246, 0.2); transform: translateY(-1px); } .bg-studio-reset:focus-visible { outline: 2px solid rgba(59, 130, 246, 0.9); outline-offset: 2px; } [data-theme="dark"] .bg-studio-reset { border-color: rgba(255, 255, 255, 0.2); background: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.08)); color: rgba(255, 255, 255, 0.92); box-shadow: none; } [data-theme="dark"] .bg-studio-reset:hover { border-color: rgba(96, 165, 250, 0.65); background: linear-gradient(180deg, rgba(96, 165, 250, 0.26), rgba(96, 165, 250, 0.16)); box-shadow: 0 8px 16px rgba(2, 6, 23, 0.45); } .bg-studio-search { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--border, rgba(15, 23, 42, 0.16)); background: rgba(15, 23, 42, 0.05); margin-bottom: 12px; transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease; } .bg-studio-search:focus-within { border-color: rgba(59, 130, 246, 0.55); box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18); } .bg-studio-search i { color: var(--text-muted, rgba(15, 23, 42, 0.62)); } .bg-studio-search-input { flex: 1; border: 0 !important; background: transparent !important; box-shadow: none !important; border-radius: 0; color: inherit; outline: none; font-size: 0.95rem; -webkit-appearance: none; appearance: none; caret-color: currentColor; } .bg-studio-search-input:focus, .bg-studio-search-input:focus-visible { outline: none; box-shadow: none; } .bg-studio-search-input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; } .bg-studio-search-input::placeholder { color: var(--text-muted, rgba(15, 23, 42, 0.52)); } [data-theme="dark"] .bg-studio-search { border-color: rgba(255, 255, 255, 0.18); background: rgba(255, 255, 255, 0.08); } [data-theme="dark"] .bg-studio-search:focus-within { border-color: rgba(96, 165, 250, 0.75); background: rgba(15, 23, 42, 0.34); box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.2); } [data-theme="dark"] .bg-studio-search i { color: rgba(255, 255, 255, 0.82); } [data-theme="dark"] .bg-studio-search-input { color: rgba(255, 255, 255, 0.95); } [data-theme="dark"] .bg-studio-search-input::placeholder { color: rgba(255, 255, 255, 0.62); } .bg-studio-clear { width: 28px; height: 28px; border-radius: 999px; border: 1px solid rgba(15, 23, 42, 0.16); background: rgba(15, 23, 42, 0.05); color: inherit; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; } [data-theme="dark"] .bg-studio-clear { border-color: rgba(255, 255, 255, 0.16); background: rgba(255, 255, 255, 0.06); } .spacer { flex: 1; } /* Pushes action buttons to left/right if needed, currently all left? Keep aligns left mostly. */ .note-body img { max-width: 100%; height: auto; border-radius: 4px; margin-top: 4px; /* If we extracted cover, hide first img? */ } /* --- COLORS --- */ /* Reference: Keep Colors */ /* Default */ .note-card.note-color-default { background-color: #20293a; border-color: transparent; --note-card-fg: #dbe7ff; } [data-theme="dark"] .note-card.note-color-default { background-color: #20293a; border-color: transparent; --note-card-fg: #dbe7ff; } /* Red */ .note-card.note-color-red { background-color: #f28b82; border-color: transparent; --note-card-fg: #2f1714; } [data-theme="dark"] .note-card.note-color-red { background-color: #f28b82; border-color: transparent; --note-card-fg: #2f1714; } /* Orange */ .note-card.note-color-orange { background-color: #fbbc04; border-color: transparent; --note-card-fg: #3d2a00; } [data-theme="dark"] .note-card.note-color-orange { background-color: #fbbc04; border-color: transparent; --note-card-fg: #3d2a00; } /* Yellow */ .note-card.note-color-yellow { background-color: #fff475; border-color: transparent; --note-card-fg: #383100; } [data-theme="dark"] .note-card.note-color-yellow { background-color: #fff475; border-color: transparent; --note-card-fg: #383100; } /* Green */ .note-card.note-color-green { background-color: #ccff90; border-color: transparent; --note-card-fg: #203400; } [data-theme="dark"] .note-card.note-color-green { background-color: #ccff90; border-color: transparent; --note-card-fg: #203400; } /* Teal */ .note-card.note-color-teal { background-color: #a7ffeb; border-color: transparent; --note-card-fg: #08342d; } [data-theme="dark"] .note-card.note-color-teal { background-color: #a7ffeb; border-color: transparent; --note-card-fg: #08342d; } /* Blue */ .note-card.note-color-blue { background-color: #cbf0f8; border-color: transparent; --note-card-fg: #113541; } [data-theme="dark"] .note-card.note-color-blue { background-color: #cbf0f8; border-color: transparent; --note-card-fg: #113541; } /* Dark Blue */ .note-card.note-color-darkblue { background-color: #aecbfa; border-color: transparent; --note-card-fg: #102645; } [data-theme="dark"] .note-card.note-color-darkblue { background-color: #aecbfa; border-color: transparent; --note-card-fg: #102645; } /* Purple */ .note-card.note-color-purple { background-color: #d7aefb; border-color: transparent; --note-card-fg: #2f1845; } [data-theme="dark"] .note-card.note-color-purple { background-color: #d7aefb; border-color: transparent; --note-card-fg: #2f1845; } /* Pink */ .note-card.note-color-pink { background-color: #fdcfe8; border-color: transparent; --note-card-fg: #4a1d34; } [data-theme="dark"] .note-card.note-color-pink { background-color: #fdcfe8; border-color: transparent; --note-card-fg: #4a1d34; } /* Brown */ .note-card.note-color-brown { background-color: #e6c9a8; border-color: transparent; --note-card-fg: #3c2714; } [data-theme="dark"] .note-card.note-color-brown { background-color: #e6c9a8; border-color: transparent; --note-card-fg: #3c2714; } /* Grey */ .note-card.note-color-grey { background-color: #e8eaed; border-color: transparent; --note-card-fg: #2a2d31; } .note-card.note-has-bg, .note-modal.note-has-bg, .link-outer.note-has-bg { background-image: linear-gradient(rgba(0, 0, 0, 0.16), rgba(0, 0, 0, 0.16)), var(--note-bg-image); background-size: cover; background-position: center bottom; } .note-card.todo-card.note-has-bg[data-font-color="auto"] { --note-card-fg: rgba(255, 255, 255, 0.92); color: var(--note-card-fg); background-image: linear-gradient(rgba(0, 0, 0, 0.42), rgba(0, 0, 0, 0.42)), var(--note-bg-image); text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55); } .note-card .note-title, .note-card .note-body, .note-card .note-tag, .note-card .note-hover-actions button, .note-card .note-hover-actions a { color: inherit; } .note-card[class*="note-color-"] { color: var(--note-card-fg, #202124); } .link-outer { color: var(--note-card-fg, inherit); } .link-outer .link-title, .link-outer .link-description { color: var(--note-card-fg, inherit); } /* --- NOTES: Vue Masonry/Grid (multi-colonnes, largeur variable) --- */ .notes-masonry .note-card.note-has-bg { /* Les cartes masonry ont des largeurs variables selon les breakpoints: - >1200px: ~25% (4 colonnes) - 800-1200px: ~33% (3 colonnes) - 500-800px: ~50% (2 colonnes) - <500px: 100% (1 colonne) On utilise 'cover' avec un focus sur le centre pour garder l'essentiel visible */ background-size: cover; background-position: center bottom; /* Pour les petites cartes en masonry, on s'assure que l'image couvre bien */ min-height: 120px; } /* --- NOTES: Vue Liste (600px max, centré) --- */ .notes-list-view .note-card.note-has-bg { /* Vue liste: largeur fixe de 600px, cards plus larges qu'en masonry On peut utiliser cover mais avec une position légèrement ajustée */ background-size: cover; background-position: center bottom; /* Les cards en liste sont souvent plus hautes, on adapte */ min-height: 100px; } /* --- NOTES: Modal (min(720px, 92vw)) --- */ .note-modal.note-has-bg { /* Modal plus large (jusqu'à 720px), on privilégie une couverture complète avec une légère obscurcissement pour la lisibilité du texte */ background-size: cover; background-position: center bottom; /* L'overlay gradient est déjà présent dans la règle de base */ } /* --- BOOKMARKS: Vue Grid (minmax(320px, 1fr)) --- */ .view-grid .link-outer.note-has-bg { /* Grid bookmarks: cards de minimum 320px, layout en grille Les cards sont généralement carrées ou rectangulaires selon le contenu */ background-size: cover; background-position: center bottom; /* S'assurer que le background couvre bien la card avec le padding existant */ background-origin: padding-box; } /* --- BOOKMARKS: Vue Liste (1 colonne, thumbnail latéral) --- */ .view-list .link-outer.note-has-bg { /* List view: cards en pleine largeur avec layout flex et thumbnail de 300px On ajuste pour que le background couvre toute la hauteur malgré le thumbnail */ background-size: cover; background-position: center bottom; /* Le thumbnail a son propre mask gradient, on s'assure que le background couvre bien toute la card derrière le contenu */ background-origin: padding-box; } /* --- BOOKMARKS: Vue Compact (liste dense, pas de thumbnail) --- */ .view-compact .link-outer.note-has-bg { /* Compact view: cards très compactes sans thumbnail, hauteur réduite (~60px) On utilise contain ou une taille spécifique pour éviter que l'image soit trop étirée sur une si petite hauteur */ background-size: 200% auto; background-position: center bottom; /* Réduire l'opacité du gradient pour plus de visibilité sur petites cards */ background-image: linear-gradient(rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.08)), var(--note-bg-image); } /* Responsive: sur petits écrans, ajuster les backgrounds */ @media (max-width: 768px) { /* En mobile, les cards sont plus étroites, on ajuste */ .notes-masonry .note-card.note-has-bg, .view-grid .link-outer.note-has-bg { background-size: cover; background-position: center bottom; } /* Vue liste en mobile: thumbnail passe en haut */ .view-list .link-outer.note-has-bg { background-size: cover; background-position: center bottom; } } /* ========================================= Note Filter Effects (8 CSS filters) ========================================= */ /* 1. Glassmorphism - Effet verre givré */ .note-card.note-filter-glass, .note-modal.note-filter-glass, .link-outer.note-filter-glass { background: rgba(255, 255, 255, 0.25) !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.3); } [data-theme="dark"] .note-card.note-filter-glass, [data-theme="dark"] .note-modal.note-filter-glass, [data-theme="dark"] .link-outer.note-filter-glass { background: rgba(0, 0, 0, 0.35) !important; border: 1px solid rgba(255, 255, 255, 0.15); } /* 2. Vignette - Coins sombres */ .note-card.note-filter-vignette::after, .note-modal.note-filter-vignette::after, .link-outer.note-filter-vignette::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(circle, transparent 50%, rgba(0, 0, 0, 0.4) 100%); z-index: 1; } .note-card.note-filter-vignette, .note-modal.note-filter-vignette, .link-outer.note-filter-vignette { position: relative; } /* 3. Ligné - Papier ligné */ .note-card.note-filter-lined, .note-modal.note-filter-lined, .link-outer.note-filter-lined { background-image: repeating-linear-gradient( transparent, transparent 29px, rgba(0, 0, 0, 0.1) 30px ) !important; } [data-theme="dark"] .note-card.note-filter-lined, [data-theme="dark"] .note-modal.note-filter-lined, [data-theme="dark"] .link-outer.note-filter-lined { background-image: repeating-linear-gradient( transparent, transparent 29px, rgba(255, 255, 255, 0.1) 30px ) !important; } /* 4. Quadrillé - Grid */ .note-card.note-filter-grid, .note-modal.note-filter-grid, .link-outer.note-filter-grid { background-image: linear-gradient(rgba(0, 0, 0, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.1) 1px, transparent 1px) !important; background-size: 20px 20px !important; } [data-theme="dark"] .note-card.note-filter-grid, [data-theme="dark"] .note-modal.note-filter-grid, [data-theme="dark"] .link-outer.note-filter-grid { background-image: linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px) !important; } /* 5. Noise - Texture granuleuse */ .note-card.note-filter-noise, .note-modal.note-filter-noise, .link-outer.note-filter-noise { position: relative; } .note-card.note-filter-noise::before, .note-modal.note-filter-noise::before, .link-outer.note-filter-noise::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0.5; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); mix-blend-mode: overlay; z-index: 1; } /* 6. Points - Bullet journal dotted */ .note-card.note-filter-dots, .note-modal.note-filter-dots, .link-outer.note-filter-dots { background-image: radial-gradient(rgba(0, 0, 0, 0.2) 1px, transparent 1px) !important; background-size: 20px 20px !important; } [data-theme="dark"] .note-card.note-filter-dots, [data-theme="dark"] .note-modal.note-filter-dots, [data-theme="dark"] .link-outer.note-filter-dots { background-image: radial-gradient(rgba(255, 255, 255, 0.2) 1px, transparent 1px) !important; } /* 7. Rayures - Stripes diagonales */ .note-card.note-filter-stripes, .note-modal.note-filter-stripes, .link-outer.note-filter-stripes { background-image: repeating-linear-gradient( 45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px ) !important; } [data-theme="dark"] .note-card.note-filter-stripes, [data-theme="dark"] .note-modal.note-filter-stripes, [data-theme="dark"] .link-outer.note-filter-stripes { background-image: repeating-linear-gradient( 45deg, transparent, transparent 10px, rgba(255, 255, 255, 0.05) 10px, rgba(255, 255, 255, 0.05) 20px ) !important; } /* ========================================= Filter-specific row layout for palette ========================================= */ .palette-row-filters { display: grid; grid-template-columns: repeat(4, 28px); gap: 10px; justify-content: start; } .palette-btn-filter, .palette-btn-filter-none { display: flex; align-items: center; justify-content: center; background: rgba(15, 23, 42, 0.05); } .palette-btn-filter i, .palette-btn-filter-none i { font-size: 1rem; color: var(--text-color, #334155); } [data-theme="dark"] .palette-btn-filter, [data-theme="dark"] .palette-btn-filter-none { background: rgba(255, 255, 255, 0.1); } [data-theme="dark"] .palette-btn-filter i, [data-theme="dark"] .palette-btn-filter-none i { color: #e8eaed; } /* ========================================= Custom Color Picker Panel ========================================= */ .color-picker-panel { position: fixed; z-index: 1300; width: min(320px, calc(100vw - 24px)); border-radius: 20px; background: rgba(255, 255, 255, 0.95); border: 1px solid var(--border, #d1d5db); box-shadow: 0 20px 60px rgba(15, 23, 42, 0.35); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); color: var(--text-main, #0f172a); padding: 20px; display: none; } .color-picker-panel.open { display: block; } [data-theme="dark"] .color-picker-panel { background: rgba(31, 37, 41, 0.95); border-color: #2A3238; box-shadow: 0 28px 80px rgba(0, 0, 0, 0.65); color: rgba(255, 255, 255, 0.95); } .color-picker-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; } .color-picker-title { font-size: 16px; font-weight: 600; letter-spacing: 0.01em; } .color-picker-close { width: 32px; height: 32px; border-radius: 10px; border: 1px solid rgba(15, 23, 42, 0.16); background: rgba(15, 23, 42, 0.05); color: inherit; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background 0.15s ease; } .color-picker-close:hover { background: rgba(15, 23, 42, 0.12); } [data-theme="dark"] .color-picker-close { border-color: rgba(255, 255, 255, 0.16); background: rgba(255, 255, 255, 0.08); } [data-theme="dark"] .color-picker-close:hover { background: rgba(255, 255, 255, 0.14); } .color-picker-body { display: flex; flex-direction: column; gap: 16px; } .color-picker-gradient { width: 100%; height: 140px; border-radius: 12px; overflow: hidden; position: relative; border: 1px solid rgba(15, 23, 42, 0.12); } [data-theme="dark"] .color-picker-gradient { border-color: rgba(255, 255, 255, 0.12); } .color-picker-gradient-inner { width: 100%; height: 100%; position: relative; background: linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, hsl(210, 100%, 50%)); cursor: crosshair; } .color-picker-cursor { position: absolute; width: 16px; height: 16px; border: 2px solid white; border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4), inset 0 0 0 1px rgba(0,0,0,0.2); transform: translate(-50%, -50%); pointer-events: none; } .color-picker-hue { width: 100%; } .color-picker-hue-slider { width: 100%; height: 12px; border-radius: 6px; -webkit-appearance: none; appearance: none; background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%); outline: none; cursor: pointer; } .color-picker-hue-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: white; border: 2px solid rgba(15, 23, 42, 0.3); box-shadow: 0 2px 6px rgba(0,0,0,0.3); cursor: pointer; } .color-picker-hue-slider::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: white; border: 2px solid rgba(15, 23, 42, 0.3); box-shadow: 0 2px 6px rgba(0,0,0,0.3); cursor: pointer; } .color-picker-preview-row { display: flex; align-items: center; gap: 12px; } .color-picker-preview { width: 48px; height: 48px; border-radius: 12px; border: 1px solid rgba(15, 23, 42, 0.12); background: #3b82f6; flex-shrink: 0; } [data-theme="dark"] .color-picker-preview { border-color: rgba(255, 255, 255, 0.12); } .color-picker-inputs { flex: 1; } .color-picker-input-group { display: flex; flex-direction: column; gap: 4px; } .color-picker-input-group label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: rgba(15, 23, 42, 0.6); } [data-theme="dark"] .color-picker-input-group label { color: rgba(255, 255, 255, 0.6); } .color-picker-input-group input { width: 100%; padding: 8px 12px; border-radius: 8px; border: 1px solid rgba(15, 23, 42, 0.16); background: rgba(15, 23, 42, 0.05); color: inherit; font-size: 14px; font-family: monospace; text-transform: uppercase; outline: none; transition: border-color 0.15s ease; } .color-picker-input-group input:focus { border-color: #3b82f6; } [data-theme="dark"] .color-picker-input-group input { border-color: rgba(255, 255, 255, 0.16); background: rgba(255, 255, 255, 0.08); } .color-picker-footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(15, 23, 42, 0.1); } [data-theme="dark"] .color-picker-footer { border-color: rgba(255, 255, 255, 0.12); } .color-picker-btn { padding: 8px 16px; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.15s ease; border: none; } .color-picker-btn-secondary { background: rgba(15, 23, 42, 0.08); color: inherit; } .color-picker-btn-secondary:hover { background: rgba(15, 23, 42, 0.14); } [data-theme="dark"] .color-picker-btn-secondary { background: rgba(255, 255, 255, 0.1); } [data-theme="dark"] .color-picker-btn-secondary:hover { background: rgba(255, 255, 255, 0.16); } .color-picker-btn-primary { background: #3b82f6; color: white; } .color-picker-btn-primary:hover { background: #2563eb; } /* ========================================= Smaller swatches for Colors and Font sections ========================================= */ .bg-studio-swatches { display: grid; grid-template-columns: repeat(6, 22px); grid-auto-rows: 22px; gap: 6px; min-width: 0; width: 100%; overflow: hidden; } .bg-studio-swatch { width: 22px; height: 22px; border-radius: 999px; border: 1px solid rgba(15, 23, 42, 0.22); cursor: pointer; padding: 0; transition: transform 0.12s ease, box-shadow 0.12s ease; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; } .bg-studio-swatch i { font-size: 14px; color: rgba(15, 23, 42, 0.6); pointer-events: none; } [data-theme="dark"] .bg-studio-swatch i { color: rgba(255, 255, 255, 0.7); } .bg-studio-swatch:hover { transform: scale(1.12); box-shadow: 0 6px 16px rgba(0,0,0,0.3); } .bg-studio-swatch.is-active { border: 2px solid rgba(255, 255, 255, 0.95); box-shadow: 0 4px 12px rgba(0,0,0,0.3); } .bg-studio-swatch-custom { background: linear-gradient(135deg, rgba(15, 23, 42, 0.08), rgba(15, 23, 42, 0.04)); } [data-theme="dark"] .bg-studio-swatch-custom { background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06)); } .bg-studio-swatch-custom:hover { background: linear-gradient(135deg, rgba(59, 130, 246, 0.15), rgba(59, 130, 246, 0.08)); } [data-theme="dark"] .bg-studio-swatch { border-color: rgba(255, 255, 255, 0.28); } /* Font swatches - slightly smaller */ .bg-studio-swatches-font { grid-template-columns: repeat(6, 20px); grid-auto-rows: 20px; gap: 5px; } .bg-studio-swatches-font .bg-studio-swatch { width: 20px; height: 20px; } .bg-studio-swatches-font .bg-studio-swatch i { font-size: 12px; } /* Custom note color style */ .note-card.note-color-custom, .note-modal.note-color-custom { border-color: transparent; } /* Ensure Font section is properly sized */ .bg-studio-row { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; } /* --- ARCHIVE VIEW --- */ body.view-archive .content-container { padding: 2rem; background-color: var(--bg-body); min-height: 100vh; } [data-theme="dark"] body.view-archive .content-container { background-color: var(--bg-body); } /* Archive Title */ .archive-title-container { text-align: center; margin-bottom: 1rem; } .archive-title { font-size: 1.75rem; font-weight: 600; color: var(--text-color, #202124); margin: 0; display: flex; align-items: center; justify-content: center; gap: 0.5rem; } .archive-title i { font-size: 1.5rem; color: var(--primary-color, #2563eb); } [data-theme="dark"] .archive-title { color: #e8eaed; } .archive-subtitle { font-size: 0.875rem; color: var(--text-light, #5f6368); margin: 0.25rem 0 0 0; } [data-theme="dark"] .archive-subtitle { color: #9aa0a6; } /* Archive wrapper */ .archive-wrapper { max-width: 1200px; margin: 0 auto; } /* Archive top bar adjustments */ .archive-top-bar { flex-direction: column; align-items: center; padding-right: 0; gap: 1rem; } .archive-top-bar .notes-tools { position: relative; right: auto; top: auto; transform: none; } body.view-todo .note-card.todo-card .note-body { padding-top: 0.25rem; } body.view-todo .note-card.todo-card .todo-checklist-preview-wrap { display: block; -webkit-line-clamp: initial; line-clamp: initial; -webkit-box-orient: initial; overflow: visible; max-height: none; } .todo-checklist-preview { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.35rem; } .todo-checklist-preview-item { display: flex; align-items: center; gap: 0.6rem; font-size: 0.95rem; line-height: 1.35; } .todo-checklist-preview-box { width: 16px; height: 16px; border-radius: 4px; border: 2px solid currentColor; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; opacity: 0.7; } .todo-checklist-preview-box i { font-size: 14px; opacity: 0; } .todo-checklist-preview-item.is-checked { opacity: 0.7; } .todo-checklist-preview-item.is-checked .todo-checklist-preview-box i { opacity: 1; } .todo-checklist-preview-item.is-checked .todo-checklist-preview-text { text-decoration: line-through; } .todo-checklist-preview-more { opacity: 0.7; } .todo-modal .note-modal-content { padding-top: 6px; } .todo-checklist { display: flex; flex-direction: column; gap: 6px; padding-bottom: 6px; } .todo-checklist-row { display: grid; grid-template-columns: 26px 26px minmax(0, 1fr) 34px; align-items: center; gap: 8px; padding: 6px 2px; border-radius: 8px; } .todo-checklist-row.is-checked { opacity: 0.75; } .todo-checklist-row.is-dragging { opacity: 0.6; } .todo-drag-handle { width: 26px; height: 26px; border: none; background: none; color: inherit; opacity: 0.7; cursor: grab; display: inline-flex; align-items: center; justify-content: center; padding: 0; } .todo-drag-handle:active { cursor: grabbing; } .todo-drag-handle i { font-size: 18px; } .todo-checklist-box { width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; } .todo-checklist-box input { position: absolute; opacity: 0; pointer-events: none; } .todo-checklist-box-ui { width: 16px; height: 16px; border-radius: 4px; border: 2px solid currentColor; display: inline-block; opacity: 0.75; } .todo-item-checkbox:checked + .todo-checklist-box-ui { background: currentColor; box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.22); } [data-theme="dark"] .todo-item-checkbox:checked + .todo-checklist-box-ui { box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.35); } .todo-item-text { width: 100%; border: none; background: transparent; color: inherit; font-size: 1rem; line-height: 1.4; padding: 6px 6px; border-radius: 6px; outline: none; min-width: 0; } .todo-checklist-row.is-checked .todo-item-text { text-decoration: line-through; } .todo-item-text:focus { background: rgba(0, 0, 0, 0.06); } [data-theme="dark"] .todo-item-text:focus { background: rgba(255, 255, 255, 0.08); } .todo-item-delete { width: 34px; height: 34px; border: none; background: none; color: inherit; opacity: 0.7; cursor: pointer; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; padding: 0; } .todo-item-delete:hover { opacity: 1; background: rgba(0, 0, 0, 0.08); } [data-theme="dark"] .todo-item-delete:hover { background: rgba(255, 255, 255, 0.12); } .todo-item-delete i { font-size: 20px; } .todo-add-item-btn { border: none; background: none; color: inherit; opacity: 0.8; cursor: pointer; display: inline-flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 1rem; justify-content: flex-start; width: 100%; } .todo-add-item-btn i { font-size: 18px; } .todo-add-item-btn:hover { opacity: 1; }