@import url(https://fonts.googleapis.com/css?family=Nunito);
@charset "UTF-8";
/*!
 * Bootstrap v4.6.0 (https://getbootstrap.com/)
 * Copyright 2011-2021 The Bootstrap Authors
 * Copyright 2011-2021 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */
:root {
  --blue: #007bff;
  --indigo: #6610f2;
  --purple: #6f42c1;
  --pink: #e83e8c;
  --red: #dc3545;
  --orange: #fd7e14;
  --yellow: #ffc107;
  --green: #28a745;
  --teal: #20c997;
  --cyan: #17a2b8;
  --white: #fff;
  --gray: #6c757d;
  --gray-dark: #343a40;
  --primary: #007bff;
  --secondary: #6c757d;
  --success: #28a745;
  --info: #17a2b8;
  --warning: #ffc107;
  --danger: #dc3545;
  --light: #f8f9fa;
  --dark: #343a40;
  --breakpoint-xs: 0;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
  display: block;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
  text-align: left;
  background-color: #fff;
}

[tabindex="-1"]:focus:not(:focus-visible) {
  outline: 0 !important;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
}

p {
  margin-top: 0;
  margin-bottom: 1rem;
}

abbr[title],
abbr[data-original-title] {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  cursor: help;
  border-bottom: 0;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}

address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}

ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 1rem;
}

ol ol,
ul ul,
ol ul,
ul ol {
  margin-bottom: 0;
}

dt {
  font-weight: 700;
}

dd {
  margin-bottom: 0.5rem;
  margin-left: 0;
}

blockquote {
  margin: 0 0 1rem;
}

b,
strong {
  font-weight: bolder;
}

small {
  font-size: 80%;
}

sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

a {
  color: #007bff;
  text-decoration: none;
  background-color: transparent;
}
a:hover {
  color: #0056b3;
  text-decoration: underline;
}

a:not([href]):not([class]) {
  color: inherit;
  text-decoration: none;
}
a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none;
}

pre,
code,
kbd,
samp {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}

pre {
  margin-top: 0;
  margin-bottom: 1rem;
  overflow: auto;
  -ms-overflow-style: scrollbar;
}

figure {
  margin: 0 0 1rem;
}

img {
  vertical-align: middle;
  border-style: none;
}

svg {
  overflow: hidden;
  vertical-align: middle;
}

table {
  border-collapse: collapse;
}

caption {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  color: #6c757d;
  text-align: left;
  caption-side: bottom;
}

th {
  text-align: inherit;
  text-align: -webkit-match-parent;
}

label {
  display: inline-block;
  margin-bottom: 0.5rem;
}

button {
  border-radius: 0;
}

button:focus:not(:focus-visible) {
  outline: 0;
}

input,
button,
select,
optgroup,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

[role=button] {
  cursor: pointer;
}

select {
  word-wrap: normal;
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
  cursor: pointer;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

input[type=radio],
input[type=checkbox] {
  box-sizing: border-box;
  padding: 0;
}

textarea {
  overflow: auto;
  resize: vertical;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

legend {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
  line-height: inherit;
  color: inherit;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  outline-offset: -2px;
  -webkit-appearance: none;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}

output {
  display: inline-block;
}

summary {
  display: list-item;
  cursor: pointer;
}

template {
  display: none;
}

[hidden] {
  display: none !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}

h1, .h1 {
  font-size: 2.5rem;
}

h2, .h2 {
  font-size: 2rem;
}

h3, .h3 {
  font-size: 1.75rem;
}

h4, .h4 {
  font-size: 1.5rem;
}

h5, .h5 {
  font-size: 1.25rem;
}

h6, .h6 {
  font-size: 1rem;
}

.lead {
  font-size: 1.25rem;
  font-weight: 300;
}

.display-1 {
  font-size: 6rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-2 {
  font-size: 5.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-3 {
  font-size: 4.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-4 {
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1.2;
}

hr {
  margin-top: 1rem;
  margin-bottom: 1rem;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

small,
.small {
  font-size: 80%;
  font-weight: 400;
}

mark,
.mark {
  padding: 0.2em;
  background-color: #fcf8e3;
}

.list-unstyled {
  padding-left: 0;
  list-style: none;
}

.list-inline {
  padding-left: 0;
  list-style: none;
}

.list-inline-item {
  display: inline-block;
}
.list-inline-item:not(:last-child) {
  margin-right: 0.5rem;
}

.initialism {
  font-size: 90%;
  text-transform: uppercase;
}

.blockquote {
  margin-bottom: 1rem;
  font-size: 1.25rem;
}

.blockquote-footer {
  display: block;
  font-size: 80%;
  color: #6c757d;
}
.blockquote-footer::before {
  content: "ÃƒÂ¯Ã‚Â¿Ã‚Â½ÃƒÂ¯Ã‚Â¿Ã‚Â½";
}

.img-fluid {
  max-width: 100%;
  height: auto;
}

.img-thumbnail {
  padding: 0.25rem;
  background-color: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0.25rem;
  max-width: 100%;
  height: auto;
}

.figure {
  display: inline-block;
}

.figure-img {
  margin-bottom: 0.5rem;
  line-height: 1;
}

.figure-caption {
  font-size: 90%;
  color: #6c757d;
}

code {
  font-size: 87.5%;
  color: #e83e8c;
  word-wrap: break-word;
}
a > code {
  color: inherit;
}

kbd {
  padding: 0.2rem 0.4rem;
  font-size: 87.5%;
  color: #fff;
  background-color: #212529;
  border-radius: 0.2rem;
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: 700;
}

pre {
  display: block;
  font-size: 87.5%;
  color: #212529;
}
pre code {
  font-size: inherit;
  color: inherit;
  word-break: normal;
}

.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}

.container,
.container-fluid,
.container-xl,
.container-lg,
.container-md,
.container-sm {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 576px) {
  .container-sm, .container {
    max-width: 540px;
  }
}
@media (min-width: 768px) {
  .container-md, .container-sm, .container {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .container-lg, .container-md, .container-sm, .container {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container-xl, .container-lg, .container-md, .container-sm, .container {
    max-width: 1140px;
  }
}
.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

.no-gutters {
  margin-right: 0;
  margin-left: 0;
}
.no-gutters > .col,
.no-gutters > [class*=col-] {
  padding-right: 0;
  padding-left: 0;
}

.col-xl,
.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg,
.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md,
.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm,
.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col,
.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}

.col {
  flex-basis: 0;
  flex-grow: 1;
  max-width: 100%;
}

.row-cols-1 > * {
  flex: 0 0 100%;
  max-width: 100%;
}

.row-cols-2 > * {
  flex: 0 0 50%;
  max-width: 50%;
}

.row-cols-3 > * {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

.row-cols-4 > * {
  flex: 0 0 25%;
  max-width: 25%;
}

.row-cols-5 > * {
  flex: 0 0 20%;
  max-width: 20%;
}

.row-cols-6 > * {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
}

.col-auto {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

.col-1 {
  flex: 0 0 8.3333333333%;
  max-width: 8.3333333333%;
}

.col-2 {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
}

.col-3 {
  flex: 0 0 25%;
  max-width: 25%;
}

.col-4 {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}

.col-5 {
  flex: 0 0 41.6666666667%;
  max-width: 41.6666666667%;
}

.col-6 {
  flex: 0 0 50%;
  max-width: 50%;
}

.col-7 {
  flex: 0 0 58.3333333333%;
  max-width: 58.3333333333%;
}

.col-8 {
  flex: 0 0 66.6666666667%;
  max-width: 66.6666666667%;
}

.col-9 {
  flex: 0 0 75%;
  max-width: 75%;
}

.col-10 {
  flex: 0 0 83.3333333333%;
  max-width: 83.3333333333%;
}

.col-11 {
  flex: 0 0 91.6666666667%;
  max-width: 91.6666666667%;
}

.col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

.order-first {
  order: -1;
}

.order-last {
  order: 13;
}

.order-0 {
  order: 0;
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.order-3 {
  order: 3;
}

.order-4 {
  order: 4;
}

.order-5 {
  order: 5;
}

.order-6 {
  order: 6;
}

.order-7 {
  order: 7;
}

.order-8 {
  order: 8;
}

.order-9 {
  order: 9;
}

.order-10 {
  order: 10;
}

.order-11 {
  order: 11;
}

.order-12 {
  order: 12;
}

.offset-1 {
  margin-left: 8.3333333333%;
}

.offset-2 {
  margin-left: 16.6666666667%;
}

.offset-3 {
  margin-left: 25%;
}

.offset-4 {
  margin-left: 33.3333333333%;
}

.offset-5 {
  margin-left: 41.6666666667%;
}

.offset-6 {
  margin-left: 50%;
}

.offset-7 {
  margin-left: 58.3333333333%;
}

.offset-8 {
  margin-left: 66.6666666667%;
}

.offset-9 {
  margin-left: 75%;
}

.offset-10 {
  margin-left: 83.3333333333%;
}

.offset-11 {
  margin-left: 91.6666666667%;
}

@media (min-width: 576px) {
  .col-sm {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .row-cols-sm-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .row-cols-sm-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .row-cols-sm-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .row-cols-sm-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .row-cols-sm-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
  }

  .row-cols-sm-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-sm-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-sm-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-sm-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-sm-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-sm-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-sm-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-sm-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-sm-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-sm-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-sm-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-sm-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-sm-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-sm-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-sm-first {
    order: -1;
  }

  .order-sm-last {
    order: 13;
  }

  .order-sm-0 {
    order: 0;
  }

  .order-sm-1 {
    order: 1;
  }

  .order-sm-2 {
    order: 2;
  }

  .order-sm-3 {
    order: 3;
  }

  .order-sm-4 {
    order: 4;
  }

  .order-sm-5 {
    order: 5;
  }

  .order-sm-6 {
    order: 6;
  }

  .order-sm-7 {
    order: 7;
  }

  .order-sm-8 {
    order: 8;
  }

  .order-sm-9 {
    order: 9;
  }

  .order-sm-10 {
    order: 10;
  }

  .order-sm-11 {
    order: 11;
  }

  .order-sm-12 {
    order: 12;
  }

  .offset-sm-0 {
    margin-left: 0;
  }

  .offset-sm-1 {
    margin-left: 8.3333333333%;
  }

  .offset-sm-2 {
    margin-left: 16.6666666667%;
  }

  .offset-sm-3 {
    margin-left: 25%;
  }

  .offset-sm-4 {
    margin-left: 33.3333333333%;
  }

  .offset-sm-5 {
    margin-left: 41.6666666667%;
  }

  .offset-sm-6 {
    margin-left: 50%;
  }

  .offset-sm-7 {
    margin-left: 58.3333333333%;
  }

  .offset-sm-8 {
    margin-left: 66.6666666667%;
  }

  .offset-sm-9 {
    margin-left: 75%;
  }

  .offset-sm-10 {
    margin-left: 83.3333333333%;
  }

  .offset-sm-11 {
    margin-left: 91.6666666667%;
  }
}
@media (min-width: 768px) {
  .col-md {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .row-cols-md-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .row-cols-md-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .row-cols-md-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .row-cols-md-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .row-cols-md-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
  }

  .row-cols-md-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-md-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-md-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-md-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-md-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-md-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-md-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-md-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-md-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-md-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-md-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-md-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-md-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-md-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-md-first {
    order: -1;
  }

  .order-md-last {
    order: 13;
  }

  .order-md-0 {
    order: 0;
  }

  .order-md-1 {
    order: 1;
  }

  .order-md-2 {
    order: 2;
  }

  .order-md-3 {
    order: 3;
  }

  .order-md-4 {
    order: 4;
  }

  .order-md-5 {
    order: 5;
  }

  .order-md-6 {
    order: 6;
  }

  .order-md-7 {
    order: 7;
  }

  .order-md-8 {
    order: 8;
  }

  .order-md-9 {
    order: 9;
  }

  .order-md-10 {
    order: 10;
  }

  .order-md-11 {
    order: 11;
  }

  .order-md-12 {
    order: 12;
  }

  .offset-md-0 {
    margin-left: 0;
  }

  .offset-md-1 {
    margin-left: 8.3333333333%;
  }

  .offset-md-2 {
    margin-left: 16.6666666667%;
  }

  .offset-md-3 {
    margin-left: 25%;
  }

  .offset-md-4 {
    margin-left: 33.3333333333%;
  }

  .offset-md-5 {
    margin-left: 41.6666666667%;
  }

  .offset-md-6 {
    margin-left: 50%;
  }

  .offset-md-7 {
    margin-left: 58.3333333333%;
  }

  .offset-md-8 {
    margin-left: 66.6666666667%;
  }

  .offset-md-9 {
    margin-left: 75%;
  }

  .offset-md-10 {
    margin-left: 83.3333333333%;
  }

  .offset-md-11 {
    margin-left: 91.6666666667%;
  }
}
@media (min-width: 992px) {
  .col-lg {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .row-cols-lg-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .row-cols-lg-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .row-cols-lg-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .row-cols-lg-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .row-cols-lg-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
  }

  .row-cols-lg-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-lg-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-lg-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-lg-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-lg-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-lg-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-lg-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-lg-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-lg-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-lg-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-lg-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-lg-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-lg-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-lg-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-lg-first {
    order: -1;
  }

  .order-lg-last {
    order: 13;
  }

  .order-lg-0 {
    order: 0;
  }

  .order-lg-1 {
    order: 1;
  }

  .order-lg-2 {
    order: 2;
  }

  .order-lg-3 {
    order: 3;
  }

  .order-lg-4 {
    order: 4;
  }

  .order-lg-5 {
    order: 5;
  }

  .order-lg-6 {
    order: 6;
  }

  .order-lg-7 {
    order: 7;
  }

  .order-lg-8 {
    order: 8;
  }

  .order-lg-9 {
    order: 9;
  }

  .order-lg-10 {
    order: 10;
  }

  .order-lg-11 {
    order: 11;
  }

  .order-lg-12 {
    order: 12;
  }

  .offset-lg-0 {
    margin-left: 0;
  }

  .offset-lg-1 {
    margin-left: 8.3333333333%;
  }

  .offset-lg-2 {
    margin-left: 16.6666666667%;
  }

  .offset-lg-3 {
    margin-left: 25%;
  }

  .offset-lg-4 {
    margin-left: 33.3333333333%;
  }

  .offset-lg-5 {
    margin-left: 41.6666666667%;
  }

  .offset-lg-6 {
    margin-left: 50%;
  }

  .offset-lg-7 {
    margin-left: 58.3333333333%;
  }

  .offset-lg-8 {
    margin-left: 66.6666666667%;
  }

  .offset-lg-9 {
    margin-left: 75%;
  }

  .offset-lg-10 {
    margin-left: 83.3333333333%;
  }

  .offset-lg-11 {
    margin-left: 91.6666666667%;
  }
}
@media (min-width: 1200px) {
  .col-xl {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .row-cols-xl-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .row-cols-xl-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .row-cols-xl-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .row-cols-xl-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .row-cols-xl-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
  }

  .row-cols-xl-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-xl-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-xl-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-xl-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-xl-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-xl-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-xl-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-xl-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-xl-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-xl-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-xl-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-xl-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-xl-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-xl-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-xl-first {
    order: -1;
  }

  .order-xl-last {
    order: 13;
  }

  .order-xl-0 {
    order: 0;
  }

  .order-xl-1 {
    order: 1;
  }

  .order-xl-2 {
    order: 2;
  }

  .order-xl-3 {
    order: 3;
  }

  .order-xl-4 {
    order: 4;
  }

  .order-xl-5 {
    order: 5;
  }

  .order-xl-6 {
    order: 6;
  }

  .order-xl-7 {
    order: 7;
  }

  .order-xl-8 {
    order: 8;
  }

  .order-xl-9 {
    order: 9;
  }

  .order-xl-10 {
    order: 10;
  }

  .order-xl-11 {
    order: 11;
  }

  .order-xl-12 {
    order: 12;
  }

  .offset-xl-0 {
    margin-left: 0;
  }

  .offset-xl-1 {
    margin-left: 8.3333333333%;
  }

  .offset-xl-2 {
    margin-left: 16.6666666667%;
  }

  .offset-xl-3 {
    margin-left: 25%;
  }

  .offset-xl-4 {
    margin-left: 33.3333333333%;
  }

  .offset-xl-5 {
    margin-left: 41.6666666667%;
  }

  .offset-xl-6 {
    margin-left: 50%;
  }

  .offset-xl-7 {
    margin-left: 58.3333333333%;
  }

  .offset-xl-8 {
    margin-left: 66.6666666667%;
  }

  .offset-xl-9 {
    margin-left: 75%;
  }

  .offset-xl-10 {
    margin-left: 83.3333333333%;
  }

  .offset-xl-11 {
    margin-left: 91.6666666667%;
  }
}
.table {
  width: 100%;
  margin-bottom: 1rem;
  color: #212529;
}
.table th,
.table td {
  padding: 0.75rem;
  vertical-align: top;
  border-top: 1px solid #dee2e6;
}
.table thead th {
  vertical-align: bottom;
  border-bottom: 2px solid #dee2e6;
}
.table tbody + tbody {
  border-top: 2px solid #dee2e6;
}

.table-sm th,
.table-sm td {
  padding: 0.3rem;
}

.table-bordered {
  border: 1px solid #dee2e6;
}
.table-bordered th,
.table-bordered td {
  border: 1px solid #dee2e6;
}
.table-bordered thead th,
.table-bordered thead td {
  border-bottom-width: 2px;
}

.table-borderless th,
.table-borderless td,
.table-borderless thead th,
.table-borderless tbody + tbody {
  border: 0;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(0, 0, 0, 0.05);
}

.table-hover tbody tr:hover {
  color: #212529;
  background-color: rgba(0, 0, 0, 0.075);
}

.table-primary,
.table-primary > th,
.table-primary > td {
  background-color: #b8daff;
}
.table-primary th,
.table-primary td,
.table-primary thead th,
.table-primary tbody + tbody {
  border-color: #7abaff;
}

.table-hover .table-primary:hover {
  background-color: #9fcdff;
}
.table-hover .table-primary:hover > td,
.table-hover .table-primary:hover > th {
  background-color: #9fcdff;
}

.table-secondary,
.table-secondary > th,
.table-secondary > td {
  background-color: #d6d8db;
}
.table-secondary th,
.table-secondary td,
.table-secondary thead th,
.table-secondary tbody + tbody {
  border-color: #b3b7bb;
}

.table-hover .table-secondary:hover {
  background-color: #c8cbcf;
}
.table-hover .table-secondary:hover > td,
.table-hover .table-secondary:hover > th {
  background-color: #c8cbcf;
}

.table-success,
.table-success > th,
.table-success > td {
  background-color: #c3e6cb;
}
.table-success th,
.table-success td,
.table-success thead th,
.table-success tbody + tbody {
  border-color: #8fd19e;
}

.table-hover .table-success:hover {
  background-color: #b1dfbb;
}
.table-hover .table-success:hover > td,
.table-hover .table-success:hover > th {
  background-color: #b1dfbb;
}

.table-info,
.table-info > th,
.table-info > td {
  background-color: #bee5eb;
}
.table-info th,
.table-info td,
.table-info thead th,
.table-info tbody + tbody {
  border-color: #86cfda;
}

.table-hover .table-info:hover {
  background-color: #abdde5;
}
.table-hover .table-info:hover > td,
.table-hover .table-info:hover > th {
  background-color: #abdde5;
}

.table-warning,
.table-warning > th,
.table-warning > td {
  background-color: #ffeeba;
}
.table-warning th,
.table-warning td,
.table-warning thead th,
.table-warning tbody + tbody {
  border-color: #ffdf7e;
}

.table-hover .table-warning:hover {
  background-color: #ffe8a1;
}
.table-hover .table-warning:hover > td,
.table-hover .table-warning:hover > th {
  background-color: #ffe8a1;
}

.table-danger,
.table-danger > th,
.table-danger > td {
  background-color: #f5c6cb;
}
.table-danger th,
.table-danger td,
.table-danger thead th,
.table-danger tbody + tbody {
  border-color: #ed969e;
}

.table-hover .table-danger:hover {
  background-color: #f1b0b7;
}
.table-hover .table-danger:hover > td,
.table-hover .table-danger:hover > th {
  background-color: #f1b0b7;
}

.table-light,
.table-light > th,
.table-light > td {
  background-color: #fdfdfe;
}
.table-light th,
.table-light td,
.table-light thead th,
.table-light tbody + tbody {
  border-color: #fbfcfc;
}

.table-hover .table-light:hover {
  background-color: #ececf6;
}
.table-hover .table-light:hover > td,
.table-hover .table-light:hover > th {
  background-color: #ececf6;
}

.table-dark,
.table-dark > th,
.table-dark > td {
  background-color: #c6c8ca;
}
.table-dark th,
.table-dark td,
.table-dark thead th,
.table-dark tbody + tbody {
  border-color: #95999c;
}

.table-hover .table-dark:hover {
  background-color: #b9bbbe;
}
.table-hover .table-dark:hover > td,
.table-hover .table-dark:hover > th {
  background-color: #b9bbbe;
}

.table-active,
.table-active > th,
.table-active > td {
  background-color: rgba(0, 0, 0, 0.075);
}

.table-hover .table-active:hover {
  background-color: rgba(0, 0, 0, 0.075);
}
.table-hover .table-active:hover > td,
.table-hover .table-active:hover > th {
  background-color: rgba(0, 0, 0, 0.075);
}

.table .thead-dark th {
  color: #fff;
  background-color: #343a40;
  border-color: #454d55;
}
.table .thead-light th {
  color: #495057;
  background-color: #e9ecef;
  border-color: #dee2e6;
}

.table-dark {
  color: #fff;
  background-color: #343a40;
}
.table-dark th,
.table-dark td,
.table-dark thead th {
  border-color: #454d55;
}
.table-dark.table-bordered {
  border: 0;
}
.table-dark.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(255, 255, 255, 0.05);
}
.table-dark.table-hover tbody tr:hover {
  color: #fff;
  background-color: rgba(255, 255, 255, 0.075);
}

@media (max-width: 575.98px) {
  .table-responsive-sm {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-sm > .table-bordered {
    border: 0;
  }
}
@media (max-width: 767.98px) {
  .table-responsive-md {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-md > .table-bordered {
    border: 0;
  }
}
@media (max-width: 991.98px) {
  .table-responsive-lg {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-lg > .table-bordered {
    border: 0;
  }
}
@media (max-width: 1199.98px) {
  .table-responsive-xl {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-xl > .table-bordered {
    border: 0;
  }
}
.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.table-responsive > .table-bordered {
  border: 0;
}

.form-control {
  display: block;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-control {
    transition: none;
  }
}
.form-control::-ms-expand {
  background-color: transparent;
  border: 0;
}
.form-control:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #495057;
}
.form-control:focus {
  color: #495057;
  background-color: #fff;
  border-color: #80bdff;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.form-control::-moz-placeholder {
  color: #6c757d;
  opacity: 1;
}
.form-control::placeholder {
  color: #6c757d;
  opacity: 1;
}
.form-control:disabled, .form-control[readonly] {
  background-color: #e9ecef;
  opacity: 1;
}

input[type=date].form-control,
input[type=time].form-control,
input[type=datetime-local].form-control,
input[type=month].form-control {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

select.form-control:focus::-ms-value {
  color: #495057;
  background-color: #fff;
}

.form-control-file,
.form-control-range {
  display: block;
  width: 100%;
}

.col-form-label {
  padding-top: calc(0.375rem + 1px);
  padding-bottom: calc(0.375rem + 1px);
  margin-bottom: 0;
  font-size: inherit;
  line-height: 1.5;
}

.col-form-label-lg {
  padding-top: calc(0.5rem + 1px);
  padding-bottom: calc(0.5rem + 1px);
  font-size: 1.25rem;
  line-height: 1.5;
}

.col-form-label-sm {
  padding-top: calc(0.25rem + 1px);
  padding-bottom: calc(0.25rem + 1px);
  font-size: 0.875rem;
  line-height: 1.5;
}

.form-control-plaintext {
  display: block;
  width: 100%;
  padding: 0.375rem 0;
  margin-bottom: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: #212529;
  background-color: transparent;
  border: solid transparent;
  border-width: 1px 0;
}
.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
  padding-right: 0;
  padding-left: 0;
}

.form-control-sm {
  height: calc(1.5em + 0.5rem + 2px);
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}

.form-control-lg {
  height: calc(1.5em + 1rem + 2px);
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}

select.form-control[size], select.form-control[multiple] {
  height: auto;
}

textarea.form-control {
  height: auto;
}

.form-group {
  margin-bottom: 1rem;
}

.form-text {
  display: block;
  margin-top: 0.25rem;
}

.form-row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -5px;
  margin-left: -5px;
}
.form-row > .col,
.form-row > [class*=col-] {
  padding-right: 5px;
  padding-left: 5px;
}

.form-check {
  position: relative;
  display: block;
  padding-left: 1.25rem;
}

.form-check-input {
  position: absolute;
  margin-top: 0.3rem;
  margin-left: -1.25rem;
}
.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
  color: #6c757d;
}

.form-check-label {
  margin-bottom: 0;
}

.form-check-inline {
  display: inline-flex;
  align-items: center;
  padding-left: 0;
  margin-right: 0.75rem;
}
.form-check-inline .form-check-input {
  position: static;
  margin-top: 0;
  margin-right: 0.3125rem;
  margin-left: 0;
}

.valid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 80%;
  color: #28a745;
}

.valid-tooltip {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #fff;
  background-color: rgba(40, 167, 69, 0.9);
  border-radius: 0.25rem;
}
.form-row > .col > .valid-tooltip, .form-row > [class*=col-] > .valid-tooltip {
  left: 5px;
}

.was-validated :valid ~ .valid-feedback,
.was-validated :valid ~ .valid-tooltip,
.is-valid ~ .valid-feedback,
.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .form-control:valid, .form-control.is-valid {
  border-color: #28a745;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
  border-color: #28a745;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}

.was-validated .custom-select:valid, .custom-select.is-valid {
  border-color: #28a745;
  padding-right: calc(0.75em + 2.3125rem);
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;
}
.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
  border-color: #28a745;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
  color: #28a745;
}
.was-validated .form-check-input:valid ~ .valid-feedback,
.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
.form-check-input.is-valid ~ .valid-tooltip {
  display: block;
}

.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
  color: #28a745;
}
.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
  border-color: #28a745;
}
.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
  border-color: #34ce57;
  background-color: #34ce57;
}
.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}
.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #28a745;
}

.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
  border-color: #28a745;
}
.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
  border-color: #28a745;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}

.invalid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 80%;
  color: #dc3545;
}

.invalid-tooltip {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #fff;
  background-color: rgba(220, 53, 69, 0.9);
  border-radius: 0.25rem;
}
.form-row > .col > .invalid-tooltip, .form-row > [class*=col-] > .invalid-tooltip {
  left: 5px;
}

.was-validated :invalid ~ .invalid-feedback,
.was-validated :invalid ~ .invalid-tooltip,
.is-invalid ~ .invalid-feedback,
.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .form-control:invalid, .form-control.is-invalid {
  border-color: #dc3545;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}

.was-validated .custom-select:invalid, .custom-select.is-invalid {
  border-color: #dc3545;
  padding-right: calc(0.75em + 2.3125rem);
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat;
}
.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
  color: #dc3545;
}
.was-validated .form-check-input:invalid ~ .invalid-feedback,
.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-tooltip {
  display: block;
}

.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
  color: #dc3545;
}
.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
  border-color: #dc3545;
}
.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
  border-color: #e4606d;
  background-color: #e4606d;
}
.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}
.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #dc3545;
}

.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
  border-color: #dc3545;
}
.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
  border-color: #dc3545;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

.form-inline {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}
.form-inline .form-check {
  width: 100%;
}
@media (min-width: 576px) {
  .form-inline label {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
  }
  .form-inline .form-group {
    display: flex;
    flex: 0 0 auto;
    flex-flow: row wrap;
    align-items: center;
    margin-bottom: 0;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-plaintext {
    display: inline-block;
  }
  .form-inline .input-group,
.form-inline .custom-select {
    width: auto;
  }
  .form-inline .form-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding-left: 0;
  }
  .form-inline .form-check-input {
    position: relative;
    flex-shrink: 0;
    margin-top: 0;
    margin-right: 0.25rem;
    margin-left: 0;
  }
  .form-inline .custom-control {
    align-items: center;
    justify-content: center;
  }
  .form-inline .custom-control-label {
    margin-bottom: 0;
  }
}

.btn {
  display: inline-block;
  font-weight: 400;
  color: #212529;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }
}
.btn:hover {
  color: #212529;
  text-decoration: none;
}
.btn:focus, .btn.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.btn.disabled, .btn:disabled {
  opacity: 0.65;
}
.btn:not(:disabled):not(.disabled) {
  cursor: pointer;
}
a.btn.disabled,
fieldset:disabled a.btn {
  pointer-events: none;
}

.btn-primary {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}
.btn-primary:hover {
  color: #fff;
  background-color: #0069d9;
  border-color: #0062cc;
}
.btn-primary:focus, .btn-primary.focus {
  color: #fff;
  background-color: #0069d9;
  border-color: #0062cc;
  box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
}
.btn-primary.disabled, .btn-primary:disabled {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}
.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #0062cc;
  border-color: #005cbf;
}
.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);
}

.btn-secondary {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}
.btn-secondary:hover {
  color: #fff;
  background-color: #5a6268;
  border-color: #545b62;
}
.btn-secondary:focus, .btn-secondary.focus {
  color: #fff;
  background-color: #5a6268;
  border-color: #545b62;
  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
}
.btn-secondary.disabled, .btn-secondary:disabled {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}
.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {
  color: #fff;
  background-color: #545b62;
  border-color: #4e555b;
}
.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);
}

.btn-success {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}
.btn-success:hover {
  color: #fff;
  background-color: #218838;
  border-color: #1e7e34;
}
.btn-success:focus, .btn-success.focus {
  color: #fff;
  background-color: #218838;
  border-color: #1e7e34;
  box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
}
.btn-success.disabled, .btn-success:disabled {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}
.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle {
  color: #fff;
  background-color: #1e7e34;
  border-color: #1c7430;
}
.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);
}

.btn-info {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}
.btn-info:hover {
  color: #fff;
  background-color: #138496;
  border-color: #117a8b;
}
.btn-info:focus, .btn-info.focus {
  color: #fff;
  background-color: #138496;
  border-color: #117a8b;
  box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
}
.btn-info.disabled, .btn-info:disabled {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}
.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle {
  color: #fff;
  background-color: #117a8b;
  border-color: #10707f;
}
.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);
}

.btn-warning {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-warning:hover {
  color: #212529;
  background-color: #e0a800;
  border-color: #d39e00;
}
.btn-warning:focus, .btn-warning.focus {
  color: #212529;
  background-color: #e0a800;
  border-color: #d39e00;
  box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
}
.btn-warning.disabled, .btn-warning:disabled {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle {
  color: #212529;
  background-color: #d39e00;
  border-color: #c69500;
}
.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);
}

.btn-danger {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c82333;
  border-color: #bd2130;
}
.btn-danger:focus, .btn-danger.focus {
  color: #fff;
  background-color: #c82333;
  border-color: #bd2130;
  box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
}
.btn-danger.disabled, .btn-danger:disabled {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}
.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle {
  color: #fff;
  background-color: #bd2130;
  border-color: #b21f2d;
}
.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);
}

.btn-light {
  color: #878787;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}
.btn-light:hover {
  color: #212529;
  background-color: #e2e6ea;
  border-color: #dae0e5;
}
.btn-light:focus, .btn-light.focus {
  color: #212529;
  background-color: #e2e6ea;
  border-color: #dae0e5;
  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
}
.btn-light.disabled, .btn-light:disabled {
  color: #212529;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}
.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle {
  color: #212529;
  background-color: #dae0e5;
  border-color: #d3d9df;
}
.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);
}

.btn-dark {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}
.btn-dark:hover {
  color: #fff;
  background-color: #23272b;
  border-color: #1d2124;
}
.btn-dark:focus, .btn-dark.focus {
  color: #fff;
  background-color: #23272b;
  border-color: #1d2124;
  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
}
.btn-dark.disabled, .btn-dark:disabled {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}
.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle {
  color: #fff;
  background-color: #1d2124;
  border-color: #171a1d;
}
.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);
}

.btn-outline-primary {
  color: #007bff;
  border-color: #007bff;
}
.btn-outline-primary:hover {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}
.btn-outline-primary:focus, .btn-outline-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
  color: #007bff;
  background-color: transparent;
}
.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}
.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}

.btn-outline-secondary {
  color: #6c757d;
  border-color: #6c757d;
}
.btn-outline-secondary:hover {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}
.btn-outline-secondary:focus, .btn-outline-secondary.focus {
  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
}
.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
  color: #6c757d;
  background-color: transparent;
}
.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}
.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
}

.btn-outline-success {
  color: #28a745;
  border-color: #28a745;
}
.btn-outline-success:hover {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}
.btn-outline-success:focus, .btn-outline-success.focus {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}
.btn-outline-success.disabled, .btn-outline-success:disabled {
  color: #28a745;
  background-color: transparent;
}
.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}
.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}

.btn-outline-info {
  color: #17a2b8;
  border-color: #17a2b8;
}
.btn-outline-info:hover {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}
.btn-outline-info:focus, .btn-outline-info.focus {
  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}
.btn-outline-info.disabled, .btn-outline-info:disabled {
  color: #17a2b8;
  background-color: transparent;
}
.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}
.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}

.btn-outline-warning {
  color: #ffc107;
  border-color: #ffc107;
}
.btn-outline-warning:hover {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-outline-warning:focus, .btn-outline-warning.focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.btn-outline-warning.disabled, .btn-outline-warning:disabled {
  color: #ffc107;
  background-color: transparent;
}
.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}

.btn-outline-danger {
  color: #dc3545;
  border-color: #dc3545;
}
.btn-outline-danger:hover {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}
.btn-outline-danger:focus, .btn-outline-danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}
.btn-outline-danger.disabled, .btn-outline-danger:disabled {
  color: #dc3545;
  background-color: transparent;
}
.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}
.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}

.btn-outline-light {
  color: #f8f9fa;
  border-color: #f8f9fa;
}
.btn-outline-light:hover {
  color: #212529;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}
.btn-outline-light:focus, .btn-outline-light.focus {
  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}
.btn-outline-light.disabled, .btn-outline-light:disabled {
  color: #f8f9fa;
  background-color: transparent;
}
.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle {
  color: #212529;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}
.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}

.btn-outline-dark {
  color: #343a40;
  border-color: #343a40;
}
.btn-outline-dark:hover {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}
.btn-outline-dark:focus, .btn-outline-dark.focus {
  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}
.btn-outline-dark.disabled, .btn-outline-dark:disabled {
  color: #343a40;
  background-color: transparent;
}
.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}
.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}

.btn-link {
  font-weight: 400;
  color: #007bff;
  text-decoration: none;
}
.btn-link:hover {
  color: #0056b3;
  text-decoration: underline;
}
.btn-link:focus, .btn-link.focus {
  text-decoration: underline;
}
.btn-link:disabled, .btn-link.disabled {
  color: #6c757d;
  pointer-events: none;
}

.btn-lg, .btn-group-lg > .btn {
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}

.btn-sm, .btn-group-sm > .btn {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}

.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 0.5rem;
}

input[type=submit].btn-block,
input[type=reset].btn-block,
input[type=button].btn-block {
  width: 100%;
}

.fade {
  transition: opacity 0.15s linear;
}
@media (prefers-reduced-motion: reduce) {
  .fade {
    transition: none;
  }
}
.fade:not(.show) {
  opacity: 0;
}

.collapse:not(.show) {
  display: none;
}

.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  transition: height 0.35s ease;
}
@media (prefers-reduced-motion: reduce) {
  .collapsing {
    transition: none;
  }
}

.dropup,
.dropright,
.dropdown,
.dropleft {
  position: relative;
}

.dropdown-toggle {
  white-space: nowrap;
}
.dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid;
  border-right: 0.3em solid transparent;
  border-bottom: 0;
  border-left: 0.3em solid transparent;
}
.dropdown-toggle:empty::after {
  margin-left: 0;
}

.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 10rem;
  padding: 0.5rem 0;
  margin: 0.125rem 0 0;
  font-size: 1rem;
  color: #212529;
  text-align: left;
  list-style: none;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 0.25rem;
}

.dropdown-menu-left {
  right: auto;
  left: 0;
}

.dropdown-menu-right {
  right: 0;
  left: auto;
}

@media (min-width: 576px) {
  .dropdown-menu-sm-left {
    right: auto;
    left: 0;
  }

  .dropdown-menu-sm-right {
    right: 0;
    left: auto;
  }
}
@media (min-width: 768px) {
  .dropdown-menu-md-left {
    right: auto;
    left: 0;
  }

  .dropdown-menu-md-right {
    right: 0;
    left: auto;
  }
}
@media (min-width: 992px) {
  .dropdown-menu-lg-left {
    right: auto;
    left: 0;
  }

  .dropdown-menu-lg-right {
    right: 0;
    left: auto;
  }
}
@media (min-width: 1200px) {
  .dropdown-menu-xl-left {
    right: auto;
    left: 0;
  }

  .dropdown-menu-xl-right {
    right: 0;
    left: auto;
  }
}
.dropup .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-top: 0;
  margin-bottom: 0.125rem;
}
.dropup .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0;
  border-right: 0.3em solid transparent;
  border-bottom: 0.3em solid;
  border-left: 0.3em solid transparent;
}
.dropup .dropdown-toggle:empty::after {
  margin-left: 0;
}

.dropright .dropdown-menu {
  top: 0;
  right: auto;
  left: 100%;
  margin-top: 0;
  margin-left: 0.125rem;
}
.dropright .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid transparent;
  border-right: 0;
  border-bottom: 0.3em solid transparent;
  border-left: 0.3em solid;
}
.dropright .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropright .dropdown-toggle::after {
  vertical-align: 0;
}

.dropleft .dropdown-menu {
  top: 0;
  right: 100%;
  left: auto;
  margin-top: 0;
  margin-right: 0.125rem;
}
.dropleft .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
}
.dropleft .dropdown-toggle::after {
  display: none;
}
.dropleft .dropdown-toggle::before {
  display: inline-block;
  margin-right: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid transparent;
  border-right: 0.3em solid;
  border-bottom: 0.3em solid transparent;
}
.dropleft .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropleft .dropdown-toggle::before {
  vertical-align: 0;
}

.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] {
  right: auto;
  bottom: auto;
}

.dropdown-divider {
  height: 0;
  margin: 0.5rem 0;
  overflow: hidden;
  border-top: 1px solid #e9ecef;
}

.dropdown-item {
  display: block;
  width: 100%;
  padding: 0.25rem 1.5rem;
  clear: both;
  font-weight: 400;
  color: #212529;
  text-align: inherit;
  white-space: nowrap;
  background-color: transparent;
  border: 0;
}
.dropdown-item:hover, .dropdown-item:focus {
  color: #16181b;
  text-decoration: none;
  background-color: #e9ecef;
}
.dropdown-item.active, .dropdown-item:active {
  color: #fff;
  text-decoration: none;
  background-color: #007bff;
}
.dropdown-item.disabled, .dropdown-item:disabled {
  color: #adb5bd;
  pointer-events: none;
  background-color: transparent;
}

.dropdown-menu.show {
  display: block;
}

.dropdown-header {
  display: block;
  padding: 0.5rem 1.5rem;
  margin-bottom: 0;
  font-size: 0.875rem;
  color: #6c757d;
  white-space: nowrap;
}

.dropdown-item-text {
  display: block;
  padding: 0.25rem 1.5rem;
  color: #212529;
}

.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-flex;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  flex: 1 1 auto;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover {
  z-index: 1;
}
.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
.btn-group-vertical > .btn:focus,
.btn-group-vertical > .btn:active,
.btn-group-vertical > .btn.active {
  z-index: 1;
}

.btn-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.btn-toolbar .input-group {
  width: auto;
}

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) {
  margin-left: -1px;
}
.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:last-child) > .btn {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.dropdown-toggle-split {
  padding-right: 0.5625rem;
  padding-left: 0.5625rem;
}
.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after {
  margin-left: 0;
}
.dropleft .dropdown-toggle-split::before {
  margin-right: 0;
}

.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
  padding-right: 0.375rem;
  padding-left: 0.375rem;
}

.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
  padding-right: 0.75rem;
  padding-left: 0.75rem;
}

.btn-group-vertical {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group {
  width: 100%;
}
.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) {
  margin-top: -1px;
}
.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group-vertical > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.btn-group-toggle > .btn,
.btn-group-toggle > .btn-group > .btn {
  margin-bottom: 0;
}
.btn-group-toggle > .btn input[type=radio],
.btn-group-toggle > .btn input[type=checkbox],
.btn-group-toggle > .btn-group > .btn input[type=radio],
.btn-group-toggle > .btn-group > .btn input[type=checkbox] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}

.input-group {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
}
.input-group > .form-control,
.input-group > .form-control-plaintext,
.input-group > .custom-select,
.input-group > .custom-file {
  position: relative;
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
  margin-bottom: 0;
}
.input-group > .form-control + .form-control,
.input-group > .form-control + .custom-select,
.input-group > .form-control + .custom-file,
.input-group > .form-control-plaintext + .form-control,
.input-group > .form-control-plaintext + .custom-select,
.input-group > .form-control-plaintext + .custom-file,
.input-group > .custom-select + .form-control,
.input-group > .custom-select + .custom-select,
.input-group > .custom-select + .custom-file,
.input-group > .custom-file + .form-control,
.input-group > .custom-file + .custom-select,
.input-group > .custom-file + .custom-file {
  margin-left: -1px;
}
.input-group > .form-control:focus,
.input-group > .custom-select:focus,
.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
  z-index: 3;
}
.input-group > .custom-file .custom-file-input:focus {
  z-index: 4;
}
.input-group > .form-control:not(:first-child),
.input-group > .custom-select:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group > .custom-file {
  display: flex;
  align-items: center;
}
.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:first-child) .custom-file-label {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group:not(.has-validation) > .form-control:not(:last-child),
.input-group:not(.has-validation) > .custom-select:not(:last-child),
.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group.has-validation > .form-control:nth-last-child(n+3),
.input-group.has-validation > .custom-select:nth-last-child(n+3),
.input-group.has-validation > .custom-file:nth-last-child(n+3) .custom-file-label::after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group-prepend,
.input-group-append {
  display: flex;
}
.input-group-prepend .btn,
.input-group-append .btn {
  position: relative;
  z-index: 2;
}
.input-group-prepend .btn:focus,
.input-group-append .btn:focus {
  z-index: 3;
}
.input-group-prepend .btn + .btn,
.input-group-prepend .btn + .input-group-text,
.input-group-prepend .input-group-text + .input-group-text,
.input-group-prepend .input-group-text + .btn,
.input-group-append .btn + .btn,
.input-group-append .btn + .input-group-text,
.input-group-append .input-group-text + .input-group-text,
.input-group-append .input-group-text + .btn {
  margin-left: -1px;
}

.input-group-prepend {
  margin-right: -1px;
}

.input-group-append {
  margin-left: -1px;
}

.input-group-text {
  display: flex;
  align-items: center;
  padding: 0.375rem 0.75rem;
  margin-bottom: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  text-align: center;
  white-space: nowrap;
  background-color: #e9ecef;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
}
.input-group-text input[type=radio],
.input-group-text input[type=checkbox] {
  margin-top: 0;
}

.input-group-lg > .form-control:not(textarea),
.input-group-lg > .custom-select {
  height: calc(1.5em + 1rem + 2px);
}

.input-group-lg > .form-control,
.input-group-lg > .custom-select,
.input-group-lg > .input-group-prepend > .input-group-text,
.input-group-lg > .input-group-append > .input-group-text,
.input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn {
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}

.input-group-sm > .form-control:not(textarea),
.input-group-sm > .custom-select {
  height: calc(1.5em + 0.5rem + 2px);
}

.input-group-sm > .form-control,
.input-group-sm > .custom-select,
.input-group-sm > .input-group-prepend > .input-group-text,
.input-group-sm > .input-group-append > .input-group-text,
.input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}

.input-group-lg > .custom-select,
.input-group-sm > .custom-select {
  padding-right: 1.75rem;
}

.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,
.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .btn,
.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.custom-control {
  position: relative;
  z-index: 1;
  display: block;
  min-height: 1.5rem;
  padding-left: 1.5rem;
  -webkit-print-color-adjust: exact;
          color-adjust: exact;
}

.custom-control-inline {
  display: inline-flex;
  margin-right: 1rem;
}

.custom-control-input {
  position: absolute;
  left: 0;
  z-index: -1;
  width: 1rem;
  height: 1.25rem;
  opacity: 0;
}
.custom-control-input:checked ~ .custom-control-label::before {
  color: #fff;
  border-color: #007bff;
  background-color: #007bff;
}
.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #80bdff;
}
.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
  color: #fff;
  background-color: #b3d7ff;
  border-color: #b3d7ff;
}
.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {
  color: #6c757d;
}
.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {
  background-color: #e9ecef;
}

.custom-control-label {
  position: relative;
  margin-bottom: 0;
  vertical-align: top;
}
.custom-control-label::before {
  position: absolute;
  top: 0.25rem;
  left: -1.5rem;
  display: block;
  width: 1rem;
  height: 1rem;
  pointer-events: none;
  content: "";
  background-color: #fff;
  border: #adb5bd solid 1px;
}
.custom-control-label::after {
  position: absolute;
  top: 0.25rem;
  left: -1.5rem;
  display: block;
  width: 1rem;
  height: 1rem;
  content: "";
  background: 50%/50% 50% no-repeat;
}

.custom-checkbox .custom-control-label::before {
  border-radius: 0.25rem;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e");
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
  border-color: #007bff;
  background-color: #007bff;
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
}
.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}
.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-radio .custom-control-label::before {
  border-radius: 50%;
}
.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-switch {
  padding-left: 2.25rem;
}
.custom-switch .custom-control-label::before {
  left: -2.25rem;
  width: 1.75rem;
  pointer-events: all;
  border-radius: 0.5rem;
}
.custom-switch .custom-control-label::after {
  top: calc(0.25rem + 2px);
  left: calc(-2.25rem + 2px);
  width: calc(1rem - 4px);
  height: calc(1rem - 4px);
  background-color: #adb5bd;
  border-radius: 0.5rem;
  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .custom-switch .custom-control-label::after {
    transition: none;
  }
}
.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  background-color: #fff;
  transform: translateX(0.75rem);
}
.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(0, 123, 255, 0.5);
}

.custom-select {
  display: inline-block;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  vertical-align: middle;
  background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.custom-select:focus {
  border-color: #80bdff;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-select:focus::-ms-value {
  color: #495057;
  background-color: #fff;
}
.custom-select[multiple], .custom-select[size]:not([size="1"]) {
  height: auto;
  padding-right: 0.75rem;
  background-image: none;
}
.custom-select:disabled {
  color: #6c757d;
  background-color: #e9ecef;
}
.custom-select::-ms-expand {
  display: none;
}
.custom-select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #495057;
}

.custom-select-sm {
  height: calc(1.5em + 0.5rem + 2px);
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  padding-left: 0.5rem;
  font-size: 0.875rem;
}

.custom-select-lg {
  height: calc(1.5em + 1rem + 2px);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  font-size: 1.25rem;
}

.custom-file {
  position: relative;
  display: inline-block;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  margin-bottom: 0;
}

.custom-file-input {
  position: relative;
  z-index: 2;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  margin: 0;
  overflow: hidden;
  opacity: 0;
}
.custom-file-input:focus ~ .custom-file-label {
  border-color: #80bdff;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label {
  background-color: #e9ecef;
}
.custom-file-input:lang(en) ~ .custom-file-label::after {
  content: "Browse";
}
.custom-file-input ~ .custom-file-label[data-browse]::after {
  content: attr(data-browse);
}

.custom-file-label {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  overflow: hidden;
  font-weight: 400;
  line-height: 1.5;
  color: #495057;
  background-color: #fff;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
}
.custom-file-label::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  height: calc(1.5em + 0.75rem);
  padding: 0.375rem 0.75rem;
  line-height: 1.5;
  color: #495057;
  content: "Browse";
  background-color: #e9ecef;
  border-left: inherit;
  border-radius: 0 0.25rem 0.25rem 0;
}

.custom-range {
  width: 100%;
  height: 1.4rem;
  padding: 0;
  background-color: transparent;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.custom-range:focus {
  outline: 0;
}
.custom-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-range:focus::-ms-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.custom-range::-moz-focus-outer {
  border: 0;
}
.custom-range::-webkit-slider-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: -0.25rem;
  background-color: #007bff;
  border: 0;
  border-radius: 1rem;
  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -webkit-appearance: none;
          appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-webkit-slider-thumb {
    -webkit-transition: none;
    transition: none;
  }
}
.custom-range::-webkit-slider-thumb:active {
  background-color: #b3d7ff;
}
.custom-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #dee2e6;
  border-color: transparent;
  border-radius: 1rem;
}
.custom-range::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  background-color: #007bff;
  border: 0;
  border-radius: 1rem;
  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -moz-appearance: none;
       appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-moz-range-thumb {
    -moz-transition: none;
    transition: none;
  }
}
.custom-range::-moz-range-thumb:active {
  background-color: #b3d7ff;
}
.custom-range::-moz-range-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #dee2e6;
  border-color: transparent;
  border-radius: 1rem;
}
.custom-range::-ms-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: 0;
  margin-right: 0.2rem;
  margin-left: 0.2rem;
  background-color: #007bff;
  border: 0;
  border-radius: 1rem;
  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-ms-thumb {
    -ms-transition: none;
    transition: none;
  }
}
.custom-range::-ms-thumb:active {
  background-color: #b3d7ff;
}
.custom-range::-ms-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: transparent;
  border-color: transparent;
  border-width: 0.5rem;
}
.custom-range::-ms-fill-lower {
  background-color: #dee2e6;
  border-radius: 1rem;
}
.custom-range::-ms-fill-upper {
  margin-right: 15px;
  background-color: #dee2e6;
  border-radius: 1rem;
}
.custom-range:disabled::-webkit-slider-thumb {
  background-color: #adb5bd;
}
.custom-range:disabled::-webkit-slider-runnable-track {
  cursor: default;
}
.custom-range:disabled::-moz-range-thumb {
  background-color: #adb5bd;
}
.custom-range:disabled::-moz-range-track {
  cursor: default;
}
.custom-range:disabled::-ms-thumb {
  background-color: #adb5bd;
}

.custom-control-label::before,
.custom-file-label,
.custom-select {
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .custom-control-label::before,
.custom-file-label,
.custom-select {
    transition: none;
  }
}

.nav {
  display: flex;
  flex-wrap: wrap;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.nav-link {
  display: block;
  padding: 0.5rem 1rem;
}
.nav-link:hover, .nav-link:focus {
  text-decoration: none;
}
.nav-link.disabled {
  color: #6c757d;
  pointer-events: none;
  cursor: default;
}

.nav-tabs {
  border-bottom: 1px solid #dee2e6;
}
.nav-tabs .nav-link {
  margin-bottom: -1px;
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
  border-color: #e9ecef #e9ecef #dee2e6;
}
.nav-tabs .nav-link.disabled {
  color: #6c757d;
  background-color: transparent;
  border-color: transparent;
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  color: #495057;
  background-color: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.nav-pills .nav-link {
  border-radius: 0.25rem;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: #fff;
  background-color: #007bff;
}

.nav-fill > .nav-link,
.nav-fill .nav-item {
  flex: 1 1 auto;
  text-align: center;
}

.nav-justified > .nav-link,
.nav-justified .nav-item {
  flex-basis: 0;
  flex-grow: 1;
  text-align: center;
}

.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}

.navbar {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1rem;
}
.navbar .container,
.navbar .container-fluid,
.navbar .container-sm,
.navbar .container-md,
.navbar .container-lg,
.navbar .container-xl {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}
.navbar-brand {
  display: inline-block;
  padding-top: 0.3125rem;
  padding-bottom: 0.3125rem;
  margin-right: 4.4rem;
  font-size: 1.25rem;
  line-height: inherit;
  white-space: nowrap;
}
.navbar-brand:hover, .navbar-brand:focus {
  text-decoration: none;
}

.navbar-nav {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.navbar-nav .nav-link {
  padding-right: 0;
  padding-left: 0;
}
.navbar-nav .dropdown-menu {
  position: static;
  float: none;
}

.navbar-text {
  display: inline-block;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.navbar-collapse {
  flex-basis: 100%;
  flex-grow: 1;
  align-items: center;
}

.navbar-toggler {
  padding: 0.25rem 0.75rem;
  font-size: 1.25rem;
  line-height: 1;
  background-color: transparent;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}
.navbar-toggler:hover, .navbar-toggler:focus {
  text-decoration: none;
}

.navbar-toggler-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  vertical-align: middle;
  content: "";
  background: 50%/100% 100% no-repeat;
}

.navbar-nav-scroll {
  max-height: 75vh;
  overflow-y: auto;
}

@media (max-width: 575.98px) {
  .navbar-expand-sm > .container,
.navbar-expand-sm > .container-fluid,
.navbar-expand-sm > .container-sm,
.navbar-expand-sm > .container-md,
.navbar-expand-sm > .container-lg,
.navbar-expand-sm > .container-xl {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 576px) {
  .navbar-expand-sm {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-sm .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-sm .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-sm .navbar-nav .nav-link {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
  }
  .navbar-expand-sm > .container,
.navbar-expand-sm > .container-fluid,
.navbar-expand-sm > .container-sm,
.navbar-expand-sm > .container-md,
.navbar-expand-sm > .container-lg,
.navbar-expand-sm > .container-xl {
    flex-wrap: nowrap;
  }
  .navbar-expand-sm .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-sm .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-sm .navbar-toggler {
    display: none;
  }
}
@media (max-width: 767.98px) {
  .navbar-expand-md > .container,
.navbar-expand-md > .container-fluid,
.navbar-expand-md > .container-sm,
.navbar-expand-md > .container-md,
.navbar-expand-md > .container-lg,
.navbar-expand-md > .container-xl {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .navbar-expand-md {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-md .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-md .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-md .navbar-nav .nav-link {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
  }
  .navbar-expand-md > .container,
.navbar-expand-md > .container-fluid,
.navbar-expand-md > .container-sm,
.navbar-expand-md > .container-md,
.navbar-expand-md > .container-lg,
.navbar-expand-md > .container-xl {
    flex-wrap: nowrap;
  }
  .navbar-expand-md .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-md .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-md .navbar-toggler {
    display: none;
  }
}
@media (max-width: 991.98px) {
  .navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid,
.navbar-expand-lg > .container-sm,
.navbar-expand-lg > .container-md,
.navbar-expand-lg > .container-lg,
.navbar-expand-lg > .container-xl {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 992px) {
  .navbar-expand-lg {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-lg .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-lg .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-lg .navbar-nav .nav-link {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
  }
  .navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid,
.navbar-expand-lg > .container-sm,
.navbar-expand-lg > .container-md,
.navbar-expand-lg > .container-lg,
.navbar-expand-lg > .container-xl {
    flex-wrap: nowrap;
  }
  .navbar-expand-lg .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-lg .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-lg .navbar-toggler {
    display: none;
  }
}
@media (max-width: 1199.98px) {
  .navbar-expand-xl > .container,
.navbar-expand-xl > .container-fluid,
.navbar-expand-xl > .container-sm,
.navbar-expand-xl > .container-md,
.navbar-expand-xl > .container-lg,
.navbar-expand-xl > .container-xl {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 1200px) {
  .navbar-expand-xl {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-xl .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-xl .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-xl .navbar-nav .nav-link {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
  }
  .navbar-expand-xl > .container,
.navbar-expand-xl > .container-fluid,
.navbar-expand-xl > .container-sm,
.navbar-expand-xl > .container-md,
.navbar-expand-xl > .container-lg,
.navbar-expand-xl > .container-xl {
    flex-wrap: nowrap;
  }
  .navbar-expand-xl .navbar-nav-scroll {
    overflow: visible;
  }
  .navbar-expand-xl .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-xl .navbar-toggler {
    display: none;
  }
}
.navbar-expand {
  flex-flow: row nowrap;
  justify-content: flex-start;
}
.navbar-expand > .container,
.navbar-expand > .container-fluid,
.navbar-expand > .container-sm,
.navbar-expand > .container-md,
.navbar-expand > .container-lg,
.navbar-expand > .container-xl {
  padding-right: 0;
  padding-left: 0;
}
.navbar-expand .navbar-nav {
  flex-direction: row;
}
.navbar-expand .navbar-nav .dropdown-menu {
  position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
  padding-right: 0.5rem;
  padding-left: 0.5rem;
}
.navbar-expand > .container,
.navbar-expand > .container-fluid,
.navbar-expand > .container-sm,
.navbar-expand > .container-md,
.navbar-expand > .container-lg,
.navbar-expand > .container-xl {
  flex-wrap: nowrap;
}
.navbar-expand .navbar-nav-scroll {
  overflow: visible;
}
.navbar-expand .navbar-collapse {
  display: flex !important;
  flex-basis: auto;
}
.navbar-expand .navbar-toggler {
  display: none;
}

.navbar-light .navbar-brand {
  color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
  color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-nav .nav-link {
  color: rgba(0, 0, 0, 0.5);
}
.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
  color: rgba(0, 0, 0, 0.7);
}
.navbar-light .navbar-nav .nav-link.disabled {
  color: rgba(0, 0, 0, 0.3);
}
.navbar-light .navbar-nav .show > .nav-link,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .nav-link.active {
  color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-toggler {
  color: rgba(0, 0, 0, 0.5);
  border-color: rgba(0, 0, 0, 0.1);
}
.navbar-light .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-light .navbar-text {
  color: rgba(0, 0, 0, 0.5);
}
.navbar-light .navbar-text a {
  color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
  color: rgba(0, 0, 0, 0.9);
}

.navbar-dark .navbar-brand {
  color: #fff;
}
.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
  color: #fff;
}
.navbar-dark .navbar-nav .nav-link {
  color: rgba(255, 255, 255, 0.5);
}
.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
  color: rgba(255, 255, 255, 0.75);
}
.navbar-dark .navbar-nav .nav-link.disabled {
  color: rgba(255, 255, 255, 0.25);
}
.navbar-dark .navbar-nav .show > .nav-link,
.navbar-dark .navbar-nav .active > .nav-link,
.navbar-dark .navbar-nav .nav-link.show,
.navbar-dark .navbar-nav .nav-link.active {
  color: #fff;
}
.navbar-dark .navbar-toggler {
  color: rgba(255, 255, 255, 0.5);
  border-color: rgba(255, 255, 255, 0.1);
}
.navbar-dark .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-dark .navbar-text {
  color: rgba(255, 255, 255, 0.5);
}
.navbar-dark .navbar-text a {
  color: #fff;
}
.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
  color: #fff;
}

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  word-wrap: break-word;
  background-color: #fff;
  background-clip: border-box;
  border: 1px solid rgba(0, 0, 0, 0.125);
  border-radius: 0.25rem;
}
.card > hr {
  margin-right: 0;
  margin-left: 0;
}
.card > .list-group {
  border-top: inherit;
  border-bottom: inherit;
}
.card > .list-group:first-child {
  border-top-width: 0;
  border-top-left-radius: calc(0.25rem - 1px);
  border-top-right-radius: calc(0.25rem - 1px);
}
.card > .list-group:last-child {
  border-bottom-width: 0;
  border-bottom-right-radius: calc(0.25rem - 1px);
  border-bottom-left-radius: calc(0.25rem - 1px);
}
.card > .card-header + .list-group,
.card > .list-group + .card-footer {
  border-top: 0;
}

.card-body {
  flex: 1 1 auto;
  min-height: 1px;
  padding: 1.25rem;
}

.card-title {
  margin-bottom: 0.75rem;
}

.card-subtitle {
  margin-top: -0.375rem;
  margin-bottom: 0;
}

.card-text:last-child {
  margin-bottom: 0;
}

.card-link:hover {
  text-decoration: none;
}
.card-link + .card-link {
  margin-left: 1.25rem;
}

.card-header {
  padding: 0.75rem 1.25rem;
  margin-bottom: 0;
  background-color: rgba(0, 0, 0, 0.03);
  border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}
.card-header:first-child {
  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
}

.card-footer {
  padding: 0.75rem 1.25rem;
  background-color: rgba(0, 0, 0, 0.03);
  border-top: 1px solid rgba(0, 0, 0, 0.125);
}
.card-footer:last-child {
  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
}

.card-header-tabs {
  margin-right: -0.625rem;
  margin-bottom: -0.75rem;
  margin-left: -0.625rem;
  border-bottom: 0;
}

.card-header-pills {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}

.card-img-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 1.25rem;
  border-radius: calc(0.25rem - 1px);
}

.card-img,
.card-img-top,
.card-img-bottom {
  flex-shrink: 0;
  width: 100%;
}

.card-img,
.card-img-top {
  border-top-left-radius: calc(0.25rem - 1px);
  border-top-right-radius: calc(0.25rem - 1px);
}

.card-img,
.card-img-bottom {
  border-bottom-right-radius: calc(0.25rem - 1px);
  border-bottom-left-radius: calc(0.25rem - 1px);
}

.card-deck .card {
  margin-bottom: 15px;
}
@media (min-width: 576px) {
  .card-deck {
    display: flex;
    flex-flow: row wrap;
    margin-right: -15px;
    margin-left: -15px;
  }
  .card-deck .card {
    flex: 1 0 0%;
    margin-right: 15px;
    margin-bottom: 0;
    margin-left: 15px;
  }
}

.card-group > .card {
  margin-bottom: 15px;
}
@media (min-width: 576px) {
  .card-group {
    display: flex;
    flex-flow: row wrap;
  }
  .card-group > .card {
    flex: 1 0 0%;
    margin-bottom: 0;
  }
  .card-group > .card + .card {
    margin-left: 0;
    border-left: 0;
  }
  .card-group > .card:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  .card-group > .card:not(:last-child) .card-img-top,
.card-group > .card:not(:last-child) .card-header {
    border-top-right-radius: 0;
  }
  .card-group > .card:not(:last-child) .card-img-bottom,
.card-group > .card:not(:last-child) .card-footer {
    border-bottom-right-radius: 0;
  }
  .card-group > .card:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
  .card-group > .card:not(:first-child) .card-img-top,
.card-group > .card:not(:first-child) .card-header {
    border-top-left-radius: 0;
  }
  .card-group > .card:not(:first-child) .card-img-bottom,
.card-group > .card:not(:first-child) .card-footer {
    border-bottom-left-radius: 0;
  }
}

.card-columns .card {
  margin-bottom: 0.75rem;
}
@media (min-width: 576px) {
  .card-columns {
    -moz-column-count: 3;
         column-count: 3;
    -moz-column-gap: 1.25rem;
         column-gap: 1.25rem;
    orphans: 1;
    widows: 1;
  }
  .card-columns .card {
    display: inline-block;
    width: 100%;
  }
}

.accordion {
  overflow-anchor: none;
}
.accordion > .card {
  overflow: hidden;
}
.accordion > .card:not(:last-of-type) {
  border-bottom: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.accordion > .card:not(:first-of-type) {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.accordion > .card > .card-header {
  border-radius: 0;
  margin-bottom: -1px;
}

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  list-style: none;
  background-color: #e9ecef;
  border-radius: 0.25rem;
}

.breadcrumb-item + .breadcrumb-item {
  padding-left: 0.5rem;
}
.breadcrumb-item + .breadcrumb-item::before {
  float: left;
  padding-right: 0.5rem;
  color: #6c757d;
  content: "/";
}
.breadcrumb-item + .breadcrumb-item:hover::before {
  text-decoration: underline;
}
.breadcrumb-item + .breadcrumb-item:hover::before {
  text-decoration: none;
}
.breadcrumb-item.active {
  color: #6c757d;
}

.pagination {
  display: flex;
  padding-left: 0;
  list-style: none;
  border-radius: 0.25rem;
}

.page-link {
  position: relative;
  display: block;
  padding: 0.5rem 0.75rem;
  margin-left: -1px;
  line-height: 1.25;
  color: #007bff;
  background-color: #fff;
  border: 1px solid #dee2e6;
}
.page-link:hover {
  z-index: 2;
  color: #0056b3;
  text-decoration: none;
  background-color: #e9ecef;
  border-color: #dee2e6;
}
.page-link:focus {
  z-index: 3;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.page-item:first-child .page-link {
  margin-left: 0;
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
.page-item:last-child .page-link {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
.page-item.active .page-link {
  z-index: 3;
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}
.page-item.disabled .page-link {
  color: #6c757d;
  pointer-events: none;
  cursor: auto;
  background-color: #fff;
  border-color: #dee2e6;
}

.pagination-lg .page-link {
  padding: 0.75rem 1.5rem;
  font-size: 1.25rem;
  line-height: 1.5;
}
.pagination-lg .page-item:first-child .page-link {
  border-top-left-radius: 0.3rem;
  border-bottom-left-radius: 0.3rem;
}
.pagination-lg .page-item:last-child .page-link {
  border-top-right-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}

.pagination-sm .page-link {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
}
.pagination-sm .page-item:first-child .page-link {
  border-top-left-radius: 0.2rem;
  border-bottom-left-radius: 0.2rem;
}
.pagination-sm .page-item:last-child .page-link {
  border-top-right-radius: 0.2rem;
  border-bottom-right-radius: 0.2rem;
}

.badge {
  display: inline-block;
  padding: 0.25em 0.4em;
  font-size: 75%;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .badge {
    transition: none;
  }
}
a.badge:hover, a.badge:focus {
  text-decoration: none;
}

.badge:empty {
  display: none;
}

.btn .badge {
  position: relative;
  top: -1px;
}

.badge-pill {
  padding-right: 0.6em;
  padding-left: 0.6em;
  border-radius: 10rem;
}

.badge-primary {
  color: #fff;
  background-color: #007bff;
}
a.badge-primary:hover, a.badge-primary:focus {
  color: #fff;
  background-color: #0062cc;
}
a.badge-primary:focus, a.badge-primary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}

.badge-secondary {
  color: #fff;
  background-color: #6c757d;
}
a.badge-secondary:hover, a.badge-secondary:focus {
  color: #fff;
  background-color: #545b62;
}
a.badge-secondary:focus, a.badge-secondary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
}

.badge-success {
  color: #fff;
  background-color: #28a745;
}
a.badge-success:hover, a.badge-success:focus {
  color: #fff;
  background-color: #1e7e34;
}
a.badge-success:focus, a.badge-success.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}

.badge-info {
  color: #fff;
  background-color: #17a2b8;
}
a.badge-info:hover, a.badge-info:focus {
  color: #fff;
  background-color: #117a8b;
}
a.badge-info:focus, a.badge-info.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}

.badge-warning {
  color: #212529;
  background-color: #ffc107;
}
a.badge-warning:hover, a.badge-warning:focus {
  color: #212529;
  background-color: #d39e00;
}
a.badge-warning:focus, a.badge-warning.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}

.badge-danger {
  color: #fff;
  background-color: #dc3545;
}
a.badge-danger:hover, a.badge-danger:focus {
  color: #fff;
  background-color: #bd2130;
}
a.badge-danger:focus, a.badge-danger.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}

.badge-light {
  color: #212529;
  background-color: #f8f9fa;
}
a.badge-light:hover, a.badge-light:focus {
  color: #212529;
  background-color: #dae0e5;
}
a.badge-light:focus, a.badge-light.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}

.badge-dark {
  color: #fff;
  background-color: #343a40;
}
a.badge-dark:hover, a.badge-dark:focus {
  color: #fff;
  background-color: #1d2124;
}
a.badge-dark:focus, a.badge-dark.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}

.jumbotron {
  padding: 2rem 1rem;
  margin-bottom: 2rem;
  background-color: #e9ecef;
  border-radius: 0.3rem;
}
@media (min-width: 576px) {
  .jumbotron {
    padding: 4rem 2rem;
  }
}

.jumbotron-fluid {
  padding-right: 0;
  padding-left: 0;
  border-radius: 0;
}

.alert {
  position: relative;
  padding: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}

.alert-heading {
  color: inherit;
}

.alert-link {
  font-weight: 700;
}

.alert-dismissible {
  padding-right: 4rem;
}
.alert-dismissible .close {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  padding: 0.75rem 1.25rem;
  color: inherit;
}

.alert-primary {
  color: #004085;
  background-color: #cce5ff;
  border-color: #b8daff;
}
.alert-primary hr {
  border-top-color: #9fcdff;
}
.alert-primary .alert-link {
  color: #002752;
}

.alert-secondary {
  color: #383d41;
  background-color: #e2e3e5;
  border-color: #d6d8db;
}
.alert-secondary hr {
  border-top-color: #c8cbcf;
}
.alert-secondary .alert-link {
  color: #202326;
}

.alert-success {
  color: #155724;
  background-color: #d4edda;
  border-color: #c3e6cb;
}
.alert-success hr {
  border-top-color: #b1dfbb;
}
.alert-success .alert-link {
  color: #0b2e13;
}

.alert-info {
  color: #0c5460;
  background-color: #d1ecf1;
  border-color: #bee5eb;
}
.alert-info hr {
  border-top-color: #abdde5;
}
.alert-info .alert-link {
  color: #062c33;
}

.alert-warning {
  color: #856404;
  background-color: #fff3cd;
  border-color: #ffeeba;
}
.alert-warning hr {
  border-top-color: #ffe8a1;
}
.alert-warning .alert-link {
  color: #533f03;
}

.alert-danger {
  color: #721c24;
  background-color: #f8d7da;
  border-color: #f5c6cb;
}
.alert-danger hr {
  border-top-color: #f1b0b7;
}
.alert-danger .alert-link {
  color: #491217;
}

.alert-light {
  color: #818182;
  background-color: #fefefe;
  border-color: #fdfdfe;
}
.alert-light hr {
  border-top-color: #ececf6;
}
.alert-light .alert-link {
  color: #686868;
}

.alert-dark {
  color: #1b1e21;
  background-color: #d6d8d9;
  border-color: #c6c8ca;
}
.alert-dark hr {
  border-top-color: #b9bbbe;
}
.alert-dark .alert-link {
  color: #040505;
}

@keyframes progress-bar-stripes {
  from {
    background-position: 1rem 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  display: flex;
  height: 1rem;
  overflow: hidden;
  line-height: 0;
  font-size: 0.75rem;
  background-color: #e9ecef;
  border-radius: 0.25rem;
}

.progress-bar {
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  background-color: #007bff;
  transition: width 0.6s ease;
}
@media (prefers-reduced-motion: reduce) {
  .progress-bar {
    transition: none;
  }
}

.progress-bar-striped {
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 1rem 1rem;
}

.progress-bar-animated {
  animation: 1s linear infinite progress-bar-stripes;
}
@media (prefers-reduced-motion: reduce) {
  .progress-bar-animated {
    animation: none;
  }
}

.media {
  display: flex;
  align-items: flex-start;
}

.media-body {
  flex: 1;
}

.list-group {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  border-radius: 0.25rem;
}

.list-group-item-action {
  width: 100%;
  color: #495057;
  text-align: inherit;
}
.list-group-item-action:hover, .list-group-item-action:focus {
  z-index: 1;
  color: #495057;
  text-decoration: none;
  background-color: #f8f9fa;
}
.list-group-item-action:active {
  color: #212529;
  background-color: #e9ecef;
}

.list-group-item {
  position: relative;
  display: block;
  padding: 0.75rem 1.25rem;
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.125);
}
.list-group-item:first-child {
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}
.list-group-item:last-child {
  border-bottom-right-radius: inherit;
  border-bottom-left-radius: inherit;
}
.list-group-item.disabled, .list-group-item:disabled {
  color: #6c757d;
  pointer-events: none;
  background-color: #fff;
}
.list-group-item.active {
  z-index: 2;
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}
.list-group-item + .list-group-item {
  border-top-width: 0;
}
.list-group-item + .list-group-item.active {
  margin-top: -1px;
  border-top-width: 1px;
}

.list-group-horizontal {
  flex-direction: row;
}
.list-group-horizontal > .list-group-item:first-child {
  border-bottom-left-radius: 0.25rem;
  border-top-right-radius: 0;
}
.list-group-horizontal > .list-group-item:last-child {
  border-top-right-radius: 0.25rem;
  border-bottom-left-radius: 0;
}
.list-group-horizontal > .list-group-item.active {
  margin-top: 0;
}
.list-group-horizontal > .list-group-item + .list-group-item {
  border-top-width: 1px;
  border-left-width: 0;
}
.list-group-horizontal > .list-group-item + .list-group-item.active {
  margin-left: -1px;
  border-left-width: 1px;
}

@media (min-width: 576px) {
  .list-group-horizontal-sm {
    flex-direction: row;
  }
  .list-group-horizontal-sm > .list-group-item:first-child {
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-sm > .list-group-item:last-child {
    border-top-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-sm > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-sm > .list-group-item + .list-group-item {
    border-top-width: 1px;
    border-left-width: 0;
  }
  .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
    margin-left: -1px;
    border-left-width: 1px;
  }
}
@media (min-width: 768px) {
  .list-group-horizontal-md {
    flex-direction: row;
  }
  .list-group-horizontal-md > .list-group-item:first-child {
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-md > .list-group-item:last-child {
    border-top-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-md > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-md > .list-group-item + .list-group-item {
    border-top-width: 1px;
    border-left-width: 0;
  }
  .list-group-horizontal-md > .list-group-item + .list-group-item.active {
    margin-left: -1px;
    border-left-width: 1px;
  }
}
@media (min-width: 992px) {
  .list-group-horizontal-lg {
    flex-direction: row;
  }
  .list-group-horizontal-lg > .list-group-item:first-child {
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-lg > .list-group-item:last-child {
    border-top-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-lg > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-lg > .list-group-item + .list-group-item {
    border-top-width: 1px;
    border-left-width: 0;
  }
  .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
    margin-left: -1px;
    border-left-width: 1px;
  }
}
@media (min-width: 1200px) {
  .list-group-horizontal-xl {
    flex-direction: row;
  }
  .list-group-horizontal-xl > .list-group-item:first-child {
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-xl > .list-group-item:last-child {
    border-top-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
  .list-group-horizontal-xl > .list-group-item.active {
    margin-top: 0;
  }
  .list-group-horizontal-xl > .list-group-item + .list-group-item {
    border-top-width: 1px;
    border-left-width: 0;
  }
  .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
    margin-left: -1px;
    border-left-width: 1px;
  }
}
.list-group-flush {
  border-radius: 0;
}
.list-group-flush > .list-group-item {
  border-width: 0 0 1px;
}
.list-group-flush > .list-group-item:last-child {
  border-bottom-width: 0;
}

.list-group-item-primary {
  color: #004085;
  background-color: #b8daff;
}
.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
  color: #004085;
  background-color: #9fcdff;
}
.list-group-item-primary.list-group-item-action.active {
  color: #fff;
  background-color: #004085;
  border-color: #004085;
}

.list-group-item-secondary {
  color: #383d41;
  background-color: #d6d8db;
}
.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
  color: #383d41;
  background-color: #c8cbcf;
}
.list-group-item-secondary.list-group-item-action.active {
  color: #fff;
  background-color: #383d41;
  border-color: #383d41;
}

.list-group-item-success {
  color: #155724;
  background-color: #c3e6cb;
}
.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
  color: #155724;
  background-color: #b1dfbb;
}
.list-group-item-success.list-group-item-action.active {
  color: #fff;
  background-color: #155724;
  border-color: #155724;
}

.list-group-item-info {
  color: #0c5460;
  background-color: #bee5eb;
}
.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
  color: #0c5460;
  background-color: #abdde5;
}
.list-group-item-info.list-group-item-action.active {
  color: #fff;
  background-color: #0c5460;
  border-color: #0c5460;
}

.list-group-item-warning {
  color: #856404;
  background-color: #ffeeba;
}
.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
  color: #856404;
  background-color: #ffe8a1;
}
.list-group-item-warning.list-group-item-action.active {
  color: #fff;
  background-color: #856404;
  border-color: #856404;
}

.list-group-item-danger {
  color: #721c24;
  background-color: #f5c6cb;
}
.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
  color: #721c24;
  background-color: #f1b0b7;
}
.list-group-item-danger.list-group-item-action.active {
  color: #fff;
  background-color: #721c24;
  border-color: #721c24;
}

.list-group-item-light {
  color: #818182;
  background-color: #fdfdfe;
}
.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
  color: #818182;
  background-color: #ececf6;
}
.list-group-item-light.list-group-item-action.active {
  color: #fff;
  background-color: #818182;
  border-color: #818182;
}

.list-group-item-dark {
  color: #1b1e21;
  background-color: #c6c8ca;
}
.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
  color: #1b1e21;
  background-color: #b9bbbe;
}
.list-group-item-dark.list-group-item-action.active {
  color: #fff;
  background-color: #1b1e21;
  border-color: #1b1e21;
}

.close {
  float: right;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.5;
}
.close:hover {
  color: #000;
  text-decoration: none;
}
.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
  opacity: 0.75;
}

button.close {
  padding: 0;
  background-color: transparent;
  border: 0;
}

a.close.disabled {
  pointer-events: none;
}

.toast {
  flex-basis: 350px;
  max-width: 350px;
  font-size: 0.875rem;
  background-color: rgba(255, 255, 255, 0.85);
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  opacity: 0;
  border-radius: 0.25rem;
}
.toast:not(:last-child) {
  margin-bottom: 0.75rem;
}
.toast.showing {
  opacity: 1;
}
.toast.show {
  display: block;
  opacity: 1;
}
.toast.hide {
  display: none;
}

.toast-header {
  display: flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  color: #6c757d;
  background-color: rgba(255, 255, 255, 0.85);
  background-clip: padding-box;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  border-top-left-radius: calc(0.25rem - 1px);
  border-top-right-radius: calc(0.25rem - 1px);
}

.toast-body {
  padding: 0.75rem;
}

.modal-open {
  overflow: hidden;
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: 0;
}

.modal-dialog {
  position: relative;
  width: auto;
  margin: 0.5rem;
  pointer-events: none;
}
.modal.fade .modal-dialog {
  transition: transform 0.3s ease-out;
  transform: translate(0, -50px);
}
@media (prefers-reduced-motion: reduce) {
  .modal.fade .modal-dialog {
    transition: none;
  }
}
.modal.show .modal-dialog {
  transform: none;
}
.modal.modal-static .modal-dialog {
  transform: scale(1.02);
}

.modal-dialog-scrollable {
  display: flex;
  max-height: calc(100% - 1rem);
}
.modal-dialog-scrollable .modal-content {
  max-height: calc(100vh - 1rem);
  overflow: hidden;
}
.modal-dialog-scrollable .modal-header,
.modal-dialog-scrollable .modal-footer {
  flex-shrink: 0;
}
.modal-dialog-scrollable .modal-body {
  overflow-y: auto;
}

.modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - 1rem);
}
.modal-dialog-centered::before {
  display: block;
  height: calc(100vh - 1rem);
  height: -moz-min-content;
  height: min-content;
  content: "";
}
.modal-dialog-centered.modal-dialog-scrollable {
  flex-direction: column;
  justify-content: center;
  height: 100%;
}
.modal-dialog-centered.modal-dialog-scrollable .modal-content {
  max-height: none;
}
.modal-dialog-centered.modal-dialog-scrollable::before {
  content: none;
}

.modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
  outline: 0;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  width: 100vw;
  height: 100vh;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
}
.modal-backdrop.show {
  opacity: 0.5;
}

.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1rem 1rem;
  border-bottom: 1px solid #dee2e6;
  border-top-left-radius: calc(0.3rem - 1px);
  border-top-right-radius: calc(0.3rem - 1px);
}
.modal-header .close {
  padding: 1rem 1rem;
  margin: -1rem -1rem -1rem auto;
}

.modal-title {
  margin-bottom: 0;
  line-height: 1.5;
}

.modal-body {
  position: relative;
  flex: 1 1 auto;
  padding: 1rem;
}

.modal-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  padding: 0.75rem;
  border-top: 1px solid #dee2e6;
  border-bottom-right-radius: calc(0.3rem - 1px);
  border-bottom-left-radius: calc(0.3rem - 1px);
}
.modal-footer > * {
  margin: 0.25rem;
}

.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}

@media (min-width: 576px) {
  .modal-dialog {
    max-width: 500px;
    margin: 1.75rem auto;
  }

  .modal-dialog-scrollable {
    max-height: calc(100% - 3.5rem);
  }
  .modal-dialog-scrollable .modal-content {
    max-height: calc(100vh - 3.5rem);
  }

  .modal-dialog-centered {
    min-height: calc(100% - 3.5rem);
  }
  .modal-dialog-centered::before {
    height: calc(100vh - 3.5rem);
    height: -moz-min-content;
    height: min-content;
  }

  .modal-sm {
    max-width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg,
.modal-xl {
    max-width: 800px;
  }
}
@media (min-width: 1200px) {
  .modal-xl {
    max-width: 1140px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  word-spacing: normal;
  white-space: normal;
  line-break: auto;
  font-size: 0.875rem;
  word-wrap: break-word;
  opacity: 0;
}
.tooltip.show {
  opacity: 0.9;
}
.tooltip .arrow {
  position: absolute;
  display: block;
  width: 0.8rem;
  height: 0.4rem;
}
.tooltip .arrow::before {
  position: absolute;
  content: "";
  border-color: transparent;
  border-style: solid;
}

.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] {
  padding: 0.4rem 0;
}
.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow {
  bottom: 0;
}
.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before {
  top: 0;
  border-width: 0.4rem 0.4rem 0;
  border-top-color: #000;
}

.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] {
  padding: 0 0.4rem;
}
.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow {
  left: 0;
  width: 0.4rem;
  height: 0.8rem;
}
.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before {
  right: 0;
  border-width: 0.4rem 0.4rem 0.4rem 0;
  border-right-color: #000;
}

.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] {
  padding: 0.4rem 0;
}
.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow {
  top: 0;
}
.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before {
  bottom: 0;
  border-width: 0 0.4rem 0.4rem;
  border-bottom-color: #000;
}

.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] {
  padding: 0 0.4rem;
}
.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow {
  right: 0;
  width: 0.4rem;
  height: 0.8rem;
}
.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before {
  left: 0;
  border-width: 0.4rem 0 0.4rem 0.4rem;
  border-left-color: #000;
}

.tooltip-inner {
  max-width: 200px;
  padding: 0.25rem 0.5rem;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 0.25rem;
}

.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: block;
  max-width: 276px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  word-spacing: normal;
  white-space: normal;
  line-break: auto;
  font-size: 0.875rem;
  word-wrap: break-word;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
}
.popover .arrow {
  position: absolute;
  display: block;
  width: 1rem;
  height: 0.5rem;
  margin: 0 0.3rem;
}
.popover .arrow::before, .popover .arrow::after {
  position: absolute;
  display: block;
  content: "";
  border-color: transparent;
  border-style: solid;
}

.bs-popover-top, .bs-popover-auto[x-placement^=top] {
  margin-bottom: 0.5rem;
}
.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=top] > .arrow {
  bottom: calc(-0.5rem - 1px);
}
.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=top] > .arrow::before {
  bottom: 0;
  border-width: 0.5rem 0.5rem 0;
  border-top-color: rgba(0, 0, 0, 0.25);
}
.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=top] > .arrow::after {
  bottom: 1px;
  border-width: 0.5rem 0.5rem 0;
  border-top-color: #fff;
}

.bs-popover-right, .bs-popover-auto[x-placement^=right] {
  margin-left: 0.5rem;
}
.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=right] > .arrow {
  left: calc(-0.5rem - 1px);
  width: 0.5rem;
  height: 1rem;
  margin: 0.3rem 0;
}
.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=right] > .arrow::before {
  left: 0;
  border-width: 0.5rem 0.5rem 0.5rem 0;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=right] > .arrow::after {
  left: 1px;
  border-width: 0.5rem 0.5rem 0.5rem 0;
  border-right-color: #fff;
}

.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom] {
  margin-top: 0.5rem;
}
.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=bottom] > .arrow {
  top: calc(-0.5rem - 1px);
}
.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=bottom] > .arrow::before {
  top: 0;
  border-width: 0 0.5rem 0.5rem 0.5rem;
  border-bottom-color: rgba(0, 0, 0, 0.25);
}
.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=bottom] > .arrow::after {
  top: 1px;
  border-width: 0 0.5rem 0.5rem 0.5rem;
  border-bottom-color: #fff;
}
.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before {
  position: absolute;
  top: 0;
  left: 50%;
  display: block;
  width: 1rem;
  margin-left: -0.5rem;
  content: "";
  border-bottom: 1px solid #f7f7f7;
}

.bs-popover-left, .bs-popover-auto[x-placement^=left] {
  margin-right: 0.5rem;
}
.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=left] > .arrow {
  right: calc(-0.5rem - 1px);
  width: 0.5rem;
  height: 1rem;
  margin: 0.3rem 0;
}
.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=left] > .arrow::before {
  right: 0;
  border-width: 0.5rem 0 0.5rem 0.5rem;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=left] > .arrow::after {
  right: 1px;
  border-width: 0.5rem 0 0.5rem 0.5rem;
  border-left-color: #fff;
}

.popover-header {
  padding: 0.5rem 0.75rem;
  margin-bottom: 0;
  font-size: 1rem;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-top-left-radius: calc(0.3rem - 1px);
  border-top-right-radius: calc(0.3rem - 1px);
}
.popover-header:empty {
  display: none;
}

.popover-body {
  padding: 0.5rem 0.75rem;
  color: #212529;
}

.carousel {
  position: relative;
}

.carousel.pointer-event {
  touch-action: pan-y;
}

.carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.carousel-inner::after {
  display: block;
  clear: both;
  content: "";
}

.carousel-item {
  position: relative;
  display: none;
  float: left;
  width: 100%;
  margin-right: -100%;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transition: transform 0.6s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-item {
    transition: none;
  }
}

.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
  display: block;
}

.carousel-item-next:not(.carousel-item-left),
.active.carousel-item-right {
  transform: translateX(100%);
}

.carousel-item-prev:not(.carousel-item-right),
.active.carousel-item-left {
  transform: translateX(-100%);
}

.carousel-fade .carousel-item {
  opacity: 0;
  transition-property: opacity;
  transform: none;
}
.carousel-fade .carousel-item.active,
.carousel-fade .carousel-item-next.carousel-item-left,
.carousel-fade .carousel-item-prev.carousel-item-right {
  z-index: 1;
  opacity: 1;
}
.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
  z-index: 0;
  opacity: 0;
  transition: opacity 0s 0.6s;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
    transition: none;
  }
}

.carousel-control-prev,
.carousel-control-next {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15%;
  color: #fff;
  text-align: center;
  opacity: 0.5;
  transition: opacity 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-control-prev,
.carousel-control-next {
    transition: none;
  }
}
.carousel-control-prev:hover, .carousel-control-prev:focus,
.carousel-control-next:hover,
.carousel-control-next:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  opacity: 0.9;
}

.carousel-control-prev {
  left: 0;
}

.carousel-control-next {
  right: 0;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  background: 50%/100% 100% no-repeat;
}

.carousel-control-prev-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e");
}

.carousel-control-next-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e");
}

.carousel-indicators {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 15;
  display: flex;
  justify-content: center;
  padding-left: 0;
  margin-right: 15%;
  margin-left: 15%;
  list-style: none;
}
.carousel-indicators li {
  box-sizing: content-box;
  flex: 0 1 auto;
  width: 30px;
  height: 3px;
  margin-right: 3px;
  margin-left: 3px;
  text-indent: -999px;
  cursor: pointer;
  background-color: #fff;
  background-clip: padding-box;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  opacity: 0.5;
  transition: opacity 0.6s ease;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-indicators li {
    transition: none;
  }
}
.carousel-indicators .active {
  opacity: 1;
}

.carousel-caption {
  position: absolute;
  right: 15%;
  bottom: 20px;
  left: 15%;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
}

@keyframes spinner-border {
  to {
    transform: rotate(360deg);
  }
}
.spinner-border {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  vertical-align: text-bottom;
  border: 0.25em solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: 0.75s linear infinite spinner-border;
}

.spinner-border-sm {
  width: 1rem;
  height: 1rem;
  border-width: 0.2em;
}

@keyframes spinner-grow {
  0% {
    transform: scale(0);
  }
  50% {
    opacity: 1;
    transform: none;
  }
}
.spinner-grow {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  vertical-align: text-bottom;
  background-color: currentColor;
  border-radius: 50%;
  opacity: 0;
  animation: 0.75s linear infinite spinner-grow;
}

.spinner-grow-sm {
  width: 1rem;
  height: 1rem;
}

@media (prefers-reduced-motion: reduce) {
  .spinner-border,
.spinner-grow {
    animation-duration: 1.5s;
  }
}
.align-baseline {
  vertical-align: baseline !important;
}

.align-top {
  vertical-align: top !important;
}

.align-middle {
  vertical-align: middle !important;
}

.align-bottom {
  vertical-align: bottom !important;
}

.align-text-bottom {
  vertical-align: text-bottom !important;
}

.align-text-top {
  vertical-align: text-top !important;
}

.bg-primary {
  background-color: #007bff !important;
}

a.bg-primary:hover, a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
  background-color: #0062cc !important;
}

.bg-secondary {
  background-color: #6c757d !important;
}

a.bg-secondary:hover, a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
  background-color: #545b62 !important;
}

.bg-success {
  background-color: #28a745 !important;
}

a.bg-success:hover, a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus {
  background-color: #1e7e34 !important;
}

.bg-info {
  background-color: #17a2b8 !important;
}

a.bg-info:hover, a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus {
  background-color: #117a8b !important;
}

.bg-warning {
  background-color: #ffc107 !important;
}

a.bg-warning:hover, a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus {
  background-color: #d39e00 !important;
}

.bg-danger {
  background-color: #dc3545 !important;
}

a.bg-danger:hover, a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus {
  background-color: #bd2130 !important;
}

.bg-light {
  background-color: #f8f9fa !important;
}

a.bg-light:hover, a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
  background-color: #dae0e5 !important;
}

.bg-dark {
  background-color: #343a40 !important;
}

a.bg-dark:hover, a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
  background-color: #1d2124 !important;
}

.bg-white {
  background-color: #fff !important;
}

.bg-transparent {
  background-color: transparent !important;
}

.border {
  border: 1px solid #dee2e6 !important;
}

.border-top {
  border-top: 1px solid #dee2e6 !important;
}

.border-right {
  border-right: 1px solid #dee2e6 !important;
}

.border-bottom {
  border-bottom: 1px solid #dee2e6 !important;
}

.border-left {
  border-left: 1px solid #dee2e6 !important;
}

.border-0 {
  border: 0 !important;
}

.border-top-0 {
  border-top: 0 !important;
}

.border-right-0 {
  border-right: 0 !important;
}

.border-bottom-0 {
  border-bottom: 0 !important;
}

.border-left-0 {
  border-left: 0 !important;
}

.border-primary {
  border-color: #007bff !important;
}

.border-secondary {
  border-color: #6c757d !important;
}

.border-success {
  border-color: #28a745 !important;
}

.border-info {
  border-color: #17a2b8 !important;
}

.border-warning {
  border-color: #ffc107 !important;
}

.border-danger {
  border-color: #dc3545 !important;
}

.border-light {
  border-color: #f8f9fa !important;
}

.border-dark {
  border-color: #343a40 !important;
}

.border-white {
  border-color: #fff !important;
}

.rounded-sm {
  border-radius: 0.2rem !important;
}

.rounded {
  border-radius: 0.25rem !important;
}

.rounded-top {
  border-top-left-radius: 0.25rem !important;
  border-top-right-radius: 0.25rem !important;
}

.rounded-right {
  border-top-right-radius: 0.25rem !important;
  border-bottom-right-radius: 0.25rem !important;
}

.rounded-bottom {
  border-bottom-right-radius: 0.25rem !important;
  border-bottom-left-radius: 0.25rem !important;
}

.rounded-left {
  border-top-left-radius: 0.25rem !important;
  border-bottom-left-radius: 0.25rem !important;
}

.rounded-lg {
  border-radius: 0.3rem !important;
}

.rounded-circle {
  border-radius: 50% !important;
}

.rounded-pill {
  border-radius: 50rem !important;
}

.rounded-0 {
  border-radius: 0 !important;
}

.clearfix::after {
  display: block;
  clear: both;
  content: "";
}

.d-none {
  display: none !important;
}

.d-inline {
  display: inline !important;
}

.d-inline-block {
  display: inline-block !important;
}

.d-block {
  display: block !important;
}

.d-table {
  display: table !important;
}

.d-table-row {
  display: table-row !important;
}

.d-table-cell {
  display: table-cell !important;
}

.d-flex {
  display: flex !important;
}

.d-inline-flex {
  display: inline-flex !important;
}

@media (min-width: 576px) {
  .d-sm-none {
    display: none !important;
  }

  .d-sm-inline {
    display: inline !important;
  }

  .d-sm-inline-block {
    display: inline-block !important;
  }

  .d-sm-block {
    display: block !important;
  }

  .d-sm-table {
    display: table !important;
  }

  .d-sm-table-row {
    display: table-row !important;
  }

  .d-sm-table-cell {
    display: table-cell !important;
  }

  .d-sm-flex {
    display: flex !important;
  }

  .d-sm-inline-flex {
    display: inline-flex !important;
  }
}
@media (min-width: 768px) {
  .d-md-none {
    display: none !important;
  }

  .d-md-inline {
    display: inline !important;
  }

  .d-md-inline-block {
    display: inline-block !important;
  }

  .d-md-block {
    display: block !important;
  }

  .d-md-table {
    display: table !important;
  }

  .d-md-table-row {
    display: table-row !important;
  }

  .d-md-table-cell {
    display: table-cell !important;
  }

  .d-md-flex {
    display: flex !important;
  }

  .d-md-inline-flex {
    display: inline-flex !important;
  }
}
@media (min-width: 992px) {
  .d-lg-none {
    display: none !important;
  }

  .d-lg-inline {
    display: inline !important;
  }

  .d-lg-inline-block {
    display: inline-block !important;
  }

  .d-lg-block {
    display: block !important;
  }

  .d-lg-table {
    display: table !important;
  }

  .d-lg-table-row {
    display: table-row !important;
  }

  .d-lg-table-cell {
    display: table-cell !important;
  }

  .d-lg-flex {
    display: flex !important;
  }

  .d-lg-inline-flex {
    display: inline-flex !important;
  }
}
@media (min-width: 1200px) {
  .d-xl-none {
    display: none !important;
  }

  .d-xl-inline {
    display: inline !important;
  }

  .d-xl-inline-block {
    display: inline-block !important;
  }

  .d-xl-block {
    display: block !important;
  }

  .d-xl-table {
    display: table !important;
  }

  .d-xl-table-row {
    display: table-row !important;
  }

  .d-xl-table-cell {
    display: table-cell !important;
  }

  .d-xl-flex {
    display: flex !important;
  }

  .d-xl-inline-flex {
    display: inline-flex !important;
  }
}
@media print {
  .d-print-none {
    display: none !important;
  }

  .d-print-inline {
    display: inline !important;
  }

  .d-print-inline-block {
    display: inline-block !important;
  }

  .d-print-block {
    display: block !important;
  }

  .d-print-table {
    display: table !important;
  }

  .d-print-table-row {
    display: table-row !important;
  }

  .d-print-table-cell {
    display: table-cell !important;
  }

  .d-print-flex {
    display: flex !important;
  }

  .d-print-inline-flex {
    display: inline-flex !important;
  }
}
.embed-responsive {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
}
.embed-responsive::before {
  display: block;
  content: "";
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.embed-responsive-21by9::before {
  padding-top: 42.8571428571%;
}

.embed-responsive-16by9::before {
  padding-top: 56.25%;
}

.embed-responsive-4by3::before {
  padding-top: 75%;
}

.embed-responsive-1by1::before {
  padding-top: 100%;
}

.flex-row {
  flex-direction: row !important;
}

.flex-column {
  flex-direction: column !important;
}

.flex-row-reverse {
  flex-direction: row-reverse !important;
}

.flex-column-reverse {
  flex-direction: column-reverse !important;
}

.flex-wrap {
  flex-wrap: wrap !important;
}

.flex-nowrap {
  flex-wrap: nowrap !important;
}

.flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}

.flex-fill {
  flex: 1 1 auto !important;
}

.flex-grow-0 {
  flex-grow: 0 !important;
}

.flex-grow-1 {
  flex-grow: 1 !important;
}

.flex-shrink-0 {
  flex-shrink: 0 !important;
}

.flex-shrink-1 {
  flex-shrink: 1 !important;
}

.justify-content-start {
  justify-content: flex-start !important;
}

.justify-content-end {
  justify-content: flex-end !important;
}

.justify-content-center {
  justify-content: center !important;
}

.justify-content-between {
  justify-content: space-between !important;
}

.justify-content-around {
  justify-content: space-around !important;
}

.align-items-start {
  align-items: flex-start !important;
}

.align-items-end {
  align-items: flex-end !important;
}

.align-items-center {
  align-items: center !important;
}

.align-items-baseline {
  align-items: baseline !important;
}

.align-items-stretch {
  align-items: stretch !important;
}

.align-content-start {
  align-content: flex-start !important;
}

.align-content-end {
  align-content: flex-end !important;
}

.align-content-center {
  align-content: center !important;
}

.align-content-between {
  align-content: space-between !important;
}

.align-content-around {
  align-content: space-around !important;
}

.align-content-stretch {
  align-content: stretch !important;
}

.align-self-auto {
  align-self: auto !important;
}

.align-self-start {
  align-self: flex-start !important;
}

.align-self-end {
  align-self: flex-end !important;
}

.align-self-center {
  align-self: center !important;
}

.align-self-baseline {
  align-self: baseline !important;
}

.align-self-stretch {
  align-self: stretch !important;
}

@media (min-width: 576px) {
  .flex-sm-row {
    flex-direction: row !important;
  }

  .flex-sm-column {
    flex-direction: column !important;
  }

  .flex-sm-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-sm-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-sm-wrap {
    flex-wrap: wrap !important;
  }

  .flex-sm-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-sm-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-sm-fill {
    flex: 1 1 auto !important;
  }

  .flex-sm-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-sm-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-sm-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-sm-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-sm-start {
    justify-content: flex-start !important;
  }

  .justify-content-sm-end {
    justify-content: flex-end !important;
  }

  .justify-content-sm-center {
    justify-content: center !important;
  }

  .justify-content-sm-between {
    justify-content: space-between !important;
  }

  .justify-content-sm-around {
    justify-content: space-around !important;
  }

  .align-items-sm-start {
    align-items: flex-start !important;
  }

  .align-items-sm-end {
    align-items: flex-end !important;
  }

  .align-items-sm-center {
    align-items: center !important;
  }

  .align-items-sm-baseline {
    align-items: baseline !important;
  }

  .align-items-sm-stretch {
    align-items: stretch !important;
  }

  .align-content-sm-start {
    align-content: flex-start !important;
  }

  .align-content-sm-end {
    align-content: flex-end !important;
  }

  .align-content-sm-center {
    align-content: center !important;
  }

  .align-content-sm-between {
    align-content: space-between !important;
  }

  .align-content-sm-around {
    align-content: space-around !important;
  }

  .align-content-sm-stretch {
    align-content: stretch !important;
  }

  .align-self-sm-auto {
    align-self: auto !important;
  }

  .align-self-sm-start {
    align-self: flex-start !important;
  }

  .align-self-sm-end {
    align-self: flex-end !important;
  }

  .align-self-sm-center {
    align-self: center !important;
  }

  .align-self-sm-baseline {
    align-self: baseline !important;
  }

  .align-self-sm-stretch {
    align-self: stretch !important;
  }
}
@media (min-width: 768px) {
  .flex-md-row {
    flex-direction: row !important;
  }

  .flex-md-column {
    flex-direction: column !important;
  }

  .flex-md-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-md-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-md-wrap {
    flex-wrap: wrap !important;
  }

  .flex-md-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-md-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-md-fill {
    flex: 1 1 auto !important;
  }

  .flex-md-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-md-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-md-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-md-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-md-start {
    justify-content: flex-start !important;
  }

  .justify-content-md-end {
    justify-content: flex-end !important;
  }

  .justify-content-md-center {
    justify-content: center !important;
  }

  .justify-content-md-between {
    justify-content: space-between !important;
  }

  .justify-content-md-around {
    justify-content: space-around !important;
  }

  .align-items-md-start {
    align-items: flex-start !important;
  }

  .align-items-md-end {
    align-items: flex-end !important;
  }

  .align-items-md-center {
    align-items: center !important;
  }

  .align-items-md-baseline {
    align-items: baseline !important;
  }

  .align-items-md-stretch {
    align-items: stretch !important;
  }

  .align-content-md-start {
    align-content: flex-start !important;
  }

  .align-content-md-end {
    align-content: flex-end !important;
  }

  .align-content-md-center {
    align-content: center !important;
  }

  .align-content-md-between {
    align-content: space-between !important;
  }

  .align-content-md-around {
    align-content: space-around !important;
  }

  .align-content-md-stretch {
    align-content: stretch !important;
  }

  .align-self-md-auto {
    align-self: auto !important;
  }

  .align-self-md-start {
    align-self: flex-start !important;
  }

  .align-self-md-end {
    align-self: flex-end !important;
  }

  .align-self-md-center {
    align-self: center !important;
  }

  .align-self-md-baseline {
    align-self: baseline !important;
  }

  .align-self-md-stretch {
    align-self: stretch !important;
  }
}
@media (min-width: 992px) {
  .flex-lg-row {
    flex-direction: row !important;
  }

  .flex-lg-column {
    flex-direction: column !important;
  }

  .flex-lg-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-lg-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-lg-wrap {
    flex-wrap: wrap !important;
  }

  .flex-lg-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-lg-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-lg-fill {
    flex: 1 1 auto !important;
  }

  .flex-lg-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-lg-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-lg-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-lg-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-lg-start {
    justify-content: flex-start !important;
  }

  .justify-content-lg-end {
    justify-content: flex-end !important;
  }

  .justify-content-lg-center {
    justify-content: center !important;
  }

  .justify-content-lg-between {
    justify-content: space-between !important;
  }

  .justify-content-lg-around {
    justify-content: space-around !important;
  }

  .align-items-lg-start {
    align-items: flex-start !important;
  }

  .align-items-lg-end {
    align-items: flex-end !important;
  }

  .align-items-lg-center {
    align-items: center !important;
  }

  .align-items-lg-baseline {
    align-items: baseline !important;
  }

  .align-items-lg-stretch {
    align-items: stretch !important;
  }

  .align-content-lg-start {
    align-content: flex-start !important;
  }

  .align-content-lg-end {
    align-content: flex-end !important;
  }

  .align-content-lg-center {
    align-content: center !important;
  }

  .align-content-lg-between {
    align-content: space-between !important;
  }

  .align-content-lg-around {
    align-content: space-around !important;
  }

  .align-content-lg-stretch {
    align-content: stretch !important;
  }

  .align-self-lg-auto {
    align-self: auto !important;
  }

  .align-self-lg-start {
    align-self: flex-start !important;
  }

  .align-self-lg-end {
    align-self: flex-end !important;
  }

  .align-self-lg-center {
    align-self: center !important;
  }

  .align-self-lg-baseline {
    align-self: baseline !important;
  }

  .align-self-lg-stretch {
    align-self: stretch !important;
  }
}
@media (min-width: 1200px) {
  .flex-xl-row {
    flex-direction: row !important;
  }

  .flex-xl-column {
    flex-direction: column !important;
  }

  .flex-xl-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-xl-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-xl-wrap {
    flex-wrap: wrap !important;
  }

  .flex-xl-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-xl-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-xl-fill {
    flex: 1 1 auto !important;
  }

  .flex-xl-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-xl-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-xl-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-xl-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-xl-start {
    justify-content: flex-start !important;
  }

  .justify-content-xl-end {
    justify-content: flex-end !important;
  }

  .justify-content-xl-center {
    justify-content: center !important;
  }

  .justify-content-xl-between {
    justify-content: space-between !important;
  }

  .justify-content-xl-around {
    justify-content: space-around !important;
  }

  .align-items-xl-start {
    align-items: flex-start !important;
  }

  .align-items-xl-end {
    align-items: flex-end !important;
  }

  .align-items-xl-center {
    align-items: center !important;
  }

  .align-items-xl-baseline {
    align-items: baseline !important;
  }

  .align-items-xl-stretch {
    align-items: stretch !important;
  }

  .align-content-xl-start {
    align-content: flex-start !important;
  }

  .align-content-xl-end {
    align-content: flex-end !important;
  }

  .align-content-xl-center {
    align-content: center !important;
  }

  .align-content-xl-between {
    align-content: space-between !important;
  }

  .align-content-xl-around {
    align-content: space-around !important;
  }

  .align-content-xl-stretch {
    align-content: stretch !important;
  }

  .align-self-xl-auto {
    align-self: auto !important;
  }

  .align-self-xl-start {
    align-self: flex-start !important;
  }

  .align-self-xl-end {
    align-self: flex-end !important;
  }

  .align-self-xl-center {
    align-self: center !important;
  }

  .align-self-xl-baseline {
    align-self: baseline !important;
  }

  .align-self-xl-stretch {
    align-self: stretch !important;
  }
}
.float-left {
  float: left !important;
}

.float-right {
  float: right !important;
}

.float-none {
  float: none !important;
}

@media (min-width: 576px) {
  .float-sm-left {
    float: left !important;
  }

  .float-sm-right {
    float: right !important;
  }

  .float-sm-none {
    float: none !important;
  }
}
@media (min-width: 768px) {
  .float-md-left {
    float: left !important;
  }

  .float-md-right {
    float: right !important;
  }

  .float-md-none {
    float: none !important;
  }
}
@media (min-width: 992px) {
  .float-lg-left {
    float: left !important;
  }

  .float-lg-right {
    float: right !important;
  }

  .float-lg-none {
    float: none !important;
  }
}
@media (min-width: 1200px) {
  .float-xl-left {
    float: left !important;
  }

  .float-xl-right {
    float: right !important;
  }

  .float-xl-none {
    float: none !important;
  }
}
.user-select-all {
  -webkit-user-select: all !important;
     -moz-user-select: all !important;
          user-select: all !important;
}

.user-select-auto {
  -webkit-user-select: auto !important;
     -moz-user-select: auto !important;
          user-select: auto !important;
}

.user-select-none {
  -webkit-user-select: none !important;
     -moz-user-select: none !important;
          user-select: none !important;
}

.overflow-auto {
  overflow: auto !important;
}

.overflow-hidden {
  overflow: hidden !important;
}

.position-static {
  position: static !important;
}

.position-relative {
  position: relative !important;
}

.position-absolute {
  position: absolute !important;
}

.position-fixed {
  position: fixed !important;
}

.position-sticky {
  position: sticky !important;
}

.fixed-top {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}

.fixed-bottom {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
}

@supports (position: sticky) {
  .sticky-top {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sr-only-focusable:active, .sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
}

.shadow-sm {
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
}

.shadow {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

.shadow-lg {
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
}

.shadow-none {
  box-shadow: none !important;
}

.w-25 {
  width: 25% !important;
}

.w-50 {
  width: 50% !important;
}

.w-75 {
  width: 75% !important;
}

.w-100 {
  width: 100% !important;
}

.w-auto {
  width: auto !important;
}

.h-25 {
  height: 25% !important;
}

.h-50 {
  height: 50% !important;
}

.h-75 {
  height: 75% !important;
}

.h-100 {
  height: 100% !important;
}

.h-auto {
  height: auto !important;
}

.mw-100 {
  max-width: 100% !important;
}

.mh-100 {
  max-height: 100% !important;
}

.min-vw-100 {
  min-width: 100vw !important;
}

.min-vh-100 {
  min-height: 100vh !important;
}

.vw-100 {
  width: 100vw !important;
}

.vh-100 {
  height: 100vh !important;
}

.m-0 {
  margin: 0 !important;
}

.mt-0,
.my-0 {
  margin-top: 0 !important;
}

.mr-0,
.mx-0 {
  margin-right: 0 !important;
}

.mb-0,
.my-0 {
  margin-bottom: 0 !important;
}

.ml-0,
.mx-0 {
  margin-left: 0 !important;
}

.m-1 {
  margin: 0.25rem !important;
}

.mt-1,
.my-1 {
  margin-top: 0.25rem !important;
}

.mr-1,
.mx-1 {
  margin-right: 0.25rem !important;
}

.mb-1,
.my-1 {
  margin-bottom: 0.25rem !important;
}

.ml-1,
.mx-1 {
  margin-left: 0.25rem !important;
}

.m-2 {
  margin: 0.5rem !important;
}

.mt-2,
.my-2 {
  margin-top: 0.5rem !important;
}

.mr-2,
.mx-2 {
  margin-right: 0.5rem !important;
}

.mb-2,
.my-2 {
  margin-bottom: 0.5rem !important;
}

.ml-2,
.mx-2 {
  margin-left: 0.5rem !important;
}

.m-3 {
  margin: 1rem !important;
}

.mt-3,
.my-3 {
  margin-top: 1rem !important;
}

.mr-3,
.mx-3 {
  margin-right: 1rem !important;
}

.mb-3,
.my-3 {
  margin-bottom: 1rem !important;
}

.ml-3,
.mx-3 {
  margin-left: 1rem !important;
}

.m-4 {
  margin: 1.5rem !important;
}

.mt-4,
.my-4 {
  margin-top: 1.5rem !important;
}

.mr-4,
.mx-4 {
  margin-right: 1.5rem !important;
}

.mb-4,
.my-4 {
  margin-bottom: 1.5rem !important;
}

.ml-4,
.mx-4 {
  margin-left: 1.5rem !important;
}

.m-5 {
  margin: 3rem !important;
}

.mt-5,
.my-5 {
  margin-top: 3rem !important;
}

.mr-5,
.mx-5 {
  margin-right: 3rem !important;
}

.mb-5,
.my-5 {
  margin-bottom: 3rem !important;
}

.ml-5,
.mx-5 {
  margin-left: 3rem !important;
}

.p-0 {
  padding: 0 !important;
}

.pt-0,
.py-0 {
  padding-top: 0 !important;
}

.pr-0,
.px-0 {
  padding-right: 0 !important;
}

.pb-0,
.py-0 {
  padding-bottom: 0 !important;
}

.pl-0,
.px-0 {
  padding-left: 0 !important;
}

.p-1 {
  padding: 0.25rem !important;
}

.pt-1,
.py-1 {
  padding-top: 0.25rem !important;
}

.pr-1,
.px-1 {
  padding-right: 0.25rem !important;
}

.pb-1,
.py-1 {
  padding-bottom: 0.25rem !important;
}

.pl-1,
.px-1 {
  padding-left: 0.25rem !important;
}

.p-2 {
  padding: 0.5rem !important;
}

.pt-2,
.py-2 {
  padding-top: 0.5rem !important;
}

.pr-2,
.px-2 {
  padding-right: 0.5rem !important;
}

.pb-2,
.py-2 {
  padding-bottom: 0.5rem !important;
}

.pl-2,
.px-2 {
  padding-left: 0.5rem !important;
}

.p-3 {
  padding: 1rem !important;
}

.pt-3,
.py-3 {
  padding-top: 1rem !important;
}

.pr-3,
.px-3 {
  padding-right: 1rem !important;
}

.pb-3,
.py-3 {
  padding-bottom: 1rem !important;
}

.pl-3,
.px-3 {
  padding-left: 1rem !important;
}

.p-4 {
  padding: 1.5rem !important;
}

.pt-4,
.py-4 {
  padding-top: 1.5rem !important;
}

.pr-4,
.px-4 {
  padding-right: 1.5rem !important;
}

.pb-4,
.py-4 {
  padding-bottom: 1.5rem !important;
}

.pl-4,
.px-4 {
  padding-left: 1.5rem !important;
}

.p-5 {
  padding: 3rem !important;
}

.pt-5,
.py-5 {
  padding-top: 3rem !important;
}

.pr-5,
.px-5 {
  padding-right: 3rem !important;
}

.pb-5,
.py-5 {
  padding-bottom: 3rem !important;
}

.pl-5,
.px-5 {
  padding-left: 3rem !important;
}

.m-n1 {
  margin: -0.25rem !important;
}

.mt-n1,
.my-n1 {
  margin-top: -0.25rem !important;
}

.mr-n1,
.mx-n1 {
  margin-right: -0.25rem !important;
}

.mb-n1,
.my-n1 {
  margin-bottom: -0.25rem !important;
}

.ml-n1,
.mx-n1 {
  margin-left: -0.25rem !important;
}

.m-n2 {
  margin: -0.5rem !important;
}

.mt-n2,
.my-n2 {
  margin-top: -0.5rem !important;
}

.mr-n2,
.mx-n2 {
  margin-right: -0.5rem !important;
}

.mb-n2,
.my-n2 {
  margin-bottom: -0.5rem !important;
}

.ml-n2,
.mx-n2 {
  margin-left: -0.5rem !important;
}

.m-n3 {
  margin: -1rem !important;
}

.mt-n3,
.my-n3 {
  margin-top: -1rem !important;
}

.mr-n3,
.mx-n3 {
  margin-right: -1rem !important;
}

.mb-n3,
.my-n3 {
  margin-bottom: -1rem !important;
}

.ml-n3,
.mx-n3 {
  margin-left: -1rem !important;
}

.m-n4 {
  margin: -1.5rem !important;
}

.mt-n4,
.my-n4 {
  margin-top: -1.5rem !important;
}

.mr-n4,
.mx-n4 {
  margin-right: -1.5rem !important;
}

.mb-n4,
.my-n4 {
  margin-bottom: -1.5rem !important;
}

.ml-n4,
.mx-n4 {
  margin-left: -1.5rem !important;
}

.m-n5 {
  margin: -3rem !important;
}

.mt-n5,
.my-n5 {
  margin-top: -3rem !important;
}

.mr-n5,
.mx-n5 {
  margin-right: -3rem !important;
}

.mb-n5,
.my-n5 {
  margin-bottom: -3rem !important;
}

.ml-n5,
.mx-n5 {
  margin-left: -3rem !important;
}

.m-auto {
  margin: auto !important;
}

.mt-auto,
.my-auto {
  margin-top: auto !important;
}

.mr-auto,
.mx-auto {
  margin-right: auto !important;
}

.mb-auto,
.my-auto {
  margin-bottom: auto !important;
}

.ml-auto,
.mx-auto {
  margin-left: auto !important;
}

@media (min-width: 576px) {
  .m-sm-0 {
    margin: 0 !important;
  }

  .mt-sm-0,
.my-sm-0 {
    margin-top: 0 !important;
  }

  .mr-sm-0,
.mx-sm-0 {
    margin-right: 0 !important;
  }

  .mb-sm-0,
.my-sm-0 {
    margin-bottom: 0 !important;
  }

  .ml-sm-0,
.mx-sm-0 {
    margin-left: 0 !important;
  }

  .m-sm-1 {
    margin: 0.25rem !important;
  }

  .mt-sm-1,
.my-sm-1 {
    margin-top: 0.25rem !important;
  }

  .mr-sm-1,
.mx-sm-1 {
    margin-right: 0.25rem !important;
  }

  .mb-sm-1,
.my-sm-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-sm-1,
.mx-sm-1 {
    margin-left: 0.25rem !important;
  }

  .m-sm-2 {
    margin: 0.5rem !important;
  }

  .mt-sm-2,
.my-sm-2 {
    margin-top: 0.5rem !important;
  }

  .mr-sm-2,
.mx-sm-2 {
    margin-right: 0.5rem !important;
  }

  .mb-sm-2,
.my-sm-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-sm-2,
.mx-sm-2 {
    margin-left: 0.5rem !important;
  }

  .m-sm-3 {
    margin: 1rem !important;
  }

  .mt-sm-3,
.my-sm-3 {
    margin-top: 1rem !important;
  }

  .mr-sm-3,
.mx-sm-3 {
    margin-right: 1rem !important;
  }

  .mb-sm-3,
.my-sm-3 {
    margin-bottom: 1rem !important;
  }

  .ml-sm-3,
.mx-sm-3 {
    margin-left: 1rem !important;
  }

  .m-sm-4 {
    margin: 1.5rem !important;
  }

  .mt-sm-4,
.my-sm-4 {
    margin-top: 1.5rem !important;
  }

  .mr-sm-4,
.mx-sm-4 {
    margin-right: 1.5rem !important;
  }

  .mb-sm-4,
.my-sm-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-sm-4,
.mx-sm-4 {
    margin-left: 1.5rem !important;
  }

  .m-sm-5 {
    margin: 3rem !important;
  }

  .mt-sm-5,
.my-sm-5 {
    margin-top: 3rem !important;
  }

  .mr-sm-5,
.mx-sm-5 {
    margin-right: 3rem !important;
  }

  .mb-sm-5,
.my-sm-5 {
    margin-bottom: 3rem !important;
  }

  .ml-sm-5,
.mx-sm-5 {
    margin-left: 3rem !important;
  }

  .p-sm-0 {
    padding: 0 !important;
  }

  .pt-sm-0,
.py-sm-0 {
    padding-top: 0 !important;
  }

  .pr-sm-0,
.px-sm-0 {
    padding-right: 0 !important;
  }

  .pb-sm-0,
.py-sm-0 {
    padding-bottom: 0 !important;
  }

  .pl-sm-0,
.px-sm-0 {
    padding-left: 0 !important;
  }

  .p-sm-1 {
    padding: 0.25rem !important;
  }

  .pt-sm-1,
.py-sm-1 {
    padding-top: 0.25rem !important;
  }

  .pr-sm-1,
.px-sm-1 {
    padding-right: 0.25rem !important;
  }

  .pb-sm-1,
.py-sm-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-sm-1,
.px-sm-1 {
    padding-left: 0.25rem !important;
  }

  .p-sm-2 {
    padding: 0.5rem !important;
  }

  .pt-sm-2,
.py-sm-2 {
    padding-top: 0.5rem !important;
  }

  .pr-sm-2,
.px-sm-2 {
    padding-right: 0.5rem !important;
  }

  .pb-sm-2,
.py-sm-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-sm-2,
.px-sm-2 {
    padding-left: 0.5rem !important;
  }

  .p-sm-3 {
    padding: 1rem !important;
  }

  .pt-sm-3,
.py-sm-3 {
    padding-top: 1rem !important;
  }

  .pr-sm-3,
.px-sm-3 {
    padding-right: 1rem !important;
  }

  .pb-sm-3,
.py-sm-3 {
    padding-bottom: 1rem !important;
  }

  .pl-sm-3,
.px-sm-3 {
    padding-left: 1rem !important;
  }

  .p-sm-4 {
    padding: 1.5rem !important;
  }

  .pt-sm-4,
.py-sm-4 {
    padding-top: 1.5rem !important;
  }

  .pr-sm-4,
.px-sm-4 {
    padding-right: 1.5rem !important;
  }

  .pb-sm-4,
.py-sm-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-sm-4,
.px-sm-4 {
    padding-left: 1.5rem !important;
  }

  .p-sm-5 {
    padding: 3rem !important;
  }

  .pt-sm-5,
.py-sm-5 {
    padding-top: 3rem !important;
  }

  .pr-sm-5,
.px-sm-5 {
    padding-right: 3rem !important;
  }

  .pb-sm-5,
.py-sm-5 {
    padding-bottom: 3rem !important;
  }

  .pl-sm-5,
.px-sm-5 {
    padding-left: 3rem !important;
  }

  .m-sm-n1 {
    margin: -0.25rem !important;
  }

  .mt-sm-n1,
.my-sm-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-sm-n1,
.mx-sm-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-sm-n1,
.my-sm-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-sm-n1,
.mx-sm-n1 {
    margin-left: -0.25rem !important;
  }

  .m-sm-n2 {
    margin: -0.5rem !important;
  }

  .mt-sm-n2,
.my-sm-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-sm-n2,
.mx-sm-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-sm-n2,
.my-sm-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-sm-n2,
.mx-sm-n2 {
    margin-left: -0.5rem !important;
  }

  .m-sm-n3 {
    margin: -1rem !important;
  }

  .mt-sm-n3,
.my-sm-n3 {
    margin-top: -1rem !important;
  }

  .mr-sm-n3,
.mx-sm-n3 {
    margin-right: -1rem !important;
  }

  .mb-sm-n3,
.my-sm-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-sm-n3,
.mx-sm-n3 {
    margin-left: -1rem !important;
  }

  .m-sm-n4 {
    margin: -1.5rem !important;
  }

  .mt-sm-n4,
.my-sm-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-sm-n4,
.mx-sm-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-sm-n4,
.my-sm-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-sm-n4,
.mx-sm-n4 {
    margin-left: -1.5rem !important;
  }

  .m-sm-n5 {
    margin: -3rem !important;
  }

  .mt-sm-n5,
.my-sm-n5 {
    margin-top: -3rem !important;
  }

  .mr-sm-n5,
.mx-sm-n5 {
    margin-right: -3rem !important;
  }

  .mb-sm-n5,
.my-sm-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-sm-n5,
.mx-sm-n5 {
    margin-left: -3rem !important;
  }

  .m-sm-auto {
    margin: auto !important;
  }

  .mt-sm-auto,
.my-sm-auto {
    margin-top: auto !important;
  }

  .mr-sm-auto,
.mx-sm-auto {
    margin-right: auto !important;
  }

  .mb-sm-auto,
.my-sm-auto {
    margin-bottom: auto !important;
  }

  .ml-sm-auto,
.mx-sm-auto {
    margin-left: auto !important;
  }
}
@media (min-width: 768px) {
  .m-md-0 {
    margin: 0 !important;
  }

  .mt-md-0,
.my-md-0 {
    margin-top: 0 !important;
  }

  .mr-md-0,
.mx-md-0 {
    margin-right: 0 !important;
  }

  .mb-md-0,
.my-md-0 {
    margin-bottom: 0 !important;
  }

  .ml-md-0,
.mx-md-0 {
    margin-left: 0 !important;
  }

  .m-md-1 {
    margin: 0.25rem !important;
  }

  .mt-md-1,
.my-md-1 {
    margin-top: 0.25rem !important;
  }

  .mr-md-1,
.mx-md-1 {
    margin-right: 0.25rem !important;
  }

  .mb-md-1,
.my-md-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-md-1,
.mx-md-1 {
    margin-left: 0.25rem !important;
  }

  .m-md-2 {
    margin: 0.5rem !important;
  }

  .mt-md-2,
.my-md-2 {
    margin-top: 0.5rem !important;
  }

  .mr-md-2,
.mx-md-2 {
    margin-right: 0.5rem !important;
  }

  .mb-md-2,
.my-md-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-md-2,
.mx-md-2 {
    margin-left: 0.5rem !important;
  }

  .m-md-3 {
    margin: 1rem !important;
  }

  .mt-md-3,
.my-md-3 {
    margin-top: 1rem !important;
  }

  .mr-md-3,
.mx-md-3 {
    margin-right: 1rem !important;
  }

  .mb-md-3,
.my-md-3 {
    margin-bottom: 1rem !important;
  }

  .ml-md-3,
.mx-md-3 {
    margin-left: 1rem !important;
  }

  .m-md-4 {
    margin: 1.5rem !important;
  }

  .mt-md-4,
.my-md-4 {
    margin-top: 1.5rem !important;
  }

  .mr-md-4,
.mx-md-4 {
    margin-right: 1.5rem !important;
  }

  .mb-md-4,
.my-md-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-md-4,
.mx-md-4 {
    margin-left: 1.5rem !important;
  }

  .m-md-5 {
    margin: 3rem !important;
  }

  .mt-md-5,
.my-md-5 {
    margin-top: 3rem !important;
  }

  .mr-md-5,
.mx-md-5 {
    margin-right: 3rem !important;
  }

  .mb-md-5,
.my-md-5 {
    margin-bottom: 3rem !important;
  }

  .ml-md-5,
.mx-md-5 {
    margin-left: 3rem !important;
  }

  .p-md-0 {
    padding: 0 !important;
  }

  .pt-md-0,
.py-md-0 {
    padding-top: 0 !important;
  }

  .pr-md-0,
.px-md-0 {
    padding-right: 0 !important;
  }

  .pb-md-0,
.py-md-0 {
    padding-bottom: 0 !important;
  }

  .pl-md-0,
.px-md-0 {
    padding-left: 0 !important;
  }

  .p-md-1 {
    padding: 0.25rem !important;
  }

  .pt-md-1,
.py-md-1 {
    padding-top: 0.25rem !important;
  }

  .pr-md-1,
.px-md-1 {
    padding-right: 0.25rem !important;
  }

  .pb-md-1,
.py-md-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-md-1,
.px-md-1 {
    padding-left: 0.25rem !important;
  }

  .p-md-2 {
    padding: 0.5rem !important;
  }

  .pt-md-2,
.py-md-2 {
    padding-top: 0.5rem !important;
  }

  .pr-md-2,
.px-md-2 {
    padding-right: 0.5rem !important;
  }

  .pb-md-2,
.py-md-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-md-2,
.px-md-2 {
    padding-left: 0.5rem !important;
  }

  .p-md-3 {
    padding: 1rem !important;
  }

  .pt-md-3,
.py-md-3 {
    padding-top: 1rem !important;
  }

  .pr-md-3,
.px-md-3 {
    padding-right: 1rem !important;
  }

  .pb-md-3,
.py-md-3 {
    padding-bottom: 1rem !important;
  }

  .pl-md-3,
.px-md-3 {
    padding-left: 1rem !important;
  }

  .p-md-4 {
    padding: 1.5rem !important;
  }

  .pt-md-4,
.py-md-4 {
    padding-top: 1.5rem !important;
  }

  .pr-md-4,
.px-md-4 {
    padding-right: 1.5rem !important;
  }

  .pb-md-4,
.py-md-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-md-4,
.px-md-4 {
    padding-left: 1.5rem !important;
  }

  .p-md-5 {
    padding: 3rem !important;
  }

  .pt-md-5,
.py-md-5 {
    padding-top: 3rem !important;
  }

  .pr-md-5,
.px-md-5 {
    padding-right: 3rem !important;
  }

  .pb-md-5,
.py-md-5 {
    padding-bottom: 3rem !important;
  }

  .pl-md-5,
.px-md-5 {
    padding-left: 3rem !important;
  }

  .m-md-n1 {
    margin: -0.25rem !important;
  }

  .mt-md-n1,
.my-md-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-md-n1,
.mx-md-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-md-n1,
.my-md-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-md-n1,
.mx-md-n1 {
    margin-left: -0.25rem !important;
  }

  .m-md-n2 {
    margin: -0.5rem !important;
  }

  .mt-md-n2,
.my-md-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-md-n2,
.mx-md-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-md-n2,
.my-md-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-md-n2,
.mx-md-n2 {
    margin-left: -0.5rem !important;
  }

  .m-md-n3 {
    margin: -1rem !important;
  }

  .mt-md-n3,
.my-md-n3 {
    margin-top: -1rem !important;
  }

  .mr-md-n3,
.mx-md-n3 {
    margin-right: -1rem !important;
  }

  .mb-md-n3,
.my-md-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-md-n3,
.mx-md-n3 {
    margin-left: -1rem !important;
  }

  .m-md-n4 {
    margin: -1.5rem !important;
  }

  .mt-md-n4,
.my-md-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-md-n4,
.mx-md-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-md-n4,
.my-md-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-md-n4,
.mx-md-n4 {
    margin-left: -1.5rem !important;
  }

  .m-md-n5 {
    margin: -3rem !important;
  }

  .mt-md-n5,
.my-md-n5 {
    margin-top: -3rem !important;
  }

  .mr-md-n5,
.mx-md-n5 {
    margin-right: -3rem !important;
  }

  .mb-md-n5,
.my-md-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-md-n5,
.mx-md-n5 {
    margin-left: -3rem !important;
  }

  .m-md-auto {
    margin: auto !important;
  }

  .mt-md-auto,
.my-md-auto {
    margin-top: auto !important;
  }

  .mr-md-auto,
.mx-md-auto {
    margin-right: auto !important;
  }

  .mb-md-auto,
.my-md-auto {
    margin-bottom: auto !important;
  }

  .ml-md-auto,
.mx-md-auto {
    margin-left: auto !important;
  }
}
@media (min-width: 992px) {
  .m-lg-0 {
    margin: 0 !important;
  }

  .mt-lg-0,
.my-lg-0 {
    margin-top: 0 !important;
  }

  .mr-lg-0,
.mx-lg-0 {
    margin-right: 0 !important;
  }

  .mb-lg-0,
.my-lg-0 {
    margin-bottom: 0 !important;
  }

  .ml-lg-0,
.mx-lg-0 {
    margin-left: 0 !important;
  }

  .m-lg-1 {
    margin: 0.25rem !important;
  }

  .mt-lg-1,
.my-lg-1 {
    margin-top: 0.25rem !important;
  }

  .mr-lg-1,
.mx-lg-1 {
    margin-right: 0.25rem !important;
  }

  .mb-lg-1,
.my-lg-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-lg-1,
.mx-lg-1 {
    margin-left: 0.25rem !important;
  }

  .m-lg-2 {
    margin: 0.5rem !important;
  }

  .mt-lg-2,
.my-lg-2 {
    margin-top: 0.5rem !important;
  }

  .mr-lg-2,
.mx-lg-2 {
    margin-right: 0.5rem !important;
  }

  .mb-lg-2,
.my-lg-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-lg-2,
.mx-lg-2 {
    margin-left: 0.5rem !important;
  }

  .m-lg-3 {
    margin: 1rem !important;
  }

  .mt-lg-3,
.my-lg-3 {
    margin-top: 1rem !important;
  }

  .mr-lg-3,
.mx-lg-3 {
    margin-right: 1rem !important;
  }

  .mb-lg-3,
.my-lg-3 {
    margin-bottom: 1rem !important;
  }

  .ml-lg-3,
.mx-lg-3 {
    margin-left: 1rem !important;
  }

  .m-lg-4 {
    margin: 1.5rem !important;
  }

  .mt-lg-4,
.my-lg-4 {
    margin-top: 1.5rem !important;
  }

  .mr-lg-4,
.mx-lg-4 {
    margin-right: 1.5rem !important;
  }

  .mb-lg-4,
.my-lg-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-lg-4,
.mx-lg-4 {
    margin-left: 1.5rem !important;
  }

  .m-lg-5 {
    margin: 3rem !important;
  }

  .mt-lg-5,
.my-lg-5 {
    margin-top: 3rem !important;
  }

  .mr-lg-5,
.mx-lg-5 {
    margin-right: 3rem !important;
  }

  .mb-lg-5,
.my-lg-5 {
    margin-bottom: 3rem !important;
  }

  .ml-lg-5,
.mx-lg-5 {
    margin-left: 3rem !important;
  }

  .p-lg-0 {
    padding: 0 !important;
  }

  .pt-lg-0,
.py-lg-0 {
    padding-top: 0 !important;
  }

  .pr-lg-0,
.px-lg-0 {
    padding-right: 0 !important;
  }

  .pb-lg-0,
.py-lg-0 {
    padding-bottom: 0 !important;
  }

  .pl-lg-0,
.px-lg-0 {
    padding-left: 0 !important;
  }

  .p-lg-1 {
    padding: 0.25rem !important;
  }

  .pt-lg-1,
.py-lg-1 {
    padding-top: 0.25rem !important;
  }

  .pr-lg-1,
.px-lg-1 {
    padding-right: 0.25rem !important;
  }

  .pb-lg-1,
.py-lg-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-lg-1,
.px-lg-1 {
    padding-left: 0.25rem !important;
  }

  .p-lg-2 {
    padding: 0.5rem !important;
  }

  .pt-lg-2,
.py-lg-2 {
    padding-top: 0.5rem !important;
  }

  .pr-lg-2,
.px-lg-2 {
    padding-right: 0.5rem !important;
  }

  .pb-lg-2,
.py-lg-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-lg-2,
.px-lg-2 {
    padding-left: 0.5rem !important;
  }

  .p-lg-3 {
    padding: 1rem !important;
  }

  .pt-lg-3,
.py-lg-3 {
    padding-top: 1rem !important;
  }

  .pr-lg-3,
.px-lg-3 {
    padding-right: 1rem !important;
  }

  .pb-lg-3,
.py-lg-3 {
    padding-bottom: 1rem !important;
  }

  .pl-lg-3,
.px-lg-3 {
    padding-left: 1rem !important;
  }

  .p-lg-4 {
    padding: 1.5rem !important;
  }

  .pt-lg-4,
.py-lg-4 {
    padding-top: 1.5rem !important;
  }

  .pr-lg-4,
.px-lg-4 {
    padding-right: 1.5rem !important;
  }

  .pb-lg-4,
.py-lg-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-lg-4,
.px-lg-4 {
    padding-left: 1.5rem !important;
  }

  .p-lg-5 {
    padding: 3rem !important;
  }

  .pt-lg-5,
.py-lg-5 {
    padding-top: 3rem !important;
  }

  .pr-lg-5,
.px-lg-5 {
    padding-right: 3rem !important;
  }

  .pb-lg-5,
.py-lg-5 {
    padding-bottom: 3rem !important;
  }

  .pl-lg-5,
.px-lg-5 {
    padding-left: 3rem !important;
  }

  .m-lg-n1 {
    margin: -0.25rem !important;
  }

  .mt-lg-n1,
.my-lg-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-lg-n1,
.mx-lg-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-lg-n1,
.my-lg-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-lg-n1,
.mx-lg-n1 {
    margin-left: -0.25rem !important;
  }

  .m-lg-n2 {
    margin: -0.5rem !important;
  }

  .mt-lg-n2,
.my-lg-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-lg-n2,
.mx-lg-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-lg-n2,
.my-lg-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-lg-n2,
.mx-lg-n2 {
    margin-left: -0.5rem !important;
  }

  .m-lg-n3 {
    margin: -1rem !important;
  }

  .mt-lg-n3,
.my-lg-n3 {
    margin-top: -1rem !important;
  }

  .mr-lg-n3,
.mx-lg-n3 {
    margin-right: -1rem !important;
  }

  .mb-lg-n3,
.my-lg-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-lg-n3,
.mx-lg-n3 {
    margin-left: -1rem !important;
  }

  .m-lg-n4 {
    margin: -1.5rem !important;
  }

  .mt-lg-n4,
.my-lg-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-lg-n4,
.mx-lg-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-lg-n4,
.my-lg-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-lg-n4,
.mx-lg-n4 {
    margin-left: -1.5rem !important;
  }

  .m-lg-n5 {
    margin: -3rem !important;
  }

  .mt-lg-n5,
.my-lg-n5 {
    margin-top: -3rem !important;
  }

  .mr-lg-n5,
.mx-lg-n5 {
    margin-right: -3rem !important;
  }

  .mb-lg-n5,
.my-lg-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-lg-n5,
.mx-lg-n5 {
    margin-left: -3rem !important;
  }

  .m-lg-auto {
    margin: auto !important;
  }

  .mt-lg-auto,
.my-lg-auto {
    margin-top: auto !important;
  }

  .mr-lg-auto,
.mx-lg-auto {
    margin-right: auto !important;
  }

  .mb-lg-auto,
.my-lg-auto {
    margin-bottom: auto !important;
  }

  .ml-lg-auto,
.mx-lg-auto {
    margin-left: auto !important;
  }
}
@media (min-width: 1200px) {
  .m-xl-0 {
    margin: 0 !important;
  }

  .mt-xl-0,
.my-xl-0 {
    margin-top: 0 !important;
  }

  .mr-xl-0,
.mx-xl-0 {
    margin-right: 0 !important;
  }

  .mb-xl-0,
.my-xl-0 {
    margin-bottom: 0 !important;
  }

  .ml-xl-0,
.mx-xl-0 {
    margin-left: 0 !important;
  }

  .m-xl-1 {
    margin: 0.25rem !important;
  }

  .mt-xl-1,
.my-xl-1 {
    margin-top: 0.25rem !important;
  }

  .mr-xl-1,
.mx-xl-1 {
    margin-right: 0.25rem !important;
  }

  .mb-xl-1,
.my-xl-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-xl-1,
.mx-xl-1 {
    margin-left: 0.25rem !important;
  }

  .m-xl-2 {
    margin: 0.5rem !important;
  }

  .mt-xl-2,
.my-xl-2 {
    margin-top: 0.5rem !important;
  }

  .mr-xl-2,
.mx-xl-2 {
    margin-right: 0.5rem !important;
  }

  .mb-xl-2,
.my-xl-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-xl-2,
.mx-xl-2 {
    margin-left: 0.5rem !important;
  }

  .m-xl-3 {
    margin: 1rem !important;
  }

  .mt-xl-3,
.my-xl-3 {
    margin-top: 1rem !important;
  }

  .mr-xl-3,
.mx-xl-3 {
    margin-right: 1rem !important;
  }

  .mb-xl-3,
.my-xl-3 {
    margin-bottom: 1rem !important;
  }

  .ml-xl-3,
.mx-xl-3 {
    margin-left: 1rem !important;
  }

  .m-xl-4 {
    margin: 1.5rem !important;
  }

  .mt-xl-4,
.my-xl-4 {
    margin-top: 1.5rem !important;
  }

  .mr-xl-4,
.mx-xl-4 {
    margin-right: 1.5rem !important;
  }

  .mb-xl-4,
.my-xl-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-xl-4,
.mx-xl-4 {
    margin-left: 1.5rem !important;
  }

  .m-xl-5 {
    margin: 3rem !important;
  }

  .mt-xl-5,
.my-xl-5 {
    margin-top: 3rem !important;
  }

  .mr-xl-5,
.mx-xl-5 {
    margin-right: 3rem !important;
  }

  .mb-xl-5,
.my-xl-5 {
    margin-bottom: 3rem !important;
  }

  .ml-xl-5,
.mx-xl-5 {
    margin-left: 3rem !important;
  }

  .p-xl-0 {
    padding: 0 !important;
  }

  .pt-xl-0,
.py-xl-0 {
    padding-top: 0 !important;
  }

  .pr-xl-0,
.px-xl-0 {
    padding-right: 0 !important;
  }

  .pb-xl-0,
.py-xl-0 {
    padding-bottom: 0 !important;
  }

  .pl-xl-0,
.px-xl-0 {
    padding-left: 0 !important;
  }

  .p-xl-1 {
    padding: 0.25rem !important;
  }

  .pt-xl-1,
.py-xl-1 {
    padding-top: 0.25rem !important;
  }

  .pr-xl-1,
.px-xl-1 {
    padding-right: 0.25rem !important;
  }

  .pb-xl-1,
.py-xl-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-xl-1,
.px-xl-1 {
    padding-left: 0.25rem !important;
  }

  .p-xl-2 {
    padding: 0.5rem !important;
  }

  .pt-xl-2,
.py-xl-2 {
    padding-top: 0.5rem !important;
  }

  .pr-xl-2,
.px-xl-2 {
    padding-right: 0.5rem !important;
  }

  .pb-xl-2,
.py-xl-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-xl-2,
.px-xl-2 {
    padding-left: 0.5rem !important;
  }

  .p-xl-3 {
    padding: 1rem !important;
  }

  .pt-xl-3,
.py-xl-3 {
    padding-top: 1rem !important;
  }

  .pr-xl-3,
.px-xl-3 {
    padding-right: 1rem !important;
  }

  .pb-xl-3,
.py-xl-3 {
    padding-bottom: 1rem !important;
  }

  .pl-xl-3,
.px-xl-3 {
    padding-left: 1rem !important;
  }

  .p-xl-4 {
    padding: 1.5rem !important;
  }

  .pt-xl-4,
.py-xl-4 {
    padding-top: 1.5rem !important;
  }

  .pr-xl-4,
.px-xl-4 {
    padding-right: 1.5rem !important;
  }

  .pb-xl-4,
.py-xl-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-xl-4,
.px-xl-4 {
    padding-left: 1.5rem !important;
  }

  .p-xl-5 {
    padding: 3rem !important;
  }

  .pt-xl-5,
.py-xl-5 {
    padding-top: 3rem !important;
  }

  .pr-xl-5,
.px-xl-5 {
    padding-right: 3rem !important;
  }

  .pb-xl-5,
.py-xl-5 {
    padding-bottom: 3rem !important;
  }

  .pl-xl-5,
.px-xl-5 {
    padding-left: 3rem !important;
  }

  .m-xl-n1 {
    margin: -0.25rem !important;
  }

  .mt-xl-n1,
.my-xl-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-xl-n1,
.mx-xl-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-xl-n1,
.my-xl-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-xl-n1,
.mx-xl-n1 {
    margin-left: -0.25rem !important;
  }

  .m-xl-n2 {
    margin: -0.5rem !important;
  }

  .mt-xl-n2,
.my-xl-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-xl-n2,
.mx-xl-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-xl-n2,
.my-xl-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-xl-n2,
.mx-xl-n2 {
    margin-left: -0.5rem !important;
  }

  .m-xl-n3 {
    margin: -1rem !important;
  }

  .mt-xl-n3,
.my-xl-n3 {
    margin-top: -1rem !important;
  }

  .mr-xl-n3,
.mx-xl-n3 {
    margin-right: -1rem !important;
  }

  .mb-xl-n3,
.my-xl-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-xl-n3,
.mx-xl-n3 {
    margin-left: -1rem !important;
  }

  .m-xl-n4 {
    margin: -1.5rem !important;
  }

  .mt-xl-n4,
.my-xl-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-xl-n4,
.mx-xl-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-xl-n4,
.my-xl-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-xl-n4,
.mx-xl-n4 {
    margin-left: -1.5rem !important;
  }

  .m-xl-n5 {
    margin: -3rem !important;
  }

  .mt-xl-n5,
.my-xl-n5 {
    margin-top: -3rem !important;
  }

  .mr-xl-n5,
.mx-xl-n5 {
    margin-right: -3rem !important;
  }

  .mb-xl-n5,
.my-xl-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-xl-n5,
.mx-xl-n5 {
    margin-left: -3rem !important;
  }

  .m-xl-auto {
    margin: auto !important;
  }

  .mt-xl-auto,
.my-xl-auto {
    margin-top: auto !important;
  }

  .mr-xl-auto,
.mx-xl-auto {
    margin-right: auto !important;
  }

  .mb-xl-auto,
.my-xl-auto {
    margin-bottom: auto !important;
  }

  .ml-xl-auto,
.mx-xl-auto {
    margin-left: auto !important;
  }
}
.stretched-link::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  pointer-events: auto;
  content: "";
  background-color: rgba(0, 0, 0, 0);
}

.text-monospace {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
}

.text-justify {
  text-align: justify !important;
}

.text-wrap {
  white-space: normal !important;
}

.text-nowrap {
  white-space: nowrap !important;
}

.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-left {
  text-align: left !important;
}

.text-right {
  text-align: right !important;
}

.text-center {
  text-align: center !important;
}

@media (min-width: 576px) {
  .text-sm-left {
    text-align: left !important;
  }

  .text-sm-right {
    text-align: right !important;
  }

  .text-sm-center {
    text-align: center !important;
  }
}
@media (min-width: 768px) {
  .text-md-left {
    text-align: left !important;
  }

  .text-md-right {
    text-align: right !important;
  }

  .text-md-center {
    text-align: center !important;
  }
}
@media (min-width: 992px) {
  .text-lg-left {
    text-align: left !important;
  }

  .text-lg-right {
    text-align: right !important;
  }

  .text-lg-center {
    text-align: center !important;
  }
}
@media (min-width: 1200px) {
  .text-xl-left {
    text-align: left !important;
  }

  .text-xl-right {
    text-align: right !important;
  }

  .text-xl-center {
    text-align: center !important;
  }
}
.text-lowercase {
  text-transform: lowercase !important;
}

.text-uppercase {
  text-transform: uppercase !important;
}

.text-capitalize {
  text-transform: capitalize !important;
}

.font-weight-light {
  font-weight: 300 !important;
}

.font-weight-lighter {
  font-weight: lighter !important;
}

.font-weight-normal {
  font-weight: 400 !important;
}

.font-weight-bold {
  font-weight: 700 !important;
}

.font-weight-bolder {
  font-weight: bolder !important;
}

.font-italic {
  font-style: italic !important;
}

.text-white {
  color: #fff !important;
}

.text-primary {
  color: #007bff !important;
}

a.text-primary:hover, a.text-primary:focus {
  color: #0056b3 !important;
}

.text-secondary {
  color: #6c757d !important;
}

a.text-secondary:hover, a.text-secondary:focus {
  color: #494f54 !important;
}

.text-success {
  color: #28a745 !important;
}

a.text-success:hover, a.text-success:focus {
  color: #19692c !important;
}

.text-info {
  color: #17a2b8 !important;
}

a.text-info:hover, a.text-info:focus {
  color: #0f6674 !important;
}

.text-warning {
  color: #ffc107 !important;
}

a.text-warning:hover, a.text-warning:focus {
  color: #ba8b00 !important;
}

.text-danger {
  color: #dc3545 !important;
}

a.text-danger:hover, a.text-danger:focus {
  color: #a71d2a !important;
}

.text-light {
  color: #f8f9fa !important;
}

a.text-light:hover, a.text-light:focus {
  color: #cbd3da !important;
}

.text-dark {
  color: #343a40 !important;
}

a.text-dark:hover, a.text-dark:focus {
  color: #121416 !important;
}

.text-body {
  color: #212529 !important;
}

.text-muted {
  color: #6c757d !important;
}

.text-black-50 {
  color: rgba(0, 0, 0, 0.5) !important;
}

.text-white-50 {
  color: rgba(255, 255, 255, 0.5) !important;
}

.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}

.text-decoration-none {
  text-decoration: none !important;
}

.text-break {
  word-break: break-word !important;
  word-wrap: break-word !important;
}

.text-reset {
  color: inherit !important;
}

.visible {
  visibility: visible !important;
}

.invisible {
  visibility: hidden !important;
}

@media print {
  *,
*::before,
*::after {
    text-shadow: none !important;
    box-shadow: none !important;
  }

  a:not(.btn) {
    text-decoration: underline;
  }

  abbr[title]::after {
    content: " (" attr(title) ")";
  }

  pre {
    white-space: pre-wrap !important;
  }

  pre,
blockquote {
    border: 1px solid #adb5bd;
    page-break-inside: avoid;
  }

  thead {
    display: table-header-group;
  }

  tr,
img {
    page-break-inside: avoid;
  }

  p,
h2,
h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
h3 {
    page-break-after: avoid;
  }

  @page {
    size: a3;
  }
  body {
    min-width: 992px !important;
  }

  .container {
    min-width: 992px !important;
  }

  .navbar {
    display: none;
  }

  .badge {
    border: 1px solid #000;
  }

  .table {
    border-collapse: collapse !important;
  }
  .table td,
.table th {
    background-color: #fff !important;
  }

  .table-bordered th,
.table-bordered td {
    border: 1px solid #dee2e6 !important;
  }

  .table-dark {
    color: inherit;
  }
  .table-dark th,
.table-dark td,
.table-dark thead th,
.table-dark tbody + tbody {
    border-color: #dee2e6;
  }

  .table .thead-dark th {
    color: inherit;
    border-color: #dee2e6;
  }
}
html {
  height: 100%;
}

html.font-size-large {
  font-size: 112.5%;
}

:root {
  --theme-hue: 232;
  --theme-accent: hsl(232, 76%, 52%);
  --theme-accent-strong: hsl(232, 72%, 44%);
  --theme-accent-soft: hsla(232, 86%, 54%, 0.14);
  --theme-accent-surface: hsla(232, 90%, 56%, 0.1);
  --theme-nav-bg: hsl(232, 56%, 42%);
  --theme-nav-bg-secondary: hsl(244, 58%, 36%);
  --theme-avatar-shadow: 0 8px 20px rgba(56, 82, 255, 0.26);
  --theme-selector-surface: #f6f8fc;
  --theme-selector-border: rgba(145, 160, 190, 0.34);
  --theme-selector-track: rgba(114, 132, 171, 0.24);
  --theme-selector-text: #203048;
  --theme-selector-muted: #697b95;
  --theme-swatch-ring: rgba(39, 60, 95, 0.12);
  --fs-accent: var(--theme-accent);
  --fs-accent-soft: hsla(232, 86%, 64%, 0.3);
  --fs-nav: var(--theme-nav-bg);
}

body {
  /* background: #40586a !important;*/
  /* background: #4f5961 !important;  */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: rgb(196, 196, 196);
  width: 100%;
  height: 100%;
  /* filter: contrast(1.5); */
}

body::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 1;
  z-index: -12;
  top: 0;
  opacity: .05;
}

p, span, label, .app, ul, ol {
  /* color: rgb(202, 202, 202); */
}

.page {
  position: relative;
  /* background: #556571; */
  max-width: 100% !important;
  /* background: linear-gradient(90deg, hsl(210deg 51% 45% / 55%), rgb(76 90 106 / 55%)); */
  /* padding: 1rem; */
  /* border-radius: 1rem; */
  background: white;
  height: 100%;
}

.page .btn.btn-primary {
  background: var(--theme-accent);
  border-color: var(--theme-accent);
  color: #ffffff !important;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.24);
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.page .btn.btn-primary:hover,
.page .btn.btn-primary:focus,
.page .btn.btn-primary.focus,
.page .btn.btn-primary:not(:disabled):not(.disabled):active,
.page .btn.btn-primary:not(:disabled):not(.disabled).active,
.page .show > .btn.btn-primary.dropdown-toggle {
  background: var(--theme-accent-strong);
  border-color: var(--theme-accent-strong);
  color: #ffffff !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.14), 0 0 0 0.16rem var(--theme-accent-soft), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.page .btn.btn-primary:focus,
.page .btn.btn-primary.focus,
.page .btn.btn-primary:not(:disabled):not(.disabled):active,
.page .btn.btn-primary:not(:disabled):not(.disabled).active,
.page .show > .btn.btn-primary.dropdown-toggle {
  box-shadow: 0 0 0 0.16rem var(--theme-accent-soft);
}

.page .btn.btn-outline-primary {
  color: var(--theme-accent-strong);
  border-color: hsla(var(--theme-hue), 72%, 44%, 0.28);
}

.page .btn.btn-outline-primary:hover,
.page .btn.btn-outline-primary:focus,
.page .btn.btn-outline-primary:not(:disabled):not(.disabled):active,
.page .btn.btn-outline-primary:not(:disabled):not(.disabled).active,
.page .show > .btn.btn-outline-primary.dropdown-toggle {
  color: #ffffff !important;
  background: var(--theme-accent);
  border-color: var(--theme-accent);
  box-shadow: 0 0 0 0.16rem var(--theme-accent-soft);
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.24);
}

.page .btn.btn-primary,
.page .btn.btn-outline-primary:hover,
.page .btn.btn-outline-primary:focus,
.page .btn.btn-outline-primary:not(:disabled):not(.disabled):active,
.page .btn.btn-outline-primary:not(:disabled):not(.disabled).active,
.page .show > .btn.btn-outline-primary.dropdown-toggle,
.task-list-container .nav-tabs .nav-link.active,
.task-list-container .task-scope-control .btn-group .btn.btn-primary,
.theme-mode-button.is-active {
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.24);
}

.task-list-container .nav-tabs .nav-link.active,
.task-list-container .task-scope-control .btn-group .btn.btn-primary,
.theme-mode-button.is-active {
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.cust-header{
  /* background: #007bff;
  top: -1rem;
  position: relative;
  border-radius: 1px; */
}

.pro-sidebar {
  /* width: 80px !important; */
  min-width: initial !important;
  filter: drop-shadow(1px 1px 3px #555);
}
/* .pro-sidebar-header{display: none;}  */

.pro-sidebar-footer {display: none;}
.sub-apps a {
  color: rgb(187, 187, 187);
  background-color: rgb(75, 75, 75);
  padding: .5rem;
  margin-bottom: .25rem;
  display: block;
  width: fit-content;
  transition: .3s ease all;

}
.sub-apps p {
  margin-bottom: 1.5rem;
}

.sub-apps a:hover {
  color:white;
  background-color: rgb(88, 88, 88);
  text-decoration: none;
}

#root{
  width: 100%;
  background: #4f5961;
  border-radius: .5rem;
  display: flex;
  position: relative;
  height: 100%;
}

.group label {
  font-size: 1.25rem;
}

footer {
  position: relative;
  font-size: 1rem;
  padding: 1rem;
  color: #929292;
  background: #3d424842;
  text-align: center;
  background: linear-gradient(90deg, transparent, #535353, transparent);
}

.custom-header{
  display: block;
  background: #496e93;
  padding: 1.52rem;
  text-align: right;
}

h1 {
  font-size: 2.2rem;
  font-weight: 400;
  margin-bottom: .1rem;
  padding-bottom: .1rem;
}
h2 {
  font-size: 1.25rem !important;
  font-weight: 400;
}
h3 {
  font-size: 1.25rem !important;
}
h4 {
  font-size: 1.125rem;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
  color: gray;
}
.charts-container{
  display: flex;
}
.charts-container div {
  width: 50%;
  display: block;
}

/* NAV */
.header nav {
  /* background: #3f64cc!important; */
  /* background: linear-gradient(45deg, #3871ab, #4c5a6a); */
  /* background: linear-gradient(0deg, #3e72ff 50%, #5885fe 50%); */
  /* border-radius: 1rem; */
  margin: auto;
  /* background-color: #2070c5; */
  /* background-color: #3871ab; */
  /* box-shadow: 0 0 10px gray; */
  background: linear-gradient(135deg, var(--theme-nav-bg), var(--theme-nav-bg-secondary)) !important;
}

.navbar-brand {
  font-weight: bold;
}

.navbar-brand {
  padding-left: 1rem;
}

.navbar-dark .navbar-nav .nav-link {
  color: rgba(255,255,255,.8) !important;
  /* background: rgba(255, 255, 255, 0.08); */
  font-weight: 500;
  font-size: .9rem;
  transition: 1s ease-in;
  display: grid;
  justify-items: center;
  padding: initial;
  width: 7rem;
  border-left: 1px solid rgba(192,192,192,.05);
}

.nav-link svg {
  font-size: 1.5rem;
}

.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:active,.navbar-dark .navbar-nav .nav-link:focus {
  color: rgba(255,255,255,1) !important;
  /* background: rgba(255, 255, 255, 0.25); */
  transition: .1s ease all;
  text-shadow: 0 0 10px white;

}
a.nav-link > svg {
  /* filter: drop-shadow(0px 0px 7px white); */
  transition: .1s ease-in;
}

a.nav-link:hover > svg {
  transition: .1s ease-out;
  filter: drop-shadow(2px 2px 6px white);
}

.pro-sidebar-header a .p-3{
  transition: .3s ease all;
}

.pro-sidebar-header a .p-3:hover {
  background: hsl(210deg 34% 70%);
}

.logo {
  /* margin-right: .7rem; */
  width: 30px;
  transition: .3s ease all;
  border-radius: 50%;
  transition: 1s ease-out;
}

.p-3:hover .logo {
  animation: rotation .3s infinite linear;
  filter: blur(.8px);
  transition: .3s ease-in;
  box-shadow: 0 0 10px white;
}

.logo:hover {
  animation: rotation .1s infinite linear !important;
  filter: blur(2px) !important;
}

@keyframes rotation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(359deg);
  }
}

hr {
  border: 1px solid rgba(255, 255, 255, .05) !important;
}

#root .page div a, footer a {
  color: #4ca2ff;
  font-weight: 300;
  transition: .1s ease all;
}

#root .page div a:hover, footer a:hover {
  color: #e0efff;
  text-decoration: none;
  transition: .1s ease-out;
}

.typewriter p {
  color:rgb(75, 75, 75);
  font-weight: 500;
  overflow: hidden; /* Ensures the content is not revealed until the animation */
  border-right: .15em solid rgb(75, 75, 75); /* The typwriter cursor */
  /* white-space: nowrap; Keeps the content on a single line */
  margin: auto 0; /* Gives that scrolling effect as the typing happens */
  letter-spacing: .015em; /* Adjust as needed */
  animation: 
    typing 3s steps(40, end),
    blink-caret 1s step-end infinite;
}
@keyframes typing {
  from { width: 0 }
  to { width: 100% }
}
@keyframes blink-caret {
  from, to { border-color: transparent }
  50% { border-color: rgb(75, 75, 75); }
}

/* TaskList */
input[type=checkbox], input[type=radio] {
  min-width: 30px;
  min-height: 30px;
}
ul {
  list-style-type: none;
  padding: initial;
}


.rdw-editor-main {
  background: #656565;
}

.taskform input {
  width: 25rem;
  border-radius: 2px;
  padding: 3px;
  border: initial;
}

.card-component {
  display:block;  
  background: rgba(128, 128, 128, 0.274);
  color: whitesmoke;
  font-size: .7em;
  border-radius: 10px;
  padding: 1rem;
  margin: 1rem auto 1rem auto;
}

.card-component .title {
  font-size: 1.275rem;   
  margin-bottom: .5rem;
}

.card-component .message {
  font-size: 1rem;
  color: silver;
}

@media (max-width: 400px){
  .card-component {
      display:block;
      width: 95%;    
      background: rgba(128, 128, 128, 0.274);
      color: whitesmoke;
      font-size: .7em;
      border-radius: 10px;
      padding: .5rem;
      margin: .5rem auto .5rem auto;
  }
}

.progress{
  height: 2.75rem !important;
  border-radius: 2rem;
}

h2 svg {
  font-size: 18px !important;
}

@media (min-width: 1200px){
  .navbar {
    /* display: none !important; */
  }
  .page {
    width: 100%;
    display: flex;
    flex-direction: column;
    /* margin: 0 auto 0 auto; */
  }
}

@media (max-width: 1199px){
  .typewriter p {
    white-space: initial;
  }
  .taskform input {
    width: 100% !important;
  }
  .pro-sidebar {
    /* display: none; */
  }
}

.pro-sidebar > .pro-sidebar-inner {
  background: #5d6a74 !important;
  background: #496e9399 !important;
  background: #496e9300 !important;
  /* box-shadow: 0 0 5px #737373; */
}

.pro-sidebar .pro-menu .pro-menu-item {
  background: #496e93 !important;
}

.pro-sidebar .pro-menu .pro-menu-item > .pro-inner-item {
  padding: 8px 15px 8px 15px !important;
}

.pro-sidebar .pro-menu .pro-menu-item > .pro-inner-item > .pro-icon-wrapper {
  margin-right: initial !important;
}

.pro-sidebar .pro-menu {
  padding-top: initial !important;
}

.pro-sidebar nav {
  background: initial;
}

.pro-sidebar .pro-sidebar-header {
background: #007bff;
}
.pro-sidebar .pro-sidebar-header a {
color: white;
}

.page .nav a {
  transition: .03s ease-out !important;
}

.page .nav a:hover{
  color: #4ca2ff !important;
}

.container-fluid{
  padding: 1.25rem !important;
  /* margin: .25rem !important; */
  /* border-radius: .5rem; */
  /* width: calc(100% - 1rem) !important; */
  box-shadow: 0 0 5px #474c50;
  /* background: hsl(206deg 11% 41%); */
  /* background: hsl(211deg 27% 36%);
  background: hsl(210deg 34% 43%); */
  /* border: 1px solid #7b8790; */
  background: hsl(206deg 100% 95.71%);
  box-shadow: 0 2px 10px #c0c0c070;
}

.type p, .type span, .type label {
  display: inline-block;
}

.progress {
  background-color: #c7c7c7 !important
  /* border: 1px solid silver; */
}

.task-list-container a {
  color: #9aadc1 !important;
}

.pro-sidebar a:hover {
  text-decoration: none;
}
.pro-sidebar .pro-menu a {
  font-weight: 600;
  /* color: #4ca2e5 !important; */
  transition: .1s ease all;
}
.pro-sidebar .pro-menu a:hover, .pro-sidebar .pro-menu a:focus, .pro-sidebar .pro-menu a:active {
  color: #f5f9fd !important;
  transition: .1s ease-out;
  text-shadow: 0 0 6px white;
}
.pro-sidebar .pro-menu div:hover{
  background-color: #ffffff26 !important;
}
.pro-sidebar-footer a:hover {
  color: #7ea2ff;
}

/* .nav-tabs {
  border-bottom: 1px solid #dee2e642 !important;
} */

/* Change later to be more selective */
/* .container-fluid .accordion-body p {
  display: none;
} */

.container-fluid .accordion-header h2 {
  text-shadow: 0 0 10px rgb(255 255 255 / 71%);
  text-transform: uppercase;
  font-size: 0.9rem !important;
}

.container-fluid .accordion-header svg {
  font-size: 1.6rem !important;
}

.task-list-container h3 {
  opacity: .25;
  display: none;
}

.taskform input {
  opacity: .5;
}

.taskform input:hover, .taskform input:focus {
  opacity: .8;
}

.pro-sidebar .pro-menu.shaped .pro-menu-item > .pro-inner-item > .pro-icon-wrapper {
  background-color: initial !important;
}

.quote-block p {
  color: rgb(75, 75, 75) !important;
  font-weight: 500 !important;
}

@media (max-width: 720px){
  .pro-sidebar{
    display: none;
  }
}

@media (min-width: 719px){
  .menu-button {
    display: none !important;
  }
}

.show {
  display: block !important;
}

.menu-button {
  position: fixed;
  z-index: 10;
}

.pro-sidebar {
  width: 80px;
  transition: 5s ease-out;
}

/* .pro-sidebar:hover {
  width: 250px;
  transition: 1s ease-out;
} */

.pro-sidebar .pro-menu .pro-menu-item > .pro-inner-item {
  position: relative;
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: 4s ease !important;
  box-shadow: -60px 0px 10px 0px #ffffff00 !important;
  border-bottom: 1px solid #c0c0c021;
  flex-direction: column;
}

.pro-sidebar .pro-menu .pro-menu-item > .pro-inner-item:hover, .pro-sidebar .pro-menu .pro-menu-item > .pro-inner-item:active {
  color: #d8d8d8 !important;
  box-shadow: 0px 0px 10px 0px #ffffff57 !important;
  transition: .1s ease !important;
}

.nav-tabs .nav-item button{
  /* color: #adbac7 !important; */
  /* background-color: #68737c41; */
  /* border: inherit !important; */
  transition: .1s ease all;
  margin-right: 2px;
  background-color: white;
  /* border-radius: initial; */
  margin: initial;
  border: initial;
}

.nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
  /* color: black !important; */
  /* background-color: rgba(192, 192, 192, 0.15) !important; */
}

.pro-sidebar .pro-menu .pro-menu-item > .pro-inner-item:hover .pro-icon-wrapper .pro-icon {
  animation: none !important;
}

.quote-block:after {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	width: 0;
	height: 0;
	border: 10px solid transparent;
	border-right-color: #e2e3e5;
	border-left: 0;
	margin-top: -18px;
	margin-left: -10px;
}

.alert {
  margin-bottom: initial !important;
}

.quote-block {
  border: 1px solid rgba(192, 192, 192, 0.486);
}

.quote-block p {
  margin-bottom: initial !important;
  font-style: italic;
  font-size: 1.25rem;
}

.cat-container {
  display: flex;
  align-content: flex-start;
  align-items: center;
}

.quote-block {
  min-height: 3rem !important;
}

.userMenuButton {
  background: #68737c;
}


.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
  margin-bottom: .05rem !important;
}

/* Brighten */
/* html{
  filter:contrast(1.2);
}
body{
  filter:brightness(1.2);
} */

/* nav.pro-menu.shaped.square:after {
  content: '';
  display: block;
  height: 5rem;
  clip-path: polygon(100% 0, 0 0, 0 100%);
  background: #496e93;
} */

/* svg.svg-inline--fa {
  filter: drop-shadow(0px 0px 6px rgba(255, 255, 255, 0.712));
} */

.container-fluid h2 {
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.705);
}

.pro-sidebar .pro-menu .pro-menu-item > .pro-inner-item > .pro-icon-wrapper {
  font-size: 17px !important;
}

.pro-sidebar .pro-menu a {
  color: hsl(210deg 25% 82%) !important;
}

.task-edit{
  background: transparent;
  /* color: white; */
  border: initial;
  height: 2rem;
  transition: .3s ease all;
}

.task-edit:focus, .task-edit:active {
  background: rgba(192, 192, 192, 0.527);
  height: 4rem;
}

.task-rank {
  width: 2rem;
  color: transparent;
  padding: 1px 7px;
}

.taskListContainer span {
  /* background: #c0c0c01a; */
  font-size: 0.8rem;
  border-radius: 10px;
  display: flex;
  align-items: center;
  padding: 7px;
  white-space: nowrap;
  /* max-width: 2rem; */
}

.taskListContainer li {
  background: rgba(192, 192, 192, 0.1);
  transition: none;
  padding: .5rem;
  margin: .5rem;
  margin-left: initial;
  border-radius: .4rem;
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
}

.taskListContainer li .task-item-main {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
}

.taskListContainer li .task-item-mobile-toggle {
  display: none;
}

.taskListContainer li .task-item-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.taskListContainer li .task-item-main textarea.task-edit {
  width: auto !important;
  flex: 1 1 auto;
  min-width: 0;
}

.taskListContainer li:hover {
  background: rgba(192, 192, 192, 0.3);
  transition: none;
}

.taskListContainer li button{
  float: right;
  /* margin: auto; */
}

#typeinp {
  cursor: pointer;
}

.taskListContainer li input {
  margin: auto 0 auto 0;
  position: relative;
  margin-right: 0.25rem;
  background: rgb(192 192 192 / 8%);
  border: 1px solid #c0c0c029;
  border-radius: 10px;
}

#login-container, #register-container {
  display: none;
}

.inner-container {
  width: 100%;
  /*background: linear-gradient(180deg, #3e6191, transparent);*/
  height: 100%;
  background: #575757;
}

#signup-anchor, #login-anchor {
  max-width: 30rem;
}

.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link {
  /* color: #495057;
  background-color: rgba(255,255,255,.15) !important; */
  border-color: #dee2e6 #dee2e6 #fff;
}

.react-calendar {
  width: initial !important;
}

.App {
  background: #496e93 !important;
}

.react-calendar {
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 2px 10px #c0c0c070;
}

.btn {
  border-radius: 2rem;
}

a.nav-item {
  padding: .5rem !important;
}
a.nav-item:hover {
  background: rgba(192, 192, 192, 0.161);
}

.navbar {
  padding: inherit;
}

.timerButton {
  position: relative;
  top: -3.1rem;
  opacity: .8;
  filter: drop-shadow(1px 3px 6px rgba(0, 0, 0, 0.431));
  text-align: center;
}

.container-fluid small {
  font-size: .8rem;
}
.container-fluid .app > h3 {
  font-size: 2.45rem !important;
  text-align: center;
}

span.badge.rounded-pill.bg-primary {
  font-size: 1rem;
  color: white;
}

.inner-page{
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.react-calendar {
  color: gray;
  border: 1px solid #a9a9a982 !important;
  border-radius: 0.5rem;
}

/* Calendar day overview and quick composers. Keep in sync with resources/css/app.css. */
.calendar-day-actions {
  display: inline-flex;
  align-items: center;
  gap: .16rem;
}
.calendar-day-action {
  display: grid;
  place-items: center;
  width: 1.55rem;
  height: 1.55rem;
  padding: 0;
  border: 1px solid transparent;
  border-radius: .38rem;
  color: var(--calendar-muted);
  background: transparent;
  opacity: .68;
  transition: color .14s ease, border-color .14s ease, background .14s ease, opacity .14s ease;
}
.calendar-day:hover .calendar-day-action,
.calendar-day:focus-within .calendar-day-action,
.calendar-day-action:focus-visible { opacity: 1; }
.calendar-day-action:hover,
.calendar-day-action:focus-visible {
  color: var(--calendar-text);
  border-color: var(--calendar-border);
  background: var(--calendar-surface);
  outline: none;
}
.calendar-day-action:focus-visible { box-shadow: 0 0 0 3px var(--theme-accent-soft); }
.calendar-day-modal-dialog { max-width: 48rem; }
.calendar-day-modal-dialog .modal-body {
  max-height: min(76vh, 48rem);
  overflow-y: auto;
}
.calendar-day-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: .9rem;
}
.calendar-day-section {
  min-width: 0;
  padding: .75rem;
  border: 1px solid var(--calendar-border);
  border-radius: .65rem;
  background: var(--calendar-surface-subtle);
}
.calendar-day-section-heading,
.calendar-day-section-heading > div,
.calendar-journal-composer-heading,
.calendar-journal-composer-actions,
.calendar-composer-switch,
.calendar-open-journal {
  display: flex;
  align-items: center;
}
.calendar-day-section-heading {
  justify-content: space-between;
  gap: .6rem;
  margin-bottom: .62rem;
}
.calendar-day-section-heading > div { min-width: 0; gap: .42rem; }
.calendar-day-section-heading h3,
.calendar-journal-composer h3 {
  margin: 0;
  color: var(--calendar-text);
  font-size: .82rem !important;
  font-weight: 800;
}
.calendar-day-section-heading > span {
  display: grid;
  place-items: center;
  min-width: 1.42rem;
  height: 1.42rem;
  padding: 0 .32rem;
  border: 1px solid var(--calendar-border);
  border-radius: 999px;
  color: var(--calendar-muted);
  background: var(--calendar-surface);
  font-size: .66rem;
  font-weight: 800;
}
.calendar-day-section-icon {
  display: grid;
  place-items: center;
  width: 1.65rem;
  height: 1.65rem;
  border: 1px solid var(--calendar-border);
  border-radius: .42rem;
  color: var(--calendar-muted);
  background: var(--calendar-surface);
}
.calendar-day-section .calendar-modal-task-list,
.calendar-modal-journal-list {
  max-height: 13rem;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  border: 0;
}
.calendar-modal-journal-list {
  display: flex;
  flex-direction: column;
  gap: .42rem;
}
.calendar-modal-journal-entry {
  padding: .52rem .58rem;
  border: 1px solid var(--calendar-border);
  border-radius: .48rem;
  background: var(--calendar-surface);
}
.calendar-modal-journal-entry header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .5rem;
}
.calendar-modal-journal-entry strong {
  min-width: 0;
  overflow: hidden;
  color: var(--calendar-text);
  font-size: .76rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calendar-modal-journal-entry time {
  flex: 0 0 auto;
  color: var(--calendar-muted);
  font-size: .62rem;
}
.calendar-modal-journal-entry p {
  margin: .35rem 0 0;
  color: var(--calendar-muted);
  font-size: .72rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.calendar-day-empty {
  margin: 0;
  padding: .62rem;
  border: 1px dashed var(--calendar-border);
  border-radius: .48rem;
  color: var(--calendar-muted);
  background: var(--calendar-surface);
  font-size: .72rem;
  text-align: center;
}
.calendar-open-journal {
  justify-content: flex-end;
  margin-top: .55rem;
  color: var(--calendar-muted);
  font-size: .7rem;
  font-weight: 750;
}
.calendar-open-journal:hover,
.calendar-open-journal:focus-visible { color: var(--calendar-text); }
.calendar-composer-switch {
  width: fit-content;
  gap: .2rem;
  margin: 0 auto .8rem;
  padding: .2rem;
  border: 1px solid var(--calendar-border);
  border-radius: .58rem;
  background: var(--calendar-surface-subtle);
}
.calendar-composer-switch button {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  gap: .34rem;
  padding: .35rem .7rem;
  border: 0;
  border-radius: .42rem;
  color: var(--calendar-muted);
  background: transparent;
  font-size: .75rem;
  font-weight: 800;
}
.calendar-composer-switch button.is-active {
  color: var(--calendar-text);
  background: var(--calendar-surface);
  box-shadow: 0 1px 4px rgba(16,24,40,.12);
}
.calendar-composer-switch button:focus-visible {
  outline: 2px solid var(--theme-accent);
  outline-offset: 1px;
}
.calendar-composer-feedback:empty { display: none; }
.calendar-composer-feedback p {
  margin: 0 0 .7rem;
  padding: .52rem .65rem;
  border: 1px solid var(--calendar-border);
  border-radius: .48rem;
  background: var(--calendar-surface-subtle);
  font-size: .74rem;
}
.calendar-composer-feedback .is-error {
  color: #b13b3b;
  border-color: rgba(220,70,70,.28);
  background: rgba(220,70,70,.08);
}
.calendar-composer-feedback .is-success {
  color: #287253;
  border-color: rgba(40,114,83,.25);
  background: rgba(40,114,83,.08);
}
.calendar-journal-composer {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.calendar-journal-composer-heading { justify-content: space-between; gap: 1rem; }
.calendar-journal-composer-heading > div > span,
.calendar-journal-composer-heading > span,
.calendar-journal-composer label {
  color: var(--calendar-muted);
  font-size: .7rem;
}
.calendar-journal-composer label { margin: 0; font-weight: 800; }
.calendar-journal-composer textarea {
  width: 100%;
  min-height: 8.5rem;
  padding: .72rem .78rem;
  resize: vertical;
  border: 1px solid var(--calendar-border);
  border-radius: .55rem;
  color: var(--calendar-text);
  background: var(--calendar-surface);
  font-family: inherit;
  font-size: .88rem;
  line-height: 1.5;
}
.calendar-journal-composer textarea:focus {
  border-color: var(--theme-accent);
  box-shadow: 0 0 0 3px var(--theme-accent-soft);
  outline: none;
}
body.theme-dark .calendar-journal-composer textarea {
  color: var(--calendar-text) !important;
  border-color: var(--calendar-border) !important;
  background: var(--calendar-surface) !important;
}
.calendar-journal-composer-actions { justify-content: space-between; gap: .75rem; }
.calendar-journal-composer-actions > a {
  color: var(--calendar-muted);
  font-size: .72rem;
  font-weight: 750;
}
.calendar-journal-composer-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 9rem;
  min-height: 2.65rem;
  gap: .34rem;
  border-radius: .52rem;
}
@media (max-width: 760px) {
  .calendar-day-overview { grid-template-columns: 1fr; }
  .calendar-day-section .calendar-modal-task-list,
  .calendar-modal-journal-list { max-height: 10.5rem; }
}
@media (max-width: 520px) {
  .calendar-day-top { position: relative; display: block; min-height: 3.05rem; }
  .calendar-day-meta { position: static; display: block; }
  .calendar-journal-indicator { position: absolute; top: 0; right: 0; }
  .calendar-day-actions { position: absolute; right: 0; bottom: 0; left: 0; justify-content: space-between; }
  .calendar-day-action {
    width: 1.2rem;
    height: 1.2rem;
    border-color: var(--calendar-border);
    background: var(--calendar-surface-subtle);
    opacity: 1;
  }
  .calendar-day-action svg { width: .68rem; height: .68rem; }
  .calendar-composer-switch { width: 100%; }
  .calendar-composer-switch button { flex: 1 1 0; justify-content: center; padding-inline: .4rem; }
  .calendar-journal-composer-actions { align-items: stretch; flex-direction: column-reverse; }
  .calendar-journal-composer-actions .btn { width: 100%; }
}

.task-container-new {
  background: white;
  border: 1px solid #a9a9a982;
  border-radius: .5rem;
  margin-left: 1rem;
  min-width: 73%;
  box-shadow: 0 2px 10px #c0c0c070;
  height:fit-content;
}

a, select, input, div {
  color: gray !important;
}

.timerStamp {
  display: block;
  text-align: center;
}

button > svg {
  pointer-events: none;
}

input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button {  
   opacity: 1;
}

@media (max-width: 650px){
  .task-date, .task-rank {
    display: none !important;
  }
}

.tab-content .row {
  /* background: #c0c0c02e; */
  padding-bottom: 1rem;
  border-radius: .5rem;
}

a.active {
  background: transparent !important;
  border-bottom: 2px solid white;
}

.bg-primary {
  background: #929292 !important;
}

.task-progress {
  position: absolute;
  left: 1rem;
  /* background: silver !important; */
  background: #0075ff !important;
  color: transparent !important;
  mix-blend-mode: overlay;
  transition: .3s ease all;
  border-radius: initial !important;
}

.task-progress-wrap {
  position: relative;
  width: 100%;
  height: 2rem;
  border-radius: 999px;
  background: #9a9a9a;
  overflow: hidden;
  margin-bottom: 0.45rem;
}

.task-progress-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0%;
  border-radius: inherit;
  background: #006edc;
  transition: width 240ms ease;
}

.task-progress-text {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-weight: 700;
  color: #f3f6ff !important;
  letter-spacing: 0.01em;
}

/* .task-input-click{
  content: 'a';
  width: 30px;
  height: inherit;
  display: block;
  position: absolute;
  left: -4px;
  border: 15px solid white;
  border-radius: 50%;
  color: transparent;
  transform: scale(1);
  margin: auto;
  filter: drop-shadow(0px 0px 4px white);
} */


.dragIcon{
  width: 2rem;
  min-width: 2rem;
  position: relative;
  left: -0.2rem;
  top: 0;
  opacity: .2;
  height: 3.2rem;
  margin: 0;
  padding: 0.2rem 0.15rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
}

.dragIcon > div {
  width: 100%;
  height: 100%;
  border-radius: 0.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dragIcon svg {
  width: 0.62rem !important;
  height: 0.62rem !important;
  padding-right: 0 !important;
  pointer-events: none;
}

.dragIcon:active {
  cursor: grabbing;
}

.task-indent-handle {
  opacity: 0.3;
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.task-indent-handle > div {
  transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.task-indentable-row {
  position: relative;
}

.task-indentable-row::before {
  content: "";
  position: absolute;
  left: 1.95rem;
  top: 0.55rem;
  bottom: 0.55rem;
  width: 6.25rem;
  opacity: 0;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: 1px 100%, 1px 100%, 1px 100%;
  background-position: 0 0, 2rem 0, 4rem 0;
  transition: opacity 0.18s ease;
}

.taskListContainer:hover .task-indent-handle,
.taskListContainer:focus-within .task-indent-handle {
  opacity: 0.72;
}

.task-indent-handle:hover + .task-indentable-row::before,
.task-indent-handle:active + .task-indentable-row::before,
.task-indentable-row.is-dragging::before {
  opacity: 1;
}

/* Task-list count badge: borderless pill */
.task-list-container .tasklist-count-badge,
.task-list-container .nav-tabs .nav-link.active .tasklist-count-badge {
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.taskListContainer > div {
  display: flex;
  height: fit-content;
  align-items: center;
}

.taskListContainer button {
  height: 2rem;
}

.child_task {
  margin-left: 2rem;
}

.subtask-level-1 {
  margin-left: 2rem;
}

.subtask-level-2 {
  margin-left: 4rem;
}

.subtask-level-3 {
  margin-left: 6rem;
}

.subtask-level-4 {
  margin-left: 8rem;
}

#set_as_child_by_default, #set_tags {
  width: 1.5rem !important;
  margin: auto;
  top: 0.5rem;
  position: relative;
}

form.taskform{
  /* background: #b8b8b838; */
  padding: 0.2rem;
  border-radius: 0 !important;
}

input#new-todo {
  padding: 0.5rem;
  border: 1px solid silver;
}

@media (max-width: 600px){
  .page{
    padding: initial !important;
  }
  .task-edit{
    font-size: 14px;
  }
  .taskListContainer span {
    font-size: 0.7rem;
    padding: 2px;
  }
}

.taskListContainer li input:hover {
  filter: drop-shadow(2px 2px 6px white);
}

.tooltip-inner {
  color: white !important;
}

table {
  border: 2px solid #9a9a9a !important;
  background: white;
  padding: 1rem;
}

.select-item input {
  width: 2rem !important;
}

.tags-edit-container input {
  padding: 0.25rem !important;
  font-size: 1rem !important;
}

.modifytags {
  text-align: left;
  background: #f6f6f6;
  padding: 1rem;
}

.modifytags-hr{
  background: silver;
  opacity: .2;
}

.mt-dn{
  display: none;
}

.task-tags {
  height: 26px;
  background: #e7e7e7f2 !important;
  margin: auto;
  color: #444444a6;
  font-weight: 500;
}

.rmsc.multi-select {
  width: 24rem;
}

/* .dashboard_button {
  display: none;
} */

.task-list-container {
  display: flex;
}

.task-list-container .nav {
  display: block;
}

.task-list-container .nav-tabs {
  position: relative;
  background: white;
  border-radius: 0.5rem;
  margin-right: 1rem;
  min-width: 14rem;
  border: 1px solid #a9a9a982;
  height: fit-content;
  /* overflow: hidden; */
  box-shadow: 0 2px 10px #c0c0c070;
}

.task-list-container .nav-tabs::before {
  content: "";
  position: absolute;
  top: -0.85rem;
  left: 0.4rem;
  font-size: 0.78rem;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  opacity: 0.68;
  color: #6b6b6b;
  line-height: 1;
  pointer-events: none;
}

.task-list-container .nav-tabs .nav-item button {
  width: 100%;
  background: rgb(255 255 255 / 12%);
}

.task-list-container .nav-tabs .nav-item button:hover {
  background: rgb(213 213 213 / 25%)
}

.nav-tabs span .text-secondary {
  color: #d7d7d7 !important;
}

.task-list-container .nav-tabs .nav-link.active {
  background: var(--theme-accent) !important;
  color: white !important;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.24);
}

.task-list-container .nav-tabs .nav-link.active .tasklist-name,
.task-list-container .nav-tabs .nav-link.active .tasklist-count-badge {
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.24);
}

.task-list-container .nav-tabs .nav-link:hover {
  background-color: rgba(192, 192, 192, 0.15);
  color: black;
  border: initial;
}

.task-list-container .nav-tabs .nav-link > span {
  position: relative;
}

.task-list-container .nav-tabs .nav-link > span > span:last-child {
  position: absolute;
  right: 0.2rem;
  top: 50%;
  transform: translateY(-50%);
}

.task-list-container .tasklist-title-left {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  justify-content: flex-start;
  padding-right: 1.75rem;
}

.task-list-container .tasklist-count-badge {
  order: 2;
  margin-left: auto;
  margin-right: 0 !important;
  min-width: 1.9rem;
  padding: 0.12rem 0.35rem !important;
  text-align: center;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
}

.task-list-container .tasklist-name {
  display: block;
  order: 1;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: none;
}

@media (min-width: 992px) {
  .task-list-container .nav-tabs {
    width: 15.35rem;
    min-width: 15.35rem;
    margin-right: 1.08rem;
    border-radius: 0.42rem;
    overflow: visible;
  }

  .task-list-container .nav-tabs::before {
    top: -1.18rem;
    left: 0.52rem;
    font-size: 0.76rem;
    letter-spacing: 0.14em;
  }

  .task-list-container .nav-tabs .nav-item {
    margin: 0 !important;
  }

  .task-list-container .nav-tabs .dropdown-menu {
    z-index: 1200;
  }

  .task-list-container .nav-tabs .nav-link {
    display: block;
    min-height: 2.8rem;
    padding: 0.54rem 0.72rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    border-bottom: 1px solid rgba(169, 169, 169, 0.16) !important;
    background: transparent !important;
    text-align: left;
  }

  .task-list-container .nav-tabs .nav-link > span {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 0.5rem;
  }

  .task-list-container .tasklist-title-left {
    gap: 0.52rem !important;
    width: 100%;
    justify-content: flex-start !important;
    padding-right: 1.75rem;
  }

  .task-list-container .tasklist-name {
    font-size: 0.98rem;
    color: inherit;
  }

  .task-list-container .tasklist-count-badge {
    min-width: 1.86rem;
    padding: 0.1rem 0.42rem !important;
    font-size: 0.78rem;
    font-weight: 600;
  }

  .task-list-container .nav-tabs .nav-item:last-child .nav-link {
    border-top: 1px solid rgba(169, 169, 169, 0.2) !important;
    border-bottom: 0 !important;
    min-height: 3rem;
  }
}

.list-properties-body {
  display: grid;
  gap: 0.85rem;
}

.list-properties-row {
  display: grid;
  gap: 0.3rem;
}

.list-properties-label {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #8a8a8a !important;
}

.list-properties-value {
  font-size: 1rem;
  color: #5f5f5f !important;
}

.list-properties-name {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.4;
}

.task-list-container .tab-content {
  flex: 1 1 auto;
  min-width: 0;
}

.sign-out-button {
  float: right !important;
  right: 0;
  position: fixed;
  width: max-content !important;
  background: rgba(192, 192, 192, 0.161);
}

.profile-menu-trigger {
  width: 7rem !important;
  min-height: 100%;
  display: grid !important;
  justify-items: center;
  align-content: center;
  background: transparent !important;
  border-radius: 0 !important;
  padding: initial !important;
  border-left: 1px solid rgba(192,192,192,.05);
}

.profile-menu-trigger.profile-menu-trigger-auth {
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
}

.profile-menu-trigger.profile-menu-trigger-auth .profile-menu-avatar {
  width: 2.55rem;
  height: 2.55rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--theme-accent);
  color: #f4f6ff;
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.02em;
  box-shadow: var(--theme-avatar-shadow);
}

.header .navbar-dark .navbar-nav .profile-menu-trigger.profile-menu-trigger-auth:hover,
.header .navbar-dark .navbar-nav .profile-menu-trigger.profile-menu-trigger-auth:focus,
.header .navbar-dark .navbar-nav .profile-menu-trigger.profile-menu-trigger-auth:active {
  color: inherit !important;
  text-shadow: none;
}

.profile-menu-dropdown {
  left: auto !important;
  right: 0 !important;
}

.profile-menu-dropdown .profile-menu-link {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.55rem;
  width: 100%;
  padding: 0.5rem 0.45rem !important;
  text-align: left !important;
}

.profile-menu-dropdown .profile-menu-link svg {
  flex: 0 0 1rem;
  width: 1rem;
  margin-right: 0 !important;
  text-align: center;
}

.theme-selector-item.dropdown-item-text {
  padding: 0.35rem 0.45rem !important;
}

.theme-selector {
  color: var(--theme-selector-text);
}

.theme-selector-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.7rem;
}

.theme-selector-heading {
  min-width: 0;
}

.theme-selector-title {
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.1;
}

.theme-selector-subtitle {
  margin-top: 0.18rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--theme-selector-muted);
}

.theme-mode-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.18rem;
  padding: 0.18rem;
  border: 1px solid var(--theme-selector-border);
  border-radius: 999px;
  background: var(--theme-selector-surface);
}

.theme-mode-button {
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--theme-selector-muted);
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1;
  padding: 0.42rem 0.7rem;
  cursor: pointer;
}

.theme-mode-button.is-active {
  background: var(--theme-accent);
  color: #ffffff;
  box-shadow: var(--theme-avatar-shadow);
}

.theme-selector-range-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.34rem;
}

.theme-selector-range-label,
.theme-selector-range-value {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--theme-selector-muted);
}

.theme-hue-slider {
  width: 100%;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
}

.theme-hue-slider:focus {
  outline: none;
}

.theme-hue-slider::-webkit-slider-runnable-track {
  height: 0.46rem;
  border-radius: 999px;
  border: 1px solid var(--theme-selector-border);
  background: linear-gradient(90deg, #2563eb 0%, #7c3aed 20%, #ec4899 38%, #ea580c 54%, #65a30d 70%, #0891b2 86%, #2563eb 100%);
}

.theme-hue-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 1rem;
  height: 1rem;
  margin-top: -0.32rem;
  border-radius: 999px;
  border: 2px solid #ffffff;
  background: var(--theme-accent);
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.2), 0 0 0 2px rgba(15, 23, 42, 0.08), 0 0 12px var(--theme-accent-soft);
}

.theme-hue-slider::-moz-range-track {
  height: 0.46rem;
  border-radius: 999px;
  border: 1px solid var(--theme-selector-border);
  background: linear-gradient(90deg, #2563eb 0%, #7c3aed 20%, #ec4899 38%, #ea580c 54%, #65a30d 70%, #0891b2 86%, #2563eb 100%);
}

.theme-hue-slider::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  border: 2px solid #ffffff;
  border-radius: 999px;
  background: var(--theme-accent);
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.2), 0 0 0 2px rgba(15, 23, 42, 0.08), 0 0 12px var(--theme-accent-soft);
}

.theme-swatch-grid {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: 0.22rem;
  margin-top: 0.7rem;
}

.theme-swatch {
  flex: 0 0 1.1rem;
  width: 1.1rem;
  height: 1.1rem;
  padding: 0;
  border: 0;
  border-radius: 0.34rem;
  box-shadow: 0 0 0 1px var(--theme-swatch-ring) inset;
  cursor: pointer;
}

.theme-swatch.is-active {
  transform: translateY(-1px);
  box-shadow: 0 0 0 2px var(--theme-selector-surface), 0 0 0 4px var(--theme-accent);
}

.progress-bar-striped {
  filter: drop-shadow(2px 4px 6px #006edc);
}

@media (max-width: 500px) {
    ul.nav.nav-tabs {
      max-height: 9rem;
      overflow: scroll;
      width: 100%;
      margin-bottom: 1rem;
  }  
  #uncontrolled-tab-example-tabpane-calendar .row {
      width: 100%;
  }
  .task-list-container {
    display: block;
  }
}

.switch {
  position: relative;
  display: inline-block;
  width: 45px;
  height: 25px;
  background-color: rgba(0, 0, 0, 0.25);
  border-radius: 20px;
  transition: all 0.3s;
  border: 3px solid gray;
  cursor: pointer;
  margin: auto;
  top: 0.25rem;
}
.switch::after {
  content: '';
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius:50%;
  background-color: white;
  top: 1px;
  left: 1px;
  transition: all 0.3s;
}

.checkbox:checked + .switch::after {
  left : 20px;
}
.checkbox:checked + .switch {
  background-color: var(--theme-accent);
}
.checkbox {
  display : none;
}

.task-component-buttons-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.spinner-border {
  margin: 0.5rem 0;
  height: 1rem;
  width: 1rem;
  font-size: 9px
}

span .text-secondary {
  color: #d1d1d1 !important
}

.toggleContainer {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}

nav * {
  transition: none !important;
}

.btn {
  transition: none !important;
}

.dropdown-toggle::after {
  display:none;
}

span:hover .task-list-options-dropdown {
  visibility: visible;
}

.task-list-options-dropdown:not(.is-open) {
  visibility: hidden;
}

.task-list-options-dropdown {
  position: relative;
  display: inline-flex;
}

.task-list-options-dropdown.is-open {
  visibility: visible;
}

.task-list-options-menu {
  position: fixed;
  margin-top: 0 !important;
  transform: translateX(-100%);
  z-index: 1200;
  display: block;
  min-width: 9rem;
  padding: 0.4rem 0;
  background: #ffffff;
  border: 1px solid rgba(148, 163, 184, 0.34);
  border-radius: 0.3rem;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.12);
  overflow: hidden;
  pointer-events: auto;
}

.task-list-options-item {
  display: block;
  width: 100%;
  padding: 0.45rem 0.9rem;
  color: #1f2a44;
  text-align: left;
  white-space: nowrap;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.task-list-options-item:hover,
.task-list-options-item:focus {
  background: rgba(84, 115, 226, 0.1);
  color: #0f172a;
  outline: none;
}

body.theme-dark .task-list-options-menu {
  background: #1a2230;
  border: 1px solid #2f3b4d;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.35);
}

body.theme-dark .task-list-options-item {
  color: #dbe4f2;
}

body.theme-dark .task-list-options-item:hover,
body.theme-dark .task-list-options-item:focus {
  background: #273347;
  color: #f2f6ff;
}

.nav-link {
  padding: 0.25rem 1rem;
}

/* @media (min-width: 400px) {
  .navbar-expand-xl .navbar-collapse {
      display: flex !important;
      flex-basis: auto;
  }
}

@media (min-width: 400px) {
  .navbar-expand-xl {
      flex-flow: row nowrap;
      justify-content: flex-start;
  }
  .navbar-expand-xl .navbar-toggler {
    display: none;
  }
  .navbar-expand-xl .navbar-nav {
    flex-direction: row;
  }
} */

.modal-backdrop {
  background-color: initial;
}

.emotion-buttons {
  display: flex;
  flex-wrap: wrap;
  margin-top: 10px;
}

.emotion-button {
  width: 20px;
  height: 20px;
  margin-right: 5px;
  border: none;
  cursor: pointer;
}

button.btn-close {
  box-sizing: content-box;
  width: 1em;
  height: 1em;
  padding: .25em .25em;
  color: #000;
  background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
  border: 0;
  border-radius: .25rem;
  opacity: .5;
}

.btn-close:focus {
  outline: 0;
  box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);
  opacity: 1;
}

.ck.ck-reset.ck-editor.ck-rounded-corners {
  width: 100%;
}

/* .inner-page, .inner-page .container-fluid {
  height: 100%;
} */

.label-h2 {
  font-size: 1.25rem !important;
  font-weight: 400;
}

.ck.ck-content.ck-editor__editable {
  min-height: 10rem;
}

.disable-select, .navbar-brand, nav {
  user-select: none;
}

.navbar-expand-xl .navbar-collapse {
  display: flex !important;
  flex-basis: auto;
}

.navbar-expand-xl .navbar-nav {
    flex-direction: row;
}

.navbar-expand-xl .navbar-toggler {
  display: none;
}

@media (max-width: 500px) {
  .tab-content .row {
    padding: 0px !important;
    margin: 0px;
  }
.col-12.col-lg-8.pt-2.task-container-new {
    margin: 0px;
    margin-bottom: 1rem;
  }
  .col-12.col-lg-3 {
  padding: 0px;
}
.logo {
  width: 15px;
}

}

.heatmap-box {
  min-height: 265px;
  box-shadow: 0 2px 10px #c0c0c070;
  border-radius: 5px;
  margin-top: 1rem;
}

.year-review-card {
  min-height: auto;
  border-radius: 1rem !important;
  padding: 0.86rem 0.82rem 0.78rem;
  background: linear-gradient(180deg, #f8fbff 0%, #eef3ff 100%);
  box-shadow: 0 8px 18px rgba(33, 63, 122, 0.14);
}

.year-review-header-row {
  position: relative;
  min-height: 1.6rem;
  margin-bottom: 0.62rem;
}

.year-review-title {
  display: block;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #657395;
}

.year-review-year-badge {
  position: absolute;
  top: 30%;
  right: 0;
  transform: translateY(-50%);
  border-radius: 999px;
  border: 1px solid hsla(var(--theme-hue), 40%, 44%, 0.18);
  background: var(--theme-accent-surface);
  color: var(--theme-accent-strong);
  padding: 0.14rem 0.58rem;
  font-size: 0.78rem;
  line-height: 1.05;
  font-weight: 700;
}

.year-review-total-row {
  display: flex;
  align-items: flex-end;
  gap: 0.56rem;
  margin-bottom: 0.72rem;
  justify-content: center;
}

.year-review-total-number {
  font-size: 3.08rem;
  line-height: 0.9;
  font-weight: 800;
  color: var(--theme-accent);
}

.year-review-total-label {
  display: inline-block;
  font-size: 0.54rem;
  line-height: 1.18;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #6f7e9f;
  font-weight: 700;
  margin-bottom: 0.22rem;
}

.year-review-best-badge {
  width: 100%;
  margin-bottom: 0.74rem;
  border-radius: 0.62rem;
  border: 1px solid hsla(var(--theme-hue), 40%, 44%, 0.18);
  background: var(--theme-accent-surface);
  color: #6677a0;
  padding: 0.34rem 0.52rem;
  font-size: 0.68rem;
  line-height: 1.25;
  transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease, opacity 220ms ease;
}

.year-review-best-badge strong {
  color: var(--theme-accent-strong);
}

.year-review-best-badge.is-loading {
  color: #7d89a5;
}

.year-review-loading-copy {
  display: inline-block;
  opacity: 0.82;
}

.year-review-month-labels {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0.22rem;
  margin-bottom: 0.34rem;
}

.year-review-month-labels > span {
  text-align: center;
  font-size: 0.54rem;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #7c88a8;
  font-weight: 700;
}

.year-review-heatmap-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(5, minmax(0, 1fr));
  gap: 0.25rem;
}

.year-review-cell {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 0.26rem;
  border: 1px solid hsla(var(--theme-hue), 36%, 42%, 0.18);
  background: hsla(var(--theme-hue), 86%, 54%, 0.1);
  opacity: 0.72;
  transform: scale(0.98);
  transition:
    background-color 280ms ease,
    border-color 280ms ease,
    opacity 280ms ease,
    transform 280ms ease;
}

.year-review-cell.is-loading {
  background: rgba(140, 152, 176, 0.12);
  border-color: rgba(125, 139, 167, 0.16);
  animation: year-review-cell-pulse 1.35s ease-in-out infinite;
}

.year-review-card.is-ready .year-review-cell.is-loaded {
  opacity: 1;
  transform: scale(1);
}

.year-review-cell.level-0 { background: hsla(var(--theme-hue), 86%, 54%, 0.1); }
.year-review-cell.level-1 { background: hsla(var(--theme-hue), 86%, 54%, 0.16); }
.year-review-cell.level-2 { background: hsla(var(--theme-hue), 84%, 52%, 0.28); }
.year-review-cell.level-3 { background: hsla(var(--theme-hue), 82%, 50%, 0.42); }
.year-review-cell.level-4 { background: hsla(var(--theme-hue), 80%, 48%, 0.58); }
.year-review-cell.level-5 { background: var(--theme-accent); }

.year-review-scale {
  margin-top: 0.5rem;
  display: flex;
  justify-content: space-between;
  font-size: 0.66rem;
  line-height: 1.1;
  font-weight: 600;
  color: #8693b1;
}

@keyframes year-review-cell-pulse {
  0% {
    opacity: 0.48;
  }

  50% {
    opacity: 0.88;
  }

  100% {
    opacity: 0.48;
  }
}

h2.dashboard_button.accordion-header {
  /* display: none; */
}

.status-text {
  color: lightgrey;
}

.dashboard-box {
  background: white;
    border: 1px solid #a9a9a982;
    border-radius: .5rem;
    min-width: 73%;
    box-shadow: 0 2px 10px #c0c0c070;
    height: fit-content;
    padding: .5rem;
    margin-bottom: 1rem;
    margin: 1rem;
}

.dashboard-width {
  min-width: 73%;
}

.accordion-button::after {
  margin-left: auto;
  background-image: url("data:image/svg+xml,%3Csvg fill='currentColor' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
}

.accordion-header button {
  background: #007bff;
  background: #007bff38;
  background: #d5d5d538;
  /* background: none; */
  border-radius: 5px;
  padding: 5px 18px;
  width: -webkit-fill-available;
  text-align: left;
  border: initial;
  top: -1.2rem;
  position: inherit;
  /* width: 102.1%; */
  left: -1.2rem;
  color: gray;
  font-size: 1rem;
}

.accordion-header button:hover {
  background: #c0c0c038;
}

.accordion-progress-header .accordion-button {
  position: relative;
  overflow: hidden;
  padding: 0.45rem 2.6rem 0.45rem 0.9rem;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  border-radius: 0.5rem !important;
}

.accordion-progress-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: #006edc;
  opacity: 0.45;
  transition: width 240ms ease;
  pointer-events: none;
}

.accordion-progress-content {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  padding-right: 0.85rem;
}

.accordion-progress-title {
  font-weight: 600;
}

.section-title-icon {
  display: inline-block;
  vertical-align: -2px;
  margin-right: 0.38rem;
  opacity: 0.92;
}

.accordion-progress-meta {
  font-size: 0.88rem;
  font-weight: 600;
  opacity: 0.9;
}

.accordion-journal-header .accordion-button {
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  border-radius: 0.5rem !important;
  padding: 0.45rem 0.9rem !important;
}

/* Task + Journal cards: flush header and separate body padding (desktop + mobile) */
.task-list-container .task-main-column > .dashboard-box,
.task-list-container .task-main-column > .top-journal-mini {
  padding: 0 !important;
  overflow: visible;
}

.task-list-container .task-main-column > .dashboard-box .accordion-body,
.task-list-container .task-main-column > .top-journal-mini .accordion-body {
  padding: 0.64rem 0.68rem 0.52rem !important;
}

.task-list-container .accordion-progress-header .accordion-button,
.task-list-container .accordion-journal-header .accordion-button {
  border-radius: 0.5rem 0.5rem 0 0 !important;
  border-bottom-color: rgba(112, 132, 164, 0.24) !important;
  margin: 0 !important;
  padding: 0.62rem 0.88rem !important;
}

.task-list-container .task-main-column > .dashboard-box .accordion-item,
.task-list-container .task-main-column > .top-journal-mini .accordion-item {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.task-list-container .task-item-actions .dropdown-menu {
  z-index: 1085;
}

.page:not(.theme-dark) .task-list-container .task-item-actions .dropdown-menu {
  background: #ffffff !important;
  border: 1px solid rgba(148, 163, 184, 0.34) !important;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.12) !important;
}

.page:not(.theme-dark) .task-list-container .task-item-actions .dropdown-menu .dropdown-item {
  color: #1f2a44 !important;
}

.page:not(.theme-dark) .task-list-container .task-item-actions .dropdown-menu .dropdown-item:hover,
.page:not(.theme-dark) .task-list-container .task-item-actions .dropdown-menu .dropdown-item:focus {
  color: #0f172a !important;
  background: rgba(84, 115, 226, 0.1) !important;
}

.top-accordion {
  display: none;
}

.journal-mini .dragIcon {
  display: none;
}

.ck.ck-editor__top.ck-reset_all {
  display: none;
}

.limit-field .ck-blurred.ck.ck-content {
  min-height: 3rem;
}

.top-journal-mini .nav-tabs {
  display: none;
}

/* Keep Journal tab rows from bleeding outside accordion/card bounds */
.top-journal-mini .tab-content .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.tasklist-switch {
  float: right;
  padding: .25rem 1rem;
}

.gsi-material-button {
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  -webkit-appearance: none;
  background-color: WHITE;
  background-image: none;
  border: 1px solid #747775;
  -webkit-border-radius: 20px;
  border-radius: 20px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  color: #1f1f1f;
  cursor: pointer;
  font-family: 'Roboto', arial, sans-serif;
  font-size: 14px;
  height: 40px;
  letter-spacing: 0.25px;
  outline: none;
  overflow: hidden;
  padding: 0 12px;
  position: relative;
  text-align: center;
  -webkit-transition: background-color .218s, border-color .218s, box-shadow .218s;
  transition: background-color .218s, border-color .218s, box-shadow .218s;
  vertical-align: middle;
  white-space: nowrap;
  width: auto;
  max-width: 400px;
  min-width: min-content;
}

.gsi-material-button .gsi-material-button-icon {
  height: 20px;
  margin-right: 12px;
  min-width: 20px;
  width: 20px;
}

.gsi-material-button .gsi-material-button-content-wrapper {
  -webkit-align-items: center;
  align-items: center;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  height: 100%;
  justify-content: space-between;
  position: relative;
  width: 100%;
}

.gsi-material-button .gsi-material-button-contents {
  -webkit-flex-grow: 1;
  flex-grow: 1;
  font-family: 'Roboto', arial, sans-serif;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: top;
}

.gsi-material-button .gsi-material-button-state {
  -webkit-transition: opacity .218s;
  transition: opacity .218s;
  bottom: 0;
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.gsi-material-button:disabled {
  cursor: default;
  background-color: #ffffff61;
  border-color: #1f1f1f1f;
}

.gsi-material-button:disabled .gsi-material-button-contents {
  opacity: 38%;
}

.gsi-material-button:disabled .gsi-material-button-icon {
  opacity: 38%;
}

.gsi-material-button:not(:disabled):active .gsi-material-button-state, 
.gsi-material-button:not(:disabled):focus .gsi-material-button-state {
  background-color: #303030;
  opacity: 12%;
}

.gsi-material-button:not(:disabled):hover {
  -webkit-box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .30), 0 1px 3px 1px rgba(60, 64, 67, .15);
  box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .30), 0 1px 3px 1px rgba(60, 64, 67, .15);
}

.gsi-material-button:not(:disabled):hover .gsi-material-button-state {
  background-color: #303030;
  opacity: 8%;
}

/* Base: don't fight React-Calendar layout */
.react-calendar__tile.calendar-heatmap-1 {
  background-color: hsla(var(--theme-hue), 86%, 54%, 0.12);
}

.react-calendar__tile.calendar-heatmap-2 {
  background-color: hsla(var(--theme-hue), 86%, 54%, 0.24);
}

.react-calendar__tile.calendar-heatmap-3 {
  background-color: hsla(var(--theme-hue), 84%, 52%, 0.4);
  color: #fff;
}

.react-calendar__tile.calendar-heatmap-4 {
  background-color: hsla(var(--theme-hue), 82%, 50%, 0.58);
  color: #fff;
}

.react-calendar__tile.calendar-heatmap-5 {
  background-color: var(--theme-accent);
  color: hwb(0 100% 0%);
}

/* Optional: make hover still visible but not ugly */
.react-calendar__tile.calendar-heatmap-1:hover,
.react-calendar__tile.calendar-heatmap-2:hover,
.react-calendar__tile.calendar-heatmap-3:hover,
.react-calendar__tile.calendar-heatmap-4:hover,
.react-calendar__tile.calendar-heatmap-5:hover {
  filter: brightness(1.05);
}

/* Optional: round the corners a bit */
.react-calendar__tile.calendar-heatmap-1,
.react-calendar__tile.calendar-heatmap-2,
.react-calendar__tile.calendar-heatmap-3,
.react-calendar__tile.calendar-heatmap-4,
.react-calendar__tile.calendar-heatmap-5 {
  border-radius: 6px;
}

/* Ensure tiles can host an absolutely positioned overlay */
.react-calendar__tile {
  position: relative;
}

/* Make calendar tiles look like a heatmap grid */
.react-calendar__month-view__weekdays,
.react-calendar__month-view__days {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  gap: 4px;
}

/* React-Calendar defaults use flex + max-width:14.2857% on day tiles.
   Reset those so our 7-col grid cannot wrap at 6 days per row. */
.react-calendar__month-view__days__day {
  max-width: none !important;
  flex-basis: auto !important;
}

.react-calendar__tile {
  margin: 0;
  padding: 0;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
}

.react-calendar__tile abbr {
  display: block;
}

.page .react-calendar__tile--active {
  background: var(--theme-accent) !important;
  color: #ffffff !important;
}

/* Invisible overlay just to carry the `title` tooltip */
.calendar-tile-tooltip-overlay {
  position: absolute;
  inset: 0;              /* top:0; right:0; bottom:0; left:0 */
  background: transparent;
  pointer-events: auto;  /* ensure hover works */
}

/* Let tiles contain an absolutely positioned overlay */
.react-calendar__tile {
  position: relative;
}

/* The tooltip target overlay */
.calendar-tile-tooltip-area {
  position: absolute;
  inset: 0;          /* top:0; right:0; bottom:0; left:0 */
  background: transparent;
  cursor: pointer;   /* optional, feels more interactive */
}

/* Light/Dark mode --------------------------------------------------------- */
.page.theme-dark {
  background: #1a222d !important;
}

body.flowstate-home-active .page,
body.flowstate-home-active .page * {
  transition-property: background-color, color, border-color, box-shadow, fill, stroke, opacity, text-decoration-color, outline-color, filter;
  transition-duration: 420ms;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

.page.theme-dark p,
.page.theme-dark span,
.page.theme-dark label,
.page.theme-dark li,
.page.theme-dark h1,
.page.theme-dark h2,
.page.theme-dark h3,
.page.theme-dark h4,
.page.theme-dark h5,
.page.theme-dark h6,
.page.theme-dark div,
.page.theme-dark input,
.page.theme-dark textarea,
.page.theme-dark select {
  color: #d1d7df !important;
}

.page.theme-dark .bg-white,
.page.theme-dark .task-list-container,
.page.theme-dark .task-list-container .nav-tabs,
.page.theme-dark .task-container-new,
.page.theme-dark .dashboard-box,
.page.theme-dark .heatmap-box,
.page.theme-dark .tab-content .row {
  background: #1a222d !important;
  border-color: #2a3646 !important;
  /* box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35); */
}

.page.theme-dark .form-control,
.page.theme-dark input,
.page.theme-dark textarea,
.page.theme-dark select {
  background: #111923 !important;
  border-color: #2a3646 !important;
  color: #e4ebf3 !important;
}

.page.theme-dark input::placeholder,
.page.theme-dark textarea::placeholder {
  color: #9ba8b7 !important;
}

.page.theme-dark .btn-light {
  background: #202b38 !important;
  border-color: #2a3646 !important;
  color: #dbe3ec !important;
}

.page.theme-dark .react-calendar {
  background: #18202a !important;
  border-color: #2a3646 !important;
  color: #dbe3ec !important;
}

.page.theme-dark .react-calendar__month-view__weekdays abbr {
  color: #98a7ba !important;
}

.page.theme-dark .react-calendar__tile {
  color: #dbe3ec !important;
}

.page.theme-dark .react-calendar__tile:enabled:hover,
.page.theme-dark .react-calendar__tile:enabled:focus {
  background: #2a3646 !important;
}

.page.theme-dark .modal-content,
.page.theme-dark .profile-menu-dropdown {
  background: #1a222d !important;
  border: 1px solid #2a3646 !important;
}

.page.theme-dark .modal-header,
.page.theme-dark .modal-footer,
.page.theme-dark .dropdown-divider {
  border-color: #2a3646 !important;
}

.page.theme-dark .dropdown-item:hover,
.page.theme-dark .dropdown-item:focus {
  background: #253243 !important;
}

/* Dark mode polish: hierarchy, contrast, and control consistency */
.page.theme-dark .inner-container {
  background: #0b1118;
}

.page.theme-dark .task-list-container .nav-tabs {
  background: #1b2330 !important;
  border-color: #2f3b4d !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28) !important;
}

.page.theme-dark .task-list-container .nav-tabs .nav-link {
  color: #cdd7e5 !important;
}

.page.theme-dark .task-list-container .nav-tabs .nav-link:hover {
  background: #253244 !important;
  color: #eef3ff !important;
}

.page.theme-dark .task-list-container .nav-tabs .nav-link.active {
  background: var(--theme-accent) !important;
  color: #f1f5ff !important;
}

.page.theme-dark .habit-tracker-panel,
body.theme-dark .habit-tracker-panel {
  background: #1a222d !important;
  border-color: #2a3646 !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35) !important;
}

.page.theme-dark .reports-page,
body.theme-dark .reports-page {
  background: #0f141b !important;
}

.page.theme-dark .loading-surface,
body.theme-dark .loading-surface {
  background: #0f141b !important;
  box-shadow: none !important;
}

.page.theme-dark .reports-panel,
body.theme-dark .reports-panel {
  background: #1a222d !important;
  border-color: #2a3646 !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35) !important;
}

.page.theme-dark .reports-panel .form-control,
.page.theme-dark .reports-panel select,
.page.theme-dark .reports-panel input,
body.theme-dark .reports-panel .form-control,
body.theme-dark .reports-panel select,
body.theme-dark .reports-panel input {
  background: #111923 !important;
  border-color: #2a3646 !important;
  color: #e2eaf4 !important;
}

.page.theme-dark .reports-panel table,
.page.theme-dark .reports-panel .table,
.page.theme-dark .reports-panel .table-bordered,
body.theme-dark .reports-panel table,
body.theme-dark .reports-panel .table,
body.theme-dark .reports-panel .table-bordered {
  background: #1f2338 !important;
  border-color: #323a5a !important;
  color: #dbe4f4 !important;
}

.page.theme-dark .reports-panel .table td,
.page.theme-dark .reports-panel .table th,
body.theme-dark .reports-panel .table td,
body.theme-dark .reports-panel .table th {
  border-color: #323a5a !important;
  color: #dbe4f4 !important;
}

.page.theme-dark .reports-panel .apexcharts-canvas,
.page.theme-dark .reports-panel .apexcharts-svg,
body.theme-dark .reports-panel .apexcharts-canvas,
body.theme-dark .reports-panel .apexcharts-svg {
  background: #1a222d !important;
}

.page.theme-dark .reports-panel .apexcharts-title-text,
.page.theme-dark .reports-panel .apexcharts-xaxis text,
.page.theme-dark .reports-panel .apexcharts-yaxis text,
body.theme-dark .reports-panel .apexcharts-title-text,
body.theme-dark .reports-panel .apexcharts-xaxis text,
body.theme-dark .reports-panel .apexcharts-yaxis text {
  fill: #dbe4f4 !important;
}

.page.theme-dark .reports-panel .apexcharts-theme-light .apexcharts-plot-area,
body.theme-dark .reports-panel .apexcharts-theme-light .apexcharts-plot-area {
  fill: #2a3040 !important;
}

/* Reports heatmap zero-value cells default to near-white; force dark in dark mode */
.page.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="#f3f3f3"],
.page.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="#f5f5f5"],
.page.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="#efefef"],
.page.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="rgb(242, 242, 242)"],
.page.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="rgb(245, 245, 245)"],
body.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="#f3f3f3"],
body.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="#f5f5f5"],
body.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="#efefef"],
body.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="rgb(242, 242, 242)"],
body.theme-dark .reports-panel .apexcharts-heatmap-rect[fill="rgb(245, 245, 245)"] {
  fill: #2a3040 !important;
}

.page.theme-dark .admin-page,
body.theme-dark .admin-page {
  background: #0f141b !important;
}

.page.theme-dark .admin-panel,
body.theme-dark .admin-panel {
  background: #1a222d !important;
  border-color: #2a3646 !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35) !important;
}

.page.theme-dark .admin-table,
.page.theme-dark .admin-table.table,
.page.theme-dark .admin-table.table-bordered,
body.theme-dark .admin-table,
body.theme-dark .admin-table.table,
body.theme-dark .admin-table.table-bordered {
  background: #1f2338 !important;
  border-color: #323a5a !important;
  color: #dbe4f4 !important;
}

.page.theme-dark .admin-table td,
.page.theme-dark .admin-table th,
body.theme-dark .admin-table td,
body.theme-dark .admin-table th {
  border-color: #323a5a !important;
  color: #dbe4f4 !important;
}

.page.theme-dark .habit-tracker-panel table,
.page.theme-dark .habit-tracker-panel .table,
.page.theme-dark .habit-tracker-panel .table-bordered,
.page.theme-dark .habit-tracker-panel .bg-light,
body.theme-dark .habit-tracker-panel table,
body.theme-dark .habit-tracker-panel .table,
body.theme-dark .habit-tracker-panel .table-bordered,
body.theme-dark .habit-tracker-panel .bg-light {
  background: #2a2a36 !important;
  border-color: #50556b !important;
  color: #e1e6f0 !important;
}

.page.theme-dark .habit-tracker-panel .table td,
.page.theme-dark .habit-tracker-panel .table th,
body.theme-dark .habit-tracker-panel .table td,
body.theme-dark .habit-tracker-panel .table th {
  border-color: #50556b !important;
  color: #e1e6f0 !important;
}

.page.theme-dark .habit-tracker-panel .table th,
.page.theme-dark .habit-tracker-panel .table thead th,
.page.theme-dark .habit-tracker-panel .table th[style*="background-color"],
body.theme-dark .habit-tracker-panel .table th,
body.theme-dark .habit-tracker-panel .table thead th,
body.theme-dark .habit-tracker-panel .table th[style*="background-color"] {
  background: #343a4d !important;
}

/* Habit tracker refresh */
.habit-tracker-panel {
  border: 1px solid rgba(129, 145, 176, 0.24) !important;
  border-radius: 1.15rem !important;
  background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%) !important;
  box-shadow: 0 16px 34px rgba(31, 60, 120, 0.12) !important;
  padding: 1.1rem !important;
}

.habit-tracker-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.2rem;
  margin-bottom: 1rem;
}

.habit-tracker-copy {
  flex: 1 1 24rem;
  min-width: 0;
}

.habit-tracker-kicker,
.habit-tracker-composer-kicker {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #667792;
}

.habit-tracker-title {
  margin: 0.28rem 0 0;
  font-size: 1.4rem;
  line-height: 1.1;
  font-weight: 800;
  color: #1f2f48;
}

.habit-tracker-description,
.habit-tracker-composer-text {
  margin: 0.45rem 0 0;
  max-width: 38rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #70819d;
}

.habit-tracker-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.62rem;
  margin-top: 0.85rem;
}

.habit-tracker-stat {
  min-width: 5.5rem;
  padding: 0.58rem 0.78rem;
  border: 1px solid rgba(120, 137, 170, 0.18);
  border-radius: 0.95rem;
  background: rgba(255, 255, 255, 0.68);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.habit-tracker-stat-value {
  display: block;
  font-size: 1.28rem;
  line-height: 1;
  font-weight: 800;
  color: var(--theme-accent-strong);
}

.habit-tracker-stat-label {
  display: block;
  margin-top: 0.22rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #7687a1;
}

.habit-tracker-toolbar-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.9rem;
  flex: 0 0 auto;
}

.habit-tracker-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.72rem;
}

.habit-tracker-control {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #697b96;
}

.habit-tracker-control > span {
  padding-left: 0.12rem;
}

.habit-tracker-select,
.habit-tracker-year-input,
.habit-tracker-edit-input,
.habit-tracker-input {
  border: 1px solid rgba(128, 144, 173, 0.26) !important;
  border-radius: 0.88rem !important;
  background: rgba(255, 255, 255, 0.88) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84);
  color: #203048 !important;
}

.habit-tracker-select,
.habit-tracker-year-input,
.habit-tracker-input {
  min-height: 2.75rem;
}

.habit-tracker-select {
  min-width: 10rem;
  padding: 0.58rem 0.9rem !important;
}

.habit-tracker-year-input {
  width: 6.5rem;
  padding: 0.58rem 0.75rem !important;
}

.habit-tracker-table-shell {
  overflow-x: auto;
  border: 1px solid rgba(128, 144, 174, 0.18);
  border-radius: 1rem;
  background: rgba(252, 253, 255, 0.94);
}

.habit-tracker-table {
  width: max-content;
  min-width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  background: transparent !important;
}

.habit-tracker-table th,
.habit-tracker-table td {
  padding: 0.52rem 0.42rem;
  border: 0 !important;
  vertical-align: middle;
}

.habit-tracker-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 800;
  color: #40516b;
  background: #f4f7fe;
  box-shadow: inset 0 -1px 0 rgba(129, 145, 176, 0.2);
}

.habit-tracker-name-header {
  left: 0;
  z-index: 4 !important;
  min-width: 16.8rem;
  padding-left: 0.95rem !important;
  text-align: left !important;
  background: linear-gradient(180deg, #f9fbff 0%, #eef4ff 100%) !important;
  color: #223249 !important;
  box-shadow: inset -1px 0 0 rgba(129, 145, 176, 0.18), inset 0 -1px 0 rgba(129, 145, 176, 0.2);
}

.habit-tracker-day-heading {
  min-width: 2.45rem;
}

.habit-tracker-day-heading--band-0 {
  background: hsla(var(--theme-hue), 88%, 58%, 0.08) !important;
}

.habit-tracker-day-heading--band-1 {
  background: hsla(var(--theme-hue), 82%, 54%, 0.13) !important;
}

.habit-tracker-day-heading--band-2 {
  background: hsla(var(--theme-hue), 78%, 50%, 0.18) !important;
}

.habit-tracker-day-heading--band-3 {
  background: hsla(var(--theme-hue), 72%, 46%, 0.14) !important;
}

.habit-tracker-row td {
  box-shadow: inset 0 -1px 0 rgba(129, 145, 176, 0.14);
}

.habit-tracker-name-cell {
  position: sticky;
  left: 0;
  z-index: 3;
  min-width: 16.8rem;
  padding: 0.7rem 0.85rem 0.7rem 0.95rem !important;
  background: rgba(249, 251, 255, 0.98);
  box-shadow: inset -1px 0 0 rgba(129, 145, 176, 0.16), inset 0 -1px 0 rgba(129, 145, 176, 0.14);
}

.habit-tracker-row:hover .habit-tracker-name-cell {
  background: #f4f8ff;
}

.habit-tracker-habit-main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.7rem;
}

.habit-tracker-habit-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  flex: 1 1 auto;
}

.habit-tracker-name-button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: #223249;
  font-size: 0.96rem;
  line-height: 1.3;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.habit-tracker-name-button:hover,
.habit-tracker-name-button:focus {
  color: var(--theme-accent-strong);
}

.habit-tracker-progress {
  display: block;
  margin-top: 0.26rem;
  font-size: 0.74rem;
  line-height: 1.2;
  color: #7b8ca7;
}

.habit-tracker-delete-btn {
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(191, 96, 96, 0.18);
  border-radius: 0.72rem;
  background: rgba(255, 255, 255, 0.84);
  color: #c05656;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 120ms ease;
}

.habit-tracker-delete-btn:hover,
.habit-tracker-delete-btn:focus {
  background: #fff2f2;
  border-color: rgba(191, 96, 96, 0.28);
  color: #a13a3a;
  transform: translateY(-1px);
}

.habit-tracker-day-cell {
  min-width: 2.45rem;
  text-align: center;
  background: rgba(250, 251, 255, 0.84);
}

.habit-tracker-row:hover .habit-tracker-day-cell {
  background: rgba(244, 247, 255, 0.96);
}

.habit-tracker-check {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.6rem;
  height: 1.6rem;
  cursor: pointer;
}

.habit-tracker-checkbox {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.habit-tracker-check-ui {
  position: relative;
  width: 1.35rem;
  height: 1.35rem;
  border: 1px solid rgba(124, 140, 171, 0.36);
  border-radius: 0.4rem;
  background: #ffffff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88), 0 1px 2px rgba(34, 47, 72, 0.08);
  transition: transform 120ms ease, background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.habit-tracker-check:hover .habit-tracker-check-ui,
.habit-tracker-checkbox:focus + .habit-tracker-check-ui {
  border-color: var(--theme-accent);
  box-shadow: 0 0 0 0.18rem var(--theme-accent-soft);
  transform: translateY(-1px);
}

.habit-tracker-check.is-checked .habit-tracker-check-ui {
  border-color: var(--theme-accent);
  background: var(--theme-accent);
  box-shadow: 0 10px 18px hsla(var(--theme-hue), 84%, 52%, 0.22);
}

.habit-tracker-check.is-checked .habit-tracker-check-ui::after {
  content: "";
  position: absolute;
  left: 0.43rem;
  top: 0.2rem;
  width: 0.3rem;
  height: 0.62rem;
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(45deg);
}

.habit-tracker-empty {
  padding: 1.4rem 1rem !important;
  text-align: center;
  font-size: 0.95rem;
  color: #7a8ba6;
  background: rgba(249, 251, 255, 0.98);
}

.habit-tracker-composer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.2rem;
  margin-top: 1rem;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(128, 144, 173, 0.18);
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.7) 0%, rgba(242, 246, 255, 0.88) 100%);
}

.habit-tracker-composer-copy {
  flex: 1 1 15rem;
  min-width: 0;
}

.habit-tracker-composer-form {
  flex: 1 1 24rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.7rem;
}

.habit-tracker-input {
  flex: 1 1 14rem;
  min-width: 13rem;
  padding: 0.66rem 0.9rem !important;
}

.habit-tracker-add-btn {
  flex: 0 0 auto;
  min-height: 2.75rem;
  padding: 0.62rem 1.2rem !important;
  border-radius: 999px !important;
  font-weight: 700;
}

.page.theme-dark .habit-tracker-panel,
body.theme-dark .habit-tracker-panel {
  background: linear-gradient(180deg, #191f28 0%, #141921 100%) !important;
  border-color: rgba(132, 143, 158, 0.22) !important;
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.22) !important;
}

.page.theme-dark .habit-tracker-kicker,
.page.theme-dark .habit-tracker-composer-kicker,
body.theme-dark .habit-tracker-kicker,
body.theme-dark .habit-tracker-composer-kicker {
  color: #8f9db3;
}

.page.theme-dark .habit-tracker-title,
body.theme-dark .habit-tracker-title {
  color: #f0f4fb;
}

.page.theme-dark .habit-tracker-description,
.page.theme-dark .habit-tracker-progress,
.page.theme-dark .habit-tracker-composer-text,
body.theme-dark .habit-tracker-description,
body.theme-dark .habit-tracker-progress,
body.theme-dark .habit-tracker-composer-text {
  color: #9aa8bb;
}

.page.theme-dark .habit-tracker-stat,
body.theme-dark .habit-tracker-stat {
  border-color: rgba(133, 143, 156, 0.2);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.page.theme-dark .habit-tracker-stat-value,
body.theme-dark .habit-tracker-stat-value {
  color: #f5f8fd;
}

.page.theme-dark .habit-tracker-stat-label,
.page.theme-dark .habit-tracker-control,
body.theme-dark .habit-tracker-stat-label,
body.theme-dark .habit-tracker-control {
  color: #8d9bb0;
}

.page.theme-dark .habit-tracker-select,
.page.theme-dark .habit-tracker-year-input,
.page.theme-dark .habit-tracker-edit-input,
.page.theme-dark .habit-tracker-input,
body.theme-dark .habit-tracker-select,
body.theme-dark .habit-tracker-year-input,
body.theme-dark .habit-tracker-edit-input,
body.theme-dark .habit-tracker-input {
  background: #111923 !important;
  border-color: #2a3646 !important;
  box-shadow: none;
  color: #e3ebf5 !important;
}

.page.theme-dark .habit-tracker-table-shell,
body.theme-dark .habit-tracker-table-shell {
  border-color: rgba(132, 143, 158, 0.18);
  background: #171d25;
}

.page.theme-dark .habit-tracker-table,
body.theme-dark .habit-tracker-table {
  background: transparent !important;
}

.page.theme-dark .habit-tracker-table thead th,
body.theme-dark .habit-tracker-table thead th {
  color: #dfe6f1;
  background: #242c36;
  box-shadow: inset 0 -1px 0 rgba(132, 143, 158, 0.22);
}

.page.theme-dark .habit-tracker-name-header,
body.theme-dark .habit-tracker-name-header {
  background: linear-gradient(180deg, #262d36 0%, #1d242d 100%) !important;
  color: #f2f6fc !important;
  box-shadow: inset -1px 0 0 rgba(132, 143, 158, 0.18), inset 0 -1px 0 rgba(132, 143, 158, 0.22);
}

.page.theme-dark .habit-tracker-day-heading--band-0,
body.theme-dark .habit-tracker-day-heading--band-0 {
  background: hsla(var(--theme-hue), 88%, 62%, 0.12) !important;
}

.page.theme-dark .habit-tracker-day-heading--band-1,
body.theme-dark .habit-tracker-day-heading--band-1 {
  background: hsla(var(--theme-hue), 84%, 58%, 0.16) !important;
}

.page.theme-dark .habit-tracker-day-heading--band-2,
body.theme-dark .habit-tracker-day-heading--band-2 {
  background: hsla(var(--theme-hue), 78%, 52%, 0.2) !important;
}

.page.theme-dark .habit-tracker-day-heading--band-3,
body.theme-dark .habit-tracker-day-heading--band-3 {
  background: hsla(var(--theme-hue), 70%, 48%, 0.18) !important;
}

.page.theme-dark .habit-tracker-row td,
body.theme-dark .habit-tracker-row td {
  box-shadow: inset 0 -1px 0 rgba(132, 143, 158, 0.12);
}

.page.theme-dark .habit-tracker-name-cell,
body.theme-dark .habit-tracker-name-cell {
  background: rgba(25, 31, 40, 0.98);
  box-shadow: inset -1px 0 0 rgba(132, 143, 158, 0.16), inset 0 -1px 0 rgba(132, 143, 158, 0.12);
}

.page.theme-dark .habit-tracker-row:hover .habit-tracker-name-cell,
body.theme-dark .habit-tracker-row:hover .habit-tracker-name-cell {
  background: #202833;
}

.page.theme-dark .habit-tracker-name-button,
body.theme-dark .habit-tracker-name-button {
  color: #edf2f8;
}

.page.theme-dark .habit-tracker-day-cell,
body.theme-dark .habit-tracker-day-cell {
  background: rgba(28, 33, 41, 0.9);
}

.page.theme-dark .habit-tracker-row:hover .habit-tracker-day-cell,
body.theme-dark .habit-tracker-row:hover .habit-tracker-day-cell {
  background: #242b34;
}

.page.theme-dark .habit-tracker-check-ui,
body.theme-dark .habit-tracker-check-ui {
  background: #111923;
  border-color: rgba(132, 143, 158, 0.34);
  box-shadow: none;
}

.page.theme-dark .habit-tracker-delete-btn,
body.theme-dark .habit-tracker-delete-btn {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(203, 118, 118, 0.18);
  color: #ef8f8f;
}

.page.theme-dark .habit-tracker-delete-btn:hover,
.page.theme-dark .habit-tracker-delete-btn:focus,
body.theme-dark .habit-tracker-delete-btn:hover,
body.theme-dark .habit-tracker-delete-btn:focus {
  background: rgba(194, 79, 79, 0.12);
  border-color: rgba(203, 118, 118, 0.28);
  color: #ffb0b0;
}

.page.theme-dark .habit-tracker-empty,
body.theme-dark .habit-tracker-empty {
  background: rgba(25, 31, 40, 0.98);
  color: #99a8bc;
}

.page.theme-dark .habit-tracker-composer,
body.theme-dark .habit-tracker-composer {
  border-color: rgba(132, 143, 158, 0.18);
  background: linear-gradient(180deg, rgba(33, 40, 50, 0.92) 0%, rgba(24, 30, 39, 0.98) 100%);
}

@media (max-width: 991px) {
  .habit-tracker-toolbar,
  .habit-tracker-composer {
    flex-direction: column;
    align-items: stretch;
  }

  /* The desktop flex bases become vertical space once the composer stacks. */
  .habit-tracker-composer-copy,
  .habit-tracker-composer-form {
    flex-basis: auto;
  }

  .habit-tracker-toolbar-side,
  .habit-tracker-controls,
  .habit-tracker-composer-form {
    width: 100%;
    align-items: stretch;
    justify-content: flex-start;
  }

  .habit-tracker-select,
  .habit-tracker-year-input {
    width: 100%;
  }

  .habit-tracker-composer-form {
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
  }

  .habit-tracker-input,
  .habit-tracker-add-btn {
    width: 100%;
  }

  .habit-tracker-add-btn {
    min-height: 3rem;
    padding: 0.72rem 1rem !important;
    border-radius: 0.92rem !important;
  }
}

@media (max-width: 640px) {
  .habit-tracker-panel {
    padding: 0.85rem !important;
  }

  .habit-tracker-name-header,
  .habit-tracker-name-cell {
    min-width: 13rem;
  }

  .habit-tracker-title {
    font-size: 1.18rem;
  }

  .habit-tracker-input {
    min-width: 0;
    width: 100%;
  }
}

.page.theme-dark .task-list-container .tasklist-count-badge {
  background: #2c3748 !important;
  color: #f0f5ff !important;
}

.page.theme-dark .taskListContainer li {
  background: #202838 !important;
  border: 1px solid #2f3b4d;
}

.page.theme-dark .taskListContainer li:hover {
  background: #283349 !important;
}

.page.theme-dark .taskListContainer li input {
  background: #151e2b !important;
  border-color: #2f3b4d !important;
}

.page.theme-dark .taskListContainer li input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 2.1rem;
  height: 2.1rem;
  min-width: 2.1rem;
  border-radius: 0.35rem;
  border: 1px solid #5a647d !important;
  background: #1a2233 !important;
  display: inline-grid;
  place-content: center;
  cursor: pointer;
  transition: background-color 140ms ease, border-color 140ms ease;
}

.page.theme-dark .taskListContainer li input[type="checkbox"]:hover {
  border-color: #7a86a6 !important;
}

.page.theme-dark .taskListContainer li input[type="checkbox"]:checked {
  background: #5866ff !important;
  border-color: #7b88ff !important;
}

.page.theme-dark .taskListContainer li input[type="checkbox"]:checked::after {
  content: "";
  width: 0.42rem;
  height: 0.86rem;
  border: solid #eef2ff;
  border-width: 0 0.17rem 0.17rem 0;
  transform: rotate(45deg);
  margin-top: -0.06rem;
}

.page.theme-dark .taskListContainer li button.btn-secondary,
.page.theme-dark .taskListContainer li .btn-light {
  background: #2a3447 !important;
  border-color: #3a4960 !important;
  color: #d9e3f2 !important;
}

.page.theme-dark .taskListContainer li .btn-secondary:hover,
.page.theme-dark .taskListContainer li .btn-light:hover {
  background: #34435b !important;
}

.page.theme-dark .task-progress {
  mix-blend-mode: normal;
  opacity: 0.85;
  color: transparent !important;
}

.page.theme-dark .task-progress-wrap {
  background: #8f9094;
}

.page.theme-dark .task-progress-fill {
  background: #006edc;
}

.page.theme-dark .task-progress-text {
  color: #f5f7ff !important;
}

.page.theme-dark input::placeholder,
.page.theme-dark textarea::placeholder {
  color: #8f9eb2 !important;
}

.page.theme-dark .switch {
  border-color: #464646;
  background-color: #202b3b;
}

.page.theme-dark .react-calendar__navigation button {
  color: #e5ecf7 !important;
}

.page.theme-dark .react-calendar__navigation button:enabled:hover,
.page.theme-dark .react-calendar__navigation button:enabled:focus,
.page.theme-dark .react-calendar__navigation__label:enabled:hover,
.page.theme-dark .react-calendar__navigation__label:enabled:focus {
  background: #2a3646 !important;
  color: #eef4ff !important;
}

.page.theme-dark .react-calendar__month-view__weekdays abbr {
  color: #9fb0c6 !important;
  text-decoration: none;
}

.page.theme-dark .react-calendar__month-view__days__day--neighboringMonth {
  color: #66768d !important;
}

.page.theme-dark .react-calendar__tile--active {
  background: #4e63ff !important;
  color: #ffffff !important;
}

.page.theme-dark .react-calendar {
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.32) !important;
}

.page.theme-dark .heatmap-box,
.page.theme-dark .dashboard-box,
.page.theme-dark .task-container-new {
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.3) !important;
}

/* Bootstrap modals are rendered outside .page (portal), so theme via body class too */
body.theme-dark .modal-content {
  background: #1a222d !important;
  border: 1px solid #2a3646 !important;
}

body.theme-dark .modal-header,
body.theme-dark .modal-footer {
  border-color: #2a3646 !important;
}

body.theme-dark .modal-header .close,
body.theme-dark .modal .btn-close {
  color: #dbe4f4 !important;
  opacity: 0.9 !important;
  text-shadow: none !important;
  filter: invert(1) grayscale(100%);
}

body.theme-dark .modal-header .close:hover,
body.theme-dark .modal-header .close:focus,
body.theme-dark .modal .btn-close:hover,
body.theme-dark .modal .btn-close:focus {
  color: #ffffff !important;
  opacity: 1 !important;
}

body.theme-dark .modal-title,
body.theme-dark .modal-body,
body.theme-dark .modal-body p,
body.theme-dark .modal-body div,
body.theme-dark .modal-body label {
  color: #d7e0ea !important;
}

/* Dropdown menus (task list options) in dark mode */
body.theme-dark .dropdown-menu {
  background: #1a2230 !important;
  border: 1px solid #2f3b4d !important;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.35);
}

body.theme-dark .dropdown-item {
  color: #dbe4f2 !important;
}

body.theme-dark .dropdown-item:hover,
body.theme-dark .dropdown-item:focus {
  background: #273347 !important;
  color: #f2f6ff !important;
}

/* Year in Review heatmap: reduce bright/light-theme look in dark mode */
.page.theme-dark .heatmap-box .apexcharts-canvas {
  filter: brightness(0.78) saturate(0.88) contrast(1.05);
}

.page.theme-dark .heatmap-box text {
  fill: #d8e1ed !important;
}

.page.theme-dark .year-review-card {
  border-color: #353c60 !important;
  box-shadow: 0 12px 26px rgba(8, 10, 28, 0.45);
}

.page.theme-dark .year-review-title {
  color: #98a5cd;
}

.page.theme-dark .year-review-year-badge {
  border-color: #444d78;
  background: #272d4a;
  color: #8f9bc8;
}

.page.theme-dark .year-review-total-number {
  color: #8794ff;
}

.page.theme-dark .year-review-total-label {
  color: #8e9ac3;
}

.page.theme-dark .year-review-best-badge {
  border-color: #3c4268;
  background: #262b49;
  color: #aab4da;
}

.page.theme-dark .year-review-best-badge strong {
  color: #cfd6ff;
}

.page.theme-dark .year-review-month-labels > span {
  color: #7f8ab4;
}

.page.theme-dark .year-review-cell {
  border-color: rgba(149, 167, 236, 0.16);
}

.page.theme-dark .year-review-cell.level-0 { background: #2d3559; }
.page.theme-dark .year-review-cell.level-1 { background: #35406a; }
.page.theme-dark .year-review-cell.level-2 { background: #445185; }
.page.theme-dark .year-review-cell.level-3 { background: #53639f; }
.page.theme-dark .year-review-cell.level-4 { background: #6478c5; }
.page.theme-dark .year-review-cell.level-5 { background: #7f95ff; }

.page.theme-dark .year-review-scale {
  color: #7d89b3;
}

/* Journal editor/textarea should also be dark in dark mode */
.page.theme-dark .journal-mini textarea,
.page.theme-dark .journal-entry textarea,
.page.theme-dark .ck.ck-content.ck-editor__editable,
.page.theme-dark .ck.ck-content.ck-editor__editable.ck-focused,
.page.theme-dark .ck.ck-content.ck-editor__editable.ck-blurred {
  background: #111923 !important;
  border-color: #2a3646 !important;
  color: #e2eaf4 !important;
}

.page.theme-dark textarea.task-edit {
  background: transparent !important;
  border: initial !important;
}

.page.theme-dark .journal-mini textarea::placeholder,
.page.theme-dark .journal-entry textarea::placeholder,
.page.theme-dark .ck.ck-content.ck-editor__editable::placeholder {
  color: #95a5b8 !important;
}

.page.theme-dark .accordion-progress-header .accordion-button {
  background: #8c93aa33;
}

.page.theme-dark .accordion-journal-header .accordion-button {
  background: #8c93aa33;
}

.page.theme-dark .accordion-progress-fill {
  opacity: 0.55;
}

.page.theme-dark .accordion-progress-title,
.page.theme-dark .accordion-progress-meta {
  color: #e7edf8 !important;
}

.dragIcon:hover {
  opacity: .7;
}

/* Top nav hierarchy refinement: reduce visual competition for inactive tabs */
.header .navbar-dark .navbar-nav > .nav-link {
  color: rgba(255,255,255,0.72) !important;
  opacity: 0.82;
  filter: saturate(0.78);
  text-shadow: none;
  font-weight: 400;
}

.header .navbar-dark .navbar-nav > .nav-link > svg {
  opacity: 0.88;
}

.header .navbar-dark .navbar-nav > .nav-link:hover,
.header .navbar-dark .navbar-nav > .nav-link:focus {
  color: rgba(255,255,255,0.95) !important;
  opacity: 0.95;
  filter: saturate(0.95);
  text-shadow: none;
}

.header .navbar-dark .navbar-nav > .nav-link.active {
  color: #ffffff !important;
  opacity: 1;
  filter: none;
  background: transparent;
  box-shadow: none;
}

.header .navbar-dark .navbar-nav > .nav-link.active > svg {
  opacity: 1;
  filter: none;
}

.header .navbar-dark .navbar-nav > .nav-link:hover > svg,
.header .navbar-dark .navbar-nav > .nav-link:focus > svg {
  filter: none;
}

.task-scope-control {
  justify-content: space-between !important;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0.46rem;
  margin-bottom: 0.72rem !important;
}

.task-scope-selected-day {
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin-right: 0.5rem;
}

.task-scope-selected-day-label {
  order: 2;
  font-size: 0.78rem !important;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  opacity: 0.68;
  margin-bottom: 0;
  margin-top: 0.12rem;
  color: #6b6b6b;
}

.task-scope-selected-day-date {
  order: 1;
  font-size: 22px;
  font-weight: 600;
  color: #4b4b4b;
  line-height: 1.15;
}

.task-scope-actions {
  margin-left: auto;
}

.task-scope-today-shortcut {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  margin-right: 0.45rem;
  padding: 0.3rem 0.68rem;
  border: 1px solid hsla(var(--theme-hue), 70%, 54%, 0.3);
  border-radius: 0.65rem;
  background: var(--theme-accent-surface);
  color: var(--theme-accent-strong);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
  animation: task-today-shortcut-appear 220ms ease-out both;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.task-scope-today-shortcut:hover,
.task-scope-today-shortcut:focus-visible {
  border-color: hsla(var(--theme-hue), 76%, 58%, 0.52);
  background: var(--theme-accent-soft);
  color: var(--theme-accent-strong);
  outline: none;
  transform: translateY(-1px);
}

.page.theme-dark .task-scope-today-shortcut,
.page.theme-dark .task-scope-today-shortcut span {
  color: var(--theme-accent) !important;
}

@keyframes task-today-shortcut-appear {
  from { opacity: 0; transform: translateX(4px); }
  to { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .task-scope-today-shortcut {
    animation: none;
  }
}

/* Keep the Light Mode navbar neutral instead of tying its surface to the accent hue. */
.page:not(.theme-dark) .header nav.navbar {
  background: linear-gradient(180deg, #515761 0%, #414750 100%) !important;
  border-bottom-color: rgba(31, 41, 55, 0.34) !important;
  box-shadow: 0 5px 18px rgba(31, 41, 55, 0.14);
}

/* Center the primary desktop nav independently of the logo and profile menu. */
@media (min-width: 1200px) {
  .header .navbar {
    position: relative;
  }

  .header .navbar-collapse {
    position: absolute;
    top: 0;
    right: 1.25rem;
    bottom: 0;
    left: 1.25rem;
    width: auto;
    max-width: none;
    flex-basis: auto !important;
    flex-grow: 0;
    pointer-events: none;
  }

  .header .navbar-collapse > .navbar-nav {
    width: 100%;
    margin: 0 !important;
    justify-content: center;
    pointer-events: none;
  }

  .header .navbar-collapse > .navbar-nav > .nav-link:not(.profile-menu-trigger) {
    pointer-events: auto;
  }

  .header .navbar-collapse > .navbar-nav > .nav-item.ml-auto,
  .header .navbar-collapse > .navbar-nav > .profile-menu-trigger.ml-auto {
    position: absolute;
    top: 50%;
    right: 0;
    margin-left: 0 !important;
    transform: translateY(-50%);
    pointer-events: auto;
  }
}

.task-scope-control .btn-group {
  width: auto;
  max-width: none;
  border: 1px solid rgba(148, 164, 196, 0.45);
  border-radius: 0.72rem;
  overflow: hidden;
  background: #edf1f7;
  box-shadow: none;
  padding: 0;
}

.task-scope-control .btn-group .btn {
  flex: 0 1 auto;
  min-width: 0;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0.3rem 0.9rem !important;
  font-size: 0.88rem !important;
  font-weight: 600;
  line-height: 1.2;
  color: #53627a;
  background: transparent;
  box-shadow: none;
}

.task-scope-control .btn-group .btn + .btn {
  border-left: 1px solid rgba(148, 164, 196, 0.28) !important;
}

.task-scope-control .btn-group .btn.btn-outline-primary {
  color: #53627a;
  background: transparent;
  border-color: transparent !important;
}

.task-scope-control .btn-group .btn.btn-outline-primary:hover,
.task-scope-control .btn-group .btn.btn-outline-primary:focus {
  color: #1f2a44 !important;
  background: var(--theme-accent-surface);
  box-shadow: none;
}

.task-scope-control .btn-group .btn.btn-primary {
  color: #ffffff !important;
  background: var(--theme-accent) !important;
  box-shadow: none;
}

.page.theme-dark .task-scope-control .btn-group {
  border: 1px solid rgba(118, 131, 170, 0.34);
  background: rgba(31, 38, 64, 0.5);
  box-shadow: none;
}

.page.theme-dark .task-scope-control .btn-group .btn,
.page.theme-dark .task-scope-control .btn-group .btn.btn-outline-primary {
  color: #c4cdea;
}

.page.theme-dark .task-scope-selected-day-label {
  color: #8e9ab9;
  opacity: 0.86;
}

.page.theme-dark .task-scope-selected-day-date {
  color: #d8deef;
}

.page.theme-dark .task-list-container .nav-tabs::before {
  color: #8e9ab9;
  opacity: 0.86;
}

/* Mobile task layout polish */
@media (max-width: 991.98px) {
  :root {
    --mobile-surface-radius: 0.46rem;
    --mobile-surface-border: rgba(112, 132, 164, 0.34);
  }

  .task-list-container {
    display: block;
    padding: 0.75rem !important;
    background: linear-gradient(180deg, #f7f9ff 0%, #eef3ff 100%) !important;
    border: 1px solid rgba(176, 190, 223, 0.72) !important;
    border-radius: 0 0 1.2rem 1.2rem !important;
    box-shadow: 0 12px 24px rgba(36, 58, 104, 0.16);
  }

  .page.theme-dark .task-list-container {
    background: linear-gradient(180deg, rgba(20, 25, 49, 0.95) 0%, rgba(15, 21, 41, 0.98) 100%) !important;
    border: 1px solid rgba(119, 137, 208, 0.3) !important;
    box-shadow: 0 14px 28px rgba(5, 9, 24, 0.34);
  }

  .task-list-container .nav-tabs {
    min-width: 0;
    width: 100%;
    margin-right: 0;
    margin-bottom: 0.75rem;
    max-height: 12rem;
    overflow-y: auto;
    border-radius: var(--mobile-surface-radius);
    border-color: var(--mobile-surface-border) !important;
  }

  .task-list-container .nav-tabs::before {
    display: none;
  }

  .task-list-container .nav-tabs .nav-link {
    min-height: 2.35rem;
    padding: 0.28rem 0.48rem !important;
    opacity: 0.84;
  }

  .task-list-container .nav-tabs .nav-link:hover {
    opacity: 0.94;
  }

  .task-list-container .nav-tabs .nav-link.active {
    opacity: 1;
    box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.68);
  }

  .task-list-container .tab-content {
    width: 100%;
  }

  .task-list-container .task-lists-mobile-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    width: calc(100% - 1.1rem);
    margin: 0.18rem auto 0.7rem;
    min-height: 3.08rem;
    padding: 0.38rem 0.78rem;
    border: none;
    border-radius: 1rem;
    background: linear-gradient(135deg, var(--theme-nav-bg), var(--theme-nav-bg-secondary));
    color: #f3f8ff;
    box-shadow: 0 7px 16px rgba(26, 42, 120, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 -1px 0 rgba(0, 0, 0, 0.08);
    text-align: left;
    transition: background-color 140ms ease, box-shadow 140ms ease, transform 120ms ease, filter 140ms ease;
  }

  .task-list-container .task-lists-mobile-toggle-text {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.48rem;
    line-height: 1.2;
    text-align: left;
  }

  .task-list-container .task-lists-mobile-toggle-text-icon {
    font-size: 1rem;
    opacity: 0.96;
    width: 2.05rem;
    height: 2.05rem;
    padding: 0.42rem;
    border-radius: 0.62rem;
    background: rgba(255, 255, 255, 0.16);
    border: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
    flex: 0 0 auto;
  }

  .task-list-container .task-lists-mobile-toggle-text-copy {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.05;
  }

  .task-list-container .task-lists-mobile-toggle-label {
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    opacity: 0.78;
    font-weight: 600;
    text-align: left;
  }

  .task-list-container .task-lists-mobile-toggle-value {
    font-size: 1.06rem;
    font-weight: 700;
    text-align: left;
  }

  .task-list-container .task-lists-mobile-toggle-chevron {
    position: static;
    font-size: 1.2rem;
    opacity: 1;
    transition: transform 150ms ease;
    transform: none;
    margin-left: auto;
    align-self: center;
    margin-bottom: 0;
  }

  .task-list-container .task-lists-mobile-toggle.is-open .task-lists-mobile-toggle-chevron {
    transform: rotate(180deg);
  }

  .task-list-container .task-tabs {
    transition: max-height 260ms ease, opacity 180ms ease, transform 180ms ease, margin-bottom 180ms ease;
  }

  .task-list-container .task-tabs.task-lists-collapsed {
    max-height: 0;
    margin-bottom: 0;
    opacity: 0;
    transform: translateY(-4px);
    overflow: hidden;
    pointer-events: none;
  }

  .task-list-container .task-tabs.task-lists-open {
    max-height: 12rem;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .task-list-container .calendar-selected-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 3.08rem;
    gap: 0.45rem;
    width: calc(100% - 1.1rem);
    margin: 0.18rem auto 0.7rem;
    padding: 0.38rem 0.78rem;
    border: none;
    border-radius: 1rem;
    background: linear-gradient(135deg, var(--theme-nav-bg), var(--theme-nav-bg-secondary));
    color: #f3f8ff;
    box-shadow: 0 7px 16px rgba(26, 42, 120, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 -1px 0 rgba(0, 0, 0, 0.08);
    text-align: left;
    transition: background-color 140ms ease, box-shadow 140ms ease, transform 120ms ease, filter 140ms ease;
  }

  .task-list-container .calendar-selected-toggle-text {
    display: flex;
    flex-direction: row;
    gap: 0.48rem;
    min-width: 0;
    width: auto;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
  }

  .task-list-container .calendar-selected-toggle-text-icon {
    font-size: 1rem;
    opacity: 0.96;
    width: 2.05rem;
    height: 2.05rem;
    padding: 0.42rem;
    border-radius: 0.62rem;
    background: rgba(255, 255, 255, 0.16);
    border: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
    flex: 0 0 auto;
  }

  .task-list-container .calendar-selected-toggle-date {
    font-size: 1.06rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
  }

  .task-list-container .calendar-selected-toggle-text-copy {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.05;
  }

  .task-list-container .calendar-selected-toggle-label {
    font-size: 0.66rem;
    letter-spacing: 0.08em;
    opacity: 0.78;
    font-weight: 600;
    text-transform: uppercase;
    text-align: left;
  }

  .task-list-container .calendar-selected-toggle-chevron {
    position: static;
    font-size: 1.2rem;
    opacity: 1;
    transition: transform 150ms ease;
    transform: none;
    margin-left: auto;
    align-self: center;
    margin-bottom: 0;
  }

  .task-list-container .calendar-selected-toggle.is-open .calendar-selected-toggle-chevron {
    transform: rotate(180deg);
  }

  .task-list-container .calendar-mobile-panel {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transform: translateY(-4px);
    transition: max-height 260ms ease, opacity 180ms ease, transform 180ms ease;
    pointer-events: none;
  }

  .task-list-container .calendar-mobile-panel.is-open {
    max-height: 34rem;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .task-list-container .year-review-mobile-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    min-height: 3.08rem;
    width: calc(100% - 1.1rem);
    margin: 0.18rem auto 0.7rem;
    padding: 0.38rem 0.78rem;
    border: none;
    border-radius: 1rem;
    background: linear-gradient(135deg, var(--theme-nav-bg), var(--theme-nav-bg-secondary));
    color: #f3f8ff;
    box-shadow: 0 7px 16px rgba(26, 42, 120, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 -1px 0 rgba(0, 0, 0, 0.08);
    text-align: left;
    transition: background-color 140ms ease, box-shadow 140ms ease, transform 120ms ease, filter 140ms ease;
  }

  .task-list-container .year-review-mobile-toggle-text {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.48rem;
    font-size: 1.06rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
  }

  .task-list-container .year-review-mobile-toggle-text-icon {
    font-size: 1rem;
    opacity: 0.96;
    width: 2.05rem;
    height: 2.05rem;
    padding: 0.42rem;
    border-radius: 0.62rem;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.24);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
    flex: 0 0 auto;
  }

  .task-list-container .year-review-mobile-toggle-chevron {
    position: static;
    font-size: 1.2rem;
    opacity: 1;
    transition: transform 150ms ease;
    transform: none;
    margin-left: auto;
    align-self: center;
  }

  .task-list-container .year-review-mobile-toggle.is-open .year-review-mobile-toggle-chevron {
    transform: rotate(180deg);
  }

  .task-list-container .flowstate-stats-mobile-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    min-height: 3.08rem;
    width: calc(100% - 1.1rem);
    margin: 0.18rem auto 0.7rem;
    padding: 0.38rem 0.78rem;
    border: none;
    border-radius: 1rem;
    background: linear-gradient(135deg, var(--theme-nav-bg), var(--theme-nav-bg-secondary));
    color: #f3f8ff;
    box-shadow: 0 7px 16px rgba(26, 42, 120, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 -1px 0 rgba(0, 0, 0, 0.08);
    text-align: left;
    transition: background-color 140ms ease, box-shadow 140ms ease, transform 120ms ease, filter 140ms ease;
  }

  .task-list-container .flowstate-stats-mobile-toggle-text {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.48rem;
    font-size: 1.06rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
  }

  .task-list-container .flowstate-stats-mobile-toggle-text-icon {
    font-size: 1rem;
    opacity: 0.96;
    width: 2.05rem;
    height: 2.05rem;
    padding: 0.42rem;
    border-radius: 0.62rem;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.24);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
    flex: 0 0 auto;
  }

  .task-list-container .flowstate-stats-mobile-toggle-text-copy {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.05;
  }

  .task-list-container .flowstate-stats-mobile-toggle-label {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.8;
  }

  .task-list-container .flowstate-stats-mobile-toggle-value {
    font-size: 0.96rem;
    font-weight: 800;
  }

  .task-list-container .flowstate-stats-mobile-toggle-chevron {
    position: static;
    font-size: 1.2rem;
    opacity: 1;
    transition: transform 150ms ease;
    transform: none;
    margin-left: auto;
    align-self: center;
  }

  .task-list-container .flowstate-stats-mobile-toggle.is-open .flowstate-stats-mobile-toggle-chevron {
    transform: rotate(180deg);
  }

  .task-list-container .task-lists-mobile-toggle:focus,
  .task-list-container .task-lists-mobile-toggle:hover,
  .task-list-container .calendar-selected-toggle:focus,
  .task-list-container .calendar-selected-toggle:hover,
  .task-list-container .year-review-mobile-toggle:focus,
  .task-list-container .year-review-mobile-toggle:hover {
    filter: brightness(1.06);
  }

  .task-list-container .task-lists-mobile-toggle:focus-visible,
  .task-list-container .calendar-selected-toggle:focus-visible,
  .task-list-container .year-review-mobile-toggle:focus-visible {
    outline: 2px solid rgba(158, 212, 255, 0.95);
    outline-offset: 2px;
  }

  .task-list-container .task-lists-mobile-toggle:active,
  .task-list-container .calendar-selected-toggle:active,
  .task-list-container .year-review-mobile-toggle:active {
    transform: translateY(1px);
    box-shadow: 0 2px 7px rgba(10, 62, 130, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.14);
    filter: brightness(0.99);
  }

  .task-list-container .year-review-mobile-panel {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transform: translateY(-4px);
    transition: max-height 260ms ease, opacity 180ms ease, transform 180ms ease;
    pointer-events: none;
  }

  .task-list-container .year-review-mobile-panel.is-open {
    max-height: 24rem;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .task-list-container .flowstate-stats-mobile-panel {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transform: translateY(-4px);
    transition: max-height 260ms ease, opacity 180ms ease, transform 180ms ease;
    pointer-events: none;
  }

  .task-list-container .flowstate-stats-mobile-panel.is-open {
    max-height: 28rem;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .task-list-container .sidebar-year-review {
    display: none !important;
  }

  .task-list-container .task-sidebar-column,
  .task-list-container .tab-content .row > .col-12.col-lg-3 {
    order: 1;
  }

  .task-list-container .task-main-column,
  .task-list-container .tab-content .row > .col-12.col-lg-9 {
    order: 2;
  }

  .dashboard-box {
    min-width: calc(100% - 1.1rem);
    width: calc(100% - 1.1rem);
    margin-left: auto;
    margin-right: auto;
    padding: 0.2rem;
    border: 1px solid var(--mobile-surface-border) !important;
    border-radius: var(--mobile-surface-radius) !important;
  }

  .task-list-container .task-main-column > .dashboard-box,
  .task-list-container .task-main-column > .top-journal-mini {
    width: auto !important;
    max-width: none !important;
    margin-left: 0.55rem !important;
    margin-right: 0.55rem !important;
    padding: 0 !important;
    overflow: visible;
  }

  .dashboard-box .accordion-body {
    padding: 0.56rem 0.52rem 0.42rem !important;
  }

  .dashboard-box .mt-2 {
    margin-top: 0.2rem !important;
  }

  .task-scope-control {
    width: calc(100% - 1.1rem);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0.56rem !important;
    justify-content: flex-start !important;
  }

  .task-scope-selected-day {
    display: none;
  }

  .task-scope-control .btn-group {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
  }

  .taskListContainer > div {
    width: 100%;
  }

  .task-list-container .tasklist-count-badge {
    min-width: 1.68rem;
    font-size: 0.72rem;
    padding: 0.08rem 0.28rem !important;
  }

  .task-list-container .tasklist-name {
    font-size: 0.95rem;
    opacity: 0.95;
  }

  .taskListContainer li {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.18rem 0.28rem !important;
    margin: 0.14rem 0 !important;
    padding: 0.24rem 0.28rem !important;
    border-radius: var(--mobile-surface-radius) !important;
    border: 1px solid var(--mobile-surface-border) !important;
  }

  .taskListContainer li .task-item-main {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    flex: 1 1 100%;
    min-width: 0;
  }

  .taskListContainer li .task-item-mobile-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    border: 0;
    border-radius: 999px;
    background: rgba(76, 110, 245, 0.1);
    color: #5f7ec9;
    margin-left: 0.1rem;
    padding: 0;
    flex: 0 0 auto;
    transition: transform 0.22s ease;
  }

  .page.theme-dark .taskListContainer li .task-item-mobile-toggle {
    background: transparent;
    color: #d8e4ff;
  }

  .taskListContainer li .task-item-mobile-toggle.is-expanded {
    transform: rotate(180deg);
  }

  .taskListContainer li .task-item-actions {
    width: 100%;
    display: none;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.18rem;
    padding-top: 0.12rem;
  }

  .taskListContainer li .task-item-actions.is-expanded {
    display: flex;
  }

  .taskListContainer li textarea.task-edit {
    width: auto !important;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 1.45rem !important;
    height: 1.45rem !important;
    line-height: 1.22 !important;
    margin-bottom: 0 !important;
    margin-right: 0;
    resize: none;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: keep-all;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .taskListContainer li .task-tags {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .taskListContainer li input[type="checkbox"] {
    width: 1.45rem !important;
    height: 1.45rem !important;
    margin-right: 0.14rem !important;
  }

  .taskListContainer li span {
    padding: 0.12rem 0.24rem !important;
  }

  .taskListContainer button.btn {
    padding-top: 0.15rem !important;
    padding-bottom: 0.15rem !important;
  }

  /* Step 2: compact action row (timer + action buttons) */
  .taskListContainer li .task-item-actions > span.bg-white.m-auto {
    margin: 0 0.2rem 0 0 !important;
    min-height: 2rem;
    border-radius: 999px !important;
    padding: 0 0.5rem !important;
    display: inline-flex !important;
    align-items: center;
    gap: 0.22rem;
    flex: 0 0 auto;
  }

  .taskListContainer li .task-item-actions > button.btn.btn-light,
  .taskListContainer li .task-item-actions > .dropdown .btn.btn-light {
    width: 2rem !important;
    height: 2rem !important;
    border-radius: 999px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    margin-left: 0.18rem !important;
    line-height: 1 !important;
    flex: 0 0 auto;
  }

  .taskListContainer li .task-item-actions > .dropdown {
    margin-left: 0 !important;
  }

  .taskListContainer li .task-item-actions > button.btn.btn-light svg,
  .taskListContainer li .task-item-actions > .dropdown .btn.btn-light svg,
  .taskListContainer li .task-item-actions > span.bg-white svg {
    font-size: 0.82rem !important;
  }

  .dragIcon {
    display: none;
  }

  .taskform {
    padding: 0.3rem 0.05rem;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.3rem;
  }

  .taskform input#new-todo {
    width: 100% !important;
    margin: 0 !important;
    margin-bottom: 0.45rem;
    min-height: 3.08rem !important;
    height: 3.08rem !important;
    padding: 0.72rem 0.92rem !important;
    border-radius: 0.92rem !important;
    border: 1px solid rgba(142, 157, 197, 0.28) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    color: #e9efff !important;
  }

  .taskform .btn {
    margin-bottom: 0.35rem;
  }

  .taskform > span {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.35rem 0.5rem;
  }

  .taskform > span > .btn.btn-primary {
    flex: 1 1 100%;
    width: 100%;
    margin: 0 !important;
    min-height: 3.08rem;
    height: 3.08rem;
    border-radius: 0.92rem !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.54rem;
    font-size: 1.04rem !important;
    font-weight: 700;
  }

  .taskform > span > .toggleContainer {
    margin: 0 !important;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.34rem;
    min-width: 5.4rem;
    font-size: 0.93rem;
  }

  .taskform > span > .toggleContainer.ml-4,
  .taskform > span > .toggleContainer .ml-4 {
    margin-left: 0 !important;
  }

  .taskform > span > .toggleContainer .switch {
    top: 0 !important;
    margin: 0 !important;
  }

  .taskform .tags-container {
    flex: 1 1 100%;
    max-width: 100% !important;
    margin: 0.2rem 0 0 !important;
    padding: 0 !important;
  }

  .top-journal-mini .taskform,
  .top-journal-mini .taskform.pb-2.mb-2.p-2 {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .top-journal-mini .ck.ck-reset.ck-editor.ck-rounded-corners {
    width: 100% !important;
    margin: 0 !important;
  }

  .task-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.38rem;
    margin: 0.4rem 0 0.08rem !important;
  }

  .task-pagination .task-pagination-btn {
    margin: 0 !important;
    min-height: 1.9rem;
    padding: 0.2rem 0.56rem !important;
    border-radius: 999px !important;
    font-size: 0.78rem !important;
    line-height: 1.1;
    opacity: 0.92;
  }

  .task-pagination .task-pagination-text {
    font-size: 0.92rem !important;
    font-weight: 500;
    color: #c4d0e3 !important;
    white-space: nowrap;
  }

  .accordion-progress-header .accordion-button,
  .accordion-journal-header .accordion-button {
    border-radius: var(--mobile-surface-radius) var(--mobile-surface-radius) 0 0 !important;
    border: 1px solid var(--mobile-surface-border) !important;
    border-bottom-color: rgba(112, 132, 164, 0.24) !important;
    margin: 0 !important;
    padding: 0.62rem 0.85rem !important;
  }

  .dashboard-box .accordion-item {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .dashboard-box .accordion-collapse {
    border-top: 0 !important;
  }
}

/* Mobile header nav: keep profile menu visible */
@media (max-width: 991.98px) {
  .header .navbar {
    margin: 0.55rem 0.75rem 0;
    padding: 0.45rem 0.65rem 0;
    border-radius: 1.35rem 1.35rem 0 0;
    border: 1px solid rgba(150, 161, 255, 0.35);
    background: linear-gradient(140deg, #6f63ff 0%, #5b5fe1 55%, #5259cc 100%);
    box-shadow: 0 14px 30px rgba(12, 15, 42, 0.36);
  }

  .header .navbar-brand {
    font-size: 2rem !important;
    font-weight: 700;
    letter-spacing: 0.01em;
  }

  .header .navbar-dark .navbar-nav {
    margin-top: 0.35rem;
    justify-content: space-between;
    gap: 0.34rem;
  }

  .header .navbar-dark .navbar-nav .nav-link {
    width: 100%;
    min-width: 0;
    padding: 0.38rem 0.46rem !important;
    font-weight: 400 !important;
  }

  .header .navbar-dark .navbar-nav > .nav-link.active {
    background: transparent;
    box-shadow: none;
  }

  .header .navbar,
  .header .navbar-collapse {
    overflow: visible !important;
  }

  .header .navbar-dark .navbar-nav {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    overflow: visible;
  }

  .header .navbar-dark .navbar-nav .nav-item,
  .header .navbar-dark .navbar-nav .nav-link {
    flex: 1 1 0;
  }

  .header .navbar-dark .navbar-nav .nav-link {
    width: 100%;
    min-width: 0;
    padding: 0.34rem 0.46rem;
  }

  .header .navbar-dark .navbar-nav .ml-auto {
    margin-left: 0 !important;
  }

  .header .navbar-dark .navbar-nav .nav-item.ml-auto {
    margin-left: auto !important;
    position: relative;
    z-index: 1060;
  }

  .header .profile-menu-trigger:not(.profile-menu-trigger-auth) {
    min-width: 2.8rem !important;
    width: auto !important;
    max-width: 6.2rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0.15rem 0.55rem !important;
  }

  .header .profile-menu-trigger.profile-menu-trigger-auth {
    min-width: 3.5rem !important;
    width: 3.5rem !important;
    max-width: 3.5rem;
    overflow: visible;
    padding: 0 !important;
  }

  .header .profile-menu-trigger.profile-menu-trigger-auth .profile-menu-avatar {
    width: 2.18rem;
    height: 2.18rem;
    font-size: 0.9rem;
  }

  .header .profile-menu-dropdown {
    right: 0 !important;
    left: auto !important;
    min-width: min(92vw, 320px) !important;
    max-width: 92vw;
  }
}

/* Narrow-phone width lock: keep task/journal cards as wide as list selector */
@media (max-width: 500px) {
  .task-list-container {
    padding-left: 0.2rem !important;
    padding-right: 0.2rem !important;
  }

  .task-list-container .tab-content,
  .task-list-container .tab-content .row,
  .task-list-container .tab-content .col-12 {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .task-list-container .tab-content .dashboard-box,
  .task-list-container .tab-content .top-journal-mini {
    width: calc(100% - 1.1rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .task-list-container .tab-content .dashboard-box .accordion-body {
    padding-left: 0.12rem !important;
    padding-right: 0.12rem !important;
  }
}

/* Flowstate theme foundation: tokenized dark palette */
.page.theme-dark {
  --fs-bg: #222220;
  --fs-surface: #272725;
  --fs-surface-strong: #333331;
  --fs-border: rgba(127, 139, 163, 0.34);
  --fs-border-soft: rgba(127, 139, 163, 0.24);
  --fs-text: #e9edf6;
  --fs-muted: #9aa4bb;
  --fs-accent: var(--theme-accent);
  --fs-accent-soft: var(--theme-accent-soft);
  --fs-nav: var(--theme-nav-bg);
}

body.theme-dark,
body.theme-dark #root,
body.theme-dark .inner-container,
.page.theme-dark {
  background: var(--fs-bg) !important;
}

.page.theme-dark {
  color: var(--fs-text);
}

.page.theme-dark .header nav {
  background: var(--fs-nav) !important;
}

.page.theme-dark .header .navbar-dark .navbar-nav > .nav-link,
.page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:hover,
.page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:focus {
  filter: none !important;
}

.page.theme-dark .task-list-container {
  background: #222220 !important;
  border-color: var(--fs-border) !important;
  box-shadow: 0 14px 26px rgba(4, 10, 24, 0.32);
}

.page.theme-dark .task-list-container .nav-tabs {
  background: #1f1f1d !important;
  border-color: var(--fs-border) !important;
  box-shadow: none !important;
}

.page.theme-dark .task-list-container .nav-tabs .nav-link {
  color: var(--fs-text) !important;
}

.page.theme-dark .task-list-container .nav-tabs .nav-link:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  color: #ffffff !important;
}

.page.theme-dark .task-list-container .nav-tabs .nav-link.active {
  background: var(--theme-accent) !important;
  color: #ffffff !important;
}

.page.theme-dark .dashboard-box,
.page.theme-dark .top-journal-mini,
.page.theme-dark .sidebar-calendar,
.page.theme-dark .sidebar-year-review,
.page.theme-dark .calendar-mobile-panel,
.page.theme-dark .year-review-mobile-panel {
  background: var(--fs-surface) !important;
  border-color: var(--fs-border-soft) !important;
  box-shadow: none !important;
}

.page.theme-dark .accordion-progress-header .accordion-button,
.page.theme-dark .accordion-journal-header .accordion-button {
  background: var(--fs-surface-strong) !important;
  border-bottom-color: var(--fs-border-soft) !important;
}

.page.theme-dark .task-scope-selected-day-label,
.page.theme-dark .task-list-container .nav-tabs::before {
  color: var(--fs-muted) !important;
  opacity: 0.88;
}

.page.theme-dark .task-scope-selected-day-date,
.page.theme-dark .accordion-progress-title,
.page.theme-dark .accordion-progress-meta {
  color: var(--fs-text) !important;
}

.page.theme-dark .task-scope-control .btn-group {
  border-color: var(--fs-border) !important;
  background: rgba(24, 24, 22, 0.82) !important;
}

.page.theme-dark .task-scope-control .btn-group .btn.btn-primary {
  background: var(--fs-accent) !important;
}

/* Step 2: left rail visual refinement (desktop dark mode) */
@media (min-width: 992px) {
  .page.theme-dark .task-list-container .nav-tabs {
    width: 15.35rem;
    min-width: 15.35rem;
    margin-right: 1.08rem;
    border-radius: 0.42rem;
    overflow: visible;
    background: #1f1f1d !important;
    border: 1px solid rgba(141, 151, 170, 0.18) !important;
  }

  .page.theme-dark .task-list-container .nav-tabs::before {
    top: -1.18rem;
    left: 0.52rem;
    font-size: 0.76rem;
    letter-spacing: 0.14em;
  }

  .page.theme-dark .task-list-container .nav-tabs .nav-item {
    margin: 0 !important;
  }

  .page.theme-dark .task-list-container .nav-tabs .dropdown-menu {
    z-index: 1200;
  }

  .page.theme-dark .task-list-container .nav-tabs .nav-link {
    min-height: 2.8rem;
    padding: 0.54rem 0.72rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    /* border-bottom: 1px solid rgba(141, 151, 170, 0.14) !important; */
    background: transparent !important;
    color: #e5e9f2 !important;
    text-align: left;
  }

  .page.theme-dark .task-list-container .nav-tabs .nav-link:hover {
    background: rgba(255, 255, 255, 0.05) !important;
    color: #ffffff !important;
  }

  .page.theme-dark .task-list-container .nav-tabs .nav-link.active {
    background: var(--theme-accent) !important;
    color: #ffffff !important;
    box-shadow: none !important;
  }

  .page.theme-dark .task-list-container .tasklist-title-left {
    gap: 0.52rem !important;
    width: 100%;
    justify-content: flex-start !important;
    padding-right: 1.75rem;
  }

  .page.theme-dark .task-list-container .nav-tabs .nav-link > span {
    position: relative;
  }

  .page.theme-dark .task-list-container .nav-tabs .nav-link > span > span:last-child {
    position: absolute;
    right: 0.2rem;
    top: 50%;
    transform: translateY(-50%);
  }

  .page.theme-dark .task-list-container .tasklist-name {
    order: 1;
    flex: 1 1 auto;
    max-width: none;
    font-size: 0.98rem;
    color: inherit;
  }

  .page.theme-dark .task-list-container .tasklist-count-badge {
    order: 2;
    margin-left: auto;
    margin-right: 0 !important;
    min-width: 1.86rem;
    padding: 0.1rem 0.42rem !important;
    font-size: 0.78rem;
    font-weight: 600;
    background: rgba(255, 255, 255, 0.08) !important;
    color: #c3cada !important;
    border: 1px solid rgba(133, 145, 167, 0.2);
  }

  .page.theme-dark .task-list-container .nav-tabs .nav-link.active .tasklist-count-badge {
    background: rgba(255, 255, 255, 0) !important;
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.18);
  }

  .page.theme-dark .task-list-container .nav-tabs .nav-item:last-child .nav-link {
    border-top: 1px solid rgba(141, 151, 170, 0.18) !important;
    border-bottom: 0 !important;
    min-height: 3rem;
    color: #aeb8cb !important;
  }

  .page.theme-dark .task-list-container .nav-tabs .nav-item:last-child .nav-link.active {
    background: transparent !important;
    color: #d9e1f2 !important;
  }
}

/* Remove legacy dark blue row paint under center/right columns */
.page.theme-dark .task-list-container .tab-content,
.page.theme-dark .task-list-container .tab-content .row {
  background: transparent !important;
}

/* Final de-blue pass for task rows, journal area, calendar, and year-review */
.page.theme-dark .taskListContainer li {
  background: #232321 !important;
  border: 1px solid rgba(136, 143, 156, 0.22) !important;
}

.page.theme-dark .taskListContainer li:hover {
  background: #2a2a27 !important;
}

.page.theme-dark .taskListContainer li input {
  background: #1b1b19 !important;
  border-color: rgba(136, 143, 156, 0.3) !important;
}

.page.theme-dark .taskListContainer li input[type="checkbox"] {
  background: #1f1f1c !important;
  border-color: rgba(136, 143, 156, 0.48) !important;
}

.page.theme-dark .taskListContainer li input[type="checkbox"]:hover {
  border-color: rgba(168, 176, 192, 0.64) !important;
}

.page.theme-dark .taskListContainer li input[type="checkbox"]:checked {
  background: var(--fs-accent) !important;
  border-color: #7a83ff !important;
}

.page.theme-dark .taskListContainer li button.btn-secondary,
.page.theme-dark .taskListContainer li .btn-light,
.page.theme-dark .taskListContainer li .task-item-actions > span.bg-white.m-auto {
  background: #2c2c29 !important;
  border-color: rgba(141, 149, 163, 0.28) !important;
  color: #d8dce5 !important;
}

.page.theme-dark .taskListContainer li .btn-secondary:hover,
.page.theme-dark .taskListContainer li .btn-light:hover {
  background: #363632 !important;
}

.page.theme-dark .journal-mini textarea,
.page.theme-dark .journal-entry textarea,
.page.theme-dark .ck.ck-content.ck-editor__editable,
.page.theme-dark .ck.ck-content.ck-editor__editable.ck-focused,
.page.theme-dark .ck.ck-content.ck-editor__editable.ck-blurred {
  background: #151513 !important;
  border-color: rgba(136, 143, 156, 0.3) !important;
  color: #e3e7ef !important;
}

.page.theme-dark .journal-mini textarea::placeholder,
.page.theme-dark .journal-entry textarea::placeholder,
.page.theme-dark .ck.ck-content.ck-editor__editable::placeholder {
  color: #9ca4b6 !important;
}

.page.theme-dark .sidebar-calendar,
.page.theme-dark .react-calendar {
  background: #1f1f1d !important;
  border-color: rgba(136, 143, 156, 0.28) !important;
}

.page.theme-dark .react-calendar__navigation button {
  color: #e6eaf2 !important;
}

.page.theme-dark .react-calendar__navigation button:enabled:hover,
.page.theme-dark .react-calendar__navigation button:enabled:focus,
.page.theme-dark .react-calendar__navigation__label:enabled:hover,
.page.theme-dark .react-calendar__navigation__label:enabled:focus {
  background: #2a2a27 !important;
  color: #f0f3fa !important;
}

.page.theme-dark .react-calendar__month-view__weekdays abbr {
  color: #a4abbb !important;
}

.page.theme-dark .react-calendar__month-view__days__day--neighboringMonth {
  color: #6f7582 !important;
}

.page.theme-dark .react-calendar__tile {
  background: transparent !important;
  color: #e7ebf4 !important;
}

.page.theme-dark .react-calendar__tile:enabled:hover,
.page.theme-dark .react-calendar__tile:enabled:focus {
  background: #2a2a27 !important;
}

.page.theme-dark .react-calendar__tile--active {
  background: var(--fs-accent) !important;
  color: #ffffff !important;
}

.page.theme-dark .react-calendar__tile.calendar-heatmap-1 { background: rgba(255, 255, 255, 0.03) !important; }
.page.theme-dark .react-calendar__tile.calendar-heatmap-2 { background: rgba(255, 255, 255, 0.06) !important; }
.page.theme-dark .react-calendar__tile.calendar-heatmap-3 { background: rgba(171, 177, 190, 0.16) !important; color: #eef2f8 !important; }
.page.theme-dark .react-calendar__tile.calendar-heatmap-4 { background: rgba(140, 147, 163, 0.3) !important; color: #f4f7fc !important; }
.page.theme-dark .react-calendar__tile.calendar-heatmap-5 { background: rgba(116, 123, 140, 0.48) !important; color: #f7f9fd !important; }

.page.theme-dark .heatmap-box .apexcharts-canvas {
  filter: brightness(0.88) saturate(0.5) contrast(1.02);
}

.page.theme-dark .year-review-card {
  border-color: rgba(136, 143, 156, 0.3) !important;
  box-shadow: none !important;
}

.page.theme-dark .year-review-year-badge,
.page.theme-dark .year-review-best-badge {
  background: #2c2c29 !important;
  border-color: rgba(136, 143, 156, 0.32) !important;
  color: #b7bfce !important;
}

.page.theme-dark .year-review-best-badge.is-loading {
  color: #a8b0c0 !important;
}

.page.theme-dark .year-review-total-number {
  color: #d8deeb !important;
}

.page.theme-dark .year-review-month-labels > span,
.page.theme-dark .year-review-scale {
  color: #929bad !important;
}

.page.theme-dark .year-review-cell {
  border-color: rgba(134, 142, 156, 0.22) !important;
}

.page.theme-dark .year-review-cell.is-loading {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(134, 142, 156, 0.18) !important;
}

.page.theme-dark .year-review-cell.level-0 { background: #2a2a27 !important; }
.page.theme-dark .year-review-cell.level-1 { background: #32322e !important; }
.page.theme-dark .year-review-cell.level-2 { background: #3b3b37 !important; }
.page.theme-dark .year-review-cell.level-3 { background: #474741 !important; }
.page.theme-dark .year-review-cell.level-4 { background: #56564e !important; }
.page.theme-dark .year-review-cell.level-5 { background: #66665d !important; }

/* Task composer footer row (Flowstate-like) */
.taskform.taskform--inline {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  margin: 0 !important;
  padding: 0.9rem 1rem 1rem !important;
  border-radius: 0 !important;
}

.taskform.taskform--inline input#new-todo {
  flex: 1 1 auto;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

.taskform.taskform--inline .taskform-add-btn {
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 0.4rem 1rem !important;
  min-height: 2.25rem;
  border-radius: 999px !important;
  font-size: 1.01rem !important;
  font-weight: 600;
  white-space: nowrap;
}

.page.theme-dark .taskform.taskform--inline {
  border-top: 1px solid rgba(136, 143, 156, 0.2);
}

.page.theme-dark .taskform.taskform--inline input#new-todo {
  color: #b5bdcc !important;
}

.page.theme-dark .taskform.taskform--inline input#new-todo::placeholder {
  color: #8e96a7 !important;
}

@media (max-width: 640px) {
  .taskform.taskform--inline {
    flex-wrap: wrap;
    row-gap: 0.5rem;
  }

  .taskform.taskform--inline .taskform-add-btn {
    margin-left: auto !important;
  }
}

/* Journal inline composer polish */
.journal-form-inline {
  gap: 0.75rem;
  align-items: stretch;
  padding: 0.95rem 1rem 1rem !important;
  border: 1px solid rgba(136, 143, 156, 0.22);
  border-radius: 0.9rem;
  background: linear-gradient(180deg, rgba(247, 249, 253, 0.98), rgba(239, 243, 250, 0.96));
  box-shadow: 0 10px 24px rgba(39, 58, 92, 0.06);
}

.journal-form-inline .journal-inline-input {
  flex: 1 1 auto;
  width: auto !important;
  min-width: 0;
  min-height: 3.3rem;
  margin: 0 !important;
  padding: 0.85rem 0.95rem !important;
  border: 1px solid rgba(136, 143, 156, 0.28) !important;
  border-radius: 0.75rem !important;
  background: #ffffff !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95);
  color: #1f2a3c !important;
  font-size: 1.02rem;
  font-style: normal;
  line-height: 1.35;
}

.journal-form-inline .journal-inline-input::placeholder {
  color: #8e96a7 !important;
  font-style: normal;
}

.journal-form-inline .journal-inline-input:focus {
  outline: none;
  border-color: var(--theme-accent) !important;
  box-shadow: 0 0 0 0.16rem var(--theme-accent-soft);
}

.journal-form-inline .journal-add-btn {
  background: var(--theme-accent) !important;
  border-color: var(--theme-accent) !important;
  color: #ffffff !important;
  min-height: 3.3rem;
  white-space: nowrap;
}

.journal-form-inline .journal-add-btn:hover,
.journal-form-inline .journal-add-btn:focus {
  background: var(--theme-accent-strong) !important;
  border-color: var(--theme-accent-strong) !important;
}

@media (max-width: 640px) {
  .journal-form-inline .journal-inline-input {
    flex-basis: 100%;
    font-size: 1.02rem;
  }
}

/* Flowstate polish pass: flatter rows, calmer header bands, journal CTA in header */
.page.theme-dark .accordion-progress-header .accordion-button,
.page.theme-dark .accordion-journal-header .accordion-button {
  background: #2a2a27 !important;
}

.page.theme-dark .accordion-progress-fill {
  background: rgba(119, 129, 146, 0.18) !important;
  opacity: 1 !important;
}

.page.theme-dark .accordion-progress-meta {
  font-size: 0.85rem;
  font-weight: 500;
  color: #c8cfdb !important;
}

.page.theme-dark .taskListContainer li {
  margin: 0 !important;
  border-radius: 0 !important;
  border-top: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 1px solid rgba(141, 149, 163, 0.24) !important;
  background: transparent !important;
  min-height: 3.45rem;
}

.page.theme-dark .taskListContainer li:hover {
  background: rgba(255, 255, 255, 0.03) !important;
}

.page.theme-dark .taskListContainer li .task-item-main textarea.task-edit {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #edf1f9 !important;
}

.page.theme-dark .taskListContainer li .task-item-actions > button.btn.btn-light,
.page.theme-dark .taskListContainer li .task-item-actions > .dropdown .btn.btn-light,
.page.theme-dark .taskListContainer li .task-item-actions > span.bg-white.m-auto {
  background: rgba(255, 255, 255, 0.02) !important;
  border-color: rgba(141, 149, 163, 0.34) !important;
}

.page.theme-dark .taskListContainer .dragIcon {
  opacity: 0.38;
}

.page.theme-dark .task-indentable-row::before {
  background-image:
    linear-gradient(to bottom, rgba(141, 149, 163, 0.2), rgba(141, 149, 163, 0.2)),
    linear-gradient(to bottom, rgba(141, 149, 163, 0.15), rgba(141, 149, 163, 0.15)),
    linear-gradient(to bottom, rgba(141, 149, 163, 0.1), rgba(141, 149, 163, 0.1));
}

.page.theme-dark .taskListContainer:hover .task-indent-handle > div,
.page.theme-dark .taskListContainer:focus-within .task-indent-handle > div {
  background: rgba(255, 255, 255, 0.03);
  border: 1px dashed rgba(141, 149, 163, 0.28);
}

.page.theme-dark .taskform.taskform--inline {
  padding: 0.8rem 1rem 0.85rem !important;
}

.page.theme-dark .taskform.taskform--inline .taskform-add-btn {
  background: var(--theme-accent) !important;
  border-color: var(--theme-accent) !important;
}

.page.theme-dark .taskform.taskform--inline .taskform-add-btn:hover,
.page.theme-dark .taskform.taskform--inline .taskform-add-btn:focus {
  background: var(--theme-accent-strong) !important;
  border-color: var(--theme-accent-strong) !important;
}

.accordion-journal-content {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.8rem;
}

.accordion-journal-title {
  display: inline-flex;
  align-items: center;
}

.journal-header-entry-btn {
  min-height: 2rem;
  padding: 0.28rem 0.9rem !important;
  border-radius: 999px !important;
  font-size: 0.98rem !important;
  font-weight: 600;
  line-height: 1;
  background: var(--theme-accent) !important;
  border-color: var(--theme-accent) !important;
}

.journal-header-entry-btn:hover,
.journal-header-entry-btn:focus {
  background: var(--theme-accent-strong) !important;
  border-color: var(--theme-accent-strong) !important;
}

.page.theme-dark .journal-form-inline {
  background: linear-gradient(180deg, rgba(24, 31, 43, 0.96), rgba(18, 24, 35, 0.96));
  border-color: rgba(141, 149, 163, 0.22);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.page.theme-dark .journal-form-inline .journal-inline-input {
  background: rgba(17, 25, 35, 0.88) !important;
  border-color: rgba(141, 149, 163, 0.24) !important;
  color: #e4ebf3 !important;
}

.page.theme-dark .journal-form-inline .journal-inline-input::placeholder {
  color: #9ba8b7 !important;
}

/* Make task/add divider line full-bleed (edge-to-edge in card body) */
.page.theme-dark .task-list-container .task-main-column > .dashboard-box .accordion-body > form.taskform.taskform--inline:not(.journal-form-inline) {
  position: relative;
  border-top: 0 !important;
}

.page.theme-dark .task-list-container .task-main-column > .dashboard-box .accordion-body > form.taskform.taskform--inline:not(.journal-form-inline)::before {
  content: "";
  position: absolute;
  top: 0;
  left: -0.68rem;
  right: -0.68rem;
  border-top: 1px solid rgba(141, 149, 163, 0.24);
  pointer-events: none;
}

/* Make journal/add divider line full-bleed too */
.page.theme-dark .task-list-container .journal-mini > form.taskform.taskform--inline.journal-form-inline {
  position: relative;
  border-top: 0 !important;
}

.page.theme-dark .task-list-container .journal-mini > form.taskform.taskform--inline.journal-form-inline::before {
  content: "";
  position: absolute;
  top: 0;
  left: calc(-1 * var(--bs-accordion-body-padding-x, 1rem));
  right: calc(-1 * var(--bs-accordion-body-padding-x, 1rem));
  border-top: 1px solid rgba(141, 149, 163, 0.24);
  pointer-events: none;
}

/* Inline add-row usability: remove focus ring and free up text space */
.taskform.taskform--inline {
  padding: 0.55rem 0.65rem !important;
  gap: 0.5rem;
}

.page.theme-dark .taskform.taskform--inline {
  padding: 0.55rem 0.65rem !important;
}

.page.theme-dark .journal-form-inline {
  padding-top: 0.55rem !important;
  padding-bottom: 0.55rem !important;
}

.taskform.taskform--inline input#new-todo,
.journal-form-inline .journal-inline-input {
  min-height: 2.1rem;
  line-height: 1.35;
  padding-top: 0.22rem !important;
  padding-bottom: 0.22rem !important;
}

.taskform.taskform--inline input#new-todo {
  outline: none !important;
}

.taskform.taskform--inline input#new-todo:hover,
.taskform.taskform--inline input#new-todo:focus,
.taskform.taskform--inline input#new-todo:active {
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Journal composer: true full-bleed divider + transparent input in dark mode */
.task-list-container .journal-mini > form.taskform.taskform--inline.journal-form-inline {
  margin-left: calc(-1 * var(--bs-accordion-body-padding-x, 0.68rem)) !important;
  margin-right: calc(-1 * var(--bs-accordion-body-padding-x, 0.68rem)) !important;
  padding-left: var(--bs-accordion-body-padding-x, 0.68rem) !important;
  padding-right: var(--bs-accordion-body-padding-x, 0.68rem) !important;
  border-top: 1px solid rgba(141, 149, 163, 0.24) !important;
}

.task-list-container .journal-mini > form.taskform.taskform--inline.journal-form-inline::before {
  display: none !important;
}

.page.theme-dark .journal-form-inline input.journal-inline-input {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.page.theme-dark .journal-entry .ck.ck-content.ck-editor__editable,
.page.theme-dark .journal-entry .ck.ck-content.ck-editor__editable.ck-focused,
.page.theme-dark .journal-entry .ck.ck-content.ck-editor__editable.ck-blurred {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.journal-entry {
  align-items: stretch !important;
  gap: 0.9rem;
}

.journal-entry-content {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.journal-entry-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
}

.journal-entry-meta {
  margin: 0 0 0.38rem;
  align-self: flex-start;
  padding-top: 0.18rem;
  padding-left: 0.82rem;
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  opacity: 0.78;
}

/* Task composer (habit-card variant): remove card chrome, keep input border */
form.task-composer-card.habit-tracker-composer:not(.journal-composer-card) {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

form.task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-input.habit-tracker-input {
  background: transparent !important;
  box-shadow: none !important;
}

/* Journal composer (habit-card variant): remove card chrome, keep input border */
form.task-composer-card.habit-tracker-composer.journal-composer-card {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

form.task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-input.habit-tracker-input {
  background: transparent !important;
  box-shadow: none !important;
}

.page.theme-dark .journal-entry-meta {
  color: #8f98aa;
}

/* Restore subtle per-entry card surfaces for journal rows in dark mode */
.page.theme-dark .journal-mini .taskListContainer {
  border-bottom: 0 !important;
}

.page.theme-dark .journal-mini .taskListContainer::after {
  display: none !important;
}

.page.theme-dark .journal-mini .taskListContainer li {
  margin: 0.42rem 0 !important;
  border: 1px solid rgba(141, 149, 163, 0.24) !important;
  border-radius: 0.42rem !important;
  background: rgba(255, 255, 255, 0.03) !important;
}

.page.theme-dark .journal-mini .taskListContainer li:hover {
  background: rgba(255, 255, 255, 0.055) !important;
}

/* Match the same journal entry card treatment in light mode */
.page:not(.theme-dark) .journal-mini .taskListContainer li {
  margin: 0.42rem 0 !important;
  border: 1px solid rgba(148, 163, 184, 0.32) !important;
  border-radius: 0.42rem !important;
  background: rgba(148, 163, 184, 0.12) !important;
}

.page:not(.theme-dark) .journal-mini .taskListContainer li:hover {
  background: rgba(148, 163, 184, 0.18) !important;
}

/* Light mode: make journal editor surface blend into the entry card */
.page:not(.theme-dark) .journal-entry .ck.ck-content.ck-editor__editable,
.page:not(.theme-dark) .journal-entry .ck.ck-content.ck-editor__editable.ck-focused,
.page:not(.theme-dark) .journal-entry .ck.ck-content.ck-editor__editable.ck-blurred {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 640px) {
  .journal-entry {
    flex-wrap: wrap;
    gap: 0.45rem;
  }

  .journal-entry-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .journal-entry-meta {
    font-size: 0.7rem;
    padding-left: 0.72rem;
  }
}

/* Year-in-review heatmap panel should match calendar surface (no blue tint) */
.page.theme-dark .heatmap-box,
.page.theme-dark .sidebar-year-review,
.page.theme-dark .year-review-mobile-panel,
.page.theme-dark .year-review-card {
  background: #1f1f1d !important;
}

/* Task rows: make separators full-width (including drag-handle column) */
.page.theme-dark .taskListContainer {
  border-bottom: 1px solid rgba(141, 149, 163, 0.24) !important;
}

.page.theme-dark .taskListContainer li {
  border-bottom: 0 !important;
}

/* Task row separators should bleed across accordion body padding */
.page.theme-dark .task-list-container .task-main-column > .dashboard-box .accordion-body .taskListContainer {
  position: relative;
  border-bottom: 0 !important;
}

.page.theme-dark .task-list-container .task-main-column > .dashboard-box .accordion-body .taskListContainer::after {
  content: "";
  position: absolute;
  left: calc(-1 * var(--bs-accordion-body-padding-x, 0.68rem));
  right: calc(-1 * var(--bs-accordion-body-padding-x, 0.68rem));
  bottom: 0;
  border-bottom: 1px solid rgba(141, 149, 163, 0.24);
  pointer-events: none;
}

/* Remove extra gap between last task row and add-task composer */
.task-list-container .task-main-column > .dashboard-box .accordion-body ul {
  margin-bottom: 0 !important;
}

.taskform.taskform--inline:not(.journal-form-inline) input#new-todo.mt-2 {
  margin-top: 0 !important;
}

/* Final override: remove count-badge border in all task-list states */
.task-list-container .tasklist-count-badge,
.task-list-container .nav-tabs .nav-link.active .tasklist-count-badge,
.page.theme-dark .task-list-container .tasklist-count-badge,
.page.theme-dark .task-list-container .nav-tabs .nav-link.active .tasklist-count-badge {
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

/* Journal page refresh */
.journal-page {
  padding: 0.35rem 0 0.75rem;
}

.journal-page-loading {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 7rem;
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(146, 160, 186, 0.22);
  border-radius: 1rem;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(39, 58, 92, 0.06);
}

.journal-page-loading-spinner {
  flex: 0 0 auto;
  margin: 0 !important;
}

.journal-page-loading-text {
  font-size: 1rem;
  font-weight: 600;
  color: #23314a;
}

.journal-page-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 1rem;
  padding: 1.1rem 1.25rem;
  border: 1px solid rgba(146, 160, 186, 0.28);
  border-radius: 1rem;
  background:
    linear-gradient(135deg, rgba(84, 115, 226, 0.08), rgba(255, 255, 255, 0.96)),
    #ffffff;
  box-shadow: 0 14px 30px rgba(39, 58, 92, 0.08);
}

.journal-page-eyebrow,
.journal-page-insights-eyebrow,
.journal-page-editor-card-eyebrow,
.journal-mini-summary-eyebrow {
  display: inline-block;
  margin-bottom: 0.32rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #7082a4;
}

.journal-page-hero-copy h2 {
  margin: 0;
  font-size: 2rem;
  font-weight: 700;
  color: #1b2435;
}

.journal-page-hero-copy p {
  max-width: 40rem;
  margin: 0.45rem 0 0;
  color: #60708c;
  font-size: 1rem;
  line-height: 1.6;
}

.journal-page-hero-actions {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.journal-page-status {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.75rem;
  padding: 0.72rem 0.95rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  border: 1px solid rgba(146, 160, 186, 0.24);
  color: #51627f;
  font-size: 0.93rem;
  font-weight: 600;
}

.journal-page-status-dot {
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 999px;
  background: #89a3c8;
  box-shadow: 0 0 0 0 rgba(84, 115, 226, 0.32);
}

.journal-page-status-dot.is-saving {
  background: var(--theme-accent);
  animation: journal-save-pulse 1.4s ease-in-out infinite;
}

.journal-page-save-btn {
  min-height: 2.75rem;
  padding: 0.65rem 1.1rem !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
}

.journal-page-add-tab-title {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

/* Edit Time modal polish */
.edit-time-modal .modal-header {
  padding: 0.9rem 1rem;
}

.edit-time-modal .modal-title {
  font-size: 1.55rem;
  font-weight: 700;
}

.edit-time-modal-body {
  padding: 1rem 1rem 0.9rem;
}

.edit-time-summary {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.95rem;
  padding: 0.35rem 0.72rem;
  border-radius: 999px;
  font-size: 0.86rem;
  background: rgba(84, 115, 226, 0.12);
  color: #405073;
}

.edit-time-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.edit-time-field label {
  margin-bottom: 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6f7f9a !important;
}

.edit-time-field .form-control {
  height: 2.75rem;
  text-align: center;
  font-size: 1.05rem;
  font-weight: 700;
  border-radius: 0.62rem;
  border: 1px solid rgba(146, 160, 186, 0.38);
  background: #f6f8fc;
}

.edit-time-field .form-control:focus {
  border-color: var(--theme-accent);
  box-shadow: 0 0 0 0.16rem rgba(84, 115, 226, 0.16);
}

.edit-time-modal .modal-footer {
  padding: 0.8rem 1rem 1rem;
}

.edit-time-modal .modal-footer .btn {
  min-width: 7rem;
  font-weight: 700;
}

.page.theme-dark .edit-time-summary {
  background: rgba(255, 255, 255, 0.08);
  color: #d8e2f2;
}

.page.theme-dark .edit-time-field label {
  color: #9eafc9 !important;
}

.page.theme-dark .edit-time-field .form-control {
  color: #e9f0fb !important;
  background: rgba(17, 25, 35, 0.85);
  border-color: rgba(141, 151, 170, 0.34);
}

.page.theme-dark .edit-time-field .form-control:focus {
  border-color: var(--theme-accent);
  box-shadow: 0 0 0 0.16rem rgba(84, 115, 226, 0.2);
}

@media (max-width: 576px) {
  .edit-time-grid {
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }
}

.journal-page-editor-card,
.journal-page-insights-card,
.journal-page-calendar-card {
  border: 1px solid rgba(146, 160, 186, 0.22);
  border-radius: 0.9rem;
  box-shadow: 0 14px 30px rgba(39, 58, 92, 0.08);
}

.journal-page-editor-card {
  overflow: hidden;
}

.journal-page-editor-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  padding: 1rem 1.05rem 0.8rem;
  border-bottom: 1px solid rgba(146, 160, 186, 0.16);
  background: linear-gradient(180deg, rgba(235, 241, 252, 0.88), rgba(255, 255, 255, 0.96));
}

.journal-page-editor-card-copy h3,
.journal-page-insights-header h3 {
  margin: 0;
  font-size: 1.18rem;
  font-weight: 700;
  color: #1d2637;
}

.journal-page-editor-card-badge {
  padding: 0.45rem 0.75rem !important;
  background: rgba(84, 115, 226, 0.12) !important;
  color: #3d4f76 !important;
  font-weight: 700;
}

.journal-page-editor-card-body {
  padding: 0.1rem 0.9rem 0.45rem;
}

.journal-page-insights-card {
  margin-top: 1rem;
  padding: 1rem 1rem 1.05rem;
}

.journal-page-insight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 0.9rem;
}

.journal-page-insight-item,
.journal-page-insight-note {
  padding: 0.85rem 0.9rem;
  border-radius: 0.85rem;
  background: #f5f7fb;
  border: 1px solid rgba(146, 160, 186, 0.18);
}

.journal-page-insight-item strong {
  display: block;
  margin-top: 0.2rem;
  font-size: 1.4rem;
  color: #1d2637;
}

.journal-page-insight-label,
.journal-list-property-label {
  display: block;
  margin-bottom: 0.16rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #73829b;
}

.journal-page-insight-note {
  margin-top: 0.7rem;
  color: #56657f;
  line-height: 1.55;
}

.journal-list-properties {
  display: grid;
  gap: 0.75rem;
}

.journal-list-property-row {
  padding: 0.85rem 0.9rem;
  border-radius: 0.85rem;
  background: #f5f7fb;
  border: 1px solid rgba(146, 160, 186, 0.18);
}

.journal-properties-modal .modal-dialog {
  max-width: 520px;
}

.page.theme-dark .journal-properties-modal-content,
body.theme-dark .journal-properties-modal-content {
  background: #1f1f1d;
  border: 1px solid rgba(127, 139, 163, 0.26);
  border-radius: 0.7rem;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(7, 12, 23, 0.42);
}

.page.theme-dark .journal-properties-modal .modal-header,
.page.theme-dark .journal-properties-modal .modal-footer,
body.theme-dark .journal-properties-modal .modal-header,
body.theme-dark .journal-properties-modal .modal-footer {
  background: #1f1f1d;
  border-color: rgba(127, 139, 163, 0.18);
}

.page.theme-dark .journal-properties-modal .modal-title,
body.theme-dark .journal-properties-modal .modal-title {
  color: #eef2fb;
  font-weight: 700;
}

.page.theme-dark .journal-list-properties .journal-list-property-row,
body.theme-dark .journal-list-properties .journal-list-property-row {
  background: #232321;
  border-color: rgba(127, 139, 163, 0.18);
}

.page.theme-dark .journal-list-property-label,
body.theme-dark .journal-list-property-label {
  display: block;
  margin-bottom: 0.2rem;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #9aa4bb;
}

.page.theme-dark .journal-list-properties strong,
body.theme-dark .journal-list-properties strong {
  color: #eef2fb;
  font-weight: 700;
}

.page:not(.theme-dark) .journal-properties-modal-content,
.page.theme-light .journal-properties-modal-content {
  background: #ffffff;
  border: 1px solid rgba(146, 160, 186, 0.28);
  border-radius: 0.7rem;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(7, 12, 23, 0.12);
}

.page:not(.theme-dark) .journal-properties-modal .modal-header,
.page:not(.theme-dark) .journal-properties-modal .modal-footer,
.page.theme-light .journal-properties-modal .modal-header,
.page.theme-light .journal-properties-modal .modal-footer {
  background: #f7f9fd;
  border-color: rgba(146, 160, 186, 0.18);
}

.page:not(.theme-dark) .journal-properties-modal .modal-title,
.page.theme-light .journal-properties-modal .modal-title {
  color: #1f2a3c;
}

.page:not(.theme-dark) .journal-list-properties .journal-list-property-row,
.page.theme-light .journal-list-properties .journal-list-property-row {
  background: #f5f7fb;
  border-color: rgba(146, 160, 186, 0.18);
}

.page:not(.theme-dark) .journal-list-properties strong,
.page.theme-light .journal-list-properties strong {
  color: #1f2a3c;
  font-weight: 700;
}

.page:not(.theme-dark) .journal-list-property-label,
.page.theme-light .journal-list-property-label {
  color: #73829b;
}

.journal-mini-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.95rem;
  padding: 0.95rem 1rem;
  border-radius: 0.9rem;
  background: linear-gradient(180deg, rgba(239, 243, 250, 0.95), rgba(255, 255, 255, 0.98));
  border: 1px solid rgba(146, 160, 186, 0.18);
}

.journal-mini-summary-copy {
  min-width: 0;
}

.journal-mini-summary-title {
  display: block;
  color: #1f2a3c;
  font-size: 1.08rem;
}

.journal-mini-summary-pill {
  flex: 0 0 auto;
  padding: 0.4rem 0.7rem;
  border-radius: 999px;
  background: rgba(84, 115, 226, 0.1);
  color: #42547b;
  font-size: 0.85rem;
  font-weight: 700;
}

.journal-mini-empty {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1rem 1.05rem;
  border: 1px dashed rgba(146, 160, 186, 0.34);
  border-radius: 0.9rem;
  background: #f7f9fc;
  color: #61728c;
}

.journal-mini-empty strong {
  color: #1f2a3c;
}

.journal-pagination {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.page.theme-dark .journal-page-hero {
  background:
    linear-gradient(135deg, rgba(66, 79, 110, 0.28), rgba(25, 33, 45, 0.96)),
    #1a222d;
  border-color: #2a3646;
  box-shadow: none;
}

.page.theme-dark .journal-page-loading {
  background: #1a222d;
  border-color: #2a3646;
  box-shadow: none;
}

.page.theme-dark .journal-page-hero-copy h2,
.page.theme-dark .journal-page-editor-card-copy h3,
.page.theme-dark .journal-page-insights-header h3,
.page.theme-dark .journal-mini-summary-title,
.page.theme-dark .journal-mini-empty strong {
  color: #eef3fb;
}

.page.theme-dark .journal-page-hero-copy p,
.page.theme-dark .journal-page-status,
.page.theme-dark .journal-page-insight-note,
.page.theme-dark .journal-mini-empty,
.page.theme-dark .journal-page-loading-text {
  color: #aeb9ca;
}

.page.theme-dark .journal-page-status {
  background: rgba(17, 25, 35, 0.8);
  border-color: #2a3646;
}

.page.theme-dark .journal-page-editor-card,
.page.theme-dark .journal-page-insights-card,
.page.theme-dark .journal-page-calendar-card {
  border-color: #2a3646 !important;
  box-shadow: none !important;
}

.page.theme-dark .journal-page-editor-card-header,
.page.theme-dark .journal-mini-summary {
  background: rgba(29, 38, 52, 0.92);
  border-color: rgba(141, 151, 170, 0.16);
}

.page.theme-dark .journal-page-editor-card-badge,
.page.theme-dark .journal-mini-summary-pill {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #e6edf8 !important;
}

.page.theme-dark .journal-page-insight-item,
.page.theme-dark .journal-page-insight-note,
.page.theme-dark .journal-list-property-row,
.page.theme-dark .journal-mini-empty {
  background: rgba(17, 25, 35, 0.86);
  border-color: rgba(141, 151, 170, 0.16);
}

.page.theme-dark .journal-page-insight-item strong,
.page.theme-dark .journal-list-property-row strong {
  color: #eef3fb;
}

.page.theme-dark .journal-page-eyebrow,
.page.theme-dark .journal-page-insights-eyebrow,
.page.theme-dark .journal-page-editor-card-eyebrow,
.page.theme-dark .journal-mini-summary-eyebrow,
.page.theme-dark .journal-page-insight-label,
.page.theme-dark .journal-list-property-label {
  color: #8f9db3;
}

@keyframes journal-save-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(84, 115, 226, 0.35);
  }

  70% {
    box-shadow: 0 0 0 8px rgba(84, 115, 226, 0);
  }

  100% {
    box-shadow: 0 0 0 0 rgba(84, 115, 226, 0);
  }
}

@media (max-width: 991.98px) {
  .journal-page-hero {
    flex-direction: column;
    align-items: stretch;
  }

  .journal-page-hero-actions {
    justify-content: flex-start;
  }

  .journal-page-insights-card {
    margin-top: 0.8rem;
  }
}

@media (max-width: 640px) {
  .journal-page-editor-card-header,
  .journal-mini-summary {
    flex-direction: column;
    align-items: flex-start;
  }

  .journal-page-insight-grid {
    grid-template-columns: 1fr;
  }

  .journal-page-status {
    width: 100%;
  }
}

/* Home (TaskList habit-card variant) scoped visual parity layer */
body.flowstate-home-active .page.theme-dark {
  --flow-home-bg: #1d1d1c;
  --flow-home-surface: #222220;
  --flow-home-surface-strong: #2a2a28;
  --flow-home-border: rgba(142, 149, 163, 0.22);
  --flow-home-border-soft: rgba(142, 149, 163, 0.14);
  --flow-home-text: #eef2fb;
  --flow-home-muted: #9ca5b9;
}

body.flowstate-home-active,
body.flowstate-home-active #root,
body.flowstate-home-active .inner-container,
body.flowstate-home-active .page.theme-dark,
body.flowstate-home-active .inner-page {
  background: var(--flow-home-bg) !important;
}

body.flowstate-home-active {
  display: block !important;
  min-height: 100vh;
  height: auto !important;
}

body.flowstate-home-active #root,
body.flowstate-home-active .inner-container,
body.flowstate-home-active .page.theme-dark,
body.flowstate-home-active .inner-page {
  display: block !important;
  width: 100%;
}

body.flowstate-home-active #root,
body.flowstate-home-active .inner-container,
body.flowstate-home-active .page.theme-dark,
body.flowstate-home-active .inner-page {
  min-height: 100vh;
  height: auto !important;
}

.page .header .navbar,
body.flowstate-home-active .page .header .navbar {
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  min-height: 3.85rem;
  background: linear-gradient(135deg, var(--theme-nav-bg), var(--theme-nav-bg-secondary)) !important;
  box-shadow: 0 8px 20px rgba(7, 10, 29, 0.3);
}

.page .header .navbar-brand,
body.flowstate-home-active .page .header .navbar-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.52rem;  
  font-weight: 600;
  letter-spacing: -1px;
  color: white !important;
}

.page .header .navbar-brand::after,
body.flowstate-home-active .page .header .navbar-brand::after {
  content: "PRO";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 1.12rem;
  min-width: 2rem;
  margin-left: 0.12rem;
  padding: 0 0.4rem;
  border-radius: 0.32rem;
  border: 1px solid rgba(223, 229, 255, 0.28);
  background: rgba(151, 161, 230, 0.24);
  color: #d9e1ff;
  font-size: 0.66rem;
  line-height: 1;
  letter-spacing: 0.04em;
  font-weight: 700;
  opacity: .007;
}

.page .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger),
body.flowstate-home-active .page .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger) {
  width: auto;
  min-width: 0;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.48rem;
  padding: 1rem 1.08rem 0.95rem !important;
  border-left: 0;
  border-bottom: 2px solid transparent;
  font-size: 1.02rem;
  font-weight: 500;
  color: rgba(236, 242, 255, 0.82) !important;
  opacity: 1;
  text-shadow: none;
}

.page .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger) > svg,
body.flowstate-home-active .page .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger) > svg {
  width: 1rem;
  height: 1rem;
  opacity: 0.92;
  filter: none !important;
}

.page .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger):hover,
.page .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger):focus,
body.flowstate-home-active .page .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger):hover,
body.flowstate-home-active .page .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger):focus {
  color: #ffffff !important;
  background: transparent !important;
  border-bottom-color: rgba(255, 255, 255, 0.28);
}

.page .header .navbar-dark .navbar-nav > .nav-link.active:not(.profile-menu-trigger),
body.flowstate-home-active .page .header .navbar-dark .navbar-nav > .nav-link.active:not(.profile-menu-trigger) {
  color: #ffffff !important;
  background: transparent !important;
  border-bottom-color: #ffffff;
}

.page .header .profile-menu-trigger.profile-menu-trigger-auth .profile-menu-avatar,
body.flowstate-home-active .page .header .profile-menu-trigger.profile-menu-trigger-auth .profile-menu-avatar {
  width: 2.18rem;
  height: 2.18rem;
  background: rgba(149, 160, 246, 0.44);
  border: 1px solid rgba(223, 229, 255, 0.34);
  color: #f5f8ff;
  box-shadow: none;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell {
  background: #222220 !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs {
  background: #191918 !important;
  border: 1px solid var(--flow-home-border) !important;
  box-shadow: none !important;
  width: 14.9rem;
  min-width: 14.9rem;
  border-radius: 0.58rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs::before {
  content: "My Lists";
  color: var(--flow-home-muted);
  opacity: 0.76;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs .nav-link {
  color: #eef2fb !important;
  min-height: 3rem;
  padding: 0.58rem 0.78rem !important;
  /* border-bottom: 1px solid var(--flow-home-border-soft) !important; */
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs .nav-link:hover {
  background: rgba(255, 255, 255, 0.05) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs .nav-link.active {
  background: var(--theme-accent) !important;
  color: #ffffff !important;
}

@media (min-width: 992px) {
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop {
    --flow-home-rail-top: 1rem;
    --flow-home-left-rail-nudge: -0.64rem;
    --flow-home-rail-bottom-gap: 0.72rem;
    --flow-home-left-summary-h: 8.8rem;
    display: block !important;
    width: 100% !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-desktop-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 21.4rem;
    gap: 0.9rem;
    align-items: start;
    width: 100%;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region {
    display: grid;
    grid-template-columns: 14.9rem minmax(0, 1fr);
    gap: 0.9rem;
    min-width: 0;
    align-items: start;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs {
    margin-right: 0 !important;
    width: 14.9rem;
    min-width: 14.9rem;
    max-width: 14.9rem;
    align-self: start;
    position: sticky;
    top: calc(var(--flow-home-rail-top) + var(--flow-home-left-rail-nudge));
    height: calc(100dvh - var(--flow-home-rail-top) - var(--flow-home-rail-bottom-gap) - var(--flow-home-left-summary-h) - 0.66rem);
    max-height: calc(100dvh - var(--flow-home-rail-top) - var(--flow-home-rail-bottom-gap) - var(--flow-home-left-summary-h) - 0.66rem);
    overflow-y: auto;
    overflow-x: hidden;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .tab-content {
    min-width: 0;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-right-rail {
    min-width: 0;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-right-rail .task-sidebar-column--persistent {
    position: sticky;
    top: var(--flow-home-rail-top);
    max-height: calc(100dvh - var(--flow-home-rail-top) - var(--flow-home-rail-bottom-gap));
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 0.16rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs,
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-right-rail .task-sidebar-column--persistent {
    scrollbar-width: thin;
    scrollbar-color: rgba(136, 143, 156, 0.42) transparent;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs::-webkit-scrollbar,
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-right-rail .task-sidebar-column--persistent::-webkit-scrollbar {
    width: 8px;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs::-webkit-scrollbar-thumb,
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-right-rail .task-sidebar-column--persistent::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(136, 143, 156, 0.34);
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs::-webkit-scrollbar-track,
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-right-rail .task-sidebar-column--persistent::-webkit-scrollbar-track {
    background: transparent;
  }
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .top-journal-mini {
  background: #1e1e1c !important;
  border-color: var(--flow-home-border) !important;
  box-shadow: none !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .year-review-card {
  background: var(--flow-home-surface) !important;
  border-color: var(--flow-home-border) !important;
  box-shadow: none !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .accordion-progress-header .accordion-button,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .accordion-journal-header .accordion-button {
  background: var(--flow-home-surface-strong) !important;
  padding: 0.68rem 0.9rem !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer {
  margin: 0 !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer.subtask-level-1 {
  margin-left: 2rem !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer.subtask-level-2 {
  margin-left: 4rem !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer.subtask-level-3 {
  margin-left: 6rem !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer.subtask-level-4 {
  margin-left: 8rem !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li {
  background: transparent !important;
  border: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  padding: 0.54rem 0.62rem !important;
  min-height: 3.62rem;
  border-bottom: 1px solid var(--flow-home-border-soft) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li:hover {
  background: rgba(255, 255, 255, 0.03) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li .task-item-main textarea.task-edit {
  width: auto !important;
  font-size: 1.08rem;
  line-height: 1.3;
  color: #eef2fb !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li input[type="checkbox"] {
  width: 1.875rem !important;
  height: 1.875rem !important;
  min-width: 1.875rem !important;
  min-height: 1.875rem !important;
  border-radius: 0.25rem !important;
  border: 1px solid rgba(160, 170, 194, 0.42);
  background: rgba(255, 255, 255, 0.02);
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li input[type="checkbox"]:checked + textarea.task-edit {
  color: #94a0b9 !important;
  opacity: 0.86;
  text-decoration: line-through;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer .dragIcon {
  opacity: 0.34;
  min-width: 1.35rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li .task-item-actions > button.btn.btn-light,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li .task-item-actions > .dropdown .btn.btn-light,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li .task-item-actions > span.bg-white.m-auto {
  min-height: 2rem;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(142, 149, 163, 0.28) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .tasklist-count-badge {
  min-width: 1.78rem;
  padding: 0.1rem 0.4rem !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.08) !important;
  color: #c8d0e2 !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-selected-day-label,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-selected-day-date,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .accordion-progress-title,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .accordion-progress-meta {
  color: var(--flow-home-text) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-selected-day-label {
  color: var(--flow-home-muted) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-control .btn-group {
  border-color: var(--flow-home-border) !important;
  background: rgba(20, 20, 19, 0.84) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-control .btn-group .btn.btn-primary {
  background: var(--theme-accent) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-stats-stack {
  display: grid;
  gap: 0.58rem;
  margin-top: 0.62rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.52rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-card {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  min-height: 6rem;
  padding: 0.72rem 0.74rem;
  border-radius: 0.68rem;
  background: #262624;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-label {
  font-size: 0.74rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--flow-home-muted);
  font-weight: 600;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-value {
  font-size: 2.38rem;
  line-height: 1;
  color: var(--flow-home-text);
  font-weight: 700;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-sub {
  font-size: 0.96rem;
  color: #c8cfdd;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-week-card {
  padding: 0.72rem 0.78rem 0.82rem;
  border-radius: 0.72rem;
  background: #262624;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-week-title {
  display: block;
  margin-bottom: 0.56rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--flow-home-muted);
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-row {
  display: grid;
  grid-template-columns: 1.6rem 1fr auto;
  align-items: center;
  gap: 0.44rem;
  margin-top: 0.34rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-day,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-value {
  font-size: 0.92rem;
  color: #c7cfdf;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-track {
  position: relative;
  height: 0.42rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-fill {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  border-radius: inherit;
  background: var(--theme-accent);
}

@media (min-width: 992px) {
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-desktop-layout {
    gap: 0.76rem;
    grid-template-columns: minmax(0, 1fr) 20.6rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region {
    gap: 0.76rem;
    position: relative;
    z-index: 0;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region::before {
    content: "";
    position: absolute;
    top: -0.02rem;
    bottom: -0.02rem;
    left: 0;
    width: 14.9rem;
    background: #1e1e1c;
    border-right: 1px solid rgba(126, 134, 149, 0.22);
    z-index: 0;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs {
    border-radius: 0 !important;
    overflow: visible;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    position: relative;
    z-index: 1;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs::before {
    content: "MY LISTS";
    position: static;
    display: block;
    padding: 1.34rem 0.92rem 0.5rem;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    font-weight: 700;
    color: #7f899d;
    border-bottom: 1px solid rgba(126, 134, 149, 0.18);
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .nav-item {
    margin: 0 !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .nav-link {
    min-height: 2.32rem;
    padding: 0.54rem 0.92rem !important;
    color: #f1f5ff !important;
    /* border-bottom: 1px solid rgba(126, 134, 149, 0.16) !important; */
    background: transparent !important;
    transition: background-color 140ms ease, color 140ms ease;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .nav-link:hover {
    background: rgba(255, 255, 255, 0.035) !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .nav-link.active {
    background: var(--theme-accent) !important;
    color: #ffffff !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .tasklist-name {
    font-size: 0.98rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .tasklist-count-badge {
    min-width: 1.84rem;
    padding: 0.1rem 0.4rem !important;
    border-radius: 999px !important;
    color: #888780 !important;
    font-size: 0.78rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .nav-link.active .tasklist-count-badge {
    background: rgba(255, 255, 255, 0.18) !important;
    color: #f3f7ff !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .nav-item:last-child .nav-link {
    border-top: 1px solid rgba(126, 134, 149, 0.25) !important;
    border-bottom: 0 !important;
    min-height: 3.04rem;
    color: #9aa6bf !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .nav-item:last-child .nav-link.active {
    background: transparent !important;
    color: #c3cee6 !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-left-rail-summary {
    grid-column: 1;
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    margin-top: 0;
    padding: 0.72rem 0.92rem 0.74rem;
    border: 0;
    border-top: 1px solid rgba(126, 134, 149, 0.2);
    border-radius: 0;
    background: transparent;
    position: sticky;
    top: calc(100dvh - var(--flow-home-rail-bottom-gap) - var(--flow-home-left-summary-h) + var(--flow-home-left-rail-nudge));
    z-index: 1;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-left-rail-summary-label {
    font-size: 0.77rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #8490a6;
    font-weight: 600;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-left-rail-summary-value {
    font-size: 2.52rem;
    line-height: 0.95;
    color: #f3f6ff;
    font-weight: 700;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-left-rail-summary-copy {
    font-size: 0.84rem;
    color: #a5afc3;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box,
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .top-journal-mini {
    margin-bottom: 0.76rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box .accordion-body {
    padding: 0.5rem 0.64rem 0.38rem !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .top-journal-mini .accordion-body {
    padding: 0.34rem 0.64rem 0.38rem !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box .accordion-body > form.taskform.taskform--inline:not(.journal-form-inline),
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .journal-mini > form.taskform.taskform--inline.journal-form-inline {
    margin-top: 0.12rem !important;
    padding: 0.56rem 0.05rem 0.44rem !important;
    background: transparent !important;
    border-top: 1px solid var(--flow-home-border-soft) !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box .accordion-body > form.taskform.taskform--inline:not(.journal-form-inline) input#new-todo,
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box .accordion-body > form.taskform.taskform--inline:not(.journal-form-inline) input#new-todo.mt-2 {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    min-height: 2rem !important;
    padding: 0.2rem 0.1rem !important;
    color: #d6ddee !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .journal-mini > form.taskform.taskform--inline.journal-form-inline .journal-inline-input,
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .journal-mini > form.taskform.taskform--inline.journal-form-inline input.journal-inline-input {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    min-height: 2rem !important;
    padding: 0.2rem 0.1rem !important;
    font-style: italic;
    color: #b8c2d9 !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box .accordion-body > form.taskform.taskform--inline:not(.journal-form-inline) .taskform-add-btn,
  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .journal-mini > form.taskform.taskform--inline.journal-form-inline .journal-add-btn {
    min-height: 2.25rem !important;
    padding: 0.44rem 1.02rem !important;
    border-radius: 999px !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar {
    padding: 0.5rem 0.56rem 0.56rem !important;
    border-radius: 0.78rem;
    background: inherit !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar {
    padding: 0.38rem 0.34rem 0.44rem !important;
    border: 0 !important;
    background: inherit !important;
    box-shadow: none !important;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__navigation {
    margin-bottom: 0.52rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__navigation button {
    min-width: 1.9rem;
    font-size: 0.96rem;
    font-weight: 600;
    border-radius: 0.5rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__navigation__label {
    font-size: 1.12rem;
    font-weight: 700;
    letter-spacing: 0.01em;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__month-view__weekdays {
    margin-bottom: 0.18rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__month-view__weekdays abbr {
    font-size: 0.79rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    opacity: 0.82;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__tile {
    min-height: 2.34rem;
    border-radius: 0.5rem;
    font-size: 1.01rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-stats-stack {
    gap: 0.48rem;
    margin-top: 0.5rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-grid {
    gap: 0.48rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-card {
    min-height: 5.5rem;
    padding: 0.58rem 0.64rem 0.62rem;
    border-radius: 0.62rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-label {
    font-size: 0.71rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-value {
    font-size: 2.08rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-sub {
    font-size: 0.88rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-week-card {
    padding: 0.58rem 0.66rem 0.66rem;
    border-radius: 0.62rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-week-title {
    margin-bottom: 0.44rem;
    font-size: 0.76rem;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-row {
    margin-top: 0.3rem;
    gap: 0.36rem;
  }
}

@media (max-width: 991.98px) {
  body.flowstate-home-active .page.theme-dark .header .navbar-brand::after {
    display: none;
  }

  body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-grid {
    grid-template-columns: 1fr;
  }
}

/* Flowstate home parity for light/default theme */
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell {
  background: linear-gradient(180deg, #f4f7fd 0%, #eef2fb 100%) !important;
  border: 1px solid rgba(148, 163, 184, 0.18) !important;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08) !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-main-column > .top-journal-mini,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .sidebar-calendar,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .year-review-card {
  background: #ffffff !important;
  border-color: rgba(148, 163, 184, 0.28) !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06) !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-sidebar-column.task-sidebar-column--persistent {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(247, 250, 255, 0.98) 100%);
  border-left: 1px solid rgba(148, 163, 184, 0.22);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-kpi-card,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-focus-week-card {
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
  min-height: 6rem;
  padding: 0.72rem 0.74rem;
  border-radius: 0.68rem;
  background: linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
  border: 1px solid rgba(148, 163, 184, 0.22);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-stats-stack {
  display: grid;
  gap: 0.58rem;
  margin-top: 0.62rem;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.52rem;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-kpi-label,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-focus-week-title,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-scope-selected-day-label {
  color: #5e6b84 !important;
  opacity: 0.92;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-kpi-label {
  font-size: 0.74rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-kpi-value,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-scope-selected-day-date {
  color: #1f2a44 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-kpi-value {
  font-size: 2.38rem;
  line-height: 1;
  font-weight: 700;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-kpi-sub,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-focus-day,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-focus-value {
  color: #4f5d77 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-kpi-sub {
  font-size: 0.96rem;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-focus-week-title {
  display: block;
  margin-bottom: 0.56rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-focus-row {
  display: grid;
  grid-template-columns: 1.6rem 1fr auto;
  align-items: center;
  gap: 0.44rem;
  margin-top: 0.34rem;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-focus-track {
  position: relative;
  height: 0.42rem;
  border-radius: 999px;
  background: rgba(143, 158, 186, 0.18);
  overflow: hidden;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-focus-fill {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  border-radius: inherit;
  background: rgba(148, 163, 184, 0.28);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .accordion-progress-header .accordion-button {
  background: linear-gradient(180deg, #f3f5fa 0%, #e8edf5 100%) !important;
  border: 1px solid rgba(148, 163, 184, 0.28) !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .accordion-progress-fill {
  background: rgba(148, 163, 184, 0.28) !important;
  opacity: 1 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .accordion-progress-title,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .accordion-progress-meta {
  color: #5b667a !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-scope-control .btn-group {
  background: #eef3fb;
  border-color: rgba(148, 163, 184, 0.36);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-scope-control .btn-group .btn.btn-primary {
  background: var(--theme-accent) !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-scope-control .btn-group .btn.btn-outline-primary:hover,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-scope-control .btn-group .btn.btn-outline-primary:focus {
  color: #1f2a44 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-scope-control .btn-group .btn:first-child {
  border-top-left-radius: 0.72rem !important;
  border-bottom-left-radius: 0.72rem !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-scope-control .btn-group .btn:last-child {
  border-top-right-radius: 0.72rem !important;
  border-bottom-right-radius: 0.72rem !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-scope-control .btn-group .btn:not(:first-child):not(:last-child) {
  border-radius: 0 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-tabs {
  background: #ffffff !important;
  border: 1px solid rgba(148, 163, 184, 0.22) !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06) !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-left-rail-summary {
  grid-column: 1;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  margin-top: 0;
  padding: 0.72rem 0.92rem 0.74rem;
  border: 0;
  border-top: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 0;
  background: transparent;
  position: sticky;
  top: calc(100dvh - var(--flow-home-rail-bottom-gap) - var(--flow-home-left-summary-h) + var(--flow-home-left-rail-nudge));
  z-index: 1;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-left-rail-summary-label {
  font-size: 0.77rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #7b86a3;
  font-weight: 600;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-left-rail-summary-value {
  font-size: 2.52rem;
  line-height: 0.95;
  color: #1f2a44;
  font-weight: 700;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-left-rail-summary-copy {
  font-size: 0.84rem;
  color: #6c7891;
}

@media (min-width: 992px) {
  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop {
    --flow-home-rail-top: 1rem;
    --flow-home-left-rail-nudge: -0.64rem;
    --flow-home-rail-bottom-gap: 0.72rem;
    --flow-home-left-summary-h: 8.8rem;
    display: block !important;
    width: 100% !important;
  }

  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-desktop-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20.6rem;
    gap: 0.76rem;
    align-items: start;
    width: 100%;
  }

  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region {
    display: grid;
    grid-template-columns: 14.9rem minmax(0, 1fr);
    gap: 0.76rem;
    min-width: 0;
    align-items: start;
    position: relative;
    z-index: 0;
  }

  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region::before {
    content: "";
    position: absolute;
    top: -0.02rem;
    bottom: -0.02rem;
    left: 0;
    width: 14.9rem;
    background: #ffffff;
    border-right: 1px solid rgba(148, 163, 184, 0.22);
    z-index: 0;
  }

  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs {
    margin-right: 0 !important;
    width: 14.9rem;
    min-width: 14.9rem;
    max-width: 14.9rem;
    align-self: start;
    position: sticky;
    top: calc(var(--flow-home-rail-top) + var(--flow-home-left-rail-nudge));
    height: calc(100dvh - var(--flow-home-rail-top) - var(--flow-home-rail-bottom-gap) - var(--flow-home-left-summary-h) - 0.66rem);
    max-height: calc(100dvh - var(--flow-home-rail-top) - var(--flow-home-rail-bottom-gap) - var(--flow-home-left-summary-h) - 0.66rem);
    overflow-y: auto;
    overflow-x: hidden;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    position: relative;
    z-index: 1;
  }

  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs::before {
    content: "MY LISTS";
    position: static;
    display: block;
    padding: 1.34rem 0.92rem 0.5rem;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    font-weight: 700;
    color: #7b86a3;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
  }

  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .tasklist-count-badge {
    min-width: 1.84rem;
    padding: 0.1rem 0.4rem !important;
    border-radius: 999px !important;
    background: rgba(148, 163, 184, 0.14) !important;
    color: #667085 !important;
    font-size: 0.78rem;
  }

  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs .nav-link.active .tasklist-count-badge {
    background: rgba(255, 255, 255, 0.18) !important;
    color: #ffffff !important;
  }

  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .tab-content,
  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-right-rail {
    min-width: 0;
  }

  body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-right-rail .task-sidebar-column--persistent {
    position: sticky;
    top: var(--flow-home-rail-top);
    max-height: calc(100dvh - var(--flow-home-rail-top) - var(--flow-home-rail-bottom-gap));
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 0.16rem;
  }

}

/* Task properties modal */
.task-properties-modal .modal-dialog {
  max-width: 860px;
}

.task-properties-modal-content {
  background: #1f1f1d;
  border: 1px solid rgba(127, 139, 163, 0.26);
  border-radius: 0.65rem;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(7, 12, 23, 0.42);
}

.task-properties-modal .modal-header {
  padding: 1rem 1.15rem;
  border-bottom: 1px solid rgba(127, 139, 163, 0.18);
  background: #1f1f1d;
}

.task-properties-modal .modal-title {
  font-size: 1.62rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.task-properties-modal-body {
  padding: 1.05rem 1.15rem 1.1rem;
}

.task-properties-modal-body > div:first-child {
  padding: 0.72rem 0.85rem;
  border: 1px solid rgba(127, 139, 163, 0.18);
  border-radius: 0.62rem;
  background: #232321;
  line-height: 1.5;
}

.task-properties-modal-body > hr {
  margin: 0.95rem 0;
  border-top: 1px solid rgba(127, 139, 163, 0.18);
}

.task-properties-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.task-properties-field {
  margin-bottom: 0;
}

.task-properties-field-full {
  grid-column: 1 / -1;
}

.task-properties-field > label {
  display: inline-block;
  margin-bottom: 0.4rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #9aa4bb;
}

.task-properties-field textarea.form-control {
  min-height: 7rem;
}

.task-properties-field .form-control {
  border-radius: 0.5rem;
  min-height: 2.72rem;
  border: 1px solid rgba(127, 139, 163, 0.26);
  background: #151513;
  color: #e8f0fb !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.task-properties-field .form-control:focus {
  border-color: rgba(127, 139, 163, 0.48);
  box-shadow: 0 0 0 0.16rem rgba(127, 139, 163, 0.12);
}

.task-properties-field .dropdown-container {
  border-radius: 0.5rem !important;
  min-height: 2.72rem;
  border: 1px solid rgba(127, 139, 163, 0.26) !important;
  background: #151513 !important;
}

.task-properties-field .dropdown-heading {
  min-height: 2.72rem;
  padding-top: 0.56rem;
  padding-bottom: 0.56rem;
}

.task-properties-modal .modal-footer .btn {
  min-width: 8rem;
  font-weight: 700;
}

.task-properties-modal .modal-footer {
  border-top: 1px solid rgba(127, 139, 163, 0.18);
  background: #1f1f1d;
  padding: 0.88rem 1.1rem 0.95rem;
}

.page.theme-dark .task-properties-field > label {
  color: #9aa4bb !important;
}

.page.theme-dark .task-properties-field .form-control,
.page.theme-dark .task-properties-field .dropdown-container {
  color: #e9f0fb !important;
  background: #151513 !important;
  border-color: rgba(127, 139, 163, 0.26);
}

.page.theme-dark .task-properties-field .dropdown-content,
.page.theme-dark .task-properties-field .dropdown-heading,
.page.theme-dark .task-properties-field .dropdown-content .item-renderer {
  background: #151513 !important;
  color: #dbe5f6 !important;
}

.page.theme-dark .task-properties-modal .modal-header {
  background: #1f1f1d !important;
}

.page.theme-dark .task-properties-modal .modal-footer {
  background: #1f1f1d !important;
}

@media (max-width: 768px) {
  .task-properties-grid {
    grid-template-columns: 1fr;
  }
}

/* Task properties modal: light mode readability */
.page:not(.theme-dark) .task-properties-modal .modal-header,
.page.theme-light .task-properties-modal .modal-header {
  background: linear-gradient(135deg, #eff4ff, #f8fbff);
  border-bottom: 1px solid rgba(148, 163, 184, 0.3);
}

.page:not(.theme-dark) .task-properties-modal .modal-title,
.page.theme-light .task-properties-modal .modal-title {
  color: #1f2a3c;
}

.page:not(.theme-dark) .task-properties-modal-content,
.page.theme-light .task-properties-modal-content {
  background: #ffffff;
  border-color: rgba(148, 163, 184, 0.35);
  box-shadow: 0 16px 34px rgba(30, 41, 59, 0.2);
}

.page:not(.theme-dark) .task-properties-modal-body > div:first-child,
.page.theme-light .task-properties-modal-body > div:first-child {
  background: linear-gradient(180deg, #f6f8fc, #eef3fb);
  border-color: rgba(148, 163, 184, 0.35);
  color: #334155;
}

.page:not(.theme-dark) .task-properties-modal-body > hr,
.page.theme-light .task-properties-modal-body > hr {
  border-top: 1px solid rgba(148, 163, 184, 0.3);
}

.page:not(.theme-dark) .task-properties-field > label,
.page.theme-light .task-properties-field > label {
  color: #64748b;
}

.page:not(.theme-dark) .task-properties-field .form-control,
.page:not(.theme-dark) .task-properties-field .dropdown-container,
.page.theme-light .task-properties-field .form-control,
.page.theme-light .task-properties-field .dropdown-container {
  background: #ffffff !important;
  color: #1f2937 !important;
  border-color: rgba(148, 163, 184, 0.45) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.page:not(.theme-dark) .task-properties-field .form-control::placeholder,
.page.theme-light .task-properties-field .form-control::placeholder {
  color: #94a3b8;
}

.page:not(.theme-dark) .task-properties-field .dropdown-heading,
.page:not(.theme-dark) .task-properties-field .dropdown-content,
.page:not(.theme-dark) .task-properties-field .dropdown-content .item-renderer,
.page.theme-light .task-properties-field .dropdown-heading,
.page.theme-light .task-properties-field .dropdown-content,
.page.theme-light .task-properties-field .dropdown-content .item-renderer {
  background: #ffffff !important;
  color: #1f2937 !important;
}

.page:not(.theme-dark) .task-properties-modal .modal-footer,
.page.theme-light .task-properties-modal .modal-footer {
  background: linear-gradient(180deg, #f2f6fd, #e8eef8);
  border-top: 1px solid rgba(148, 163, 184, 0.32);
}

body:not(.theme-dark) .task-properties-modal .modal-header,
body.theme-light .task-properties-modal .modal-header {
  background: linear-gradient(135deg, #eff4ff, #f8fbff) !important;
  border-bottom: 1px solid rgba(148, 163, 184, 0.3) !important;
}

body:not(.theme-dark) .task-properties-modal .modal-title,
body.theme-light .task-properties-modal .modal-title {
  color: #1f2a3c;
}

body:not(.theme-dark) .task-properties-modal-content,
body.theme-light .task-properties-modal-content {
  background: #ffffff !important;
  border-color: rgba(148, 163, 184, 0.35) !important;
  box-shadow: 0 16px 34px rgba(30, 41, 59, 0.2) !important;
}

body:not(.theme-dark) .task-properties-modal-body,
body.theme-light .task-properties-modal-body {
  background: #ffffff !important;
  color: #334155 !important;
}

body:not(.theme-dark) .task-properties-modal-body > div:first-child,
body.theme-light .task-properties-modal-body > div:first-child {
  background: linear-gradient(180deg, #f6f8fc, #eef3fb) !important;
  border-color: rgba(148, 163, 184, 0.35) !important;
  color: #334155 !important;
}

body:not(.theme-dark) .task-properties-modal-body > hr,
body.theme-light .task-properties-modal-body > hr {
  border-top: 1px solid rgba(148, 163, 184, 0.3) !important;
}

body:not(.theme-dark) .task-properties-field > label,
body.theme-light .task-properties-field > label {
  color: #64748b !important;
}

body:not(.theme-dark) .task-properties-field .form-control,
body:not(.theme-dark) .task-properties-field .dropdown-container,
body:not(.theme-dark) .task-properties-field textarea.form-control,
body:not(.theme-dark) .task-properties-field select.form-control,
body.theme-light .task-properties-field .form-control,
body.theme-light .task-properties-field .dropdown-container,
body.theme-light .task-properties-field textarea.form-control,
body.theme-light .task-properties-field select.form-control {
  background: #ffffff !important;
  color: #1f2937 !important;
  border-color: rgba(148, 163, 184, 0.45) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
}

body:not(.theme-dark) .task-properties-field .form-control::placeholder,
body.theme-light .task-properties-field .form-control::placeholder {
  color: #94a3b8;
}

body:not(.theme-dark) .task-properties-field .dropdown-heading,
body:not(.theme-dark) .task-properties-field .dropdown-content,
body:not(.theme-dark) .task-properties-field .dropdown-content .item-renderer,
body.theme-light .task-properties-field .dropdown-heading,
body.theme-light .task-properties-field .dropdown-content,
body.theme-light .task-properties-field .dropdown-content .item-renderer {
  background: #ffffff !important;
  color: #1f2937 !important;
}

body:not(.theme-dark) .task-properties-field .dropdown-container,
body.theme-light .task-properties-field .dropdown-container {
  background: #ffffff !important;
}

body:not(.theme-dark) .edit-time-field label,
body.theme-light .edit-time-field label {
  color: #64748b !important;
}

body:not(.theme-dark) .edit-time-field .form-control,
body.theme-light .edit-time-field .form-control {
  background: #ffffff !important;
  color: #1f2937 !important;
  border-color: rgba(148, 163, 184, 0.45) !important;
}

body:not(.theme-dark) .task-properties-modal .modal-footer,
body.theme-light .task-properties-modal .modal-footer {
  background: linear-gradient(180deg, #f2f6fd, #e8eef8) !important;
  border-top: 1px solid rgba(148, 163, 184, 0.32) !important;
}

.task-sidebar-column.task-sidebar-column--persistent {
    background: #1e1e1c;
    padding-left: 1rem;
    padding-right: 1rem !important;
    border-left: 1px solid #333437;
}

.page.theme-dark .calendar-mobile-panel {
  background: inherit !important;
}

/* Archived task lists */
.task-list-container .archived-task-lists {
  margin-top: 1.25rem;
  border: 1px solid #e4e8f0;
  border-radius: 0.75rem;
  overflow: hidden;
}

.task-list-container .archived-task-lists .accordion-button {
  padding: 0.9rem 1rem;
  color: #536072;
  font-weight: 600;
  background: #f8f9fb;
  box-shadow: none;
}

.task-list-container .archived-task-lists .accordion-body {
  padding: 0.75rem;
  background: #fff;
}

.archived-task-lists-grid {
  display: grid;
  gap: 0.625rem;
}

.archived-task-list-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0.875rem;
  border: 1px solid #e8ebf1;
  border-radius: 0.6rem;
}

.archived-task-list-details {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.archived-task-list-details strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.archived-task-list-details span {
  color: #7a8493;
  font-size: 0.82rem;
}

.archived-task-list-actions {
  display: flex;
  flex-shrink: 0;
  gap: 0.5rem;
}

.page.theme-dark .task-list-container .archived-task-lists {
  border-color: #343b4a;
}

.page.theme-dark .task-list-container .archived-task-lists .accordion-button,
.page.theme-dark .task-list-container .archived-task-lists .accordion-body,
.page.theme-dark .archived-task-list-row {
  color: #e6e9ef;
  background: #202530;
  border-color: #343b4a;
}

.page.theme-dark .archived-task-list-details span {
  color: #a9b1bf;
}

@media (max-width: 575.98px) {
  .archived-task-list-row {
    align-items: stretch;
    flex-direction: column;
  }

  .archived-task-list-actions .btn {
    flex: 1;
  }
}

@media (min-width: 992px) {
  .flowstate-home-shell--desktop .flowstate-home-left-rail-footer {
    grid-column: 1;
    align-self: start;
    position: sticky;
    bottom: var(--flow-home-rail-bottom-gap);
    width: 14.9rem;
    min-width: 14.9rem;
    max-width: 14.9rem;
    z-index: 1;
  }

  .flowstate-home-shell--desktop .flowstate-home-left-rail-footer .flowstate-home-left-rail-summary {
    position: static !important;
    top: auto !important;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu {
    margin-top: 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 0;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu .accordion-button {
    padding: 0.72rem 0.92rem;
    font-size: 0.82rem;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu .accordion-body {
    max-height: 14rem;
    padding: 0.38rem;
    overflow-y: auto;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu .archived-task-lists-grid {
    gap: 0.3rem;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu .archived-task-list-row {
    align-items: center;
    flex-direction: row;
    gap: 0.4rem;
    padding: 0.42rem 0.48rem;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu .archived-task-list-details {
    flex: 1 1 auto;
    flex-direction: row;
    align-items: baseline;
    gap: 0.32rem;
    overflow: hidden;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu .archived-task-list-details strong {
    min-width: 0;
    font-size: 0.82rem;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu .archived-task-list-details span {
    flex: 0 0 auto;
    font-size: 0.68rem;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu .archived-task-list-actions {
    gap: 0.18rem;
  }

  .flowstate-home-shell--desktop .archived-task-lists--side-menu .archived-task-list-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
  }
}

/* Compact task pagination */
.task-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.14rem;
  margin: 0.42rem 0.12rem 0.04rem !important;
}

.task-pagination .task-pagination-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.72rem;
  min-width: 1.72rem;
  height: 1.72rem;
  min-height: 1.72rem;
  margin: 0 !important;
  padding: 0 !important;
  color: #748094;
  background: transparent;
  border: 0;
  border-radius: 0.38rem !important;
  opacity: 0.78;
  transition: color 120ms ease, background-color 120ms ease, opacity 120ms ease;
}

.task-pagination .task-pagination-btn:hover:not(:disabled),
.task-pagination .task-pagination-btn:focus-visible:not(:disabled) {
  color: #34445e;
  background: rgba(91, 111, 145, 0.1);
  opacity: 1;
  outline: none;
}

.task-pagination .task-pagination-btn:disabled {
  cursor: default;
  opacity: 0.24;
}

.task-pagination .task-pagination-text {
  min-width: 2.8rem;
  color: #8490a2 !important;
  font-size: 0.74rem !important;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.page.theme-dark .task-pagination .task-pagination-btn {
  color: #8e99aa;
}

.page.theme-dark .task-pagination .task-pagination-btn:hover:not(:disabled),
.page.theme-dark .task-pagination .task-pagination-btn:focus-visible:not(:disabled) {
  color: #dce4f1;
  background: rgba(255, 255, 255, 0.07);
}

.page.theme-dark .task-pagination .task-pagination-text {
  color: #7f8999 !important;
}

/* Restore clear scope-button feedback in dark mode. */
body .page.theme-dark .task-list-container .task-scope-control .btn-group .btn.btn-outline-primary:hover,
body .page.theme-dark .task-list-container .task-scope-control .btn-group .btn.btn-outline-primary:focus-visible {
  color: #ffffff !important;
  background: var(--theme-accent-soft, rgba(92, 80, 231, 0.3)) !important;
  box-shadow: inset 0 0 0 1px rgba(173, 184, 255, 0.18) !important;
  outline: none;
}

body .page.theme-dark .task-list-container .task-scope-control .btn-group .btn.btn-primary:hover,
body .page.theme-dark .task-list-container .task-scope-control .btn-group .btn.btn-primary:focus-visible {
  color: #ffffff !important;
  filter: brightness(1.1);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16) !important;
  outline: none;
}

/* Scope-bar task settings */
.task-scope-actions {
  gap: 0.45rem;
}

.task-scope-settings-toggle.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  color: #626d7c;
  background: rgba(255, 255, 255, 0.68);
  border: 1px solid rgba(109, 120, 137, 0.28);
  border-radius: 0.52rem;
  box-shadow: none;
}

.task-scope-settings-toggle.btn::after {
  display: none;
}

.task-scope-settings-toggle.btn:hover,
.task-scope-settings-toggle.btn:focus,
.task-scope-settings.show .task-scope-settings-toggle.btn {
  color: #263244;
  background: #ffffff;
  border-color: rgba(78, 94, 116, 0.42);
  box-shadow: 0 0 0 0.15rem rgba(76, 110, 245, 0.14);
}

.task-scope-settings-menu {
  min-width: 13.5rem;
  padding: 0.38rem;
  border-color: rgba(109, 120, 137, 0.22);
  border-radius: 0.55rem;
  box-shadow: 0 0.65rem 1.6rem rgba(29, 40, 58, 0.16);
}

.task-scope-settings-option {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  margin: 0;
  padding: 0.58rem 0.65rem !important;
  border-radius: 0.38rem;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.14s ease, background 0.14s ease;
}

.header .nav-quick-controls {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  pointer-events:auto;
}

.header .nav-quick-control {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2.25rem;
  height:2.25rem;
  padding:0;
  color:rgba(255,255,255,.82);
  border:1px solid rgba(255,255,255,.2);
  border-radius:.58rem;
  background:rgba(255,255,255,.07);
  box-shadow:none;
  cursor:pointer;
  transition:color 130ms ease, border-color 130ms ease, background-color 130ms ease, transform 130ms ease;
}

.header .nav-quick-control:hover,
.header .nav-quick-control:focus-visible {
  color:#fff;
  border-color:rgba(255,255,255,.55);
  background:rgba(255,255,255,.16);
  outline:none;
}

.header .nav-quick-control:active { transform:translateY(1px); }
.header .nav-quick-control.is-active { color:#fff; border-color:rgba(255,255,255,.62); background:var(--theme-accent); }
.header .nav-font-toggle > span { font-size:.72rem; font-weight:850; letter-spacing:-.06em; line-height:1; }

@media (min-width:1200px) {
  .header .nav-quick-controls {
    position:absolute;
    z-index:2;
    top:50%;
    right:7.35rem;
    transform:translateY(-50%);
  }
}

@media (max-width:1199.98px) {
  .header .nav-quick-controls {
    flex:0 0 100%;
    width:100%;
    margin:.4rem 0 .15rem;
  }
}

.task-scope-settings-option + .task-scope-settings-option {
  border-top: 1px solid rgba(109, 120, 137, 0.18);
  border-radius: 0;
}

.task-scope-option-switch {
  position: relative;
  width: 2.25rem;
  height: 1.25rem;
  flex: 0 0 auto;
  border: 1px solid rgba(109, 120, 137, 0.32);
  border-radius: 999px;
  background: #e5e9f0;
  transition: border-color 0.16s ease, background 0.16s ease;
}

.task-scope-option-switch > span {
  position: absolute;
  top: 0.16rem;
  left: 0.16rem;
  width: 0.82rem;
  height: 0.82rem;
  border-radius: 50%;
  background: #7d8797;
  transition: transform 0.16s ease, background 0.16s ease;
}

.task-scope-option-switch.is-on {
  border-color: var(--theme-accent);
  background: var(--theme-accent);
}

.task-scope-option-switch.is-on > span {
  background: #ffffff;
  transform: translateX(0.98rem);
}

.task-scope-settings-option:focus-within {
  outline: 3px solid var(--theme-accent-soft);
  outline-offset: -2px;
}

.page.theme-dark .task-scope-settings-toggle.btn {
  color: #c8d0df;
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(166, 178, 200, 0.24);
}

.page.theme-dark .task-scope-settings-toggle.btn:hover,
.page.theme-dark .task-scope-settings-toggle.btn:focus,
.page.theme-dark .task-scope-settings.show .task-scope-settings-toggle.btn {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.12);
}

.page.theme-dark .task-scope-settings-menu {
  color: #e8edf7;
  background: #252a35;
  border-color: #3b4352;
}

.page.theme-dark .task-scope-settings-option {
  color: #e8edf7;
}

.page.theme-dark .task-scope-settings-option + .task-scope-settings-option {
  border-top-color: #3b4352;
}

.page.theme-dark .task-scope-option-switch {
  border-color: rgba(166, 178, 200, 0.28);
  background: #353c49;
}

.page.theme-dark .task-scope-option-switch > span {
  background: #aeb8ca;
}

.page.theme-dark .task-scope-option-switch.is-on {
  border-color: var(--theme-accent);
  background: var(--theme-accent);
}

.page.theme-dark .task-scope-option-switch.is-on > span {
  background: #ffffff;
}

.page.theme-dark .task-scope-settings-option:hover,
.page.theme-dark .task-scope-settings-option:focus {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
}

/* Match the active theme-mode glow on Add Task controls. */
.taskform-add-btn:not(.journal-add-btn),
.task-composer-card-btn.habit-tracker-add-btn {
  box-shadow: var(--theme-avatar-shadow) !important;
  transition: transform 120ms ease, box-shadow 160ms ease, filter 140ms ease;
}

.taskform-add-btn:not(.journal-add-btn):hover:not(:disabled),
.taskform-add-btn:not(.journal-add-btn):focus-visible:not(:disabled),
.task-composer-card-btn.habit-tracker-add-btn:hover:not(:disabled),
.task-composer-card-btn.habit-tracker-add-btn:focus-visible:not(:disabled) {
  box-shadow: var(--theme-avatar-shadow) !important;
  filter: brightness(1.06);
  transform: translateY(-1px);
}

.taskform-add-btn:not(.journal-add-btn):disabled,
.task-composer-card-btn.habit-tracker-add-btn:disabled {
  box-shadow: none !important;
}

/* High-contrast selected task list in dark mode. */
body .page.theme-dark .task-list-container .nav-tabs .nav-item:not(:last-child) .nav-link.active {
  color: #ffffff !important;
  background: linear-gradient(90deg, var(--theme-accent-strong), var(--theme-accent)) !important;
  box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.82), 0 6px 16px var(--theme-accent-soft) !important;
  opacity: 1 !important;
}

body .page.theme-dark .task-list-container .nav-tabs .nav-item:not(:last-child) .nav-link.active .tasklist-name {
  color: #ffffff !important;
  font-weight: 700;
  opacity: 1 !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
}

body .page.theme-dark .task-list-container .nav-tabs .nav-item:not(:last-child) .nav-link.active .tasklist-count-badge {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.2) !important;
  opacity: 1 !important;
}

/* Agenda preview polish: softer dark surfaces, clearer hierarchy, calmer controls. */
body.flowstate-home-active .page.theme-dark {
  background: #12141a !important;
}

body.flowstate-home-active .page.theme-dark .header .navbar {
  margin: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(42, 46, 58, 0.95) !important;
  border-radius: 0 !important;
  min-height: 3.9rem;
  padding: 0.2rem 1.25rem !important;
  background: linear-gradient(180deg, #1b1f2a 0%, #171a23 100%) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.26);
}

body.flowstate-home-active .page.theme-dark .header .navbar-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #f3f5fb !important;
  letter-spacing: -0.02em;
}

body.flowstate-home-active .page.theme-dark .header .navbar-brand::after {
  opacity: 1;
  margin-left: 0.15rem;
  padding: 0.12rem 0.4rem;
  border-radius: 0.34rem;
  border: 1px solid rgba(223, 229, 255, 0.26);
  background: rgba(100, 114, 245, 0.22);
  color: #e9ecff;
}

body.flowstate-home-active .page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger) {
  width: auto;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0.32rem 0.18rem;
  padding: 0.62rem 0.92rem !important;
  border: 1px solid transparent;
  border-radius: 0.85rem;
  color: rgba(235, 239, 248, 0.76) !important;
  background: transparent !important;
  transition: background-color 140ms ease, color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

body.flowstate-home-active .page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger) > svg {
  width: 1rem;
  height: 1rem;
  opacity: 0.92;
  filter: none !important;
}

body.flowstate-home-active .page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger):hover,
body.flowstate-home-active .page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger):focus {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.04);
}

body.flowstate-home-active .page.theme-dark .header .navbar-dark .navbar-nav > .nav-link.active:not(.profile-menu-trigger) {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell {
  background: #12141a !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .top-journal-mini,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .year-review-card {
  background: #1a1d26 !important;
  border: 1px solid #2a2e3a !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs {
  border-radius: 0.78rem;
  width: 14.85rem;
  min-width: 14.85rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs::before {
  content: "My Lists";
  color: #7e8492;
  opacity: 0.78;
  padding: 1.05rem 0.94rem 0.48rem;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs .nav-link {
  color: #cfd5e2 !important;
  min-height: 2.92rem;
  padding: 0.58rem 0.82rem !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs .nav-link:hover {
  background: rgba(255, 255, 255, 0.04) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs .nav-link.active {
  background: rgba(100, 114, 245, 0.14) !important;
  color: #ffffff !important;
  box-shadow: inset 0 0 0 1px rgba(100, 114, 245, 0.14);
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .tasklist-count-badge {
  background: rgba(255, 255, 255, 0.07) !important;
  color: #d7def0 !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .nav-tabs .nav-link.active .tasklist-count-badge {
  background: rgba(100, 114, 245, 0.18) !important;
  color: #ffffff !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li {
  background: transparent !important;
  border-bottom: 1px solid rgba(126, 134, 149, 0.18) !important;
  padding: 0.56rem 0.62rem !important;
  min-height: 3.55rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li:hover {
  background: rgba(255, 255, 255, 0.035) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-control .btn-group {
  border: 1px solid #2a2e3a !important;
  border-radius: 999px !important;
  background: #20232e !important;
  box-shadow: none !important;
  padding: 0.18rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-control .btn-group .btn {
  border-radius: 999px !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-control .btn-group .btn.btn-primary {
  box-shadow: var(--theme-avatar-shadow);
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-stats-stack {
  display: grid;
  gap: 0.58rem;
  margin-top: 0.62rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.52rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-card,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-week-card {
  border-radius: 0.72rem;
  background: #20232e;
  border: 1px solid #2a2e3a;
  box-shadow: none;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-label,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-week-title,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-selected-day-label {
  color: #7f899d !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-value {
  color: #f3f6ff !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-day,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-value,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-sub {
  color: #c7cfdf !important;
}

/* Right rail surfaces should blend with the main content area. */
body.flowstate-home-active .page.theme-dark .task-sidebar-column.task-sidebar-column--persistent,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-home-left-rail-footer,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-home-right-rail {
  background: #222220 !important;
  border-color: transparent !important;
}

body.flowstate-home-active .page.theme-dark .task-sidebar-column.task-sidebar-column--persistent {
  border-left: 0 !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-home-left-rail-footer {
  border-top: 1px solid rgba(126, 134, 149, 0.18);
}

/* Flatten the calendar panel in the right rail. */
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__navigation {
  margin-bottom: 0.35rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__tile {
  min-height: 2.06rem;
}

body.flowstate-home-active .page:not(.theme-dark) .task-sidebar-column.task-sidebar-column--persistent,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-home-left-rail-footer,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-home-right-rail {
  background: #eef2fb !important;
  border-color: transparent !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-sidebar-column.task-sidebar-column--persistent {
  border-left: 0 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .flowstate-home-left-rail-footer {
  border-top: 1px solid rgba(148, 163, 184, 0.18);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .sidebar-calendar {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__navigation {
  margin-bottom: 0.35rem;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__tile {
  min-height: 2.06rem;
}

/* Add-task composer: closer to the mock-up's one-row control bar. */
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) {
  margin-top: 0.9rem;
  padding: 0.8rem 0.82rem;
  border: 1px solid #2a2e3a;
  border-radius: 12px;
  background: #1a1d26;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-copy {
  display: none;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-form {
  display: flex;
  align-items: center;
  gap: 0.58rem;
  flex-wrap: nowrap;
  width: 100%;
  min-width: 0;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 2.9rem;
  padding: 0.72rem 0.95rem !important;
  border-radius: 0.75rem;
  background: #111923 !important;
  border: 1px solid #2a2e3a !important;
  color: #e9eaf0 !important;
  box-shadow: none !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-input::placeholder {
  color: #8b8d9c !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-chip {
  flex: 0 0 auto;
  min-height: 2.9rem;
  padding: 0.66rem 0.95rem;
  border-radius: 0.75rem;
  border: 1px solid #2a2e3a;
  background: rgba(255, 255, 255, 0.02);
  color: #d7dbea;
  font-size: 0.85rem;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: none;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-chip:hover,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-chip:focus-visible {
  background: rgba(255, 255, 255, 0.05);
  color: #ffffff;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-chip-today {
  border-color: rgba(100, 114, 245, 0.38);
  color: #dce1ff;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-btn {
  flex: 0 0 auto;
  min-height: 2.9rem;
  padding: 0.66rem 1.15rem !important;
  border-radius: 0.75rem !important;
  font-size: 0.92rem;
  font-weight: 700;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-btn:hover,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-btn:focus-visible {
  transform: translateY(-1px);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) {
  margin-top: 0.9rem;
  padding: 0.8rem 0.82rem;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-copy {
  display: none;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-form {
  display: flex;
  align-items: center;
  gap: 0.58rem;
  flex-wrap: nowrap;
  width: 100%;
  min-width: 0;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 2.9rem;
  padding: 0.72rem 0.95rem !important;
  border-radius: 0.75rem;
  background: #f8fafc !important;
  border: 1px solid rgba(148, 163, 184, 0.28) !important;
  color: #1f2a44 !important;
  box-shadow: none !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-input::placeholder {
  color: #7b8798 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-chip {
  flex: 0 0 auto;
  min-height: 2.9rem;
  padding: 0.66rem 0.95rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(148, 163, 184, 0.28);
  background: #ffffff;
  color: #526074;
  font-size: 0.85rem;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: none;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-chip:hover,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-chip:focus-visible {
  background: #f8fafc;
  color: #1f2a44;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-chip-today {
  border-color: rgba(100, 114, 245, 0.36);
  color: #5561d8;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer:not(.journal-composer-card) .task-composer-card-btn {
  flex: 0 0 auto;
  min-height: 2.9rem;
  padding: 0.66rem 1.15rem !important;
  border-radius: 0.75rem !important;
  font-size: 0.92rem;
  font-weight: 700;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card {
  margin-top: 0.9rem;
  padding: 0.8rem 0.82rem;
  border: 1px solid #2a2e3a;
  border-radius: 12px;
  background: #1a1d26;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-copy {
  display: none;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-form {
  display: flex;
  align-items: center;
  gap: 0.58rem;
  flex-wrap: nowrap;
  width: 100%;
  min-width: 0;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 2.9rem;
  padding: 0.72rem 0.95rem !important;
  border-radius: 0.75rem;
  background: #111923 !important;
  border: 1px solid #2a2e3a !important;
  color: #e9eaf0 !important;
  box-shadow: none !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-input::placeholder {
  color: #8b8d9c !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-btn {
  flex: 0 0 auto;
  min-width: 7rem;
  min-height: 2.9rem;
  padding: 0.66rem 1.15rem !important;
  border-radius: 0.75rem !important;
  font-size: 0.92rem;
  font-weight: 700;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-btn:hover,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-btn:focus-visible {
  transform: translateY(-1px);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card {
  margin-top: 0.9rem;
  padding: 0.8rem 0.82rem;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-copy {
  display: none;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-form {
  display: flex;
  align-items: center;
  gap: 0.58rem;
  flex-wrap: nowrap;
  width: 100%;
  min-width: 0;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 2.9rem;
  padding: 0.72rem 0.95rem !important;
  border-radius: 0.75rem;
  background: #f8fafc !important;
  border: 1px solid rgba(148, 163, 184, 0.28) !important;
  color: #1f2a44 !important;
  box-shadow: none !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-input::placeholder {
  color: #7b8798 !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-btn {
  flex: 0 0 auto;
  min-width: 7rem;
  min-height: 2.9rem;
  padding: 0.66rem 1.15rem !important;
  border-radius: 0.75rem !important;
  font-size: 0.92rem;
  font-weight: 700;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-btn:hover,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-composer-card.habit-tracker-composer.journal-composer-card .task-composer-card-btn:focus-visible {
  transform: translateY(-1px);
}

/* Mock-up polish pass: bring the app a touch closer to the preview. */
body.flowstate-home-active .page.theme-dark {
  background: #12141a !important;
}

body.flowstate-home-active .page.theme-dark .header .navbar {
  min-height: 3.8rem;
  padding: 0.35rem 1.3rem !important;
  background: linear-gradient(180deg, #1b1f3d 0%, #171a2c 100%) !important;
  border-bottom: 1px solid #2a2e3a !important;
  box-shadow: none;
}

body.flowstate-home-active .page.theme-dark .header .navbar-brand {
  font-size: 1rem;
  letter-spacing: -0.02em;
}

body.flowstate-home-active .page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger) {
  margin: 0.22rem 0.14rem;
  padding: 0.56rem 0.88rem !important;
  border-radius: 0.78rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell {
  background: #12141a !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-desktop-layout {
  gap: 0.7rem;
  grid-template-columns: minmax(0, 1fr) 19.7rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region {
  gap: 0.7rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region::before {
  width: 14.55rem;
  background: #1a1d26;
  border-right: 1px solid #2a2e3a;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs {
  width: 14.55rem;
  min-width: 14.55rem;
  max-width: 14.55rem;
  border-radius: 0.72rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs::before {
  padding-top: 1.18rem;
  padding-bottom: 0.4rem;
  color: #8b8d9c;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .top-journal-mini,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .year-review-card {
  background: #1a1d26 !important;
  border-color: #2a2e3a !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .top-journal-mini {
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24) !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box .accordion-body,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-main-column > .top-journal-mini .accordion-body {
  padding-left: 0.62rem;
  padding-right: 0.62rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-control {
  padding-left: 0.42rem !important;
  padding-right: 0.42rem !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-control .task-scope-selected-day-label {
  font-size: 0.78rem;
  letter-spacing: 0.13em;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-control .task-scope-selected-day-date {
  font-size: 22px;
  line-height: 1.15;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .task-scope-control .btn-group {
  background: #20232e !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar {
  margin-bottom: 0.85rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__navigation {
  margin-bottom: 0.22rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__navigation button {
  color: #8b8d9c !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .sidebar-calendar .react-calendar__tile {
  min-height: 2rem;
  border-radius: 0.42rem;
  color: #bfc5d3 !important;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-stats-wrapper {
  margin-bottom: 0.9rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-grid {
  gap: 0.44rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-card {
  min-height: 5rem;
  padding: 0.58rem 0.64rem 0.6rem;
  border-radius: 0.62rem;
  background: #20232e;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-kpi-value {
  font-size: 2.08rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-focus-week-card {
  padding: 0.62rem 0.66rem 0.7rem;
  border-radius: 0.62rem;
  background: #20232e;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .year-review-card {
  padding: 0.66rem 0.7rem 0.6rem;
  border-radius: 0.62rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .year-review-title {
  font-size: 0.74rem;
  letter-spacing: 0.08em;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .year-review-best-badge {
  padding: 0.34rem 0.48rem;
  font-size: 0.8rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .year-review-month-labels {
  gap: 0.28rem;
  margin-bottom: 0.22rem;
}

body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .year-review-month-labels > span {
  font-size: 0.61rem;
  letter-spacing: 0.06em;
}

body.flowstate-home-active .page.theme-dark .task-sidebar-column.task-sidebar-column--persistent,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-home-left-rail-footer,
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .flowstate-home-right-rail {
  background: #1a1d26 !important;
}

body.flowstate-home-active .page.theme-dark .task-sidebar-column.task-sidebar-column--persistent {
  border-left-color: #2a2e3a !important;
}

body.flowstate-home-active .page:not(.theme-dark) {
  background: #f5f7fc !important;
}

body.flowstate-home-active .page:not(.theme-dark) .header .navbar {
  border-bottom: 1px solid rgba(148, 163, 184, 0.28) !important;
  box-shadow: none;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell {
  background: #f5f7fc !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-tabs-region::before {
  background: #ffffff;
  border-right-color: rgba(148, 163, 184, 0.22);
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-main-column > .dashboard-box,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .task-main-column > .top-journal-mini,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .sidebar-calendar,
body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .year-review-card {
  background: #ffffff !important;
  border-color: rgba(148, 163, 184, 0.28) !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06) !important;
}

/* Keep light/dark changes synchronized across the page, including the rails. */
html.theme-transition-fallback .page,
html.theme-transition-fallback .page *,
html.theme-transition-fallback .page *::before,
html.theme-transition-fallback .page *::after {
  transition-property: background-color, color, border-color, box-shadow, fill, stroke, opacity, text-decoration-color, outline-color, filter !important;
  transition-duration: 900ms !important;
  transition-timing-function: cubic-bezier(0.45, 0, 0.55, 1) !important;
  transition-delay: 0ms !important;
}

html.theme-transitioning:not(.theme-transition-fallback) .page,
html.theme-transitioning:not(.theme-transition-fallback) .page *,
html.theme-transitioning:not(.theme-transition-fallback) .page *::before,
html.theme-transitioning:not(.theme-transition-fallback) .page *::after {
  transition: none !important;
}

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 900ms;
  animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1);
}

.theme-swatch-spectrum {
  background: linear-gradient(135deg, #ef4444, #f59e0b, #84cc16, #06b6d4, #3b82f6, #8b5cf6, #ec4899, #ef4444);
  background-size: 300% 300%;
  animation: theme-spectrum-swatch 5s linear infinite;
}

@property --theme-spectrum-shift {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}

html[data-theme-effect="spectrum"] {
  animation: theme-spectrum-wave 24s linear infinite;
}

@keyframes theme-spectrum-wave {
  from { --theme-spectrum-shift: 0; }
  to { --theme-spectrum-shift: 360; }
}

@keyframes theme-spectrum-swatch {
  from { background-position: 0% 50%; }
  to { background-position: 300% 50%; }
}

@media (prefers-reduced-motion: reduce) {
  html.theme-transition-fallback .page,
  html.theme-transition-fallback .page *,
  html.theme-transition-fallback .page *::before,
  html.theme-transition-fallback .page *::after {
    transition-duration: 1ms !important;
  }

  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation-duration: 1ms;
  }

  html[data-theme-effect="spectrum"],
  .theme-swatch-spectrum {
    animation: none;
  }
}

/* Use the same finalized navbar treatment on every route. */
.page.theme-dark .header .navbar {
  margin: 0 !important;
  min-height: 3.8rem;
  padding: 0.35rem 1.3rem !important;
  border: 0 !important;
  border-bottom: 1px solid #2a2e3a !important;
  border-radius: 0 !important;
  background: linear-gradient(180deg, #1b1f3d 0%, #171a2c 100%) !important;
  box-shadow: none;
}

.page.theme-dark .header .navbar-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #f3f5fb !important;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.page.theme-dark .header .navbar-brand::after {
  content: "PRO";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  margin-left: 0.15rem;
  padding: 0.12rem 0.4rem;
  border: 1px solid rgba(223, 229, 255, 0.26);
  border-radius: 0.34rem;
  background: rgba(100, 114, 245, 0.22);
  color: #e9ecff;
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
}

.page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  gap: 0.45rem;
  margin: 0.22rem 0.14rem;
  padding: 0.56rem 0.88rem !important;
  border: 1px solid transparent;
  border-radius: 0.78rem;
  background: transparent !important;
  color: rgba(235, 239, 248, 0.76) !important;
  font-size: 1.02rem;
  font-weight: 500;
  opacity: 1;
  text-shadow: none;
}

.page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger) > svg {
  width: 1rem;
  height: 1rem;
  opacity: 0.92;
  filter: none !important;
}

.page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger):hover,
.page.theme-dark .header .navbar-dark .navbar-nav > .nav-link:not(.profile-menu-trigger):focus {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.04);
}

.page.theme-dark .header .navbar-dark .navbar-nav > .nav-link.active:not(.profile-menu-trigger) {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.page.theme-dark .header .profile-menu-trigger.profile-menu-trigger-auth .profile-menu-avatar {
  width: 2.18rem;
  height: 2.18rem;
  background: rgba(149, 160, 246, 0.44);
  border: 1px solid rgba(223, 229, 255, 0.34);
  color: #f5f8ff;
  box-shadow: none;
}

.page:not(.theme-dark) .header .navbar {
  min-height: 3.8rem;
  padding: 0.35rem 1.3rem !important;
  border-bottom: 1px solid rgba(148, 163, 184, 0.28) !important;
  border-radius: 0 !important;
  box-shadow: none;
}

/* Year in Review card: compact dark activity summary. */
#root .page .year-review-card {
  min-height: 0;
  margin-top: 0;
  padding: 1rem 0.95rem 0.9rem !important;
  border: 1px solid #2d3341 !important;
  border-radius: 0.9rem !important;
  background: #191c25 !important;
  box-shadow: 0 12px 28px rgba(6, 9, 16, 0.2) !important;
}

#root .page .year-review-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 1.4rem;
  margin-bottom: 0.7rem;
}

#root .page .year-review-title {
  display: block;
  color: #7785a8 !important;
  font-size: 0.68rem !important;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.11em !important;
  text-align: left;
  text-transform: uppercase;
}

#root .page .year-review-year-badge {
  position: static;
  transform: none;
  padding: 0.28rem 0.58rem;
  border: 0 !important;
  border-radius: 0.5rem;
  background: #1f2330 !important;
  color: #929db9 !important;
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1;
}

#root .page .year-review-best-badge {
  width: 100%;
  min-height: 2.55rem;
  margin: 0 0 0.75rem;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  color: #929bb2 !important;
  font-size: 0.83rem !important;
  font-weight: 400;
  line-height: 1.45;
}

#root .page .year-review-best-badge strong {
  color: #ffae57 !important;
  font-weight: 700;
}

#root .page .year-review-best-badge.is-loading {
  color: #7f899f !important;
}

#root .page .year-review-heatmap-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(5, minmax(0, 1fr));
  gap: 0.2rem;
}

#root .page .year-review-cell {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  border: 0 !important;
  border-radius: 0.14rem;
  opacity: 1;
  transform: none;
}

#root .page .year-review-cell.level-0 { background: #202431 !important; }
#root .page .year-review-cell.level-1 { background: #2d386b !important; }
#root .page .year-review-cell.level-2 { background: #39498e !important; }
#root .page .year-review-cell.level-3 { background: #485cba !important; }
#root .page .year-review-cell.level-4 { background: #586ddb !important; }
#root .page .year-review-cell.level-5 { background: #7182ff !important; }

#root .page .year-review-cell.is-loading {
  background: #242936 !important;
  animation: year-review-cell-pulse 1.35s ease-in-out infinite;
}

#root .page .year-review-scale {
  display: flex;
  justify-content: space-between;
  margin-top: 0.55rem;
  color: #667089 !important;
  font-size: 0.66rem;
  font-weight: 500;
  line-height: 1;
}

@media (prefers-reduced-motion: reduce) {
  #root .page .year-review-cell.is-loading {
    animation: none;
  }
}
/* Standalone Journal workspace shell
   Keeps Journal independent from the legacy Task accordion/grid layout. */
.journal-inner-page {
  min-height: calc(100vh - 3.5rem);
  background: #f5f7fb;
}

.journal-page {
  --journal-canvas: #f5f7fb;
  --journal-surface: #ffffff;
  --journal-surface-subtle: #f7f9fc;
  --journal-border: rgba(127, 143, 168, 0.24);
  --journal-border-soft: rgba(127, 143, 168, 0.15);
  --journal-text: #1d2637;
  --journal-muted: #66758e;
  width: 100%;
  min-height: calc(100vh - 3.5rem);
  padding: 1.35rem clamp(1rem, 2vw, 2rem) 2rem;
  color: var(--journal-text);
  background: var(--journal-canvas);
}

.journal-page > .journal-page-hero,
.journal-page > .journal-workspace,
.journal-page-loading-state > .journal-page-loading {
  width: min(100%, 1680px);
  margin-right: auto;
  margin-left: auto;
}

.journal-page-loading-state {
  display: grid;
  place-items: start stretch;
}

.journal-page-loading-state > .journal-page-loading {
  margin-top: 1rem;
}

.journal-page-hero {
  margin-bottom: 1rem;
  background:
    linear-gradient(135deg, hsla(var(--theme-hue), 78%, 58%, 0.08), rgba(255, 255, 255, 0.96)),
    var(--journal-surface);
}

.journal-workspace {
  display: grid;
  grid-template-columns: minmax(12.5rem, 14.5rem) minmax(0, 1fr);
  align-items: start;
  gap: 1rem;
  min-width: 0;
}

.journal-workspace > .journal-workspace-tabs {
  grid-column: 1;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  margin: 0;
  padding: 0.65rem;
  border: 1px solid var(--journal-border);
  border-radius: 0.9rem;
  background: var(--journal-surface);
  box-shadow: 0 10px 24px rgba(39, 58, 92, 0.06);
}

.journal-workspace > .journal-workspace-tabs::before {
  content: "Journals";
  display: block;
  padding: 0.35rem 0.55rem 0.5rem;
  color: var(--journal-muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.journal-workspace-tabs .nav-item {
  width: 100%;
  margin: 0;
}

.journal-workspace-tabs .nav-link {
  width: 100%;
  min-height: 2.65rem;
  padding: 0.52rem 0.58rem;
  border: 1px solid transparent !important;
  border-radius: 0.62rem !important;
  color: var(--journal-muted);
  background: transparent;
  text-align: left;
  transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease;
}

.journal-workspace-tabs .nav-link:hover {
  color: var(--journal-text);
  border-color: var(--journal-border-soft) !important;
  background: var(--journal-surface-subtle);
}

.journal-workspace-tabs .nav-link.active {
  color: var(--journal-text);
  border-color: hsla(var(--theme-hue), 72%, 58%, 0.24) !important;
  background: hsla(var(--theme-hue), 76%, 58%, 0.12);
  box-shadow: inset 3px 0 0 var(--theme-accent);
}

.journal-workspace-tabs .tasklist-title-left {
  min-width: 0;
}

.journal-workspace-tabs .tasklist-count-badge {
  flex: 0 0 auto;
  min-width: 1.55rem;
  padding: 0.28rem 0.4rem;
  border: 0;
  color: var(--journal-muted);
  background: var(--journal-surface-subtle);
}

.journal-workspace-tabs .nav-link.active .tasklist-count-badge {
  color: #ffffff;
  background: var(--theme-accent);
  box-shadow: 0 0 10px hsla(var(--theme-hue), 78%, 58%, 0.28);
}

.journal-workspace-tabs .tasklist-name {
  min-width: 0;
  color: inherit;
  font-weight: 600;
}

.journal-workspace > .tab-content {
  grid-column: 2;
  min-width: 0;
  margin: 0;
  padding: 0;
}

.journal-workspace > .tab-content > .tab-pane {
  min-width: 0;
}

.journal-workspace-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16.5rem, 19rem);
  align-items: start;
  gap: 1rem;
  min-width: 0;
}

.journal-workspace-main,
.journal-workspace-sidebar {
  min-width: 0;
}

.journal-workspace-sidebar {
  position: sticky;
  top: 4.4rem;
}

.journal-page-editor-card,
.journal-page-insights-card,
.journal-page-calendar-card {
  background: var(--journal-surface);
  border-color: var(--journal-border);
}

.journal-page-editor-card {
  margin: 0;
}

.journal-page-editor-card-body {
  padding: 0.25rem 0.9rem 0.75rem;
}

.journal-page-editor-card-body .journal-mini > .mt-2 {
  margin-top: 0 !important;
}

.journal-page-editor-card-body .journal-mini ul.limit-field {
  margin-bottom: 0;
  padding-left: 0;
}

.journal-page-editor-card-body .journal-form-inline {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0.75rem 0 0 !important;
  padding: 0.75rem 0 0 !important;
  border-top: 1px solid var(--journal-border-soft);
}

.journal-page-editor-card-body .journal-inline-input {
  flex: 1 1 auto;
  min-width: 0;
}

.journal-page-editor-card-body .journal-add-btn {
  flex: 0 0 auto;
  margin: 0 !important;
}

.journal-lists-mobile-toggle {
  display: none;
}

.page.theme-dark .journal-inner-page,
.page.theme-dark .journal-page {
  --journal-canvas: #12141a;
  --journal-surface: #1a1d26;
  --journal-surface-subtle: #20232e;
  --journal-border: rgba(136, 145, 163, 0.24);
  --journal-border-soft: rgba(136, 145, 163, 0.14);
  --journal-text: #eef2fb;
  --journal-muted: #9ca5b9;
  background: var(--journal-canvas) !important;
}

.page.theme-dark .journal-page-hero {
  border-color: var(--journal-border);
  background:
    linear-gradient(135deg, hsla(var(--theme-hue), 72%, 56%, 0.15), rgba(26, 29, 38, 0.96)),
    var(--journal-surface);
  box-shadow: none;
}

.page.theme-dark .journal-workspace > .journal-workspace-tabs {
  border-color: var(--journal-border);
  background: var(--journal-surface);
  box-shadow: none;
}

.page.theme-dark .journal-workspace-tabs .nav-link {
  color: var(--journal-muted);
}

.page.theme-dark .journal-workspace-tabs .nav-link:hover {
  color: var(--journal-text);
  border-color: var(--journal-border-soft) !important;
  background: var(--journal-surface-subtle);
}

.page.theme-dark .journal-workspace-tabs .nav-link.active {
  color: var(--journal-text);
  border-color: hsla(var(--theme-hue), 72%, 62%, 0.26) !important;
  background: hsla(var(--theme-hue), 72%, 58%, 0.16);
}

.page.theme-dark .journal-workspace-tabs .tasklist-count-badge {
  color: var(--journal-muted);
  background: #282c38;
}

.page.theme-dark .journal-workspace-tabs .nav-link.active .tasklist-count-badge {
  color: #ffffff;
  background: var(--theme-accent);
}

.page.theme-dark .journal-page-editor-card,
.page.theme-dark .journal-page-insights-card,
.page.theme-dark .journal-page-calendar-card {
  border-color: var(--journal-border) !important;
  background: var(--journal-surface) !important;
}

.page.theme-dark .journal-page-editor-card-header {
  border-color: var(--journal-border-soft);
  background: var(--journal-surface-subtle);
}

.page.theme-dark .journal-page-insight-item,
.page.theme-dark .journal-page-insight-note,
.page.theme-dark .journal-mini-empty {
  border-color: var(--journal-border-soft);
  background: var(--journal-surface-subtle);
}

.page.theme-dark .journal-page-editor-card-body .journal-form-inline {
  border-color: var(--journal-border-soft);
}

@media (max-width: 1199.98px) {
  .journal-workspace-panel {
    grid-template-columns: minmax(0, 1fr) 16.5rem;
  }
}

@media (max-width: 991.98px) {
  .journal-inner-page,
  .journal-page {
    min-height: calc(100vh - 3.5rem);
  }

  .journal-page {
    padding: 1rem 0.85rem 1.5rem;
  }

  .journal-workspace {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
  }

  .journal-lists-mobile-toggle {
    grid-column: 1;
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    min-height: 3.65rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--journal-border);
    border-radius: 0.8rem;
    color: var(--journal-text);
    background: var(--journal-surface);
    text-align: left;
  }

  .journal-lists-mobile-toggle-text {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-width: 0;
  }

  .journal-lists-mobile-toggle-icon {
    color: var(--theme-accent);
  }

  .journal-lists-mobile-toggle-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
  }

  .journal-lists-mobile-toggle-label {
    color: var(--journal-muted);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  .journal-lists-mobile-toggle-value {
    overflow: hidden;
    color: var(--journal-text);
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .journal-workspace > .journal-workspace-tabs {
    grid-column: 1;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.4rem;
  }

  .journal-workspace > .journal-workspace-tabs.journal-lists-collapsed {
    display: none;
  }

  .journal-workspace-tabs::before {
    width: 100%;
  }

  .journal-workspace-tabs .nav-item {
    width: auto;
    max-width: 100%;
    flex: 1 1 12rem;
  }

  .journal-workspace > .tab-content {
    grid-column: 1;
  }

  .journal-workspace-panel {
    grid-template-columns: minmax(0, 1fr);
  }

  .journal-workspace-sidebar {
    position: static;
  }

  .journal-page-insights-card {
    margin-top: 0.75rem;
  }
}

@media (max-width: 640px) {
  .journal-page-hero {
    padding: 0.95rem;
  }

  .journal-page-hero-copy h2 {
    font-size: 1.55rem;
  }

  .journal-page-hero-copy p {
    font-size: 0.92rem;
    line-height: 1.5;
  }

  .journal-scope-control {
    align-items: flex-start !important;
    flex-direction: column;
    gap: 0.75rem;
  }

  .journal-page-editor-card-body {
    padding: 0.25rem 0.65rem 0.65rem;
  }

  .journal-page-editor-card-body .journal-form-inline {
    align-items: stretch;
    flex-direction: column;
  }

  .journal-page-editor-card-body .journal-add-btn {
    width: 100%;
  }
}



/* Light Year in Review palette; the compact component above defaults to dark. */
#root .page:not(.theme-dark) .year-review-card {
  border-color: #d9e0eb !important;
  background: #ffffff !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.07) !important;
}

#root .page:not(.theme-dark) .year-review-title {
  color: #607096 !important;
}

#root .page:not(.theme-dark) .year-review-year-badge {
  border: 1px solid #e0e6ef !important;
  background: #f2f5fa !important;
  color: #596985 !important;
}

#root .page:not(.theme-dark) .year-review-best-badge {
  color: #5f6b7e !important;
}

#root .page:not(.theme-dark) .year-review-best-badge strong {
  color: #b45f13 !important;
}

#root .page:not(.theme-dark) .year-review-best-badge.is-loading {
  color: #7b8799 !important;
}

#root .page:not(.theme-dark) .year-review-cell.level-0 {
  background: #edf1f7 !important;
}

#root .page:not(.theme-dark) .year-review-cell.level-1 {
  background: hsla(var(--theme-hue), 78%, 56%, 0.16) !important;
}

#root .page:not(.theme-dark) .year-review-cell.level-2 {
  background: hsla(var(--theme-hue), 78%, 55%, 0.3) !important;
}

#root .page:not(.theme-dark) .year-review-cell.level-3 {
  background: hsla(var(--theme-hue), 76%, 53%, 0.48) !important;
}

#root .page:not(.theme-dark) .year-review-cell.level-4 {
  background: hsla(var(--theme-hue), 74%, 51%, 0.68) !important;
}

#root .page:not(.theme-dark) .year-review-cell.level-5 {
  background: var(--theme-accent) !important;
}

#root .page:not(.theme-dark) .year-review-cell.is-loading {
  background: #e7ebf2 !important;
}

#root .page:not(.theme-dark) .year-review-scale {
  color: #718096 !important;
}

/* Keep account menus above sticky calendars and page panels. */
.header {
  position: relative;
  z-index: 1300;
}

.header .navbar,
.header .navbar-collapse,
.header .navbar-nav,
.header .navbar-nav > .nav-item.dropdown {
  overflow: visible !important;
}

.header .profile-menu-dropdown {
  z-index: 1310 !important;
}

/* Selected-day task loading state. */
.task-list-loading-region {
  min-height: 5.25rem;
}

.task-day-loading-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.25rem;
  padding: 0.65rem 1rem;
  animation: task-loading-appear 320ms ease-out both;
}

.task-day-loading-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.72rem;
  padding: 0.65rem 1rem 0.65rem 0.78rem;
  border: 1px solid hsla(var(--theme-hue), 76%, 58%, 0.24);
  border-radius: 999px;
  background: var(--theme-accent-surface);
  box-shadow: 0 8px 24px hsla(var(--theme-hue), 70%, 35%, 0.1);
}

.task-day-loading-spinner.spinner-border {
  width: 1.85rem;
  height: 1.85rem;
  margin: 0;
  border-width: 0.19rem;
  color: var(--theme-accent);
  filter: drop-shadow(0 0 0.35rem var(--theme-accent-soft));
  animation-duration: 1.05s;
}

.task-day-loading-copy {
  color: var(--theme-selector-text);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

@keyframes task-loading-appear {
  from { opacity: 0; transform: translateY(3px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .task-day-loading-indicator {
    animation: none;
  }
}

/* Desktop task-list rail collapse control. */
@media (min-width: 992px) {
  .flowstate-home-shell--desktop .flowstate-home-tabs-region {
    position: relative;
    transition: grid-template-columns 180ms ease;
  }

  .flowstate-home-shell--desktop .flowstate-home-tabs-region > .task-tabs {
    grid-column: 1;
    grid-row: 1;
  }

  .flowstate-home-shell--desktop .flowstate-home-tabs-region > .tab-content {
    grid-column: 2;
    grid-row: 1;
  }

  .flowstate-home-shell--desktop .task-list-rail-toggle {
    position: absolute;
    top: 0.82rem;
    left: calc(14.9rem - 1.125rem);
    z-index: 12;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 1px solid rgba(126, 134, 149, 0.42);
    border-radius: 999px;
    background: #242834;
    color: #cbd3e5;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24);
    cursor: pointer;
    transition: left 180ms ease, background-color 140ms ease, color 140ms ease, border-color 140ms ease;
  }

  .flowstate-home-shell--desktop .task-list-rail-toggle:hover {
    border-color: rgba(132, 147, 255, 0.72);
    background: #30364a;
    color: #ffffff;
  }

  .flowstate-home-shell--desktop .task-list-rail-toggle:focus-visible {
    outline: 3px solid rgba(108, 122, 255, 0.38);
    outline-offset: 2px;
  }

  body.flowstate-home-active .page.theme-dark .flowstate-home-shell--desktop .flowstate-home-tabs-region:not(.is-task-list-rail-collapsed) .task-list-rail-toggle {
    left: calc(14.55rem - 1.125rem);
  }

  .flowstate-home-shell--desktop .flowstate-home-tabs-region.is-task-list-rail-collapsed {
    grid-template-columns: 3rem minmax(0, 1fr) !important;
    min-height: calc(100dvh - 3.85rem);
  }

  .flowstate-home-shell--desktop .flowstate-home-tabs-region.is-task-list-rail-collapsed::before {
    width: 3rem !important;
  }

  .flowstate-home-shell--desktop .flowstate-home-tabs-region.is-task-list-rail-collapsed > .task-tabs,
  .flowstate-home-shell--desktop .flowstate-home-tabs-region.is-task-list-rail-collapsed > .flowstate-home-left-rail-footer {
    display: none !important;
  }

  .flowstate-home-shell--desktop .flowstate-home-tabs-region.is-task-list-rail-collapsed .task-list-rail-toggle {
    left: calc(3rem - 1.125rem);
  }

  .page:not(.theme-dark) .flowstate-home-shell--desktop .task-list-rail-toggle {
    border-color: rgba(100, 116, 139, 0.3);
    background: #ffffff;
    color: #526074;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.14);
  }

  .page:not(.theme-dark) .flowstate-home-shell--desktop .task-list-rail-toggle:hover {
    border-color: rgba(85, 97, 216, 0.55);
    background: #f4f6ff;
    color: #4652c7;
  }
}

@media (prefers-reduced-motion: reduce) {
  .flowstate-home-shell--desktop .flowstate-home-tabs-region,
  .flowstate-home-shell--desktop .task-list-rail-toggle {
    transition-duration: 1ms;
  }
}
/* Full task calendar */
.calendar-inner-page {
  min-height: calc(100vh - 56px);
}

.calendar-page {
  --calendar-bg: #f5f7fb;
  --calendar-surface: #ffffff;
  --calendar-surface-subtle: #f8f9fc;
  --calendar-border: #dfe4ed;
  --calendar-text: #172033;
  --calendar-muted: #718096;
  --calendar-heat-1: hsla(var(--theme-hue), 76%, 53%, .18);
  --calendar-heat-2: hsla(var(--theme-hue), 76%, 51%, .29);
  --calendar-heat-3: hsla(var(--theme-hue), 74%, 49%, .41);
  --calendar-heat-4: hsla(var(--theme-hue), 72%, 47%, .54);
  --calendar-complete-fill: rgba(218, 159, 32, .36);
  min-height: calc(100vh - 56px);
  padding: 1.4rem 1.6rem 1.7rem;
  color: var(--calendar-text);
  background: var(--calendar-bg);
}

.calendar-page-header,
.calendar-toolbar,
.calendar-page-heading,
.calendar-page-actions,
.calendar-month-nav,
.calendar-day-top,
.calendar-alert,
.calendar-alert button,
.calendar-task,
.calendar-composer .btn {
  display: flex;
  align-items: center;
}

.calendar-page-header {
  justify-content: space-between;
  gap: 1rem;
  max-width: 1680px;
  margin: 0 auto 1.1rem;
}

.calendar-page-heading {
  gap: 0.75rem;
}

.calendar-page-icon {
  display: grid;
  place-items: center;
  width: 2.6rem;
  height: 2.6rem;
  flex: 0 0 auto;
  border-radius: 0.72rem;
  color: #ffffff;
  background: var(--theme-accent);
  box-shadow: 0 7px 18px var(--theme-accent-soft);
}

.calendar-page h1 {
  margin: 0;
  padding: 0;
  color: var(--calendar-text);
  font-size: 1.45rem;
  font-weight: 750;
  letter-spacing: -0.02em;
}

.calendar-page-heading p {
  margin: 0.12rem 0 0;
  color: var(--calendar-muted);
  font-size: 0.88rem;
}

.calendar-list-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem 0.55rem;
  margin-top: 0.32rem;
}

.calendar-list-chips > span {
  display: inline-flex;
  align-items: center;
  max-width: 8rem;
  overflow: hidden;
  color: var(--calendar-muted);
  font-size: 0.65rem;
  font-weight: 650;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-list-chips .calendar-legend-dot {
  background: currentColor;
}

.calendar-list-chips .calendar-task-color-0 {
  color: #435fc0;
}

.calendar-page-actions {
  gap: 0.65rem;
  align-items: flex-start;
}

.calendar-filter-stack {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.34rem;
}

.calendar-list-legend {
  display: flex;
  justify-content: flex-end;
  gap: 0.3rem 0.65rem;
  max-width: 27rem;
  color: var(--calendar-muted);
  font-size: 0.65rem;
  line-height: 1;
}

.calendar-list-legend > span {
  display: flex;
  align-items: center;
  min-width: 0;
  max-width: 7rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-legend-dot {
  width: 0.48rem;
  height: 0.48rem;
  flex: 0 0 auto;
  margin-right: 0.25rem;
  border-radius: 50%;
  background: currentColor;
}

.calendar-list-legend .calendar-legend-dot {
  background: currentColor;
}

.calendar-list-legend .calendar-task-color-0 {
  color: #435fc0;
}

.calendar-list-filter,
.calendar-composer input,
.calendar-composer select {
  border: 1px solid var(--calendar-border);
  border-radius: 0.58rem;
  color: var(--calendar-text);
  background: var(--calendar-surface);
  outline: none;
}

.calendar-list-filter {
  min-width: 10rem;
  height: 2.5rem;
  padding: 0 2rem 0 0.78rem;
  font-weight: 600;
}

.calendar-list-filter:focus,
.calendar-composer input:focus,
.calendar-composer select:focus {
  border-color: var(--theme-accent);
  box-shadow: 0 0 0 0.16rem var(--theme-accent-soft);
}

.calendar-new-task {
  height: 2.5rem;
  gap: 0.38rem;
  border-radius: 0.58rem !important;
  padding: 0 0.9rem !important;
}

.calendar-shell {
  max-width: 1680px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid var(--calendar-border);
  border-radius: 0.85rem;
  background: var(--calendar-surface);
  box-shadow: 0 10px 32px rgba(27, 38, 65, 0.07);
}

.calendar-toolbar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  position: sticky;
  top: 0;
  z-index: 20;
  min-height: 4.1rem;
  padding: 0.65rem 1rem;
  border-bottom: 1px solid var(--calendar-border);
  background: var(--calendar-surface);
}

.calendar-toolbar h2 {
  margin: 0;
  color: var(--calendar-text);
  font-size: 1.16rem !important;
  font-weight: 750;
}

.calendar-month-nav {
  gap: 0.28rem;
  justify-self: start;
}

.calendar-month-nav button,
.calendar-alert button,
.calendar-modal-close {
  border: 1px solid var(--calendar-border);
  color: var(--calendar-muted);
  background: var(--calendar-surface);
}

.calendar-month-nav button {
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 0.48rem;
}

.calendar-month-nav button:hover,
.calendar-month-nav button:focus,
.calendar-alert button:hover {
  color: var(--theme-accent);
  border-color: var(--theme-accent);
  background: var(--theme-accent-surface);
}

.calendar-month-nav .calendar-today-button {
  width: auto;
  padding: 0 0.72rem;
  margin-left: 0.28rem;
  font-size: 0.82rem;
  font-weight: 700;
}

.calendar-task-count {
  color: var(--calendar-muted);
  font-size: 0.8rem;
  font-weight: 650;
}

.calendar-toolbar-meta {
  display: flex;
  align-items: center;
  justify-self: end;
  gap: 0.62rem;
}

.calendar-unscheduled-button {
  border: 0;
  border-radius: 0.42rem;
  padding: 0.3rem 0.5rem;
  color: var(--theme-accent);
  background: var(--theme-accent-surface);
  font-size: 0.7rem;
  font-weight: 750;
  white-space: nowrap;
}

.calendar-unscheduled-button:hover,
.calendar-unscheduled-button:focus-visible {
  color: #ffffff;
  background: var(--theme-accent);
  outline: none;
}

.calendar-options-dropdown {
  position: relative;
}

.calendar-options-button {
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
  padding: 0;
  border: 1px solid var(--calendar-border);
  border-radius: 0.48rem;
  color: var(--calendar-muted);
  background: var(--calendar-surface);
}

.calendar-options-button::after {
  display: none !important;
}

.calendar-options-button:hover,
.calendar-options-button:focus,
.calendar-options-dropdown.show .calendar-options-button {
  color: var(--theme-accent);
  border-color: var(--theme-accent);
  background: var(--theme-accent-surface);
  outline: none;
}

.calendar-options-menu {
  width: 17rem;
  margin-top: 0.42rem !important;
  padding: 0.45rem !important;
  border: 1px solid var(--calendar-border) !important;
  border-radius: 0.62rem !important;
  color: var(--calendar-text) !important;
  background: var(--calendar-surface) !important;
  box-shadow: 0 14px 36px rgba(16, 24, 40, 0.18) !important;
}

.calendar-option-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.58rem 0.5rem;
  border-radius: 0.44rem;
}

.calendar-option-row + .calendar-option-row {
  border-top: 1px solid var(--calendar-border);
  border-radius: 0;
}

.calendar-option-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.calendar-option-copy strong {
  color: var(--calendar-text);
  font-size: 0.78rem;
  font-weight: 750;
}

.calendar-option-copy small {
  margin-top: 0.08rem;
  color: var(--calendar-muted);
  font-size: 0.66rem;
  font-weight: 500;
}

.calendar-option-switch {
  position: relative;
  width: 2.25rem;
  height: 1.25rem;
  flex: 0 0 auto;
  padding: 0;
  border: 1px solid var(--calendar-border);
  border-radius: 999px;
  background: var(--calendar-surface-subtle);
  transition: border-color 0.16s ease, background 0.16s ease;
}

.calendar-option-switch > span {
  position: absolute;
  top: 0.16rem;
  left: 0.16rem;
  width: 0.82rem;
  height: 0.82rem;
  border-radius: 50%;
  background: var(--calendar-muted);
  transition: transform 0.16s ease, background 0.16s ease;
}

.calendar-option-switch.is-on {
  border-color: var(--theme-accent);
  background: var(--theme-accent);
}

.calendar-option-switch.is-on > span {
  background: #ffffff;
  transform: translateX(0.98rem);
}

.calendar-option-switch:focus-visible {
  outline: 3px solid var(--theme-accent-soft);
  outline-offset: 2px;
}

.calendar-shortcuts-hint {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem 0.68rem;
  padding: 0.58rem 0.5rem 0.2rem;
  border-top: 1px solid var(--calendar-border);
  color: var(--calendar-muted);
  font-size: 0.62rem;
}

.calendar-shortcuts-hint span {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
}

.calendar-shortcuts-hint kbd {
  min-width: 1.25rem;
  padding: 0.12rem 0.26rem;
  border: 1px solid var(--calendar-border);
  border-radius: 0.24rem;
  color: var(--calendar-text);
  background: var(--calendar-surface-subtle);
  box-shadow: none;
  font-family: inherit;
  font-size: 0.58rem;
  text-align: center;
}

.calendar-alert {
  justify-content: space-between;
  gap: 0.8rem;
  margin: 0.7rem 1rem 0;
  padding: 0.65rem 0.8rem;
  border: 1px solid rgba(220, 70, 70, 0.28);
  border-radius: 0.55rem;
  color: #b13b3b;
  background: rgba(220, 70, 70, 0.08);
  font-size: 0.84rem;
}

.calendar-alert button {
  gap: 0.3rem;
  border-radius: 0.4rem;
  padding: 0.28rem 0.55rem;
  font-size: 0.78rem;
}

.calendar-alert--journal {
  border-color: var(--calendar-border);
  color: var(--calendar-muted);
  background: var(--calendar-surface-subtle);
}

.calendar-alert--journal button {
  color: var(--calendar-text);
  background: var(--calendar-surface);
}

.calendar-weekdays,
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.calendar-weekdays {
  border-bottom: 1px solid var(--calendar-border);
  background: var(--calendar-surface-subtle);
}

.calendar-weekdays div {
  padding: 0.58rem 0.72rem;
  color: var(--calendar-muted);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.calendar-grid {
  position: relative;
}

.calendar-grid.is-loading .calendar-day {
  opacity: 0.48;
}

.calendar-loading {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  color: var(--calendar-muted);
  background: rgba(255, 255, 255, 0.42);
  backdrop-filter: blur(1px);
  font-size: 0.88rem;
  font-weight: 650;
}

.calendar-day {
  min-height: 8.65rem;
  padding: 0.56rem;
  overflow: hidden;
  border-right: 1px solid var(--calendar-border);
  border-bottom: 1px solid var(--calendar-border);
  background: var(--calendar-surface);
  cursor: pointer;
  transition: background 0.14s ease, box-shadow 0.14s ease;
}

.calendar-day:nth-child(7n) {
  border-right: 0;
}

.calendar-day:nth-last-child(-n + 7) {
  border-bottom: 0;
}

.calendar-day:hover,
.calendar-day:focus-visible {
  z-index: 1;
  outline: none;
  background: var(--theme-accent-surface);
  box-shadow: inset 0 0 0 1px hsla(var(--theme-hue), 70%, 55%, 0.32);
}

.calendar-day.is-today {
  background: hsla(var(--theme-hue), 78%, 58%, 0.035);
  box-shadow: inset 0 0 0 1px hsla(var(--theme-hue), 76%, 62%, 0.2);
}

.calendar-day.is-today:hover,
.calendar-day.is-today:focus-visible {
  background: hsla(var(--theme-hue), 78%, 58%, 0.08);
  box-shadow: inset 0 0 0 1px hsla(var(--theme-hue), 76%, 62%, 0.4);
}

.calendar-day.is-drop-target,
.calendar-day.is-drop-target:hover {
  z-index: 2;
  background: var(--theme-accent-surface);
  box-shadow: inset 0 0 0 2px var(--theme-accent);
}

.calendar-day.is-outside {
  background: var(--calendar-surface-subtle);
}

.calendar-day.is-outside .calendar-day-number,
.calendar-day.is-outside .calendar-task,
.calendar-day.is-outside .calendar-journal-indicator {
  opacity: 0.55;
}

.calendar-day-top {
  justify-content: space-between;
  min-height: 1.6rem;
  margin-bottom: 0.27rem;
}

.calendar-day-number {
  display: grid;
  place-items: center;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 50%;
  color: var(--calendar-text);
  font-size: 0.78rem;
  font-weight: 750;
}

.calendar-day-meta,
.calendar-journal-indicator {
  display: inline-flex;
  align-items: center;
}

.calendar-day-meta {
  gap: 0.32rem;
}

.calendar-journal-indicator {
  gap: 0.2rem;
  min-height: 1.35rem;
  padding: 0.12rem 0.38rem;
  border: 1px solid var(--calendar-border);
  border-radius: 999px;
  color: var(--calendar-muted);
  background: var(--calendar-surface-subtle);
  font-size: 0.66rem;
  font-weight: 750;
  line-height: 1;
}

.calendar-journal-indicator svg {
  flex: 0 0 auto;
}

.calendar-day.is-today .calendar-day-number {
  color: #ffffff;
  background: var(--theme-accent);
}

.calendar-day-add {
  opacity: 0;
  color: var(--theme-accent);
  transform: scale(0.8);
  transition: opacity 0.14s ease, transform 0.14s ease;
}

.calendar-day:hover .calendar-day-add,
.calendar-day:focus-visible .calendar-day-add {
  opacity: 1;
  transform: scale(1);
}

.calendar-day-tasks,
.calendar-modal-task-list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.calendar-task {
  width: 100%;
  min-height: 1.8rem;
  min-width: 0;
  gap: 0.48rem;
  border: 0;
  border-left: 3px solid currentColor;
  border-radius: 0.4rem;
  padding: 0.36rem 0.46rem;
  color: #435fc0;
  background: rgba(67, 95, 192, 0.1);
  text-align: left;
  cursor: grab;
  transition: opacity 0.14s ease, filter 0.14s ease, transform 0.14s ease;
}

.calendar-task:active { cursor: grabbing; }

.calendar-task.is-dragging {
  opacity: 0.32;
  transform: scale(0.98);
}

.calendar-task:hover,
.calendar-task:focus-within {
  filter: brightness(0.96);
  outline: none;
}

.calendar-task-check-button,
.calendar-task-copy {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  box-shadow: none;
}

.calendar-task-check-button {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 0.24rem;
  cursor: pointer;
}

.calendar-task-check-button:disabled {
  cursor: wait;
}

.calendar-task-color-1 { color: #087f7a; background: rgba(8, 127, 122, 0.1); }
.calendar-task-color-2 { color: #ad6416; background: rgba(173, 100, 22, 0.11); }
.calendar-task-color-3 { color: #8a4ab2; background: rgba(138, 74, 178, 0.1); }
.calendar-task-color-4 { color: #c04463; background: rgba(192, 68, 99, 0.1); }
.calendar-task-color-5 { color: #34724c; background: rgba(52, 114, 76, 0.1); }

.calendar-task-check {
  display: grid;
  place-items: center;
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  border: 1px solid currentColor;
  border-radius: 0.22rem;
  transition: color 0.14s ease, border-color 0.14s ease, background 0.14s ease, box-shadow 0.14s ease, transform 0.14s ease;
}

.calendar-task:hover .calendar-task-check,
.calendar-task:focus-within .calendar-task-check,
.calendar-task-check-button:hover .calendar-task-check {
  color: var(--theme-accent);
  border-color: var(--theme-accent);
  background: var(--calendar-surface);
  box-shadow: 0 0 0 3px var(--theme-accent-soft);
  transform: scale(1.08);
}

.calendar-task-copy {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-align: left;
  cursor: pointer;
}

.calendar-task-copy:hover .calendar-task-title,
.calendar-task-copy:focus-visible .calendar-task-title {
  text-decoration: underline;
  text-underline-offset: 0.14em;
}

.calendar-task-title {
  display: block;
  overflow: hidden;
  color: currentColor;
  font-size: 0.78rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-task-list {
  display: block;
  margin-top: 0.08rem;
  color: var(--calendar-muted);
  font-size: 0.67rem;
}

.calendar-task.is-complete {
  opacity: 0.68;
  filter: saturate(0.65);
}

.calendar-task.is-complete .calendar-task-title {
  text-decoration: line-through;
}

.calendar-task.is-complete .calendar-task-check {
  background: rgba(255, 255, 255, 0.48);
}

.calendar-more {
  width: 100%;
  border: 0;
  padding: 0.25rem 0.4rem;
  border-radius: 0.32rem;
  color: var(--theme-accent);
  background: var(--theme-accent-surface);
  text-align: left;
  font-size: 0.7rem;
  font-weight: 750;
}

.calendar-more:hover,
.calendar-more:focus {
  color: #ffffff;
  background: var(--theme-accent);
  outline: none;
}

.calendar-empty-state {
  position: absolute;
  top: 8.2rem;
  left: 50%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(22rem, 80%);
  padding: 1.05rem 1.25rem;
  border: 1px dashed hsla(var(--theme-hue), 70%, 58%, 0.36);
  border-radius: 0.7rem;
  color: var(--calendar-muted);
  background: color-mix(in srgb, var(--calendar-surface) 91%, transparent);
  box-shadow: 0 10px 28px rgba(16, 24, 40, 0.08);
  text-align: center;
  pointer-events: none;
  transform: translateX(-50%);
}

.calendar-empty-state strong {
  margin: 0.38rem 0 0.1rem;
  color: var(--calendar-text);
  font-size: 0.88rem;
}

.calendar-empty-state > span:last-child {
  font-size: 0.76rem;
}

.calendar-empty-state-icon {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  color: #ffffff;
  background: var(--theme-accent);
}

.calendar-modal-dialog {
  --calendar-bg: #f5f7fb;
  --calendar-surface: #ffffff;
  --calendar-surface-subtle: #f8f9fc;
  --calendar-border: #dfe4ed;
  --calendar-text: #172033;
  --calendar-muted: #718096;
  max-width: 34rem;
}

.calendar-modal-backdrop.show {
  opacity: 0.42;
  background: #111827;
  backdrop-filter: blur(1px);
}

body.theme-dark .calendar-modal-backdrop.show {
  opacity: 0.62;
  background: #080b12;
}

.calendar-modal-dialog .modal-content {
  overflow: hidden;
  border: 1px solid var(--calendar-border);
  border-radius: 0.85rem;
  color: var(--calendar-text);
  background: var(--calendar-surface);
}

.calendar-modal-dialog .modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1.05rem 1.15rem;
  border-bottom: 1px solid var(--calendar-border);
  background: var(--calendar-surface-subtle);
}

.calendar-modal-eyebrow {
  display: block;
  margin-bottom: 0.16rem;
  color: var(--theme-accent);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.calendar-modal-dialog .modal-title {
  color: var(--calendar-text);
  font-size: 1.08rem;
  font-weight: 750;
  text-align: left;
}

.calendar-modal-close {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border-radius: 0.45rem;
}

.calendar-modal-dialog .modal-body {
  padding: 1.05rem 1.15rem 1.2rem;
}

.calendar-modal-task-list {
  max-height: 17rem;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  overflow-y: auto;
  border-bottom: 1px solid var(--calendar-border);
}

.calendar-modal-task-list .calendar-task {
  padding: 0.5rem 0.58rem;
}

.calendar-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(9rem, 0.42fr);
  gap: 0.8rem 0.65rem;
  align-items: end;
}

.calendar-composer-field--title {
  grid-column: 1 / -1;
}

.calendar-composer h3 {
  grid-column: 1 / -1;
  margin: 0 0 0.3rem;
  color: var(--calendar-text);
  font-size: 0.86rem !important;
  font-weight: 750;
}

.calendar-composer-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.36rem;
}

.calendar-composer label {
  margin: 0;
  color: var(--calendar-muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.025em;
}

.calendar-composer input,
.calendar-composer select,
.calendar-task-editor input,
.calendar-task-editor select {
  width: 100%;
  height: 2.75rem;
  padding: 0 0.78rem;
  font-size: 0.9rem;
}

.calendar-task-editor {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.8rem 0.65rem;
}

.calendar-task-editor label {
  margin: 0;
  color: var(--calendar-muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.calendar-task-editor label span {
  font-weight: 550;
}

.calendar-editor-actions {
  display: flex;
  grid-column: 1 / -1;
  justify-content: space-between;
  gap: 0.65rem;
  padding-top: 0.25rem;
}

.calendar-editor-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  gap: 0.35rem;
  border-radius: 0.52rem;
}

.calendar-editor-actions .btn-primary {
  min-width: 10rem;
}

.calendar-composer .btn {
  grid-column: 1 / -1;
  justify-content: center;
  width: 100%;
  height: 2.75rem;
  gap: 0.3rem;
  border-radius: 0.52rem;
  font-weight: 750;
  white-space: nowrap;
}

.page.theme-dark .calendar-page,
body.theme-dark .calendar-page,
.page.theme-dark .calendar-modal-dialog,
body.theme-dark .calendar-modal-dialog {
  --calendar-bg: #222220;
  --calendar-surface: #272725;
  --calendar-surface-subtle: #333331;
  --calendar-border: rgba(127, 139, 163, 0.24);
  --calendar-text: #e9edf6;
  --calendar-muted: #9aa4bb;
  --calendar-heat-1: hsla(var(--theme-hue), 88%, 64%, .13);
  --calendar-heat-2: hsla(var(--theme-hue), 86%, 62%, .23);
  --calendar-heat-3: hsla(var(--theme-hue), 84%, 60%, .36);
  --calendar-heat-4: hsla(var(--theme-hue), 82%, 58%, .52);
  --calendar-complete-fill: rgba(207, 166, 65, .28);
  color-scheme: dark;
}

.page.theme-dark .calendar-page,
body.theme-dark .calendar-page {
  color: var(--calendar-text) !important;
  background: var(--calendar-bg) !important;
}

.page.theme-dark .calendar-shell,
body.theme-dark .calendar-shell,
.page.theme-dark .calendar-day,
body.theme-dark .calendar-day,
.page.theme-dark .calendar-list-filter,
body.theme-dark .calendar-list-filter,
.page.theme-dark .calendar-options-button,
body.theme-dark .calendar-options-button,
.page.theme-dark .calendar-composer input,
body.theme-dark .calendar-composer input,
.page.theme-dark .calendar-composer select,
body.theme-dark .calendar-composer select {
  color: var(--calendar-text) !important;
  border-color: var(--calendar-border) !important;
  background: var(--calendar-surface) !important;
}

body.theme-dark .calendar-task-editor input,
body.theme-dark .calendar-task-editor select {
  color: var(--calendar-text) !important;
  border-color: var(--calendar-border) !important;
  background: var(--calendar-surface) !important;
}

.calendar-move-toast {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1400;
  display: flex;
  align-items: center;
  max-width: min(30rem, calc(100vw - 2rem));
  gap: 0.8rem;
  padding: 0.72rem 0.78rem 0.72rem 0.9rem;
  border: 1px solid var(--calendar-border);
  border-radius: 0.65rem;
  color: var(--calendar-text);
  background: var(--calendar-surface);
  box-shadow: 0 16px 38px rgba(13, 20, 35, 0.24);
  font-size: 0.78rem;
}

.calendar-move-toast > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-move-toast button {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  border: 0;
  color: var(--theme-accent);
  background: transparent;
  font-size: 0.75rem;
  font-weight: 800;
}

.calendar-move-toast .calendar-move-toast-close {
  padding: 0.15rem;
  color: var(--calendar-muted);
}

body.theme-dark .calendar-move-toast {
  --calendar-surface: #272725;
  --calendar-border: rgba(127, 139, 163, 0.3);
  --calendar-text: #e9edf6;
  --calendar-muted: #9aa4bb;
}

.page.theme-dark .calendar-weekdays,
body.theme-dark .calendar-weekdays,
.page.theme-dark .calendar-day.is-outside,
body.theme-dark .calendar-day.is-outside,
body.theme-dark .calendar-modal-dialog .modal-header {
  background: var(--calendar-surface-subtle) !important;
}

body.theme-dark .calendar-modal-dialog .modal-content,
body.theme-dark .calendar-modal-dialog .modal-body {
  color: var(--calendar-text) !important;
  border-color: var(--calendar-border) !important;
  background: var(--calendar-surface) !important;
}

.page.theme-dark .calendar-day:hover,
body.theme-dark .calendar-day:hover,
.page.theme-dark .calendar-day:focus-visible,
body.theme-dark .calendar-day:focus-visible {
  background: var(--theme-accent-surface) !important;
}

.page.theme-dark .calendar-day.is-today,
body.theme-dark .calendar-day.is-today {
  background: hsla(var(--theme-hue), 78%, 58%, 0.035) !important;
}

.page.theme-dark .calendar-day.is-today:hover,
body.theme-dark .calendar-day.is-today:hover,
.page.theme-dark .calendar-day.is-today:focus-visible,
body.theme-dark .calendar-day.is-today:focus-visible {
  background: hsla(var(--theme-hue), 78%, 58%, 0.08) !important;
}

.page.theme-dark .calendar-day.is-drop-target,
body.theme-dark .calendar-day.is-drop-target {
  background: var(--theme-accent-surface) !important;
}

/* Optional task-volume heatmap, matched to the Tasks sidebar calendar. */
#root .page .calendar-day.calendar-day-heat-1:not(.is-drop-target),
#root .page .calendar-day.calendar-day-heat-1:not(.is-drop-target):hover,
#root .page .calendar-day.calendar-day-heat-1:not(.is-drop-target):focus-visible {
  background: var(--calendar-heat-1) !important;
}

#root .page .calendar-day.calendar-day-heat-2:not(.is-drop-target),
#root .page .calendar-day.calendar-day-heat-2:not(.is-drop-target):hover,
#root .page .calendar-day.calendar-day-heat-2:not(.is-drop-target):focus-visible {
  background: var(--calendar-heat-2) !important;
}

#root .page .calendar-day.calendar-day-heat-3:not(.is-drop-target),
#root .page .calendar-day.calendar-day-heat-3:not(.is-drop-target):hover,
#root .page .calendar-day.calendar-day-heat-3:not(.is-drop-target):focus-visible {
  background: var(--calendar-heat-3) !important;
}

#root .page .calendar-day.calendar-day-heat-4:not(.is-drop-target),
#root .page .calendar-day.calendar-day-heat-4:not(.is-drop-target):hover,
#root .page .calendar-day.calendar-day-heat-4:not(.is-drop-target):focus-visible {
  background: var(--calendar-heat-4) !important;
  box-shadow: inset 0 0 0 1px hsla(var(--theme-hue), 78%, 60%, .28);
}

#root .page .calendar-day.calendar-day-all-completed:not(.is-drop-target),
#root .page .calendar-day.calendar-day-all-completed:not(.is-drop-target):hover,
#root .page .calendar-day.calendar-day-all-completed:not(.is-drop-target):focus-visible {
  background: var(--calendar-complete-fill) !important;
  box-shadow: inset 0 0 0 1px rgba(185, 148, 64, .5), 0 0 7px rgba(207, 166, 65, .16);
}

.calendar-day-top {
  position: relative;
}

.calendar-day-complete-sparkle {
  position: absolute;
  top: .06rem;
  left: 2.02rem;
  color: #91600f;
  font-size: .72rem;
  line-height: 1;
  text-shadow: 0 0 6px rgba(207, 166, 65, .34);
  pointer-events: none;
}

.calendar-day-complete-sparkle::after {
  content: "\2727";
  position: absolute;
  top: .5rem;
  left: .58rem;
  font-size: .43rem;
}

.page.theme-dark .calendar-day-complete-sparkle,
body.theme-dark .calendar-day-complete-sparkle {
  color: #e6c36b;
}

.page.theme-dark .calendar-loading {
  background: rgba(34, 34, 32, 0.55);
}

@media (min-width: 1500px) {
  .calendar-day { min-height: 9.8rem; }
}

@media (min-width: 1600px) {
  .calendar-day-number { width: 1.8rem; height: 1.8rem; font-size: 0.84rem; }
  .calendar-task { min-height: 1.95rem; padding: 0.4rem 0.5rem; }
  .calendar-task-title { font-size: 0.82rem; }
  .calendar-task-check { width: 1.06rem; height: 1.06rem; }
}

@media (max-width: 991.98px) {
  .calendar-page {
    padding: 1rem 0.8rem;
  }

  .calendar-day {
    min-height: 7.3rem;
    padding: 0.38rem;
  }

  .calendar-task-title { font-size: 0.67rem; }
  .calendar-task { padding: 0.24rem 0.28rem; }
}

@media (max-width: 767.98px) {
  .calendar-page-header {
    align-items: stretch;
    flex-direction: column;
  }

  .calendar-page-actions > * {
    flex: 1 1 0;
  }

  .calendar-list-legend {
    justify-content: flex-start;
    max-width: calc(100vw - 8rem);
    overflow: hidden;
  }

  .calendar-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
  }

  .calendar-toolbar h2 {
    order: -1;
    width: 100%;
  }

  .calendar-task-count { margin-left: auto; }
  .calendar-empty-state { top: 5.2rem; }
  .calendar-weekdays div { padding: 0.46rem 0.25rem; text-align: center; }
  .calendar-day { min-height: 5.6rem; }
  .calendar-task { border-left-width: 2px; }
  .calendar-task-check { display: none; }
  .calendar-day-tasks { gap: 0.15rem; }
  .calendar-day:not(.is-expanded) .calendar-day-tasks .calendar-task:nth-child(n + 3) { display: none; }
  .calendar-task-title { font-size: 0.61rem; }

  .calendar-composer {
    grid-template-columns: 1fr;
  }

  .calendar-composer-field--title { grid-column: 1; }
  .calendar-composer .btn { grid-column: 1; }
  .calendar-task-editor { grid-template-columns: 1fr; }
  .calendar-task-editor .calendar-composer-field--title,
  .calendar-editor-actions { grid-column: 1; }
  .calendar-editor-actions { flex-direction: column-reverse; }
  .calendar-editor-actions .btn { width: 100%; }
}

@media (max-width: 520px) {
  .calendar-page { padding-inline: 0.45rem; }
  .calendar-page-heading p { display: none; }
  .calendar-shell { border-radius: 0.65rem; }
  .calendar-weekdays div { font-size: 0.61rem; letter-spacing: 0.02em; }
  .calendar-day { min-height: 4.5rem; padding: 0.24rem; }
  .calendar-day-number { width: 1.35rem; height: 1.35rem; font-size: 0.68rem; }
  .calendar-day-complete-sparkle { top: 0; left: 1.48rem; font-size: .62rem; }
  .calendar-day-meta { gap: 0.15rem; }
  .calendar-journal-indicator { min-height: 1.2rem; padding: 0.1rem 0.25rem; font-size: 0.6rem; }
  .calendar-journal-indicator svg { width: 0.65rem; height: 0.65rem; }
  .calendar-day-tasks .calendar-task { display: none; }
  .calendar-day-tasks .calendar-more { display: block; }
  .calendar-day:has(.calendar-task) .calendar-day-top::after {
    content: "";
    width: 0.36rem;
    height: 0.36rem;
    margin-left: auto;
    border-radius: 50%;
    background: var(--theme-accent);
  }
}


/* Tasks workspace interaction and hierarchy refinement. */
#root .page .task-list-container .accordion-progress-header .accordion-button {
  overflow: visible;
}

#root .page .accordion-progress-summary {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.72rem;
  min-width: min(24rem, 48%);
}

#root .page .accordion-progress-track {
  display: block;
  width: clamp(5.5rem, 12vw, 10rem);
  height: 0.38rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(113, 128, 150, 0.2);
}

#root .page .accordion-progress-track .accordion-progress-fill {
  position: relative;
  inset: auto;
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--theme-accent) !important;
  opacity: 1 !important;
  filter: saturate(1.16) brightness(1.08);
  opacity: 1;
}

#root .page .task-main-column > .dashboard-box .accordion-body > .taskform.taskform--inline:not(.journal-form-inline) {
  position: relative;
  z-index: 3;
  margin: 0 !important;
  padding: 0.85rem 0.78rem !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(113, 128, 150, 0.2);
  background: rgba(127, 139, 161, 0.035);
}

#root .page .task-main-column > .dashboard-box .accordion-body > .taskform.taskform--inline:not(.journal-form-inline) input#new-todo {
  min-height: 2.65rem;
  padding: 0 0.85rem !important;
  border: 1px solid rgba(113, 128, 150, 0.24) !important;
  border-radius: 0.62rem !important;
  background: rgba(255, 255, 255, 0.55) !important;
  transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}

#root .page .task-main-column > .dashboard-box .accordion-body > .taskform.taskform--inline:not(.journal-form-inline) input#new-todo:focus {
  border-color: var(--theme-accent) !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px var(--theme-accent-soft) !important;
}

#root .page .task-main-column > .dashboard-box .accordion-body > .taskform + .mt-2 {
  margin-top: 0 !important;
}

#root .page .task-completed-divider {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0.28rem 0.62rem;
  border: 0;
  border-bottom: 1px solid rgba(113, 128, 150, 0.18);
  background: rgba(113, 128, 150, 0.055);
  list-style: none;
}

#root .page .task-completed-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.28rem 0.42rem;
  border: 0;
  border-radius: 0.38rem;
  color: #69758a;
  background: transparent;
  font-size: 0.76rem;
  font-weight: 750;
  letter-spacing: 0.02em;
}

#root .page .task-completed-toggle:hover,
#root .page .task-completed-toggle:focus-visible {
  color: var(--theme-accent);
  background: var(--theme-accent-surface);
  outline: none;
}

#root .page .task-completed-toggle svg {
  transition: transform 150ms ease;
}

#root .page .task-completed-divider.is-collapsed .task-completed-toggle svg {
  transform: rotate(-90deg);
}

#root .page .task-completed-count {
  display: inline-grid;
  place-items: center;
  min-width: 1.35rem;
  height: 1.2rem;
  padding: 0 0.34rem !important;
  border-radius: 999px !important;
  color: inherit;
  background: rgba(113, 128, 150, 0.12);
  font-size: 0.65rem !important;
}

#root .page .taskListContainer li {
  position: relative;
  transition: background-color 140ms ease, box-shadow 140ms ease, opacity 140ms ease !important;
}

#root .page .taskListContainer.is-active li::after {
  content: "";
  position: absolute;
  inset: 0.58rem auto 0.58rem 0;
  width: 2px;
  border-radius: 999px;
  background: var(--theme-accent);
  opacity: 0.55;
  transform: scaleY(0.45);
  transition: opacity 140ms ease, transform 140ms ease;
}

#root .page .taskListContainer.is-active li:hover::after,
#root .page .taskListContainer.is-active li:focus-within::after {
  opacity: 1;
  transform: scaleY(1);
}

#root .page .taskListContainer.is-complete li {
  opacity: 0.62;
  background: rgba(113, 128, 150, 0.025) !important;
}

#root .page .taskListContainer.is-complete li:hover,
#root .page .taskListContainer.is-complete li:focus-within {
  opacity: 0.86;
}

#root .page .taskListContainer li .task-item-main textarea.task-edit {
  border-radius: 0.35rem !important;
  cursor: text;
  transition: color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
}

#root .page .taskListContainer.is-active li .task-item-main textarea.task-edit {
  color: #182235 !important;
  font-weight: 560;
}

#root .page .taskListContainer li .task-item-main textarea.task-edit:hover {
  background: rgba(113, 128, 150, 0.055) !important;
}

#root .page .taskListContainer li .task-item-main textarea.task-edit:focus {
  background: rgba(255, 255, 255, 0.78) !important;
  box-shadow: inset 0 0 0 1px var(--theme-accent) !important;
  outline: none;
}

#root .page .taskListContainer .task-indent-handle {
  cursor: grab;
}

#root .page .taskListContainer .task-indent-handle:active {
  cursor: grabbing;
}

#root .page .taskListContainer.is-complete .task-indent-handle {
  cursor: default;
  opacity: 0.16;
}

#root .page .taskListContainer li .task-item-actions {
  gap: 0.42rem;
  opacity: 0.18;
  transform: translateX(0.18rem);
  transition: opacity 140ms ease, transform 140ms ease;
}

#root .page .taskListContainer li:hover .task-item-actions,
#root .page .taskListContainer li:focus-within .task-item-actions,
#root .page .taskListContainer li.is-timer-running .task-item-actions,
#root .page .taskListContainer li .task-item-actions.is-expanded {
  opacity: 1;
  transform: translateX(0);
}

#root .page .taskListContainer li .task-item-actions .task-focus-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  min-width: 4.4rem;
  min-height: 2rem;
  margin: 0 !important;
  padding: 0.28rem 0.66rem !important;
  border-radius: 999px !important;
  color: #657087;
  font-size: 0.76rem;
  font-weight: 700;
}

#root .page .taskListContainer li .task-item-actions .task-focus-control span {
  display: inline;
  margin: 0;
  padding: 0;
  border-radius: 0;
  font-size: inherit;
}

#root .page .taskListContainer li .task-item-actions .task-focus-control.is-running {
  border-color: var(--theme-accent) !important;
  color: var(--theme-accent) !important;
  background: var(--theme-accent-surface) !important;
}

#root .page .taskListContainer li .task-item-actions > .dropdown .dropdown-toggle {
  margin: 0 !important;
}

#root .page.theme-dark .accordion-progress-track {
  background: rgba(255, 255, 255, 0.12);
}

#root .page.theme-dark .task-main-column > .dashboard-box .accordion-body > .taskform.taskform--inline:not(.journal-form-inline) {
  border-bottom-color: rgba(141, 149, 163, 0.22) !important;
  background: rgba(255, 255, 255, 0.018) !important;
}

#root .page.theme-dark .task-main-column > .dashboard-box .accordion-body > .taskform.taskform--inline:not(.journal-form-inline) input#new-todo {
  border-color: rgba(141, 149, 163, 0.24) !important;
  color: #edf1f9 !important;
  background: #171b24 !important;
}

#root .page.theme-dark .task-main-column > .dashboard-box .accordion-body > .taskform.taskform--inline:not(.journal-form-inline) input#new-todo:focus {
  border-color: var(--theme-accent) !important;
  background: #11161f !important;
}

#root .page.theme-dark .task-completed-divider {
  border-bottom-color: rgba(141, 149, 163, 0.18);
  background: rgba(255, 255, 255, 0.022);
}

#root .page.theme-dark .task-completed-toggle {
  color: #98a3b7;
}

#root .page.theme-dark .taskListContainer.is-active li .task-item-main textarea.task-edit {
  color: #f2f5fb !important;
}

#root .page.theme-dark .taskListContainer li .task-item-main textarea.task-edit:hover {
  background: rgba(255, 255, 255, 0.035) !important;
}

#root .page.theme-dark .taskListContainer li .task-item-main textarea.task-edit:focus {
  background: rgba(8, 12, 19, 0.64) !important;
}

#root .page.theme-dark .taskListContainer.is-complete li {
  background: rgba(255, 255, 255, 0.012) !important;
}

#root .page.theme-dark .taskListContainer li .task-item-actions .task-focus-control {
  border-color: rgba(141, 149, 163, 0.3) !important;
  color: #aeb7c8 !important;
  background: rgba(255, 255, 255, 0.025) !important;
}

@media (max-width: 767px) {
  #root .page .accordion-progress-summary {
    min-width: 0;
  }

  #root .page .accordion-progress-track {
    display: none;
  }

  #root .page .taskListContainer li .task-item-actions {
    opacity: 1;
    transform: none;
  }

  #root .page .task-completed-divider {
    padding-inline: 0.42rem;
  }
}


/* Theme-colored task progress emphasis. */
#root .page .accordion-progress-track {
  width: clamp(7.5rem, 14vw, 12rem);
  height: 0.38rem;
  overflow: visible;
  padding: 0;
  border: 1px solid rgba(113, 128, 150, 0.42);
  background: rgba(113, 128, 150, 0.12);
  box-shadow: none;
}

#root .page .accordion-progress-track .accordion-progress-fill {
  position: relative;
  min-width: 0;
  height: 100%;
  background: var(--theme-accent);
  box-shadow:
    0 0 4px hsla(var(--theme-hue), 94%, 62%, 0.95),
    0 0 11px hsla(var(--theme-hue), 92%, 58%, 0.62);
  transition: width 260ms ease;
}

#root .page .accordion-progress-track .accordion-progress-fill::after {
  content: none;
}

#root .page.theme-dark .accordion-progress-track {
  border-color: hsla(var(--theme-hue), 84%, 66%, 0.26);
  background: rgba(255, 255, 255, 0.07);
  box-shadow: none;
}

#root .page.theme-dark .accordion-progress-track .accordion-progress-fill {
  background: var(--theme-accent) !important;
  opacity: 1 !important;
  box-shadow:
    0 0 5px hsla(var(--theme-hue), 96%, 68%, 1),
    0 0 12px hsla(var(--theme-hue), 94%, 62%, 0.72);
}


/* Match Calendar dark surfaces to the Tasks workspace palette. */
.page.theme-dark .calendar-page,
body.theme-dark .calendar-page,
.page.theme-dark .calendar-modal-dialog,
body.theme-dark .calendar-modal-dialog {
  --calendar-bg: #12141a;
  --calendar-surface: #1a1d26;
  --calendar-surface-subtle: #20232e;
  --calendar-border: #2a2e3a;
  --calendar-text: #eef2fb;
  --calendar-muted: #9ca5b9;
}

body.theme-dark .calendar-inner-page {
  background: #12141a !important;
}

body.theme-dark .calendar-move-toast {
  --calendar-surface: #1a1d26;
  --calendar-border: #2a2e3a;
  --calendar-text: #eef2fb;
  --calendar-muted: #9ca5b9;
}

.page.theme-dark .calendar-loading,
body.theme-dark .calendar-loading {
  background: rgba(18, 20, 26, 0.66);
}


/* Softer task-row dividers. */
body.flowstate-home-active .page.theme-dark .task-list-container.flowstate-home-shell .taskListContainer li {
  border-bottom-color: rgba(126, 134, 149, 0.085) !important;
}

body.flowstate-home-active .page:not(.theme-dark) .task-list-container.flowstate-home-shell .taskListContainer li {
  border-bottom-color: rgba(100, 116, 139, 0.11) !important;
}


/* Subtle route link beneath the Tasks sidebar calendar. */
#root .page .sidebar-calendar-view-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(100% - 1.1rem);
  min-height: 2rem;
  gap: 0.38rem;
  margin: 0.18rem 0.55rem 0.62rem;
  padding: 0.36rem 0.65rem;
  border: 1px solid rgba(100, 116, 139, 0.2);
  border-radius: 0.5rem;
  color: #68758b;
  background: rgba(100, 116, 139, 0.045);
  font-size: 0.74rem;
  font-weight: 650;
  text-decoration: none;
  transition: color 140ms ease, border-color 140ms ease, background-color 140ms ease;
}

#root .page .sidebar-calendar-view-link:hover,
#root .page .sidebar-calendar-view-link:focus-visible {
  border-color: hsla(var(--theme-hue), 76%, 56%, 0.36);
  color: var(--theme-accent);
  background: var(--theme-accent-surface);
  outline: none;
  text-decoration: none;
}

#root .page.theme-dark .sidebar-calendar-view-link {
  border-color: rgba(141, 149, 163, 0.16);
  color: #8f99ae;
  background: rgba(255, 255, 255, 0.018);
}

#root .page.theme-dark .sidebar-calendar-view-link:hover,
#root .page.theme-dark .sidebar-calendar-view-link:focus-visible {
  border-color: hsla(var(--theme-hue), 82%, 64%, 0.38);
  color: #cbd4ff;
  background: hsla(var(--theme-hue), 70%, 54%, 0.1);
}


/* Desktop right-rail collapse control. */
@media (min-width: 992px) {
  .flowstate-home-shell--desktop .flowstate-home-desktop-layout {
    position: relative;
    transition: grid-template-columns 180ms ease;
  }

  body.flowstate-home-active .page .task-list-container.flowstate-home-shell.flowstate-home-shell--desktop .flowstate-home-desktop-layout.is-right-rail-collapsed {
    grid-template-columns: minmax(0, 1fr) 3rem !important;
  }

  .flowstate-home-shell--desktop .flowstate-home-right-rail {
    position: relative;
    overflow: visible !important;
  }

  .flowstate-home-shell--desktop .flowstate-home-right-rail.is-collapsed > .task-sidebar-column--persistent {
    display: none !important;
  }

  .flowstate-home-shell--desktop .task-right-rail-toggle {
    position: absolute;
    top: 0.82rem;
    left: -1.125rem;
    z-index: 12;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 1px solid rgba(126, 134, 149, 0.42);
    border-radius: 999px;
    color: #cbd3e5;
    background: #242834;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24);
    cursor: pointer;
    transition: left 180ms ease, background-color 140ms ease, color 140ms ease, border-color 140ms ease;
  }

  .flowstate-home-shell--desktop .task-right-rail-toggle:hover {
    border-color: rgba(132, 147, 255, 0.72);
    color: #ffffff;
    background: #30364a;
  }

  .flowstate-home-shell--desktop .task-right-rail-toggle:focus-visible {
    outline: 3px solid rgba(108, 122, 255, 0.38);
    outline-offset: 2px;
  }

  .flowstate-home-shell--desktop .flowstate-home-right-rail.is-collapsed .task-right-rail-toggle {
    left: calc(50% - 1.125rem);
  }

  .page:not(.theme-dark) .flowstate-home-shell--desktop .task-right-rail-toggle {
    border-color: rgba(100, 116, 139, 0.3);
    color: #526074;
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.14);
  }

  .page:not(.theme-dark) .flowstate-home-shell--desktop .task-right-rail-toggle:hover {
    border-color: rgba(85, 97, 216, 0.55);
    color: #4652c7;
    background: #f4f6ff;
  }
}

@media (prefers-reduced-motion: reduce) {
  .flowstate-home-shell--desktop .flowstate-home-desktop-layout,
  .flowstate-home-shell--desktop .task-right-rail-toggle {
    transition-duration: 1ms;
  }
}
/* Standalone Habits page shell
   Keeps the monthly tracker independent from legacy Bootstrap page grids. */
.habits-inner-page {
  min-height: calc(100vh - 3.5rem);
  background: #f5f7fb;
}

.habits-page {
  --habits-canvas: #f5f7fb;
  --habits-surface: #ffffff;
  --habits-surface-subtle: #f7f9fc;
  --habits-border: rgba(127, 143, 168, 0.24);
  --habits-border-soft: rgba(127, 143, 168, 0.15);
  --habits-text: #1d2637;
  --habits-muted: #66758e;
  width: 100%;
  min-height: calc(100vh - 3.5rem);
  padding: 1.4rem 1.6rem 1.7rem;
  color: var(--habits-text);
  background: var(--habits-canvas);
}

.habits-page-hero,
.habits-workspace {
  width: min(100%, 1680px);
  margin-right: auto;
  margin-left: auto;
}

.habits-page-hero {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.1rem;
}

.habits-page-hero-icon {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 0.72rem;
  color: #ffffff;
  background: var(--theme-accent);
  box-shadow: 0 7px 18px var(--theme-accent-soft);
}

.habits-page-hero-copy {
  min-width: 0;
}

.habits-page-eyebrow {
  display: block;
  margin-bottom: 0.1rem;
  color: var(--theme-accent-strong);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.habits-page-hero h1 {
  margin: 0;
  color: var(--habits-text);
  font-size: 1.45rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  padding: 0;
}

.habits-page-hero p {
  margin: 0.12rem 0 0;
  color: var(--habits-muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.habits-workspace {
  min-width: 0;
}

.habits-workspace .habit-tracker-panel {
  width: 100%;
  margin: 0;
  padding: 1rem !important;
  border-color: var(--habits-border) !important;
  border-radius: 1rem !important;
  background: var(--habits-surface) !important;
  box-shadow: 0 12px 28px rgba(39, 58, 92, 0.07) !important;
}

.habits-workspace .habit-tracker-toolbar {
  padding: 0.1rem 0.1rem 0;
}

.habits-workspace .habit-tracker-table-shell {
  max-width: 100%;
  border-color: var(--habits-border);
  background: var(--habits-surface-subtle);
  overscroll-behavior-inline: contain;
  scrollbar-color: rgba(112, 124, 148, 0.5) transparent;
  scrollbar-width: thin;
}

.habits-workspace .habit-tracker-table-shell::-webkit-scrollbar {
  height: 0.6rem;
}

.habits-workspace .habit-tracker-table-shell::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background: rgba(112, 124, 148, 0.48);
  background-clip: padding-box;
}

.habits-workspace .habit-tracker-composer {
  border-color: var(--habits-border-soft);
  background: var(--habits-surface-subtle);
}

.page.theme-dark .habits-inner-page,
.page.theme-dark .habits-page {
  --habits-canvas: #12141a;
  --habits-surface: #1a1d26;
  --habits-surface-subtle: #20232e;
  --habits-border: rgba(136, 145, 163, 0.24);
  --habits-border-soft: rgba(136, 145, 163, 0.14);
  --habits-text: #eef2fb;
  --habits-muted: #9ca5b9;
  background: var(--habits-canvas) !important;
}

.page.theme-dark .habits-page-hero {
  background: transparent;
  box-shadow: none;
}

.page.theme-dark .habits-page-hero h1 {
  color: var(--habits-text);
}

.page.theme-dark .habits-page-hero p {
  color: var(--habits-muted);
}

.page.theme-dark .habits-workspace .habit-tracker-panel {
  border-color: var(--habits-border) !important;
  background: var(--habits-surface) !important;
  box-shadow: none !important;
}

.page.theme-dark .habits-workspace .habit-tracker-stat {
  border-color: var(--habits-border-soft);
  background: var(--habits-surface-subtle);
}

.page.theme-dark .habits-workspace .habit-tracker-stat-value {
  color: var(--habits-text);
}

.page.theme-dark .habits-workspace .habit-tracker-table-shell {
  border-color: var(--habits-border);
  background: var(--habits-surface-subtle);
}

.page.theme-dark .habits-workspace .habit-tracker-table thead th {
  color: #dfe5f0;
  background: #252934;
  box-shadow: inset 0 -1px 0 var(--habits-border-soft);
}

.page.theme-dark .habits-workspace .habit-tracker-name-header {
  color: var(--habits-text) !important;
  background: #252934 !important;
  box-shadow: inset -1px 0 0 var(--habits-border-soft), inset 0 -1px 0 var(--habits-border-soft);
}

.page.theme-dark .habits-workspace .habit-tracker-name-cell {
  background: #1d2029;
  box-shadow: inset -1px 0 0 var(--habits-border-soft), inset 0 -1px 0 var(--habits-border-soft);
}

.page.theme-dark .habits-workspace .habit-tracker-day-cell {
  background: var(--habits-surface);
}

.page.theme-dark .habits-workspace .habit-tracker-row:hover .habit-tracker-name-cell,
.page.theme-dark .habits-workspace .habit-tracker-row:hover .habit-tracker-day-cell {
  background: #242833;
}

.page.theme-dark .habits-workspace .habit-tracker-composer {
  border-color: var(--habits-border-soft);
  background: var(--habits-surface-subtle);
}

.page.theme-dark .habits-workspace .habit-tracker-select,
.page.theme-dark .habits-workspace .habit-tracker-year-input,
.page.theme-dark .habits-workspace .habit-tracker-edit-input,
.page.theme-dark .habits-workspace .habit-tracker-input {
  border-color: var(--habits-border) !important;
  background: #141720 !important;
  color: var(--habits-text) !important;
}

@media (max-width: 991.98px) {
  .habits-inner-page,
  .habits-page {
    min-height: calc(100vh - 3.5rem);
  }

  .habits-page {
    padding: 1rem 0.8rem;
  }

  .habits-workspace .habit-tracker-panel {
    padding: 0.85rem !important;
  }
}

@media (max-width: 640px) {
  .habits-page-hero {
    align-items: center;
  }

  .habits-page-hero-icon {
    width: 2.6rem;
    height: 2.6rem;
  }

  .habits-page-hero h1 {
    font-size: 1.45rem;
  }

  .habits-page-hero p {
    font-size: 0.88rem;
  }

  .habits-workspace .habit-tracker-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 7rem;
  }

  .habits-workspace .habit-tracker-composer-form {
    flex-direction: column;
  }

  .habits-workspace .habit-tracker-add-btn {
    width: 100%;
  }
}

/* Journal standalone-shell cascade fixes. */
.journal-workspace > .journal-workspace-tabs .nav-item > button.nav-link {
  width: 100%;
  margin: 0;
  color: var(--journal-muted) !important;
  background: transparent !important;
}

.journal-workspace > .journal-workspace-tabs .nav-item > button.nav-link:hover {
  color: var(--journal-text) !important;
  border-color: var(--journal-border-soft) !important;
  background: var(--journal-surface-subtle) !important;
}

.journal-workspace > .journal-workspace-tabs .nav-item > button.nav-link.active {
  color: var(--journal-text) !important;
  border-color: hsla(var(--theme-hue), 72%, 58%, 0.28) !important;
  background: hsla(var(--theme-hue), 76%, 58%, 0.14) !important;
}

.journal-workspace-tabs .tasklist-title-left {
  flex: 1 1 auto;
  overflow: hidden;
}

.journal-workspace-tabs .tasklist-name {
  display: block;
  flex: 1 1 auto;
  overflow: hidden;
  color: inherit !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.journal-workspace-tabs .journal-page-add-tab-title {
  color: inherit !important;
}

.journal-page-editor-card {
  padding: 0 !important;
}

.journal-workspace-sidebar,
.journal-page-calendar-card,
.journal-page-insights-card {
  width: 100%;
}

.journal-page-calendar-card {
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

.journal-page-insights-card {
  margin: 0.85rem 0 0 !important;
}

.journal-page-calendar-card .react-calendar {
  width: 100% !important;
  margin: 0;
  border: 0 !important;
  border-radius: 0.82rem;
  box-shadow: none !important;
}

.journal-page-calendar-card .react-calendar__navigation {
  display: grid;
  grid-template-columns: 2rem 2rem minmax(0, 1fr) 2rem 2rem;
  align-items: center;
}

.journal-page-calendar-card .react-calendar__navigation button {
  min-width: 0;
  padding-right: 0.15rem;
  padding-left: 0.15rem;
}

.journal-page-calendar-card .react-calendar__navigation__label,
.journal-page-calendar-card .react-calendar__navigation__label__labelText {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.page.theme-dark .journal-workspace > .journal-workspace-tabs .nav-item > button.nav-link {
  color: #cbd3e1 !important;
  background: transparent !important;
}

.page.theme-dark .journal-workspace > .journal-workspace-tabs .nav-item > button.nav-link:hover {
  color: var(--journal-text) !important;
  background: var(--journal-surface-subtle) !important;
}

.page.theme-dark .journal-workspace > .journal-workspace-tabs .nav-item > button.nav-link.active {
  color: #ffffff !important;
  background: hsla(var(--theme-hue), 72%, 58%, 0.2) !important;
}

.page.theme-dark .journal-page-calendar-card,
.page.theme-dark .journal-page-calendar-card .react-calendar {
  border-color: var(--journal-border) !important;
  background: var(--journal-surface) !important;
}

.page.theme-dark .journal-page-calendar-card .react-calendar__navigation button:enabled:hover,
.page.theme-dark .journal-page-calendar-card .react-calendar__navigation button:enabled:focus {
  color: var(--journal-text) !important;
  background: var(--journal-surface-subtle) !important;
}

/* Keep task option menus above drag-and-drop row paint layers. */
#root .page .taskListContainer.has-open-task-menu {
  position: relative;
  z-index: 1450;
  overflow: visible !important;
}

#root .page .taskListContainer.has-open-task-menu > div,
#root .page .taskListContainer.has-open-task-menu li.task-item-shell,
#root .page .taskListContainer.has-open-task-menu .task-item-actions,
#root .page .taskListContainer.has-open-task-menu .dropdown {
  position: relative;
  overflow: visible !important;
}

#root .page .taskListContainer.has-open-task-menu > div {
  z-index: 1451;
}

#root .page .taskListContainer.has-open-task-menu li.task-item-shell {
  z-index: 1452;
}

#root .page .taskListContainer.has-open-task-menu .task-item-actions,
#root .page .taskListContainer.has-open-task-menu .dropdown {
  z-index: 1453;
  opacity: 1;
  transform: none;
}

#root .page .taskListContainer.has-open-task-menu .dropdown-menu.show {
  z-index: 1454 !important;
  display: block !important;
  min-width: 10rem;
  padding: 0.35rem 0;
  border: 1px solid rgba(113, 128, 150, 0.28) !important;
  border-radius: 0.5rem;
  opacity: 1 !important;
  background: #ffffff !important;
  box-shadow: 0 14px 30px rgba(25, 34, 51, 0.2) !important;
  pointer-events: auto !important;
  isolation: isolate;
}

#root .page .taskListContainer.has-open-task-menu .dropdown-item {
  position: relative;
  z-index: 1;
  padding: 0.48rem 0.9rem;
  color: #344158 !important;
  background: transparent !important;
  pointer-events: auto !important;
}

#root .page .taskListContainer.has-open-task-menu .dropdown-item:hover,
#root .page .taskListContainer.has-open-task-menu .dropdown-item:focus {
  color: #1c2638 !important;
  background: #eef2f8 !important;
}

#root .page.theme-dark .taskListContainer.has-open-task-menu .dropdown-menu.show {
  border-color: rgba(136, 145, 163, 0.3) !important;
  background: #1a1d26 !important;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.46) !important;
}

#root .page.theme-dark .taskListContainer.has-open-task-menu .dropdown-item {
  color: #dce3ef !important;
  background: #1a1d26 !important;
}

#root .page.theme-dark .taskListContainer.has-open-task-menu .dropdown-item:hover,
#root .page.theme-dark .taskListContainer.has-open-task-menu .dropdown-item:focus {
  color: #ffffff !important;
  background: #292e3a !important;
}

#root .page.theme-dark .taskListContainer.has-open-task-menu .dropdown-item.text-danger {
  color: #ff9b9b !important;
}

/* Compact, viewport-safe Task Properties dialog. */
body .task-properties-modal .task-properties-modal-dialog {
  width: calc(100% - 1.5rem);
  max-width: 680px !important;
  min-height: calc(100% - 1.5rem);
  margin: 0.75rem auto !important;
}

body .task-properties-modal .task-properties-modal-content {
  display: flex;
  max-height: calc(100dvh - 1.5rem);
  border-radius: 0.72rem;
}

body .task-properties-modal .modal-header {
  flex: 0 0 auto;
  min-height: 3.2rem;
  padding: 0.62rem 0.82rem;
}

body .task-properties-modal .modal-title {
  font-size: 1.18rem;
  line-height: 1.2;
}

body .task-properties-modal .modal-header .close,
body .task-properties-modal .modal-header .btn-close {
  margin: -0.35rem -0.28rem -0.35rem auto;
  padding: 0.65rem;
}

body .task-properties-modal .task-properties-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.72rem 0.82rem 0.8rem;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

body .task-properties-modal .task-properties-summary {
  display: grid;
  gap: 0.32rem;
  margin: 0 0 0.72rem;
  padding: 0.58rem 0.68rem;
  border-radius: 0.55rem;
  font-size: 0.82rem;
  line-height: 1.35;
}

body .task-properties-modal .task-properties-summary-row {
  display: grid;
  grid-template-columns: 4rem minmax(0, 1fr);
  align-items: baseline;
  gap: 0.55rem;
  min-width: 0;
}

body .task-properties-modal .task-properties-summary-row > span {
  color: #8290a6 !important;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

body .task-properties-modal .task-properties-summary-row > strong {
  overflow: hidden;
  color: inherit !important;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .task-properties-modal .task-properties-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 0.62rem;
}

body .task-properties-modal .task-properties-field {
  min-width: 0;
}

body .task-properties-modal .task-properties-field > label,
body .task-properties-modal .edit-time-field > label {
  margin-bottom: 0.25rem;
  font-size: 0.69rem;
  line-height: 1.15;
  letter-spacing: 0.075em;
}

body .task-properties-modal .task-properties-field textarea.form-control {
  min-height: 4rem;
  max-height: 8rem;
  padding: 0.52rem 0.65rem;
  resize: vertical;
}

body .task-properties-modal .task-properties-field .form-control,
body .task-properties-modal .task-properties-field .dropdown-container,
body .task-properties-modal .task-properties-field .dropdown-heading {
  min-height: 2.35rem;
  border-radius: 0.45rem !important;
}

body .task-properties-modal .task-properties-field input.form-control,
body .task-properties-modal .task-properties-field select.form-control {
  height: 2.35rem;
  padding: 0.4rem 0.62rem;
  font-size: 0.88rem;
}

body .task-properties-modal .task-properties-field .dropdown-heading {
  padding-top: 0.38rem;
  padding-bottom: 0.38rem;
}

body .task-properties-modal .edit-time-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
}

body .task-properties-modal .edit-time-field .form-control {
  height: 2.35rem;
  min-height: 2.35rem;
  padding: 0.35rem 0.45rem;
  font-size: 0.9rem;
}

body .task-properties-modal .modal-footer {
  flex: 0 0 auto;
  gap: 0.5rem;
  padding: 0.62rem 0.82rem;
}

body .task-properties-modal .modal-footer .btn {
  min-width: 6.5rem;
  min-height: 2.3rem;
  margin: 0;
  padding: 0.38rem 0.85rem;
  font-size: 0.88rem;
}

body.theme-dark .task-properties-modal .task-properties-summary {
  border-color: rgba(136, 145, 163, 0.2);
  background: #20232e;
  color: #dce3ef !important;
}

body:not(.theme-dark) .task-properties-modal .task-properties-summary,
body.theme-light .task-properties-modal .task-properties-summary {
  border-color: rgba(148, 163, 184, 0.3);
  background: #f3f6fb;
  color: #334155 !important;
}

@media (max-height: 700px) {
  body .task-properties-modal .modal-header {
    min-height: 2.8rem;
    padding-top: 0.48rem;
    padding-bottom: 0.48rem;
  }

  body .task-properties-modal .task-properties-modal-body {
    padding-top: 0.58rem;
    padding-bottom: 0.62rem;
  }

  body .task-properties-modal .task-properties-summary {
    margin-bottom: 0.58rem;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
  }

  body .task-properties-modal .task-properties-field textarea.form-control {
    min-height: 3.4rem;
  }

  body .task-properties-modal .modal-footer {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
}

@media (max-width: 480px) {
  body .task-properties-modal .task-properties-modal-dialog {
    width: calc(100% - 0.75rem);
    min-height: calc(100% - 0.75rem);
    margin: 0.375rem auto !important;
  }

  body .task-properties-modal .task-properties-modal-content {
    max-height: calc(100dvh - 0.75rem);
  }

  body .task-properties-modal .task-properties-summary-row {
    grid-template-columns: 3.5rem minmax(0, 1fr);
  }

  body .task-properties-modal .modal-footer {
    flex-wrap: nowrap;
  }

  body .task-properties-modal .modal-footer .btn {
    flex: 1 1 0;
    min-width: 0;
  }
}

/* Match Task Properties to the Calendar task-modal visual system. */
body .task-properties-modal-dialog {
  --calendar-surface: #ffffff;
  --calendar-surface-subtle: #f8f9fc;
  --calendar-border: #dfe4ed;
  --calendar-text: #172033;
  --calendar-muted: #718096;
  color-scheme: light;
}

body.theme-dark .task-properties-modal-dialog {
  --calendar-surface: #1a1d26;
  --calendar-surface-subtle: #20232e;
  --calendar-border: #2a2e3a;
  --calendar-text: #eef2fb;
  --calendar-muted: #9ca5b9;
  color-scheme: dark;
}

body .task-properties-modal .task-properties-modal-content {
  color: var(--calendar-text) !important;
  border: 1px solid var(--calendar-border) !important;
  border-radius: 0.85rem;
  background: var(--calendar-surface) !important;
  box-shadow: 0 18px 48px rgba(13, 20, 35, 0.3) !important;
}

body .task-properties-modal .modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  border-bottom: 1px solid var(--calendar-border) !important;
  background: var(--calendar-surface-subtle) !important;
}

body .task-properties-modal .task-properties-eyebrow {
  display: block;
  margin-bottom: 0.12rem;
  color: var(--theme-accent) !important;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body .task-properties-modal .modal-title {
  color: var(--calendar-text) !important;
  font-weight: 750;
  text-align: left;
}

body .task-properties-modal .task-properties-close {
  flex: 0 0 auto;
  color: var(--calendar-muted) !important;
  border-color: var(--calendar-border) !important;
  background: var(--calendar-surface) !important;
}

body .task-properties-modal .task-properties-close:hover,
body .task-properties-modal .task-properties-close:focus-visible {
  color: var(--theme-accent) !important;
  border-color: var(--theme-accent) !important;
  background: var(--theme-accent-surface) !important;
  outline: none;
}

body .task-properties-modal .task-properties-modal-body {
  color: var(--calendar-text) !important;
  background: var(--calendar-surface) !important;
}

body .task-properties-modal .task-properties-summary {
  color: var(--calendar-text) !important;
  border: 1px solid var(--calendar-border) !important;
  background: var(--calendar-surface-subtle) !important;
}

body .task-properties-modal .task-properties-summary-row > span {
  color: var(--calendar-muted) !important;
}

body .task-properties-modal .task-properties-summary-row > strong {
  color: var(--calendar-text) !important;
}

body .task-properties-modal .task-properties-field > label,
body .task-properties-modal .edit-time-field > label {
  color: var(--calendar-muted) !important;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: none;
}

body .task-properties-modal .task-properties-field .form-control,
body .task-properties-modal .task-properties-field .dropdown-container,
body .task-properties-modal .task-properties-field .dropdown-heading,
body .task-properties-modal .task-properties-field .dropdown-content,
body .task-properties-modal .task-properties-field .dropdown-content .item-renderer,
body .task-properties-modal .edit-time-field .form-control {
  color: var(--calendar-text) !important;
  border-color: var(--calendar-border) !important;
  background: var(--calendar-surface) !important;
  box-shadow: none !important;
}

body .task-properties-modal .task-properties-field .dropdown-container {
  --rmsc-main: var(--theme-accent);
  --rmsc-hover: var(--calendar-surface-subtle);
  --rmsc-selected: var(--theme-accent-surface);
  --rmsc-border: var(--calendar-border);
  --rmsc-gray: var(--calendar-muted);
  --rmsc-bg: var(--calendar-surface);
}

body .task-properties-modal .task-properties-field .form-control:focus,
body .task-properties-modal .task-properties-field .dropdown-container:focus-within,
body .task-properties-modal .edit-time-field .form-control:focus {
  border-color: var(--theme-accent) !important;
  box-shadow: 0 0 0 0.16rem var(--theme-accent-soft) !important;
  outline: none;
}

body .task-properties-modal .modal-footer {
  border-top: 1px solid var(--calendar-border) !important;
  background: var(--calendar-surface-subtle) !important;
}

body .task-properties-modal .modal-footer .btn {
  border-radius: 0.52rem !important;
  font-weight: 750;
}

body .task-properties-modal .modal-footer .btn-primary {
  color: #ffffff !important;
  border-color: var(--theme-accent) !important;
  background: var(--theme-accent) !important;
}

body .task-properties-modal .modal-footer .btn-primary:hover,
body .task-properties-modal .modal-footer .btn-primary:focus-visible {
  border-color: var(--theme-accent-strong) !important;
  background: var(--theme-accent-strong) !important;
}

body .task-properties-modal .modal-footer .btn-secondary {
  color: var(--calendar-text) !important;
  border-color: var(--calendar-border) !important;
  background: var(--calendar-surface) !important;
}

body .task-properties-modal .modal-footer .btn-secondary:hover,
body .task-properties-modal .modal-footer .btn-secondary:focus-visible {
  color: var(--theme-accent) !important;
  border-color: var(--theme-accent) !important;
  background: var(--theme-accent-surface) !important;
}
+/* Task2 is a clean, isolated replacement workspace. */
.task2-inner-page { min-height: calc(100vh - 56px); padding: 0 !important; background: #f4f7fb; }
.page.theme-dark .task2-inner-page { background: #101319; }
.task2-page {
  --task2-bg: #f4f7fb; --task2-panel: #fff; --task2-panel-soft: #f8faff;
  --task2-panel-raised: #eef2f8; --task2-border: #dfe4ed;
  --task2-border-soft: rgba(113, 128, 150, .10); --task2-text: #162033;
  --task2-muted: #748096; --task2-accent: var(--theme-accent, #4f5df5);
  --task2-accent-soft: var(--theme-accent-soft, rgba(79, 93, 245, .18));
  min-height: calc(100vh - 56px); color: var(--task2-text); background: var(--task2-bg);
}
.page.theme-dark .task2-page {
  --task2-bg: #101319; --task2-panel: #191e28; --task2-panel-soft: #151a23;
  --task2-panel-raised: #222936; --task2-border: #2a2e3a;
  --task2-border-soft: rgba(127, 139, 163, .10); --task2-text: #f2f5fb;
  --task2-muted: #98a4b9; color-scheme: dark;
}
.task2-shell { position: relative; display: grid; grid-template-columns: 14.5rem minmax(0, 1fr) 19.5rem; min-height: calc(100vh - 56px); }
.task2-page.left-collapsed .task2-shell { grid-template-columns: minmax(0, 1fr) 19.5rem; }
.task2-page.right-collapsed .task2-shell { grid-template-columns: 14.5rem minmax(0, 1fr); }
.task2-page.left-collapsed.right-collapsed .task2-shell { grid-template-columns: minmax(0, 1fr); }
.task2-lists-panel, .task2-overview-panel { position: relative; min-width: 0; background: var(--task2-panel); }
.task2-lists-panel { border-right: 1px solid var(--task2-border); }
.task2-overview-panel { padding: 1rem; border-left: 1px solid var(--task2-border); }
.task2-panel-heading {
  display: flex; align-items: center; justify-content: space-between; min-height: 3.3rem;
  padding: .85rem .9rem; color: var(--task2-muted); font-size: .72rem; font-weight: 800;
  letter-spacing: .11em; text-transform: uppercase;
}
.task2-panel-heading.is-controls-only { justify-content:flex-end; min-height:0; padding:0 0 .6rem; }
.task2-list-stack { display: grid; gap: .25rem; padding: 0 .55rem; }
.task2-list-button {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  padding: .72rem .75rem; color: var(--task2-text); border: 1px solid transparent;
  border-radius: .55rem; background: transparent; font-weight: 400; text-align: left; transition: 140ms ease;
}
.task2-list-button:hover { color: var(--task2-text); background: var(--task2-panel-raised); }
.task2-list-count { min-width: 1.7rem; padding: .08rem .38rem; border-radius: 999px; background: rgba(125,139,166,.14); font-size: .72rem; text-align: center; }
.task2-add-list {
  display: flex; align-items: center; gap: .42rem; width: calc(100% - 1.1rem);
  margin: .55rem; padding: .65rem .75rem; color: var(--task2-muted); border: 1px dashed var(--task2-border);
  border-radius: .55rem; background: transparent;
}
.task2-add-list:hover { color: var(--task2-accent); border-color: var(--task2-accent); background: var(--task2-accent-soft); }
.task2-new-list { display: flex; gap: .28rem; margin: .55rem; }
.task2-new-list input {
  min-width: 0; flex: 1; padding: .55rem .62rem; color: var(--task2-text);
  border: 1px solid var(--task2-border); border-radius: .45rem; background: var(--task2-panel-soft);
}
.task2-workspace { min-width: 0; padding: 1.35rem 1.45rem 3rem; }
.task2-workspace-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.task2-workspace-header h1 { margin:0 0 .12rem; color:var(--task2-accent); font-family:inherit; font-size:22px; font-weight:600; line-height:1.15; transition:color 160ms ease; }
.task2-eyebrow { color:var(--task2-accent); font-family:inherit; font-size:.78rem; font-weight:400; letter-spacing:.13em; text-transform:uppercase; opacity:.68; transition:color 160ms ease; }
.task2-view-switch { display:flex; padding:0; border:1px solid var(--task2-border); border-radius:.72rem; background:var(--task2-panel); }
.task2-view-switch > button {
  min-width:0; padding:0.5rem .9rem; color:var(--task2-muted);
  border:0; border-radius:0; background:transparent; font-size:.88rem; font-weight:600; line-height:1.2;
}
.task2-view-switch > button:first-child { border-radius:.68rem 0 0 .68rem; }
.task2-view-switch > button + button { border-left:1px solid var(--task2-border-soft); }
.task2-view-switch > button:hover, .task2-view-switch > button:focus-visible { color:var(--task2-text); background:var(--task2-accent-soft); outline:none; }
.task2-view-switch > button.is-active { color:#fff; background:var(--task2-accent); box-shadow:none; }
.task2-date-toolbar, .task2-task-card { border: 1px solid var(--task2-border); background: var(--task2-panel); }
.task2-date-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .6rem .75rem;
  border-radius: .75rem .75rem 0 0;
}
.task2-date-controls { display: flex; align-items: center; gap: .35rem; }
.task2-icon-button, .task2-today-button {
  display: inline-flex; align-items: center; justify-content: center; height: 2.15rem;
  color: var(--task2-muted); border: 1px solid var(--task2-border); border-radius: .48rem; background: var(--task2-panel-soft);
}
.task2-icon-button { width: 2.15rem; padding: 0; }
.task2-today-button { padding: 0 .75rem; font-weight: 750; }
.task2-icon-button:hover, .task2-today-button:hover { color: var(--task2-accent); border-color: var(--task2-accent); background: var(--task2-accent-soft); }
.task2-icon-button.is-accent { color: #fff; border-color: var(--task2-accent); background: var(--task2-accent); }
.task2-progress-copy { display: flex; align-items: center; gap: .7rem; color: var(--task2-muted); font-size: .78rem; }
.task2-progress { width: clamp(5.5rem, 12vw, 10rem); height: .3rem; overflow: hidden; border-radius: 999px; background: var(--task2-panel-raised); }
.task2-progress span { display: block; height: 100%; border-radius: inherit; background: var(--task2-accent); box-shadow: 0 0 10px var(--task2-accent); transition: width 220ms ease; }
.task2-task-card { overflow: visible; border-top: 0; border-radius: 0 0 .75rem .75rem; }
.task2-task-card-heading {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3rem;
  padding: .62rem .9rem; border-bottom: 1px solid var(--task2-border-soft); background: var(--task2-panel-soft);
}
.task2-task-card-heading > div { display: flex; align-items: center; gap: .5rem; }
.task2-completed-toggle { display: flex; align-items: center; gap: .35rem; color: var(--task2-muted); border: 0; background: transparent; font-size: .78rem; font-weight: 700; }
.task2-completed-toggle svg { transition: transform 150ms ease; }
.task2-completed-toggle svg.is-open { transform: rotate(180deg); }
.task2-composer { display: flex; gap: .65rem; padding: 1rem; border-bottom: 1px solid var(--task2-border-soft); }
.task2-composer input {
  min-width: 0; flex: 1; height: 2.85rem; padding: 0 .9rem; color: var(--task2-text);
  border: 1px solid var(--task2-border); border-radius: .65rem; background: var(--task2-panel-soft);
}
.task2-composer input:focus { border-color: var(--task2-accent); box-shadow: 0 0 0 .17rem var(--task2-accent-soft); outline: none; }
.task2-composer button, .task2-primary-button, .task2-empty-state > button {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem; padding: .62rem 1rem;
  color: #fff; border: 1px solid var(--task2-accent); border-radius: .58rem; background: var(--task2-accent);
  box-shadow: 0 7px 20px var(--task2-accent-soft); font-weight: 750;
}
.task2-composer button:disabled { opacity: .5; box-shadow: none; }
.task2-task-list { min-height: 8rem; }
.task2-task-row {
  display: grid; grid-template-columns: 2rem minmax(0,1fr) 2.15rem; align-items: center;
  gap: .6rem; min-height: 3.55rem; padding: .45rem .9rem; border-bottom: 1px solid var(--task2-border-soft); transition: background 120ms ease;
}
.task2-task-row:hover { background: var(--task2-panel-soft); }
.task2-task-row:last-child { border-bottom: 0; }
.task2-check {
  position:relative; z-index:2; display:inline-flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem;
  margin:-.34rem; padding:0; color:#fff; border:0; border-radius:.6rem; background:transparent;
}
.task2-check-visual {
  display:inline-flex; align-items:center; justify-content:center; width:1.82rem; height:1.82rem;
  border:1px solid var(--task2-border); border-radius:.42rem; background:var(--task2-panel-soft); transition:130ms ease;
}
.task2-check:hover .task2-check-visual { border-color:var(--task2-accent); background:var(--task2-accent-soft); box-shadow:0 0 0 .18rem var(--task2-accent-soft); }
.task2-task-row.is-complete .task2-check-visual { border-color:var(--task2-accent); background:var(--task2-accent); }
.task2-check.is-sparkling .task2-check-visual svg { animation:task2-checkmark-pop 480ms cubic-bezier(.2,.8,.25,1); }
.task2-check.is-sparkling::before,
.task2-check.is-sparkling::after {
  position:absolute; z-index:5; top:50%; left:50%; color:var(--task2-accent); font-family:Arial,sans-serif; line-height:1;
  pointer-events:none; opacity:0;
}
.task2-check.is-sparkling::before { content:"\2726"; font-size:.95rem; animation:task2-sparkle-left 880ms ease-out; }
.task2-check.is-sparkling::after { content:"\2727"; font-size:.72rem; animation:task2-sparkle-right 840ms 70ms ease-out; }
.task2-check-pulse {
  position:absolute; z-index:4; top:50%; left:50%; width:1.82rem; height:1.82rem; border:2px solid var(--task2-accent); border-radius:50%;
  pointer-events:none; opacity:0; animation:task2-check-radial-pulse 850ms cubic-bezier(.16,.72,.28,1) forwards;
}
@keyframes task2-checkmark-pop {
  0% { transform:scale(.25) rotate(-18deg); opacity:0; }
  55% { transform:scale(1.18) rotate(4deg); opacity:1; }
  100% { transform:scale(1) rotate(0); opacity:1; }
}
@keyframes task2-check-radial-pulse {
  0% { transform:translate(-50%,-50%) scale(.72); opacity:.95; }
  55% { opacity:.62; }
  100% { transform:translate(-50%,-50%) scale(2.05); opacity:0; }
}
@keyframes task2-sparkle-left {
  0% { transform:translate(-50%,-35%) scale(.15) rotate(0); opacity:0; }
  20% { opacity:1; }
  58% { opacity:.95; }
  100% { transform:translate(calc(-50% - 1.05rem),calc(-50% - 1.15rem)) scale(1.05) rotate(-32deg); opacity:0; }
}
@keyframes task2-sparkle-right {
  0% { transform:translate(-50%,-35%) scale(.15) rotate(0); opacity:0; }
  20% { opacity:1; }
  58% { opacity:.9; }
  100% { transform:translate(calc(-50% + 1.1rem),calc(-50% - .9rem)) scale(1) rotate(36deg); opacity:0; }
}
@media (prefers-reduced-motion:reduce) {
  .task2-check.is-sparkling svg,
  .task2-check.is-sparkling::before, .task2-check.is-sparkling::after,
  .task2-check-pulse { animation:none; }
  .task2-check-pulse { display:none; }
}
.task2-task-copy {
  display: flex; min-width: 0; padding: 0; flex-direction: column; gap: .08rem;
  color: inherit; border: 0; background: transparent; font: inherit; text-align: left; cursor: pointer;
}
.task2-task-copy:focus-visible { border-radius: .3rem; box-shadow: 0 0 0 .16rem var(--task2-accent-soft); outline: 1px solid var(--task2-accent); }
.task2-task-copy:hover .task2-task-title,
.task2-task-copy:focus-visible .task2-task-title,
.task2-task-row:hover:not(:has(.task2-drag-handle:hover, .task2-check:hover, .task2-schedule-wrap:hover, .task2-focus-button:hover, .task2-task-menu-wrap:hover)) .task2-task-title {
  text-decoration: underline;
  text-underline-offset: .14em;
}
.task2-task-title { overflow: hidden; color: var(--task2-text); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.task2-task-date { color: var(--task2-muted); font-size: .72rem; }
.task2-task-row.is-complete .task2-task-title { color:var(--task2-muted); font-weight:400; text-decoration:none; }
.page.theme-dark .task2-task-row.is-complete .task2-task-title,
body.theme-dark .task2-task-row.is-complete .task2-task-title { color:#747f93; font-weight:400; }
.task2-task-row.is-complete .task2-task-copy:hover .task2-task-title,
.task2-task-row.is-complete .task2-task-copy:focus-visible .task2-task-title,
.task2-task-row.is-complete:hover:not(:has(.task2-drag-handle:hover, .task2-check:hover, .task2-schedule-wrap:hover, .task2-focus-button:hover, .task2-task-menu-wrap:hover)) .task2-task-title {
  text-decoration-line:underline;
}
.task2-completed-section { background: var(--task2-panel-soft); }
.task2-section-label { padding: .65rem .95rem .3rem; color: var(--task2-muted); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.task2-loading, .task2-inline-empty { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 8rem; color: var(--task2-muted); }
.task2-alert { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: .75rem 0; padding: .7rem .85rem; color: #b42318; border: 1px solid rgba(239,68,68,.3); border-radius: .55rem; background: rgba(239,68,68,.08); }
.task2-alert button { color: inherit; border: 0; background: transparent; }
.task2-empty-state { display: grid; justify-items: center; padding: 4rem 1rem; color: var(--task2-muted); text-align: center; }
.task2-empty-state h2 { margin: .8rem 0 .3rem; color: var(--task2-text); font-size: 1.2rem; }
.task2-empty-state p { max-width: 28rem; }
.task2-rail-toggle {
  position:absolute; z-index:12; top:.82rem; display:inline-flex; align-items:center; justify-content:center;
  width:2.25rem; height:2.25rem; padding:0; color:#cbd3e5; border:1px solid rgba(126,134,149,.42);
  border-radius:999px; background:#242834; box-shadow:0 4px 12px rgba(0,0,0,.24); cursor:pointer;
  transition:left 180ms ease, right 180ms ease, background-color 140ms ease, color 140ms ease, border-color 140ms ease;
}
.task2-rail-toggle:hover { color:#fff; border-color:rgba(132,147,255,.72); background:#30364a; }
.task2-rail-toggle:focus-visible { outline:3px solid rgba(108,122,255,.38); outline-offset:2px; }
.page:not(.theme-dark) .task2-rail-toggle { color:#526074; border-color:rgba(100,116,139,.3); background:#fff; box-shadow:0 4px 12px rgba(15,23,42,.14); }
.page:not(.theme-dark) .task2-rail-toggle:hover { color:#4652c7; border-color:rgba(85,97,216,.55); background:#f4f6ff; }
.task2-left-toggle { left:calc(14.5rem - 1.125rem); }
.task2-right-toggle { right:calc(19.5rem - 1.125rem); }
.task2-page.left-collapsed .task2-left-toggle { left: .65rem; }
.task2-page.right-collapsed .task2-right-toggle { right: .65rem; }
.task2-overview-panel .react-calendar { width: 100%; color: var(--task2-text); border: 0; background: transparent; }
.task2-overview-panel .react-calendar button { color: var(--task2-text); border-radius: .42rem; background: transparent; }
.task2-overview-panel .react-calendar button:enabled:hover, .task2-overview-panel .react-calendar button:enabled:focus { color: var(--task2-accent); background: var(--task2-accent-soft); }
.task2-overview-panel .react-calendar__tile--active, .task2-overview-panel .react-calendar__tile--now.react-calendar__tile--active { color: #fff !important; background: var(--task2-accent) !important; }
.task2-overview-panel .react-calendar__tile--now { background: var(--task2-panel-raised) !important; }
.task2-overview-panel .react-calendar__month-view__days__day--neighboringMonth { color: var(--task2-muted); opacity: .6; }
.task2-overview-panel .react-calendar__navigation { margin-bottom: .45rem; }
.task2-overview-panel .react-calendar__navigation button { min-width: 2rem; }
.task2-overview-panel .react-calendar__month-view__weekdays { color: var(--task2-muted); font-size: .67rem; }
.task2-overview-panel .react-calendar__month-view__weekdays abbr { text-decoration: none; }
.task2-overview-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; margin-top: 1rem; }
.task2-overview-stats > div { display: flex; min-width: 0; flex-direction: column; gap: .18rem; padding: .75rem; border: 1px solid var(--task2-border); border-radius: .65rem; background: var(--task2-panel-soft); }
.task2-overview-stats span { color: var(--task2-muted); font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.task2-overview-stats strong { color: var(--task2-text); font-size: 1.35rem; }
.task2-mobile-bar, .task2-mobile-drawer { display: none; }

body .task2-modal-dialog { --task2-modal-panel:#fff; --task2-modal-soft:#f8faff; --task2-modal-border:#dfe4ed; --task2-modal-text:#162033; --task2-modal-muted:#748096; }
body.theme-dark .task2-modal-dialog { --task2-modal-panel:#191e28; --task2-modal-soft:#151a23; --task2-modal-border:#2a2e3a; --task2-modal-text:#f2f5fb; --task2-modal-muted:#98a4b9; color-scheme:dark; }
body .task2-modal-content { color:var(--task2-modal-text); border:1px solid var(--task2-modal-border); border-radius:.8rem; background:var(--task2-modal-panel); box-shadow:0 20px 50px rgba(7,12,23,.3); }
body .task2-modal-content .modal-header { align-items:center; border-bottom-color:var(--task2-modal-border); background:var(--task2-modal-soft); }
body .task2-modal-content .modal-title { color:var(--task2-modal-text); font-size:1.2rem; }
body .task2-modal-content .modal-body { display:grid; gap:1rem; background:var(--task2-modal-panel); }
body .task2-modal-content .modal-footer { justify-content:space-between; border-top-color:var(--task2-modal-border); background:var(--task2-modal-soft); }
body .task2-properties-modal-dialog .modal-header,
body .task2-properties-modal-dialog .modal-footer { padding:.65rem 1rem; }
.task2-field { display:grid; gap:.38rem; margin:0; }
.task2-field > span { color:var(--task2-modal-muted); font-size:.73rem; font-weight:750; }
.task2-field input, .task2-field select { width:100%; height:2.7rem; padding:0 .75rem; color:var(--task2-modal-text); border:1px solid var(--task2-modal-border); border-radius:.52rem; background:var(--task2-modal-soft); }
.task2-field input:focus, .task2-field select:focus { border-color:var(--theme-accent); box-shadow:0 0 0 .16rem var(--theme-accent-soft); outline:none; }
.task2-modal-grid { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.task2-modal-actions { display:flex; gap:.5rem; }
.task2-secondary-button, .task2-delete-button { display:inline-flex; align-items:center; justify-content:center; gap:.38rem; padding:.6rem .9rem; color:var(--task2-modal-text); border:1px solid var(--task2-modal-border); border-radius:.52rem; background:var(--task2-modal-panel); font-weight:700; }
.task2-delete-button { color:#dc3545; }
body .task2-modal-dialog .task2-primary-button {
  color:#fff; border:1px solid var(--theme-accent-strong, #3f4de0); background:var(--theme-accent, #4f5df5);
  box-shadow:0 7px 20px var(--theme-accent-soft, rgba(79,93,245,.22));
}
body.theme-dark .task2-modal-dialog .task2-primary-button { border-color:rgba(255,255,255,.38); }
body .task2-modal-dialog .task2-primary-button:hover,
body .task2-modal-dialog .task2-primary-button:focus-visible {
  color:#fff; border-color:var(--theme-accent-strong, #3341cc); background:var(--theme-accent-strong, #3f4de0);
}
body.theme-dark .task2-modal-dialog .task2-primary-button:hover,
body.theme-dark .task2-modal-dialog .task2-primary-button:focus-visible { border-color:rgba(255,255,255,.58); }
body .task2-modal-dialog .task2-primary-button:disabled { color:#fff; opacity:.58; }

@media (max-width:1199.98px) {
  .task2-shell { grid-template-columns:13rem minmax(0,1fr); }
  .task2-overview-panel, .task2-right-toggle { display:none; }
  .task2-page.left-collapsed .task2-shell { grid-template-columns:minmax(0,1fr); }
  .task2-left-toggle { left:calc(13rem - 1.08rem); }
  .task2-mobile-bar { display:flex; justify-content:flex-end; gap:.45rem; padding:.55rem 1rem 0; background:var(--task2-bg); }
  .task2-mobile-bar button { display:inline-flex; align-items:center; gap:.35rem; padding:.45rem .7rem; color:var(--task2-muted); border:1px solid var(--task2-border); border-radius:.5rem; background:var(--task2-panel); font-weight:700; }
  .task2-mobile-bar button:first-child { display:none; }
  .task2-mobile-drawer { position:fixed; z-index:1050; inset:56px 0 0; display:block; }
  .task2-drawer-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(7,12,23,.58); }
  .task2-mobile-drawer .task2-overview-panel { position:absolute; top:0; right:0; display:block; width:min(22rem,90vw); height:100%; overflow-y:auto; box-shadow:-15px 0 40px rgba(7,12,23,.26); }
}
@media (max-width:767.98px) {
  .task2-shell, .task2-page.left-collapsed .task2-shell, .task2-page.right-collapsed .task2-shell, .task2-page.left-collapsed.right-collapsed .task2-shell { display:block; min-height:auto; }
  .task2-shell > .task2-lists-panel, .task2-rail-toggle { display:none; }
  .task2-mobile-bar { justify-content:space-between; padding:.55rem .75rem 0; }
  .task2-mobile-bar button:first-child { display:inline-flex; }
  .task2-workspace { padding:.8rem .75rem 2rem; }
  .task2-workspace-header { align-items:stretch; flex-direction:column; }
  .task2-view-switch { align-self:stretch; }
  .task2-view-switch > button { min-width:0; flex:1; }
  .task2-date-toolbar { align-items:stretch; flex-direction:column; }
  .task2-progress-copy { justify-content:space-between; }
  .task2-progress { flex:1; }
  .task2-composer { flex-direction:column; }
  .task2-composer button { min-height:2.7rem; }
  .task2-task-row { padding-inline:.7rem; }
  .task2-mobile-drawer .task2-lists-panel { position:absolute; top:0; left:0; display:block; width:min(20rem,88vw); height:100%; overflow-y:auto; box-shadow:15px 0 40px rgba(7,12,23,.26); }
  .task2-modal-grid { grid-template-columns:1fr; }
  body .task2-modal-content .modal-footer { align-items:stretch; flex-direction:column-reverse; }
  .task2-modal-actions { display:grid; grid-template-columns:1fr 1fr; }
}
+/* Task2 feature carry-over: intentionally scoped away from the legacy Tasks UI. */
.task2-header-actions { display:flex; align-items:center; gap:.45rem; }
.task2-preferences-wrap, .task2-task-menu-wrap, .task2-list-row { position:relative; }
.task2-preferences-menu, .task2-action-menu {
  position:absolute; z-index:40; top:calc(100% + .4rem); right:0; width:18rem;
  padding:.42rem; color:var(--task2-text); border:1px solid var(--task2-border);
  border-radius:.65rem; background:var(--task2-panel); box-shadow:0 18px 42px rgba(7,12,23,.28);
}
.task2-preference-row {
  display:flex; align-items:center; justify-content:space-between; gap:1rem; width:100%;
  padding:.68rem; color:var(--task2-text); border:0; border-radius:.45rem; background:transparent; text-align:left;
}
.task2-preference-row:hover { background:var(--task2-panel-raised); }
.task2-preference-row > span { display:grid; gap:.12rem; }
.task2-preference-row strong { font-size:.79rem; }
.task2-preference-row small { color:var(--task2-muted); font-size:.66rem; }
.task2-preference-row > i {
  position:relative; flex:0 0 2.25rem; width:2.25rem; height:1.25rem;
  border-radius:999px; background:var(--task2-panel-raised); transition:150ms ease;
}
.task2-preference-row > i > b {
  position:absolute; top:.18rem; left:.18rem; width:.89rem; height:.89rem;
  border-radius:50%; background:var(--task2-muted); transition:150ms ease;
}
.task2-preference-row > i.is-on { background:var(--task2-accent); box-shadow:0 0 12px var(--task2-accent-soft); }
.task2-preference-row > i.is-on > b { left:1.18rem; background:#fff; }

.task2-list-row { display:grid; grid-template-columns:minmax(0,1fr) 1.8rem; border:1px solid transparent; border-radius:.55rem; }
.task2-list-row:hover { background:var(--task2-panel-raised); }
.task2-list-row.is-active { color:#fff; border-color:var(--task2-accent); background:var(--task2-accent); box-shadow:0 7px 20px var(--task2-accent-soft); }
.task2-list-row .task2-list-button { min-width:0; padding-right:.35rem; }
.task2-list-row.is-active .task2-list-button, .task2-list-row.is-active .task2-list-options { color:#fff; }
.task2-list-row.is-active .task2-list-button { font-weight:650; }
.task2-list-row.is-active .task2-list-count { background:rgba(255,255,255,.2); }
.task2-list-options { display:flex; align-items:center; justify-content:center; padding:0; color:var(--task2-muted); border:0; background:transparent; }
.task2-list-menu { top:calc(100% + .2rem); right:.2rem; width:10.5rem; }
.task2-action-menu button {
  display:flex; align-items:center; gap:.5rem; width:100%; padding:.55rem .62rem;
  color:var(--task2-text); border:0; border-radius:.4rem; background:transparent; font-size:.78rem; text-align:left;
}
.task2-action-menu button:hover { background:var(--task2-panel-raised); }
.task2-action-menu button:disabled { opacity:.35; }
.task2-action-menu button.is-danger { color:#e05260; }
.task2-archived-lists { display:grid; gap:.25rem; margin:1rem .55rem 0; padding-top:.75rem; border-top:1px solid var(--task2-border-soft); }
.task2-archived-lists > span { padding:0 .2rem .25rem; color:var(--task2-muted); font-size:.65rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.task2-archived-row { display:grid; grid-template-columns:minmax(0,1fr) 1.8rem 1.8rem; align-items:center; gap:.15rem; padding:.35rem .4rem; color:var(--task2-muted); border-radius:.4rem; font-size:.75rem; }
.task2-archived-row > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task2-archived-row button { display:flex; align-items:center; justify-content:center; padding:0; color:inherit; border:0; background:transparent; }
.task2-archived-row button:hover { color:var(--task2-accent); }

.task2-task-row { grid-template-columns:1rem 2rem minmax(0,1fr) auto 2.15rem; }
.task2-drag-handle {
  position:relative; z-index:1; display:flex; align-items:center; justify-content:center; justify-self:center;
  width:2.5rem; height:2.5rem; margin-inline:-.75rem; padding:0; color:var(--task2-muted); cursor:grab; opacity:.45;
  transition:color 130ms ease, opacity 130ms ease;
}
.task2-drag-visual { display:flex; align-items:center; justify-content:center; padding:.24rem .15rem; border-radius:.32rem; transition:background-color 130ms ease, box-shadow 130ms ease; }
.task2-drag-handle:not(.is-disabled):hover {
  color:var(--task2-accent); opacity:1;
}
.task2-drag-handle:not(.is-disabled):hover .task2-drag-visual { background:var(--task2-accent-soft); box-shadow:0 0 0 1px var(--task2-accent); }
.task2-drag-handle.is-disabled { cursor:default; opacity:.15; }
.task2-task-row.is-focusing { background:var(--task2-accent-soft); box-shadow:inset 3px 0 0 var(--task2-accent); }
.task2-task-row.is-subtask { padding-left:1.8rem; }
.task2-task-meta { display:flex; align-items:center; flex-wrap:wrap; gap:.3rem; min-height:.1rem; }
.task2-tag, .task2-priority, .task2-note-indicator { display:inline-flex; align-items:center; gap:.2rem; padding:.08rem .35rem; color:var(--task2-muted); border-radius:999px; background:var(--task2-panel-raised); font-size:.62rem; }
.task2-priority { color:var(--task2-accent); font-weight:800; }
.task2-note-indicator { color:var(--task2-accent); }
.task2-focus-button {
  display:inline-flex; align-items:center; gap:.32rem; min-width:4.7rem; height:2.15rem; padding:0 .62rem;
  color:var(--task2-muted); border:1px solid var(--task2-border); border-radius:999px; background:var(--task2-panel-soft); font-size:.7rem; font-weight:750;
}
.task2-focus-button:hover, .task2-focus-button.is-running { color:var(--task2-accent); border-color:var(--task2-accent); background:var(--task2-accent-soft); box-shadow:0 0 12px var(--task2-accent-soft); }
.task2-task-menu-wrap .task2-action-menu { top:calc(100% + .25rem); right:0; width:10.8rem; }
.task2-dragging-shell { border-radius:.55rem; background:var(--task2-panel); box-shadow:0 15px 35px rgba(7,12,23,.25); }
.task2-order-hint { color:var(--task2-muted); font-size:.69rem; }

.task2-overview-stats > div small { color:var(--task2-muted); font-size:.64rem; }
.task2-insight-card { margin-top:.65rem; padding:.75rem; border:1px solid var(--task2-border); border-radius:.65rem; background:var(--task2-panel-soft); }
.task2-insight-title { display:block; margin-bottom:.6rem; color:var(--task2-muted); font-size:.66rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.task2-focus-row { display:grid; grid-template-columns:2rem minmax(0,1fr) 3.4rem; align-items:center; gap:.35rem; margin:.3rem 0; color:var(--task2-muted); font-size:.65rem; }
.task2-focus-row i { height:.28rem; overflow:hidden; border-radius:999px; background:var(--task2-panel-raised); }
.task2-focus-row i b { display:block; height:100%; border-radius:inherit; background:var(--task2-accent); box-shadow:0 0 7px var(--task2-accent); }
.task2-focus-row small { text-align:right; }
.task2-insight-card p { margin:0; color:var(--task2-muted); font-size:.75rem; line-height:1.5; }
.task2-insight-card p strong { color:var(--task2-text); }
.task2-activity-strip { display:grid; grid-template-columns:repeat(13,1fr); gap:.18rem; margin-top:.65rem; }
.task2-activity-strip span { aspect-ratio:1; border-radius:.12rem; background:var(--task2-accent); }

.task2-journal-card { margin-top:1rem; overflow:hidden; border:1px solid var(--task2-border); border-radius:.75rem; background:var(--task2-panel); }
.task2-journal-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem .9rem; border-bottom:1px solid var(--task2-border-soft); background:var(--task2-panel-soft); }
.task2-journal-heading > div { display:flex; align-items:center; gap:.55rem; }
.task2-journal-heading span { display:grid; }
.task2-journal-heading small { color:var(--task2-muted); font-size:.63rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.task2-journal-heading strong { color:var(--task2-text); font-size:.85rem; }
.task2-journal-heading a { color:var(--task2-accent); font-size:.72rem; font-weight:750; }
.task2-journal-entries { display:grid; gap:.45rem; padding:.75rem .9rem 0; }
.task2-journal-entries article { display:flex; justify-content:space-between; gap:1rem; padding:.6rem .7rem; border:1px solid var(--task2-border-soft); border-radius:.48rem; background:var(--task2-panel-soft); }
.task2-journal-entries p { margin:0; color:var(--task2-text); font-size:.78rem; white-space:pre-wrap; }
.task2-journal-entries small { flex:0 0 auto; color:var(--task2-muted); font-size:.65rem; }
.task2-journal-card form { display:grid; gap:.55rem; padding:.8rem .9rem; }
.task2-journal-card textarea { resize:vertical; min-height:4.7rem; padding:.7rem .8rem; color:var(--task2-text); border:1px solid var(--task2-border); border-radius:.55rem; background:var(--task2-panel-soft); }
.task2-journal-card textarea:focus { border-color:var(--task2-accent); box-shadow:0 0 0 .16rem var(--task2-accent-soft); outline:none; }
.task2-journal-card form button { justify-self:end; padding:.5rem .9rem; color:#fff; border:1px solid var(--task2-accent); border-radius:.5rem; background:var(--task2-accent); font-weight:750; }
.task2-journal-card form button:disabled { opacity:.5; }

.task2-properties-summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.55rem .7rem; border:1px solid var(--task2-modal-border); border-radius:.5rem; background:var(--task2-modal-soft); font-size:.72rem; }
.task2-properties-summary span, .task2-field span small { color:var(--task2-modal-muted); }
.task2-duration-field input[aria-invalid="true"] { border-color:#dc3545; }
.task2-field-error { color:#dc3545; font-size:.67rem; line-height:1.35; }
.task2-small-modal { max-width:26rem; }

body .task2-properties-modal-dialog { width:calc(100% - 2rem); max-width:68rem; }
body .task2-properties-modal-dialog .modal-body { max-height:min(72vh,46rem); overflow-y:auto; }
.task2-properties-layout { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(17rem,.92fr); gap:.8rem; }
.task2-properties-section {
  display:grid; align-content:start; gap:.85rem; min-width:0; padding:.85rem;
  border:1px solid var(--task2-modal-border); border-radius:.65rem; background:var(--task2-modal-soft);
}
.task2-properties-section h3 {
  display:flex; align-items:center; gap:.38rem; margin:0; color:var(--task2-modal-text);
  font-size:.82rem; font-weight:800;
}
.task2-properties-section-heading { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.task2-properties-section-heading > span { color:var(--task2-modal-muted); font-size:.67rem; white-space:nowrap; }
.task2-properties-section-heading .task2-created-meta { margin:0; text-align:right; }
.task2-properties-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:.75rem; }
.task2-properties-complete { display:inline-flex; align-items:center; gap:.38rem; margin:0; color:var(--task2-modal-text); font-size:.7rem; font-weight:750; cursor:pointer; white-space:nowrap; }
.task2-properties-complete input { width:1rem; height:1rem; margin:0; accent-color:var(--theme-accent, #4f5df5); }
.task2-notes-field textarea {
  width:100%; min-height:18rem; padding:.72rem .78rem; resize:vertical;
  color:var(--task2-modal-text); border:1px solid var(--task2-modal-border); border-radius:.52rem;
  background:var(--task2-modal-panel); font:inherit; font-size:.84rem; line-height:1.5;
}
.task2-notes-field textarea:focus { border-color:var(--theme-accent); box-shadow:0 0 0 .16rem var(--theme-accent-soft); outline:none; }
.task2-notes-section > p { margin:0; color:var(--task2-modal-muted); font-size:.68rem; line-height:1.45; }

@media (max-width:767.98px) {
  .task2-header-actions { align-items:stretch; }
  .task2-preferences-menu { position:fixed; z-index:1060; top:7.8rem; right:.75rem; left:.75rem; width:auto; }
  .task2-task-row { grid-template-columns:1rem 2rem minmax(0,1fr) 2.15rem; }
  .task2-focus-button { grid-column:3; justify-self:start; min-width:0; margin-top:.15rem; }
  .task2-task-menu-wrap { grid-column:4; grid-row:1 / span 2; }
  .task2-task-copy { align-self:end; }
  body .task2-properties-modal-dialog { width:calc(100% - 1rem); margin:.5rem auto; }
  .task2-properties-layout { grid-template-columns:1fr; }
  .task2-properties-section-heading { align-items:flex-start; }
  .task2-properties-heading-actions { flex-wrap:wrap; gap:.4rem .65rem; }
  .task2-notes-field textarea { min-height:10rem; }
}
+/* Task2 keyboard and quick-entry workflow. */
.task2-composer-input { position:relative; display:flex; min-width:0; flex:1; }
.task2-composer-input input { width:100%; padding-right:5.8rem; }
.task2-composer-input > span {
  position:absolute; top:50%; right:.72rem; display:flex; align-items:center; gap:.3rem;
  color:var(--task2-muted); font-size:.62rem; pointer-events:none; transform:translateY(-50%);
}
.task2-page kbd {
  display:inline-flex; align-items:center; justify-content:center; min-width:1.35rem; min-height:1.25rem;
  padding:.05rem .3rem; color:var(--task2-text); border:1px solid var(--task2-border);
  border-bottom-width:2px; border-radius:.28rem; background:var(--task2-panel-soft);
  box-shadow:none; font-family:inherit; font-size:.6rem; font-weight:750;
}
.task2-shortcuts {
  display:grid; grid-template-columns:1fr 1fr; gap:.32rem .55rem;
  margin-top:.35rem; padding:.65rem; border-top:1px solid var(--task2-border-soft);
}
.task2-shortcuts > span {
  grid-column:1 / -1; margin-bottom:.15rem; color:var(--task2-muted);
  font-size:.62rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
}
.task2-shortcuts > div { display:flex; align-items:center; gap:.25rem; min-width:0; }
.task2-shortcuts small { overflow:hidden; color:var(--task2-muted); font-size:.61rem; text-overflow:ellipsis; white-space:nowrap; }

@media (max-width:575.98px) {
  .task2-composer-input > span { display:none; }
  .task2-composer-input input { padding-right:.9rem; }
}
+/* Task2 Unscheduled planning inbox. */
.task2-unscheduled-button {
  display:inline-flex; align-items:center; gap:.38rem; min-height:2.15rem; padding:0 .68rem;
  color:var(--task2-muted); border:1px solid var(--task2-border); border-radius:.48rem;
  background:var(--task2-panel-soft); font-size:.72rem; font-weight:750;
}
.task2-unscheduled-button > span {
  min-width:1.25rem; padding:.02rem .3rem; border-radius:999px;
  color:var(--task2-muted); background:var(--task2-panel-raised); font-size:.62rem; text-align:center;
}
.task2-unscheduled-button:hover, .task2-unscheduled-button.is-active {
  color:var(--task2-accent); border-color:var(--task2-accent); background:var(--task2-accent-soft);
  box-shadow:0 0 12px var(--task2-accent-soft);
}
.task2-unscheduled-button.is-active > span { color:#fff; background:var(--task2-accent); }
.task2-task-row.is-unscheduled { grid-template-columns:1rem 2rem minmax(0,1fr) auto auto 2.15rem; }
.task2-task-list-label {
  display:inline-flex; align-items:center; gap:.2rem; padding:.08rem .35rem;
  color:var(--task2-accent); border-radius:999px; background:var(--task2-accent-soft);
  font-size:.62rem; font-weight:750;
}
.task2-unscheduled-group + .task2-unscheduled-group { border-top:1px solid var(--task2-border-soft); }
.task2-unscheduled-group-heading {
  display:flex; align-items:center; gap:.4rem; min-height:2.25rem; padding:.4rem .9rem;
  color:var(--task2-muted); background:var(--task2-panel-soft); font-size:.69rem;
}
.task2-unscheduled-group-heading strong { color:var(--task2-text); }
.task2-unscheduled-group-heading span {
  min-width:1.25rem; margin-left:auto; padding:.03rem .3rem; border-radius:999px;
  background:var(--task2-panel-raised); font-size:.6rem; text-align:center;
}
.task2-schedule-wrap { position:relative; }
.task2-schedule-button {
  display:inline-flex; align-items:center; gap:.32rem; min-height:2.15rem; padding:0 .62rem;
  color:var(--task2-accent); border:1px solid var(--task2-accent); border-radius:999px;
  background:var(--task2-accent-soft); font-size:.7rem; font-weight:750;
}
.task2-schedule-button:hover { color:#fff; background:var(--task2-accent); box-shadow:0 0 12px var(--task2-accent-soft); }
.task2-schedule-menu { top:calc(100% + .3rem); right:0; width:11.5rem; }
.task2-schedule-menu label {
  position:relative; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.35rem .5rem; margin:0;
  padding:.55rem .62rem; color:var(--task2-text); border-radius:.4rem; font-size:.78rem; cursor:pointer;
}
.task2-schedule-menu label:hover { background:var(--task2-panel-raised); }
.task2-schedule-menu label input {
  grid-column:1 / -1; width:100%; height:2rem; padding:0 .38rem; color:var(--task2-text);
  border:1px solid var(--task2-border); border-radius:.35rem; background:var(--task2-panel-soft); font-size:.68rem;
}
.task2-date-property { display:grid; gap:.25rem; }
.task2-date-property > button {
  display:inline-flex; align-items:center; justify-content:flex-start; gap:.3rem; justify-self:start;
  padding:.12rem 0; color:var(--theme-accent); border:0; background:transparent; font-size:.66rem; font-weight:750;
}

@media (max-width:767.98px) {
  .task2-date-controls { flex-wrap:wrap; }
  .task2-unscheduled-button { margin-left:auto; }
  .task2-task-row.is-unscheduled { grid-template-columns:1rem 2rem minmax(0,1fr) 2.15rem; }
  .task2-task-row.is-unscheduled .task2-schedule-wrap { grid-column:3; grid-row:2; justify-self:start; margin-top:.2rem; }
  .task2-task-row.is-unscheduled .task2-focus-button { grid-column:3; grid-row:3; }
  .task2-task-row.is-unscheduled .task2-task-menu-wrap { grid-column:4; grid-row:1 / span 3; }
}

@media (max-width:420px) {
  .task2-unscheduled-button { width:100%; margin-left:0; justify-content:center; }
}
+/* Task2 layout refinement: unified controls, full-width entry, denser rows. */
.task2-workspace-header > div:first-child { min-width:0; }
.task2-header-actions {
  flex:0 0 auto; flex-flow:row nowrap; align-items:flex-start; justify-content:flex-end;
  white-space:nowrap;
}
.task2-view-switch { flex-flow:row nowrap; align-items:center; }
.task2-view-switch > button { flex:0 0 auto; }
.task2-view-switch .task2-preferences-wrap {
  display:flex; flex:0 0 auto; align-items:center; align-self:stretch;
  margin-left:0; padding-left:0; border-left:1px solid var(--task2-border-soft);
}
.task2-view-switch .task2-preferences-wrap > .task2-icon-button {
  flex:0 0 2rem; width:2rem; min-width:2rem; height:100%; min-height:2rem; padding:0;
  border:0; border-radius:0 .68rem .68rem 0; background:transparent;
}
.task2-view-switch .task2-preferences-wrap > .task2-icon-button:hover,
.task2-view-switch .task2-preferences-wrap > .task2-icon-button:focus-visible {
  color:var(--task2-accent); background:var(--task2-accent-soft); box-shadow:none; outline:none;
}
.task2-composer { width:100%; align-items:center; }
.task2-composer-input { flex:1 1 0%; width:auto; max-width:none; }
.task2-composer-input input { min-width:0; max-width:none; }
.task2-composer > button[type="submit"] { flex:0 0 auto; width:auto; min-width:8rem; white-space:nowrap; }
.task2-task-row {
  min-height:3.12rem; padding:.3rem .8rem;
}
.task2-task-row .task2-icon-button { width:2rem; height:2rem; }
.task2-task-row .task2-focus-button,
.task2-task-row .task2-schedule-button { min-height:2rem; height:2rem; }

@media (max-width:767.98px) {
  .task2-header-actions { width:100%; align-items:stretch; }
  .task2-header-actions .task2-view-switch { width:100%; }
  .task2-header-actions .task2-view-switch > button { min-width:0; flex:1 1 0%; }
  .task2-header-actions .task2-preferences-wrap { flex:0 0 2.2rem; }
  .task2-composer { align-items:stretch; }
  .task2-composer > button[type="submit"] { width:100%; }
  .task2-task-row { min-height:3rem; padding:.28rem .65rem; }
}

/* Task2 interaction and disclosure polish. */
.task2-task-row { transition:background-color 140ms ease, box-shadow 140ms ease; }
.task2-task-row:hover { background:var(--task2-panel-soft); box-shadow:inset 3px 0 0 var(--task2-border); }
.task2-task-row:hover .task2-drag-handle:not(.is-disabled) { color:var(--task2-accent); opacity:.9; }
.task2-task-row:hover .task2-check-visual { border-color:var(--task2-accent); background:var(--task2-accent-soft); }
.task2-task-row:hover .task2-focus-button,
.task2-task-row:hover .task2-task-menu-wrap > .task2-icon-button { color:var(--task2-text); border-color:var(--task2-border); background:var(--task2-panel-raised); }
.task2-task-row.is-complete:hover .task2-check-visual { border-color:var(--task2-accent); background:var(--task2-accent); }
.task2-task-row.is-focusing,
.task2-task-row.is-focusing:hover { background:var(--task2-accent-soft); box-shadow:inset 3px 0 0 var(--task2-accent), 0 0 16px var(--task2-accent-soft); }
.task2-task-row.is-focusing .task2-focus-button,
.task2-task-row.is-focusing:hover .task2-focus-button { color:#fff; border-color:var(--task2-accent); background:var(--task2-accent); box-shadow:0 0 13px var(--task2-accent-soft); }
.task2-check:focus-visible { outline:none; }
.task2-check:focus-visible .task2-check-visual,
.task2-focus-button:focus-visible,
.task2-task-menu-wrap > .task2-icon-button:focus-visible,
.task2-schedule-button:focus-visible { border-color:var(--task2-accent); box-shadow:0 0 0 .16rem var(--task2-accent-soft); outline:none; }

.task2-archived-lists { display:block; margin:1rem .55rem 0; padding-top:.55rem; border-top:1px solid var(--task2-border-soft); }
.task2-archived-toggle {
  display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:.4rem;
  width:100%; min-height:2.15rem; padding:.38rem .45rem; color:var(--task2-muted);
  border:0; border-radius:.45rem; background:transparent; font-size:.72rem; font-weight:800;
  letter-spacing:.06em; text-align:left; text-transform:uppercase;
}
.task2-archived-toggle:hover, .task2-archived-toggle:focus-visible { color:var(--task2-text); background:var(--task2-panel-raised); outline:none; }
.task2-archived-toggle > span:first-child { display:flex; align-items:center; gap:.4rem; min-width:0; }
.task2-archived-toggle > svg { transition:transform 150ms ease; }
.task2-archived-lists.is-open .task2-archived-toggle > svg { transform:rotate(180deg); }
.task2-archived-count { min-width:1.4rem; padding:.05rem .34rem; color:var(--task2-text); border-radius:999px; background:var(--task2-panel-raised); font-size:.68rem; letter-spacing:0; text-align:center; }
.task2-archived-content { display:grid; gap:.2rem; padding-top:.25rem; }
.task2-archived-row { font-size:.76rem; }

.task2-journal-card:not(.is-open) .task2-journal-heading { border-bottom:0; }
.task2-journal-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; padding:.65rem .8rem; }
.task2-journal-identity { display:flex; align-items:center; gap:.55rem; min-width:0; }
.task2-journal-identity > span { min-width:0; }
.task2-journal-actions { display:flex; align-items:center; gap:.55rem; }
.task2-journal-actions > button {
  display:inline-flex; align-items:center; gap:.3rem; min-height:1.85rem; padding:0 .55rem;
  color:var(--task2-text); border:1px solid var(--task2-border); border-radius:.4rem;
  background:var(--task2-panel-raised); font-size:.74rem; font-weight:750;
}
.task2-journal-actions > button:hover, .task2-journal-actions > button:focus-visible { color:var(--task2-accent); border-color:var(--task2-accent); background:var(--task2-accent-soft); outline:none; }
.task2-journal-actions > button svg { transition:transform 150ms ease; }
.task2-journal-card.is-open .task2-journal-actions > button svg { transform:rotate(180deg); }
.task2-journal-heading small { font-size:.69rem; }
.task2-journal-heading a { font-size:.75rem; }
.task2-journal-entries small { font-size:.7rem; }

.task2-order-hint { font-size:.74rem; }
.task2-overview-stats span, .task2-overview-stats > div small, .task2-insight-title, .task2-focus-row { font-size:.7rem; }
.task2-panel-heading { font-size:.74rem; }
.task2-unscheduled-group-heading { font-size:.73rem; }
.task2-task-list-label, .task2-tag, .task2-priority { font-size:.67rem; }

.task2-unscheduled-button:focus { outline:none; }
.task2-unscheduled-button:focus-visible {
  color:var(--task2-accent); border-color:var(--task2-accent); background:var(--task2-accent-soft);
  box-shadow:0 0 0 .17rem var(--task2-accent-soft), 0 0 14px var(--task2-accent-soft); outline:none;
}
.task2-unscheduled-button:focus-visible > span { color:#fff; background:var(--task2-accent); }

@media (max-width:767.98px) {
  .task2-journal-heading { grid-template-columns:minmax(0,1fr) auto; }
  .task2-journal-actions { grid-column:2; grid-row:1; }
  .task2-journal-actions > a { display:none; }
}

/* Task2 Unscheduled control: match the date-toolbar button language. */
.task2-date-controls .task2-unscheduled-button {
  appearance:none; -webkit-appearance:none; display:inline-flex; align-items:center; justify-content:center;
  gap:.4rem; width:auto; height:2.15rem; min-height:2.15rem; margin:0; padding:0 .72rem;
  color:var(--task2-muted); border:1px solid var(--task2-border); border-radius:.48rem;
  background:var(--task2-panel-soft); box-shadow:none; font:inherit; font-size:.72rem; font-weight:750;
  line-height:1; vertical-align:middle; transition:color 140ms ease, border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
}
.task2-date-controls .task2-unscheduled-button .task2-unscheduled-label { min-width:0; padding:0; color:inherit; border-radius:0; background:transparent; font-size:inherit; text-align:inherit; }
.task2-unscheduled-count {
  display:inline-flex; align-items:center; justify-content:center; min-width:1.35rem; height:1.2rem;
  padding:0 .34rem; color:var(--task2-muted); border-radius:999px; background:var(--task2-panel-raised);
  font-size:.65rem; line-height:1;
}
.task2-date-controls .task2-unscheduled-button:hover {
  color:var(--task2-accent); border-color:var(--task2-accent); background:var(--task2-accent-soft);
  box-shadow:0 0 12px var(--task2-accent-soft);
}
.task2-date-controls .task2-unscheduled-button.is-active {
  color:#fff; border-color:var(--task2-accent); background:var(--task2-accent);
  box-shadow:0 4px 13px var(--task2-accent-soft);
}
.task2-date-controls .task2-unscheduled-button.is-active .task2-unscheduled-count { color:#fff; background:rgba(255,255,255,.2); }
.task2-date-controls .task2-unscheduled-button:focus,
.task2-date-controls .task2-unscheduled-button:focus-visible {
  border-color:var(--task2-accent); outline:none !important;
}
.task2-date-controls .task2-unscheduled-button:focus:not(:focus-visible) { box-shadow:none; }
.task2-date-controls .task2-unscheduled-button:focus-visible {
  color:var(--task2-accent); background:var(--task2-accent-soft);
  box-shadow:0 0 0 .16rem var(--task2-accent-soft), 0 0 12px var(--task2-accent-soft);
}
.task2-date-controls .task2-unscheduled-button.is-active:focus-visible { color:#fff; background:var(--task2-accent); }
.task2-date-controls .task2-unscheduled-button::-moz-focus-inner { padding:0; border:0; }

@media (max-width:420px) {
  .task2-date-controls .task2-unscheduled-button { width:100%; }
}

/* Task2 sidebar calendar completion heatmap. */
.task2-page {
  --task2-heat-1:hsla(var(--theme-hue), 82%, 56%, .10);
  --task2-heat-2:hsla(var(--theme-hue), 82%, 56%, .19);
  --task2-heat-3:hsla(var(--theme-hue), 82%, 54%, .31);
  --task2-heat-4:hsla(var(--theme-hue), 82%, 52%, .47);
}
.page.theme-dark .task2-page {
  --task2-heat-1:hsla(var(--theme-hue), 88%, 64%, .13);
  --task2-heat-2:hsla(var(--theme-hue), 86%, 62%, .23);
  --task2-heat-3:hsla(var(--theme-hue), 84%, 60%, .36);
  --task2-heat-4:hsla(var(--theme-hue), 82%, 58%, .52);
}
.task2-overview-calendar-wrap { position:relative; }
.task2-overview-calendar-wrap .react-calendar__month-view { transition:opacity 140ms ease; }
.task2-overview-calendar-wrap.is-loading .react-calendar__month-view { opacity:.62; }
.task2-overview-panel .react-calendar__tile { position:relative; isolation:isolate; transition:color 130ms ease, background-color 130ms ease, box-shadow 130ms ease; }
.task2-overview-panel .react-calendar__tile.task2-calendar-heat-1 { background:var(--task2-heat-1) !important; }
.task2-overview-panel .react-calendar__tile.task2-calendar-heat-2 { background:var(--task2-heat-2) !important; }
.task2-overview-panel .react-calendar__tile.task2-calendar-heat-3 { background:var(--task2-heat-3) !important; }
.task2-overview-panel .react-calendar__tile.task2-calendar-heat-4 { color:var(--task2-text); background:var(--task2-heat-4) !important; box-shadow:inset 0 0 0 1px hsla(var(--theme-hue), 78%, 60%, .2); }
.task2-overview-panel .react-calendar__tile[class*="task2-calendar-heat-"]:enabled:hover,
.task2-overview-panel .react-calendar__tile[class*="task2-calendar-heat-"]:enabled:focus { color:var(--task2-accent); box-shadow:inset 0 0 0 1px var(--task2-accent), 0 0 10px var(--task2-accent-soft); }
.task2-overview-panel .react-calendar__tile--now:not(.react-calendar__tile--active) { background:var(--task2-panel-raised) !important; box-shadow:inset 0 0 0 1px hsla(var(--theme-hue), 72%, 56%, .42); }
.task2-overview-panel .react-calendar__tile--active,
.task2-overview-panel .react-calendar__tile--now.react-calendar__tile--active { color:#fff !important; background:var(--task2-accent) !important; box-shadow:0 0 12px var(--task2-accent-soft); }
.task2-calendar-heatmap-hit { position:absolute; z-index:2; inset:0; border-radius:inherit; cursor:pointer; }
.task2-calendar-heatmap-hit > span {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); clip-path:inset(50%); border:0; white-space:nowrap;
}

/* Task2 right rail mirrors the compact visual rhythm of the original Tasks rail. */
.task2-overview-panel { padding:.8rem .72rem 1.1rem; overflow-y:auto; }
.task2-overview-calendar-wrap { padding:.05rem .15rem .15rem; border:0; background:transparent; box-shadow:none; }
.task2-overview-panel .task2-overview-calendar-wrap > .react-calendar {
  width:100% !important; border:0 !important; background:transparent !important; box-shadow:none !important;
}
.task2-overview-panel .react-calendar__navigation { height:2.4rem; margin-bottom:.35rem; }
.task2-overview-panel .react-calendar__navigation__label { font-size:.88rem; font-weight:700; }
.task2-overview-panel .react-calendar__navigation button { min-width:1.9rem; }
.task2-overview-panel .react-calendar__month-view__weekdays { padding:.08rem 0 .22rem; font-size:.67rem; font-weight:700; }
.task2-overview-panel .react-calendar__tile { min-height:2.06rem; padding:.42rem .2rem; border-radius:.42rem; font-size:.78rem; }
.task2-calendar-link {
  display:flex; align-items:center; justify-content:center; gap:.35rem; min-height:2rem; margin:.65rem .15rem 0;
  color:var(--task2-text); border:1px solid var(--task2-border); border-radius:.5rem; background:transparent;
  font-size:.72rem; font-weight:700; text-decoration:none; transition:140ms ease;
}
.task2-calendar-link:hover, .task2-calendar-link:focus-visible { color:var(--task2-accent); border-color:var(--task2-accent); background:var(--task2-accent-soft); outline:none; text-decoration:none; }
.task2-overview-stats { gap:.48rem; margin-top:1rem; }
.task2-overview-stats > div {
  min-height:5rem; gap:.08rem; padding:.58rem .64rem .6rem; border-radius:.62rem;
  background:var(--task2-panel-raised); box-shadow:none;
}
.task2-overview-stats span { color:var(--task2-muted); font-size:.68rem; font-weight:600; letter-spacing:.08em; }
.task2-overview-stats strong { color:var(--task2-text); font-size:2.08rem; font-weight:700; line-height:1; }
.task2-overview-stats > div small { margin-top:auto; color:var(--task2-text); font-size:.74rem; }
.task2-insight-card { margin-top:.58rem; padding:.62rem .66rem .7rem; border-radius:.62rem; background:var(--task2-panel-raised); box-shadow:none; }
.task2-insight-title { margin-bottom:.48rem; color:var(--task2-muted); font-size:.7rem; font-weight:600; }
.task2-focus-row { grid-template-columns:2rem minmax(0,1fr) 2.7rem; gap:.32rem; margin:.34rem 0; color:var(--task2-text); font-size:.72rem; }
.task2-focus-row i { height:.34rem; background:var(--task2-panel-soft); }
.task2-insight-heading { display:flex; align-items:center; justify-content:space-between; gap:.6rem; margin-bottom:.48rem; }
.task2-insight-heading .task2-insight-title { margin-bottom:0; }
.task2-insight-heading > small { padding:.15rem .45rem; color:var(--task2-muted); border-radius:999px; background:var(--task2-panel-soft); font-size:.65rem; }
.task2-year-card { margin-top:1rem; }
.task2-year-card p { font-size:.72rem; }
.task2-activity-strip { gap:.2rem; margin-top:.7rem; }
.task2-activity-strip span { border-radius:.16rem; }

/* Optional focus spotlight: preserve controls while letting the active task own the canvas. */
.task2-workspace-header > div:first-child,
.task2-date-toolbar,
.task2-task-card-heading,
.task2-composer,
.task2-section-label,
.task2-journal-card,
.task2-lists-panel,
.task2-overview-panel,
.task2-rail-toggle,
.task2-task-row {
  transition:opacity 190ms ease, filter 190ms ease, transform 190ms ease, box-shadow 190ms ease, background-color 140ms ease;
}
.task2-page.is-focus-spotlight .task2-workspace-header > div:first-child,
.task2-page.is-focus-spotlight .task2-date-toolbar,
.task2-page.is-focus-spotlight .task2-task-card-heading,
.task2-page.is-focus-spotlight .task2-composer,
.task2-page.is-focus-spotlight .task2-section-label,
.task2-page.is-focus-spotlight .task2-journal-card { opacity:.24; filter:saturate(.45); }
.task2-page.is-focus-spotlight .task2-lists-panel,
.task2-page.is-focus-spotlight .task2-overview-panel { opacity:.3; filter:saturate(.4); }
.task2-page.is-focus-spotlight .task2-rail-toggle { opacity:.52; }
.task2-page.is-focus-spotlight .task2-task-row:not(.is-focusing) { opacity:.16; filter:saturate(.3); }
.task2-page.is-focus-spotlight .task2-task-row.is-focusing {
  position:relative; z-index:8; opacity:1; filter:none; transform:translateY(-1px) scale(1.003);
  background:var(--task2-accent-soft);
  box-shadow:inset 3px 0 0 var(--task2-accent), 0 0 0 1px var(--task2-accent), 0 0 28px var(--task2-accent-soft);
}
.task2-page.is-focus-spotlight .task2-task-row.is-focusing .task2-task-title { color:var(--task2-text); }
.task2-page.is-focus-spotlight .task2-header-actions { position:relative; z-index:12; opacity:1; filter:none; }
.task2-page.is-focus-spotlight .task2-preferences-menu { z-index:40; opacity:1; filter:none; }

@media (prefers-reduced-motion:reduce) {
  .task2-workspace-header > div:first-child, .task2-date-toolbar, .task2-task-card-heading, .task2-composer,
  .task2-section-label, .task2-journal-card, .task2-lists-panel, .task2-overview-panel, .task2-rail-toggle, .task2-task-row { transition-duration:1ms; }
}
/* Task2 list context: avoid repeating the visible desktop selection. */
.task2-task-card-heading > .task2-card-context { display:none; align-items:center; gap:.5rem; }
.task2-page.left-collapsed .task2-task-card-heading > .task2-card-context,
.task2-task-card-heading > .task2-card-context.is-view-context { display:flex; }
.task2-task-card-heading > .task2-completed-toggle,
.task2-task-card-heading > .task2-order-hint { margin-left:auto; }

@media (min-width:768px) {
  .task2-task-card-heading.is-desktop-empty { display:none; }
}

@media (max-width:767.98px) {
  .task2-task-card-heading > .task2-card-context { display:flex; }
}

/* Journal2: clean, API-backed writing workspace. */
.journal2-inner-page { min-height:calc(100vh - 56px); padding:0 !important; background:#f4f7fb; }
.page.theme-dark .journal2-inner-page { background:#101319; }
.journal2-page {
  --j2-bg:#f4f7fb; --j2-panel:#fff; --j2-soft:#f8faff; --j2-raised:#eef2f8;
  --j2-border:#dce3ee; --j2-border-soft:rgba(91,105,132,.16); --j2-text:#162033;
  --j2-muted:#748096; --j2-accent:var(--theme-accent,#4f5df5); --j2-accent-soft:var(--theme-accent-soft,rgba(79,93,245,.18));
  min-height:calc(100vh - 56px); color:var(--j2-text); background:var(--j2-bg);
}
.page.theme-dark .journal2-page {
  --j2-bg:#101319; --j2-panel:#191e28; --j2-soft:#151a23; --j2-raised:#222936;
  --j2-border:#2d3543; --j2-border-soft:rgba(143,157,180,.13); --j2-text:#f2f5fb; --j2-muted:#98a4b9;
  color-scheme:dark;
}
.journal2-shell { position:relative; display:grid; grid-template-columns:14.5rem minmax(0,1fr) 19.5rem; min-height:calc(100vh - 56px); }
.journal2-page.left-collapsed .journal2-shell { grid-template-columns:minmax(0,1fr) 19.5rem; }
.journal2-page.right-collapsed .journal2-shell { grid-template-columns:14.5rem minmax(0,1fr); }
.journal2-page.left-collapsed.right-collapsed .journal2-shell { grid-template-columns:minmax(0,1fr); }
.journal2-collections, .journal2-overview { min-width:0; background:var(--j2-panel); }
.journal2-collections { display:flex; flex-direction:column; border-right:1px solid var(--j2-border); }
.journal2-overview { padding:1rem; border-left:1px solid var(--j2-border); }
.journal2-panel-heading { display:flex; align-items:center; justify-content:space-between; min-height:3.3rem; padding:.85rem .9rem; color:var(--j2-muted); font-size:.74rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.journal2-panel-heading button { display:flex; align-items:center; justify-content:center; width:2rem; height:2rem; padding:0; color:var(--j2-muted); border:1px solid var(--j2-border); border-radius:.45rem; background:var(--j2-soft); }
.journal2-new-entry { display:flex; align-items:center; justify-content:center; gap:.4rem; min-height:2.45rem; margin:0 .65rem .75rem; color:#fff; border:1px solid var(--j2-accent); border-radius:.55rem; background:var(--j2-accent); box-shadow:0 7px 20px var(--j2-accent-soft); font-weight:750; }
.journal2-collection-list { display:grid; gap:.22rem; padding:0 .55rem; }
.journal2-collection-list button { display:grid; grid-template-columns:1.25rem minmax(0,1fr) auto; align-items:center; gap:.45rem; width:100%; min-height:2.65rem; padding:.45rem .65rem; color:var(--j2-muted); border:1px solid transparent; border-radius:.52rem; background:transparent; text-align:left; }
.journal2-collection-list button span { overflow:hidden; color:inherit; font-size:.78rem; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.journal2-collection-list button small { min-width:1.55rem; padding:.05rem .32rem; border-radius:999px; background:var(--j2-raised); font-size:.66rem; text-align:center; }
.journal2-collection-list button:hover { color:var(--j2-text); background:var(--j2-raised); }
.journal2-collection-list button.is-active { color:#fff; border-color:var(--j2-accent); background:var(--j2-accent); box-shadow:0 7px 20px var(--j2-accent-soft); }
.journal2-collection-list button.is-active small { background:rgba(255,255,255,.2); }
.journal2-left-note { display:flex; align-items:flex-start; gap:.5rem; margin:auto .75rem .6rem; padding:.65rem; color:var(--j2-muted); border:1px solid var(--j2-border-soft); border-radius:.55rem; background:var(--j2-soft); }
.journal2-left-note span { display:grid; gap:.15rem; }
.journal2-left-note strong { color:var(--j2-text); font-size:.72rem; }
.journal2-left-note small { font-size:.67rem; line-height:1.4; }
.journal2-legacy-link { margin:0 .8rem 1rem; color:var(--j2-muted); font-size:.7rem; text-align:center; }
.journal2-legacy-link:hover { color:var(--j2-accent); }

.journal2-workspace { min-width:0; padding:1.35rem 1.45rem 3rem; }
.journal2-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.journal2-header h1 { margin:0 0 .12rem; color:var(--j2-text); font-family:inherit; font-size:22px; font-weight:600; line-height:1.15; }
.journal2-eyebrow { color:var(--j2-muted); font-family:inherit; font-size:.78rem; font-weight:400; letter-spacing:.13em; text-transform:uppercase; opacity:.68; }
.journal2-header-tools { display:flex; align-items:center; gap:.5rem; }
.journal2-scope-switch { display:flex; padding:0 .2rem; border:1px solid var(--j2-border); border-radius:.7rem; background:var(--j2-panel); }
.journal2-scope-switch button { min-width:3.15rem; padding:.38rem .68rem; color:var(--j2-muted); border:0; border-radius:.5rem; background:transparent; font-weight:750; }
.journal2-scope-switch button.is-active { color:#fff; background:var(--j2-accent); box-shadow:0 4px 13px var(--j2-accent-soft); }
.journal2-date-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:3.35rem; padding:.55rem .72rem; border:1px solid var(--j2-border); border-radius:.72rem; background:var(--j2-panel); }
.journal2-date-toolbar > div { display:flex; align-items:center; gap:.35rem; }
.journal2-date-toolbar button { display:inline-flex; align-items:center; justify-content:center; min-width:2.15rem; height:2.15rem; padding:0 .68rem; color:var(--j2-muted); border:1px solid var(--j2-border); border-radius:.48rem; background:var(--j2-soft); font-weight:750; }
.journal2-date-toolbar button:hover { color:var(--j2-accent); border-color:var(--j2-accent); background:var(--j2-accent-soft); }
.journal2-date-toolbar > span { color:var(--j2-muted); font-size:.75rem; font-weight:700; }
.journal2-alert { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:.75rem 0; padding:.65rem .8rem; color:#b42318; border:1px solid rgba(239,68,68,.3); border-radius:.55rem; background:rgba(239,68,68,.08); }
.journal2-alert button { color:inherit; border:0; background:transparent; }

.journal2-composer { margin-top:1rem; overflow:hidden; border:1px solid var(--j2-border); border-radius:.75rem; background:var(--j2-panel); box-shadow:0 10px 28px rgba(13,20,35,.06); }
.journal2-composer-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem .85rem; border-bottom:1px solid var(--j2-border-soft); background:var(--j2-soft); }
.journal2-composer-heading > div { display:flex; align-items:center; gap:.55rem; }
.journal2-composer-heading > div > span { display:grid; }
.journal2-composer-heading small { color:var(--j2-muted); font-size:.67rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.journal2-composer-heading strong { color:var(--j2-text); font-size:.82rem; }
.journal2-composer-heading > span { color:var(--j2-muted); font-size:.7rem; }
.journal2-prompt-row { display:flex; flex-wrap:wrap; gap:.35rem; padding:.7rem .85rem 0; }
.journal2-prompt-row button { padding:.28rem .58rem; color:var(--j2-muted); border:1px solid var(--j2-border); border-radius:999px; background:var(--j2-soft); font-size:.69rem; font-weight:700; }
.journal2-prompt-row button:hover, .journal2-prompt-row button.is-active { color:var(--j2-accent); border-color:var(--j2-accent); background:var(--j2-accent-soft); }
.journal2-composer textarea { display:block; width:calc(100% - 1.7rem); min-height:8.5rem; margin:.7rem .85rem; padding:.8rem .9rem; resize:vertical; color:var(--j2-text); border:1px solid var(--j2-border); border-radius:.58rem; background:var(--j2-soft); font-size:.88rem; line-height:1.65; }
.journal2-composer textarea:focus { border-color:var(--j2-accent); box-shadow:0 0 0 .16rem var(--j2-accent-soft); outline:none; }
.journal2-composer footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem .85rem; border-top:1px solid var(--j2-border-soft); background:transparent; text-align:left; }
.journal2-composer footer > span { color:var(--j2-muted); font-size:.68rem; }
.journal2-page kbd { display:inline-flex; align-items:center; justify-content:center; min-width:1.25rem; min-height:1.15rem; padding:.02rem .25rem; color:var(--j2-text); border:1px solid var(--j2-border); border-bottom-width:2px; border-radius:.25rem; background:var(--j2-soft); box-shadow:none; font-family:inherit; font-size:.58rem; }
.journal2-composer footer button { display:inline-flex; align-items:center; justify-content:center; gap:.35rem; min-height:2.3rem; padding:0 .85rem; color:#fff; border:1px solid var(--j2-accent); border-radius:.52rem; background:var(--j2-accent); box-shadow:0 7px 20px var(--j2-accent-soft); font-weight:750; }
.journal2-composer footer button:disabled { opacity:.5; box-shadow:none; }

.journal2-entry-section { margin-top:1rem; overflow:visible; border:1px solid var(--j2-border); border-radius:.75rem; background:var(--j2-panel); }
.journal2-entry-section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:3rem; padding:.65rem .85rem; border-bottom:1px solid var(--j2-border-soft); background:var(--j2-soft); }
.journal2-entry-section-heading > div { display:flex; align-items:center; gap:.45rem; }
.journal2-entry-section-heading span { color:var(--j2-muted); font-size:.72rem; }
.journal2-entry-list { display:grid; }
.journal2-entry { display:grid; grid-template-columns:2rem minmax(0,1fr); gap:.65rem; padding:.85rem; border-bottom:1px solid var(--j2-border-soft); transition:background 130ms ease; }
.journal2-entry:last-child { border-bottom:0; }
.journal2-entry:hover { background:var(--j2-soft); }
.journal2-entry-marker { display:flex; align-items:center; justify-content:center; width:2rem; height:2rem; color:var(--j2-accent); border-radius:.5rem; background:var(--j2-accent-soft); }
.journal2-entry-content { min-width:0; }
.journal2-entry-content > header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.journal2-entry-content > header > div:first-child { display:grid; gap:.1rem; }
.journal2-entry-content > header span { color:var(--j2-text); font-size:.77rem; font-weight:800; }
.journal2-entry-content time { color:var(--j2-muted); font-size:.68rem; }
.journal2-entry-content p { margin:.55rem 0; color:var(--j2-text); font-size:.84rem; line-height:1.62; white-space:pre-wrap; overflow-wrap:anywhere; }
.journal2-entry-content > footer { display:flex; gap:.65rem; padding:0; color:var(--j2-muted); background:transparent; font-size:.65rem; text-align:left; }
.journal2-entry-menu-wrap { position:relative; }
.journal2-entry-menu-wrap > button { display:flex; align-items:center; justify-content:center; width:2rem; height:2rem; padding:0; color:var(--j2-muted); border:1px solid var(--j2-border); border-radius:.45rem; background:var(--j2-soft); }
.journal2-entry-menu-wrap > button:hover { color:var(--j2-accent); border-color:var(--j2-accent); }
.journal2-entry-menu { position:absolute; z-index:30; top:calc(100% + .25rem); right:0; width:9.5rem; padding:.38rem; border:1px solid var(--j2-border); border-radius:.58rem; background:var(--j2-panel); box-shadow:0 16px 36px rgba(7,12,23,.28); }
.journal2-entry-menu button { display:flex; align-items:center; gap:.45rem; width:100%; padding:.5rem .55rem; color:var(--j2-text); border:0; border-radius:.38rem; background:transparent; font-size:.76rem; text-align:left; }
.journal2-entry-menu button:hover { background:var(--j2-raised); }
.journal2-entry-menu button.is-danger { color:#dc3545; }
.journal2-loading, .journal2-empty { display:flex; min-height:10rem; align-items:center; justify-content:center; gap:.5rem; color:var(--j2-muted); }
.journal2-empty { flex-direction:column; padding:2rem; text-align:center; }
.journal2-empty strong { color:var(--j2-text); }
.journal2-empty span { max-width:28rem; font-size:.78rem; }

.journal2-rail-toggle { position:absolute; z-index:6; top:1rem; display:flex; align-items:center; justify-content:center; width:2.15rem; height:2.15rem; padding:0; color:var(--j2-muted); border:1px solid var(--j2-border); border-radius:50%; background:var(--j2-panel); box-shadow:0 5px 16px rgba(13,20,35,.16); }
.journal2-rail-toggle:hover { color:var(--j2-accent); border-color:var(--j2-accent); }
.journal2-left-toggle { left:calc(14.5rem - 1.08rem); }
.journal2-right-toggle { right:calc(19.5rem - 1.08rem); }
.journal2-page.left-collapsed .journal2-left-toggle { left:.65rem; }
.journal2-page.right-collapsed .journal2-right-toggle { right:.65rem; }
.journal2-mobile-bar, .journal2-mobile-drawer { display:none; }

.journal2-overview .react-calendar { width:100%; color:var(--j2-text); border:0; background:transparent; }
.journal2-overview .react-calendar button { position:relative; color:var(--j2-text); border-radius:.42rem; background:transparent; }
.journal2-overview .react-calendar button:enabled:hover, .journal2-overview .react-calendar button:enabled:focus { color:var(--j2-accent); background:var(--j2-accent-soft); }
.journal2-overview .react-calendar__tile.journal2-heat-1 { background:hsla(var(--theme-hue),82%,56%,.11) !important; }
.journal2-overview .react-calendar__tile.journal2-heat-2 { background:hsla(var(--theme-hue),82%,56%,.2) !important; }
.journal2-overview .react-calendar__tile.journal2-heat-3 { background:hsla(var(--theme-hue),82%,54%,.32) !important; }
.journal2-overview .react-calendar__tile.journal2-heat-4 { background:hsla(var(--theme-hue),82%,52%,.48) !important; box-shadow:inset 0 0 0 1px var(--j2-accent-soft); }
.journal2-overview .react-calendar__tile--now:not(.react-calendar__tile--active) { background:var(--j2-raised) !important; }
.journal2-overview .react-calendar__tile--active, .journal2-overview .react-calendar__tile--now.react-calendar__tile--active { color:#fff !important; background:var(--j2-accent) !important; box-shadow:0 0 12px var(--j2-accent-soft); }
.journal2-overview .react-calendar__month-view__days__day--neighboringMonth { color:var(--j2-muted); opacity:.58; }
.journal2-overview .react-calendar__navigation { margin-bottom:.45rem; }
.journal2-overview .react-calendar__navigation button { min-width:2rem; }
.journal2-overview .react-calendar__month-view__weekdays { color:var(--j2-muted); font-size:.67rem; }
.journal2-overview .react-calendar__month-view__weekdays abbr { text-decoration:none; }
.journal2-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; margin-top:1rem; }
.journal2-stats > div { display:flex; min-width:0; flex-direction:column; gap:.12rem; padding:.7rem; border:1px solid var(--j2-border); border-radius:.62rem; background:var(--j2-soft); }
.journal2-stats span, .journal2-insight-card > span, .journal2-shortcuts > span { color:var(--j2-muted); font-size:.67rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.journal2-stats strong { color:var(--j2-text); font-size:1.25rem; }
.journal2-stats small { color:var(--j2-muted); font-size:.67rem; }
.journal2-insight-card, .journal2-shortcuts { margin-top:.65rem; padding:.7rem; border:1px solid var(--j2-border); border-radius:.62rem; background:var(--j2-soft); }
.journal2-insight-card p { margin:.45rem 0 0; color:var(--j2-muted); font-size:.75rem; line-height:1.5; }
.journal2-insight-card strong { color:var(--j2-text); }
.journal2-shortcuts { display:grid; grid-template-columns:1fr 1fr; gap:.35rem; }
.journal2-shortcuts > span { grid-column:1/-1; }
.journal2-shortcuts > div { display:flex; align-items:center; gap:.25rem; }
.journal2-shortcuts small { color:var(--j2-muted); font-size:.64rem; }

body .journal2-modal-dialog { --j2m-panel:#fff; --j2m-soft:#f8faff; --j2m-border:#dce3ee; --j2m-text:#162033; --j2m-muted:#748096; max-width:38rem; }
body.theme-dark .journal2-modal-dialog { --j2m-panel:#191e28; --j2m-soft:#151a23; --j2m-border:#2d3543; --j2m-text:#f2f5fb; --j2m-muted:#98a4b9; color-scheme:dark; }
body .journal2-modal-content { overflow:hidden; color:var(--j2m-text); border:1px solid var(--j2m-border); border-radius:.8rem; background:var(--j2m-panel); box-shadow:0 20px 50px rgba(7,12,23,.32); }
body .journal2-modal-content .modal-header { align-items:flex-start; border-bottom-color:var(--j2m-border); background:var(--j2m-soft); }
body .journal2-modal-content .modal-header > button { display:flex; align-items:center; justify-content:center; width:2rem; height:2rem; padding:0; color:var(--j2m-muted); border:1px solid var(--j2m-border); border-radius:.45rem; background:transparent; }
body .journal2-modal-content .modal-title { color:var(--j2m-text); font-size:1.1rem; }
body .journal2-modal-content .modal-body { background:var(--j2m-panel); }
body .journal2-modal-content textarea { width:100%; min-height:13rem; padding:.75rem; resize:vertical; color:var(--j2m-text); border:1px solid var(--j2m-border); border-radius:.55rem; background:var(--j2m-soft); line-height:1.6; }
body .journal2-modal-content textarea:focus { border-color:var(--theme-accent); box-shadow:0 0 0 .16rem var(--theme-accent-soft); outline:none; }
body .journal2-modal-content .modal-footer { justify-content:flex-end; gap:.45rem; border-top-color:var(--j2m-border); background:var(--j2m-soft); }
body .journal2-modal-content .modal-footer button { display:inline-flex; align-items:center; justify-content:center; gap:.35rem; min-height:2.3rem; padding:0 .8rem; color:var(--j2m-text); border:1px solid var(--j2m-border); border-radius:.5rem; background:var(--j2m-panel); font-weight:700; }
body .journal2-modal-content .modal-footer button.is-primary { color:#fff; border-color:var(--theme-accent); background:var(--theme-accent); box-shadow:0 7px 18px var(--theme-accent-soft); }

/* Keep the Task2 selected-day heading neutral in light mode. */
.page:not(.theme-dark) .task2-workspace-header .task2-eyebrow {
  color: #6b7280 !important;
}

.page:not(.theme-dark) .task2-workspace-header h1 {
  color: #4b5563 !important;
}

@media (max-width:1199.98px) {
  .journal2-shell { grid-template-columns:13rem minmax(0,1fr); }
  .journal2-overview, .journal2-right-toggle { display:none; }
  .journal2-page.left-collapsed .journal2-shell { grid-template-columns:minmax(0,1fr); }
  .journal2-left-toggle { left:calc(13rem - 1.08rem); }
  .journal2-mobile-bar { display:flex; justify-content:flex-end; gap:.45rem; padding:.55rem 1rem 0; background:var(--j2-bg); }
  .journal2-mobile-bar button { display:inline-flex; align-items:center; gap:.35rem; padding:.45rem .7rem; color:var(--j2-muted); border:1px solid var(--j2-border); border-radius:.5rem; background:var(--j2-panel); font-weight:700; }
  .journal2-mobile-bar button:first-child { display:none; }
  .journal2-mobile-drawer { position:fixed; z-index:1050; inset:56px 0 0; display:block; }
  .journal2-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(7,12,23,.58); }
  .journal2-mobile-drawer .journal2-overview { position:absolute; top:0; right:0; display:block; width:min(22rem,90vw); height:100%; overflow-y:auto; box-shadow:-15px 0 40px rgba(7,12,23,.28); }
}
@media (max-width:767.98px) {
  .journal2-shell, .journal2-page.left-collapsed .journal2-shell, .journal2-page.right-collapsed .journal2-shell, .journal2-page.left-collapsed.right-collapsed .journal2-shell { display:block; min-height:auto; }
  .journal2-shell > .journal2-collections, .journal2-rail-toggle { display:none; }
  .journal2-mobile-bar { justify-content:space-between; padding:.55rem .75rem 0; }
  .journal2-mobile-bar button:first-child { display:inline-flex; }
  .journal2-workspace { padding:.8rem .75rem 2rem; }
  .journal2-header { align-items:stretch; flex-direction:column; }
  .journal2-header-tools { align-items:stretch; flex-direction:column; }
  .journal2-scope-switch { width:100%; }
  .journal2-scope-switch button { min-width:0; flex:1; }
  .journal2-date-toolbar { align-items:stretch; flex-direction:column; }
  .journal2-date-toolbar > span { text-align:right; }
  .journal2-composer-heading > span { display:none; }
  .journal2-composer footer { align-items:stretch; flex-direction:column; }
  .journal2-composer footer button { width:100%; }
  .journal2-entry { grid-template-columns:1.75rem minmax(0,1fr); padding:.7rem; }
  .journal2-entry-marker { width:1.75rem; height:1.75rem; }
  .journal2-mobile-drawer .journal2-collections { position:absolute; top:0; left:0; display:flex; width:min(20rem,88vw); height:100%; overflow-y:auto; box-shadow:15px 0 40px rgba(7,12,23,.28); }
}

/* Let the selected accent tint the full application navigation without
   competing with the brighter active navigation item. */
#root .page .header nav.navbar {
  background:linear-gradient(135deg,hsl(var(--theme-hue),42%,30%),hsl(var(--theme-hue),38%,23%)) !important;
  border-bottom-color:hsla(var(--theme-hue),58%,72%,.18) !important;
  box-shadow:0 6px 20px hsla(var(--theme-hue),48%,12%,.2);
  transition:background 180ms ease,border-color 180ms ease,box-shadow 180ms ease;
}

#root .page.theme-dark .header nav.navbar {
  background:linear-gradient(135deg,hsl(var(--theme-hue),32%,18%),hsl(var(--theme-hue),28%,13%)) !important;
  border-bottom-color:hsla(var(--theme-hue),62%,70%,.14) !important;
  box-shadow:0 7px 22px hsla(var(--theme-hue),55%,5%,.35);
}

@media (prefers-reduced-motion:reduce) {
  #root .page .header nav.navbar { transition-duration:1ms; }
}

/* Give Task2's desktop overview the same generous calendar scale as Tasks. */
@media (min-width:1200px) {
  .task2-shell { grid-template-columns:14.5rem minmax(0,1fr) 21.4rem; }
  .task2-page.left-collapsed .task2-shell { grid-template-columns:minmax(0,1fr) 21.4rem; }
  .task2-page.right-collapsed .task2-shell { grid-template-columns:14.5rem minmax(0,1fr); }
  .task2-page.left-collapsed.right-collapsed .task2-shell { grid-template-columns:minmax(0,1fr); }
  .task2-right-toggle { right:calc(21.4rem - 1.125rem); }
  .task2-page.right-collapsed .task2-right-toggle { right:.65rem; }
  .task2-overview-panel { padding:1rem; }
  .task2-overview-calendar-wrap { padding:.1rem .2rem .2rem; }
  .task2-overview-panel .react-calendar__navigation { height:2.7rem; margin-bottom:.45rem; }
  .task2-overview-panel .react-calendar__navigation__label { font-size:1.05rem; }
  .task2-overview-panel .react-calendar__navigation button { min-width:2.1rem; }
  .task2-overview-panel .react-calendar__month-view__weekdays { padding:.12rem 0 .3rem; font-size:.75rem; }
  .task2-overview-panel .react-calendar__tile { min-height:2.34rem; padding:.48rem .2rem; font-size:.96rem; }
  .task2-calendar-link { min-height:2.3rem; margin:.78rem .2rem 0; font-size:.78rem; }
  .task2-calendar-link svg { width:1rem; height:1rem; }
}

/* Keep overview statistics glanceable without making private activity prominent. */
.task2-overview-stats { gap:.42rem; }
.task2-overview-stats > div,
.task2-insight-card {
  border:1px solid var(--task2-border);
  border-radius:.72rem;
  background:var(--task2-panel-soft);
  box-shadow:none;
}
.task2-overview-stats > div { min-height:3.8rem; padding:.48rem .56rem .5rem; }
.task2-overview-stats span {
  color:var(--task2-muted);
  font-size:.62rem;
  font-weight:600;
  letter-spacing:.07em;
}
.task2-overview-stats strong { color:var(--task2-text); font-size:1.28rem; font-weight:650; line-height:1.05; opacity:.78; }
.task2-overview-stats > div small { margin-top:auto; color:var(--task2-muted); font-size:.67rem; }
.task2-insight-card { padding:.62rem .66rem .7rem; }
.task2-insight-title {
  margin-bottom:.56rem;
  color:var(--task2-muted);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.06em;
}
.task2-focus-row { grid-template-columns:1.6rem minmax(0,1fr) auto; gap:.44rem; margin-top:.34rem; color:var(--task2-text); font-size:.88rem; }
.task2-focus-row i { height:.42rem; background:var(--task2-panel-raised); }
.task2-focus-row small { color:var(--task2-text); font-size:.88rem; }
.task2-year-card { margin-top:1rem; padding:.66rem .7rem .7rem; }
.task2-year-card .task2-insight-title { font-size:.74rem; letter-spacing:.08em; }
.task2-insight-heading > small { padding:.28rem .58rem; border-radius:.5rem; font-size:.72rem; font-weight:500; }
.task2-year-card p { min-height:2.55rem; color:var(--task2-muted); font-size:.83rem; line-height:1.45; }
.task2-year-card p strong { color:#b45f13; font-weight:700; }
.task2-activity-strip { grid-template-columns:repeat(13,minmax(0,1fr)); gap:.2rem; margin-top:.75rem; }
.task2-activity-strip span { border-radius:.14rem; }

.page.theme-dark .task2-overview-stats > div,
.page.theme-dark .task2-insight-card {
  border-color:#272b35;
  background:#1e212a;
}
.page.theme-dark .task2-overview-stats span,
.page.theme-dark .task2-insight-title { color:#7f899d; }
.page.theme-dark .task2-overview-stats strong { color:#b9c1d0; }
.page.theme-dark .task2-overview-stats > div small { color:#7f899d; }
.page.theme-dark .task2-focus-row,
.page.theme-dark .task2-focus-row small { color:#c7cfdf; }
.page.theme-dark .task2-focus-row i { background:rgba(255,255,255,.06); }
.page.theme-dark .task2-insight-heading > small { color:#929db9; background:#1f2330; }
.page.theme-dark .task2-year-card p { color:#929bb2; }
.page.theme-dark .task2-year-card p strong { color:#ffae57; }

.task2-calendar-link,
.task2-calendar-link > span { font-weight:800; }

.task2-list-row.is-active .task2-list-button {
  text-shadow:0 1px 2px rgba(0,0,0,.3);
}

/* Match the original Tasks left rail spacing and edge-to-edge list rhythm. */
.task2-lists-panel > .task2-panel-heading {
  min-height:auto;
  padding:1.34rem .92rem .5rem;
  border-bottom:1px solid var(--task2-border-soft);
}
.task2-lists-panel .task2-list-stack {
  gap:0;
  padding:0;
}
.task2-lists-panel .task2-list-row,
.task2-lists-panel .task2-list-button {
  border-left:0;
  border-right:0;
  border-radius:0;
}
.task2-lists-panel .task2-list-row {
  width:100%;
}
.task2-lists-panel .task2-list-button {
  min-height:2.32rem;
  padding:.54rem .35rem .54rem .92rem;
}
.task2-lists-panel .task2-add-list {
  width:100%;
  min-height:3.04rem;
  margin:0;
  padding:.62rem .92rem;
  border-right:0;
  border-bottom:0;
  border-left:0;
  border-radius:0;
}
.task2-lists-panel .task2-new-list {
  margin:.55rem .92rem;
}
.task2-lists-panel .task2-archived-lists {
  margin:.75rem 0 0;
  padding:.55rem .92rem 0;
}

.task2-modal-grid { align-items:start; }
.task2-modal-grid > .task2-field { align-self:start; }
.task2-created-meta {
  margin:-.2rem 0 0;
  color:var(--task2-modal-muted);
  font-size:.65rem;
  line-height:1.35;
  text-align:right;
}
.task2-created-meta time { color:inherit; font:inherit; }

/* Journal2 inherits the polished Tasks/Task2 overview rail language. */
.task2-initial-loading {
  display:flex; align-items:center; justify-content:center; gap:.55rem; min-height:12rem;
  color:var(--task2-muted); border:1px solid var(--task2-border); border-radius:.75rem;
  background:var(--task2-panel); font-size:.8rem; font-weight:650;
}
.task2-initial-loading .spinner-border { color:var(--task2-accent); }

.journal2-panel-heading.is-controls-only { justify-content:flex-end; min-height:0; padding:0 0 .6rem; }
.journal2-overview { padding:1rem; overflow-y:auto; }
.journal2-overview-calendar-wrap { padding:.1rem .2rem .2rem; border:0; background:transparent; box-shadow:none; }
.journal2-overview-calendar-wrap > .react-calendar { width:100% !important; border:0 !important; background:transparent !important; box-shadow:none !important; }
.journal2-calendar-link {
  display:flex; align-items:center; justify-content:center; gap:.38rem; min-height:2.3rem; margin:.78rem .2rem 0;
  color:var(--j2-text); border:1px solid var(--j2-border); border-radius:.5rem; background:transparent;
  font-size:.78rem; font-weight:800; text-decoration:none; transition:140ms ease;
}
.journal2-calendar-link > span { font-weight:800; }
.journal2-calendar-link svg { width:1rem; height:1rem; }
.journal2-calendar-link:hover,
.journal2-calendar-link:focus-visible { color:var(--j2-accent); border-color:var(--j2-accent); background:var(--j2-accent-soft); outline:none; text-decoration:none; }

.journal2-stats { gap:.52rem; }
.journal2-stats > div,
.journal2-insight-card,
.journal2-shortcuts {
  border:1px solid var(--j2-border); border-radius:.72rem; background:var(--j2-soft); box-shadow:none;
}
.journal2-stats > div { min-height:5rem; gap:.08rem; padding:.58rem .64rem .6rem; }
.journal2-stats span,
.journal2-insight-card > span,
.journal2-shortcuts > span { color:var(--j2-muted); font-size:.74rem; font-weight:600; letter-spacing:.08em; }
.journal2-stats strong { color:var(--j2-text); font-size:2.08rem; font-weight:700; line-height:1; }
.journal2-stats small { margin-top:auto; color:var(--j2-text); font-size:.9rem; }
.journal2-insight-card,
.journal2-shortcuts { margin-top:.58rem; padding:.62rem .66rem .7rem; }
.journal2-insight-card p { margin:.5rem 0 0; font-size:.83rem; line-height:1.45; }
.journal2-shortcuts { gap:.42rem; }
.journal2-shortcuts small { color:var(--j2-text); font-size:.7rem; }

.journal2-rail-toggle {
  z-index:12; top:.82rem; width:2.25rem; height:2.25rem; color:#cbd3e5;
  border:1px solid rgba(126,134,149,.42); border-radius:999px; background:#242834;
  box-shadow:0 4px 12px rgba(0,0,0,.24); cursor:pointer;
  transition:left 180ms ease,right 180ms ease,background-color 140ms ease,color 140ms ease,border-color 140ms ease;
}
.journal2-rail-toggle:hover { color:#fff; border-color:rgba(132,147,255,.72); background:#30364a; }
.journal2-rail-toggle:focus-visible { outline:3px solid rgba(108,122,255,.38); outline-offset:2px; }
.page:not(.theme-dark) .journal2-rail-toggle { color:#526074; border-color:rgba(100,116,139,.3); background:#fff; box-shadow:0 4px 12px rgba(15,23,42,.14); }
.page:not(.theme-dark) .journal2-rail-toggle:hover { color:var(--j2-accent); border-color:var(--j2-accent); background:var(--j2-accent-soft); }

.page.theme-dark .journal2-stats > div,
.page.theme-dark .journal2-insight-card,
.page.theme-dark .journal2-shortcuts { border-color:#2a2e3a; background:#20232e; }
.page.theme-dark .journal2-stats span,
.page.theme-dark .journal2-insight-card > span,
.page.theme-dark .journal2-shortcuts > span { color:#7f899d; }
.page.theme-dark .journal2-stats strong { color:#f3f6ff; }
.page.theme-dark .journal2-stats small,
.page.theme-dark .journal2-shortcuts small { color:#c7cfdf; }
.page.theme-dark .journal2-insight-card p { color:#929bb2; }
.page.theme-dark .journal2-insight-card strong { color:#f3f6ff; }

@media (min-width:1200px) {
  .journal2-shell { grid-template-columns:14.5rem minmax(0,1fr) 21.4rem; }
  .journal2-page.left-collapsed .journal2-shell { grid-template-columns:minmax(0,1fr) 21.4rem; }
  .journal2-page.right-collapsed .journal2-shell { grid-template-columns:14.5rem minmax(0,1fr); }
  .journal2-page.left-collapsed.right-collapsed .journal2-shell { grid-template-columns:minmax(0,1fr); }
  .journal2-left-toggle { left:calc(14.5rem - 1.125rem); }
  .journal2-right-toggle { right:calc(21.4rem - 1.125rem); }
  .journal2-page.left-collapsed .journal2-left-toggle { left:.65rem; }
  .journal2-page.right-collapsed .journal2-right-toggle { right:.65rem; }
  .journal2-overview .react-calendar__navigation { height:2.7rem; margin-bottom:.45rem; }
  .journal2-overview .react-calendar__navigation__label { font-size:1.05rem; font-weight:700; }
  .journal2-overview .react-calendar__navigation button { min-width:2.1rem; }
  .journal2-overview .react-calendar__month-view__weekdays { padding:.12rem 0 .3rem; font-size:.75rem; font-weight:700; }
  .journal2-overview .react-calendar__tile { min-height:2.34rem; padding:.48rem .2rem; border-radius:.42rem; font-size:.96rem; }
}

/* Calendar Phase 5 cascade guards for rules declared after the overview block. */
.calendar-modal-dialog.calendar-day-modal-dialog { max-width: 48rem; }

@media (max-width: 520px) {
  .calendar-day .calendar-day-top { position: relative; display: block; min-height: 3.05rem; }
  .calendar-day .calendar-day-meta { position: static; display: block; }
  .calendar-day .calendar-journal-indicator { position: absolute; top: 0; right: 0; }
  .calendar-day .calendar-day-actions { position: absolute; right: 0; bottom: 0; left: 0; justify-content: space-between; }
  .calendar-day .calendar-day-action {
    width: 1.2rem;
    height: 1.2rem;
    border-color: var(--calendar-border);
    background: var(--calendar-surface-subtle);
    opacity: 1;
  }
}

/* Compact brand row for phones, tablets, and windowed desktop widths. */
.header .mobile-font-setting { display: none; }

@media (max-width: 1199.98px) {
  #root .page .header nav.navbar {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    padding: 0 12px 6px !important;
    margin: 0 !important;
  }

  #root .page .header .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 60px;
    max-width: calc(100% - 56px);
    margin: 0;
    padding: 0;
    font-size: 20px !important;
    line-height: 1.2;
    letter-spacing: -0.02em;
    white-space: nowrap;
  }

  #root .page .header .navbar-brand::after { display: none; }
  #root .page .header .navbar-brand .logo {
    width: 24px;
    height: 24px;
    margin: 0;
    object-fit: contain;
  }

  #root .page .header .navbar-collapse {
    position: static;
    flex-basis: 100%;
    width: 100%;
  }

  #root .page .header .navbar-nav { margin-top: 0; }
  #root .page .header .nav-quick-controls { display: none; }

  #root .page .header .navbar-nav > .header-account-menu,
  #root .page .header .navbar-nav > .profile-menu-trigger {
    position: absolute;
    top: 8px;
    right: 12px;
    width: 44px;
    margin: 0 !important;
    transform: none;
  }

  #root .page .header .profile-menu-trigger.profile-menu-trigger-auth {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px;
    height: 44px;
    min-height: 44px;
    border: 0;
    padding: 0 !important;
  }

  #root .page .header .profile-menu-dropdown {
    position: absolute;
    top: calc(100% + 6px);
    bottom: auto;
    width: min(320px, calc(100vw - 32px));
    margin: 0;
    transform: none;
    min-width: min(320px, calc(100vw - 32px)) !important;
    max-width: calc(100vw - 32px);
    max-height: calc(100dvh - 72px);
    overflow-y: auto;
    right: 0 !important;
    left: auto !important;
  }

  #root .page .header .mobile-font-setting {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    white-space: normal;
  }

  #root .page .header .mobile-font-setting > span { font-weight: 700; }
}

/* Mobile primary navigation, with space for the device home indicator. */
.mobile-bottom-nav { display: none; }

@media (max-width: 767.98px) {
  #root .page .header nav.navbar { padding-bottom: 0 !important; }
  #root .page .header .navbar-nav > .nav-link:not(.profile-menu-trigger) { display: none; }

  #root .page::after {
    content: "";
    display: block;
    height: calc(76px + env(safe-area-inset-bottom, 0px));
    flex-shrink: 0;
  }

  #root .page .mobile-bottom-nav {
    position: fixed;
    z-index: 1000;
    inset: auto 0 0;
    display: flex;
    align-items: stretch;
    gap: 4px;
    padding: 6px max(8px, env(safe-area-inset-right, 0px)) calc(6px + env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-left, 0px));
    border-top: 1px solid #dce1eb;
    background: #fff;
    box-shadow: 0 -4px 18px rgba(15, 23, 42, 0.06);
  }

  #root .page .mobile-bottom-nav-link {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 0;
    min-height: 52px;
    padding: 5px 2px;
    border-radius: 10px;
    color: #586579;
    font-size: .6875rem;
    font-weight: 500;
    line-height: 1.25;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }

  #root .page .mobile-bottom-nav-link > svg { flex-shrink: 0; }
  #root .page .mobile-bottom-nav-link.active {
    color: var(--theme-accent-strong);
    background: var(--theme-accent-soft);
    font-weight: 700;
  }
  #root .page .mobile-bottom-nav-link.active > svg { stroke-width: 2.6; }
  #root .page .mobile-bottom-nav-link:focus-visible {
    outline: 2px solid var(--theme-accent);
    outline-offset: -2px;
  }

  #root .page.theme-dark .mobile-bottom-nav {
    background: #191d29;
    border-top-color: #303647;
    box-shadow: 0 -4px 18px rgba(0, 0, 0, .18);
  }
  #root .page.theme-dark .mobile-bottom-nav-link { color: #a9b3c8; }
  #root .page.theme-dark .mobile-bottom-nav-link.active {
    color: #fff;
    background: var(--theme-accent);
  }
}

/* Task completion lives with the editable details, beneath the task name. */
body .task2-properties-status {
  --task2-accent: var(--theme-accent, #4f5df5);
  --task2-accent-soft: var(--theme-accent-soft);
  --task2-border: var(--task2-modal-border);
  --task2-panel-soft: var(--task2-modal-soft);
  display: flex;
  align-items: center;
  gap: .65rem;
  width: fit-content;
  min-height: 44px;
  margin: 0 0 .75rem;
  padding: 2px 10px 2px 2px;
  border: 0;
  border-radius: .5rem;
  background: transparent;
  color: var(--task2-modal-text);
  font: inherit;
  font-size: .85rem;
  cursor: pointer;
}
body .task2-properties-status .task2-check { margin: 0; }
body .task2-properties-status[aria-checked="true"] .task2-check-visual {
  border-color: var(--task2-accent);
  background: var(--task2-accent);
}
body .task2-properties-status:focus-visible {
  outline: 2px solid var(--theme-accent);
  outline-offset: 2px;
}
body .task2-properties-status:disabled { opacity: .6; cursor: default; }

/* Readable type scale for the calendar Day Overview modal. */
body .calendar-day-modal-dialog .modal-content { font-size: 1rem; line-height: 1.5; }
body .calendar-day-modal-dialog .modal-title { font-size: 1.3rem; line-height: 1.35; }
body .calendar-day-modal-dialog .calendar-modal-eyebrow { font-size: .8rem; }
body .calendar-day-modal-dialog .calendar-day-section-heading h3,
body .calendar-day-modal-dialog .calendar-composer h3,
body .calendar-day-modal-dialog .calendar-journal-composer h3 { font-size: 1rem !important; }
body .calendar-day-modal-dialog .calendar-composer label,
body .calendar-day-modal-dialog .calendar-journal-composer label,
body .calendar-day-modal-dialog .calendar-day-empty,
body .calendar-day-modal-dialog .calendar-open-journal,
body .calendar-day-modal-dialog .calendar-composer-feedback p,
body .calendar-day-modal-dialog .calendar-modal-journal-entry p,
body .calendar-day-modal-dialog .calendar-journal-composer-actions > a { font-size: .9rem; line-height: 1.5; }
body .calendar-day-modal-dialog .calendar-composer input,
body .calendar-day-modal-dialog .calendar-composer select,
body .calendar-day-modal-dialog .calendar-journal-composer textarea,
body .calendar-day-modal-dialog .calendar-composer-switch button,
body .calendar-day-modal-dialog .btn,
body .calendar-day-modal-dialog .calendar-modal-journal-entry strong { font-size: 1rem; }
body .calendar-day-modal-dialog .calendar-day-section-heading > span,
body .calendar-day-modal-dialog .calendar-modal-journal-entry time,
body .calendar-day-modal-dialog .calendar-journal-composer-heading > div > span,
body .calendar-day-modal-dialog .calendar-journal-composer-heading > span { font-size: .8rem; }
body .calendar-day-modal-dialog .calendar-composer-switch button { min-height: 2.75rem; }

/* Selection is a neutral ring; the fill continues to show task activity. */
.task2-overview-panel .react-calendar__tile.task2-calendar-heat-1 { --task2-selected-heat: var(--task2-heat-1); }
.task2-overview-panel .react-calendar__tile.task2-calendar-heat-2 { --task2-selected-heat: var(--task2-heat-2); }
.task2-overview-panel .react-calendar__tile.task2-calendar-heat-3 { --task2-selected-heat: var(--task2-heat-3); }
.task2-overview-panel .react-calendar__tile.task2-calendar-heat-4 { --task2-selected-heat: var(--task2-heat-4); }
#root .page .task2-overview-panel .react-calendar__tile.react-calendar__tile--active,
#root .page .task2-overview-panel .react-calendar__tile.react-calendar__tile--active:enabled:hover,
#root .page .task2-overview-panel .react-calendar__tile.react-calendar__tile--active:enabled:focus {
  color: var(--task2-text) !important;
  background: var(--task2-selected-heat, transparent) !important;
  box-shadow: inset 0 0 0 2px #858d99;
}
#root .page.theme-dark .task2-overview-panel .react-calendar__tile.react-calendar__tile--active {
  box-shadow: inset 0 0 0 2px #a3aab5;
}

/* Windowed desktop and tablet widths retain a compact top navigation row. */
@media (min-width: 768px) and (max-width: 1199.98px) {
  #root .page .header .navbar-nav {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 0 !important;
  }
  #root .page .header .navbar-nav > .nav-link:not(.profile-menu-trigger) {
    display: inline-flex;
    flex: 1 1 0;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    min-height: 44px;
    margin: 0;
    padding: 8px 12px !important;
    font-size: .95rem;
    white-space: nowrap;
  }
}
/* A quiet gold celebration for nonempty days with every task completed. */
#root .page .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed {
  box-shadow: inset 0 0 0 1px rgba(185, 148, 64, .5), 0 0 7px rgba(207, 166, 65, .16);
}
#root .page .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed::after {
  content: "\2726";
  position: absolute;
  right: 3px;
  bottom: 1px;
  color: #b0872c;
  font-size: .7rem;
  line-height: 1;
  pointer-events: none;
}
#root .page.theme-dark .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed::after { color: #e6c36b; }
#root .page .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed.react-calendar__tile--active {
  box-shadow: inset 0 0 0 2px #858d99, 0 0 7px rgba(207, 166, 65, .25);
}
#root .page.theme-dark .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed.react-calendar__tile--active {
  box-shadow: inset 0 0 0 2px #a3aab5, 0 0 7px rgba(207, 166, 65, .25);
}

/* A faint gold wash beneath the completed-day outline and sparkle. */
#root .page .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed,
#root .page .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed:enabled:hover,
#root .page .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed:enabled:focus {
  background: rgba(207, 166, 65, .28) !important;
}

/* Keep task volume readable while hovering or focusing sidebar dates. */
#root .page .task2-overview-panel .react-calendar .react-calendar__tile[class*="task2-calendar-heat-"]:not(.task2-calendar-all-completed):enabled:hover,
#root .page .task2-overview-panel .react-calendar .react-calendar__tile[class*="task2-calendar-heat-"]:not(.task2-calendar-all-completed):enabled:focus {
  background: var(--task2-selected-heat) !important;
  color: var(--task2-text) !important;
}
#root .page .task2-overview-panel .react-calendar .react-calendar__tile.task2-calendar-all-completed:enabled:hover,
#root .page .task2-overview-panel .react-calendar .react-calendar__tile.task2-calendar-all-completed:enabled:focus {
  background: rgba(207, 166, 65, .28) !important;
  color: var(--task2-text) !important;
}
#root .page .task2-overview-panel .react-calendar .react-calendar__tile:not([class*="task2-calendar-heat-"]):not(.task2-calendar-all-completed):enabled:hover,
#root .page .task2-overview-panel .react-calendar .react-calendar__tile:not([class*="task2-calendar-heat-"]):not(.task2-calendar-all-completed):enabled:focus {
  background: rgba(128, 137, 150, .18) !important;
  color: var(--task2-text) !important;
}

/* Completed-day polish: quiet at rest, a short celebration on completion. */
#root .page .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed::after { top: 2px; right: 3px; bottom: auto; }
#root .page .task2-overview-panel .react-calendar__tile.task2-calendar-gold-milestone {
  box-shadow: inset 0 0 0 1px rgba(185,148,64,.5), 0 0 10px rgba(207,166,65,.32);
}
#root .page .task2-overview-panel .react-calendar__tile.task2-calendar-gold-milestone.react-calendar__tile--active {
  box-shadow: inset 0 0 0 2px #858d99, 0 0 10px rgba(207,166,65,.32);
}
#root .page.theme-dark .task2-overview-panel .react-calendar__tile.task2-calendar-gold-milestone.react-calendar__tile--active {
  box-shadow: inset 0 0 0 2px #a3aab5, 0 0 10px rgba(207,166,65,.32);
}
.task2-overview-panel .react-calendar__tile.is-celebrating::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(0deg, transparent 30%, rgba(255,250,221,.38) 50%, transparent 70%);
  background-size: 100% 300%;
  animation: task2-gold-shimmer 950ms ease-out both;
}
@keyframes task2-gold-shimmer {
  from { background-position: 0 0%; opacity: 0; }
  25% { opacity: 1; }
  to { background-position: 0 100%; opacity: 0; }
}
.task2-calendar-celebration { position:absolute; left:5px; bottom:3px; color:#f4db94; font-size:.65rem; font-style:normal; pointer-events:none; animation:task2-gold-sparkles 900ms ease-out both; }
.task2-calendar-celebration b { position:absolute; left:14px; bottom:8px; font-size:.5rem; }
@keyframes task2-gold-sparkles {
  from { opacity:0; transform:translateY(4px) scale(.5); }
  35% { opacity:.85; }
  to { opacity:0; transform:translateY(-12px) scale(1.1); }
}
.task2-overview-panel .react-calendar__tile:hover,
.task2-overview-panel .react-calendar__tile:focus-visible { z-index: 5; }
.task2-overview-panel .react-calendar__tile:hover .task2-calendar-heatmap-hit > span,
.task2-overview-panel .react-calendar__tile:focus-visible .task2-calendar-heatmap-hit > span {
  clip: auto; clip-path: none; width:max-content; max-width:16rem; height:auto;
  position:absolute; top:calc(100% + 6px); left:50%; transform:translateX(-50%);
  margin:0; padding:.4rem .55rem; overflow:visible; white-space:normal;
  border:1px solid var(--task2-border); border-radius:.4rem;
  background:var(--task2-panel-raised); color:var(--task2-text); font-size:.72rem;
  box-shadow:0 4px 14px rgba(0,0,0,.2); pointer-events:none;
}
.task2-progress.is-complete { box-shadow:0 0 9px rgba(207,166,65,.4); }
.task2-progress.is-complete > span {
  background:linear-gradient(90deg, #b38b34, #eed48b, #c7a34d);
  box-shadow:0 0 10px rgba(207,166,65,.5);
}
@media (prefers-reduced-motion: reduce) {
  .task2-overview-panel .react-calendar__tile.is-celebrating::before,
  .task2-calendar-celebration { animation:none; display:none; }
}
/* Keep edge-column tooltips inside the narrow calendar rail. */
.task2-overview-panel .react-calendar__tile:is(:hover, :focus-visible) .task2-calendar-heatmap-hit > span { max-width:12rem; }
.task2-overview-panel .react-calendar__tile:is(:nth-child(7n+1), :nth-child(7n+2), :nth-child(7n+3)):is(:hover, :focus-visible) .task2-calendar-heatmap-hit > span { left:0; transform:none; }
.task2-overview-panel .react-calendar__tile:is(:nth-child(7n+5), :nth-child(7n+6), :nth-child(7n+7)):is(:hover, :focus-visible) .task2-calendar-heatmap-hit > span { left:auto; right:0; transform:none; }

/* Stronger heatmap and warm amber contrast on the light calendar surface. */
#root .page:not(.theme-dark) .task2-page {
  --task2-heat-1: hsla(var(--theme-hue), 76%, 53%, .18);
  --task2-heat-2: hsla(var(--theme-hue), 76%, 51%, .29);
  --task2-heat-3: hsla(var(--theme-hue), 74%, 49%, .41);
  --task2-heat-4: hsla(var(--theme-hue), 72%, 47%, .54);
}
#root .page:not(.theme-dark) .task2-overview-panel .react-calendar .react-calendar__tile.task2-calendar-all-completed,
#root .page:not(.theme-dark) .task2-overview-panel .react-calendar .react-calendar__tile.task2-calendar-all-completed:enabled:hover,
#root .page:not(.theme-dark) .task2-overview-panel .react-calendar .react-calendar__tile.task2-calendar-all-completed:enabled:focus {
  background: rgba(218, 159, 32, .36) !important;
  color: #49330c !important;
}
#root .page:not(.theme-dark) .task2-overview-panel .react-calendar .react-calendar__tile.task2-calendar-all-completed:not(.react-calendar__tile--active) {
  box-shadow: inset 0 0 0 1px rgba(158, 108, 18, .55), 0 0 7px rgba(186, 133, 27, .13);
}
#root .page:not(.theme-dark) .task2-overview-panel .react-calendar .react-calendar__tile.task2-calendar-gold-milestone:not(.react-calendar__tile--active) {
  box-shadow: inset 0 0 0 1px rgba(158, 108, 18, .55), 0 0 10px rgba(186, 133, 27, .26);
}
#root .page:not(.theme-dark) .task2-overview-panel .react-calendar__tile.task2-calendar-all-completed::after { color: #91600f; }

/* Compact mobile entry and single-line task rows. */
@media (max-width: 767.98px) {
  #root .page .task2-composer { flex-direction:row; align-items:center; gap:0; padding:.75rem; }
  #root .page .task2-composer-input { flex:1 1 0%; min-width:0; }
  #root .page .task2-composer-input > span { display:none; }
  #root .page .task2-composer input { width:100%; height:44px; padding:0 .75rem; border-radius:.6rem 0 0 .6rem; }
  #root .page .task2-composer > button[type="submit"] { flex:0 0 44px; width:44px; min-width:44px; height:44px; min-height:44px; padding:0; border-radius:0 .6rem .6rem 0; }
  #root .page .task2-add-label { display:none; }

  #root .page .task2-task-row { display:flex; align-items:center; gap:4px; min-height:52px; padding:4px 8px; }
  #root .page .task2-task-row.is-subtask { padding-left:18px; }
  #root .page .task2-task-row > .task2-drag-handle { flex:0 0 12px; width:12px; }
  #root .page .task2-task-row > .task2-drag-handle.is-disabled { display:none; }
  #root .page .task2-task-row > .task2-check { flex:0 0 36px; width:36px; height:44px; margin:0; }
  #root .page .task2-task-copy { display:flex; flex:1 1 0%; flex-direction:row; align-items:center; gap:6px; min-width:0; min-height:44px; }
  #root .page .task2-task-title { flex:1 1 0%; min-width:0; font-size:.9rem; }
  #root .page .task2-task-meta { display:flex; flex:0 1 auto; flex-wrap:nowrap; align-items:center; gap:4px; max-width:45%; min-width:0; margin:0; overflow:hidden; white-space:nowrap; }
  #root .page .task2-task-meta:empty { display:none; }
  #root .page .task2-task-date { flex-shrink:0; font-size:.65rem; }
  #root .page .task2-tag,
  #root .page .task2-task-list-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #root .page .task2-task-row > .task2-focus-button { flex:0 0 auto; justify-content:center; min-width:36px; height:44px; margin:0; padding:0 5px; gap:3px; }
  #root .page .task2-focus-label { display:none; }
  #root .page .task2-focus-duration { font-size:.65rem; }
  #root .page .task2-task-row > .task2-task-menu-wrap { flex:0 0 32px; margin:0; }
  #root .page .task2-task-menu-wrap > .task2-icon-button { width:32px; height:44px; }
  #root .page .task2-task-row > .task2-schedule-wrap { flex:0 0 32px; margin:0; }
  #root .page .task2-schedule-button { width:32px; height:44px; min-height:44px; padding:0; justify-content:center; }
  #root .page .task2-schedule-button > span { display:none; }
}

/* Public password-reset contrast overrides (WCAG AA). */
/* Mobile modal controls must be at least 16px to avoid focus zoom on iOS.
   Keep user-controlled pinch zoom available. */
@media (max-width: 767.98px), (pointer: coarse) {
  .modal input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]):not([type="hidden"]),
  .modal textarea,
  .modal select,
  .modal [contenteditable="true"] { font-size:16px !important; }
}
.session-check-notice {
  position:fixed; top:calc(env(safe-area-inset-top, 0px) + 4.55rem); left:50%; transform:translateX(-50%);
  z-index:1100; display:flex; align-items:center; gap:.5rem; padding:.55rem .85rem;
  border:1px solid var(--task2-border, #d1d5db); border-radius:2rem;
  background:var(--task2-panel, #fff); color:var(--task2-muted, #4b5563);
  font-size:.85rem; box-shadow:0 3px 12px rgba(0,0,0,.08); pointer-events:none; white-space:nowrap;
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .session-check-notice { top:calc(env(safe-area-inset-top, 0px) + 7.6rem); }
}
.calendar-range-toolbar { display:flex; justify-content:flex-end; padding:.65rem 1rem; border-bottom:1px solid var(--calendar-border); }
.calendar-range-switch {
  --task2-border:var(--calendar-border); --task2-border-soft:var(--calendar-border);
  --task2-panel:var(--calendar-surface); --task2-text:var(--calendar-text); --task2-muted:var(--calendar-muted);
  --task2-accent:var(--theme-accent, #4f5df5); --task2-accent-soft:var(--theme-accent-surface, var(--calendar-surface-subtle));
  overflow:hidden;
}
.calendar-months.is-multiple { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; padding:1rem; }
.calendar-months.is-multiple .calendar-month-panel { min-width:0; overflow:hidden; border:1px solid var(--calendar-border); border-radius:.7rem; }
.calendar-panel-title { margin:0; padding:.75rem; color:var(--calendar-text); background:var(--calendar-surface-subtle); font-size:1rem !important; font-weight:650; }
.calendar-months.is-multiple .calendar-day { min-height:5.6rem; padding:.3rem; }
.calendar-months.is-multiple .calendar-day-placeholder { cursor:default; background:var(--calendar-surface-subtle); }
.calendar-months.is-multiple .calendar-day-actions { display:none; }
.calendar-months.is-multiple .calendar-day-meta { gap:.1rem; }
.calendar-months.is-multiple .calendar-task-list { display:none; }
.calendar-months.is-multiple .calendar-weekdays div { padding:.4rem .2rem; text-align:center; }
@media (max-width: 991.98px) {
  .calendar-months.is-multiple { grid-template-columns:minmax(0, 1fr); padding:.6rem; }
}
@media (max-width: 767.98px) {
  .calendar-range-toolbar { justify-content:center; padding:.6rem; }
  .calendar-range-switch { width:100%; }
  .calendar-range-switch > button { flex:1 1 0; padding:.5rem .4rem; white-space:nowrap; }
}
.navbar-light .navbar-brand { color:#374151 !important; }
.password-reset-page .card-header,
.password-reset-page label,
.password-reset-page .form-control { color:#374151 !important; }
.password-reset-page h1.card-header { margin:0; font-size:1rem; font-weight:400; line-height:1.5; letter-spacing:normal; }
.password-reset-page .btn-primary {
  color:#fff !important;
  border-color:#0056b3;
  background:#0056b3;
}
.password-reset-page .btn-primary:hover,
.password-reset-page .btn-primary:focus {
  color:#fff !important;
  border-color:#00458f;
  background:#00458f;
}
