114 lines
7.3 KiB
CSS
114 lines
7.3 KiB
CSS
/* folk-newsletter-manager styles */
|
|
:host { display: block; max-width: 960px; margin: 0 auto; padding: 1.5rem; color: #e5e5e5; font-family: system-ui, -apple-system, sans-serif; }
|
|
|
|
.nl-header { margin-bottom: 1.5rem; }
|
|
.nl-header h2 { font-size: 1.5rem; margin: 0 0 .25rem; }
|
|
.nl-header p { color: #a3a3a3; margin: 0; font-size: .9rem; }
|
|
|
|
/* Not-configured state */
|
|
.nl-setup { text-align: center; padding: 3rem 1.5rem; background: #1e1e2e; border: 1px dashed #404040; border-radius: 12px; }
|
|
.nl-setup h3 { font-size: 1.2rem; margin: 0 0 .5rem; }
|
|
.nl-setup p { color: #a3a3a3; margin: .5rem 0; font-size: .9rem; }
|
|
.nl-setup .nl-setup-steps { text-align: left; max-width: 420px; margin: 1.5rem auto 0; }
|
|
.nl-setup .nl-setup-steps li { color: #a3a3a3; margin-bottom: .5rem; font-size: .85rem; }
|
|
|
|
/* Tabs */
|
|
.nl-tabs { display: flex; gap: .5rem; margin-bottom: 1.5rem; border-bottom: 1px solid #333; padding-bottom: 0; }
|
|
.nl-tab { padding: .6rem 1.2rem; background: none; border: none; border-bottom: 2px solid transparent; color: #a3a3a3; cursor: pointer; font-size: .9rem; transition: color .15s, border-color .15s; }
|
|
.nl-tab:hover { color: #e5e5e5; }
|
|
.nl-tab.active { color: #14b8a6; border-bottom-color: #14b8a6; }
|
|
|
|
/* Tables */
|
|
.nl-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
|
|
.nl-table th { text-align: left; padding: .6rem .8rem; color: #a3a3a3; border-bottom: 1px solid #333; font-weight: 500; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
|
|
.nl-table td { padding: .6rem .8rem; border-bottom: 1px solid #1a1a2e; }
|
|
.nl-table tr:hover td { background: #1e1e2e; }
|
|
|
|
/* Badges */
|
|
.nl-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: .75rem; font-weight: 500; }
|
|
.nl-badge--active { background: #14b8a622; color: #14b8a6; }
|
|
.nl-badge--draft { background: #f59e0b22; color: #f59e0b; }
|
|
.nl-badge--finished { background: #6366f122; color: #818cf8; }
|
|
.nl-badge--running { background: #14b8a622; color: #14b8a6; }
|
|
.nl-badge--paused { background: #ef444422; color: #f87171; }
|
|
.nl-badge--enabled { background: #14b8a622; color: #14b8a6; }
|
|
.nl-badge--blocklisted { background: #ef444422; color: #f87171; }
|
|
|
|
/* Buttons */
|
|
.nl-btn { padding: .5rem 1rem; border-radius: 6px; border: 1px solid #333; background: #1e1e2e; color: #e5e5e5; cursor: pointer; font-size: .85rem; transition: background .15s, border-color .15s; }
|
|
.nl-btn:hover { background: #252538; border-color: #14b8a6; }
|
|
.nl-btn--primary { background: #14b8a6; border-color: #14b8a6; color: #0a0a0a; font-weight: 500; }
|
|
.nl-btn--primary:hover { background: #0d9488; }
|
|
.nl-btn--sm { padding: .3rem .6rem; font-size: .8rem; }
|
|
|
|
/* Toolbar */
|
|
.nl-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; gap: .75rem; flex-wrap: wrap; }
|
|
.nl-toolbar input[type="search"] { padding: .4rem .8rem; background: #0a0a0a; border: 1px solid #404040; border-radius: 6px; color: #e5e5e5; font-size: .85rem; min-width: 200px; }
|
|
|
|
/* Pagination */
|
|
.nl-pagination { display: flex; align-items: center; justify-content: center; gap: .75rem; margin-top: 1rem; font-size: .85rem; color: #a3a3a3; }
|
|
|
|
/* Loading / Empty */
|
|
.nl-loading { text-align: center; padding: 3rem; color: #a3a3a3; }
|
|
.nl-empty { text-align: center; padding: 2rem; color: #525252; font-size: .9rem; }
|
|
|
|
/* Create campaign form */
|
|
.nl-form { background: #1e1e2e; border: 1px solid #333; border-radius: 8px; padding: 1.25rem; margin-bottom: 1.5rem; }
|
|
.nl-form label { display: block; font-size: .8rem; color: #a3a3a3; margin-bottom: .25rem; }
|
|
.nl-form input, .nl-form select, .nl-form textarea { width: 100%; padding: .45rem .7rem; background: #0a0a0a; border: 1px solid #404040; border-radius: 4px; color: #e5e5e5; font-size: .85rem; margin-bottom: .75rem; box-sizing: border-box; }
|
|
.nl-form textarea { min-height: 80px; resize: vertical; font-family: inherit; }
|
|
.nl-form-row { display: flex; gap: .75rem; }
|
|
.nl-form-row > * { flex: 1; }
|
|
|
|
/* Danger button */
|
|
.nl-btn--danger { border-color: #ef4444; color: #f87171; }
|
|
.nl-btn--danger:hover { background: #ef444422; border-color: #f87171; }
|
|
.nl-btn--send { background: #6366f1; border-color: #6366f1; color: #fff; font-weight: 500; }
|
|
.nl-btn--send:hover { background: #4f46e5; }
|
|
|
|
/* Actions cell */
|
|
.nl-actions-cell { white-space: nowrap; }
|
|
.nl-actions-cell .nl-btn { margin-right: .25rem; }
|
|
|
|
/* Error */
|
|
.nl-error { padding: .75rem 1rem; background: #ef444422; border: 1px solid #ef4444; border-radius: 6px; color: #f87171; font-size: .85rem; margin-bottom: 1rem; }
|
|
|
|
/* ── Editor ── */
|
|
.nl-editor-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
|
|
.nl-editor-header h2 { font-size: 1.3rem; margin: 0; }
|
|
|
|
.nl-editor-fields { margin-bottom: 1rem; }
|
|
.nl-editor-fields label { display: block; font-size: .8rem; color: #a3a3a3; margin-bottom: .25rem; }
|
|
.nl-editor-fields input { width: 100%; padding: .45rem .7rem; background: #0a0a0a; border: 1px solid #404040; border-radius: 4px; color: #e5e5e5; font-size: .85rem; margin-bottom: .75rem; box-sizing: border-box; }
|
|
|
|
/* List selector */
|
|
.nl-list-selector { display: flex; flex-wrap: wrap; gap: .5rem; padding: .5rem; background: #1e1e2e; border: 1px solid #333; border-radius: 6px; margin-bottom: 1rem; min-height: 2.5rem; align-items: center; }
|
|
.nl-list-option { display: flex; align-items: center; gap: .4rem; padding: .3rem .6rem; background: #0a0a0a; border: 1px solid #333; border-radius: 4px; cursor: pointer; font-size: .82rem; transition: border-color .15s; }
|
|
.nl-list-option:hover { border-color: #14b8a6; }
|
|
.nl-list-option input[type="checkbox"] { accent-color: #14b8a6; }
|
|
.nl-list-count { color: #a3a3a3; font-size: .75rem; margin-left: .25rem; }
|
|
|
|
/* Editor body + preview */
|
|
.nl-editor { display: flex; gap: 1rem; margin-bottom: 1rem; }
|
|
.nl-editor__body { flex: 1; display: flex; flex-direction: column; }
|
|
.nl-editor__body label { font-size: .8rem; color: #a3a3a3; margin-bottom: .25rem; }
|
|
.nl-editor__body textarea { flex: 1; min-height: 300px; padding: .6rem .8rem; background: #0a0a0a; border: 1px solid #404040; border-radius: 4px; color: #e5e5e5; font-size: .85rem; font-family: 'Fira Code', 'Cascadia Code', monospace; resize: vertical; box-sizing: border-box; line-height: 1.5; }
|
|
.nl-editor__preview { flex: 1; display: flex; flex-direction: column; }
|
|
.nl-editor__preview label { font-size: .8rem; color: #a3a3a3; margin-bottom: .25rem; }
|
|
.nl-preview-frame { flex: 1; min-height: 300px; border: 1px solid #404040; border-radius: 4px; background: #fff; }
|
|
|
|
/* Editor action bar */
|
|
.nl-editor-actions { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; padding-top: .75rem; border-top: 1px solid #333; }
|
|
.nl-editor-actions__left, .nl-editor-actions__right { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
|
|
.nl-schedule-group { display: flex; align-items: center; gap: .35rem; }
|
|
.nl-schedule-group input[type="datetime-local"] { padding: .4rem .5rem; background: #0a0a0a; border: 1px solid #404040; border-radius: 4px; color: #e5e5e5; font-size: .82rem; }
|
|
|
|
/* Responsive: stack editor panes vertically on narrow screens */
|
|
@media (max-width: 700px) {
|
|
.nl-editor { flex-direction: column; }
|
|
.nl-editor-actions { flex-direction: column; align-items: stretch; }
|
|
.nl-editor-actions__left, .nl-editor-actions__right { justify-content: center; }
|
|
.nl-form-row { flex-direction: column; }
|
|
.nl-schedule-group { flex-wrap: wrap; }
|
|
}
|