#openChat {
  --top-action-icon: var(--tab-icon);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

#openChat .todo-unread-badge { top: -3px; right: -4px; }

#tab-todo.chat-floating {
  --chat-dock-angle: 0deg;
  --chat-text-x: .5px;
  --chat-text-y: -1px;
  position: fixed;
  z-index: 1002;
  inset: auto;
  left: 12px;
  bottom: 12px;
  display: flex;
  flex-direction: column;
  width: min(360px, calc(100vw - 22px));
  height: min(530px, calc(100dvh - 22px));
  min-width: 0;
  min-height: 0;
  max-width: 100vw;
  max-height: 100dvh;
  padding: 0;
  gap: 0;
  overflow: hidden;
  scrollbar-gutter: auto;
  box-sizing: border-box;
  border: 1px solid #9aaaba;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 26px rgba(25, 38, 52, 0.25);
}

body.license-locked #tab-todo.chat-floating,
#tab-todo.chat-floating.hidden { display: none; }

.chat-window-header {
  display: flex;
  align-items: center;
  flex: 0 0 38px;
  gap: 5px;
  padding: 4px 6px;
  box-sizing: border-box;
  border-bottom: 1px solid #bac6d1;
  background: #e8edf2;
  touch-action: none;
  user-select: none;
  cursor: grab;
}

.chat-window-title {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 26px;
  gap: 7px;
  padding: 0 3px;
  background: transparent;
  border: 0;
  border-radius: 4px;
  color: #34475a;
  font-size: 14px;
  font-weight: 400;
  box-shadow: none;
  cursor: inherit;
}

#chatWindowTitle:hover,
#chatWindowTitle:focus,
#chatWindowTitle:active {
  background: transparent;
  outline: none;
  box-shadow: none;
}
.chat-window-minimize, .chat-window-close { display: flex; }
#tab-todo.chat-dragging .chat-window-header { cursor: grabbing; }

#tab-todo.chat-floating > .todo-layout {
  position: relative;
  display: block;
  flex: 1 1 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  overflow: hidden;
}

#tab-todo.chat-floating .todo-list-panel {
  height: 100%;
  padding: 8px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
}

#tab-todo.chat-floating .todo-task-editor-open > .todo-list-panel { display: none; }
#tab-todo.chat-floating .todo-list-toolbar { flex-wrap: wrap; gap: 6px; }
#tab-todo.chat-floating .todo-toolbar-fields { min-width: 0; flex: 1 1 210px; }
#tab-todo.chat-floating .todo-search-label { min-width: 0; }
#tab-todo.chat-floating .todo-task-actions { gap: 5px; }
#tab-todo.chat-floating .todo-task-table-scroll { min-height: 0; flex: 1 1 auto; }
#tab-todo.chat-floating .todo-task-table { min-width: 0; }
#tab-todo.chat-floating .todo-task-table td { width: auto; padding: 4px 8px; }
#tab-todo.chat-floating .todo-task-cell-text::before { content: none; }
#tab-todo.chat-floating .todo-important-toggle { flex: 0 0 18px; margin: 0 3px 0 0; }
#tab-todo.chat-floating .todo-task-table .todo-empty-row { padding: 10px 12px; }

#tab-todo.chat-floating {
  --chat-closed-bg: #e6f4ea;
  --chat-closed-hover-bg: #ddefe3;
  --chat-closed-selected-bg: #d3ecd9;
  --chat-closed-selected-hover-bg: #c5e4cf;
  --chat-closed-color: #2f6d43;
}
body.theme-dark #tab-todo.chat-floating {
  --chat-closed-bg: #234c36;
  --chat-closed-hover-bg: #2a5840;
  --chat-closed-selected-bg: #315f45;
  --chat-closed-selected-hover-bg: #396e50;
  --chat-closed-color: #bfe8ce;
  background: var(--surface);
  border-color: var(--line);
}
body.theme-dark #tab-todo.chat-floating .chat-window-header {
  background: var(--input-gray);
  border-color: var(--line);
}
body.theme-dark #todoTaskEditorModal,
body.theme-dark #todoTaskEditorModal .todo-task-editor-card {
  background: var(--surface) !important;
  color: var(--ink);
}
body.theme-dark #tab-todo.chat-floating .todo-task-editor-important-field { color: #ffb5ad; }
#tab-todo.chat-floating .todo-task-table tr.todo-task-done { --closed-row-bg: var(--chat-closed-bg); }
#tab-todo.chat-floating .todo-task-table tr.todo-task-done:hover { --closed-row-bg: var(--chat-closed-hover-bg); }
#tab-todo.chat-floating .todo-task-table tr.todo-task-done.todo-task-selected { --closed-row-bg: var(--chat-closed-selected-bg); }
#tab-todo.chat-floating .todo-task-table tr.todo-task-done.todo-task-selected:hover { --closed-row-bg: var(--chat-closed-selected-hover-bg); }
#tab-todo.chat-floating .todo-task-table tr.todo-task-done,
#tab-todo.chat-floating .todo-task-table tr.todo-task-done > td {
  background: var(--closed-row-bg);
  color: var(--chat-closed-color);
}
#tab-todo.chat-floating .todo-task-table tr.todo-task-done > td:last-child { box-shadow: 9999px 0 0 var(--closed-row-bg); }
#tab-todo.chat-floating .todo-task-done :is(.todo-task-number-date, .todo-task-title) { color: inherit; }
.todo-closed-badge {
  display: block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin-right: 3px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgogIDxwYXRoIGQ9Im0xNiA5LTUuNSA1LjVMOCAxMiIgLz4KPC9zdmc+Cg==") center / contain no-repeat;
  mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIiAvPgogIDxwYXRoIGQ9Im0xNiA5LTUuNSA1LjVMOCAxMiIgLz4KPC9zdmc+Cg==") center / contain no-repeat;
}

