/* Panel toggle: only .panel--active panels are shown */
.panel { display: none; }
.panel.panel--active { display: block; }

/* Active tab indicator */
.tab { opacity: 0.55; }
.tab.tab--active { opacity: 1; font-weight: bold; }

/* Utility */
.status-banner { padding: 0.5rem; border-radius: 4px; }
.status-banner.status--ok  { background: #d4edda; color: #155724; }
.status-banner.status--err { background: #f8d7da; color: #721c24; }
.form-error { color: #721c24; }
.list-placeholder { color: #888; font-style: italic; }

/* Decrypt modal */
.modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.45);
                  display: flex; align-items: center; justify-content: center; }
.modal-backdrop[hidden] { display: none; }
.modal-box { background: #fff; border-radius: 6px; padding: 1.5rem; max-width: 36rem;
             width: 90%; display: flex; flex-direction: column; gap: 1rem; }
.modal-plaintext { white-space: pre-wrap; word-break: break-word; margin: 0; }

/* Message rows */
.message-row { display: flex; align-items: baseline; gap: 0.75rem; padding: 0.5rem 0;
               border-bottom: 1px solid #eee; }
.message-row .msg-from { font-weight: bold; }
.message-row .msg-ts   { font-size: 0.85em; color: #666; flex: 1; }
