body {
  margin: 0;
}

/* Checkboxes — teal i stedet for blå */
input[type="checkbox"] {
  accent-color: #00A084;
}

/* Comments-kolonne: inline max-height: 40vh er kun ment for mobil.
   På sm: (≥640px) fjern capping så feed fylder højre kolonnes fulde højde. */
@media (min-width: 640px) {
  .task-comments-column {
    max-height: none !important;
  }
}

/* Quill — inherit app font */
.ql-container,
.ql-editor,
.ql-toolbar,
.ql-picker,
.ql-picker-label,
.ql-picker-options,
.ql-picker-item {
  font-family: 'Space Grotesk', system-ui, sans-serif !important;
}


/* Kanban */
.kanban-col {
  min-height: 300px;
}

.kanban-card {
  cursor: grab;
  transition: box-shadow 0.15s, transform 0.1s;
}
.kanban-card:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.kanban-card:active {
  cursor: grabbing;
}

/* SortableJS states */
.sortable-ghost {
  opacity: 0.4;
  background: rgba(0, 160, 132, 0.1) !important;
}
.sortable-chosen {
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  transform: rotate(2deg);
}
.sortable-drag {
  opacity: 0.9;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translate(-50%, -48%); }
  to { opacity: 1; transform: translate(-50%, -50%); }
}

/* Mail thread in task detail */
.task-detail-panel iframe {
  min-height: 400px;
  max-height: 70vh;
}

/* Swimlane headers */
.swimlane-header {
  border-radius: 4px;
  background: #EFEFD8 !important;
}
.swimlane-header:hover {
  background: #D6D6C2 !important;
}

/* Full-screen mail viewer modal */
.mail-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.5);
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mail-modal {
  width: 900px;
  max-width: 95vw;
  height: 85vh;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 12px 48px rgba(0,0,0,0.3);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: fadeIn 0.15s ease-out;
}

.mail-link-row:hover {
  background: #EFEFD8;
}

/* Inbox mail items */
.mail-item {
  transition: box-shadow 0.15s;
}
.mail-item:hover {
  box-shadow: 0 1px 6px rgba(0,0,0,0.1);
}
.mail-header:hover {
  background: #FEFEF6;
}
.mail-body-frame {
  background: #fff;
}

/* Remove default anchor underlines in sidebar */
a.no-underline {
  text-decoration: none;
}

/* ─── Contenteditable mail reply editor ───
   Tailwind Preflight strips default list/bold/italic/underline styles.
   Restore them only inside the reply editor so Ctrl+B/I/U and list commands
   actually render visibly. */
[data-reply-editor] b,
[data-reply-editor] strong { font-weight: 700; }

[data-reply-editor] i,
[data-reply-editor] em { font-style: italic; }

[data-reply-editor] u { text-decoration: underline; }

[data-reply-editor] ul {
  list-style: disc;
  padding-left: 1.5rem;
  margin: 0.5rem 0;
}
[data-reply-editor] ol {
  list-style: decimal;
  padding-left: 1.5rem;
  margin: 0.5rem 0;
}
[data-reply-editor] li { margin: 0.125rem 0; }

[data-reply-editor] blockquote {
  border-left: 3px solid #D6D6C2;
  padding-left: 12px;
  margin: 8px 0;
  color: #666;
}

[data-reply-editor] a {
  color: #00A084;
  text-decoration: underline;
}

/* Headings inside reply body */
[data-reply-editor] h1 { font-size: 1.5em; font-weight: 700; margin: 0.67em 0; }
[data-reply-editor] h2 { font-size: 1.25em; font-weight: 700; margin: 0.75em 0; }
[data-reply-editor] h3 { font-size: 1.1em; font-weight: 700; margin: 0.83em 0; }

/* Tables from pasted Outlook signatures */
[data-reply-editor] table { border-collapse: collapse; }
[data-reply-editor] td,
[data-reply-editor] th { padding: 2px 4px; }

/* Removable signature + original-mail blocks */
[data-reply-editor] .reply-signature-block,
[data-reply-editor] .reply-original-block {
  position: relative;
  margin-top: 8px;
}

/* Blazor Server reconnect UI — delay "reconnecting" toast by 3s so short blips are silent */
#components-reconnect-modal {
  display: none;
  position: fixed;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10000;
  pointer-events: none;
}
#components-reconnect-modal .reconnect-toast {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #022D2A;
  color: #EFEFD8;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  pointer-events: auto;
}
#components-reconnect-modal .reconnect-spinner {
  width: 16px;
  height: 16px;
  animation: reconnect-spin 1s linear infinite;
}
#components-reconnect-modal .reconnect-failed-text,
#components-reconnect-modal .reconnect-rejected-text {
  display: none;
}
#components-reconnect-modal .reconnect-toast a {
  color: #9FE4D1;
  text-decoration: underline;
}
#components-reconnect-modal.components-reconnect-show {
  display: block;
  opacity: 0;
  animation: reconnect-reveal 0s 3s forwards;
}
#components-reconnect-modal.components-reconnect-failed,
#components-reconnect-modal.components-reconnect-rejected {
  display: block;
  opacity: 1;
}
#components-reconnect-modal.components-reconnect-failed .reconnect-show-text,
#components-reconnect-modal.components-reconnect-failed .reconnect-spinner,
#components-reconnect-modal.components-reconnect-rejected .reconnect-show-text,
#components-reconnect-modal.components-reconnect-rejected .reconnect-spinner {
  display: none;
}
#components-reconnect-modal.components-reconnect-failed .reconnect-failed-text,
#components-reconnect-modal.components-reconnect-rejected .reconnect-rejected-text {
  display: inline;
}
@keyframes reconnect-reveal {
  to { opacity: 1; }
}
@keyframes reconnect-spin {
  to { transform: rotate(360deg); }
}
