/* thellnx Mail: a presentation-only layer over Elastic's responsive controls. */
html:not(.iframe) { font-size: 16px; }
:root {
  --tx-bg: #f3f6fd;
  --tx-surface: #ffffff;
  --tx-soft: #f7f9fe;
  --tx-line: #dce5f5;
  --tx-text: #1e3b63;
  --tx-muted: #627899;
  --tx-blue: #2463eb;
  --tx-hover: #194fca;
  --tx-selected: #eaf1ff;
  --tx-shadow: 0 18px 55px rgba(30, 59, 99, .09);
}
html.dark-mode {
  --tx-bg: #101a2b;
  --tx-surface: #17253b;
  --tx-soft: #1c2d46;
  --tx-line: #30435f;
  --tx-text: #e4edff;
  --tx-muted: #a3b6d3;
  --tx-blue: #92b6ff;
  --tx-hover: #b4cdff;
  --tx-selected: #243e65;
  --tx-shadow: 0 18px 55px rgba(0, 0, 0, .18);
}
body {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--tx-text);
  background: var(--tx-bg);
}
body, button, input, select, textarea { font-size: 1rem; }
a { color: var(--tx-blue); }
a:hover { color: var(--tx-hover); }
button, .btn, input, select, textarea { border-radius: .65rem; }
.form-control, .custom-select {
  color: var(--tx-text);
  background-color: var(--tx-surface);
  border-color: var(--tx-line);
}
.form-control:focus, .custom-select:focus {
  color: var(--tx-text);
  background-color: var(--tx-surface);
  border-color: var(--tx-blue);
  box-shadow: 0 0 0 3px rgba(36, 99, 235, .15);
}
:focus-visible { outline: 3px solid var(--tx-blue); outline-offset: 3px; }
.btn-primary, .btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active {
  background: #2463eb;
  color: #fff;
  border-color: #2463eb;
  font-weight: 600;
}
.btn-primary:hover, .btn-primary:focus { background: #194fca; border-color: #194fca; color: #fff; }
.btn-secondary { background: var(--tx-surface); border-color: var(--tx-line); color: var(--tx-text); }
.btn-secondary:hover { background: var(--tx-selected); color: var(--tx-text); }

/* Mail workspace: keep Elastic's layout and all resize/mobile behavior intact. */
#layout, #layout > div { background-color: var(--tx-surface); }
#layout-sidebar, #layout-list, #layout-content { border-color: var(--tx-line); color: var(--tx-text); }
#layout > div > .header, #layout > div > .footer {
  background-color: var(--tx-soft);
  border-color: var(--tx-line);
  color: var(--tx-text);
}
#layout > div > .header { font-weight: 600; }
#layout-menu { background: var(--tx-surface); border-right: 1px solid var(--tx-line); }
#layout-menu .popover-header { background: var(--tx-surface) !important; border-color: var(--tx-line); }
#layout-menu #logo { width: 40px; height: 40px; object-fit: contain; margin: .6rem auto; padding: 0; }
#taskmenu a { color: var(--tx-muted); border-radius: .75rem; }
#taskmenu a:hover { color: var(--tx-blue); background: var(--tx-selected); }
#taskmenu a.selected { color: var(--tx-blue); background: var(--tx-selected); font-weight: 700; }
#taskmenu a.compose { background: #2463eb; color: #fff; box-shadow: 0 5px 14px rgba(36, 99, 235, .16); }
#taskmenu a.compose:hover, #taskmenu a.compose.selected { background: #194fca; color: #fff; }
#taskmenu .special-buttons { background: var(--tx-surface); }
#taskmenu a.logout { color: #b73849; }
html.dark-mode #taskmenu a.logout { color: #ffabb7; }
.listing, .listing li, .listing td, .listing tr {
  background-color: var(--tx-surface);
  color: var(--tx-text);
  border-color: var(--tx-line);
}
.listing li a { color: var(--tx-text); }
.listing li.selected > a, .listing li.selected > div > a,
.listing tr.selected td, .listing tr.focused td {
  background-color: var(--tx-selected);
  color: var(--tx-text);
}
.listing li > a:hover, .listing tr:hover td { background-color: var(--tx-soft); }
#mailboxlist li { margin: .15rem .45rem; }
#mailboxlist li a { border-radius: .6rem; }
#mailboxlist li.selected > a { color: var(--tx-blue); font-weight: 700; }
#messagelist td { padding-top: .8rem; padding-bottom: .8rem; }
#messagelist .unread td.subject { font-weight: 700; }
#messagelist .date, #messagelist .size, #messagelist .fromto { color: var(--tx-muted); }
#messagelist tr.selected .date, #messagelist tr.selected .fromto { color: var(--tx-text); }
.toolbar a, .menu a { color: var(--tx-text); }
.toolbar a:hover, .menu a:hover { color: var(--tx-blue); }
.searchbar { background: var(--tx-surface); border-color: var(--tx-line); }
.searchbar input { background: var(--tx-soft); color: var(--tx-text); border-radius: .6rem; }
.quota-widget, .pagenav, .listing-info { color: var(--tx-muted); }
.popover, .modal-content, .ui-dialog { background: var(--tx-surface); color: var(--tx-text); border: 1px solid var(--tx-line); border-radius: 1rem; box-shadow: var(--tx-shadow); }
.popover-header, .modal-header, .modal-footer, .ui-dialog-titlebar { background: var(--tx-soft); border-color: var(--tx-line); color: var(--tx-text); }
.formcontent, .formcontent fieldset, #compose-content, #compose-headers { color: var(--tx-text); background-color: var(--tx-surface); }
#message-header, .message-header, #message-header .header { color: var(--tx-text); background-color: var(--tx-surface); border-color: var(--tx-line); }
/* Never restyle HTML message bodies or the rich-text editor's document. */
html.iframe body { font-family: inherit; }