#tab-todo.chat-floating .todo-task-editor-subject-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
#tab-todo.chat-floating .todo-task-editor-card { min-width: 0; min-height: 0; }
#tab-todo.chat-floating .todo-task-editor-title-display { max-height: 100px; overflow: auto; }
#tab-todo.chat-floating .todo-task-editor-messages { min-width: 0; min-height: 0; }
#tab-todo.chat-floating .todo-task-message { max-width: 90%; }

/* Phone Chat occupies the full visible main frame; desktop geometry is retained. */
#tab-todo.chat-floating.chat-mobile {
  max-width: none;
  max-height: none;
  scrollbar-gutter: auto;
  box-shadow: none;
}
#tab-todo.chat-floating.chat-mobile .chat-window-header {
  cursor: default;
  touch-action: auto;
}
#tab-todo.chat-floating.chat-mobile .todo-list-panel { min-height: 0; }

#tab-todo.chat-floating .scheduling-technical-header { flex-direction: column; gap: 6px; }
#tab-todo.chat-floating .todo-task-editor-important-field {
  grid-column: 1;
  grid-row: 2;
  display: inline-flex;
  align-items: center;
  align-self: center;
  justify-self: start;
  gap: 5px;
  margin: 0;
  color: #b42318;
  font-size: 12px;
  font-weight: 400;
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
}
#tab-todo.chat-floating .todo-task-editor-important-field input {
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 0;
  accent-color: #b42318;
}

#tab-todo.chat-floating[data-dock]:not([data-dock=""]) {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
}
#tab-todo.chat-floating[data-dock="left"] { --chat-text-x: 2.5px; --chat-text-y: 1px; }
#tab-todo.chat-floating[data-dock="right"] { --chat-text-x: -2.5px; --chat-text-y: 1px; }
#tab-todo.chat-floating[data-dock="top"] { --chat-dock-angle: 180deg; --chat-text-x: -.5px; --chat-text-y: 3px; }
#tab-todo.chat-floating[data-dock]:not([data-dock=""]) > .todo-layout,
#tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-window-minimize,
#tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-window-close { display: none; }
#tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-window-header { flex: 1; padding: 0; border: 0; background: transparent; }
#tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-window-title { position: relative; height: 100%; min-height: 0; justify-content: center; padding: 0; gap: 0; border-radius: 50%; }
.chat-dock-icon { display: none; }
#tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-window-title > span,
#tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-window-title::before { display: none; }
#tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-dock-icon {
  display: block;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  pointer-events: none;
}
.chat-dock-outline {
  fill: var(--surface);
  transform-origin: 12px 12px;
  rotate: var(--chat-dock-angle);
}
/* Side tails preserve the same 17-by-14 body instead of rotating it narrow. */
.chat-dock-outline-left, .chat-dock-outline-right,
#tab-todo:is([data-dock="left"], [data-dock="right"]) .chat-dock-outline-vertical { display: none; }
#tab-todo[data-dock="left"] .chat-dock-outline-left,
#tab-todo[data-dock="right"] .chat-dock-outline-right { display: block; }
.chat-dock-lines {
  stroke-width: 1;
  transform-origin: 12px 11px;
  transform: translate(var(--chat-text-x), var(--chat-text-y)) scale(.7);
}
#tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-window-title:is(:hover, :focus-visible) { color: #4168ca; }
body.theme-dark #tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-window-title { color: #e5f1ff; }
body.theme-dark #tab-todo.chat-floating[data-dock]:not([data-dock=""]) .chat-window-title:is(:hover, :focus-visible) { color: #a9c5ff; }
