diff --git a/static/css/conversations.css b/static/css/conversations.css index 5a704d6..c961dbb 100644 --- a/static/css/conversations.css +++ b/static/css/conversations.css @@ -1491,3 +1491,167 @@ mark.search-highlight { animation: slide-up 0.2s ease-out; } } + +/* ============================================================ + * NEW MESSAGE MODAL + * ============================================================ */ + +.modal-overlay { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.45); + display: flex; + align-items: center; + justify-content: center; + z-index: 1100; +} + +.modal-overlay .modal-content { + background: var(--conv-surface); + border-radius: var(--conv-radius-lg); + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); + width: 90%; + max-width: 520px; + max-height: 80vh; + display: flex; + flex-direction: column; + overflow: hidden; +} + +.modal-overlay .modal-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 16px 20px; + border-bottom: 1px solid var(--conv-border); +} + +.modal-overlay .modal-header h3 { + margin: 0; + font-size: 17px; + font-weight: 600; + color: var(--conv-text-primary); +} + +.modal-overlay .modal-close { + background: none; + border: none; + font-size: 22px; + color: var(--conv-text-muted); + cursor: pointer; + padding: 0 4px; + line-height: 1; +} +.modal-overlay .modal-close:hover { + color: var(--conv-text-primary); +} + +.modal-overlay .modal-body { + padding: 16px 20px; + flex: 1; + overflow-y: auto; +} + +.modal-overlay .recipient-input { + margin-bottom: 12px; +} + +.modal-overlay .recipient-input label { + font-size: 14px; + font-weight: 500; + color: var(--conv-text-secondary); + margin-right: 8px; +} + +.modal-overlay .recipient-input input[type="text"] { + width: 100%; + padding: 10px 12px; + border: 1px solid var(--conv-border); + border-radius: var(--conv-radius); + font-size: 14px; + margin-top: 6px; + outline: none; + transition: border-color 0.15s; + box-sizing: border-box; +} +.modal-overlay .recipient-input input[type="text"]:focus { + border-color: var(--conv-primary); +} + +.modal-overlay .recipient-suggestions { + border: 1px solid var(--conv-border); + border-radius: var(--conv-radius); + margin-top: 4px; + max-height: 200px; + overflow-y: auto; + background: var(--conv-surface); +} +.modal-overlay .recipient-suggestions:empty { + display: none; +} + +.modal-overlay .selected-recipients { + display: flex; + flex-wrap: wrap; + gap: 4px; + margin-top: 8px; +} + +.modal-overlay #newMessageEditor { + min-height: 120px; + border: 1px solid var(--conv-border); + border-radius: var(--conv-radius); +} + +.modal-overlay .ql-toolbar.ql-snow { + border: none; + border-bottom: 1px solid var(--conv-border); + padding: 6px 8px; +} + +.modal-overlay .ql-container.ql-snow { + border: none; + font-size: 14px; +} + +.modal-overlay .modal-footer { + display: flex; + justify-content: flex-end; + gap: 8px; + padding: 12px 20px; + border-top: 1px solid var(--conv-border); +} + +.modal-overlay .modal-footer button { + padding: 8px 20px; + border-radius: var(--conv-radius); + font-size: 14px; + font-weight: 500; + cursor: pointer; + border: none; + transition: background 0.15s; +} + +.modal-overlay .btn-secondary { + background: var(--conv-surface-secondary); + color: var(--conv-text-primary); +} +.modal-overlay .btn-secondary:hover { + background: var(--conv-border); +} + +.modal-overlay .btn-primary { + background: var(--conv-primary); + color: #fff; +} +.modal-overlay .btn-primary:hover { + background: var(--conv-primary-hover); +} + +@media (max-width: 768px) { + .modal-overlay .modal-content { + width: 95%; + max-height: 90vh; + border-radius: var(--conv-radius); + } +} diff --git a/templates/messages/conversations.html b/templates/messages/conversations.html index b5178fe..0f8388a 100644 --- a/templates/messages/conversations.html +++ b/templates/messages/conversations.html @@ -5,7 +5,7 @@ {% block head_extra %} - +