/* A compact, panel-matched sign-in card. */
body.task-login { background: var(--tx-bg); }
.task-login #layout { background: var(--tx-bg); height: auto; min-height: 100vh; }
.task-login #layout-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: transparent;
  width: 100%;
  max-width: none;
  min-width: 0;
  min-height: 100vh;
  padding: 2rem 1.25rem;
  overflow: auto;
}
.tx-login-card {
  width: 100%;
  max-width: 440px;
  padding: 2.25rem;
  border: 1px solid var(--tx-line);
  border-top: 4px solid #2463eb;
  border-radius: 1.5rem;
  background: var(--tx-surface);
  box-shadow: var(--tx-shadow);
  text-align: left;
}
.tx-brand { display: flex; align-items: center; gap: .9rem; margin-bottom: 2rem; }
.task-login .tx-brand #logo { position: static; inset: auto; flex: 0 0 48px; display: block; width: 48px; height: 48px; max-width: none; max-height: none; margin: 0; padding: 0; }
.tx-brand-name { font-size: 1.6rem; font-weight: 750; letter-spacing: -.05rem; color: var(--tx-text); }
.tx-brand-name span { font-weight: 450; color: var(--tx-blue); }
.tx-login-card h1 { font-size: 1.65rem; line-height: 1.3; font-weight: 700; margin: 0 0 .55rem; color: var(--tx-text); }
.tx-login-hint { color: var(--tx-muted); font-size: 1rem; line-height: 1.6; margin: 0 0 1.65rem; }
.task-login #login-form { position: static; inset: auto; transform: none; width: 100%; max-width: none; margin: 0; padding: 0; }
.task-login #login-form table { width: 100%; }
.task-login #login-form .form-control { min-height: 48px; border-radius: .7rem; }
.task-login #login-form .input-group-text { color: var(--tx-muted); background: var(--tx-soft); border-color: var(--tx-line); }
.task-login #login-form .btn-primary { min-height: 48px; border-radius: .7rem; font-size: 1rem; }
.task-login #login-footer { position: static; margin: 0; padding: 0; width: auto; }
.tx-login-help { margin: 1.25rem 0 0; padding-top: 1.1rem; border-top: 1px solid var(--tx-line); color: var(--tx-muted); font-size: .875rem; line-height: 1.6; }
html.dark-mode .task-login #login-form .form-control { background: var(--tx-surface); border-color: var(--tx-line); color: var(--tx-text); }
html.dark-mode .task-login #login-form .btn-primary { background: #2463eb; border-color: #2463eb; color: #fff; }
html.dark-mode .task-login #login-form .btn-primary:hover { background: #194fca; border-color: #194fca; }
html.dark-mode #taskmenu a.selected { background: var(--tx-selected); color: var(--tx-blue); }
html.dark-mode #taskmenu a.compose, html.dark-mode .floating-action-buttons a.button { background: #2463eb; color: #fff; }
html.dark-mode #taskmenu a.compose:hover { background: #194fca; }
@media (min-width: 1025px) {
  #layout-menu { position: relative; width: 112px; min-width: 112px; }
  #taskmenu .special-buttons { left: 0; width: 100%; }
  #taskmenu > a, #taskmenu .action-buttons > a, #taskmenu .special-buttons > a { margin: .3rem .45rem; width: calc(100% - .9rem); box-sizing: border-box; }
  #layout-sidebar > .header, #layout-list > .header { padding-left: 1rem; }
}
@media (max-width: 480px) {
  .task-login #layout-content { padding: 1rem; }
  .tx-login-card { padding: 1.5rem; border-radius: 1.1rem; }
  .tx-brand { margin-bottom: 1.6rem; }
  #messagelist td { padding-top: .65rem; padding-bottom: .65rem; }
}
@media (max-width: 600px) {
  #compose-headers .form-group > .col-form-label { flex: 0 0 100%; max-width: 100%; padding: 0 0 .35rem; line-height: 1.5; white-space: normal; }
  #compose-headers .form-group > .col-10 { flex: 0 0 100%; max-width: 100%; min-width: 0; }
  #compose-headers .form-group { margin-bottom: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0s !important; }
}
