@charset "UTF-8";/**
 * Framework7 8.3.3
 * Full featured mobile HTML framework for building iOS & Android apps
 * https://framework7.io/
 *
 * Copyright 2014-2024 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: March 25, 2024
 */

/*====================
  Core
  ==================== */
:root {
  --f7-safe-area-left: 0px;
  --f7-safe-area-right: 0px;
  --f7-safe-area-top: 0px;
  --f7-safe-area-bottom: 0px;
  --f7-safe-area-outer-left: 0px;
  --f7-safe-area-outer-right: 0px;
  --f7-device-pixel-ratio: 1;
}
@supports (left: env(safe-area-inset-left)) {
  :root {
    --f7-safe-area-top: env(safe-area-inset-top);
    --f7-safe-area-bottom: env(safe-area-inset-bottom);
  }
  :root .ios-left-edge,
  :root .ios-edges,
  :root .safe-area-left,
  :root .safe-areas,
  :root .popup,
  :root .sheet-modal,
  :root .panel-left {
    --f7-safe-area-left: env(safe-area-inset-left);
    --f7-safe-area-outer-left: env(safe-area-inset-left);
  }
  :root .ios-right-edge,
  :root .ios-edges,
  :root .safe-area-right,
  :root .safe-areas,
  :root .popup,
  :root .sheet-modal,
  :root .panel-right {
    --f7-safe-area-right: env(safe-area-inset-right);
    --f7-safe-area-outer-right: env(safe-area-inset-right);
  }
  :root .no-safe-areas,
  :root .no-safe-area-left,
  :root .no-ios-edges,
  :root .no-ios-left-edge {
    --f7-safe-area-left: 0px;
    --f7-safe-area-outer-left: 0px;
  }
  :root .no-safe-areas,
  :root .no-safe-area-right,
  :root .no-ios-edges,
  :root .no-ios-right-edge {
    --f7-safe-area-right: 0px;
    --f7-safe-area-outer-right: 0px;
  }
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  :root {
    --f7-device-pixel-ratio: 2;
  }
}
@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) {
  :root {
    --f7-device-pixel-ratio: 3;
  }
}
/*====================
  Fonts & Bars
  ==================== */
:root {
  --f7-font-size: 14px;
  --f7-bars-translucent-opacity: 0.8;
  --f7-bars-translucent-blur: 20px;
}
.ios {
  --f7-font-family: -apple-system, SF Pro Text, SF UI Text, system-ui, Helvetica Neue, Helvetica, Arial, sans-serif;
  --f7-line-height: 1.4;
  /*
  --f7-bars-link-color: var(--f7-theme-color);
  */
  --f7-bars-text-color: #000;
  --f7-text-color: #000;
  --f7-bars-bg-color: #f7f7f8;
  --f7-bars-bg-color-rgb: 247, 247, 248;
  --f7-bars-border-color: rgba(0, 0, 0, 0.25);
}
.ios .dark,
.ios.dark {
  --f7-bars-text-color: #fff;
  --f7-text-color: #fff;
  --f7-bars-bg-color: #121212;
  --f7-bars-bg-color-rgb: 22, 22, 22;
  --f7-bars-border-color: rgba(255, 255, 255, 0.16);
}
.md {
  --f7-font-family: Roboto, system-ui, Noto, Helvetica, Arial, sans-serif;
  --f7-line-height: 1.5;
  --f7-bars-border-color: transparent;
  --f7-text-color: #212121;
}
.md .dark,
.md.dark {
  --f7-text-color: rgba(255, 255, 255, 0.87);
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-bars-link-color: var(--f7-md-on-surface);
  --f7-bars-bg-color: var(--f7-md-surface-2);
  --f7-bars-bg-color-rgb: var(--f7-md-surface-2-rgb);
}
/*====================
  Color Themes
  ==================== */
.text-color-primary {
  --f7-theme-color-text-color: var(--f7-theme-color);
}
.bg-color-primary {
  --f7-theme-color-bg-color: var(--f7-theme-color);
}
.border-color-primary {
  --f7-theme-color-border-color: var(--f7-theme-color);
}
.ripple-color-primary {
  --f7-theme-color-ripple-color: rgba(var(--f7-theme-color-rgb), 0.3);
}
@font-face {
  font-family: 'framework7-core-icons';
  src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAA0sABAAAAAAGLwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABbAAAABoAAAAcmrEdT0dERUYAAAGIAAAAIwAAACQAewBXR1BPUwAAAawAAAAuAAAANuAY7+xHU1VCAAAB3AAAAZ4AAAP6ALYH7k9TLzIAAAN8AAAASgAAAGBRKF+WY21hcAAAA8gAAACJAAABYt6F0cBjdnQgAAAEVAAAAAQAAAAEABEBRGdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAABGAAAATOAAAKDJkUuoRoZWFkAAAJMAAAADAAAAA2IlX292hoZWEAAAlgAAAAIAAAACQHgQM7aG10eAAACYAAAABgAAABHCxp//lsb2NhAAAJ4AAAAJAAAACQQrpFRm1heHAAAApwAAAAHwAAACAAjQBPbmFtZQAACpAAAAFVAAAC3EU7ispwb3N0AAAL6AAAAUIAAAJaVPgZiHicY2BgYGQAgts30q6A6Ps50bYwGgBRFwa1AAB4nGNgZGBg4AFiGSBmAkJmBk0GRgYtBjcgmwUsxgAADWAA0wB4nGNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB4nHVTW07CQBQ9Q2vAJwhVGwW0UJEgvt+Kb+XDT3dAYjQmxA9DXIDLMC7CLz9dg3EJfrkLPDMF+pg0TTPTe84998ydWwgAIyiiDtFudZ6QgskIul1IRLQfH1qMwfsiZqo1BWF8IAkLL4lO4scwDddowGC8iia2kYbDp4gKd5Ncy3yKyPMrjxyuMBHAHdiYxgwZHrqK8QA6xxpTAyyNBdzgGW/4wq8wRUU0xb14Fe/iU3yLP9a2qGRhUeUXIuoZuCrucHdGtTDTrxTk7Wq8nHJWiPCOeM4wz8V8hLOscYLubMZKWCcvzpfHuNAY0Q6ucI3TkPh+D89iVt3OUsTnBm8grsI5xrRcz9dmD9GrNjSk38M1jGpq0uEBZ1LvppyvGu//kh4tpV7mm1Ycl6zcwMsxd3EMqX+C4RAuY3K6t3hKOa02fdt0lVF7z0GWfKltDarIjFP2qkx92UF/an18h5UyVJeRfnyI/ajSwy3ucMh8S+VmeeLwPdTYhSDmZdeVdz8qvV+zMzLHn5I9/p39iHe6JHOy3BXYSQelf3GmQG8AAHicY2Bh/MI4gYGVgYHRhzGNgYHBHUp/ZZBkaGFgYGJgZWaAAUYGJBCQ5prC0MCgwFDFeOD/AQY9ps+MxTA1jAfAShQYxABDtQxkAAB4nGNgYGBmgGAZBkYGEIgB8hjBfBYGByDNw8DBwARkKzDoMlgyxDNU/f8PFAXxDIC8xP///z/+f/3/1f8b/q+HmgAHjGwMcCFGJiDBxICmAGI1HLAwMLCysXNwcnHz8PIxEAP4GQQEhYRFRMXEJSSlpGVk5eQVFJWUVVTV1DU0iTKA1gAAxH4T6AAAAAARAUQAAAAB//8AAnic7VXPTxtHFJ63xh6DY++uf+yq0FJs1l6ktk7x2l4aDEaFEMkCUlXQUi5A6nAprYoqu1IVbG6gKNRVBUJBuUVqpeYSfGirHID2QhrVrWQ1UlXlRA+VWnri0EYK677ZtRMg/0EVaWZn3puZN2++9723hCMiIeQ6TBAboSS6BeRsqkybyN+xLYf9Qaps43BKtmxMbWfqMnXAo1QZmF4TNVHVxE5x5eO5OZgwbomgoTXAtmt2nIndbP5M90z3v9dxx3Q21L7GmWrShL0Z3oApzDCe+EiAEG/I4ZdiyXgkJvkdoUgcdJXK6lfjqdR46sZ8JjOfgUTbQltxAQZS4319429lmNJ4+PyHbe8uEOv+2neg4QVeQsIhnmNW0qBG4snYiyCBCgC/uzok186OSwq69vkyx+27pA7X9g7T7vOWv7U/YBe+wBrwHFqRqZpQHZ0hZkMK+KkcYh6ipzCwFFmi0fT52dmrl7ro1zNDQzODq0uRYoB2zV6dnT3fH6WDM4ODM6ZfJEK28a12QnwUTerb+byyuQlJc2j4fgibsEqceGsgyDbJFDaNuyWlUlFKv8Wtsb6XuOF7yDJ7Osig6iXgFaNSUibqI4HaQ8TiJcQCa5meTAO67+dBZtCehYgd8OX45u1t9v59/mew7TNMULaQYHf4yZ7ls47OqPreTaVYVL7BbyF8cj2Brsq0vhwuFBUTR2O1aY47JC4i44swlFTWZTSjch0KJ3iVjiavwHEDe8m9Rus1fjKONjbABjGwbWz8uac3lvRHDx6rjSO27WnMGGBYe3XYZDhpn+2yAXoQwAZmGeiBJBFQsMAwkTC5AW7qF5zfOv3OUeqRaC9EnYIfZRQlD+2tn5+H1yHCzpOTp/UkxD10hUrYPZIzl3NCxMMEpvPQXI6aeJApqOB59k8hfRAM2BPBAFQMDSqHmnZd0zBm/5J3yC/wCvEQghGTJR48gLfoSTkz0yIILe/bfY5zbg9/5trnfIuL/9IJdIA/4/ZY/k3DMNpnHEP2UPWmGRCImAOxuE0kGMKYuVm+YdCOMdtR5/XBpG9SeVUfG/tgbGuyv3+yf+lt32Q7SmN697k005zEgjELk8ukFWUJdwIIybPRgCGfR91JP5ENyAnLz+mbSqGgsBpR+wtuwTqiJJIXsCrUq4GP+dfJSkQaGNtUk5NXyouL5Sv3L2SzF4az2eHR9lFsI+0jI+2wvnh7cfG2cXT52uXsp9kfrCWzPcmhOfgI+UngsT1Zh7lSSWk0uHhMwPjUjB3ugNslrYTYRRM3Ue9nSUXBoYZUiCIXYjL0KPHwj964z+s17gVaW33GPS/4vAnve9xBazjceuSvMDnOVjkfJL0a7qz71E7uwCWGa9Li15PEvXOSUlHBuYJ8XXEKksUwYvKnB5yQYud9SB6MrskeiXH0H9G17HC10Itu3iHa05+4oNsl3G+m07zbzjlGdsVTdYpVIBWrk5LLwRQO+XydQ7UprsJFSDPjUFxIajFJwIt8xzK8urZera6vrRWSBWxF9n0ZuqpV49cq3CjqhYJeNL+nc9i8M5gIqhWWu8Zd6CnBKpvGzRy2Mf84Df1jOYRxExNWFrHOaUcVqyNq8SWzncZUsKjKctf6MSBJlylddlr0hDefwvQ/M6nleQAAeJxjYGRgYADis2XfmeP5bb4ycDMxgMD9nGhbGP3/x79eljSmz0AuBwNYGgBQ5wydeJxjYGRgYPr8r5dBjyXt/w8GBpY0BqAICnAHAJFTBcN4nGPYzSDIAAKrGAY1YAwAYh0gPgDk7APSs4D4EEjs/0+G40AxIGZJg4pbALETEJ8Fip/9/4PRDch2gYqB2KuBGKiW6c3//wy7gWyG/z9AZjKdhehnMgbqA4oDAJFZGHgAAAAqACoAKgA0AD4ASABSAFwAZgBwAHoAhACOAJgAogCsALYAwADKANQA3gDoAPIA/AEGARABGgEkAS4BOAFCAUwBVgFgAWoBdAF+AYgBkgGcAaYBsgHcAf4CKAI6AlACYgKCApICogLUAuoDCgMqAzwDWgNsA5ADrgO+A/IEDAQ8BFwEfASOBLYEzATmBQZ4nGNgZGBgcGeQY2BhAAEmIGZkAIk5MOiBBAAN5gDdAHicrZC9asMwFIWP8gftUDo00FFjEmIjawlkTcmSpXTwbhw3EYmtoARC6ON06Na9Q5+iY6FP0IfosaJChwwdYri6n6/Olc4VgCu8QuD49fAQWKCLl8ANXOIjcBNa3AVuoSueA7dxLT4Dd9Bt3FIpWhf8u/ddNQsM8BS4gRu8B25ijq/ALQzEPnAbUrwF7rD+jQksNjjAwWCBJXaQ9Jyjz6yhGBpDcoo1Mp5qUDIcKzOqM1JdL3mG8buY2M3BmcVyJ3t5X2ql9VCm62xuSuPkbJm5dVZuzJzKRzbXrQX2NOGwwggRr665IBnPFbaUuqws9tatRlFuXRGZ3FYsn9T+FUx9ceez43yFnyrmXBJjxv8tHPUJuyOuiuvv62Bqq93UukUhdazkWJ40y3qio0RF9YucY/aUOsd943WSZhSNxT7X4yEt3NbYSiqVxEopeYZLfwCb64ZqAAAAeJxtUIlOwkAUnAGVW4rch36M8b7v2zSlLdIIXbJdxL/HhbaBJm6yyb6ZebPzHlJYnvkcxH/nWF8ihTQMVFFDHQ000UIbHXTRwz4OcIgjrTvBKc5wjgtc4grXuMEt7nCPBzziCc94wSve8I4PfDLFNDe4yS1mmGWOeRZYZInbLNNghTusssY6G2yyxTY77LLHXe7lA9eS9tD0RFCxh+6PFL4pva+hWiC5iBw75ZgbuQOl65IlpZjFVUGz9ndf/Oq3kVBqk1LCtrhON3yhvIFnW8rTiD0SgbvoKIfmfaGUGGvLnLQcTyyYatztiJlvWlMppJUJhFRRxDBEiOdj7XRSiuYIicqKiJDium3ZcUeuck0ppr6z+D2q9dATJc0w23qW5aArozCDFhjJferVJJy1Yjs0i/nschKN15Kdofcf+xC0ZgAA') format('woff');
  font-weight: 400;
  font-style: normal;
}
html {
  overscroll-behavior: none;
}
html,
body,
.framework7-root {
  position: relative;
  height: 100%;
  width: 100%;
  overflow-x: hidden;
}
body {
  margin: 0;
  padding: 0;
  width: 100%;
  background: #fff;
  overflow: hidden;
  overflow-y: scroll;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  font-family: var(--f7-font-family);
  font-size: var(--f7-font-size);
  line-height: var(--f7-line-height);
  color: var(--f7-text-color);
  scrollbar-width: none;
  scrollbar-color: transparent;
}
body::-webkit-scrollbar {
  -webkit-appearance: none;
          appearance: none;
  width: 0px;
  display: none;
  opacity: 0;
  background: transparent;
}
body::-webkit-scrollbar-track {
  box-shadow: none;
  background: transparent;
}
body::-webkit-scrollbar-thumb {
  background-color: transparent;
  outline: none;
  border-radius: 9999px;
  position: relative;
}
.dark body,
body.dark {
  background: #000;
}
.dark {
  color: var(--f7-text-color);
}
.framework7-root {
  overflow: hidden;
  box-sizing: border-box;
}
.framework7-initializing *,
.framework7-initializing *:before,
.framework7-initializing *:after {
  transition-duration: 0ms !important;
}
.device-ios,
.device-android {
  cursor: pointer;
}
.device-ios {
  touch-action: manipulation;
}
@media (width: 1024px) and (height: 691px) and (orientation: landscape) {
  html,
  body,
  .framework7-root {
    height: 671px;
  }
}
@media (width: 1024px) and (height: 692px) and (orientation: landscape) {
  html,
  body,
  .framework7-root {
    height: 672px;
  }
}
* {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-touch-callout: none;
}
a,
input,
textarea,
select {
  outline: 0;
}
a {
  cursor: pointer;
  -webkit-text-decoration: none;
  text-decoration: none;
  color: var(--f7-theme-color);
}
.link,
.item-link {
  cursor: pointer;
}
p {
  margin: 1em 0;
}
.disabled {
  opacity: 0.55 !important;
  pointer-events: none !important;
}
html.device-full-viewport,
html.device-full-viewport body {
  height: 100vh;
}
.ios .md-only,
.ios .if-md,
.ios .if-not-ios,
.ios .not-ios {
  display: none !important;
}
@media (width: 1024px) and (height: 691px) and (orientation: landscape) {
  .ios,
  .ios body,
  .ios .framework7-root {
    height: 671px;
  }
}
@media (width: 1024px) and (height: 692px) and (orientation: landscape) {
  .ios,
  .ios body,
  .ios .framework7-root {
    height: 672px;
  }
}
.md .ios-only,
.md .if-ios,
.md .if-not-md,
.md .not-md {
  display: none !important;
}
/* === Statusbar === */
/* === Views === */
.views,
.view {
  position: relative;
  height: 100%;
  z-index: 5000;
  overflow: hidden;
  box-sizing: border-box;
}
.framework7-root > .view,
.framework7-root > .views {
  height: 100%;
}
.view-resize-handler {
  width: 6px;
  height: 100%;
  position: absolute;
  left: var(--f7-page-master-width);
  margin-left: -3px;
  top: 0;
  cursor: col-resize;
  z-index: 1000;
  display: none;
}
.view-master-detail .view-resize-handler {
  display: block;
}
/* === Pages === */
:root {
  --f7-page-master-width: 320px;
  --f7-page-master-border-color: rgba(0, 0, 0, 0.1);
  --f7-page-master-border-width: 1px;
  --f7-page-swipeback-transition-duration: 300ms;
  --f7-page-parallax-transition-duration: 500ms;
  --f7-page-cover-transition-duration: 450ms;
  --f7-page-dive-transition-duration: 500ms;
  --f7-page-fade-transition-duration: 500ms;
  --f7-page-flip-transition-duration: 700ms;
  --f7-page-push-transition-duration: 500ms;
  /*
  --f7-page-content-extra-padding-top: 0px;
  --f7-page-content-extra-padding-bottom: 0px;
  */
  --f7-page-title-line-height: 1.2;
  --f7-page-title-text-color: inherit;
  --f7-page-title-padding-left: 16px;
  --f7-page-title-padding-right: 16px;
}
.ios {
  --f7-page-transition-duration: 400ms;
  --f7-page-title-font-size: 34px;
  --f7-page-title-font-weight: 700;
  --f7-page-title-letter-spacing: -0.03em;
  --f7-page-title-padding-vertical: 6px;
  --f7-page-bg-color: #efeff4;
}
.ios .dark,
.ios.dark {
  --f7-page-bg-color: #000;
}
.md {
  --f7-page-transition-duration: 400ms;
  --f7-page-title-font-size: 34px;
  --f7-page-title-font-weight: 500;
  --f7-page-title-letter-spacing: 0;
  --f7-page-title-padding-vertical: 8px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-page-bg-color: var(--f7-md-surface);
}
.dark {
  --f7-page-master-border-color: rgba(255, 255, 255, 0.2);
}
.pages {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.page {
  box-sizing: border-box;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  transform: none;
  background-color: var(--f7-page-bg-color);
  z-index: 1;
}
.page-with-navbar-large-collapsed {
  --f7-navbar-large-collapse-progress: 1;
}
.page-previous {
  pointer-events: none;
}
.page-content {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
  height: 100%;
  position: relative;
  z-index: 1;
  padding-top: calc(var(--f7-page-navbar-offset, 0px) + var(--f7-page-toolbar-top-offset, 0px) + var(--f7-page-subnavbar-offset, 0px) + var(--f7-page-searchbar-offset, 0px) + var(--f7-page-content-extra-padding-top, 0px));
  padding-bottom: calc(var(--f7-page-toolbar-bottom-offset, 0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom, 0px));
}
.page-transitioning,
.page-transitioning .page-shadow-effect,
.page-transitioning .page-opacity-effect {
  transition-duration: var(--f7-page-transition-duration);
}
.page-transitioning-swipeback,
.page-transitioning-swipeback .page-shadow-effect,
.page-transitioning-swipeback .page-opacity-effect {
  transition-duration: var(--f7-page-swipeback-transition-duration);
}
.router-transition-forward .page-next,
.router-transition-backward .page-next,
.router-transition-forward .page-current,
.router-transition-backward .page-current {
  pointer-events: none;
}
.page-shadow-effect {
  position: absolute;
  top: 0;
  width: 16px;
  bottom: 0;
  z-index: -1;
  content: '';
  opacity: 0;
  right: 100%;
  background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%);
}
.page-opacity-effect {
  position: absolute;
  left: 0;
  top: 0;
  background: rgba(0, 0, 0, 0.1);
  width: 100%;
  bottom: 0;
  content: '';
  opacity: 0;
  z-index: 10000;
}
.ios .page-previous {
  transform: translate3d(-20%, 0, 0);
}
.ios .page-next {
  transform: translate3d(100%, 0, 0);
}
.ios .page-previous .page-opacity-effect {
  opacity: 1;
}
.ios .page-previous:after {
  opacity: 1;
}
.ios .page-current .page-shadow-effect {
  opacity: 1;
}
.ios .router-transition-forward .page-next {
  animation: ios-page-next-to-current var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-forward .page-next:before {
  position: absolute;
  top: 0;
  width: 16px;
  bottom: 0;
  z-index: -1;
  content: '';
  opacity: 0;
  right: 100%;
  background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%);
  animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-forward .page-current {
  animation: ios-page-current-to-previous var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-forward .page-current:after {
  position: absolute;
  left: 0;
  top: 0;
  background: rgba(0, 0, 0, 0.1);
  width: 100%;
  bottom: 0;
  content: '';
  opacity: 0;
  z-index: 10000;
  animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-backward .page-previous {
  animation: ios-page-previous-to-current var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-backward .page-previous:after {
  position: absolute;
  left: 0;
  top: 0;
  background: rgba(0, 0, 0, 0.1);
  width: 100%;
  bottom: 0;
  content: '';
  opacity: 0;
  z-index: 10000;
  animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-backward .page-current {
  animation: ios-page-current-to-next var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-backward .page-current:before {
  position: absolute;
  top: 0;
  width: 16px;
  bottom: 0;
  z-index: -1;
  content: '';
  opacity: 0;
  right: 100%;
  background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%);
  animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards;
}
@keyframes ios-page-next-to-current {
  from {
    transform: translate3d(100%, 0, 0);
  }
  to {
    transform: translate3d(0%, 0, 0);
  }
}
@keyframes ios-page-previous-to-current {
  from {
    transform: translate3d(-20%, 0, 0);
  }
  to {
    transform: translate3d(0%, 0, 0);
  }
}
@keyframes ios-page-current-to-previous {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-20%, 0, 0);
  }
}
@keyframes ios-page-current-to-next {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(100%, 0, 0);
  }
}
@keyframes ios-page-element-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes ios-page-element-fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
.md .page-previous {
  transform: translate3d(0, -20px, 0);
}
.md .page-next {
  pointer-events: none;
  transform: translate3d(0, 128px, 0);
  opacity: 0;
}
.md .page-next.page-next-on-right {
  transform: translate3d(100%, 0, 0);
  opacity: 1;
}
.md .router-transition-forward .page-next {
  opacity: 1;
  animation: md-page-next-to-current var(--f7-page-transition-duration) forwards cubic-bezier(0, 0.8, 0.3, 1);
}
.md .router-transition-forward .page-current {
  animation: md-page-current-to-previous var(--f7-page-transition-duration) forwards cubic-bezier(0, 0.8, 0.3, 1);
}
.md .router-transition-backward .page-current {
  animation: md-page-current-to-next calc(var(--f7-page-transition-duration) / 4) forwards cubic-bezier(0.8, 0, 1, 0.3), md-page-current-to-next-opacity 0ms calc(var(--f7-page-transition-duration) / 4) forwards;
}
.md .router-transition-backward .page-previous {
  animation: md-page-previous-to-current var(--f7-page-transition-duration) forwards;
}
@keyframes md-page-next-to-current {
  from {
    transform: translate3d(0, 128px, 0);
  }
  to {
    transform: translate3d(0, 0px, 0);
  }
}
@keyframes md-page-current-to-next {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(0, 128px, 0);
  }
}
@keyframes md-page-current-to-next-opacity {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes md-page-current-to-previous {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(0, -20px, 0);
  }
}
@keyframes md-page-previous-to-current {
  from {
    transform: translate3d(0, -20px, 0);
  }
  to {
    transform: translate3d(0, 0px, 0);
  }
}
.view:not(.view-master-detail) .page-master-stacked {
  display: none;
}
.view:not(.view-master-detail) .navbar-master-stacked {
  display: none;
}
.view-master-detail .page-master,
.view-master-detail .navbar-master {
  width: var(--f7-page-master-width);
  --f7-safe-area-right: 0px;
  --f7-safe-area-outer-right: 0px;
  border-right: var(--f7-page-master-border-width) solid var(--f7-page-master-border-color);
}
.view-master-detail .page-master-detail,
.view-master-detail .navbar-master-detail {
  width: calc(100% - var(--f7-page-master-width));
  --f7-safe-area-left: 0px;
  --f7-safe-area-outer-left: 0px;
  left: var(--f7-page-master-width);
}
.view-master-detail .page-master-detail > .navbar-master-detail {
  left: 0;
  right: 0;
  width: 100%;
}
.view-master-detail .page-master {
  z-index: 2;
  transform: none;
  pointer-events: auto;
}
.view-master-detail .page-master:before,
.view-master-detail .page-master:after {
  display: none;
}
.view-master-detail.router-transition .page-master {
  animation: none;
}
.md .router-transition-custom .page-previous,
.ios .router-transition-custom .page-previous,
.md .router-transition-custom .page-next,
.ios .router-transition-custom .page-next {
  opacity: 1;
  transform: none;
}
.md .router-transition-custom.view-master-detail .page-master,
.ios .router-transition-custom.view-master-detail .page-master {
  animation: none;
}
.page-title {
  position: relative;
  z-index: 10;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--f7-page-title-text-color);
  letter-spacing: var(--f7-page-title-letter-spacing);
  font-size: var(--f7-page-title-font-size);
  font-weight: var(--f7-page-title-font-weight);
  line-height: var(--f7-page-title-line-height);
  padding-left: calc(var(--f7-page-title-padding-left) + var(--f7-safe-area-left));
  padding-right: calc(var(--f7-page-title-padding-right) + var(--f7-safe-area-right));
  padding-top: var(--f7-page-title-padding-vertical);
  padding-bottom: var(--f7-page-title-padding-vertical);
  box-sizing: border-box;
  overflow: hidden;
  width: 100%;
}
.router-transition-f7-circle-forward:after,
.router-transition-f7-circle-backward:after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100vmax;
  height: 100vmax;
  margin-left: -50vmax;
  margin-top: -50vmax;
  background: var(--f7-page-bg-color);
  z-index: 100;
}
.router-transition-f7-circle-forward .page,
.router-transition-f7-circle-backward .page {
  pointer-events: none;
}
.router-transition-f7-circle-forward:after {
  transform: scale(0);
  border-radius: 50%;
  animation: f7-circle-circle-in 400ms forwards;
}
.ios .router-transition-f7-circle-forward .page-next,
.md .router-transition-f7-circle-forward .page-next {
  opacity: 0;
  transform: scale(0.9);
  animation: f7-circle-next-to-current 300ms forwards;
  animation-delay: 300ms;
  z-index: 150;
}
.router-transition-f7-circle-backward:after {
  animation: f7-circle-circle-out 300ms forwards;
  animation-delay: 350ms;
}
.ios .router-transition-f7-circle-backward .page-current,
.md .router-transition-f7-circle-backward .page-current {
  animation: f7-circle-current-to-next 700ms forwards;
  z-index: 150;
}
@keyframes f7-circle-circle-in {
  from {
    transform: scale(0);
    border-radius: 50%;
  }
  50% {
    border-radius: 50%;
  }
  to {
    transform: scale(1);
    border-radius: 0%;
  }
}
@keyframes f7-circle-circle-out {
  from {
    transform: scale(1);
    border-radius: 0%;
  }
  50% {
    border-radius: 50%;
  }
  to {
    transform: scale(0);
    border-radius: 50%;
  }
}
@keyframes f7-circle-next-to-current {
  from {
    transform: scale(0.9);
    opacity: 0;
  }
  40% {
    transform: scale(1.035);
    opacity: 1;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes f7-circle-current-to-next {
  from {
    transform: scale(1);
    opacity: 1;
  }
  34% {
    transform: scale(1.035);
    opacity: 1;
  }
  57% {
    transform: scale(0.9);
    opacity: 0;
  }
  to {
    transform: scale(0.9);
    opacity: 0;
  }
}
.router-transition-f7-cover-v-forward,
.router-transition-f7-cover-v-backward {
  background: #000;
  perspective: 1200px;
}
.router-transition-f7-cover-v-forward .page,
.router-transition-f7-cover-v-backward .page {
  pointer-events: none;
}
.router-transition-f7-cover-v-forward .page-next {
  animation: f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards;
}
.router-transition-f7-cover-v-forward .page-current {
  animation: f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards;
}
.router-transition-f7-cover-v-backward .page-current {
  animation: f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards;
}
.router-transition-f7-cover-v-backward .page-previous {
  animation: f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards;
}
@keyframes f7-cover-v-next-to-current {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0%);
  }
}
@keyframes f7-cover-v-current-to-next {
  from {
    transform: translateY(0%);
  }
  to {
    transform: translateY(100%);
  }
}
@keyframes f7-cover-v-current-to-prev {
  from {
    transform: translateZ(0);
    opacity: 1;
  }
  to {
    transform: translateZ(-300px);
    opacity: 0.5;
  }
}
@keyframes f7-cover-v-prev-to-current {
  from {
    transform: translateZ(-300px);
    opacity: 0.5;
  }
  to {
    transform: translateZ(0);
    opacity: 1;
  }
}
.router-transition-f7-cover-forward,
.router-transition-f7-cover-backward {
  background: #000;
  perspective: 1200px;
}
.router-transition-f7-cover-forward .page,
.router-transition-f7-cover-backward .page {
  pointer-events: none;
}
.router-transition-f7-cover-forward .page-next {
  animation: f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards;
}
.router-transition-f7-cover-forward .page-current {
  animation: f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards;
}
.router-transition-f7-cover-backward .page-current {
  animation: f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards;
}
.router-transition-f7-cover-backward .page-previous {
  animation: f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards;
}
@keyframes f7-cover-next-to-current {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0%);
  }
}
@keyframes f7-cover-current-to-next {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(100%);
  }
}
@keyframes f7-cover-current-to-prev {
  from {
    transform: translateZ(0);
    opacity: 1;
  }
  to {
    transform: translateZ(-300px);
    opacity: 0.5;
  }
}
@keyframes f7-cover-prev-to-current {
  from {
    transform: translateZ(-300px);
    opacity: 0.5;
  }
  to {
    transform: translateZ(0);
    opacity: 1;
  }
}
.router-transition-f7-dive-forward,
.router-transition-f7-dive-backward {
  background: var(--f7-page-bg-color);
  perspective: 1200px;
}
.router-transition-f7-dive-forward .page,
.router-transition-f7-dive-backward .page {
  pointer-events: none;
}
.router-transition-f7-dive-forward .page-next {
  animation: f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards;
}
.router-transition-f7-dive-forward .page-current {
  animation: f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards;
}
.router-transition-f7-dive-backward .page-current {
  animation: f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards;
}
.router-transition-f7-dive-backward .page-previous {
  animation: f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards;
}
@keyframes f7-dive-next-to-current {
  from {
    opacity: 0;
    transform: translateZ(-150px);
  }
  50% {
    opacity: 0;
  }
  to {
    opacity: 1;
    transform: translateZ(0px);
  }
}
@keyframes f7-dive-current-to-next {
  from {
    opacity: 1;
    transform: translateZ(0px);
  }
  50% {
    opacity: 0;
  }
  to {
    opacity: 0;
    transform: translateZ(-150px);
  }
}
@keyframes f7-dive-current-to-prev {
  from {
    transform: translateZ(0px);
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  to {
    opacity: 0;
    transform: translateZ(150px);
  }
}
@keyframes f7-dive-prev-to-current {
  from {
    opacity: 0;
    transform: translateZ(150px);
  }
  50% {
    opacity: 0;
  }
  to {
    opacity: 1;
    transform: translateZ(0px);
  }
}
.router-transition-f7-fade-forward,
.router-transition-f7-fade-backward {
  background: var(--f7-page-bg-color);
}
.router-transition-f7-fade-forward .page,
.router-transition-f7-fade-backward .page {
  pointer-events: none;
}
.ios .router-transition-f7-fade-forward .page-next,
.md .router-transition-f7-fade-forward .page-next {
  opacity: 0;
  animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards;
}
.ios .router-transition-f7-fade-forward .page-current,
.md .router-transition-f7-fade-forward .page-current {
  animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards;
}
.ios .router-transition-f7-fade-backward .page-current,
.md .router-transition-f7-fade-backward .page-current {
  animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards;
}
.ios .router-transition-f7-fade-backward .page-previous,
.md .router-transition-f7-fade-backward .page-previous {
  animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards;
}
@keyframes f7-fade-in {
  from {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes f7-fade-out {
  from {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  to {
    opacity: 0;
  }
}
.router-transition-f7-flip-forward,
.router-transition-f7-flip-backward {
  background: #000;
  perspective: 1200px;
}
.router-transition-f7-flip-forward .page,
.router-transition-f7-flip-backward .page {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  overflow: hidden;
  pointer-events: none;
}
.router-transition-f7-flip-forward .page-next {
  transform-style: preserve-3d;
  animation: f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards;
}
.router-transition-f7-flip-forward .page-current {
  transform-style: preserve-3d;
  animation: f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards;
}
.router-transition-f7-flip-backward .page-current {
  transform-style: preserve-3d;
  animation: f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards;
}
.router-transition-f7-flip-backward .page-previous {
  transform-style: preserve-3d;
  animation: f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards;
}
@keyframes f7-flip-next-to-current {
  from {
    border-radius: 32px;
    transform: translateZ(-100vmax) rotateY(180deg);
  }
  to {
    border-radius: 0;
    transform: translateZ(0px) rotateY(0deg);
  }
}
@keyframes f7-flip-current-to-next {
  from {
    border-radius: 0px;
    transform: translateZ(0px) rotateY(0deg);
  }
  to {
    border-radius: 32px;
    transform: translateZ(-100vmax) rotateY(180deg);
  }
}
@keyframes f7-flip-current-to-prev {
  from {
    border-radius: 0px;
    transform: translateZ(0px) rotateY(0deg);
  }
  to {
    border-radius: 32px;
    transform: translateZ(-100vmax) rotateY(-180deg);
  }
}
@keyframes f7-flip-prev-to-current {
  from {
    border-radius: 32px;
    transform: translateZ(-100vmax) rotateY(-180deg);
  }
  to {
    border-radius: 0px;
    transform: translateZ(0px) rotateY(0deg);
  }
}
.router-transition-f7-parallax-forward .page {
  pointer-events: none;
}
.router-transition-f7-parallax-forward .page-next {
  animation: f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards;
}
.router-transition-f7-parallax-forward .page-current {
  animation: f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards;
}
.router-transition-f7-parallax-backward .page {
  pointer-events: none;
}
.router-transition-f7-parallax-backward .page-current {
  animation: f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards;
}
.router-transition-f7-parallax-backward .page-previous {
  animation: f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards;
}
@keyframes f7-parallax-next-to-current {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0%);
  }
}
@keyframes f7-parallax-current-to-next {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(100%);
  }
}
@keyframes f7-parallax-current-to-prev {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-20%);
  }
}
@keyframes f7-parallax-prev-to-current {
  from {
    transform: translateX(-20%);
  }
  to {
    transform: translateX(0%);
  }
}
.router-transition-f7-push-forward .page {
  pointer-events: none;
}
.router-transition-f7-push-forward .page-next {
  animation: f7-push-next-to-current var(--f7-page-push-transition-duration) forwards;
}
.router-transition-f7-push-forward .page-current {
  animation: f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards;
}
.router-transition-f7-push-backward .page {
  pointer-events: none;
}
.router-transition-f7-push-backward .page-current {
  animation: f7-push-current-to-next var(--f7-page-push-transition-duration) forwards;
}
.router-transition-f7-push-backward .page-previous {
  animation: f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards;
}
@keyframes f7-push-next-to-current {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0%);
  }
}
@keyframes f7-push-current-to-next {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(100%);
  }
}
@keyframes f7-push-current-to-prev {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-100%);
  }
}
@keyframes f7-push-prev-to-current {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0%);
  }
}
/* === Link === */
:root {
  --f7-link-highlight-black: rgba(0, 0, 0, 0.1);
  --f7-link-highlight-white: rgba(255, 255, 255, 0.15);
  --f7-link-highlight-color: rgba(var(--f7-theme-color-rgb), 0.15);
}
.ios {
  --f7-link-pressed-opacity: 0.3;
}
.link,
.tab-link {
  display: inline-flex;
  align-items: center;
  align-content: center;
  justify-content: center;
  position: relative;
  box-sizing: border-box;
  z-index: 1;
  --f7-touch-ripple-color: var(--f7-link-touch-ripple-color, rgba(var(--f7-theme-color-rgb), 0.25));
}
.link i + span,
.link i + i,
.link span + i,
.link span + span {
  margin-left: 4px;
}
.link[class*='color-'] {
  color: var(--f7-theme-color);
}
.ios .link {
  transition: opacity 300ms;
}
.ios .link.active-state {
  opacity: var(--f7-link-pressed-opacity);
  transition-duration: 0ms;
}
/* === Navbar === */
:root {
  /*
  --f7-navbar-bg-color: var(--f7-bars-bg-color);
  --f7-navbar-bg-color-rgb: var(--f7-bars-bg-color-rgb);
  --f7-navbar-border-color: var(--f7-bars-border-color);
  */
  --f7-navbar-hide-show-transition-duration: 400ms;
  --f7-navbar-title-line-height: 1.2;
  --f7-navbar-subtitle-text-align: inherit;
  --f7-navbar-large-title-line-height: 1.2;
  --f7-navbar-large-title-text-color: inherit;
  --f7-navbar-large-title-padding-left: 16px;
  --f7-navbar-large-title-padding-right: 16px;
}
.ios {
  /*
  --f7-navbar-link-color: var(--f7-bars-link-color);
  --f7-navbar-text-color: var(--f7-bars-text-color);
  */
  --f7-navbar-height: 44px;
  --f7-navbar-font-size: 17px;
  --f7-navbar-title-font-size: inherit;
  --f7-navbar-inner-padding-left: 8px;
  --f7-navbar-inner-padding-right: 8px;
  --f7-navbar-title-font-weight: 600;
  --f7-navbar-title-margin-left: 0;
  --f7-navbar-title-margin-right: 0;
  --f7-navbar-title-text-align: center;
  --f7-navbar-subtitle-font-size: 10px;
  --f7-navbar-subtitle-line-height: 1;
  --f7-navbar-large-title-height: 52px;
  --f7-navbar-large-title-font-size: 34px;
  --f7-navbar-large-title-font-weight: 700;
  --f7-navbar-large-title-letter-spacing: -0.03em;
  --f7-navbar-large-title-padding-vertical: 6px;
  /*
  --f7-navbar-link-height: var(--f7-navbar-height);
  --f7-navbar-link-line-height: var(--f7-navbar-height);
  */
  --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.55);
}
.ios .dark,
.ios.dark {
  --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.55);
}
.md {
  --f7-navbar-height: 64px;
  --f7-navbar-font-size: 16px;
  --f7-navbar-title-font-size: 22px;
  --f7-navbar-inner-padding-left: 0px;
  --f7-navbar-inner-padding-right: 0px;
  --f7-navbar-title-font-weight: 400;
  --f7-navbar-title-margin-left: 0px;
  --f7-navbar-title-margin-right: 16px;
  --f7-navbar-title-text-align: left;
  --f7-navbar-subtitle-font-size: 14px;
  --f7-navbar-subtitle-line-height: 1.2;
  --f7-navbar-large-title-font-size: 28px;
  --f7-navbar-large-title-height: 88px;
  --f7-navbar-large-title-font-weight: 400;
  --f7-navbar-large-title-letter-spacing: 0;
  --f7-navbar-large-title-padding-vertical: 8px;
  --f7-navbar-link-height: 48px;
  --f7-navbar-link-line-height: 48px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-navbar-link-color: var(--f7-md-on-surface);
  --f7-navbar-text-color: var(--f7-md-on-surface);
  --f7-navbar-subtitle-text-color: var(--f7-md-on-surface-variant);
}
.navbars,
.navbar {
  z-index: 500;
  left: 0;
  top: 0;
  width: 100%;
}
.navbars {
  position: absolute;
}
.navbars .navbar {
  z-index: auto;
}
.navbars .navbar-transitioning {
  z-index: 500;
}
.navbar {
  --f7-navbar-large-collapse-progress: 0;
  position: relative;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  box-sizing: border-box;
  margin: 0;
  height: calc(var(--f7-navbar-height) + var(--f7-safe-area-top));
  color: var(--f7-navbar-text-color, var(--f7-bars-text-color));
  font-size: var(--f7-navbar-font-size);
}
.navbar b {
  font-weight: 500;
}
.navbar a {
  color: var(--f7-navbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
}
.navbar a.link {
  display: flex;
  justify-content: flex-start;
  line-height: var(--f7-navbar-link-line-height, var(--f7-navbar-height));
  height: var(--f7-navbar-link-height, var(--f7-navbar-height));
}
.navbar .title,
.navbar .left,
.navbar .right {
  position: relative;
  z-index: 10;
}
.navbar .title {
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex-shrink: 10;
  font-weight: var(--f7-navbar-title-font-weight);
  display: inline-block;
  line-height: var(--f7-navbar-title-line-height);
  text-align: var(--f7-navbar-title-text-align);
  font-size: var(--f7-navbar-title-font-size);
  margin-left: var(--f7-navbar-title-margin-left);
  margin-right: var(--f7-navbar-title-margin-left);
}
.navbar .subtitle {
  display: block;
  color: var(--f7-navbar-subtitle-text-color);
  font-weight: normal;
  font-size: var(--f7-navbar-subtitle-font-size);
  line-height: var(--f7-navbar-subtitle-line-height);
  text-align: var(--f7-navbar-subtitle-text-align);
}
.navbar .left,
.navbar .right {
  flex-shrink: 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.navbar .right:first-child {
  position: absolute;
  height: 100%;
}
.navbar.no-outline .navbar-bg:after,
.navbar .no-outline .navbar-bg:after {
  display: none !important;
}
.navbar.no-outline .title-large:after,
.navbar .no-outline .title-large:after {
  display: none !important;
}
.navbar.navbar-hidden .navbar-bg:before,
.navbar-hidden .navbar .navbar-bg:before {
  opacity: 0 !important;
}
.navbar-bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  background: var(--f7-navbar-bg-color);
  background-color: var(--f7-navbar-bg-color, var(--f7-bars-bg-color));
  transition-property: transform;
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-bars .navbar-bg {
    background-color: rgba(var(--f7-navbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity));
    -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
            backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
  }
}
.navbar-bg:after,
.navbar-bg:before {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.navbar-bg:after {
  content: '';
  position: absolute;
  background-color: var(--f7-navbar-border-color, var(--f7-bars-border-color));
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.navbar-bg:after {
  z-index: 1;
}
.navbar-transitioning,
.navbar-transitioning .left,
.navbar-transitioning .title,
.navbar-transitioning .right,
.navbar-transitioning .title-large-text,
.navbar-transitioning .navbar-bg,
.navbar-transitioning .subnavbar,
.navbar-transitioning .navbar-bg:before {
  transition-duration: var(--f7-navbar-hide-show-transition-duration);
}
.navbar-page-transitioning {
  transition-duration: var(--f7-page-swipeback-transition-duration) !important;
}
.navbar-page-transitioning .title-large-text,
.navbar-page-transitioning .navbar-bg {
  transition-duration: var(--f7-page-swipeback-transition-duration) !important;
}
.navbar-hidden {
  transform: translate3d(0, calc(-1 * var(--f7-navbar-height)), 0);
}
.navbar-hidden .navbar-inner {
  pointer-events: none;
}
.navbar-hidden .navbar-inner > .left,
.navbar-hidden .navbar-inner > .title,
.navbar-hidden .navbar-inner > .right {
  opacity: 0 !important;
}
.navbar-hidden .subnavbar {
  pointer-events: auto;
}
.navbar-hidden-statusbar {
  transform: translate3d(0, calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)), 0);
}
.navbar-large-hidden .navbar-large {
  --f7-navbar-large-collapse-progress: 1;
}
.navbar-inner {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding: var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left));
  transform: translate3d(0, 0, 0);
  z-index: 10;
}
.views > .navbar,
.view > .navbar,
.page > .navbar,
.navbars > .navbar {
  position: absolute;
}
.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(
    .with-searchbar-expandable-enabled
  ) .navbar-bg,
.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(
    .with-searchbar-expandable-enabled
  ) .title {
  opacity: 0;
}
.navbar-large .navbar-bg {
  height: calc(100% + var(--f7-navbar-large-title-height));
  transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0);
}
.navbar-large-transparent .navbar-bg,
.navbar-large.navbar-transparent .navbar-bg {
  opacity: var(--f7-navbar-large-collapse-progress);
}
.ios .router-navbar-transition-to-large .navbar-bg,
.ios .router-navbar-transition-from-large .navbar-bg,
.navbar-bg.ios-swipeback-navbar-bg-large,
.navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large,
.navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large {
  height: calc(100% + var(--f7-navbar-large-title-height));
  transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0);
}
.ios .navbar:not(.navbar-large) .navbar-bg {
  --f7-navbar-large-collapse-progress: 1;
}
.navbar-large .title {
  opacity: var(--f7-navbar-large-collapse-progress);
}
.navbar-large-collapsed {
  --f7-navbar-large-collapse-progress: 1;
}
.navbar-large-collapsed .title-large {
  pointer-events: none;
}
.navbar .title-large {
  box-sizing: border-box;
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  display: flex;
  white-space: nowrap;
  overflow: hidden;
  height: var(--f7-navbar-large-title-height);
  z-index: 5;
}
.navbar .title-large-text {
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--f7-navbar-large-title-text-color);
  letter-spacing: var(--f7-navbar-large-title-letter-spacing);
  font-size: var(--f7-navbar-large-title-font-size);
  font-weight: var(--f7-navbar-large-title-font-weight);
  line-height: var(--f7-navbar-large-title-line-height);
  padding-left: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left));
  padding-right: calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right));
  padding-top: var(--f7-navbar-large-title-padding-vertical);
  padding-bottom: var(--f7-navbar-large-title-padding-vertical);
  box-sizing: border-box;
  overflow: hidden;
  width: 100%;
  transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0);
  transform-origin: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center;
}
.navbar-no-title-large-transition .title-large-text {
  transition-duration: 0ms;
}
.navbar ~ *,
.navbars ~ * {
  --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.navbar ~ * .page-with-navbar-large,
.navbar ~ .page-with-navbar-large,
.navbars ~ * .page-with-navbar-large,
.navbars ~ .page-with-navbar-large,
.page-with-navbar-large .navbar ~ * {
  --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top));
}
.page.no-navbar,
.page.no-navbar .navbar ~ * {
  --f7-page-navbar-offset: var(--f7-safe-area-top);
}
.ios {
  --f7-navbarLeftTextOffset: calc(4px + 12px + var(--f7-navbar-inner-padding-left));
  --f7-navbarTitleLargeOffset: var(--f7-navbar-large-title-padding-left);
  --f7-navbar-large-bg-center-top: translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height)));
  --f7-navbar-large-bg-center-bottom: translateX(0) translateY(0);
  --f7-navbar-large-bg-left-top: translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));
  --f7-navbar-large-bg-left-bottom: translateX(-100%) translateY(0);
  --f7-navbar-large-bg-right-top: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));
  --f7-navbar-large-bg-right-bottom: translateX(100%) translateY(0);
}
.ios .navbar .title-large {
  align-items: flex-end;
}
.ios .navbar a.icon-only {
  width: 44px;
  margin: 0;
  justify-content: center;
}
.ios .navbar .left a + a,
.ios .navbar .right a + a {
  margin-left: 16px;
}
.ios .navbar b {
  font-weight: 600;
}
.ios .navbar .left {
  margin-right: 10px;
}
.ios .navbar .right {
  margin-left: 10px;
}
.ios .navbar .right:first-child {
  right: calc(8px + var(--f7-safe-area-right));
}
.ios .navbar-inner {
  justify-content: space-between;
}
.ios .navbar-inner-left-title {
  justify-content: flex-start;
}
.ios .navbar-inner-left-title .right {
  margin-left: auto;
}
.ios .navbar-inner-left-title .title {
  text-align: left;
  margin-right: 10px;
}
.ios .view-master-detail .navbar-previous:not(.navbar-master) .left,
.ios .view:not(.view-master-detail) .navbar-previous .left,
.ios .navbar-next .left,
.ios .view-master-detail .navbar-previous:not(.navbar-master) .title,
.ios .view:not(.view-master-detail) .navbar-previous .title,
.ios .navbar-next .title,
.ios .view-master-detail .navbar-previous:not(.navbar-master) .right,
.ios .view:not(.view-master-detail) .navbar-previous .right,
.ios .navbar-next .right,
.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar,
.ios .view:not(.view-master-detail) .navbar-previous .subnavbar,
.ios .navbar-next .subnavbar,
.ios .view-master-detail .navbar-previous:not(.navbar-master) .fading,
.ios .view:not(.view-master-detail) .navbar-previous .fading,
.ios .navbar-next .fading {
  opacity: 0;
}
.ios .view-master-detail .navbar-previous:not(.navbar-master),
.ios .view:not(.view-master-detail) .navbar-previous {
  pointer-events: none;
}
.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large,
.ios .view:not(.view-master-detail) .navbar-previous .title-large {
  opacity: 0;
  transition-duration: 0ms;
}
.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text,
.ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text {
  transform: scale(0.5);
  transition-duration: 0ms;
}
.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding,
.ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding,
.ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar,
.ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar {
  opacity: 1;
  transform: translate3d(-100%, 0, 0);
}
.ios .view:not(.view-master-detail) .navbar-previous .navbar-bg,
.ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg {
  transform: translateX(-100%);
}
.ios .navbar-next {
  pointer-events: none;
}
.ios .navbar-next .navbar-bg {
  transform: translateX(100%);
}
.ios .navbar-next .title-large .title-large-text {
  transition-duration: 0ms;
  transform: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));
}
.ios .navbar-next .subnavbar.sliding,
.ios .navbar-next .sliding .subnavbar {
  opacity: 1;
  transform: translate3d(100%, 0, 0);
}
.ios .router-transition .navbar,
.ios .router-transition .navbar-bg {
  transition-duration: var(--f7-page-transition-duration);
}
.ios .router-transition .navbar-bg {
  animation-duration: var(--f7-page-transition-duration);
  animation-fill-mode: forwards;
}
.ios .router-transition .title-large,
.ios .router-transition .title-large-text {
  transition-duration: 0ms;
}
.ios .router-transition .navbar-current .left,
.ios .router-transition .navbar-current .title,
.ios .router-transition .navbar-current .right,
.ios .router-transition .navbar-current .subnavbar {
  animation: ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards;
}
.ios .router-transition .navbar-current .sliding.left,
.ios .router-transition .navbar-current .sliding.left .icon + span,
.ios .router-transition .navbar-current .sliding.title,
.ios .router-transition .navbar-current .sliding.right,
.ios .router-transition .navbar-current .sliding .left,
.ios .router-transition .navbar-current .sliding .left .icon + span,
.ios .router-transition .navbar-current .sliding .title,
.ios .router-transition .navbar-current .sliding .right {
  transition-duration: var(--f7-page-transition-duration);
  opacity: 0 !important;
  animation: none;
}
.ios .router-transition .navbar-current .sliding .subnavbar,
.ios .router-transition .navbar-current .sliding.subnavbar {
  transition-duration: var(--f7-page-transition-duration);
  animation: none;
  opacity: 1;
}
.ios .router-transition-forward .navbar-next .left,
.ios .router-transition-backward .navbar-previous .left,
.ios .router-transition-forward .navbar-next .title,
.ios .router-transition-backward .navbar-previous .title,
.ios .router-transition-forward .navbar-next .right,
.ios .router-transition-backward .navbar-previous .right,
.ios .router-transition-forward .navbar-next .subnavbar,
.ios .router-transition-backward .navbar-previous .subnavbar {
  animation: ios-navbar-element-fade-in var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-forward .navbar-next .sliding.left,
.ios .router-transition-backward .navbar-previous .sliding.left,
.ios .router-transition-forward .navbar-next .sliding.left .icon + span,
.ios .router-transition-backward .navbar-previous .sliding.left .icon + span,
.ios .router-transition-forward .navbar-next .sliding.title,
.ios .router-transition-backward .navbar-previous .sliding.title,
.ios .router-transition-forward .navbar-next .sliding.right,
.ios .router-transition-backward .navbar-previous .sliding.right,
.ios .router-transition-forward .navbar-next .sliding .left,
.ios .router-transition-backward .navbar-previous .sliding .left,
.ios .router-transition-forward .navbar-next .sliding .left .icon + span,
.ios .router-transition-backward .navbar-previous .sliding .left .icon + span,
.ios .router-transition-forward .navbar-next .sliding .title,
.ios .router-transition-backward .navbar-previous .sliding .title,
.ios .router-transition-forward .navbar-next .sliding .right,
.ios .router-transition-backward .navbar-previous .sliding .right,
.ios .router-transition-forward .navbar-next .sliding .subnavbar,
.ios .router-transition-backward .navbar-previous .sliding .subnavbar {
  transition-duration: var(--f7-page-transition-duration);
  animation: none;
  transform: translate3d(0, 0, 0) !important;
  opacity: 1 !important;
}
.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title,
.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title {
  animation: none;
}
.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title,
.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title,
.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title,
.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title {
  opacity: 0 !important;
}
.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .left,
.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .left,
.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .title,
.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .title,
.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .right,
.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .right,
.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .subnavbar,
.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .subnavbar {
  animation: none;
}
.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,
.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large {
  overflow: visible;
}
.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,
.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text {
  animation: ios-navbar-large-title-text-slide-up var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-out var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large .left .back span {
  animation: ios-navbar-back-text-next-to-current var(--f7-page-transition-duration) forwards;
  transition: none;
  transform-origin: left center;
}
.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large {
  overflow: visible;
}
.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text {
  animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-forward .navbar-next.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text {
  animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-forward .navbar-next.navbar-large:not(.navbar-large-collapsed) .title,
.ios .router-transition-forward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title {
  animation: none;
  opacity: 0 !important;
  transition-duration: 0;
}
.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large .left .back span {
  animation: ios-navbar-back-text-current-to-previous var(--f7-page-transition-duration) forwards;
  transition: none;
  transform-origin: left center;
}
.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large {
  overflow: visible;
}
.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text {
  animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text {
  animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large {
  opacity: 0;
}
.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,
.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large {
  overflow: visible;
  opacity: 1;
}
.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,
.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text {
  animation: ios-navbar-large-title-text-slide-down var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-in var(--f7-page-transition-duration) forwards;
}
.ios .router-transition-backward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title,
.ios .router-transition-backward .navbar-previous.navbar-large:not(.navbar-large-collapsed) .title {
  animation: none;
  opacity: 0 !important;
  transition-duration: 0;
}
.ios .router-transition-forward .navbar-current .navbar-bg {
  animation-name: ios-navbar-bg-from-cb-to-lb;
}
.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg {
  animation-name: ios-navbar-bg-from-cb-to-lb;
}
.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg {
  animation-name: ios-navbar-bg-from-cb-to-lt;
}
.ios .router-transition-forward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg {
  animation-name: ios-navbar-bg-from-ct-to-lb;
}
.ios .router-transition-forward .navbar-current.navbar-large-collapsed:not(.router-navbar-transition-to-large) .navbar-bg {
  animation-name: ios-navbar-bg-from-ct-to-lt;
}
.ios .router-transition-forward .navbar-next .navbar-bg {
  animation-name: ios-navbar-bg-from-rb-to-cb;
}
.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg {
  animation-name: ios-navbar-bg-from-rb-to-cb;
}
.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg {
  animation-name: ios-navbar-bg-from-rb-to-ct;
}
.ios .router-transition-forward .navbar-next:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg {
  animation-name: ios-navbar-bg-from-rt-to-cb;
}
.ios .router-transition-backward .navbar-current .navbar-bg {
  animation-name: ios-navbar-bg-from-cb-to-rb;
}
.ios .router-transition-backward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg {
  animation-name: ios-navbar-bg-from-ct-to-rb;
}
.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg {
  animation-name: ios-navbar-bg-from-cb-to-rt;
}
.ios .router-transition-backward .navbar-current.navbar-large-collapsed .navbar-bg {
  animation-name: ios-navbar-bg-from-ct-to-rt;
}
.ios .router-transition-backward .navbar-current.navbar-large-collapsed.router-navbar-transition-to-large .navbar-bg {
  animation-name: ios-navbar-bg-from-ct-to-rb;
}
.ios .router-transition-backward .navbar-previous .navbar-bg {
  animation-name: ios-navbar-bg-from-lb-to-cb;
}
.ios .router-transition-backward .navbar-previous:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg {
  animation-name: ios-navbar-bg-from-lt-to-cb;
}
.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg {
  animation-name: ios-navbar-bg-from-lb-to-ct;
}
.ios .router-transition-backward .navbar-previous.navbar-large-collapsed .navbar-bg {
  animation-name: ios-navbar-bg-from-lt-to-ct;
}
.view-master-detail .navbars {
  z-index: auto;
}
.view-master-detail .page-master {
  z-index: 525;
}
.view-master-detail .navbar-master .navbar-inner,
.view-master-detail .navbar-master .navbar-bg {
  z-index: 550;
}
.view-master-detail .navbar-master-detail .navbar-inner,
.view-master-detail .navbar-master-detail .navbar-bg {
  z-index: 500;
}
.view-master-detail .navbar-master.navbar-previous {
  pointer-events: auto;
}
.view-master-detail .navbar-master.navbar-previous .left,
.view-master-detail .navbar-master.navbar-previous:not(.navbar-large) .title,
.view-master-detail .navbar-master.navbar-previous .right,
.view-master-detail .navbar-master.navbar-previous .subnavbar {
  opacity: 1;
}
.view-master-detail.router-transition .navbar-master .left,
.view-master-detail.router-transition .navbar-master .left .icon + span,
.view-master-detail.router-transition .navbar-master:not(.navbar-large) .title,
.view-master-detail.router-transition .navbar-master .right,
.view-master-detail.router-transition .navbar-master .subnavbar,
.view-master-detail.router-transition .navbar-master .fading {
  opacity: 1 !important;
  transition-duration: 0ms;
  transform: none !important;
  animation: none !important;
}
.view-master-detail.router-transition .navbar-master .navbar-bg {
  transition-duration: 0ms;
  animation: none !important;
}
.view-master-detail.router-transition .navbar-master.navbar-large .title {
  opacity: calc(-1 + 2 * var(--f7-navbar-large-collapse-progress)) !important;
  transition-duration: 0ms;
  transform: none !important;
  animation: none !important;
}
.view-master-detail.router-transition .navbar-master.navbar-large .title-large,
.view-master-detail.router-transition .navbar-master.navbar-large .title-large-text {
  transition-duration: 0ms;
  animation: none !important;
}
.view-master-detail.router-transition .navbar-master.navbar-large-transparent .navbar-bg,
.view-master-detail.router-transition .navbar-master.navbar-large.navbar-transparent .navbar-bg {
  height: 100% !important;
  opacity: var(--f7-navbar-large-collapse-progress) !important;
}
@keyframes ios-navbar-element-fade-in {
  0% {
    opacity: 0;
  }
  25% {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes ios-navbar-element-fade-out {
  from {
    opacity: 1;
  }
  75% {
    opacity: 0;
  }
  to {
    opacity: 0;
  }
}
@keyframes ios-navbar-large-title-text-slide-up {
  0% {
    transform: translateX(0px) translateY(0%) scale(1);
  }
  100% {
    transform: translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical))) scale(0.5);
  }
}
@keyframes ios-navbar-large-title-text-slide-down {
  0% {
    transform: translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(0.5);
  }
  100% {
    transform: translateX(0px) translateY(0%) scale(1);
  }
}
@keyframes ios-navbar-large-title-text-slide-left {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(0%);
  }
}
@keyframes ios-navbar-large-title-text-slide-right {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(100%);
  }
}
@keyframes ios-navbar-large-title-text-fade-out {
  0% {
    opacity: 1;
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes ios-navbar-large-title-text-fade-in {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes ios-navbar-back-text-current-to-previous {
  0% {
    opacity: 1;
    transform: translateY(0px) translateX(0px) scale(1);
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 0;
    transform: translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2);
  }
}
@keyframes ios-navbar-back-text-next-to-current {
  0% {
    opacity: 0;
    transform: translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2);
  }
  20% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: translateX(0px) translateY(0px) scale(1);
  }
}
@keyframes ios-navbar-bg-from-cb-to-lb {
  from {
    transform: var(--f7-navbar-large-bg-center-bottom);
  }
  to {
    transform: var(--f7-navbar-large-bg-left-bottom);
  }
}
@keyframes ios-navbar-bg-from-cb-to-lt {
  from {
    transform: var(--f7-navbar-large-bg-center-bottom);
  }
  to {
    transform: var(--f7-navbar-large-bg-left-top);
  }
}
@keyframes ios-navbar-bg-from-ct-to-lb {
  from {
    transform: var(--f7-navbar-large-bg-center-top);
  }
  to {
    transform: var(--f7-navbar-large-bg-left-bottom);
  }
}
@keyframes ios-navbar-bg-from-ct-to-lt {
  from {
    transform: var(--f7-navbar-large-bg-center-top);
  }
  to {
    transform: var(--f7-navbar-large-bg-left-top);
  }
}
@keyframes ios-navbar-bg-from-rb-to-cb {
  from {
    transform: var(--f7-navbar-large-bg-right-bottom);
  }
  to {
    transform: var(--f7-navbar-large-bg-center-bottom);
  }
}
@keyframes ios-navbar-bg-from-rb-to-ct {
  from {
    transform: var(--f7-navbar-large-bg-right-bottom);
  }
  to {
    transform: var(--f7-navbar-large-bg-center-top);
  }
}
@keyframes ios-navbar-bg-from-rt-to-cb {
  from {
    transform: var(--f7-navbar-large-bg-right-top);
  }
  to {
    transform: var(--f7-navbar-large-bg-center-bottom);
  }
}
@keyframes ios-navbar-bg-from-cb-to-rb {
  from {
    transform: var(--f7-navbar-large-bg-center-bottom);
  }
  to {
    transform: var(--f7-navbar-large-bg-right-bottom);
  }
}
@keyframes ios-navbar-bg-from-ct-to-rb {
  from {
    transform: var(--f7-navbar-large-bg-center-top);
  }
  to {
    transform: var(--f7-navbar-large-bg-right-bottom);
  }
}
@keyframes ios-navbar-bg-from-cb-to-rt {
  from {
    transform: var(--f7-navbar-large-bg-center-bottom);
  }
  to {
    transform: var(--f7-navbar-large-bg-right-top);
  }
}
@keyframes ios-navbar-bg-from-ct-to-rt {
  from {
    transform: var(--f7-navbar-large-bg-center-top);
  }
  to {
    transform: var(--f7-navbar-large-bg-right-top);
  }
}
@keyframes ios-navbar-bg-from-lb-to-cb {
  from {
    transform: var(--f7-navbar-large-bg-left-bottom);
  }
  to {
    transform: var(--f7-navbar-large-bg-center-bottom);
  }
}
@keyframes ios-navbar-bg-from-lt-to-cb {
  from {
    transform: var(--f7-navbar-large-bg-left-top);
  }
  to {
    transform: var(--f7-navbar-large-bg-center-bottom);
  }
}
@keyframes ios-navbar-bg-from-lb-to-ct {
  from {
    transform: var(--f7-navbar-large-bg-left-bottom);
  }
  to {
    transform: var(--f7-navbar-large-bg-center-top);
  }
}
@keyframes ios-navbar-bg-from-lt-to-ct {
  from {
    transform: var(--f7-navbar-large-bg-left-top);
  }
  to {
    transform: var(--f7-navbar-large-bg-center-top);
  }
}
.md .navbar .title-large {
  align-items: center;
}
.md .navbar .left {
  margin-left: 4px;
  margin-right: 4px;
}
.md .navbar a.link {
  padding: 0 12px;
  min-width: 48px;
}
.md .navbar a.icon-only {
  min-width: 0;
  flex-shrink: 0;
  width: 48px;
}
.md .navbar .right {
  margin-left: auto;
  margin-right: 4px;
}
.md .navbar .right:first-child {
  right: var(--f7-safe-area-right);
}
.md .navbar-inner {
  justify-content: flex-start;
  overflow: hidden;
}
.md .navbar-large:not(.navbar-large-collapsed) .navbar-inner {
  overflow: visible;
}
.md .page.page-with-subnavbar .navbar-inner {
  overflow: visible;
}
.md .navbar-inner:not(.navbar-inner-centered-title) .title:first-child {
  margin-left: 16px;
}
.md .navbar-inner-centered-title {
  justify-content: space-between;
}
.md .navbar-inner-centered-title .right {
  margin-left: 0;
}
.md .navbar-inner-centered-title .title {
  text-align: center;
}
/* === Toolbar === */
:root {
  /*
  --f7-toolbar-bg-color: var(--f7-bars-bg-color);
  --f7-toolbar-bg-color-rgb: var(--f7-bars-bg-color-rgb);
  --f7-toolbar-border-color: var(--f7-bars-border-color);
  --f7-toolbar-link-color: var(--f7-bars-link-color);
  --f7-toolbar-text-color: var(--f7-bars-text-color);
  */
  --f7-tabbar-link-active-bg-color: transparent;
  --f7-tabbar-label-text-transform: none;
  --f7-toolbar-hide-show-transition-duration: 400ms;
}
.ios {
  --f7-toolbar-height: 44px;
  --f7-toolbar-font-size: 17px;
  --f7-toolbar-inner-padding-left: 8px;
  --f7-toolbar-inner-padding-right: 8px;
  --f7-toolbar-link-font-weight: 400;
  /*
  --f7-toolbar-link-height: var(--f7-toolbar-height);
  --f7-toolbar-link-line-height: var(--f7-toolbar-height);
  --f7-tabbar-link-active-color: var(--f7-theme-color);
  */
  --f7-tabbar-icons-height: 50px;
  --f7-tabbar-icons-tablet-height: 50px;
  --f7-tabbar-icon-size: 28px;
  --f7-tabbar-link-text-transform: none;
  --f7-tabbar-link-font-weight: 400;
  --f7-tabbar-link-letter-spacing: 0;
  --f7-tabbar-label-font-size: 12px;
  --f7-tabbar-label-tablet-font-size: 14px;
  --f7-tabbar-label-font-weight: 500;
  --f7-tabbar-label-letter-spacing: 0.01;
  --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.4);
}
.ios .dark,
.ios.dark {
  --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.54);
}
.md {
  --f7-toolbar-height: 56px;
  --f7-toolbar-font-size: 14px;
  --f7-toolbar-inner-padding-left: 0px;
  --f7-toolbar-inner-padding-right: 0px;
  /*
  --f7-toolbar-link-height: var(--f7-toolbar-height);
  --f7-toolbar-link-line-height: var(--f7-toolbar-height);
  */
  --f7-tabbar-icons-height: 80px;
  --f7-tabbar-icons-tablet-height: 80px;
  --f7-tabbar-icon-size: 24px;
  --f7-tabbar-link-text-transform: none;
  --f7-tabbar-link-font-weight: 500;
  --f7-tabbar-link-letter-spacing: 0;
  --f7-toolbar-link-font-weight: 500;
  --f7-tabbar-label-font-size: 12px;
  --f7-tabbar-label-tablet-font-size: 12px;
  --f7-tabbar-label-font-weight: 500;
  --f7-tabbar-label-letter-spacing: 0;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-tabbar-link-active-color: var(--f7-md-on-secondary-container);
  --f7-tabbar-link-active-border-color: var(--f7-md-primary);
  --f7-tabbar-link-inactive-color: var(--f7-md-on-surface-variant);
  --f7-tabbar-link-active-icon-bg-color: var(--f7-md-secondary-container);
}
.toolbar {
  width: 100%;
  position: relative;
  margin: 0;
  transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 600;
  box-sizing: border-box;
  left: 0;
  height: var(--f7-toolbar-height);
  background-color: var(--f7-toolbar-bg-color, var(--f7-bars-bg-color));
  color: var(--f7-toolbar-text-color, var(--f7-bars-text-color));
  font-size: var(--f7-toolbar-font-size);
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-bars .toolbar {
    background-color: rgba(var(--f7-toolbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity));
    -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
            backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
  }
}
.toolbar b {
  font-weight: 600;
}
.toolbar a {
  color: var(--f7-toolbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
  box-sizing: border-box;
  flex-shrink: 1;
  position: relative;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.toolbar .link {
  display: flex;
  line-height: var(--f7-toolbar-link-line-height, var(--f7-toolbar-height));
  height: var(--f7-toolbar-link-height, var(--f7-toolbar-height));
  font-weight: var(--f7-toolbar-link-font-weight);
}
.toolbar i.icon {
  display: block;
}
.toolbar:after,
.toolbar:before {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.views > .toolbar,
.view > .toolbar,
.page > .toolbar {
  position: absolute;
}
.toolbar-top,
.ios .toolbar-top-ios,
.md .toolbar-top-md {
  top: 0;
}
.toolbar-top .tab-link-highlight,
.ios .toolbar-top-ios .tab-link-highlight,
.md .toolbar-top-md .tab-link-highlight {
  bottom: 0;
}
.toolbar-top.no-outline:after,
.ios .toolbar-top-ios.no-outline:after,
.md .toolbar-top-md.no-outline:after {
  display: none !important;
}
.toolbar-top.toolbar-hidden:before,
.ios .toolbar-top-ios.toolbar-hidden:before,
.md .toolbar-top-md.toolbar-hidden:before {
  display: none !important;
}
.toolbar-top:after,
.ios .toolbar-top-ios:after,
.md .toolbar-top-md:after,
.toolbar-top:before,
.ios .toolbar-top-ios:before,
.md .toolbar-top-md:before {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.toolbar-top:after,
.ios .toolbar-top-ios:after,
.md .toolbar-top-md:after {
  content: '';
  position: absolute;
  background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color));
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.toolbar-bottom,
.ios .toolbar-bottom-ios,
.md .toolbar-bottom-md {
  bottom: 0;
  height: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom));
}
.toolbar-bottom .tab-link-highlight,
.ios .toolbar-bottom-ios .tab-link-highlight,
.md .toolbar-bottom-md .tab-link-highlight {
  top: 0;
}
.toolbar-bottom .toolbar-inner,
.ios .toolbar-bottom-ios .toolbar-inner,
.md .toolbar-bottom-md .toolbar-inner {
  height: auto;
  top: 0;
  bottom: var(--f7-safe-area-bottom);
}
.toolbar-bottom.no-outline:before,
.ios .toolbar-bottom-ios.no-outline:before,
.md .toolbar-bottom-md.no-outline:before {
  display: none !important;
}
.toolbar-bottom.toolbar-hidden:after,
.ios .toolbar-bottom-ios.toolbar-hidden:after,
.md .toolbar-bottom-md.toolbar-hidden:after {
  display: none !important;
}
.toolbar-bottom:before,
.ios .toolbar-bottom-ios:before,
.md .toolbar-bottom-md:before {
  content: '';
  position: absolute;
  background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color));
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.toolbar-inner {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  box-sizing: border-box;
  align-items: center;
  align-content: center;
  overflow: hidden;
  padding: 0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left));
}
.views > .tabbar,
.views > .tabbar-icons {
  z-index: 5001;
}
.tabbar a,
.tabbar-icons a {
  color: var(--f7-tabbar-link-inactive-color);
}
.tabbar .link,
.tabbar-icons .link {
  line-height: 1.4;
}
.tabbar .tab-link,
.tabbar-icons .tab-link,
.tabbar .link,
.tabbar-icons .link {
  height: 100%;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  text-transform: var(--f7-tabbar-link-text-transform);
  font-weight: var(--f7-tabbar-link-font-weight);
  letter-spacing: var(--f7-tabbar-link-letter-spacing);
  overflow: hidden;
}
.tabbar .tab-link-active,
.tabbar-icons .tab-link-active {
  color: var(--f7-tabbar-link-active-color, var(--f7-theme-color));
  background-color: var(--f7-tabbar-link-active-bg-color, transparent);
}
.tabbar i.icon,
.tabbar-icons i.icon {
  font-size: var(--f7-tabbar-icon-size);
  height: var(--f7-tabbar-icon-size);
  line-height: var(--f7-tabbar-icon-size);
}
.md .tabbar.tabbar-icons .tab-link-highlight,
.md .tabbar-icons.tabbar-icons .tab-link-highlight {
  display: none;
}
.md .tabbar:not(.tabbar-icons) .tab-link-highlight,
.md .tabbar-icons:not(.tabbar-icons) .tab-link-highlight {
  position: absolute;
  height: 2px;
  background: var(--f7-tabbar-link-active-border-color, var(--f7-theme-color));
  transition-duration: 300ms;
  left: 0;
}
.tabbar-icons {
  --f7-toolbar-height: var(--f7-tabbar-icons-height);
}
.tabbar-icons .tab-link,
.tabbar-icons .link {
  height: 100%;
  justify-content: center;
  align-items: center;
}
.tabbar-icons .tabbar-label {
  display: block;
  line-height: 1;
  margin: 0;
  position: relative;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--f7-tabbar-label-font-size);
  text-transform: var(--f7-tabbar-label-text-transform);
  font-weight: var(--f7-tabbar-label-font-weight);
  letter-spacing: var(--f7-tabbar-label-letter-spacing);
}
@media (min-width: 768px) and (min-height: 600px) {
  :root {
    --f7-tabbar-icons-height: var(--f7-tabbar-icons-tablet-height);
    --f7-tabbar-label-font-size: var(--f7-tabbar-label-tablet-font-size);
  }
}
.tabbar-scrollable .toolbar-inner {
  justify-content: flex-start;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scrollbar-color: transparent;
}
.tabbar-scrollable .toolbar-inner::-webkit-scrollbar {
  -webkit-appearance: none;
          appearance: none;
  width: 0px;
  display: none;
  opacity: 0;
  background: transparent;
}
.tabbar-scrollable .toolbar-inner::-webkit-scrollbar-track {
  box-shadow: none;
  background: transparent;
}
.tabbar-scrollable .toolbar-inner::-webkit-scrollbar-thumb {
  background-color: transparent;
  outline: none;
  border-radius: 9999px;
  position: relative;
}
.tabbar-scrollable .tab-link,
.tabbar-scrollable .link {
  width: auto;
  flex-shrink: 0;
}
.toolbar-transitioning,
.navbar-transitioning + .toolbar,
.navbar-transitioning ~ * .toolbar {
  transition-duration: var(--f7-toolbar-hide-show-transition-duration);
}
.toolbar-bottom ~ *,
.ios .toolbar-bottom-ios ~ *,
.md .toolbar-bottom-md ~ * {
  --f7-page-toolbar-bottom-offset: var(--f7-toolbar-height);
}
.toolbar-bottom.tabbar-icons ~ *,
.ios .toolbar-bottom-ios.tabbar-icons ~ *,
.md .toolbar-bottom-md.tabbar-icons ~ * {
  --f7-page-toolbar-bottom-offset: var(--f7-tabbar-icons-height);
}
.toolbar-bottom.toolbar-hidden,
.ios .toolbar-bottom-ios.toolbar-hidden,
.md .toolbar-bottom-md.toolbar-hidden {
  transform: translate3d(0, 100%, 0);
}
.toolbar-top ~ *,
.ios .toolbar-top-ios ~ *,
.md .toolbar-top-md ~ * {
  --f7-page-toolbar-top-offset: var(--f7-toolbar-height);
}
.toolbar-top.tabbar-icons ~ *,
.ios .toolbar-top-ios.tabbar-icons ~ *,
.md .toolbar-top-md.tabbar-icons ~ * {
  --f7-page-toolbar-top-offset: var(--f7-tabbar-icons-height);
}
.toolbar-top.toolbar-hidden,
.ios .toolbar-top-ios.toolbar-hidden,
.md .toolbar-top-md.toolbar-hidden {
  transform: translate3d(0, -100%, 0);
}
.navbar ~ .toolbar-top,
.navbars ~ .toolbar-top,
.ios .navbar ~ .toolbar-top-ios,
.ios .navbars ~ .toolbar-top-ios,
.md .navbar ~ .toolbar-top-md,
.navbar ~ * .toolbar-top,
.navbars ~ * .toolbar-top,
.ios .navbar ~ * .toolbar-top-ios,
.ios .navbars ~ * .toolbar-top-ios,
.md .navbar ~ * .toolbar-top-md,
.navbar ~ .page:not(.no-navbar) .toolbar-top,
.navbars ~ .page:not(.no-navbar) .toolbar-top,
.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios,
.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios,
.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md {
  top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.navbar ~ .toolbar-top.toolbar-hidden,
.navbars ~ .toolbar-top.toolbar-hidden,
.ios .navbar ~ .toolbar-top-ios.toolbar-hidden,
.ios .navbars ~ .toolbar-top-ios.toolbar-hidden,
.md .navbar ~ .toolbar-top-md.toolbar-hidden,
.navbar ~ * .toolbar-top.toolbar-hidden,
.navbars ~ * .toolbar-top.toolbar-hidden,
.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden,
.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden,
.md .navbar ~ * .toolbar-top-md.toolbar-hidden,
.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden,
.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden,
.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,
.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,
.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden {
  transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))), 0);
}
.navbar ~ .toolbar-top.toolbar-hidden.tabbar-icons,
.navbars ~ .toolbar-top.toolbar-hidden.tabbar-icons,
.ios .navbar ~ .toolbar-top-ios.toolbar-hidden.tabbar-icons,
.ios .navbars ~ .toolbar-top-ios.toolbar-hidden.tabbar-icons,
.md .navbar ~ .toolbar-top-md.toolbar-hidden.tabbar-icons,
.navbar ~ * .toolbar-top.toolbar-hidden.tabbar-icons,
.navbars ~ * .toolbar-top.toolbar-hidden.tabbar-icons,
.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden.tabbar-icons,
.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden.tabbar-icons,
.md .navbar ~ * .toolbar-top-md.toolbar-hidden.tabbar-icons,
.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-icons,
.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-icons,
.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-icons,
.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-icons,
.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden.tabbar-icons {
  transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-tabbar-icons-height) + var(--f7-safe-area-top))), 0);
}
.navbar-hidden + .toolbar-top:not(.toolbar-hidden),
.ios .navbar-hidden + .toolbar-top-ios:not(.toolbar-hidden),
.md .navbar-hidden + .toolbar-top-md:not(.toolbar-hidden),
.navbar-hidden ~ * .toolbar-top:not(.toolbar-hidden),
.ios .navbar-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden),
.md .navbar-hidden ~ * .toolbar-top-md:not(.toolbar-hidden) {
  transform: translate3d(0, calc(0px - var(--f7-navbar-height)), 0);
}
.navbar-large-hidden + .toolbar-top:not(.toolbar-hidden),
.ios .navbar-large-hidden + .toolbar-top-ios:not(.toolbar-hidden),
.md .navbar-large-hidden + .toolbar-top-md:not(.toolbar-hidden),
.navbar-large-hidden ~ * .toolbar-top:not(.toolbar-hidden),
.ios .navbar-large-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden),
.md .navbar-large-hidden ~ * .toolbar-top-md:not(.toolbar-hidden) {
  transform: translate3d(0, calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)), 0);
}
.ios .toolbar a.icon-only {
  min-height: var(--f7-toolbar-height);
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  min-width: 44px;
}
.ios .tabbar-icons .tab-link,
.ios .tabbar-icons .link {
  padding-top: 4px;
  padding-bottom: 4px;
}
.ios .tabbar-icons .tab-link i + span,
.ios .tabbar-icons .link i + span {
  margin: 0;
  margin-top: 4px;
}
@media (min-width: 768px) and (min-height: 600px) {
  .ios .tabbar .tab-link,
  .ios .tabbar-icons .tab-link,
  .ios .tabbar .link,
  .ios .tabbar-icons .link {
    justify-content: center;
    flex-direction: row;
  }
  .ios .tabbar .tab-link i + span,
  .ios .tabbar-icons .tab-link i + span,
  .ios .tabbar .link i + span,
  .ios .tabbar-icons .link i + span {
    margin-left: 5px;
  }
}
.ios .tabbar-scrollable .toolbar-inner {
  justify-content: flex-start;
}
.ios .tabbar-scrollable .tab-link,
.ios .tabbar-scrollable .link {
  padding: 0 8px;
}
.md .toolbar .link {
  justify-content: center;
  padding: 0 12px;
  min-width: 48px;
}
.md .toolbar a.icon-only {
  min-width: 0;
  flex-shrink: 0;
}
.md .tabbar .tab-link,
.md .tabbar-icons .tab-link,
.md .tabbar .link,
.md .tabbar-icons .link {
  padding-left: 0;
  padding-right: 0;
}
.md .tabbar a.icon-only,
.md .tabbar-icons a.icon-only {
  flex-shrink: initial;
}
.md .tabbar .tab-link,
.md .tabbar-icons .tab-link {
  transition-duration: 300ms;
  overflow: hidden;
  position: relative;
}
.md .tabbar i.icon,
.md .tabbar-icons i.icon {
  position: relative;
}
.md .tabbar i.icon::before,
.md .tabbar-icons i.icon::before {
  content: '';
  width: 64px;
  height: 32px;
  border-radius: 32px;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%) scaleX(0.5);
  background: var(--f7-tabbar-link-active-icon-bg-color);
  opacity: 0;
  transition-duration: 200ms;
  z-index: -1;
}
.md .tabbar i.icon + .tabbar-label,
.md .tabbar-icons i.icon + .tabbar-label {
  margin-top: 8px;
}
.md .tabbar .tab-link-active i.icon::before,
.md .tabbar-icons .tab-link-active i.icon::before {
  opacity: 1;
  transform: translateX(-50%) translateY(-50%) scaleX(1);
}
.md .tabbar-icons .tab-link,
.md .tabbar-icons .link {
  padding-top: 8px;
  padding-bottom: 8px;
}
.md .tabbar-label {
  max-width: 100%;
  overflow: hidden;
  line-height: 1.2;
}
.md .tabbar-scrollable .toolbar-inner {
  overflow: auto;
}
.md .tabbar-scrollable .tab-link,
.md .tabbar-scrollable .link {
  padding: 0 12px;
}
/* === Subnavbar === */
:root {
  /*
  --f7-subnavbar-bg-color: var(--f7-bars-bg-color);
  --f7-subnavbar-bg-color-rgb: var(--f7-bars-bg-color-rgb);
  --f7-subnavbar-border-color: var(--f7-bars-border-color);
  --f7-subnavbar-link-color: var(--f7-bars-link-color);
  --f7-subnavbar-text-color: var(--f7-bars-text-color);
  */
  --f7-subnavbar-title-line-height: 1.2;
}
.ios {
  --f7-subnavbar-height: 44px;
  --f7-subnavbar-inner-padding-left: 8px;
  --f7-subnavbar-inner-padding-right: 8px;
  --f7-subnavbar-title-font-size: 34px;
  --f7-subnavbar-title-font-weight: 700;
  --f7-subnavbar-title-letter-spacing: -0.03em;
  --f7-subnavbar-title-margin-left: 8px;
  /*
  --f7-subnavbar-link-height: var(--f7-subnavbar-height);
  --f7-subnavbar-link-line-height: var(--f7-subnavbar-height);
  */
}
.md {
  --f7-subnavbar-height: 64px;
  --f7-subnavbar-inner-padding-left: 16px;
  --f7-subnavbar-inner-padding-right: 16px;
  --f7-subnavbar-title-font-size: 22px;
  --f7-subnavbar-title-font-weight: 400;
  --f7-subnavbar-title-letter-spacing: 0;
  --f7-subnavbar-title-margin-left: 0px;
  /*
  --f7-subnavbar-link-height: var(--f7-subnavbar-height);
  --f7-subnavbar-link-line-height: var(--f7-subnavbar-height);
  */
}
.subnavbar {
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 600;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--f7-subnavbar-bg-color, var(--f7-bars-bg-color));
  color: var(--f7-subnavbar-text-color, var(--f7-bars-text-color));
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-bars .subnavbar {
    background-color: rgba(var(--f7-subnavbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity));
    -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
            backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
  }
}
.subnavbar .subnavbar-title {
  position: relative;
  overflow: hidden;
  text-overflow: ellpsis;
  white-space: nowrap;
  font-size: var(--f7-subnavbar-title-font-size);
  font-weight: var(--f7-subnavbar-title-font-weight);
  text-align: left;
  display: inline-block;
  line-height: var(--f7-subnavbar-title-line-height);
  letter-spacing: var(--f7-subnavbar-title-letter-spacing);
  margin-left: var(--f7-subnavbar-title-margin-left);
}
.subnavbar .left,
.subnavbar .right {
  flex-shrink: 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.subnavbar .right:first-child {
  position: absolute;
  height: 100%;
}
.subnavbar a {
  color: var(--f7-subnavbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
}
.subnavbar a.link {
  line-height: var(--f7-subnavbar-link-line-height, var(--f7-subnavbar-height));
  height: var(--f7-subnavbar-link-height, var(--f7-subnavbar-height));
}
.subnavbar a.icon-only {
  min-width: var(--f7-subnavbar-height);
}
.subnavbar.no-outline:after {
  display: none !important;
}
.subnavbar.navbar-hidden:before {
  display: none !important;
}
.subnavbar:after,
.subnavbar:before {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.subnavbar:after {
  content: '';
  position: absolute;
  background-color: var(--f7-subnavbar-border-color, var(--f7-bars-border-color));
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.subnavbar-inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  justify-content: space-between;
  overflow: hidden;
  padding: 0 calc(var(--f7-subnavbar-inner-padding-left) + var(--f7-safe-area-right)) 0 calc(var(--f7-subnavbar-inner-padding-right) + var(--f7-safe-area-left));
}
.navbar .subnavbar {
  top: 100%;
}
.views > .subnavbar,
.view > .subnavbar,
.page > .subnavbar {
  position: absolute;
}
.navbar ~ * .subnavbar,
.navbars ~ * .subnavbar,
.page-with-subnavbar .navbar ~ .subnavbar,
.page-with-subnavbar .navbar ~ * .subnavbar,
.navbar ~ .page-with-subnavbar:not(.no-navbar) .subnavbar,
.navbar ~ .subnavbar,
.navbars ~ .page-with-subnavbar:not(.no-navbar) .subnavbar,
.navbars ~ .subnavbar {
  top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.navbar ~ .page-with-navbar-large:not(.no-navbar) .subnavbar,
.navbars ~ .page-with-navbar-large:not(.no-navbar) .subnavbar,
.page-with-subnavbar.page-with-navbar-large .navbar ~ .subnavbar,
.page-with-subnavbar.page-with-navbar-large .navbar ~ * .subnavbar,
.navbar .title-large ~ .subnavbar {
  top: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top));
  transform: translate3d(0, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0);
}
.page-with-subnavbar,
.subnavbar ~ * {
  --f7-page-subnavbar-offset: var(--f7-subnavbar-height);
}
.ios .subnavbar {
  height: calc(var(--f7-subnavbar-height) + 1px);
  margin-top: -1px;
  padding-top: 1px;
}
.ios .subnavbar .title {
  align-self: flex-start;
  flex-shrink: 10;
}
.ios .subnavbar .left a + a,
.ios .subnavbar .right a + a {
  margin-left: 16px;
}
.ios .subnavbar .left {
  margin-right: 10px;
}
.ios .subnavbar .right {
  margin-left: 10px;
}
.ios .subnavbar .right:first-child {
  right: 8px;
}
.ios .subnavbar a.link {
  justify-content: flex-start;
}
.ios .subnavbar a.icon-only {
  justify-content: center;
  margin: 0;
}
.md .subnavbar {
  height: var(--f7-subnavbar-height);
}
.md .subnavbar .right {
  margin-left: auto;
}
.md .subnavbar .right:first-child {
  right: 16px;
}
.md .subnavbar a.link {
  justify-content: center;
  padding: 0 12px;
}
.md .subnavbar a.icon-only {
  flex-shrink: 0;
  padding: 0 12px;
}
.md .subnavbar-inner > a.link:first-child {
  margin-left: calc(-1 * var(--f7-subnavbar-inner-padding-left));
}
.md .subnavbar-inner > a.link:last-child {
  margin-right: calc(-1 * var(--f7-subnavbar-inner-padding-right));
}
/* === Content Block === */
:root {
  --f7-block-padding-horizontal: 16px;
  --f7-block-padding-vertical: 16px;
  --f7-block-font-size: inherit;
  --f7-block-header-margin: 10px;
  --f7-block-footer-margin: 10px;
  --f7-block-header-font-size: 14px;
  --f7-block-footer-font-size: 14px;
  --f7-block-title-text-transform: none;
  --f7-block-title-white-space: nowrap;
  --f7-block-title-medium-text-transform: none;
  --f7-block-title-large-text-transform: none;
  --f7-block-inset-side-margin: 16px;
}
:root .dark,
:root.dark {
  --f7-block-outline-border-color: rgba(255, 255, 255, 0.15);
}
.ios {
  --f7-block-text-color: inherit;
  --f7-block-margin-vertical: 35px;
  --f7-block-outline-border-color: rgba(0, 0, 0, 0.22);
  --f7-block-title-font-size: 16px;
  --f7-block-title-font-weight: 600;
  --f7-block-title-line-height: 20px;
  --f7-block-title-margin-bottom: 10px;
  --f7-block-title-medium-font-size: 22px;
  --f7-block-title-medium-font-weight: bold;
  --f7-block-title-medium-line-height: 1.4;
  --f7-block-title-large-font-size: 30px;
  --f7-block-title-large-font-weight: bold;
  --f7-block-title-large-line-height: 1.3;
  --f7-block-inset-border-radius: 8px;
  --f7-block-title-text-color: #000;
  --f7-block-strong-text-color: #000;
  --f7-block-header-text-color: rgba(0, 0, 0, 0.45);
  --f7-block-footer-text-color: rgba(0, 0, 0, 0.45);
  --f7-block-strong-bg-color: #fff;
  --f7-block-title-medium-text-color: #000;
  --f7-block-title-large-text-color: #000;
}
.ios .dark,
.ios.dark {
  --f7-block-title-text-color: #fff;
  --f7-block-header-text-color: rgba(255, 255, 255, 0.55);
  --f7-block-footer-text-color: rgba(255, 255, 255, 0.55);
  --f7-block-strong-text-color: #fff;
  --f7-block-strong-bg-color: #1c1c1d;
  --f7-block-title-medium-text-color: #fff;
  --f7-block-title-large-text-color: #fff;
}
.md {
  --f7-block-margin-vertical: 32px;
  --f7-block-title-font-size: inherit;
  --f7-block-title-font-weight: 500;
  --f7-block-title-line-height: 16px;
  --f7-block-title-margin-bottom: 16px;
  --f7-block-title-medium-font-size: 16px;
  --f7-block-title-medium-font-weight: 500;
  --f7-block-title-medium-line-height: 1.3;
  --f7-block-title-large-font-size: 22px;
  --f7-block-title-large-font-weight: 500;
  --f7-block-title-large-line-height: 1.2;
  --f7-block-inset-border-radius: 16px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-block-text-color: var(--f7-md-on-surface);
  --f7-block-strong-text-color: var(--f7-md-on-surface);
  --f7-block-outline-border-color: var(--f7-md-outline);
  --f7-block-title-text-color: var(--f7-theme-color);
  --f7-block-title-medium-text-color: var(--f7-theme-color);
  --f7-block-title-large-text-color: var(--f7-theme-color);
  --f7-block-strong-bg-color: var(--f7-md-surface-1);
  --f7-block-header-text-color: var(--f7-md-on-surface-variant);
  --f7-block-footer-text-color: var(--f7-md-on-surface-variant);
}
.block {
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  color: var(--f7-block-text-color);
  margin: var(--f7-block-margin-vertical) 0;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));
  padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right));
  font-size: var(--f7-block-font-size);
}
.block > h1:first-child,
.block > h2:first-child,
.block > h3:first-child,
.block > h4:first-child,
.block > p:first-child {
  margin-top: 0;
}
.block > h1:last-child,
.block > h2:last-child,
.block > h3:last-child,
.block > h4:last-child,
.block > p:last-child {
  margin-bottom: 0;
}
.block-strong,
.ios .block-strong-ios,
.md .block-strong-md {
  color: var(--f7-block-strong-text-color);
  padding-top: var(--f7-block-padding-vertical);
  padding-bottom: var(--f7-block-padding-vertical);
  background-color: var(--f7-block-strong-bg-color);
}
.block-outline:not(.inset):before,
.ios .block-outline-ios:not(.inset):not(.inset-ios):before,
.md .block-outline-md:not(.inset):not(.inset-md):before {
  content: '';
  position: absolute;
  background-color: var(--f7-block-outline-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.block-outline:not(.inset):after,
.ios .block-outline-ios:not(.inset):not(.inset-ios):after,
.md .block-outline-md:not(.inset):not(.inset-md):after {
  content: '';
  position: absolute;
  background-color: var(--f7-block-outline-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.block-outline.inset,
.ios .block-outline-ios.inset,
.ios .block-outline-ios.inset-ios,
.md .block-outline-md.inset,
.md .block-outline-md.inset-md {
  border: 1px solid var(--f7-block-outline-border-color);
}
.block-title {
  position: relative;
  overflow: hidden;
  margin: 0;
  white-space: var(--f7-block-title-white-space);
  text-overflow: ellipsis;
  text-transform: var(--f7-block-title-text-transform);
  color: var(--f7-block-title-text-color);
  font-size: var(--f7-block-title-font-size, inherit);
  font-weight: var(--f7-block-title-font-weight);
  line-height: var(--f7-block-title-line-height);
  margin-top: var(--f7-block-margin-vertical);
  margin-bottom: var(--f7-block-title-margin-bottom);
  margin-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));
  margin-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right));
}
.block-title + .list,
.block-title + .block,
.block-title + .card,
.block-title + .timeline,
.block-title + .block-header {
  margin-top: 0px;
}
.block-title-medium {
  font-size: var(--f7-block-title-medium-font-size);
  text-transform: var(--f7-block-title-medium-text-transform);
  color: var(--f7-block-title-medium-text-color);
  font-weight: var(--f7-block-title-medium-font-weight);
  line-height: var(--f7-block-title-medium-line-height);
}
.block-title-large {
  font-size: var(--f7-block-title-large-font-size);
  text-transform: var(--f7-block-title-large-text-transform);
  color: var(--f7-block-title-large-text-color);
  font-weight: var(--f7-block-title-large-font-weight);
  line-height: var(--f7-block-title-large-line-height);
}
.block > .block-title:first-child,
.list > .block-title:first-child {
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
}
.block-header {
  color: var(--f7-block-header-text-color);
  font-size: var(--f7-block-header-font-size);
  margin-bottom: var(--f7-block-header-margin);
  margin-top: var(--f7-block-margin-vertical);
}
.block-header + .list,
.block-header + .block,
.block-header + .card,
.block-header + .timeline {
  margin-top: var(--f7-block-header-margin);
}
.block-footer {
  color: var(--f7-block-footer-text-color);
  font-size: var(--f7-block-footer-font-size);
  margin-top: var(--f7-block-footer-margin);
  margin-bottom: var(--f7-block-margin-vertical);
}
.block-footer,
.block-header {
  padding-top: 0;
  padding-bottom: 0;
  padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));
  padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right));
}
.block-footer ul:first-child,
.block-header ul:first-child,
.block-footer p:first-child,
.block-header p:first-child,
.block-footer h1:first-child,
.block-header h1:first-child,
.block-footer h2:first-child,
.block-header h2:first-child,
.block-footer h3:first-child,
.block-header h3:first-child,
.block-footer h4:first-child,
.block-header h4:first-child {
  margin-top: 0;
}
.block-footer ul:last-child,
.block-header ul:last-child,
.block-footer p:last-child,
.block-header p:last-child,
.block-footer h1:last-child,
.block-header h1:last-child,
.block-footer h2:last-child,
.block-header h2:last-child,
.block-footer h3:last-child,
.block-header h3:last-child,
.block-footer h4:last-child,
.block-header h4:last-child {
  margin-bottom: 0;
}
.block-footer ul:first-child:last-child,
.block-header ul:first-child:last-child,
.block-footer p:first-child:last-child,
.block-header p:first-child:last-child,
.block-footer h1:first-child:last-child,
.block-header h1:first-child:last-child,
.block-footer h2:first-child:last-child,
.block-header h2:first-child:last-child,
.block-footer h3:first-child:last-child,
.block-header h3:first-child:last-child,
.block-footer h4:first-child:last-child,
.block-header h4:first-child:last-child {
  margin-top: 0;
  margin-bottom: 0;
}
.list .block-header,
.block .block-header,
.card .block-header,
.timeline .block-header {
  margin-top: 0;
}
.list .block-footer,
.block .block-footer,
.card .block-footer,
.timeline .block-footer {
  margin-bottom: 0;
}
.list + .block-footer,
.block + .block-footer,
.card + .block-footer,
.timeline + .block-footer {
  margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)));
}
.block + .block-footer {
  margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)));
  margin-bottom: var(--f7-block-margin-vertical);
}
.block .block-header,
.block .block-footer {
  padding: 0;
}
.block.inset,
.ios .block.inset-ios,
.md .block.inset-md {
  border-radius: var(--f7-block-inset-border-radius);
  margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));
  margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));
  --f7-safe-area-left: 0px;
  --f7-safe-area-right: 0px;
}
.block-strong.inset:before,
.ios .block-strong-ios.inset:before,
.md .block-strong-md.inset:before,
.ios .block-strong.inset-ios:before,
.md .block-strong.inset-md:before,
.ios .block-strong-ios.inset-ios:before,
.md .block-strong-md.inset-md:before,
.block-strong.inset:after,
.ios .block-strong-ios.inset:after,
.md .block-strong-md.inset:after,
.ios .block-strong.inset-ios:after,
.md .block-strong.inset-md:after,
.ios .block-strong-ios.inset-ios:after,
.md .block-strong-md.inset-md:after {
  display: none !important;
}
@media (min-width: 480px) {
  .block.xsmall-inset,
  .ios .block.xsmall-inset-ios,
  .md .block.xsmall-inset-md {
    border-radius: var(--f7-block-inset-border-radius);
    margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .block.xsmall-inset:before,
  .ios .block.xsmall-inset-ios:before,
  .md .block.xsmall-inset-md:before,
  .block.xsmall-inset:after,
  .ios .block.xsmall-inset-ios:after,
  .md .block.xsmall-inset-md:after {
    display: none !important;
  }
  .block.xsmall-inset.block-outline,
  .ios .block.xsmall-inset-ios.block-outline,
  .ios .block.xsmall-inset-ios.block-outline-ios,
  .md .block.xsmall-inset-md.block-outline,
  .md .block.xsmall-inset-md.block-outline-md {
    border: 1px solid var(--f7-block-outline-border-color);
  }
}
@media (min-width: 568px) {
  .block.small-inset,
  .ios .block.small-inset-ios,
  .md .block.small-inset-md {
    border-radius: var(--f7-block-inset-border-radius);
    margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .block.small-inset:before,
  .ios .block.small-inset-ios:before,
  .md .block.small-inset-md:before,
  .block.small-inset:after,
  .ios .block.small-inset-ios:after,
  .md .block.small-inset-md:after {
    display: none !important;
  }
  .block.small-inset.block-outline,
  .ios .block.small-inset-ios.block-outline,
  .ios .block.small-inset-ios.block-outline-ios,
  .md .block.small-inset-md.block-outline,
  .md .block.small-inset-md.block-outline-md {
    border: 1px solid var(--f7-block-outline-border-color);
  }
}
@media (min-width: 768px) {
  .block.medium-inset,
  .ios .block.medium-inset-ios,
  .md .block.medium-inset-md {
    border-radius: var(--f7-block-inset-border-radius);
    margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .block.medium-inset:before,
  .ios .block.medium-inset-ios:before,
  .md .block.medium-inset-md:before,
  .block.medium-inset:after,
  .ios .block.medium-inset-ios:after,
  .md .block.medium-inset-md:after {
    display: none !important;
  }
  .block.medium-inset.block-outline,
  .ios .block.medium-inset-ios.block-outline,
  .ios .block.medium-inset-ios.block-outline-ios,
  .md .block.medium-inset-md.block-outline,
  .md .block.medium-inset-md.block-outline-md {
    border: 1px solid var(--f7-block-outline-border-color);
  }
}
@media (min-width: 1024px) {
  .block.large-inset,
  .ios .block.large-inset-ios,
  .md .block.large-inset-md {
    border-radius: var(--f7-block-inset-border-radius);
    margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .block.large-inset:before,
  .ios .block.large-inset-ios:before,
  .md .block.large-inset-md:before,
  .block.large-inset:after,
  .ios .block.large-inset-ios:after,
  .md .block.large-inset-md:after {
    display: none !important;
  }
  .block.large-inset.block-outline,
  .ios .block.large-inset-ios.block-outline,
  .ios .block.large-inset-ios.block-outline-ios,
  .md .block.large-inset-md.block-outline,
  .md .block.large-inset-md.block-outline-md {
    border: 1px solid var(--f7-block-outline-border-color);
  }
}
@media (min-width: 1200px) {
  .block.xlarge-inset,
  .ios .block.xlarge-inset-ios,
  .md .block.xlarge-inset-md {
    border-radius: var(--f7-block-inset-border-radius);
    margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .block.xlarge-inset:before,
  .ios .block.xlarge-inset-ios:before,
  .md .block.xlarge-inset-md:before,
  .block.xlarge-inset:after,
  .ios .block.xlarge-inset-ios:after,
  .md .block.xlarge-inset-md:after {
    display: none !important;
  }
  .block.xlarge-inset.block-outline,
  .ios .block.xlarge-inset-ios.block-outline,
  .ios .block.xlarge-inset-ios.block-outline-ios,
  .md .block.xlarge-inset-md.block-outline,
  .md .block.xlarge-inset-md.block-outline-md {
    border: 1px solid var(--f7-block-outline-border-color);
  }
}
/* === List View === */
:root {
  --f7-list-inset-side-margin: 16px;
  --f7-list-item-padding-horizontal: 16px;
  --f7-list-item-padding-vertical: 8px;
  --f7-list-media-item-padding-horizontal: 16px;
  --f7-list-item-text-max-lines: 2;
  --f7-list-chevron-icon-font-size: 20px;
  --f7-list-item-media-margin: 16px;
  --f7-list-item-title-font-size: inherit;
  --f7-list-item-title-font-weight: 400;
  --f7-list-item-title-line-height: inherit;
  --f7-list-item-title-white-space: nowrap;
  --f7-list-item-subtitle-font-weight: 400;
  --f7-list-item-subtitle-line-height: inherit;
  --f7-list-item-text-font-weight: 400;
  --f7-list-item-after-font-weight: 400;
  --f7-list-item-after-line-height: inherit;
  --f7-list-item-header-font-size: 12px;
  --f7-list-item-header-font-weight: 400;
  --f7-list-item-header-line-height: 1.2;
  --f7-list-item-footer-font-size: 12px;
  --f7-list-item-footer-font-weight: 400;
  --f7-list-item-footer-line-height: 1.2;
  /*
  --f7-list-button-text-color: var(--f7-theme-color);
  */
  --f7-list-button-font-size: inherit;
  --f7-list-button-font-weight: 400;
  --f7-list-button-text-align: center;
  --f7-list-group-title-line-height: inherit;
  --f7-menu-list-font-size: 14px;
  --f7-menu-list-item-title-font-size: 14px;
  --f7-menu-list-item-title-font-weight: 500;
  --f7-menu-list-item-subtitle-font-size: 14px;
  --f7-menu-list-item-text-font-size: 14px;
  --f7-menu-list-item-after-font-size: 14px;
  --f7-list-outline-border-color: rgba(0, 0, 0, 0.22);
  --f7-list-chevron-icon-color: rgba(0, 0, 0, 0.2);
}
:root .dark,
:root.dark {
  --f7-list-button-border-color: rgba(255, 255, 255, 0.15);
  --f7-list-outline-border-color: rgba(255, 255, 255, 0.15);
  --f7-list-group-title-border-color: rgba(255, 255, 255, 0.15);
  --f7-list-chevron-icon-color: rgba(255, 255, 255, 0.3);
}
.ios {
  --f7-list-in-list-padding-left: 30px;
  --f7-list-inset-border-radius: 8px;
  --f7-list-margin-vertical: 35px;
  --f7-list-font-size: 17px;
  --f7-list-chevron-icon-area: 20px;
  --f7-list-item-title-text-color: inherit;
  --f7-list-item-subtitle-text-color: inherit;
  --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.15);
  --f7-list-item-subtitle-font-size: 15px;
  --f7-list-item-text-font-size: 15px;
  --f7-list-item-text-line-height: 21px;
  --f7-list-item-after-font-size: inherit;
  --f7-list-item-after-padding: 5px;
  --f7-list-item-min-height: 44px;
  --f7-list-item-media-icons-margin: 5px;
  --f7-list-media-item-padding-vertical: 10px;
  --f7-list-media-item-title-font-weight: 600;
  --f7-list-button-border-color: rgba(0, 0, 0, 0.22);
  /*
  --f7-list-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15);
  */
  --f7-list-group-title-border-color: rgba(0, 0, 0, 0.22);
  --f7-list-group-title-height: 31px;
  --f7-list-group-title-font-size: inherit;
  --f7-list-group-title-font-weight: 400;
  --f7-menu-list-offset: 8px;
  --f7-menu-list-border-radius: 8px;
  --f7-menu-list-item-bg-color: transparent;
  --f7-menu-list-item-text-color: inherit;
  --f7-menu-list-item-min-height: 44px;
  --f7-list-item-border-color: rgba(0, 0, 0, 0.22);
  --f7-list-outline-inset-border-color: rgba(0, 0, 0, 0.22);
  --f7-list-strong-bg-color: #fff;
  --f7-list-item-after-text-color: rgba(0, 0, 0, 0.45);
  --f7-list-item-header-text-color: inherit;
  --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.45);
  --f7-list-item-text-text-color: rgba(0, 0, 0, 0.45);
  --f7-list-group-title-text-color: rgba(0, 0, 0, 0.45);
  --f7-list-group-title-bg-color: #f7f7f7;
  --f7-menu-list-item-selected-text-color: var(--f7-theme-color);
  --f7-menu-list-item-selected-bg-color: rgba(var(--f7-theme-color-rgb), 0.15);
}
.ios .dark,
.ios.dark {
  --f7-list-item-border-color: rgba(255, 255, 255, 0.15);
  --f7-list-outline-inset-color: rgba(255, 255, 255, 0.15);
  --f7-list-strong-bg-color: #1c1c1d;
  --f7-list-item-after-text-color: rgba(255, 255, 255, 0.55);
  --f7-list-item-header-text-color: rgba(255, 255, 255, 0.55);
  --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.55);
  --f7-list-item-text-text-color: rgba(255, 255, 255, 0.55);
  --f7-list-group-title-text-color: rgba(255, 255, 255, 0.55);
  --f7-list-group-title-bg-color: #232323;
  --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.08);
  --f7-menu-list-item-selected-text-color: inherit;
  --f7-menu-list-item-selected-bg-color: var(--f7-theme-color);
}
.md {
  --f7-list-in-list-padding-left: 24px;
  --f7-list-inset-border-radius: 16px;
  --f7-list-margin-vertical: 32px;
  --f7-list-font-size: 16px;
  --f7-list-chevron-icon-area: 26px;
  --f7-list-item-subtitle-font-size: 14px;
  --f7-list-item-text-font-size: 14px;
  --f7-list-item-text-line-height: 20px;
  --f7-list-item-after-font-size: 14px;
  --f7-list-item-after-padding: 8px;
  --f7-list-item-min-height: 48px;
  --f7-list-item-media-icons-margin: 8px;
  --f7-list-media-item-padding-vertical: 12px;
  --f7-list-media-item-title-font-weight: 500;
  --f7-list-button-border-color: transparent;
  /*
  --f7-list-button-pressed-bg-color: transparent;
  */
  --f7-list-group-title-border-color: transparent;
  --f7-list-group-title-height: 48px;
  --f7-list-group-title-font-size: 16px;
  --f7-list-group-title-font-weight: 400;
  --f7-menu-list-offset: 16px;
  --f7-menu-list-border-radius: 999px;
  --f7-menu-list-item-min-height: 56px;
  --f7-list-link-pressed-bg-color: transparent;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-list-outline-inset-border-color: var(--f7-md-outline);
  --f7-list-item-border-color: var(--f7-md-outline);
  --f7-list-item-title-text-color: var(--f7-md-on-surface);
  --f7-list-item-subtitle-text-color: var(--f7-md-on-surface);
  --f7-list-group-title-bg-color: var(--f7-md-surface-2);
  --f7-list-group-title-text-color: var(--f7-md-on-surface-variant);
  --f7-list-strong-bg-color: var(--f7-md-surface-1);
  --f7-list-item-after-text-color: var(--f7-md-on-surface-variant);
  --f7-list-item-text-text-color: var(--f7-md-on-surface-variant);
  --f7-list-item-header-text-color: var(--f7-md-on-surface-variant);
  --f7-list-item-footer-text-color: var(--f7-md-on-surface-variant);
  --f7-menu-list-item-text-color: var(--f7-md-on-surface-variant);
  --f7-menu-list-item-bg-color: var(--f7-md-surface-1);
  --f7-menu-list-item-selected-text-color: var(--f7-md-on-secondary-container);
  --f7-menu-list-item-selected-bg-color: var(--f7-md-secondary-container);
}
:root {
  --f7-list-chevron-icon-left: 'chevron_left';
  --f7-list-chevron-icon-right: 'chevron_right';
}
.list {
  position: relative;
  z-index: 1;
  font-size: var(--f7-list-font-size);
  margin: var(--f7-list-margin-vertical) 0;
}
.list-strong ul,
.ios .list-strong-ios ul,
.md .list-strong-md ul {
  background: var(--f7-list-strong-bg-color);
}
.list-outline ul:before,
.ios .list-outline-ios ul:before,
.md .list-outline-md ul:before {
  content: '';
  position: absolute;
  background-color: var(--f7-list-outline-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.list-outline ul:after,
.ios .list-outline-ios ul:after,
.md .list-outline-md ul:after {
  content: '';
  position: absolute;
  background-color: var(--f7-list-outline-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.list-outline.inset,
.ios .list-outline-ios.inset,
.ios .list-outline-ios.inset-ios,
.md .list-outline-md.inset,
.md .list-outline-md.inset-md {
  border: 1px solid var(--f7-list-outline-inset-border-color);
}
.list ul {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}
.list ul ul {
  padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-list-in-list-padding-left));
}
.list ul ul:before,
.list ul ul:after {
  display: none !important;
}
.list li {
  position: relative;
  box-sizing: border-box;
}
.list .item-media {
  display: flex;
  flex-shrink: 0;
  flex-wrap: nowrap;
  align-items: center;
  box-sizing: border-box;
  padding-bottom: var(--f7-list-item-padding-vertical);
  padding-top: var(--f7-list-item-padding-vertical);
  position: relative;
}
.list .item-media + .item-inner {
  margin-left: var(--f7-list-item-media-margin);
}
.list .item-media i + i,
.list .item-media i + img {
  margin-left: var(--f7-list-item-media-icons-margin);
}
.list .item-after {
  padding-left: var(--f7-list-item-after-padding);
}
.list .item-inner {
  position: relative;
  width: 100%;
  min-width: 0;
  display: flex;
  justify-content: space-between;
  box-sizing: border-box;
  align-items: center;
  align-self: stretch;
  padding-top: var(--f7-list-item-padding-vertical);
  padding-bottom: var(--f7-list-item-padding-vertical);
  min-height: calc(var(--f7-list-item-min-height));
  padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
}
.list .item-title {
  min-width: 0;
  flex-shrink: 1;
  white-space: var(--f7-list-item-title-white-space);
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  font-size: var(--f7-list-item-title-font-size);
  font-weight: var(--f7-list-item-title-font-weight);
  color: var(--f7-list-item-title-text-color);
  line-height: var(--f7-list-item-title-line-height);
}
.list .item-after {
  white-space: nowrap;
  flex-shrink: 0;
  display: flex;
  font-size: var(--f7-list-item-after-font-size);
  font-weight: var(--f7-list-item-after-font-weight);
  color: var(--f7-list-item-after-text-color);
  line-height: var(--f7-list-item-after-line-height);
  margin-left: auto;
}
.list .item-header,
.list .item-footer {
  white-space: normal;
}
.list .item-header {
  color: var(--f7-list-item-header-text-color);
  font-size: var(--f7-list-item-header-font-size);
  font-weight: var(--f7-list-item-header-font-weight);
  line-height: var(--f7-list-item-header-line-height);
}
.list .item-footer {
  color: var(--f7-list-item-footer-text-color);
  font-size: var(--f7-list-item-footer-font-size);
  font-weight: var(--f7-list-item-footer-font-weight);
  line-height: var(--f7-list-item-footer-line-height);
}
.list .item-link,
.list label.item-content,
.list .list-button {
  transition-duration: 300ms;
  transition-property: background-color, color;
  position: relative;
  overflow: hidden;
  z-index: 0;
  cursor: pointer;
}
.list .item-link,
.list .list-button {
  display: block;
}
.list .item-link,
.list label.item-content {
  color: inherit;
}
.list .item-link.active-state,
.list label.item-content.active-state {
  background-color: var(--f7-list-link-pressed-bg-color);
}
.list .item-link .item-inner {
  padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
}
.list .item-content {
  display: flex;
  justify-content: space-between;
  box-sizing: border-box;
  align-items: center;
  min-height: calc(var(--f7-list-item-min-height));
  padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));
}
.list .item-subtitle {
  position: relative;
  overflow: hidden;
  white-space: nowrap;
  max-width: 100%;
  text-overflow: ellipsis;
  font-size: var(--f7-list-item-subtitle-font-size);
  font-weight: var(--f7-list-item-subtitle-font-weight);
  color: var(--f7-list-item-subtitle-text-color);
  line-height: var(--f7-list-item-subtitle-line-height);
}
.list .item-text {
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis;
  /* autoprefixer: ignore next */
  -webkit-line-clamp: var(--f7-list-item-text-max-lines);
  /* autoprefixer: ignore next */
  -webkit-box-orient: vertical;
  display: -webkit-box;
  font-size: var(--f7-list-item-text-font-size);
  font-weight: var(--f7-list-item-text-font-weight);
  color: var(--f7-list-item-text-text-color);
  line-height: var(--f7-list-item-text-line-height);
  max-height: calc(var(--f7-list-item-text-line-height) * var(--f7-list-item-text-max-lines));
}
.list .item-title-row {
  position: relative;
  display: flex;
  justify-content: space-between;
  box-sizing: border-box;
}
.list .item-title-row .item-after {
  align-self: center;
}
.list li:last-child .list-button:after {
  display: none !important;
}
.list li:last-child > .item-inner:after,
.list li:last-child li:last-child > .item-inner:after,
.list li:last-child > .item-content > .item-inner:after,
.list li:last-child li:last-child > .item-content > .item-inner:after,
.list li:last-child > .swipeout-content > .item-content > .item-inner:after,
.list li:last-child li:last-child > .swipeout-content > .item-content > .item-inner:after,
.list li:last-child > .item-link > .item-content > .item-inner:after,
.list li:last-child li:last-child > .item-link > .item-content > .item-inner:after {
  display: none !important;
}
.list li li:last-child .item-inner:after,
.list li:last-child li .item-inner:after {
  content: '';
  position: absolute;
  background-color: var(--f7-list-item-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.list-button {
  --f7-touch-ripple-color: var(--f7-link-touch-ripple-color, rgba(var(--f7-theme-color-rgb), 0.25));
  padding: 0 var(--f7-list-item-padding-horizontal);
  line-height: var(--f7-list-item-min-height);
  color: var(--f7-list-button-text-color, var(--f7-theme-color));
  font-size: var(--f7-list-button-font-size);
  font-weight: var(--f7-list-button-font-weight);
  text-align: var(--f7-list-button-text-align);
}
.ios .list-button.active-state {
  background-color: var(--f7-list-button-pressed-bg-color, rgba(var(--f7-theme-color-rgb), 0.15));
}
.md .list-button.active-state {
  background-color: var(--f7-list-button-pressed-bg-color, transparent);
}
.list-dividers .list-button:after,
.ios .list-dividers-ios .list-button:after,
.md .list-dividers-md .list-button:after {
  content: '';
  position: absolute;
  background-color: var(--f7-list-button-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.list-button[class*='color-'] {
  --f7-list-button-text-color: var(--f7-theme-color);
}
.simple-list li {
  position: relative;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 100%;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  align-items: center;
  align-content: center;
  line-height: var(--f7-list-item-min-height);
  height: var(--f7-list-item-min-height);
  padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));
  padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
}
.simple-list li:after {
  left: var(--f7-list-item-padding-horizontal);
  width: auto;
  left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));
  right: 0;
}
.simple-list li:last-child:after {
  display: none !important;
}
.links-list li {
  z-index: 1;
}
.links-list a {
  transition-duration: 300ms;
  transition-property: background-color;
  display: block;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  align-content: center;
  justify-content: space-between;
  box-sizing: border-box;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 100%;
  height: var(--f7-list-item-min-height);
  color: inherit;
}
.links-list a .ripple-wave {
  z-index: 0;
}
.links-list a:after {
  width: auto;
}
.links-list a.active-state {
  background-color: var(--f7-list-link-pressed-bg-color);
}
.links-list a {
  padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));
  padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
}
.links-list a:after {
  left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));
  right: 0;
}
.links-list li:last-child a:after {
  display: none !important;
}
.list-dividers.simple-list li:after,
.ios .list-dividers-ios.simple-list li:after,
.md .list-dividers-md.simple-list li:after,
.list-dividers.links-list a:after,
.ios .list-dividers-ios.links-list a:after,
.md .list-dividers-md.links-list a:after,
.list-dividers .item-inner:after,
.ios .list-dividers-ios .item-inner:after,
.md .list-dividers-md .item-inner:after {
  content: '';
  position: absolute;
  background-color: var(--f7-list-item-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.md .media-list:not(.inset):not(.inset-md):not(.menu-list) .item-content,
.md .media-list:not(.inset):not(.inset-md):not(.menu-list) li > .item-link,
.md .list:not(.inset):not(.inset-md):not(.menu-list) .media-item .item-content,
.md .list:not(.inset):not(.inset-md):not(.menu-list) .media-item > .item-link {
  margin-left: calc(var(--f7-list-item-padding-horizontal) / 2);
  margin-right: calc(var(--f7-list-item-padding-horizontal) / 2);
  border-radius: 16px;
}
.md .media-list:not(.inset):not(.inset-md):not(.menu-list) li > .item-link > .item-content,
.md .list:not(.inset):not(.inset-md):not(.menu-list) .media-item > .item-link > .item-content {
  margin-left: 0;
  margin-right: 0;
}
.md .media-list:not(.inset):not(.inset-md):not(.menu-list) .item-content,
.md .list:not(.inset):not(.inset-md):not(.menu-list) .media-item .item-content {
  padding-left: calc(var(--f7-list-item-padding-horizontal) / 2 + var(--f7-safe-area-left));
}
.media-list,
li.media-item {
  --f7-list-item-padding-vertical: var(--f7-list-media-item-padding-vertical);
  --f7-list-item-padding-horizontal: var(--f7-list-media-item-padding-horizontal);
}
.media-list .item-title,
li.media-item .item-title {
  font-weight: var(--f7-list-media-item-title-font-weight, var(--f7-list-item-title-font-weight, inherit));
}
.media-list .item-inner,
li.media-item .item-inner {
  display: block;
  align-self: stretch;
}
.media-list .item-media img,
li.media-item .item-media img {
  display: block;
}
.media-list .item-link .item-inner,
li.media-item .item-link .item-inner {
  padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
}
.media-list .item-link .item-title-row,
li.media-item .item-link .item-title-row {
  padding-right: calc(var(--f7-list-chevron-icon-area));
}
.media-list.chevron-center .item-link .item-inner,
.media-list .chevron-center .item-link .item-inner,
.media-list .item-link.chevron-center .item-inner,
li.media-item.chevron-center .item-link .item-inner,
li.media-item .item-link.chevron-center .item-inner,
li.media-item .chevron-center .item-link .item-inner {
  padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
}
.media-list.chevron-center .item-title-row,
.media-list .chevron-center .item-title-row,
li.media-item.chevron-center .item-title-row,
li.media-item .chevron-center .item-title-row {
  padding-right: 0;
}
.list .item-link .item-inner:before,
.links-list a:before,
.media-list .item-link .item-title-row:before,
li.media-item .item-link .item-title-row:before,
.media-list.chevron-center .item-link .item-inner:before,
.media-list .chevron-center .item-link .item-inner:before,
.media-list .item-link.chevron-center .item-inner:before,
li.media-item.chevron-center .item-link .item-inner:before,
li.media-item .chevron-center .item-link .item-inner:before,
li.media-item .item-link.chevron-center .item-inner:before {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  position: absolute;
  top: 50%;
  width: 8px;
  height: 14px;
  margin-top: -7px;
  font-size: var(--f7-list-chevron-icon-font-size);
  line-height: 14px;
  color: var(--f7-list-chevron-icon-color);
  pointer-events: none;
  right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
  content: var(--f7-list-chevron-icon-right);
}
.media-list.chevron-center .item-title-row:before,
.media-list .chevron-center .item-title-row:before,
li.media-item.chevron-center .item-title-row:before,
li.media-item .chevron-center .item-title-row:before {
  display: none;
}
.media-list .item-link .item-inner:before,
li.media-item .item-link .item-inner:before {
  display: none;
}
.media-list .item-link .item-title-row:before,
li.media-item .item-link .item-title-row:before {
  right: 0;
}
.list-group ul:after,
.list-group ul:before {
  z-index: 25 !important;
}
.list-group + .list-group ul:before {
  display: none !important;
}
li.list-group-title,
.list-group-title {
  margin-top: -1px;
  white-space: nowrap;
  position: relative;
  max-width: 100%;
  text-overflow: ellipsis;
  overflow: hidden;
  z-index: 15;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));
  padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
  box-sizing: border-box;
  display: flex;
  align-items: center;
  align-content: center;
  height: var(--f7-list-group-title-height);
  color: var(--f7-list-group-title-text-color);
  font-size: var(--f7-list-group-title-font-size);
  font-weight: var(--f7-list-group-title-font-weight);
  background-color: var(--f7-list-group-title-bg-color);
  line-height: var(--f7-list-group-title-line-height);
}
li.list-group-title:before,
.list-group-title:before {
  content: '';
  position: absolute;
  background-color: var(--f7-list-group-title-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
li.list-group-title:after,
.list-group-title:after {
  display: none !important;
}
.list-group > .list-group-title,
.list-group > ul > .list-group-title {
  top: 0;
  margin-top: 0;
  position: sticky;
  z-index: 20;
}
.page-with-navbar-large .list-group > .list-group-title,
.page-with-navbar-large .list-group > ul > .list-group-title {
  top: calc(-1 * var(--f7-navbar-large-title-height));
}
.list.inset,
.ios .list.inset-ios,
.md .list.inset-md {
  margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));
  margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));
  border-radius: var(--f7-list-inset-border-radius);
  --f7-safe-area-left: 0px;
  --f7-safe-area-right: 0px;
}
.list.inset .block-title,
.ios .list.inset-ios .block-title,
.md .list.inset-md .block-title {
  margin-left: 0;
  margin-right: 0;
}
.list.inset ul,
.ios .list.inset-ios ul,
.md .list.inset-md ul {
  border-radius: var(--f7-list-inset-border-radius);
}
.list.inset ul:before,
.ios .list.inset-ios ul:before,
.md .list.inset-md ul:before,
.list.inset ul:after,
.ios .list.inset-ios ul:after,
.md .list.inset-md ul:after {
  display: none !important;
}
.list.inset li.swipeout:first-child,
.ios .list.inset-ios li.swipeout:first-child,
.md .list.inset-md li.swipeout:first-child,
.list.inset li:first-child > a,
.ios .list.inset-ios li:first-child > a,
.md .list.inset-md li:first-child > a {
  border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0;
}
.list.inset li.swipeout:last-child,
.ios .list.inset-ios li.swipeout:last-child,
.md .list.inset-md li.swipeout:last-child,
.list.inset li:last-child > a,
.ios .list.inset-ios li:last-child > a,
.md .list.inset-md li:last-child > a {
  border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius);
}
.list.inset li.swipeout:first-child:last-child,
.ios .list.inset-ios li.swipeout:first-child:last-child,
.md .list.inset-md li.swipeout:first-child:last-child,
.list.inset li:first-child:last-child > a,
.ios .list.inset-ios li:first-child:last-child > a,
.md .list.inset-md li:first-child:last-child > a {
  border-radius: var(--f7-list-inset-border-radius);
}
@media (min-width: 480px) {
  .list.xsmall-inset,
  .ios .list.xsmall-inset-ios,
  .md .list.xsmall-inset-md {
    margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));
    border-radius: var(--f7-list-inset-border-radius);
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .list.xsmall-inset .block-title,
  .ios .list.xsmall-inset-ios .block-title,
  .md .list.xsmall-inset-md .block-title {
    margin-left: 0;
    margin-right: 0;
  }
  .list.xsmall-inset ul,
  .ios .list.xsmall-inset-ios ul,
  .md .list.xsmall-inset-md ul {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.xsmall-inset ul:before,
  .ios .list.xsmall-inset-ios ul:before,
  .md .list.xsmall-inset-md ul:before,
  .list.xsmall-inset ul:after,
  .ios .list.xsmall-inset-ios ul:after,
  .md .list.xsmall-inset-md ul:after {
    display: none !important;
  }
  .list.xsmall-inset li:first-child > a,
  .ios .list.xsmall-inset-ios li:first-child > a,
  .md .list.xsmall-inset-md li:first-child > a {
    border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0;
  }
  .list.xsmall-inset li:last-child > a,
  .ios .list.xsmall-inset-ios li:last-child > a,
  .md .list.xsmall-inset-md li:last-child > a {
    border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius);
  }
  .list.xsmall-inset li:first-child:last-child > a,
  .ios .list.xsmall-inset-ios li:first-child:last-child > a,
  .md .list.xsmall-inset-md li:first-child:last-child > a {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.xsmall-inset.list-outline ul,
  .ios .list.xsmall-inset-ios.list-outline ul,
  .ios .list.xsmall-inset-ios.list-outline-ios ul,
  .md .list.xsmall-inset-md.list-outline ul,
  .md .list.xsmall-inset-md.list-outline-md ul {
    border: 1px solid var(--f7-list-outline-inset-border-color);
  }
}
@media (min-width: 568px) {
  .list.small-inset,
  .ios .list.small-inset-ios,
  .md .list.small-inset-md {
    margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));
    border-radius: var(--f7-list-inset-border-radius);
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .list.small-inset .block-title,
  .ios .list.small-inset-ios .block-title,
  .md .list.small-inset-md .block-title {
    margin-left: 0;
    margin-right: 0;
  }
  .list.small-inset ul,
  .ios .list.small-inset-ios ul,
  .md .list.small-inset-md ul {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.small-inset ul:before,
  .ios .list.small-inset-ios ul:before,
  .md .list.small-inset-md ul:before,
  .list.small-inset ul:after,
  .ios .list.small-inset-ios ul:after,
  .md .list.small-inset-md ul:after {
    display: none !important;
  }
  .list.small-inset li:first-child > a,
  .ios .list.small-inset-ios li:first-child > a,
  .md .list.small-inset-md li:first-child > a {
    border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0;
  }
  .list.small-inset li:last-child > a,
  .ios .list.small-inset-ios li:last-child > a,
  .md .list.small-inset-md li:last-child > a {
    border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius);
  }
  .list.small-inset li:first-child:last-child > a,
  .ios .list.small-inset-ios li:first-child:last-child > a,
  .md .list.small-inset-md li:first-child:last-child > a {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.small-inset.list-outline ul,
  .ios .list.small-inset-ios.list-outline ul,
  .ios .list.small-inset-ios.list-outline-ios ul,
  .md .list.small-inset-md.list-outline ul,
  .md .list.small-inset-md.list-outline-md ul {
    border: 1px solid var(--f7-list-outline-inset-border-color);
  }
}
@media (min-width: 768px) {
  .list.medium-inset,
  .ios .list.medium-inset-ios,
  .md .list.medium-inset-md {
    margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));
    border-radius: var(--f7-list-inset-border-radius);
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .list.medium-inset .block-title,
  .ios .list.medium-inset-ios .block-title,
  .md .list.medium-inset-md .block-title {
    margin-left: 0;
    margin-right: 0;
  }
  .list.medium-inset ul,
  .ios .list.medium-inset-ios ul,
  .md .list.medium-inset-md ul {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.medium-inset ul:before,
  .ios .list.medium-inset-ios ul:before,
  .md .list.medium-inset-md ul:before,
  .list.medium-inset ul:after,
  .ios .list.medium-inset-ios ul:after,
  .md .list.medium-inset-md ul:after {
    display: none !important;
  }
  .list.medium-inset li:first-child > a,
  .ios .list.medium-inset-ios li:first-child > a,
  .md .list.medium-inset-md li:first-child > a {
    border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0;
  }
  .list.medium-inset li:last-child > a,
  .ios .list.medium-inset-ios li:last-child > a,
  .md .list.medium-inset-md li:last-child > a {
    border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius);
  }
  .list.medium-inset li:first-child:last-child > a,
  .ios .list.medium-inset-ios li:first-child:last-child > a,
  .md .list.medium-inset-md li:first-child:last-child > a {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.medium-inset.list-outline ul,
  .ios .list.medium-inset-ios.list-outline ul,
  .ios .list.medium-inset-ios.list-outline-ios ul,
  .md .list.medium-inset-md.list-outline ul,
  .md .list.medium-inset-md.list-outline-md ul {
    border: 1px solid var(--f7-list-outline-inset-border-color);
  }
}
@media (min-width: 1024px) {
  .list.large-inset,
  .ios .list.large-inset-ios,
  .md .list.large-inset-md {
    margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));
    border-radius: var(--f7-list-inset-border-radius);
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .list.large-inset .block-title,
  .ios .list.large-inset-ios .block-title,
  .md .list.large-inset-md .block-title {
    margin-left: 0;
    margin-right: 0;
  }
  .list.large-inset ul,
  .ios .list.large-inset-ios ul,
  .md .list.large-inset-md ul {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.large-inset ul:before,
  .ios .list.large-inset-ios ul:before,
  .md .list.large-inset-md ul:before,
  .list.large-inset ul:after,
  .ios .list.large-inset-ios ul:after,
  .md .list.large-inset-md ul:after {
    display: none !important;
  }
  .list.large-inset li:first-child > a,
  .ios .list.large-inset-ios li:first-child > a,
  .md .list.large-inset-md li:first-child > a {
    border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0;
  }
  .list.large-inset li:last-child > a,
  .ios .list.large-inset-ios li:last-child > a,
  .md .list.large-inset-md li:last-child > a {
    border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius);
  }
  .list.large-inset li:first-child:last-child > a,
  .ios .list.large-inset-ios li:first-child:last-child > a,
  .md .list.large-inset-md li:first-child:last-child > a {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.large-inset.list-outline ul,
  .ios .list.large-inset-ios.list-outline ul,
  .ios .list.large-inset-ios.list-outline-ios ul,
  .md .list.large-inset-md.list-outline ul,
  .md .list.large-inset-md.list-outline-md ul {
    border: 1px solid var(--f7-list-outline-inset-border-color);
  }
}
@media (min-width: 1200px) {
  .list.xlarge-inset,
  .ios .list.xlarge-inset-ios,
  .md .list.xlarge-inset-md {
    margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));
    margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));
    border-radius: var(--f7-list-inset-border-radius);
    --f7-safe-area-left: 0px;
    --f7-safe-area-right: 0px;
  }
  .list.xlarge-inset .block-title,
  .ios .list.xlarge-inset-ios .block-title,
  .md .list.xlarge-inset-md .block-title {
    margin-left: 0;
    margin-right: 0;
  }
  .list.xlarge-inset ul,
  .ios .list.xlarge-inset-ios ul,
  .md .list.xlarge-inset-md ul {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.xlarge-inset ul:before,
  .ios .list.xlarge-inset-ios ul:before,
  .md .list.xlarge-inset-md ul:before,
  .list.xlarge-inset ul:after,
  .ios .list.xlarge-inset-ios ul:after,
  .md .list.xlarge-inset-md ul:after {
    display: none !important;
  }
  .list.xlarge-inset li:first-child > a,
  .ios .list.xlarge-inset-ios li:first-child > a,
  .md .list.xlarge-inset-md li:first-child > a {
    border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0;
  }
  .list.xlarge-inset li:last-child > a,
  .ios .list.xlarge-inset-ios li:last-child > a,
  .md .list.xlarge-inset-md li:last-child > a {
    border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius);
  }
  .list.xlarge-inset li:first-child:last-child > a,
  .ios .list.xlarge-inset-ios li:first-child:last-child > a,
  .md .list.xlarge-inset-md li:first-child:last-child > a {
    border-radius: var(--f7-list-inset-border-radius);
  }
  .list.xlarge-inset.list-outline ul,
  .ios .list.xlarge-inset-ios.list-outline ul,
  .ios .list.xlarge-inset-ios.list-outline-ios ul,
  .md .list.xlarge-inset-md.list-outline ul,
  .md .list.xlarge-inset-md.list-outline-md ul {
    border: 1px solid var(--f7-list-outline-inset-border-color);
  }
}
.list.no-chevron,
.list .no-chevron,
.menu-list {
  --f7-list-chevron-icon-color: transparent;
  --f7-list-chevron-icon-area: 0px;
}
.menu-list {
  --f7-list-font-size: var(--f7-menu-list-font-size);
  --f7-list-item-title-font-size: var(--f7-menu-list-item-title-font-size);
  --f7-list-item-title-font-weight: var(--f7-menu-list-item-title-font-weight);
  --f7-list-item-subtitle-font-size: var(--f7-menu-list-item-subtitle-font-size);
  --f7-list-item-text-font-size: var(--f7-menu-list-item-text-font-size);
  --f7-list-item-after-font-size: var(--f7-menu-list-item-after-font-size);
  --f7-list-item-min-height: var(--f7-menu-list-item-min-height);
}
.menu-list .item-header,
.menu-list .item-footer,
.menu-list .item-title,
.menu-list .item-after,
.menu-list .item-text,
.menu-list .item-subtitle {
  transition-duration: 300ms;
}
.menu-list li:not(.list-group-title) {
  padding-top: 4px;
  padding-bottom: 4px;
}
.menu-list li:not(.list-group-title):first-child {
  padding-top: 4px;
}
.menu-list li:not(.list-group-title):last-child {
  padding-bottom: 4px;
}
.menu-list .item-link {
  margin-left: var(--f7-menu-list-offset);
  margin-right: var(--f7-menu-list-offset);
  border-radius: var(--f7-menu-list-border-radius) !important;
  color: var(--f7-menu-list-item-text-color);
  background-color: var(--f7-menu-list-item-bg-color);
}
.menu-list .item-inner:after {
  display: none;
}
.menu-list .item-selected .item-link,
.menu-list .item-selected.item-link,
.menu-list .tab-link-active .item-link,
.menu-list .tab-link-active.item-link {
  color: var(--f7-menu-list-item-selected-text-color);
  background-color: var(--f7-menu-list-item-selected-bg-color);
}
.menu-list .item-selected .item-header,
.menu-list .item-selected .item-footer,
.menu-list .item-selected .item-title,
.menu-list .item-selected .item-after,
.menu-list .item-selected .item-text,
.menu-list .item-selected .item-subtitle {
  color: var(--f7-menu-list-item-selected-text-color);
}
.ios .item-link.active-state .item-inner:after,
.ios .list-button.active-state:after,
.ios .links-list a.active-state:after {
  background-color: transparent;
}
.ios .links-list a.active-state,
.ios .list .item-link.active-state,
.ios .list .list-button.active-state {
  transition-duration: 0ms;
}
.md .menu-list .item-link.active-state {
  background-color: var(--f7-menu-list-item-bg-color);
}
/* === Badge === */
:root {
  --f7-badge-text-color: #fff;
  --f7-badge-bg-color: #8e8e93;
  --f7-badge-in-icon-size: 16px;
  --f7-badge-in-icon-font-size: 10px;
  --f7-badge-font-weight: normal;
  --f7-badge-font-size: 12px;
}
.ios {
  --f7-badge-padding: 0 4px;
  --f7-badge-size: 20px;
  --f7-badge-font-weight: 600;
}
.md {
  --f7-badge-padding: 2px 6px;
  --f7-badge-size: 20px;
  --f7-badge-font-weight: 500;
}
.badge {
  display: inline-flex;
  align-items: center;
  align-content: center;
  justify-content: center;
  color: var(--f7-badge-text-color);
  background: var(--f7-badge-bg-color);
  position: relative;
  box-sizing: border-box;
  text-align: center;
  vertical-align: middle;
  font-weight: var(--f7-badge-font-weight);
  font-size: var(--f7-badge-font-size);
  border-radius: var(--f7-badge-size);
  padding: var(--f7-badge-padding);
  height: var(--f7-badge-size);
  min-width: var(--f7-badge-size);
}
.icon .badge,
.f7-icons .badge,
.framework7-icons .badge,
.material-icons .badge {
  position: absolute;
  left: 100%;
  margin-left: -10px;
  top: -2px;
  font-family: var(--f7-font-family);
  --f7-badge-font-size: var(--f7-badge-in-icon-font-size);
  --f7-badge-size: var(--f7-badge-in-icon-size);
  --f7-badge-padding: 0px 2px;
}
.badge[class*='color-'] {
  --f7-badge-bg-color: var(--f7-theme-color);
}
:root {
  --f7-button-font-size: 14px;
  --f7-button-min-width: 32px;
  --f7-button-bg-color: transparent;
  --f7-button-border-width: 0px;
  /*
  --f7-button-text-color: var(--f7-theme-color);
  --f7-button-pressed-text-color: var(--f7-button-text-color, var(--f7-theme-color));
  --f7-button-border-color: var(--f7-theme-color);
  --f7-button-fill-bg-color: var(--f7-theme-color);
  --f7-button-padding-vertical: 0px;
  */
  --f7-button-raised-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
  --f7-button-raised-pressed-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16),
    0 3px 6px rgba(0, 0, 0, 0.23);
  --f7-segmented-raised-divider-color: rgba(0, 0, 0, 0.1);
  --f7-segmented-strong-padding: 2px;
  --f7-segmented-strong-between-buttons: 4px;
  --f7-segmented-strong-button-font-weight: 500;
  --f7-segmented-strong-button-active-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);
  --f7-segmented-strong-button-text-color: #000;
  --f7-segmented-strong-button-hover-bg-color: rgba(0, 0, 0, 0.04);
  --f7-segmented-strong-button-active-text-color: #000;
  --f7-segmented-strong-button-active-bg-color: #fff;
}
:root .dark,
:root.dark {
  --f7-segmented-strong-button-hover-bg-color: rgba(255, 255, 255, 0.02);
  --f7-segmented-strong-button-active-bg-color: rgba(255, 255, 255, 0.14);
  --f7-segmented-strong-button-text-color: #fff;
  --f7-segmented-strong-button-active-text-color: #fff;
}
.ios {
  --f7-button-fill-text-color: #fff;
  --f7-button-text-transform: uppercase;
  --f7-button-height: 28px;
  --f7-button-padding-horizontal: 10px;
  --f7-button-border-radius: 4px;
  --f7-button-font-weight: 600;
  --f7-button-letter-spacing: 0;
  /*
  --f7-button-outline-border-color: var(--f7-theme-color);
  */
  --f7-button-outline-border-width: 2px;
  /*
  --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15);
  --f7-button-fill-pressed-bg-color: var(--f7-theme-color-tint);
  */
  --f7-button-large-text-transform: uppercase;
  --f7-button-large-height: 44px;
  --f7-button-large-font-size: 17px;
  --f7-button-large-font-weight: 500;
  --f7-button-small-outline-border-width: 2px;
  --f7-button-small-text-transform: uppercase;
  --f7-button-small-height: 26px;
  --f7-button-small-font-size: 13px;
  --f7-button-small-font-weight: 600;
  --f7-segmented-strong-button-text-transform: none;
  --f7-segmented-strong-button-active-font-weight: 600;
  --f7-button-tonal-bg-color: rgba(var(--f7-theme-color-rgb), 0.15);
  --f7-button-tonal-pressed-bg-color: rgba(var(--f7-theme-color-rgb), 0.25);
  --f7-button-tonal-text-color: var(--f7-theme-color);
  --f7-segmented-strong-bg-color: rgba(0, 0, 0, 0.07);
  --f7-segmented-strong-button-pressed-bg-color: rgba(0, 0, 0, 0.07);
}
.ios .dark,
.ios.dark {
  --f7-segmented-strong-bg-color: rgba(255, 255, 255, 0.1);
  --f7-segmented-strong-button-pressed-bg-color: rgba(255, 255, 255, 0.04);
}
.md {
  /*
  --f7-button-pressed-bg-color: transparent;
  */
  --f7-button-text-transform: none;
  --f7-button-height: 40px;
  --f7-button-padding-horizontal: 16px;
  --f7-button-border-radius: 8px;
  --f7-button-font-weight: 500;
  --f7-button-letter-spacing: normal;
  --f7-button-outline-border-width: 1px;
  --f7-button-large-text-transform: none;
  --f7-button-large-height: 48px;
  --f7-button-large-font-size: 14px;
  --f7-button-large-font-weight: 500;
  --f7-button-small-text-transform: none;
  --f7-button-small-outline-border-width: 1px;
  --f7-button-small-height: 32px;
  --f7-button-small-font-size: 14px;
  --f7-button-small-font-weight: 500;
  --f7-segmented-strong-button-text-transform: none;
  --f7-segmented-strong-button-active-font-weight: 500;
  --f7-segmented-strong-button-pressed-bg-color: transparent;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-button-fill-pressed-bg-color: transparent;
  --f7-button-fill-text-color: var(--f7-md-on-primary);
  --f7-button-outline-border-color: var(--f7-md-outline);
  --f7-segmented-strong-bg-color: var(--f7-md-surface-variant);
  --f7-button-tonal-bg-color: var(--f7-md-secondary-container);
  --f7-button-tonal-pressed-bg-color: transparent;
  --f7-button-tonal-text-color: var(--f7-md-on-secondary-container);
}
button {
  -webkit-appearance: none;
          appearance: none;
  width: 100%;
}
.button {
  --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.25);
  -webkit-text-decoration: none;
  text-decoration: none;
  text-align: center;
  display: flex;
  -webkit-appearance: none;
          appearance: none;
  background: none;
  margin: 0;
  white-space: nowrap;
  text-overflow: ellipsis;
  position: relative;
  overflow: hidden;
  font-family: inherit;
  cursor: pointer;
  outline: 0;
  box-sizing: border-box;
  vertical-align: middle;
  justify-content: center;
  align-items: center;
  border: var(--f7-button-border-width, 0px) solid var(--f7-button-border-color, var(--f7-theme-color));
  font-size: var(--f7-button-font-size);
  color: var(--f7-button-text-color, var(--f7-theme-color));
  height: var(--f7-button-height);
  line-height: calc(var(--f7-button-height) - var(--f7-button-border-width, 0) * 2);
  padding: var(--f7-button-padding-vertical, 0px) var(--f7-button-padding-horizontal);
  border-radius: var(--f7-button-border-radius);
  min-width: var(--f7-button-min-width);
  font-weight: var(--f7-button-font-weight);
  letter-spacing: var(--f7-button-letter-spacing);
  text-transform: var(--f7-button-text-transform);
  background-color: var(--f7-button-bg-color);
  box-shadow: var(--f7-button-box-shadow);
}
.button.active-state {
  color: var(--f7-button-pressed-text-color, var(--f7-button-text-color, var(--f7-theme-color)));
}
input[type='submit'].button,
input[type='button'].button,
input[type='reset'].button {
  width: 100%;
}
.button > i + span,
.button > span + span,
.button > span ~ i {
  margin-left: 4px;
}
.subnavbar .button,
.navbar .button,
.toolbar .button,
.searchbar .button {
  color: var(--f7-button-text-color, var(--f7-theme-color));
}
.button-round,
.ios .button-round-ios,
.md .button-round-md {
  --f7-button-border-radius: var(--f7-button-height);
}
.button-fill,
.ios .button-fill-ios,
.md .button-fill-md,
.button-active,
.button.tab-link-active {
  --f7-button-bg-color: var(--f7-button-fill-bg-color, var(--f7-theme-color));
  --f7-button-text-color: var(--f7-button-fill-text-color, #fff);
  --f7-touch-ripple-color: var(--f7-touch-ripple-white);
}
.ios .color-white .button-fill,
.ios .color-white .ios .button-fill-ios,
.ios .color-white .md .button-fill-md,
.ios .color-white .button-active,
.ios .color-white .button.tab-link-active,
.ios .button-fill.color-white,
.ios .ios .button-fill-ios.color-white,
.ios .md .button-fill-md.color-white,
.ios .button-active.color-white,
.ios .button.tab-link-active.color-white {
  --f7-button-text-color: #000;
}
.button-fill,
.ios .button-fill-ios,
.md .button-fill-md {
  --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color);
}
.button-active,
.button.tab-link-active {
  --f7-button-pressed-bg-color: var(--f7-button-bg-color);
}
.button-outline,
.ios .button-outline-ios,
.md .button-outline-md {
  --f7-button-border-color: var(--f7-button-outline-border-color, var(--f7-theme-color));
  --f7-button-border-width: var(--f7-button-outline-border-width);
}
.button-tonal,
.ios .button-tonal-ios,
.md .button-tonal-md {
  --f7-button-bg-color: var(--f7-button-tonal-bg-color);
  --f7-button-text-color: var(--f7-button-tonal-text-color);
  --f7-button-pressed-bg-color: var(--f7-button-tonal-pressed-bg-color);
}
.button-large,
.ios .button-large-ios,
.md .button-large-md {
  --f7-button-height: var(--f7-button-large-height);
  --f7-button-font-size: var(--f7-button-large-font-size);
  --f7-button-font-weight: var(--f7-button-large-font-weight);
  --f7-button-text-transform: var(--f7-button-large-text-transform);
}
.button-small,
.ios .button-small-ios,
.md .button-small-md {
  --f7-button-outline-border-width: var(--f7-button-small-outline-border-width);
  --f7-button-height: var(--f7-button-small-height);
  --f7-button-font-size: var(--f7-button-small-font-size);
  --f7-button-font-weight: var(--f7-button-small-font-weight);
  --f7-button-text-transform: var(--f7-button-small-text-transform);
}
.ios .button-small.button-fill,
.ios .button-small-ios.button-fill,
.ios .button-small.button-fill-ios {
  --f7-button-border-width: var(--f7-button-small-outline-border-width);
  --f7-button-pressed-text-color: var(--f7-theme-color);
  --f7-button-pressed-bg-color: transparent;
}
.segmented {
  align-self: center;
  display: flex;
  flex-wrap: nowrap;
  border-radius: var(--f7-button-border-radius);
  box-shadow: var(--f7-button-box-shadow);
  box-sizing: border-box;
}
.segmented .button,
.segmented button {
  width: 100%;
  flex-shrink: 1;
  min-width: 0;
  border-radius: 0;
}
.segmented .button:first-child {
  border-radius: var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius);
}
.segmented .button:not(.button-outline):first-child {
  border-left: none;
}
.segmented .button.button-outline:nth-child(n + 2) {
  border-left: none;
}
.segmented .button:last-child {
  border-radius: 0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0;
}
.segmented .button-round:first-child {
  border-radius: var(--f7-button-height) 0 0 var(--f7-button-height);
}
.segmented .button-round:last-child {
  border-radius: 0 var(--f7-button-height) var(--f7-button-height) 0;
}
.segmented .button:first-child:last-child {
  border-radius: var(--f7-button-border-radius);
}
.segmented-raised,
.ios .segmented-raised-ios,
.md .segmented-raised-md {
  box-shadow: var(--f7-button-raised-box-shadow);
}
.segmented-raised .button:not(.button-outline),
.ios .segmented-raised-ios .button:not(.button-outline),
.md .segmented-raised-md .button:not(.button-outline) {
  border-left: 1px solid var(--f7-segmented-raised-divider-color);
}
.button-raised,
.ios .button-raised-ios,
.md .button-raised-md {
  --f7-button-box-shadow: var(--f7-button-raised-box-shadow);
}
.button-raised.active-state,
.ios .button-raised-ios.active-state,
.md .button-raised-md.active-state {
  --f7-button-box-shadow: var(--f7-button-raised-pressed-box-shadow);
}
.segmented-strong,
.ios .segmented-strong-ios,
.md .segmented-strong-md {
  --f7-button-bg-color: transparent;
  --f7-button-hover-bg-color: var(--f7-segmented-strong-button-hover-bg-color);
  --f7-button-text-color: var(--f7-segmented-strong-button-text-color);
  --f7-button-font-weight: var(--f7-segmented-strong-button-font-weight);
  --f7-button-text-transform: var(--f7-segmented-strong-button-text-transform);
  --f7-button-pressed-bg-color: var(--f7-segmented-strong-button-pressed-bg-color);
  position: relative;
  background: var(--f7-segmented-strong-bg-color);
  border-radius: calc(var(--f7-button-border-radius) + 2px);
  box-shadow: none;
  padding: var(--f7-segmented-strong-padding);
  overflow: hidden;
}
.segmented-strong .button,
.ios .segmented-strong-ios .button,
.md .segmented-strong-md .button {
  z-index: 1;
  transform: translate3d(0, 0, 0);
}
.segmented-strong .button,
.ios .segmented-strong-ios .button,
.md .segmented-strong-md .button,
.segmented-strong .button:first-child,
.ios .segmented-strong-ios .button:first-child,
.md .segmented-strong-md .button:first-child,
.segmented-strong .button:last-child,
.ios .segmented-strong-ios .button:last-child,
.md .segmented-strong-md .button:last-child {
  border-radius: var(--f7-button-border-radius);
}
.segmented-strong .button + .button,
.ios .segmented-strong-ios .button + .button,
.md .segmented-strong-md .button + .button {
  margin-left: var(--f7-segmented-strong-between-buttons);
}
.segmented-strong .button.button-active,
.ios .segmented-strong-ios .button.button-active,
.md .segmented-strong-md .button.button-active,
.segmented-strong .button.tab-link-active,
.ios .segmented-strong-ios .button.tab-link-active,
.md .segmented-strong-md .button.tab-link-active {
  --f7-button-hover-bg-color: transparent;
  --f7-button-bg-color: transparent;
  --f7-button-text-color: var(--f7-segmented-strong-button-active-text-color);
  --f7-button-font-weight: var(--f7-segmented-strong-button-active-font-weight);
}
.segmented-strong .segmented-highlight,
.ios .segmented-strong-ios .segmented-highlight,
.md .segmented-strong-md .segmented-highlight {
  --f7-segmented-highlight-num: 1;
  --f7-segmented-highlight-active: 0;
  --f7-segmented-highlight-padding: calc(var(--f7-segmented-strong-padding) * 2);
  --f7-segmented-highlight-between: var(--f7-segmented-strong-between-buttons);
  --f7-segmented-highlight-width: calc((100% - var(--f7-segmented-highlight-padding) - var(--f7-segmented-highlight-between) * (var(--f7-segmented-highlight-num) - 1)) / var(--f7-segmented-highlight-num));
  position: absolute;
  background-color: var(--f7-segmented-strong-button-active-bg-color);
  border-radius: var(--f7-button-border-radius);
  box-shadow: var(--f7-segmented-strong-button-active-box-shadow);
  left: var(--f7-segmented-strong-padding);
  top: var(--f7-segmented-strong-padding);
  height: calc(100% - var(--f7-segmented-strong-padding) * 2);
  width: var(--f7-segmented-highlight-width);
  z-index: 0;
  transform: translateX(calc(var(--f7-segmented-highlight-active) * 100% + var(--f7-segmented-highlight-active) * var(--f7-segmented-highlight-between)));
  transition: 200ms;
}
.button:nth-child(2) ~ .segmented-highlight {
  --f7-segmented-highlight-num: 2;
}
.button:nth-child(3) ~ .segmented-highlight {
  --f7-segmented-highlight-num: 3;
}
.button:nth-child(4) ~ .segmented-highlight {
  --f7-segmented-highlight-num: 4;
}
.button:nth-child(5) ~ .segmented-highlight {
  --f7-segmented-highlight-num: 5;
}
.button:nth-child(6) ~ .segmented-highlight {
  --f7-segmented-highlight-num: 6;
}
.button:nth-child(7) ~ .segmented-highlight {
  --f7-segmented-highlight-num: 7;
}
.button:nth-child(8) ~ .segmented-highlight {
  --f7-segmented-highlight-num: 8;
}
.button:nth-child(9) ~ .segmented-highlight {
  --f7-segmented-highlight-num: 9;
}
.button:nth-child(10) ~ .segmented-highlight {
  --f7-segmented-highlight-num: 10;
}
.button-active:nth-child(2) ~ .segmented-highlight,
.tab-link-active:nth-child(2) ~ .segmented-highlight {
  --f7-segmented-highlight-active: 1;
}
.button-active:nth-child(3) ~ .segmented-highlight,
.tab-link-active:nth-child(3) ~ .segmented-highlight {
  --f7-segmented-highlight-active: 2;
}
.button-active:nth-child(4) ~ .segmented-highlight,
.tab-link-active:nth-child(4) ~ .segmented-highlight {
  --f7-segmented-highlight-active: 3;
}
.button-active:nth-child(5) ~ .segmented-highlight,
.tab-link-active:nth-child(5) ~ .segmented-highlight {
  --f7-segmented-highlight-active: 4;
}
.button-active:nth-child(6) ~ .segmented-highlight,
.tab-link-active:nth-child(6) ~ .segmented-highlight {
  --f7-segmented-highlight-active: 5;
}
.button-active:nth-child(7) ~ .segmented-highlight,
.tab-link-active:nth-child(7) ~ .segmented-highlight {
  --f7-segmented-highlight-active: 6;
}
.button-active:nth-child(8) ~ .segmented-highlight,
.tab-link-active:nth-child(8) ~ .segmented-highlight {
  --f7-segmented-highlight-active: 7;
}
.button-active:nth-child(9) ~ .segmented-highlight,
.tab-link-active:nth-child(9) ~ .segmented-highlight {
  --f7-segmented-highlight-active: 8;
}
.button-active:nth-child(10) ~ .segmented-highlight,
.tab-link-active:nth-child(10) ~ .segmented-highlight {
  --f7-segmented-highlight-active: 9;
}
.segmented-round,
.ios .segmented-round-ios,
.md .segmented-round-md {
  border-radius: var(--f7-button-height);
}
.segmented-round .segmented-highlight,
.ios .segmented-round-ios .segmented-highlight,
.md .segmented-round-md .segmented-highlight {
  border-radius: var(--f7-button-height);
}
.subnavbar .segmented {
  width: 100%;
}
.button-preloader {
  position: relative;
  --f7-preloader-color: var(--f7-button-text-color, var(--f7-theme-color));
}
.button-preloader:not(.button-large) {
  --f7-preloader-size: calc(var(--f7-button-height) - 6px);
}
.button-preloader.button-fill {
  --f7-preloader-color: #fff;
}
.button-preloader > span:not(.preloader) {
  transition: 0.2s;
  display: inline-flex;
  align-items: center;
  align-content: center;
  justify-content: center;
  transform: scale(1);
}
.button-preloader > .preloader {
  position: absolute;
  left: 50%;
  top: 50%;
  transition: 0.2s;
  transition-property: opacity;
  opacity: 0;
  visibility: hidden;
  margin-left: calc(-1 * var(--f7-preloader-size) / 2);
  margin-top: calc(-1 * var(--f7-preloader-size) / 2);
}
.button-preloader.button-loading > span:not(.preloader) {
  opacity: 0;
  transform: scale(0);
}
.button-preloader.button-loading > .preloader {
  opacity: 1;
  visibility: visible;
}
.ios .button {
  transition-duration: 100ms;
}
.ios .button.active-state {
  background-color: var(--f7-button-pressed-bg-color, rgba(var(--f7-theme-color-rgb), 0.15));
}
.ios .button-fill,
.ios .button-fill-ios {
  --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-tint));
}
.ios .button-small,
.ios .button-small-ios {
  transition-duration: 200ms;
}
.md .button {
  transition-duration: 300ms;
  transform: translate3d(0, 0, 0);
}
.md .button-fill,
.md .button-fill-md {
  --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, transparent);
}
/* === Touch Ripple === */
:root {
  --f7-touch-ripple-black: rgba(0, 0, 0, 0.1);
  --f7-touch-ripple-white: rgba(255, 255, 255, 0.15);
  --f7-touch-ripple-color: var(--f7-touch-ripple-black);
}
.dark {
  --f7-touch-ripple-color: var(--f7-touch-ripple-white);
}
.ripple,
.fab a,
.link,
.item-link,
.list-button,
.button,
.dialog-button,
.tab-link,
.radio,
.checkbox,
.actions-button,
.speed-dial-buttons a {
  -webkit-user-select: none;
  user-select: none;
}
.ripple-wave {
  left: 0;
  top: 0;
  position: absolute !important;
  border-radius: 50%;
  pointer-events: none;
  z-index: -1;
  padding: 0;
  margin: 0;
  font-size: 0;
  transform: translate3d(0px, 0px, 0) scale(0);
  background-color: var(--f7-touch-ripple-color);
  animation: touch-ripple-in 200ms forwards;
}
.ripple-wave.ripple-wave-inset {
  background-image: none;
  background-color: var(--f7-touch-ripple-color);
}
.ripple-wave.ripple-wave-out {
  transform: var(--f7-ripple-transform);
  animation: touch-ripple-out 250ms forwards !important;
}
.item-link .ripple-wave,
.list label.item-content .ripple-wave,
.list-button .ripple-wave,
.links-list a .ripple-wave,
.button .ripple-wave,
button .ripple-wave,
.dialog-button .ripple-wave,
.tab-link .ripple-wave,
.item-radio .ripple-wave,
.item-checkbox .ripple-wave,
.actions-button .ripple-wave,
.fab a .ripple-wave,
.stepper-button .ripple-wave,
.stepper-button-minus .ripple-wave,
.stepper-button-plus .ripple-wave,
.list.accordion-list .accordion-item-toggle .ripple-wave,
.photo-browser .toolbar .link .ripple-wave,
.ripple-blur .ripple-wave {
  animation: touch-ripple-in-blurred 250ms forwards;
  background-image: radial-gradient(closest-side circle at 50% 50%, var(--f7-touch-ripple-color) 50%, rgba(255, 255, 255, 0));
  background-color: transparent;
}
.checkbox .ripple-wave,
.radio .ripple-wave,
.data-table .sortable-cell .ripple-wave {
  z-index: 0;
}
[class*='ripple-color-'] {
  --f7-touch-ripple-color: var(--f7-theme-color-ripple-color);
}
@keyframes touch-ripple-in-blurred {
  from {
    transform: translate3d(0px, 0px, 0) scale(0.5);
  }
  to {
    transform: var(--f7-ripple-transform);
  }
}
@keyframes touch-ripple-in {
  from {
    transform: translate3d(0px, 0px, 0) scale(0);
  }
  to {
    transform: var(--f7-ripple-transform);
  }
}
@keyframes touch-ripple-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
/* === Icon === */
.f7-icons,
.material-icons {
  width: 1em;
  height: 1em;
}
i.icon {
  display: inline-block;
  vertical-align: middle;
  background-size: 100% auto;
  background-position: center;
  background-repeat: no-repeat;
  font-style: normal;
  position: relative;
}
.icon-back:after,
.icon-prev:after,
.icon-forward:after,
.icon-next:after {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
}
.icon[class*='color-'] {
  color: var(--f7-theme-color);
}
.ios .icon-back,
.ios .icon-prev,
.ios .icon-forward,
.ios .icon-next {
  width: 12px;
  height: 20px;
  line-height: 20px;
}
.ios .icon-back:after,
.ios .icon-prev:after,
.ios .icon-forward:after,
.ios .icon-next:after {
  line-height: inherit;
}
.ios .icon-prev:after,
.ios .icon-next:after {
  font-size: 16px;
}
.ios .icon-back:after,
.ios .icon-prev:after {
  content: 'chevron_left_ios';
}
.ios .icon-forward:after,
.ios .icon-next:after {
  content: 'chevron_right_ios';
}
.md .icon-back,
.md .icon-forward,
.md .icon-next,
.md .icon-prev {
  width: 24px;
  height: 24px;
}
.md .icon-back:after,
.md .icon-forward:after,
.md .icon-next:after,
.md .icon-prev:after {
  line-height: 1.2;
}
.md .icon-back:after {
  content: 'arrow_left_md';
}
.md .icon-forward:after {
  content: 'arrow_right_md';
}
.md .icon-next:after {
  content: 'chevron_right_md';
}
.md .icon-prev:after {
  content: 'chevron_left_md';
}
.custom-modal-backdrop {
  z-index: 10500;
}
.custom-modal-backdrop,
.actions-backdrop,
.dialog-backdrop,
.popover-backdrop,
.popup-backdrop,
.preloader-backdrop,
.sheet-backdrop,
.fab-backdrop {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 13000;
  visibility: hidden;
  opacity: 0;
  transition-duration: 400ms;
}
.custom-modal-backdrop.not-animated,
.actions-backdrop.not-animated,
.dialog-backdrop.not-animated,
.popover-backdrop.not-animated,
.popup-backdrop.not-animated,
.preloader-backdrop.not-animated,
.sheet-backdrop.not-animated,
.fab-backdrop.not-animated {
  transition-duration: 0ms;
}
.custom-modal-backdrop.backdrop-in,
.actions-backdrop.backdrop-in,
.dialog-backdrop.backdrop-in,
.popover-backdrop.backdrop-in,
.popup-backdrop.backdrop-in,
.preloader-backdrop.backdrop-in,
.sheet-backdrop.backdrop-in,
.fab-backdrop.backdrop-in {
  visibility: visible;
  opacity: 1;
}
/* === Dialog === */
:root {
  --f7-dialog-button-text-color: var(--f7-theme-color);
  --f7-dialog-button-text-align: center;
}
.ios {
  --f7-dialog-width: 270px;
  --f7-dialog-inner-padding: 16px;
  --f7-dialog-border-radius: 13px;
  --f7-dialog-text-align: center;
  --f7-dialog-font-size: 14px;
  --f7-dialog-title-text-color: inherit;
  --f7-dialog-title-font-size: 18px;
  --f7-dialog-title-font-weight: 600;
  --f7-dialog-title-line-height: inherit;
  --f7-dialog-button-font-size: 17px;
  --f7-dialog-button-height: 44px;
  --f7-dialog-button-letter-spacing: 0;
  --f7-dialog-button-font-weight: 400;
  --f7-dialog-button-text-transform: none;
  --f7-dialog-button-strong-bg-color: transparent;
  --f7-dialog-button-strong-text-color: var(--f7-theme-color);
  --f7-dialog-button-strong-font-weight: 500;
  --f7-dialog-input-border-radius: 4px;
  --f7-dialog-input-font-size: 14px;
  --f7-dialog-input-height: 32px;
  --f7-dialog-input-border-width: 1px;
  --f7-dialog-input-placeholder-color: #a9a9a9;
  --f7-dialog-preloader-size: 34px;
  --f7-dialog-input-bg-color: #fff;
  --f7-dialog-bg-color: rgba(255, 255, 255, 0.95);
  --f7-dialog-bg-color-rgb: 255, 255, 255;
  --f7-dialog-text-color: #000;
  --f7-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.1);
  --f7-dialog-button-strong-pressed-bg-color: rgba(0, 0, 0, 0.1);
  --f7-dialog-input-border-color: rgba(0, 0, 0, 0.3);
  --f7-dialog-border-divider-color: rgba(0, 0, 0, 0.2);
}
.ios .dark,
.ios.dark {
  --f7-dialog-text-color: #fff;
  --f7-dialog-bg-color: rgba(45, 45, 45, 0.95);
  --f7-dialog-bg-color-rgb: 45, 45, 45;
  --f7-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.2);
  --f7-dialog-button-strong-pressed-bg-color: rgba(0, 0, 0, 0.2);
  --f7-dialog-border-divider-color: rgba(255, 255, 255, 0.15);
  --f7-dialog-input-border-color: rgba(255, 255, 255, 0.15);
  --f7-dialog-input-bg-color: rgba(0, 0, 0, 0.5);
}
.md {
  --f7-dialog-width: 280px;
  --f7-dialog-inner-padding: 24px;
  --f7-dialog-border-radius: 28px;
  --f7-dialog-text-align: left;
  --f7-dialog-font-size: 14px;
  --f7-dialog-title-font-size: 24px;
  --f7-dialog-title-font-weight: 400;
  --f7-dialog-title-line-height: 1.3;
  --f7-dialog-button-font-size: 14px;
  --f7-dialog-button-height: 40px;
  --f7-dialog-button-letter-spacing: normal;
  --f7-dialog-button-font-weight: 500;
  --f7-dialog-button-text-transform: none;
  --f7-dialog-button-strong-font-weight: 500;
  --f7-dialog-input-border-radius: 0px;
  --f7-dialog-input-font-size: 16px;
  --f7-dialog-input-height: 36px;
  --f7-dialog-input-border-color: transparent;
  --f7-dialog-input-border-width: 0px;
  --f7-dialog-preloader-size: 32px;
  --f7-dialog-input-bg-color: transparent;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-dialog-button-pressed-bg-color: transparent;
  --f7-dialog-button-strong-bg-color: var(--f7-theme-color);
  --f7-dialog-button-strong-text-color: var(--f7-md-on-primary);
  --f7-dialog-button-strong-pressed-bg-color: transparent;
  --f7-dialog-bg-color: var(--f7-md-surface-3);
  --f7-dialog-input-placeholder-color: var(--f7-md-on-surface-variant);
  --f7-dialog-text-color: var(--f7-md-on-surface-variant);
  --f7-dialog-title-text-color: var(--f7-md-on-surface);
}
.dialog {
  position: absolute;
  z-index: 13500;
  left: 50%;
  margin-top: 0;
  top: 50%;
  overflow: hidden;
  opacity: 0;
  transform: translate3d(0, -50%, 0) scale(1.185);
  transition-property: transform, opacity;
  display: none;
  transition-duration: 400ms;
  width: var(--f7-dialog-width);
  margin-left: calc(-1 * var(--f7-dialog-width) / 2);
  border-radius: var(--f7-dialog-border-radius);
  text-align: var(--f7-dialog-text-align);
  color: var(--f7-dialog-text-color);
  font-size: var(--f7-dialog-font-size);
  background: var(--f7-dialog-bg-color);
  will-change: transform, opacity;
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-modals .dialog {
    background-color: rgba(var(--f7-dialog-bg-color-rgb), 0.8);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
            backdrop-filter: saturate(180%) blur(20px);
  }
}
.dialog.modal-in {
  opacity: 1;
  transform: translate3d(0, -50%, 0) scale(1);
}
.dialog.modal-out {
  opacity: 0;
  z-index: 13499;
}
.dialog.not-animated {
  transition-duration: 0ms;
}
.dialog-inner {
  position: relative;
  padding: var(--f7-dialog-inner-padding);
}
.dialog-title {
  color: var(--f7-dialog-title-text-color);
  font-size: var(--f7-dialog-title-font-size);
  font-weight: var(--f7-dialog-title-font-weight);
  line-height: var(--f7-dialog-title-line-height);
}
.dialog-buttons {
  position: relative;
  display: flex;
}
.dialog-buttons-vertical .dialog-buttons {
  display: block;
  height: auto !important;
}
.dialog-button {
  box-sizing: border-box;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--f7-dialog-button-text-color);
  font-size: var(--f7-dialog-button-font-size);
  height: var(--f7-dialog-button-height);
  line-height: var(--f7-dialog-button-height);
  letter-spacing: var(--f7-dialog-button-letter-spacing);
  text-align: var(--f7-dialog-button-text-align);
  font-weight: var(--f7-dialog-button-font-weight);
  text-transform: var(--f7-dialog-button-text-transform);
  display: block;
  cursor: pointer;
}
.dialog-button.active-state {
  background-color: var(--f7-dialog-button-pressed-bg-color);
}
.dialog-button-strong {
  background-color: var(--f7-dialog-button-strong-bg-color);
  color: var(--f7-dialog-button-strong-text-color);
  font-weight: var(--f7-dialog-button-strong-font-weight);
}
.dialog-button-strong.active-state {
  background-color: var(--f7-dialog-button-strong-pressed-bg-color);
}
.dialog-no-buttons .dialog-buttons {
  display: none;
}
.dialog-input-field {
  position: relative;
}
input.dialog-input[type] {
  box-sizing: border-box;
  margin: 0;
  margin-top: 15px;
  border-radius: var(--f7-dialog-input-border-radius);
  -webkit-appearance: none;
          appearance: none;
  width: 100%;
  display: block;
  font-family: inherit;
  box-shadow: none;
  font-size: var(--f7-dialog-input-font-size);
  height: var(--f7-dialog-input-height);
  background-color: var(--f7-dialog-input-bg-color);
  border: var(--f7-dialog-input-border-width) solid var(--f7-dialog-input-border-color);
}
input.dialog-input[type]::placeholder {
  color: var(--f7-dialog-input-placeholder-color);
}
.dialog-input-double input.dialog-input {
  border-radius: var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius) 0 0;
}
.dialog-input-double + .dialog-input-double input.dialog-input {
  border-radius: 0 0 var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius);
}
.dialog-preloader .preloader {
  --f7-preloader-size: var(--f7-dialog-preloader-size);
}
html.with-modal-dialog .page-content {
  overflow: hidden;
  -webkit-overflow-scrolling: auto;
}
.ios .dialog.modal-out {
  transform: translate3d(0, -50%, 0) scale(1);
}
.ios .dialog-inner {
  border-radius: var(--f7-dialog-border-radius) var(--f7-dialog-border-radius) 0 0;
}
.ios .dialog-inner:after {
  content: '';
  position: absolute;
  background-color: var(--f7-dialog-border-divider-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.ios .dialog-title + .dialog-text {
  margin-top: 5px;
}
.ios .dialog-buttons {
  height: 44px;
  justify-content: center;
}
.ios .dialog-button {
  width: 100%;
  padding: 0 5px;
  -webkit-box-flex: 1;
  -ms-flex: 1;
}
.ios .dialog-button:after {
  content: '';
  position: absolute;
  background-color: var(--f7-dialog-border-divider-color);
  display: block;
  z-index: 15;
  top: 0;
  right: 0;
  bottom: auto;
  left: auto;
  width: 1px;
  height: 100%;
  transform-origin: 100% 50%;
  transform: scaleX(calc(1 / var(--f7-device-pixel-ratio)));
}
.ios .dialog-button:first-child {
  border-radius: 0 0 0 var(--f7-dialog-border-radius);
}
.ios .dialog-button:last-child {
  border-radius: 0 0 var(--f7-dialog-border-radius) 0;
}
.ios .dialog-button:last-child:after {
  display: none !important;
}
.ios .dialog-button:first-child:last-child {
  border-radius: 0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius);
}
.ios .dialog-button[class*='color-'] {
  --f7-dialog-button-text-color: var(--f7-theme-color);
}
.ios .dialog-buttons-vertical .dialog-buttons {
  height: auto;
}
.ios .dialog-buttons-vertical .dialog-button {
  border-radius: 0;
}
.ios .dialog-buttons-vertical .dialog-button:after {
  content: '';
  position: absolute;
  background-color: var(--f7-dialog-border-divider-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.ios .dialog-buttons-vertical .dialog-button:last-child {
  border-radius: 0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius);
}
.ios .dialog-buttons-vertical .dialog-button:last-child:after {
  display: none !important;
}
.ios .dialog-no-buttons .dialog-inner {
  border-radius: var(--f7-dialog-border-radius);
}
.ios .dialog-no-buttons .dialog-inner:after {
  display: none !important;
}
.ios .dialog-input-field {
  margin-top: 15px;
}
.ios .dialog-input {
  padding: 0 5px;
}
.ios .dialog-input + .dialog-input {
  margin-top: 5px;
}
.ios .dialog-input-double + .dialog-input-double {
  margin-top: 0;
}
.ios .dialog-input-double + .dialog-input-double .dialog-input {
  border-top: 0;
  margin-top: 0;
}
.ios .dialog-preloader .dialog-title ~ .preloader,
.ios .dialog-preloader .dialog-text ~ .preloader {
  margin-top: 15px;
}
.ios .dialog-progress .dialog-title ~ .progressbar,
.ios .dialog-progress .dialog-text ~ .progressbar,
.ios .dialog-progress .dialog-title ~ .progressbar-infinite,
.ios .dialog-progress .dialog-text ~ .progressbar-infinite {
  margin-top: 15px;
}
.md .dialog.modal-out {
  transform: translate3d(0, -50%, 0) scale(0.815);
}
.md .dialog-title + .dialog-text {
  margin-top: 20px;
}
.md .dialog-text {
  line-height: 1.5;
}
.md .dialog-buttons {
  height: 64px;
  padding: 0px 24px 24px;
  overflow: hidden;
  box-sizing: border-box;
  justify-content: flex-end;
}
.md .dialog-button {
  --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.25);
  border-radius: 99px;
  min-width: 64px;
  padding: 0px 16px;
  border: none;
  transition-duration: 300ms;
  transform: translate3d(0, 0, 0);
}
.md .dialog-button + .dialog-button {
  margin-left: 8px;
}
.md .dialog-button-strong {
  --f7-touch-ripple-color: var(--f7-touch-ripple-white);
}
.md .dialog-button[class*='color-'] {
  --f7-dialog-button-text-color: var(--f7-theme-color);
}
.md .dialog-buttons-vertical .dialog-buttons {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.md .dialog-buttons-vertical .dialog-button + .dialog-button {
  margin-top: 8px;
  margin-left: 0;
}
.md .dialog-input {
  padding: 0;
  transition-duration: 200ms;
  position: relative;
}
.md .dialog-input + .dialog-input {
  margin-top: 16px;
}
.md .dialog-preloader .dialog-title,
.md .dialog-progress .dialog-title,
.md .dialog-preloader .dialog-inner,
.md .dialog-progress .dialog-inner {
  text-align: center;
}
.md .dialog-preloader .dialog-title ~ .preloader,
.md .dialog-preloader .dialog-text ~ .preloader {
  margin-top: 20px;
}
.md .dialog-progress .dialog-title ~ .progressbar,
.md .dialog-progress .dialog-text ~ .progressbar,
.md .dialog-progress .dialog-title ~ .progressbar-infinite,
.md .dialog-progress .dialog-text ~ .progressbar-infinite {
  margin-top: 16px;
}
/* === Popup === */
:root {
  --f7-popup-border-radius: 0px;
  --f7-popup-tablet-width: 630px;
  --f7-popup-tablet-height: 630px;
  --f7-popup-push-offset: var(--f7-safe-area-top);
  /*
  --f7-popup-tablet-border-radius: var(--f7-popup-border-radius);
  */
}
.ios {
  --f7-popup-tablet-border-radius: 5px;
  --f7-popup-transition-duration: 400ms;
  --f7-popup-transition-timing-function: initial;
  --f7-popup-push-border-radius: 10px;
}
.md {
  --f7-popup-tablet-border-radius: 28px;
  --f7-popup-transition-duration: 600ms;
  --f7-popup-transition-timing-function: cubic-bezier(0, 1, 0.2, 1);
  --f7-popup-push-border-radius: 28px;
}
.popup-backdrop {
  z-index: 10500;
}
.popup-backdrop-unique {
  z-index: 11000;
}
.popup {
  position: absolute;
  left: 0;
  top: 0px;
  width: 100%;
  height: 100%;
  display: none;
  box-sizing: border-box;
  transition-property: transform;
  transition-timing-function: var(--f7-popup-transition-timing-function);
  transform: translate3d(0, 100vh, 0);
  background: #fff;
  z-index: 11000;
  overflow: hidden;
  border-radius: var(--f7-popup-border-radius);
}
.dark .popup,
.popup.dark {
  background: #000;
}
.popup.modal-in,
.popup.modal-out {
  transition-duration: var(--f7-popup-transition-duration);
}
.popup.not-animated {
  transition-duration: 0ms;
}
.popup.modal-in {
  display: block;
  transform: translate3d(0, 0, 0);
}
.popup.modal-out {
  transform: translate3d(0, 100vh, 0);
}
.popup.swipe-close-to-top.modal-out {
  transform: translate3d(0, -100vh, 0);
}
@media (min-width: 630px) and (min-height: 630px) {
  .popup:not(.popup-tablet-fullscreen) {
    --f7-safe-area-top: 0px;
    --f7-safe-area-bottom: 0px;
    width: var(--f7-popup-tablet-width);
    height: var(--f7-popup-tablet-height);
    left: 50%;
    top: 50%;
    margin-left: calc(-1 * var(--f7-popup-tablet-width) / 2);
    margin-top: calc(-1 * var(--f7-popup-tablet-height) / 2);
    transform: translate3d(0, 100vh, 0);
    border-radius: var(--f7-popup-tablet-border-radius, var(--f7-popup-border-radius));
  }
  .popup:not(.popup-tablet-fullscreen).modal-in {
    transform: translate3d(0, 0, 0);
  }
  .popup:not(.popup-tablet-fullscreen).modal-out {
    transform: translate3d(0, 100vh, 0);
  }
  .popup:not(.popup-tablet-fullscreen).swipe-close-to-top.modal-out {
    transform: translate3d(0, -100vh, 0);
  }
  .popup:not(.popup-tablet-fullscreen).popup-behind {
    transform: translate3d(0, 0, 0) scale(0.9);
    pointer-events: none;
  }
  .popup:not(.popup-tablet-fullscreen).popup-behind.modal-out {
    transform: translate3d(0, 100vh, 0) scale(0.9);
  }
  html.with-modal-popup-push .popup-push:not(.popup-tablet-fullscreen) {
    margin-top: 0;
  }
}
html.with-modal-popup .framework7-root > .views .page-content,
html.with-modal-popup .framework7-root > .view .page-content,
html.with-modal-popup .framework7-root > .panel .page-content {
  overflow: hidden;
  -webkit-overflow-scrolling: auto;
}
html.with-modal-popup-push .popup-push,
html.with-modal-popup-push-closing .popup-push {
  top: calc(var(--f7-popup-push-offset) + 10px);
  height: calc(100% - var(--f7-popup-push-offset) - 10px);
  border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;
  --f7-safe-area-top: 0px;
}
html.with-modal-popup-push .popup-push .view,
html.with-modal-popup-push-closing .popup-push .view,
html.with-modal-popup-push .popup-push .page,
html.with-modal-popup-push-closing .popup-push .page {
  --f7-safe-area-top: 0px;
}
html.with-modal-popup-push .framework7-root,
html.with-modal-popup-push-closing .framework7-root {
  background: #000;
}
html.with-modal-popup-push .framework7-root > .views,
html.with-modal-popup-push-closing .framework7-root > .views,
html.with-modal-popup-push .framework7-root > .view,
html.with-modal-popup-push-closing .framework7-root > .view {
  transition-duration: var(--f7-popup-transition-duration);
  transition-timing-function: var(--f7-popup-transition-timing-function);
}
html.with-modal-popup-push.dark .framework7-root > .views:after,
html.with-modal-popup-push-closing.dark .framework7-root > .views:after,
html.with-modal-popup-push.dark .framework7-root > .view:after,
html.with-modal-popup-push-closing.dark .framework7-root > .view:after,
html.with-modal-popup-push .dark .framework7-root > .views:after,
html.with-modal-popup-push-closing .dark .framework7-root > .views:after,
html.with-modal-popup-push .dark .framework7-root > .view:after,
html.with-modal-popup-push-closing .dark .framework7-root > .view:after,
html.with-modal-popup-push .dark.framework7-root > .views:after,
html.with-modal-popup-push-closing .dark.framework7-root > .views:after,
html.with-modal-popup-push .dark.framework7-root > .view:after,
html.with-modal-popup-push-closing .dark.framework7-root > .view:after,
html.with-modal-popup-push .framework7-root > .views.dark:after,
html.with-modal-popup-push-closing .framework7-root > .views.dark:after,
html.with-modal-popup-push .framework7-root > .view.dark:after,
html.with-modal-popup-push-closing .framework7-root > .view.dark:after {
  content: '';
  position: absolute;
  pointer-events: none;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.1);
  z-index: 13000;
  border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;
  opacity: 1;
  animation: popup-dark-push-overlay-fade-in var(--f7-popup-transition-duration) forwards;
}
html.with-modal-popup-push .framework7-root > .views,
html.with-modal-popup-push .framework7-root > .view {
  border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;
  transform: translate3d(0, 0, 0px) scale(var(--f7-popup-push-scale, 1)) !important;
}
html.with-modal-popup-push .popup:after {
  content: '';
  pointer-events: none;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 13000;
  transition-duration: var(--f7-popup-transition-duration);
  transition-timing-function: var(--f7-popup-transition-timing-function);
  border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;
  opacity: 0;
}
html.with-modal-popup-push.dark .popup:after,
html.with-modal-popup-push .dark .popup:after,
html.with-modal-popup-push .dark.popup:after {
  background: rgba(255, 255, 255, 0.05);
}
html.with-modal-popup-push .popup-behind {
  transform: translate3d(0, 0px, 0px) scale(var(--f7-popup-push-scale, 1));
}
html.with-modal-popup-push .popup-behind.modal-out {
  transform: translate3d(0, 100vh, 0) scale(var(--f7-popup-push-scale, 1));
}
html.with-modal-popup-push .popup-behind:not(.popup-push) {
  border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;
}
html.with-modal-popup-push .popup-behind.popup-push {
  transform: translate3d(0, calc(0px - var(--f7-popup-push-offset) - 10px), 0px) scale(var(--f7-popup-push-scale, 1));
}
html.with-modal-popup-push .popup-behind.popup-push.modal-out {
  transform: translate3d(0, calc(0px - var(--f7-popup-push-offset) - 10px + 100vh), 0px) scale(var(--f7-popup-push-scale, 1));
}
html.with-modal-popup-push .popup-behind:after {
  opacity: 1;
  pointer-events: auto;
}
html.with-modal-popup-push-closing.dark .framework7-root > .views:after,
html.with-modal-popup-push-closing.dark .framework7-root > .view:after,
html.with-modal-popup-push-closing .dark .framework7-root > .views:after,
html.with-modal-popup-push-closing .dark .framework7-root > .view:after,
html.with-modal-popup-push-closing .dark.framework7-root > .views:after,
html.with-modal-popup-push-closing .dark.framework7-root > .view:after,
html.with-modal-popup-push-closing .framework7-root > .views.dark:after,
html.with-modal-popup-push-closing .framework7-root > .view.dark:after {
  animation: popup-dark-push-overlay-fade-out var(--f7-popup-transition-duration) forwards;
  animation-timing-function: var(--f7-popup-transition-timing-function);
}
@keyframes popup-dark-push-overlay-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes popup-dark-push-overlay-fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
/* === Login Screen === */
:root {
  --f7-login-screen-blocks-max-width: 480px;
  --f7-login-screen-title-text-align: center;
  --f7-login-screen-title-text-color: inherit;
  --f7-login-screen-title-letter-spacing: 0;
}
.ios {
  --f7-login-screen-blocks-margin-vertical: 25px;
  --f7-login-screen-transition-timing-function: initial;
  --f7-login-screen-transition-duration: 400ms;
  --f7-login-screen-title-font-weight: 600;
  --f7-login-screen-title-font-size: 28px;
  --f7-login-screen-content-bg-color: #fff;
  --f7-login-screen-bg-color: #fff;
}
.ios .dark,
.ios.dark {
  --f7-login-screen-bg-color: #000;
  --f7-login-screen-content-bg-color: #000;
}
.md {
  --f7-login-screen-transition-duration: 600ms;
  --f7-login-screen-transition-timing-function: cubic-bezier(0, 1, 0.2, 1);
  --f7-login-screen-blocks-margin-vertical: 24px;
  --f7-login-screen-title-font-weight: 400;
  --f7-login-screen-title-font-size: 28px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-login-screen-content-bg-color: var(--f7-md-surface);
  --f7-login-screen-bg-color: var(--f7-md-surface);
}
.login-screen {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: none;
  box-sizing: border-box;
  transition-property: transform;
  transform: translate3d(0, 100vh, 0);
  background: var(--f7-login-screen-bg-color);
  transition-timing-function: var(--f7-login-screen-transition-timing-function);
  z-index: 11000;
}
.login-screen.modal-in,
.login-screen.modal-out {
  transition-duration: var(--f7-login-screen-transition-duration);
}
.login-screen.not-animated {
  transition-duration: 0ms;
}
.login-screen.modal-in {
  display: block;
  transform: translate3d(0, 0, 0);
}
.login-screen.modal-out {
  transform: translate3d(0, 100%, 0);
}
.login-screen-content,
.login-screen-page,
.login-screen .page {
  background: var(--f7-login-screen-content-bg-color);
}
.login-screen-content .login-screen-title,
.login-screen-page .login-screen-title,
.login-screen-content .list,
.login-screen-page .list,
.login-screen-content .block,
.login-screen-page .block {
  margin: var(--f7-login-screen-blocks-margin-vertical) auto;
}
.login-screen-content .login-screen-title,
.login-screen-page .login-screen-title,
.login-screen-content .list,
.login-screen-page .list,
.login-screen-content .block,
.login-screen-page .block,
.login-screen-content .block-footer,
.login-screen-page .block-footer,
.login-screen-content .block-header,
.login-screen-page .block-header {
  max-width: var(--f7-login-screen-blocks-max-width);
}
.login-screen-content .list ul,
.login-screen-page .list ul {
  background: none;
}
.login-screen-content .list ul:before,
.login-screen-page .list ul:before,
.login-screen-content .list ul:after,
.login-screen-page .list ul:after {
  display: none !important;
}
.login-screen-content .block-footer,
.login-screen-page .block-footer,
.login-screen-content .block-header,
.login-screen-page .block-header {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.login-screen-title {
  text-align: var(--f7-login-screen-title-text-align);
  font-size: var(--f7-login-screen-title-font-size);
  font-weight: var(--f7-login-screen-title-font-weight);
  color: var(--f7-login-screen-title-text-color);
  letter-spacing: var(--f7-login-screen-title-letter-spacing);
}
.login-screen-page,
.login-screen > .view > .page,
.login-screen > .page {
  display: flex;
  flex-direction: column;
}
.login-screen-page .page-content,
.login-screen > .view > .page .page-content,
.login-screen > .page .page-content,
.login-screen-page .login-screen-content,
.login-screen > .view > .page .login-screen-content,
.login-screen > .page .login-screen-content {
  margin-top: auto;
  margin-bottom: auto;
  height: auto;
  max-height: 100%;
  width: 100%;
}
.dark .login-screen-content .list ul,
.dark .login-screen-content .block-strong,
.dark .login-screen-page .list ul,
.dark .login-screen-page .block-strong,
.dark.login-screen-page .list ul,
.dark.login-screen-page .block-strong {
  background-color: transparent;
}
/* === Popover === */
:root {
  --f7-popover-width: 260px;
}
.ios {
  --f7-popover-border-radius: 13px;
  --f7-popover-actions-icon-size: 28px;
  --f7-popover-transition-timing-function: initial;
  --f7-popover-bg-color: rgba(255, 255, 255, 0.95);
  --f7-popover-actions-label-text-color: rgba(0, 0, 0, 0.45);
}
.ios .dark,
.ios.dark {
  --f7-popover-bg-color: rgba(30, 30, 30, 0.95);
  --f7-popover-actions-label-text-color: rgba(255, 255, 255, 0.55);
}
.md {
  --f7-popover-transition-timing-function: cubic-bezier(0, 0.8, 0.34, 1);
  --f7-popover-border-radius: 28px;
  --f7-popover-actions-icon-size: 24px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-popover-bg-color: var(--f7-md-surface-3);
  --f7-popover-actions-label-text-color: var(--f7-md-on-surface-variant);
}
.popover-backdrop-unique {
  z-index: 13500;
}
.popover {
  width: var(--f7-popover-width);
  z-index: 13500;
  margin: 0;
  top: 0;
  opacity: 0;
  left: 0;
  position: absolute;
  display: none;
  transition-duration: 300ms;
  background-color: var(--f7-popover-bg-color);
  border-radius: var(--f7-popover-border-radius);
  will-change: transform, opacity;
  --f7-safe-area-top: 0px;
  --f7-safe-area-left: 0px;
  --f7-safe-area-right: 0px;
  --f7-safe-area-bottom: 0px;
}
.popover .list {
  margin: 0;
}
.popover .list ul {
  background: none;
}
.popover .list:first-child ul:before {
  display: none !important;
}
.popover .list:last-child ul:after {
  display: none !important;
}
.popover .list:first-child ul {
  border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0;
}
.popover .list:first-child li:first-child,
.popover .list:first-child li:first-child a,
.popover .list:first-child li:first-child > label {
  border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0;
}
.popover .list:last-child ul {
  border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius);
}
.popover .list:last-child li:last-child,
.popover .list:last-child li:last-child a,
.popover .list:last-child li:last-child > label {
  border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius);
}
.popover .list:first-child:last-child li:first-child:last-child,
.popover .list:first-child:last-child li:first-child:last-child a,
.popover .list:first-child:last-child li:first-child:last-child > label,
.popover .list:first-child:last-child ul {
  border-radius: var(--f7-popover-border-radius);
}
.popover .list + .list {
  margin-top: var(--f7-list-margin-vertical);
}
.popover.modal-in {
  opacity: 1;
}
.popover.not-animated {
  transition-duration: 0ms;
}
.popover,
.popover-backdrop {
  transition-timing-function: var(--f7-popover-transition-timing-function);
}
.popover-inner {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.popover-from-actions .item-link i.icon {
  width: var(--f7-popover-actions-icon-size);
  height: var(--f7-popover-actions-icon-size);
  font-size: var(--f7-popover-actions-icon-size);
}
.ios .popover-from-actions-strong {
  font-weight: 600;
}
.md .popover-from-actions-strong {
  font-weight: 500;
}
.popover-from-actions-label {
  line-height: 1.3;
  position: relative;
  display: flex;
  align-items: center;
  padding: var(--f7-actions-label-padding);
  color: var(--f7-popover-actions-label-text-color);
  font-size: var(--f7-actions-label-font-size);
  justify-content: var(--f7-actions-label-justify-content);
}
.popover-from-actions-label:after {
  content: '';
  position: absolute;
  background-color: var(--f7-list-item-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.popover-from-actions-label:last-child:after {
  display: none !important;
}
.md .popover-from-actions-label {
  justify-content: center;
}
.popover-arrow {
  width: 26px;
  height: 26px;
  position: absolute;
  left: -26px;
  top: 0;
  z-index: 100;
  overflow: hidden;
}
.popover-arrow:after {
  content: '';
  background: var(--f7-popover-bg-color);
  width: 26px;
  height: 26px;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 3px;
  transform: rotate(45deg);
}
.popover-arrow.on-left {
  left: -26px;
}
.popover-arrow.on-left:after {
  left: 19px;
  top: 0;
}
.popover-arrow.on-right {
  left: 100%;
}
.popover-arrow.on-right:after {
  left: -19px;
  top: 0;
}
.popover-arrow.on-top {
  left: 0;
  top: -26px;
}
.popover-arrow.on-top:after {
  left: 0;
  top: 19px;
}
.popover-arrow.on-bottom {
  left: 0;
  top: 100%;
}
.popover-arrow.on-bottom:after {
  left: 0;
  top: -19px;
}
.ios .popover {
  transform: none;
  transition-property: opacity;
}
.md .popover {
  transform: scale(0.85, 0.6);
  transition-property: opacity, transform;
}
.md .popover.modal-in {
  opacity: 1;
  transform: scale(1);
}
.md .popover.modal-out {
  opacity: 0;
  transform: scale(1);
}
.md .popover-on-top {
  transform-origin: center bottom;
}
.md .popover-on-top.popover-on-right {
  transform-origin: left bottom;
}
.md .popover-on-top.popover-on-left {
  transform-origin: right bottom;
}
.md .popover-on-middle {
  transform-origin: center center;
}
.md .popover-on-middle.popover-on-right {
  transform-origin: left center;
}
.md .popover-on-middle.popover-on-left {
  transform-origin: right center;
}
.md .popover-on-bottom {
  transform-origin: center top;
}
.md .popover-on-bottom.popover-on-right {
  transform-origin: left top;
}
.md .popover-on-bottom.popover-on-left {
  transform-origin: right top;
}
/* === Actions === */
:root {
  --f7-actions-grid-button-font-size: 12px;
  --f7-actions-grid-button-icon-size: 48px;
}
.ios {
  --f7-actions-transition-timing-function: initial;
  --f7-actions-border-radius: 13px;
  /*
  --f7-actions-button-text-color: var(--f7-theme-color);
  */
  --f7-actions-grid-button-text-color: #757575;
  --f7-actions-button-padding: 0px;
  --f7-actions-button-text-align: center;
  --f7-actions-button-height: 57px;
  --f7-actions-button-height-landscape: 44px;
  --f7-actions-button-font-size: 20px;
  --f7-actions-button-icon-size: 28px;
  --f7-actions-button-justify-content: center;
  --f7-actions-label-padding: 8px 10px;
  --f7-actions-label-font-weight: 400;
  --f7-actions-label-font-size: 13px;
  --f7-actions-label-justify-content: center;
  --f7-actions-group-border-color: transparent;
  --f7-actions-group-margin: 8px;
  --f7-actions-bg-color: rgba(255, 255, 255, 0.95);
  --f7-actions-bg-color-rgb: 255, 255, 255;
  --f7-actions-button-border-color: rgba(0, 0, 0, 0.2);
  --f7-actions-button-pressed-bg-color: rgba(230, 230, 230, 0.9);
  --f7-actions-button-pressed-bg-color-rgb: 230, 230, 230;
  --f7-actions-label-text-color: #8a8a8a;
}
.ios .dark,
.ios.dark {
  --f7-actions-bg-color: rgba(45, 45, 45, 0.95);
  --f7-actions-bg-color-rgb: 45, 45, 45;
  --f7-actions-button-border-color: rgba(255, 255, 255, 0.15);
  --f7-actions-button-pressed-bg-color: rgba(50, 50, 50, 0.9);
  --f7-actions-button-pressed-bg-color-rgb: 50, 50, 50;
  --f7-actions-label-text-color: rgba(255, 255, 255, 0.55);
}
.md {
  --f7-actions-transition-timing-function: cubic-bezier(0, 0.8, 0.34, 1);
  --f7-actions-border-radius: 16px;
  --f7-actions-button-border-color: transparent;
  --f7-actions-button-padding: 0 16px;
  --f7-actions-button-text-align: left;
  --f7-actions-button-height: 48px;
  --f7-actions-button-height-landscape: 48px;
  --f7-actions-button-font-size: 16px;
  --f7-actions-button-icon-size: 24px;
  --f7-actions-button-justify-content: space-between;
  --f7-actions-label-padding: 12px 16px;
  --f7-actions-label-font-size: 14px;
  --f7-actions-label-font-weight: 500;
  --f7-actions-label-justify-content: flex-start;
  --f7-actions-group-margin: 0px;
  --f7-actions-button-pressed-bg-color: #e5e5e5;
}
.md .dark,
.md.dark {
  --f7-actions-button-pressed-bg-color: #2e2e2e;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-actions-button-text-color: var(--f7-md-on-surface);
  --f7-actions-bg-color: var(--f7-md-surface-3);
  --f7-actions-group-border-color: var(--f7-md-outline);
  --f7-actions-label-text-color: var(--f7-theme-color);
  --f7-actions-grid-button-text-color: var(--f7-md-on-surface);
}
.actions-backdrop-unique {
  z-index: 13500;
}
.actions-modal {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 13500;
  width: 100%;
  transform: translate3d(0, 100%, 0);
  display: none;
  max-height: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  transition-property: transform;
  will-change: transform;
}
.actions-modal.modal-in,
.actions-modal.modal-out {
  transition-duration: 300ms;
}
.actions-modal.not-animated {
  transition-duration: 0ms;
}
.ios .actions-modal.modal-in {
  transform: translate3d(0, calc(-1 * var(--f7-safe-area-bottom)), 0);
}
.md .actions-modal.modal-in {
  transform: translate3d(0, 0, 0);
}
.actions-modal.modal-out {
  z-index: 13499;
  transform: translate3d(0, 100%, 0);
}
@media (min-width: 496px) {
  .actions-modal {
    width: 480px;
    left: 50%;
    margin-left: -240px;
  }
}
@media (orientation: landscape) {
  .actions-modal {
    --f7-actions-button-height: var(--f7-actions-button-height-landscape);
  }
}
.actions-backdrop,
.actions-modal {
  transition-timing-function: var(--f7-actions-transition-timing-function);
}
.actions-group {
  overflow: hidden;
  position: relative;
  margin: var(--f7-actions-group-margin);
  transform: translate3d(0, 0, 0);
}
.actions-group:after {
  content: '';
  position: absolute;
  background-color: var(--f7-actions-group-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.actions-group:last-child:after {
  display: none !important;
}
.actions-button,
.actions-label {
  width: 100%;
  font-weight: normal;
  margin: 0;
  box-sizing: border-box;
  display: block;
  position: relative;
  overflow: hidden;
  text-align: var(--f7-actions-button-text-align);
}
.actions-button:after,
.actions-label:after {
  content: '';
  position: absolute;
  background-color: var(--f7-actions-button-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.actions-button a,
.actions-label a {
  -webkit-text-decoration: none;
  text-decoration: none;
  color: inherit;
  display: block;
}
.actions-button {
  cursor: pointer;
  display: flex;
  color: var(--f7-actions-button-text-color, var(--f7-theme-color));
  font-size: var(--f7-actions-button-font-size);
  height: var(--f7-actions-button-height);
  line-height: var(--f7-actions-button-height);
  padding: var(--f7-actions-button-padding);
  justify-content: var(--f7-actions-button-justify-content);
  z-index: 10;
}
.actions-button.active-state {
  background-color: var(--f7-actions-button-pressed-bg-color) !important;
}
.actions-button[class*='color-'] {
  color: var(--f7-theme-color);
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-modals .actions-button.active-state {
    background-color: rgba(var(--f7-actions-button-pressed-bg-color-rgb), 0.8);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
            backdrop-filter: saturate(180%) blur(20px);
  }
}
.actions-button-media {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.actions-button-media i.icon {
  width: var(--f7-actions-button-icon-size);
  height: var(--f7-actions-button-icon-size);
  font-size: var(--f7-actions-button-icon-size);
}
.actions-button a,
.actions-button-text {
  position: relative;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.actions-button-text {
  width: 100%;
  flex-shrink: 1;
  text-align: var(--f7-actions-button-text-align);
}
.actions-label {
  line-height: 1.3;
  display: flex;
  align-items: center;
  font-size: var(--f7-actions-label-font-size);
  font-weight: var(--f7-actions-label-font-weight);
  color: var(--f7-actions-label-text-color);
  padding: var(--f7-actions-label-padding);
  justify-content: var(--f7-actions-label-justify-content);
  min-height: var(--f7-actions-label-min-height, var(--f7-actions-button-height));
}
.actions-label[class*=' color-'] {
  --f7-actions-label-text-color: var(--f7-theme-color);
}
.actions-grid .actions-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-top: 0;
}
.actions-grid .actions-group:not(:last-child) {
  margin-bottom: 0;
}
.actions-grid .actions-button,
.actions-grid .actions-label {
  background: none;
}
.actions-grid .actions-button {
  width: 33.33333333%;
  display: block;
  color: var(--f7-actions-grid-button-text-color);
  height: auto;
  line-height: 1;
  padding: 16px;
}
.actions-grid .actions-button:after {
  display: none !important;
}
.actions-grid .actions-button-media {
  margin-left: auto !important;
  margin-right: auto !important;
  width: var(--f7-actions-grid-button-icon-size);
  height: var(--f7-actions-grid-button-icon-size);
}
.actions-grid .actions-button-media i.icon {
  width: var(--f7-actions-grid-button-icon-size);
  height: var(--f7-actions-grid-button-icon-size);
  font-size: var(--f7-actions-grid-button-icon-size);
}
.actions-grid .actions-button-text {
  margin-left: 0 !important;
  text-align: center !important;
  margin-top: 8px;
  line-height: 1.33em;
  height: 1.33em;
  font-size: var(--f7-actions-grid-button-font-size);
}
.ios .actions-group {
  border-radius: var(--f7-actions-border-radius);
}
.ios .actions-button,
.ios .actions-label {
  background: var(--f7-actions-bg-color);
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-modals .ios .actions-button,
  .ios-translucent-modals .ios .actions-label {
    background-color: rgba(var(--f7-actions-bg-color-rgb), 0.8);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
            backdrop-filter: saturate(180%) blur(20px);
  }
}
.ios .actions-button:first-child,
.ios .actions-label:first-child {
  border-radius: var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0;
}
.ios .actions-button:last-child,
.ios .actions-label:last-child {
  border-radius: 0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius);
}
.ios .actions-button:last-child:after,
.ios .actions-label:last-child:after {
  display: none !important;
}
.ios .actions-button:first-child:last-child,
.ios .actions-label:first-child:last-child {
  border-radius: var(--f7-actions-border-radius);
}
.ios .actions-button b,
.ios .actions-label b,
.ios .actions-button.actions-button-strong,
.ios .actions-label.actions-button-strong {
  font-weight: 600;
}
.ios .actions-grid .actions-group {
  border-radius: 0;
  background: var(--f7-actions-bg-color);
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-modals .ios .actions-grid .actions-group {
    background-color: rgba(var(--f7-actions-bg-color-rgb), 0.8);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
            backdrop-filter: saturate(180%) blur(20px);
  }
}
.ios .actions-grid .actions-group:first-child {
  border-radius: var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0;
}
.ios .actions-grid .actions-group:last-child {
  border-radius: 0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius);
}
.ios .actions-grid .actions-group:first-child:last-child {
  border-radius: var(--f7-actions-border-radius);
}
.ios .actions-grid .actions-button,
.ios .actions-grid .actions-label {
  border-radius: 0 !important;
}
.ios .actions-button-media {
  margin-left: 16px;
}
.ios .actions-button-media + .actions-button-text {
  text-align: left;
  margin-left: 16px;
}
.md .actions-modal {
  background-color: var(--f7-actions-bg-color);
  border-radius: var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0;
  padding-bottom: var(--f7-safe-area-bottom);
}
.md .actions-button {
  transition-duration: 300ms;
}
.md .actions-button b,
.md .actions-label b,
.md .actions-button.actions-button-strong,
.md .actions-label.actions-button-strong {
  font-weight: 500;
}
.md .actions-button-media {
  min-width: 40px;
}
.md .actions-button-media + .actions-button-text {
  margin-left: 16px;
}
/* === Sheet Modal === */
:root {
  --f7-sheet-height: 260px;
  --f7-sheet-push-offset: var(--f7-safe-area-top);
}
.ios {
  --f7-sheet-border-radius: 0px;
  --f7-sheet-border-color: var(--f7-bars-border-color);
  --f7-sheet-transition-timing-function: initial;
  --f7-sheet-push-border-radius: 10px;
  --f7-sheet-transition-duration: 300ms;
  --f7-sheet-bg-color: #fff;
}
.ios .dark,
.ios.dark {
  --f7-sheet-bg-color: #202020;
}
.md {
  --f7-sheet-border-radius: 16px;
  --f7-sheet-push-border-radius: 16px;
  --f7-sheet-border-color: transparent;
  --f7-sheet-transition-timing-function: cubic-bezier(0, 0.8, 0.34, 1);
  --f7-sheet-transition-duration: 400ms;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-sheet-bg-color: var(--f7-md-surface);
}
.sheet-backdrop {
  z-index: 11000;
}
.sheet-backdrop-unique {
  z-index: 12500;
}
.sheet-modal {
  overflow: hidden;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: var(--f7-sheet-height);
  display: none;
  box-sizing: border-box;
  transition-property: transform;
  transform: translate3d(0, 100%, 0);
  background: var(--f7-sheet-bg-color);
  z-index: 12500;
  will-change: transform, opacity;
}
.sheet-modal.modal-in,
.sheet-modal.modal-out {
  transition-duration: var(--f7-sheet-transition-duration);
}
.sheet-modal.not-animated {
  transition-duration: 0ms;
}
.sheet-modal.modal-in {
  display: block;
  transform: translate3d(0, 0, 0);
}
.sheet-modal.modal-in-swipe-step,
.sheet-modal.modal-in-breakpoint {
  display: block;
  transform: translate3d(0, var(--f7-sheet-breakpoint, var(--f7-sheet-swipe-step, 0)), 0);
}
.sheet-modal.modal-out {
  transform: translate3d(0, 100%, 0);
}
.sheet-modal .sheet-modal-inner {
  height: 100%;
  position: relative;
  overflow: hidden;
}
.sheet-modal .toolbar {
  --f7-safe-area-bottom: 0px;
  position: relative;
  width: 100%;
}
.sheet-modal .toolbar:after,
.sheet-modal .toolbar:before {
  display: none;
}
.sheet-modal .toolbar + .sheet-modal-inner {
  height: calc(100% - var(--f7-toolbar-height));
}
.sheet-modal .toolbar + .sheet-modal-inner .page-content {
  --f7-page-toolbar-top-offset: 0px;
  --f7-page-toolbar-bottom-offset: 0px;
}
.sheet-backdrop,
.sheet-modal {
  transition-timing-function: var(--f7-sheet-transition-timing-function);
}
.sheet-modal-top {
  border-radius: 0 0 var(--f7-sheet-border-radius) var(--f7-sheet-border-radius);
}
.sheet-modal-top:after {
  content: '';
  position: absolute;
  background-color: var(--f7-sheet-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.sheet-modal-top:after {
  z-index: 700;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transform-style: preserve-3d;
}
.sheet-modal-bottom,
.sheet-modal:not(.sheet-modal-top) {
  --f7-safe-area-top: 0px;
  border-radius: var(--f7-sheet-border-radius) var(--f7-sheet-border-radius) 0 0;
}
.sheet-modal-bottom:before,
.sheet-modal:not(.sheet-modal-top):before {
  content: '';
  position: absolute;
  background-color: var(--f7-sheet-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.sheet-modal-bottom:before,
.sheet-modal:not(.sheet-modal-top):before {
  z-index: 700;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transform-style: preserve-3d;
}
.sheet-modal-top {
  --f7-safe-area-bottom: 0px;
  bottom: auto;
  top: 0;
  transform: translate3d(0, -100%, 0);
}
.sheet-modal-top.modal-out {
  transform: translate3d(0, -100%, 0);
}
.sheet-modal-top .toolbar-bottom {
  position: absolute;
}
.sheet-modal-top .page-content {
  padding-top: var(--f7-safe-area-top);
}
html.with-modal-sheet-push .sheet-modal-push,
html.with-modal-sheet-push-closing .sheet-modal-push {
  --f7-sheet-border-color: transparent;
  border-radius: var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius) 0 0;
  overflow: hidden;
}
html.with-modal-sheet-push .sheet-modal-push .view,
html.with-modal-sheet-push-closing .sheet-modal-push .view,
html.with-modal-sheet-push .sheet-modal-push .page,
html.with-modal-sheet-push-closing .sheet-modal-push .page {
  --f7-safe-area-top: 0px;
}
html.with-modal-sheet-push .sheet-modal-push.sheet-modal-top,
html.with-modal-sheet-push-closing .sheet-modal-push.sheet-modal-top {
  border-radius: 0 0 var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius);
}
html.with-modal-sheet-push .framework7-root,
html.with-modal-sheet-push-closing .framework7-root {
  background: #000;
}
html.with-modal-sheet-push .framework7-root > .views,
html.with-modal-sheet-push-closing .framework7-root > .views,
html.with-modal-sheet-push .framework7-root > .view,
html.with-modal-sheet-push-closing .framework7-root > .view {
  transition-duration: var(--f7-sheet-transition-duration);
  transition-timing-function: var(--f7-sheet-transition-timing-function);
}
html.with-modal-sheet-push.dark .framework7-root > .views:after,
html.with-modal-sheet-push-closing.dark .framework7-root > .views:after,
html.with-modal-sheet-push.dark .framework7-root > .view:after,
html.with-modal-sheet-push-closing.dark .framework7-root > .view:after,
html.with-modal-sheet-push .dark .framework7-root > .views:after,
html.with-modal-sheet-push-closing .dark .framework7-root > .views:after,
html.with-modal-sheet-push .dark .framework7-root > .view:after,
html.with-modal-sheet-push-closing .dark .framework7-root > .view:after,
html.with-modal-sheet-push .dark.framework7-root > .views:after,
html.with-modal-sheet-push-closing .dark.framework7-root > .views:after,
html.with-modal-sheet-push .dark.framework7-root > .view:after,
html.with-modal-sheet-push-closing .dark.framework7-root > .view:after,
html.with-modal-sheet-push .framework7-root > .views.dark:after,
html.with-modal-sheet-push-closing .framework7-root > .views.dark:after,
html.with-modal-sheet-push .framework7-root > .view.dark:after,
html.with-modal-sheet-push-closing .framework7-root > .view.dark:after {
  content: '';
  position: absolute;
  pointer-events: none;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.1);
  z-index: 13000;
  opacity: 1;
  transition-duration: var(--f7-sheet-transition-duration);
  transition-timing-function: var(--f7-sheet-transition-timing-function);
  animation: sheet-dark-push-overlay-fade-in var(--f7-sheet-transition-duration);
  animation-timing-function: var(--f7-sheet-transition-timing-function);
}
html.with-modal-sheet-push .framework7-root > .views,
html.with-modal-sheet-push .framework7-root > .view {
  border-radius: var(--f7-sheet-push-border-radius);
  transform: translate3d(0, 0, 0px) scale(var(--f7-sheet-push-scale, 1)) !important;
}
html.with-modal-sheet-push-closing.dark .framework7-root > .views:after,
html.with-modal-sheet-push-closing.dark .framework7-root > .view:after,
html.with-modal-sheet-push-closing .dark .framework7-root > .views:after,
html.with-modal-sheet-push-closing .dark .framework7-root > .view:after,
html.with-modal-sheet-push-closing .dark.framework7-root > .views:after,
html.with-modal-sheet-push-closing .dark.framework7-root > .view:after,
html.with-modal-sheet-push-closing .framework7-root > .views.dark:after,
html.with-modal-sheet-push-closing .framework7-root > .view.dark:after {
  opacity: 0;
  animation: none;
}
@keyframes sheet-dark-push-overlay-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.md .sheet-modal .toolbar a.link:not(.tab-link) {
  flex-shrink: 0;
}
/* === Toast === */
:root {
  --f7-toast-font-size: 14px;
  --f7-toast-icon-size: 48px;
  --f7-toast-max-width: 568px;
}
.ios {
  --f7-toast-text-color: #fff;
  --f7-toast-bg-color: rgba(0, 0, 0, 0.75);
  --f7-toast-bg-color-rgb: 0, 0, 0;
  --f7-toast-padding-horizontal: 16px;
  --f7-toast-padding-vertical: 12px;
  --f7-toast-border-radius: 8px;
  --f7-toast-button-min-width: 64px;
}
.md {
  --f7-toast-padding-horizontal: 24px;
  --f7-toast-padding-vertical: 14px;
  --f7-toast-border-radius: 16px;
  --f7-toast-button-min-width: 64px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-toast-text-color: var(--f7-md-on-surface);
  --f7-toast-bg-color: var(--f7-md-surface-5);
}
.toast {
  transition-property: transform, opacity;
  position: absolute;
  max-width: var(--f7-toast-max-width);
  z-index: 20000;
  color: var(--f7-toast-text-color);
  font-size: var(--f7-toast-font-size);
  box-sizing: border-box;
  background-color: var(--f7-toast-bg-color);
  opacity: 0;
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-modals .toast {
    background-color: rgba(var(--f7-toast-bg-color-rgb), 0.8);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
            backdrop-filter: saturate(180%) blur(20px);
  }
}
.toast.modal-in {
  opacity: 1;
}
.toast .toast-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
  padding: var(--f7-toast-padding-vertical) var(--f7-toast-padding-horizontal);
}
.toast .toast-text {
  line-height: 20px;
  flex-shrink: 1;
  min-width: 0;
}
.toast .toast-button {
  flex-shrink: 0;
  min-width: var(--f7-toast-button-min-width);
  margin-top: -8px;
  margin-bottom: -8px;
}
.toast.toast-with-icon .toast-content {
  display: block;
  text-align: center;
}
.toast.toast-with-icon .toast-text {
  text-align: center;
}
.toast.toast-with-icon .toast-icon .f7-icons,
.toast.toast-with-icon .toast-icon .material-icons {
  font-size: var(--f7-toast-icon-size);
}
.toast.toast-center {
  top: 50%;
}
.toast.toast-top {
  margin-top: var(--f7-safe-area-top);
}
.ios .toast {
  transition-duration: 300ms;
  width: 100%;
  left: 0;
}
.ios .toast.toast-top {
  top: 0;
  transform: translate3d(0, -100%, 0);
}
.ios .toast.toast-top.modal-in {
  transform: translate3d(0, 0%, 0);
}
.ios .toast.toast-center {
  width: auto;
  left: 50%;
  border-radius: var(--f7-toast-border-radius);
  transform: translate3d(-50%, -50%, 0);
}
.ios .toast.toast-center.modal-in {
  transform: translate3d(-50%, -50%, 0);
}
.ios .toast.toast-bottom {
  bottom: 0;
  transform: translate3d(0, 100%, 0);
}
.ios .toast.toast-bottom.modal-in {
  transform: translate3d(0, 0%, 0);
}
@media (max-width: 568px) {
  .ios .toast.toast-top {
    margin-top: 0;
  }
  .ios .toast.toast-top .toast-content {
    padding-top: calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-top));
  }
  .ios .toast.toast-bottom .toast-content {
    padding-bottom: calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-bottom));
  }
}
@media (min-width: 569px) {
  .ios .toast {
    left: 50%;
    margin-left: calc(-1 * var(--f7-toast-max-width) / 2);
    border-radius: var(--f7-toast-border-radius);
  }
  .ios .toast.toast-top {
    top: 16px;
  }
  .ios .toast.toast-center {
    margin-left: 0;
  }
  .ios .toast.toast-bottom {
    margin-bottom: calc(16px + var(--f7-safe-area-bottom));
  }
}
@media (min-width: 1024px) {
  .ios .toast {
    margin-left: 0;
    width: auto;
  }
  .ios .toast.toast-horizontal-left {
    left: 16px;
  }
  .ios .toast.toast-horizontal-right {
    left: auto;
    right: 16px;
  }
  .ios .toast.toast-horizontal-center {
    left: 50%;
    width: var(--f7-toast-max-width);
    margin-left: calc(-1 * var(--f7-toast-max-width) / 2);
  }
}
.ios .toast-button {
  margin-left: 16px;
  margin-right: calc(-1 * var(--f7-button-padding-horizontal));
}
.md .toast {
  transition-duration: 200ms;
  border-radius: var(--f7-toast-border-radius);
  width: calc(100% - 16px);
  transform: scale(0.9);
  left: 8px;
}
.md .toast.modal-in {
  transform: scale(1);
}
.md .toast.modal-out {
  transform: scale(1);
}
.md .toast.toast-top {
  top: 8px;
}
.md .toast.toast-center {
  left: 50%;
  width: auto;
  transform: scale(0.9) translate3d(-55%, -55%, 0);
}
.md .toast.toast-center.modal-in {
  transform: scale(1) translate3d(-50%, -50%, 0);
}
.md .toast.toast-center.modal-out {
  transform: scale(1) translate3d(-50%, -50%, 0);
}
.md .toast.toast-bottom {
  bottom: calc(8px + var(--f7-safe-area-bottom));
}
@media (min-width: 584px) {
  .md .toast {
    left: 50%;
    margin-left: calc(-1 * var(--f7-toast-max-width) / 2);
  }
  .md .toast.toast-center {
    margin-left: 0;
  }
}
@media (min-width: 1024px) {
  .md .toast {
    margin-left: 0;
    width: auto;
  }
  .md .toast.toast-horizontal-left {
    left: 24px;
  }
  .md .toast.toast-horizontal-right {
    left: auto;
    right: 24px;
  }
  .md .toast.toast-horizontal-center {
    left: 50%;
    width: var(--f7-toast-max-width);
    margin-left: calc(-1 * var(--f7-toast-max-width) / 2);
  }
  .md .toast.toast-bottom {
    bottom: calc(24px + var(--f7-safe-area-bottom));
  }
  .md .toast.toast-top {
    top: 24px;
  }
}
.md .toast-button {
  margin-left: 16px;
  margin-right: -8px;
}
/* === Preloader === */
:root {
  --f7-preloader-modal-padding: 8px;
  --f7-preloader-modal-bg-color: rgba(0, 0, 0, 0.8);
}
.ios {
  --f7-preloader-color: #6c6c6c;
  --f7-preloader-size: 20px;
  --f7-preloader-modal-preloader-size: 34px;
  --f7-preloader-modal-border-radius: 5px;
}
.md {
  --f7-preloader-color: #757575;
  --f7-preloader-size: 32px;
  --f7-preloader-modal-preloader-size: 32px;
  --f7-preloader-modal-border-radius: 4px;
}
.preloader {
  display: inline-block;
  vertical-align: middle;
  width: var(--f7-preloader-size);
  height: var(--f7-preloader-size);
  font-size: 0;
  position: relative;
}
.preloader .preloader-inner {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
}
/* === Preloader Modal === */
.preloader-backdrop {
  visibility: visible;
  opacity: 0;
  background: none;
  z-index: 14000;
}
.preloader-modal {
  position: absolute;
  left: 50%;
  top: 50%;
  padding: var(--f7-preloader-modal-padding);
  background: var(--f7-preloader-modal-bg-color);
  z-index: 14500;
  transform: translateX(-50%) translateY(-50%);
  border-radius: var(--f7-preloader-modal-border-radius);
}
.preloader-modal .preloader {
  --f7-preloader-size: var(--f7-preloader-modal-preloader-size);
  display: block !important;
}
html.with-modal-preloader .page-content,
.with-modal-preloader .page-content,
.with-modal-preloader.page-content {
  overflow: hidden;
  -webkit-overflow-scrolling: auto;
}
.preloader[class*='color-'] {
  --f7-preloader-color: var(--f7-theme-color);
}
.preloader.color-white {
  --f7-preloader-color: #fff;
}
.preloader.color-black {
  --f7-preloader-color: #000;
}
.ios .preloader {
  color: var(--f7-preloader-color);
}
.ios .preloader-inner {
  animation: ios-preloader-spin 1s steps(8, end) infinite;
}
.ios .preloader-inner-line {
  display: block;
  width: 11.6%;
  height: 33.33%;
  border-radius: 100px;
  background: currentColor;
  position: absolute;
  left: 50%;
  top: 50%;
  transform-origin: center 150%;
}
.ios .preloader-multi-color .preloader-inner-line,
.ios .preloader.color-multi .preloader-inner-line {
  animation: ios-preloader-multicolor 3s linear infinite;
}
.ios .preloader-inner-line:nth-child(1) {
  transform: translate(-50%, -150%) rotate(0deg);
  opacity: 0.27;
}
.ios .preloader-inner-line:nth-child(2) {
  transform: translate(-50%, -150%) rotate(45deg);
  opacity: 0.35285714;
}
.ios .preloader-inner-line:nth-child(3) {
  transform: translate(-50%, -150%) rotate(90deg);
  opacity: 0.43571429;
}
.ios .preloader-inner-line:nth-child(4) {
  transform: translate(-50%, -150%) rotate(135deg);
  opacity: 0.51857143;
}
.ios .preloader-inner-line:nth-child(5) {
  transform: translate(-50%, -150%) rotate(180deg);
  opacity: 0.60142857;
}
.ios .preloader-inner-line:nth-child(6) {
  transform: translate(-50%, -150%) rotate(225deg);
  opacity: 0.68428571;
}
.ios .preloader-inner-line:nth-child(7) {
  transform: translate(-50%, -150%) rotate(270deg);
  opacity: 0.76714286;
}
.ios .preloader-inner-line:nth-child(8) {
  transform: translate(-50%, -150%) rotate(315deg);
  opacity: 0.85;
}
@keyframes ios-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes ios-preloader-multicolor {
  0%,
  100% {
    background-color: #2196f3;
  }
  25% {
    background-color: #ff3b30;
  }
  50% {
    background-color: #4cd964;
  }
  75% {
    background-color: #ff9500;
  }
}
.md .preloader {
  color: var(--f7-preloader-color);
}
.md .preloader-inner {
  animation: md-preloader-rotate 1.4s linear infinite;
}
.md .preloader-inner circle {
  fill: none;
  stroke: currentColor;
  animation: md-preloader-circle-rotate 5.6s ease-in-out infinite;
  stroke-dasharray: 100px;
  stroke-dashoffset: 80px;
  stroke-width: 4;
  transform: rotate(-90deg);
  transform-origin: 18px 18px;
}
.md .preloader-multi-color circle,
.md .preloader.color-multi circle {
  animation: md-preloader-circle-rotate 5.6s ease-in-out infinite, md-preloader-multicolor 5.6s ease-in-out infinite;
}
@keyframes md-preloader-multicolor {
  0%,
  100% {
    stroke: #4285f4;
  }
  75% {
    stroke: #1b9a59;
  }
  50% {
    stroke: #f7c223;
  }
  25% {
    stroke: #de3e35;
  }
}
@keyframes md-preloader-rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes md-preloader-circle-rotate {
  0% {
    transform: rotate(-90deg);
    stroke-dashoffset: 100px;
  }
  12.5% {
    transform: rotate(-90deg);
    stroke-dashoffset: 25px;
  }
  25% {
    stroke-dashoffset: 100px;
    transform: rotate(180deg);
  }
  25.1% {
    transform: rotate(-180deg);
    stroke-dashoffset: 100px;
  }
  37.5% {
    transform: rotate(-180deg);
    stroke-dashoffset: 25px;
  }
  50% {
    stroke-dashoffset: 100px;
    transform: rotate(90deg);
  }
  50.1% {
    transform: rotate(90deg);
    stroke-dashoffset: 100px;
  }
  62.5% {
    transform: rotate(90deg);
    stroke-dashoffset: 25px;
  }
  75% {
    stroke-dashoffset: 100px;
    transform: rotate(360deg);
  }
  75.1% {
    transform: rotate(0deg);
    stroke-dashoffset: 100px;
  }
  87.5% {
    transform: rotate(0deg);
    stroke-dashoffset: 25px;
  }
  100% {
    stroke-dashoffset: 100px;
    transform: rotate(270deg);
  }
}
/* === Progressbar === */
:root {
  /*
  --f7-progressbar-progress-color: var(--f7-theme-color);
  */
}
.ios {
  --f7-progressbar-height: 4px;
  --f7-progressbar-border-radius: 4px;
  --f7-progressbar-bg-color: rgba(0, 0, 0, 0.3);
}
.ios .dark,
.ios.dark {
  --f7-progressbar-bg-color: rgba(255, 255, 255, 0.3);
}
.md {
  --f7-progressbar-height: 4px;
  --f7-progressbar-border-radius: 0px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-progressbar-bg-color: rgba(var(--f7-theme-color-rgb), 0.5);
}
.progressbar,
.progressbar-infinite {
  width: 100%;
  overflow: hidden;
  position: relative;
  display: block;
  transform-style: preserve-3d;
  background: var(--f7-progressbar-bg-color, rgba(var(--f7-theme-color-rgb), 0.5));
  transform-origin: center top;
  height: var(--f7-progressbar-height);
  border-radius: var(--f7-progressbar-border-radius);
}
.progressbar {
  vertical-align: middle;
}
.progressbar span {
  background-color: var(--f7-progressbar-progress-color, var(--f7-theme-color));
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  transition-duration: 150ms;
  left: 0;
  transform: translate3d(-100%, 0, 0);
}
.progressbar-infinite {
  z-index: 15000;
}
.progressbar-infinite:before,
.progressbar-infinite:after {
  content: '';
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  transform: translate3d(0, 0, 0);
  display: block;
  background-color: var(--f7-progressbar-progress-color, var(--f7-theme-color));
  left: 0;
  transform-origin: left center;
}
.progressbar-infinite.color-multi {
  background: none !important;
}
.progressbar-in {
  animation: progressbar-in 150ms forwards;
}
.progressbar-out {
  animation: progressbar-out 150ms forwards;
}
body > .progressbar,
.view > .progressbar,
.views > .progressbar,
.page > .progressbar,
.panel > .progressbar,
.popup > .progressbar,
.framework7-root > .progressbar,
body > .progressbar-infinite,
.view > .progressbar-infinite,
.views > .progressbar-infinite,
.page > .progressbar-infinite,
.panel > .progressbar-infinite,
.popup > .progressbar-infinite,
.framework7-root > .progressbar-infinite {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 15000;
  border-radius: 0 !important;
  transform-origin: center top !important;
}
@keyframes progressbar-in {
  from {
    opacity: 0;
    transform: scaleY(0);
  }
  to {
    opacity: 1;
    transform: scaleY(1);
  }
}
@keyframes progressbar-out {
  from {
    opacity: 1;
    transform: scaleY(1);
  }
  to {
    opacity: 0;
    transform: scaleY(0);
  }
}
.ios .progressbar-infinite:before {
  animation: ios-progressbar-infinite 1s linear infinite;
}
.ios .progressbar-infinite:after {
  display: none;
}
.ios .progressbar-infinite.color-multi:before {
  width: 400%;
  background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964);
  background-size: 25% 100%;
  background-repeat: repeat-x;
  animation: ios-progressbar-infinite-multicolor 3s linear infinite;
}
@keyframes ios-progressbar-infinite {
  0% {
    transform: translate3d(-100%, 0, 0);
  }
  100% {
    transform: translate3d(100%, 0, 0);
  }
}
@keyframes ios-progressbar-infinite-multicolor {
  0% {
    transform: translate3d(0%, 0, 0);
  }
  100% {
    transform: translate3d(-50%, 0, 0);
  }
}
.md .progressbar-infinite:before {
  animation: md-progressbar-infinite-1 2s linear infinite;
}
.md .progressbar-infinite:after {
  animation: md-progressbar-infinite-2 2s linear infinite;
}
.md .progressbar-infinite.color-multi:before {
  background: none;
  animation: md-progressbar-infinite-multicolor-bg 3s step-end infinite;
}
.md .progressbar-infinite.color-multi:after {
  background: none;
  animation: md-progressbar-infinite-multicolor-fill 3s linear infinite;
  transform-origin: center center;
}
@keyframes md-progressbar-infinite-1 {
  0% {
    transform: translateX(-10%) scaleX(0.1);
  }
  25% {
    transform: translateX(30%) scaleX(0.6);
  }
  50% {
    transform: translateX(100%) scaleX(1);
  }
  100% {
    transform: translateX(100%) scaleX(1);
  }
}
@keyframes md-progressbar-infinite-2 {
  0% {
    transform: translateX(-100%) scaleX(1);
  }
  40% {
    transform: translateX(-100%) scaleX(1);
  }
  75% {
    transform: translateX(60%) scaleX(0.35);
  }
  90% {
    transform: translateX(100%) scaleX(0.1);
  }
  100% {
    transform: translateX(100%) scaleX(0.1);
  }
}
@keyframes md-progressbar-infinite-multicolor-bg {
  0% {
    background-color: #4caf50;
  }
  25% {
    background-color: #f44336;
  }
  50% {
    background-color: #2196f3;
  }
  75% {
    background-color: #ffeb3b;
  }
}
@keyframes md-progressbar-infinite-multicolor-fill {
  0% {
    transform: scaleX(0);
    background-color: #f44336;
  }
  24.9% {
    transform: scaleX(1);
    background-color: #f44336;
  }
  25% {
    transform: scaleX(0);
    background-color: #2196f3;
  }
  49.9% {
    transform: scaleX(1);
    background-color: #2196f3;
  }
  50% {
    transform: scaleX(0);
    background-color: #ffeb3b;
  }
  74.9% {
    transform: scaleX(1);
    background-color: #ffeb3b;
  }
  75% {
    transform: scaleX(0);
    background-color: #4caf50;
  }
  100% {
    transform: scaleX(1);
    background-color: #4caf50;
  }
}
/* === Sortable === */
.ios {
  --f7-sortable-handler-width: 36px;
  --f7-sortable-sorting-item-box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.6);
  --f7-sortable-handler-color: rgba(0, 0, 0, 0.22);
  --f7-sortable-sorting-item-bg-color: rgba(255, 255, 255, 0.8);
}
.ios .dark,
.ios.dark {
  --f7-sortable-sorting-item-bg-color: rgba(50, 50, 50, 0.8);
  --f7-sortable-handler-color: rgba(255, 255, 255, 0.55);
}
.md {
  --f7-sortable-handler-width: 42px;
  --f7-sortable-sorting-item-box-shadow: none;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-sortable-handler-color: var(--f7-md-on-surface-variant);
  --f7-sortable-sorting-item-bg-color: var(--f7-md-surface-3);
}
.sortable .sortable-handler {
  width: var(--f7-sortable-handler-width);
  height: 100%;
  position: absolute;
  top: 0;
  z-index: 10;
  opacity: 0;
  pointer-events: none;
  cursor: move;
  transition-duration: 300ms;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  right: var(--f7-safe-area-right);
}
.sortable .sortable-handler:after {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  transition-duration: 300ms;
  transform: translateX(10px);
  color: var(--f7-sortable-handler-color);
  overflow: hidden;
  height: 20px;
  width: 18px;
}
.sortable li.sorting {
  z-index: 50;
  background: var(--f7-sortable-sorting-item-bg-color);
  transition-duration: 0ms;
  box-shadow: var(--f7-sortable-sorting-item-box-shadow);
}
.sortable li.sorting .item-inner:after {
  display: none !important;
}
.sortable-opposite .sortable-handler {
  left: var(--f7-safe-area-right);
  right: auto;
}
.sortable-opposite .sortable-handler:after {
  transform: translateX(-10px);
}
.sortable:not(.sortable-opposite) .item-inner,
.sortable-opposite .item-content,
.sortable.simple-list li,
.sortable-opposite.links-list li a {
  transition-duration: 300ms;
  transition-property: all;
}
.sortable-sorting li {
  transition-duration: 300ms;
}
.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler {
  pointer-events: auto;
  touch-action: none;
  opacity: 1;
}
.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler:after {
  transform: translateX(0px);
}
.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner:before,
.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-title-row:before,
.sortable-enabled:not(.sortable-opposite).links-list li:not(.no-sorting):not(.disallow-sorting) > a:before {
  display: none;
}
.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-inner,
.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner,
.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link.no-chevron .item-inner,
.sortable-enabled.no-chevron:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner,
.sortable-enabled :not(.sortable-opposite).no-chevron .item-link .item-inner,
.no-chevron .sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner,
.simple-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting),
.links-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) a {
  padding-right: calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right));
}
.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .item-content,
.simple-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting),
.links-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) a {
  padding-left: calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right));
}
.ios .sortable-handler:after {
  content: 'sort_ios';
}
.md .sortable-handler:after {
  content: 'sort_md';
}
/* === Swipeout === */
:root {
  --f7-swipeout-delete-button-bg-color: #ff3b30;
  --f7-swipeout-button-text-color: #fff;
  --f7-swipeout-button-padding-vertical: 0px;
  --f7-swipeout-button-bg-color: rgba(0, 0, 0, 0.22);
}
:root .dark,
:root.dark {
  --f7-swipeout-button-bg-color: rgba(255, 255, 255, 0.55);
}
.ios {
  --f7-swipeout-button-padding-horizontal: 30px;
  --f7-swipeout-button-font-size: inherit;
  --f7-swipeout-button-font-weight: inherit;
}
.md {
  --f7-swipeout-button-padding-horizontal: 24px;
  --f7-swipeout-button-font-size: 14px;
  --f7-swipeout-button-font-weight: 500;
}
.md .dark,
.md.dark {
  --f7-swipeout-button-text-color: #000;
}
.swipeout {
  overflow: hidden;
  transform-style: preserve-3d;
}
.swipeout-deleting {
  transition-duration: 300ms;
}
.swipeout-deleting .swipeout-content {
  transform: translateX(-100%);
}
.swipeout-transitioning .swipeout-content,
.swipeout-transitioning .swipeout-actions-right a,
.swipeout-transitioning .swipeout-actions-left a,
.swipeout-transitioning .swipeout-overswipe {
  transition-duration: 300ms;
  transition-property: transform, left;
}
.swipeout-content {
  position: relative;
  z-index: 10;
}
.swipeout-overswipe {
  transition-duration: 200ms;
  transition-property: left;
}
.swipeout-actions-left,
.swipeout-actions-right {
  position: absolute;
  top: 0;
  height: 100%;
  display: flex;
  direction: ltr;
}
.swipeout-actions-left > a,
.swipeout-actions-right > a,
.swipeout-actions-left > button,
.swipeout-actions-right > button,
.swipeout-actions-left > span,
.swipeout-actions-right > span,
.swipeout-actions-left > div,
.swipeout-actions-right > div {
  color: var(--f7-swipeout-button-text-color);
  background: var(--f7-swipeout-button-bg-color);
  padding: var(--f7-swipeout-button-padding-vertical) var(--f7-swipeout-button-padding-horizontal);
  display: flex;
  align-items: center;
  position: relative;
  left: 0;
  font-size: var(--f7-swipeout-button-font-size);
  font-weight: var(--f7-swipeout-button-font-weight);
}
.swipeout-actions-left > a:after,
.swipeout-actions-right > a:after,
.swipeout-actions-left > button:after,
.swipeout-actions-right > button:after,
.swipeout-actions-left > span:after,
.swipeout-actions-right > span:after,
.swipeout-actions-left > div:after,
.swipeout-actions-right > div:after {
  content: '';
  position: absolute;
  top: 0;
  width: 600%;
  height: 100%;
  background: inherit;
  z-index: -1;
  transform: translate3d(0, 0, 0);
  pointer-events: none;
}
.swipeout-actions-left .swipeout-delete,
.swipeout-actions-right .swipeout-delete {
  background: var(--f7-swipeout-delete-button-bg-color);
}
.swipeout-actions-right {
  right: 0%;
  transform: translateX(calc(100% + 1px));
}
.swipeout-actions-right > a:after,
.swipeout-actions-right > button:after,
.swipeout-actions-right > span:after,
.swipeout-actions-right > div:after {
  left: 100%;
}
.swipeout-actions-right > a:last-child,
.swipeout-actions-right > button:last-child,
.swipeout-actions-right > span:last-child,
.swipeout-actions-right > div:last-child {
  padding-right: calc(var(--f7-swipeout-button-padding-horizontal) + var(--f7-safe-area-right));
}
.swipeout-actions-left {
  left: 0%;
  transform: translateX(calc(-100% - 1px));
}
.swipeout-actions-left > a:after,
.swipeout-actions-left > button:after,
.swipeout-actions-left > span:after,
.swipeout-actions-left > div:after {
  right: 100%;
}
.swipeout-actions-left > a:first-child,
.swipeout-actions-left > button:first-child,
.swipeout-actions-left > span:first-child,
.swipeout-actions-left > div:first-child {
  padding-left: calc(var(--f7-swipeout-button-padding-horizontal) + var(--f7-safe-area-left));
}
.swipeout-actions-left [class*='color-'],
.swipeout-actions-right [class*='color-'] {
  --f7-swipeout-button-bg-color: var(--f7-theme-color);
}
/* === Accordion === */
:root {
  --f7-accordion-chevron-icon-down: 'chevron_down';
  --f7-accordion-chevron-icon-up: 'chevron_up';
}
.accordion-item-toggle {
  cursor: pointer;
}
.list.accordion-list .accordion-item-toggle {
  transition-duration: 300ms;
  position: relative;
  overflow: hidden;
}
.list.accordion-list .accordion-item-toggle.active-state {
  transition-duration: 300ms;
  background-color: var(--f7-list-link-pressed-bg-color);
}
.list.accordion-list .accordion-item-toggle.active-state > .item-inner:after {
  background-color: transparent;
}
.list.accordion-list .accordion-item-toggle .item-inner {
  transition-duration: 300ms;
  transition-property: background-color;
}
.list.accordion-list .accordion-item-toggle .item-inner:after {
  transition-duration: 300ms;
}
.list.accordion-list .accordion-item-toggle .ripple-wave {
  z-index: 0;
}
.accordion-item .item-link .item-inner:after {
  transition-duration: 300ms;
}
.accordion-item .list,
.accordion-item .block {
  margin-top: 0;
  margin-bottom: 0;
}
.accordion-item .block > h1:first-child,
.accordion-item .block > h2:first-child,
.accordion-item .block > h3:first-child,
.accordion-item .block > h4:first-child,
.accordion-item .block > p:first-child {
  margin-top: 10px;
}
.accordion-item .block > h1:last-child,
.accordion-item .block > h2:last-child,
.accordion-item .block > h3:last-child,
.accordion-item .block > h4:last-child,
.accordion-item .block > p:last-child {
  margin-bottom: 10px;
}
.accordion-item-opened .accordion-item-toggle .item-inner:after,
.accordion-item-opened > .item-link .item-inner:after {
  background-color: transparent;
}
.list li.accordion-item ul {
  padding-left: 0;
}
.accordion-item-content {
  position: relative;
  overflow: hidden;
  height: 0;
  font-size: 14px;
  transition-duration: 300ms;
}
.accordion-item-opened > .accordion-item-content {
  height: auto;
}
html.device-android-4 .accordion-item-content {
  transform: none;
}
.list .accordion-item-toggle .item-inner:before {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  position: absolute;
  top: 50%;
  font-size: var(--f7-list-chevron-icon-font-size);
  color: var(--f7-list-chevron-icon-color);
  pointer-events: none;
  right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
}
.list:not(.accordion-opposite) .accordion-item-toggle .item-inner {
  padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
}
.accordion-opposite .accordion-item-toggle.item-link .item-inner,
.accordion-opposite .accordion-item-toggle .item-inner,
.accordion-opposite .accordion-item > .item-link > .item-inner,
.accordion-opposite .accordion-item > .item-link > .item-content > .item-inner {
  padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));
}
.accordion-opposite .accordion-item > .item-link > .item-title-row {
  padding-right: 0;
}
.accordion-opposite .accordion-item-toggle.item-link .item-inner:before,
.accordion-opposite .accordion-item-toggle .item-inner:before,
.accordion-opposite .accordion-item > .item-link > .item-inner:before,
.accordion-opposite .accordion-item > .item-link > .item-content > .item-inner:before,
.accordion-opposite .accordion-item > .item-link .item-title-row:before {
  display: none;
}
.accordion-opposite .accordion-item-toggle > .item-content,
.accordion-opposite .accordion-item-toggle.item-content,
.accordion-opposite .accordion-item > .item-content,
.accordion-opposite .accordion-item > .item-link > .item-content,
.accordion-opposite.links-list .accordion-item > a {
  position: relative;
  padding-left: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));
}
.accordion-opposite .accordion-item-toggle > .item-content:before,
.accordion-opposite .accordion-item-toggle.item-content:before,
.accordion-opposite .accordion-item > .item-content:before,
.accordion-opposite .accordion-item > .item-link > .item-content:before,
.accordion-opposite.links-list .accordion-item > a:before {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  position: absolute;
  top: 50%;
  font-size: var(--f7-list-chevron-icon-font-size);
  color: var(--f7-list-chevron-icon-color);
  pointer-events: none;
  content: var(--f7-accordion-chevron-icon-down);
  width: 14px;
  height: 8px;
  margin-top: -4px;
  line-height: 8px;
  transform: translateX(-50%);
  left: calc((var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal)) / 2 + var(--f7-safe-area-left));
}
.list .accordion-item-toggle.active-state {
  background-color: var(--f7-list-link-pressed-bg-color);
}
.list .accordion-item-toggle .item-inner:before,
.list:not(.media-list) .accordion-item:not(.media-item) .accordion-item-toggle .item-inner:before,
.list:not(.media-list) .accordion-item:not(.media-item) > .item-link .item-inner:before,
.media-list .accordion-item .accordion-item-toggle .item-title-row:before,
.media-list .accordion-item > .item-link .item-title-row:before,
.accordion-item.media-item .accordion-item-toggle .item-title-row:before,
.accordion-item.media-item > .item-link .item-title-row:before,
.links-list .accordion-item > a:before {
  content: var(--f7-accordion-chevron-icon-down);
  width: 14px;
  height: 8px;
  margin-top: -4px;
  line-height: 8px;
}
.list .accordion-item-toggle.accordion-item-opened .item-inner:before,
.list:not(.media-list) .accordion-item-opened:not(.media-item) .accordion-item-toggle .item-inner:before,
.list:not(.media-list) .accordion-item-opened:not(.media-item) > .item-link .item-inner:before,
.media-list .accordion-item-opened .accordion-item-toggle .item-title-row:before,
.media-list .accordion-item-opened > .item-link .item-title-row:before,
.accordion-item-opened.media-item .accordion-item-toggle .item-title-row:before,
.accordion-item-opened.media-item > .item-link .item-title-row:before,
.links-list .accordion-item-opened > a:before,
.accordion-opposite .accordion-item-opened .accordion-item-toggle > .item-content:before,
.accordion-opposite .accordion-item-opened .accordion-item-toggle.item-content:before,
.accordion-opposite .accordion-item-opened > .item-content:before,
.accordion-opposite .accordion-item-opened > .item-link > .item-content:before,
.accordion-opposite .links-list .accordion-item-opened > a:before {
  content: var(--f7-accordion-chevron-icon-up);
  width: 14px;
  height: 8px;
  margin-top: -4px;
  line-height: 8px;
}
/* === Contacts === */
.ios {
  --f7-contacts-list-title-font-size: inherit;
  --f7-contacts-list-title-font-weight: 600;
  --f7-contacts-list-title-height: 22px;
  --f7-contacts-list-title-text-color: #000;
  --f7-contacts-list-title-bg-color: #f7f7f7;
}
.ios .dark,
.ios.dark {
  --f7-contacts-list-title-text-color: #fff;
  --f7-contacts-list-title-bg-color: #323234;
}
.md {
  --f7-contacts-list-title-font-size: 20px;
  --f7-contacts-list-title-font-weight: 500;
  --f7-contacts-list-title-height: 48px;
  --f7-contacts-list-title-bg-color: transparent;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-contacts-list-title-text-color: var(--f7-theme-color);
}
.contacts-list {
  --f7-list-margin-vertical: 0px;
}
.contacts-list .list-group-title,
.contacts-list li.list-group-title {
  background-color: var(--f7-contacts-list-title-bg-color, var(--f7-list-group-title-bg-color));
  font-weight: var(--f7-contacts-list-title-font-weight, var(--f7-list-group-title-font-weight));
  font-size: var(--f7-contacts-list-title-font-size, var(--f7-list-group-title-font-size));
  color: var(--f7-contacts-list-title-text-color, var(--f7-theme-color));
  line-height: var(--f7-contacts-list-title-height, var(--f7-list-group-title-height));
  height: var(--f7-contacts-list-title-height, var(--f7-list-group-title-height));
}
.contacts-list .list-group:first-child ul:before {
  display: none !important;
}
.contacts-list .list-group:last-child ul:after {
  display: none !important;
}
.md .contacts-list .list-group-title {
  pointer-events: none;
  overflow: visible;
  width: 40px;
}
.md .contacts-list .list-group-title + li {
  margin-top: calc(var(--f7-contacts-list-title-height) * -1);
}
.md .contacts-list .list-group-title:before {
  display: none !important;
}
.md .contacts-list li:not(.list-group-title) {
  padding-left: 40px;
}
/* === Virtual List === */
/* === Indexed List === */
:root {
  --f7-list-index-width: 16px;
  --f7-list-index-font-size: 11px;
  --f7-list-index-font-weight: 600;
  /* --f7-list-index-text-color: var(--f7-theme-color); */
  --f7-list-index-item-height: 14px;
  --f7-list-index-label-font-weight: 500;
}
.ios {
  --f7-list-index-label-text-color: #fff;
  /* --f7-list-index-label-bg-color: var(--f7-theme-color); */
  --f7-list-index-label-size: 44px;
  --f7-list-index-label-font-size: 17px;
  --f7-list-index-skip-dot-size: 6px;
}
.md {
  --f7-list-index-label-size: 56px;
  --f7-list-index-label-font-size: 20px;
  --f7-list-index-skip-dot-size: 4px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-list-index-label-bg-color: var(--f7-md-primary);
  --f7-list-index-label-text-color: var(--f7-md-on-primary);
}
.list-index {
  position: absolute;
  top: 0;
  bottom: 0;
  text-align: center;
  z-index: 10;
  width: var(--f7-list-index-width);
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  right: var(--f7-safe-area-right);
}
.list-index:before {
  content: '';
  position: absolute;
  width: 20px;
  top: 0;
  right: 100%;
  height: 100%;
}
.list-index ul {
  color: var(--f7-list-index-text-color, var(--f7-theme-color));
  font-size: var(--f7-list-index-font-size);
  font-weight: var(--f7-list-index-font-weight);
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  height: 100%;
  width: 100%;
  position: relative;
}
.list-index li {
  margin: 0;
  padding: 0;
  list-style: none;
  position: relative;
  height: var(--f7-list-index-item-height);
  line-height: var(--f7-list-index-item-height);
  flex-shrink: 0;
  display: block;
  width: 100%;
}
.list-index .list-index-skip-placeholder:after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  width: var(--f7-list-index-skip-dot-size);
  height: var(--f7-list-index-skip-dot-size);
  margin-left: calc(-1 * var(--f7-list-index-skip-dot-size) / 2);
  margin-top: calc(-1 * var(--f7-list-index-skip-dot-size) / 2);
  background: var(--f7-list-index-text-color, var(--f7-theme-color));
}
.list-index .list-index-label {
  position: absolute;
  bottom: 0;
  right: 100%;
  text-align: center;
  background-color: var(--f7-list-index-label-bg-color, var(--f7-theme-color));
  color: var(--f7-list-index-label-text-color);
  width: var(--f7-list-index-label-size);
  height: var(--f7-list-index-label-size);
  line-height: var(--f7-list-index-label-size);
  font-size: var(--f7-list-index-label-font-size);
  font-weight: var(--f7-list-index-label-font-weight);
}
.navbar ~ .page > .list-index,
.navbars ~ .page > .list-index,
.navbar ~ .list-index {
  top: var(--f7-navbar-height);
}
.navbar ~ .toolbar-top ~ .list-index,
.navbars ~ .toolbar-top ~ .list-index,
.ios .navbar ~ .toolbar-top-ios ~ .list-index,
.ios .navbars ~ .toolbar-top-ios .md .navbar ~ .toolbar-top-md ~ .list-index {
  top: calc(var(--f7-navbar-height) + var(--f7-toolbar-height));
}
.navbar ~ .toolbar-top.tabbar-icons ~ .list-index,
.navbars ~ .toolbar-top.tabbar-icons ~ .list-index,
.ios .navbar ~ .toolbar-top-ios.tabbar-icons ~ .list-index,
.ios .navbars ~ .toolbar-top-ios .md .navbar ~ .toolbar-top-md.tabbar-icons ~ .list-index {
  top: calc(var(--f7-navbar-height) + var(--f7-tabbar-icons-height));
}
.navbar ~ .subnavbar ~ .list-index,
.navbars ~ .subnavbar ~ .list-index,
.page-with-subnavbar .navbar ~ .list-index {
  top: calc(var(--f7-navbar-height) + var(--f7-subnavbar-height));
}
.toolbar-bottom ~ .page > .list-index,
.ios .toolbar-bottom-ios ~ .page > .list-index,
.md .toolbar-bottom-md ~ .page > .list-index,
.toolbar-bottom ~ * .page > .list-index,
.ios .toolbar-bottom-ios ~ * .page > .list-index,
.md .toolbar-bottom-md ~ * .page > .list-index,
.toolbar-bottom ~ .list-index,
.ios .toolbar-bottom-ios ~ .list-index,
.md .toolbar-bottom-md ~ .list-index {
  bottom: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom));
}
.toolbar-bottom.tabbar-icons ~ .page > .list-index,
.ios .toolbar-bottom-ios.tabbar-icons ~ .page > .list-index,
.md .toolbar-bottom-md.tabbar-icons ~ .page > .list-index,
.toolbar-bottom.tabbar-icons ~ * .page > .list-index,
.ios .toolbar-bottom-ios.tabbar-icons ~ * .page > .list-index,
.md .toolbar-bottom-md.tabbar-icons ~ * .page > .list-index,
.toolbar-bottom.tabbar-icons ~ .list-index,
.ios .toolbar-bottom-ios.tabbar-icons ~ .list-index,
.md .toolbar-bottom-md.tabbar-icons ~ .list-index {
  bottom: calc(var(--f7-tabbar-icons-height) + var(--f7-safe-area-bottom));
}
.ios .list-index .list-index-label {
  margin-bottom: calc(-1 * var(--f7-list-index-label-size) / 2);
  margin-right: calc(var(--f7-list-index-width) - 1px);
  border-radius: 50%;
}
.ios .list-index .list-index-label:before {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50% 0% 50% 50%;
  content: '';
  background-color: inherit;
  left: 0;
  top: 0;
  transform: rotate(45deg);
  z-index: -1;
}
.md .list-index .list-index-label {
  border-radius: 50% 50% 0 50%;
}
/* === Timeline === */
:root {
  --f7-timeline-inner-block-margin-vertical: 16px;
  --f7-timeline-divider-margin-horizontal: 16px;
  --f7-timeline-horizontal-date-height: 34px;
  --f7-timeline-year-height: 24px;
  --f7-timeline-year-font-weight: inherit;
  --f7-timeline-month-height: 24px;
  --f7-timeline-month-font-size: inherit;
  --f7-timeline-month-font-weight: inherit;
  --f7-timeline-item-text-font-weight: inherit;
  --f7-timeline-item-subtitle-font-weight: inherit;
}
.ios {
  --f7-timeline-divider-color: #bbb;
  --f7-timeline-padding-horizontal: 16px;
  --f7-timeline-margin-vertical: 35px;
  --f7-timeline-item-inner-border-radius: 7px;
  --f7-timeline-item-time-font-size: 13px;
  --f7-timeline-item-title-font-size: 17px;
  --f7-timeline-item-title-line-height: inherit;
  --f7-timeline-item-title-font-weight: 600;
  --f7-timeline-item-subtitle-font-size: 15px;
  --f7-timeline-item-subtitle-line-height: inherit;
  --f7-timeline-item-text-font-size: inherit;
  --f7-timeline-item-text-color: inherit;
  --f7-timeline-item-text-line-height: inherit;
  --f7-timeline-year-font-size: 16px;
  --f7-timeline-horizontal-item-padding: 10px;
  --f7-timeline-item-inner-bg-color: #fff;
  --f7-timeline-item-time-text-color: rgba(0, 0, 0, 0.45);
  --f7-timeline-horizontal-item-border-color: rgba(0, 0, 0, 0.22);
  --f7-timeline-horizontal-item-date-border-color: rgba(0, 0, 0, 0.22);
}
.ios .dark,
.ios.dark {
  --f7-timeline-horizontal-item-border-color: rgba(255, 255, 255, 0.15);
  --f7-timeline-horizontal-item-date-border-color: rgba(255, 255, 255, 0.15);
  --f7-timeline-item-inner-bg-color: #1c1c1d;
  --f7-timeline-item-time-text-color: rgba(255, 255, 255, 0.55);
}
.md {
  --f7-timeline-padding-horizontal: 16px;
  --f7-timeline-margin-vertical: 32px;
  --f7-timeline-item-inner-border-radius: 16px;
  --f7-timeline-item-time-font-size: 13px;
  --f7-timeline-item-title-font-size: 16px;
  --f7-timeline-item-title-line-height: inherit;
  --f7-timeline-item-title-font-weight: 400;
  --f7-timeline-item-subtitle-font-size: inherit;
  --f7-timeline-item-subtitle-line-height: inherit;
  --f7-timeline-item-text-font-size: inherit;
  --f7-timeline-item-text-line-height: inherit;
  --f7-timeline-year-font-size: 16px;
  --f7-timeline-horizontal-item-padding: 12px;
  --f7-timeline-horizontal-item-date-border-color: transparent;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-timeline-divider-color: var(--f7-md-outline);
  --f7-timeline-item-text-color: var(--f7-md-on-surface);
  --f7-timeline-horizontal-item-border-color: var(--f7-md-outline);
  --f7-timeline-item-inner-bg-color: var(--f7-md-surface-1);
  --f7-timeline-item-time-text-color: var(--f7-md-on-surface-variant);
}
.timeline {
  box-sizing: border-box;
  margin: var(--f7-timeline-margin-vertical) 0;
  padding: 0 var(--f7-timeline-padding-horizontal);
  padding-top: 0;
  padding-bottom: 0;
  padding-left: calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-left));
  padding-right: calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-right));
}
.block-strong .timeline {
  padding: 0;
  margin: 0;
}
.timeline-item {
  display: flex;
  justify-content: flex-start;
  overflow: hidden;
  box-sizing: border-box;
  position: relative;
  padding: 2px 0px var(--f7-timeline-padding-horizontal);
}
.timeline-item:last-child {
  padding-bottom: 2px;
}
.timeline-item-date {
  flex-shrink: 0;
  width: 50px;
  text-align: right;
  box-sizing: border-box;
}
.timeline-item-date small {
  font-size: 10px;
}
.timeline-item-content {
  margin: 2px;
  min-width: 0;
  position: relative;
  flex-shrink: 10;
}
.timeline-item-content .card,
.timeline-item-content.card,
.timeline-item-content .list,
.timeline-item-content.list,
.timeline-item-content .block,
.timeline-item-content.block {
  margin: 0;
  width: 100%;
}
.timeline-item-content .card + .card,
.timeline-item-content .list + .card,
.timeline-item-content .block + .card,
.timeline-item-content .card + .list,
.timeline-item-content .list + .list,
.timeline-item-content .block + .list,
.timeline-item-content .card + .block,
.timeline-item-content .list + .block,
.timeline-item-content .block + .block {
  margin: var(--f7-timeline-inner-block-margin-vertical) 0 0;
}
.timeline-item-content p:first-child,
.timeline-item-content ul:first-child,
.timeline-item-content ol:first-child,
.timeline-item-content h1:first-child,
.timeline-item-content h2:first-child,
.timeline-item-content h3:first-child,
.timeline-item-content h4:first-child {
  margin-top: 0;
}
.timeline-item-content p:last-child,
.timeline-item-content ul:last-child,
.timeline-item-content ol:last-child,
.timeline-item-content h1:last-child,
.timeline-item-content h2:last-child,
.timeline-item-content h3:last-child,
.timeline-item-content h4:last-child {
  margin-bottom: 0;
}
.timeline-item-inner {
  background: var(--f7-timeline-item-inner-bg-color);
  box-sizing: border-box;
  border-radius: var(--f7-timeline-item-inner-border-radius);
  padding: 8px var(--f7-timeline-padding-horizontal);
}
.timeline-item-inner + .timeline-item-inner {
  margin-top: var(--f7-timeline-inner-block-margin-vertical);
}
.timeline-item-inner .block {
  padding: 0;
  color: inherit;
}
.timeline-item-inner .block-strong {
  padding-left: 0;
  padding-right: 0;
  margin: 0;
}
.timeline-item-inner .block-strong:before,
.timeline-item-inner .block-strong:after {
  display: none !important;
}
.timeline-item-inner .list ul:before,
.timeline-item-inner .list ul:after {
  display: none !important;
}
.timeline-item-divider {
  width: 1px;
  position: relative;
  width: 10px;
  height: 10px;
  background: var(--f7-timeline-divider-color);
  border-radius: 50%;
  flex-shrink: 0;
  margin: 3px var(--f7-timeline-divider-margin-horizontal) 0;
}
.timeline-item-divider:after,
.timeline-item-divider:before {
  content: ' ';
  width: 1px;
  height: 100vh;
  position: absolute;
  left: 50%;
  background: inherit;
  transform: translate3d(-50%, 0, 0);
}
.timeline-item-divider:after {
  top: 100%;
}
.timeline-item-divider:before {
  bottom: 100%;
}
.timeline-item:last-child .timeline-item-divider:after {
  display: none;
}
.timeline-item:first-child .timeline-item-divider:before {
  display: none;
}
.timeline-item-time {
  font-size: var(--f7-timeline-item-time-font-size);
  margin-top: var(--f7-timeline-inner-block-margin-vertical);
  color: var(--f7-timeline-item-time-text-color);
}
.timeline-item-time:first-child,
.timeline-item-time:last-child {
  margin-top: 0;
}
.timeline-item-title + .timeline-item-time {
  margin-top: 0;
}
.timeline-item-title {
  font-size: var(--f7-timeline-item-title-font-size);
  font-weight: var(--f7-timeline-item-title-font-weight);
  line-height: var(--f7-timeline-item-title-line-height);
}
.timeline-item-subtitle {
  font-size: var(--f7-timeline-item-subtitle-font-size);
  font-weight: var(--f7-timeline-item-subtitle-font-weight);
  line-height: var(--f7-timeline-item-subtitle-line-height);
}
.timeline-item-text {
  color: var(--f7-timeline-item-text-color);
  font-size: var(--f7-timeline-item-text-font-size);
  font-weight: var(--f7-timeline-item-text-font-weight);
  line-height: var(--f7-timeline-item-text-line-height);
}
.timeline-sides .timeline-item-right,
.timeline-sides .timeline-item {
  margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
  margin-right: 0;
}
.timeline-sides .timeline-item-right .timeline-item-date,
.timeline-sides .timeline-item .timeline-item-date {
  text-align: right;
}
.timeline-sides .timeline-item-left,
.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n) {
  flex-direction: row-reverse;
  margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
  margin-left: 0;
}
.timeline-sides .timeline-item-left .timeline-item-date,
.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date {
  text-align: left;
}
@media (min-width: 480px) {
  .xsmall-sides .timeline-item-right,
  .xsmall-sides .timeline-item {
    margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-right: 0;
  }
  .xsmall-sides .timeline-item-right .timeline-item-date,
  .xsmall-sides .timeline-item .timeline-item-date {
    text-align: right;
  }
  .xsmall-sides .timeline-item-left,
  .xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n) {
    flex-direction: row-reverse;
    margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-left: 0;
  }
  .xsmall-sides .timeline-item-left .timeline-item-date,
  .xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date {
    text-align: left;
  }
}
@media (min-width: 568px) {
  .small-sides .timeline-item-right,
  .small-sides .timeline-item {
    margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-right: 0;
  }
  .small-sides .timeline-item-right .timeline-item-date,
  .small-sides .timeline-item .timeline-item-date {
    text-align: right;
  }
  .small-sides .timeline-item-left,
  .small-sides .timeline-item:not(.timeline-item-right):nth-child(2n) {
    flex-direction: row-reverse;
    margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-left: 0;
  }
  .small-sides .timeline-item-left .timeline-item-date,
  .small-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date {
    text-align: left;
  }
}
@media (min-width: 768px) {
  .medium-sides .timeline-item-right,
  .medium-sides .timeline-item {
    margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-right: 0;
  }
  .medium-sides .timeline-item-right .timeline-item-date,
  .medium-sides .timeline-item .timeline-item-date {
    text-align: right;
  }
  .medium-sides .timeline-item-left,
  .medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n) {
    flex-direction: row-reverse;
    margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-left: 0;
  }
  .medium-sides .timeline-item-left .timeline-item-date,
  .medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date {
    text-align: left;
  }
}
@media (min-width: 1024px) {
  .large-sides .timeline-item-right,
  .large-sides .timeline-item {
    margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-right: 0;
  }
  .large-sides .timeline-item-right .timeline-item-date,
  .large-sides .timeline-item .timeline-item-date {
    text-align: right;
  }
  .large-sides .timeline-item-left,
  .large-sides .timeline-item:not(.timeline-item-right):nth-child(2n) {
    flex-direction: row-reverse;
    margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-left: 0;
  }
  .large-sides .timeline-item-left .timeline-item-date,
  .large-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date {
    text-align: left;
  }
}
@media (min-width: 1200px) {
  .xlarge-sides .timeline-item-right,
  .xlarge-sides .timeline-item {
    margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-right: 0;
  }
  .xlarge-sides .timeline-item-right .timeline-item-date,
  .xlarge-sides .timeline-item .timeline-item-date {
    text-align: right;
  }
  .xlarge-sides .timeline-item-left,
  .xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n) {
    flex-direction: row-reverse;
    margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px);
    margin-left: 0;
  }
  .xlarge-sides .timeline-item-left .timeline-item-date,
  .xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date {
    text-align: left;
  }
}
.timeline-horizontal {
  height: 100%;
  display: flex;
  padding: 0;
  margin: 0;
  position: relative;
  padding-left: var(--f7-safe-area-left);
  padding-right: 0;
}
.timeline-horizontal .timeline-item {
  display: block;
  width: 100/3vw;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
  position: relative;
  height: 100%;
  padding-top: var(--f7-timeline-horizontal-date-height) !important;
  padding-bottom: var(--f7-timeline-horizontal-item-padding);
}
.timeline-horizontal .timeline-item:after {
  content: '';
  position: absolute;
  background-color: var(--f7-timeline-horizontal-item-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: 0;
  bottom: auto;
  left: auto;
  width: 1px;
  height: 100%;
  transform-origin: 100% 50%;
  transform: scaleX(calc(1 / var(--f7-device-pixel-ratio)));
}
.timeline-horizontal .timeline-item-date {
  padding: 0px var(--f7-timeline-horizontal-item-padding);
  width: auto;
  line-height: var(--f7-timeline-horizontal-date-height);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: var(--f7-timeline-horizontal-date-height);
  background-color: var(--f7-bars-bg-color);
  color: var(--f7-bars-text-color);
  text-align: left;
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-bars .timeline-horizontal .timeline-item-date {
    background-color: rgba(var(--f7-bars-bg-color-rgb), var(--f7-bars-translucent-opacity));
    -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
            backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
  }
}
.timeline-horizontal .timeline-item-date:after {
  content: '';
  position: absolute;
  background-color: var(--f7-timeline-horizontal-item-date-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.timeline-horizontal .timeline-item-content {
  padding: var(--f7-timeline-horizontal-item-padding);
  height: calc(100vw - var(--f7-timeline-horizontal-item-padding));
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0;
}
.timeline-horizontal .timeline-item-divider {
  display: none;
}
.timeline-horizontal > .timeline-item:last-child:after,
.timeline-horizontal .timeline-month:last-child .timeline-item:last-child:after {
  display: none !important;
}
.timeline-horizontal.timeline-cols-1 .timeline-item {
  width: calc(100vw / 1);
}
.timeline-horizontal.timeline-cols-2 .timeline-item {
  width: calc(100vw / 2);
}
.timeline-horizontal.timeline-cols-3 .timeline-item {
  width: calc(100vw / 3);
}
.timeline-horizontal.timeline-cols-4 .timeline-item {
  width: calc(100vw / 4);
}
.timeline-horizontal.timeline-cols-5 .timeline-item {
  width: calc(100vw / 5);
}
.timeline-horizontal.timeline-cols-6 .timeline-item {
  width: calc(100vw / 6);
}
.timeline-horizontal.timeline-cols-7 .timeline-item {
  width: calc(100vw / 7);
}
.timeline-horizontal.timeline-cols-8 .timeline-item {
  width: calc(100vw / 8);
}
.timeline-horizontal.timeline-cols-9 .timeline-item {
  width: calc(100vw / 9);
}
.timeline-horizontal.timeline-cols-10 .timeline-item {
  width: calc(100vw / 10);
}
.timeline-horizontal.timeline-cols-11 .timeline-item {
  width: calc(100vw / 11);
}
.timeline-horizontal.timeline-cols-12 .timeline-item {
  width: calc(100vw / 12);
}
.timeline-horizontal.timeline-cols-13 .timeline-item {
  width: calc(100vw / 13);
}
.timeline-horizontal.timeline-cols-14 .timeline-item {
  width: calc(100vw / 14);
}
.timeline-horizontal.timeline-cols-15 .timeline-item {
  width: calc(100vw / 15);
}
.timeline-horizontal.timeline-cols-16 .timeline-item {
  width: calc(100vw / 16);
}
.timeline-horizontal.timeline-cols-17 .timeline-item {
  width: calc(100vw / 17);
}
.timeline-horizontal.timeline-cols-18 .timeline-item {
  width: calc(100vw / 18);
}
.timeline-horizontal.timeline-cols-19 .timeline-item {
  width: calc(100vw / 19);
}
.timeline-horizontal.timeline-cols-20 .timeline-item {
  width: calc(100vw / 20);
}
@media (min-width: 480px) {
  .timeline-horizontal.xsmall-timeline-cols-1 .timeline-item {
    width: calc(100vw / 1);
  }
  .timeline-horizontal.xsmall-timeline-cols-2 .timeline-item {
    width: calc(100vw / 2);
  }
  .timeline-horizontal.xsmall-timeline-cols-3 .timeline-item {
    width: calc(100vw / 3);
  }
  .timeline-horizontal.xsmall-timeline-cols-4 .timeline-item {
    width: calc(100vw / 4);
  }
  .timeline-horizontal.xsmall-timeline-cols-5 .timeline-item {
    width: calc(100vw / 5);
  }
  .timeline-horizontal.xsmall-timeline-cols-6 .timeline-item {
    width: calc(100vw / 6);
  }
  .timeline-horizontal.xsmall-timeline-cols-7 .timeline-item {
    width: calc(100vw / 7);
  }
  .timeline-horizontal.xsmall-timeline-cols-8 .timeline-item {
    width: calc(100vw / 8);
  }
  .timeline-horizontal.xsmall-timeline-cols-9 .timeline-item {
    width: calc(100vw / 9);
  }
  .timeline-horizontal.xsmall-timeline-cols-10 .timeline-item {
    width: calc(100vw / 10);
  }
  .timeline-horizontal.xsmall-timeline-cols-11 .timeline-item {
    width: calc(100vw / 11);
  }
  .timeline-horizontal.xsmall-timeline-cols-12 .timeline-item {
    width: calc(100vw / 12);
  }
  .timeline-horizontal.xsmall-timeline-cols-13 .timeline-item {
    width: calc(100vw / 13);
  }
  .timeline-horizontal.xsmall-timeline-cols-14 .timeline-item {
    width: calc(100vw / 14);
  }
  .timeline-horizontal.xsmall-timeline-cols-15 .timeline-item {
    width: calc(100vw / 15);
  }
  .timeline-horizontal.xsmall-timeline-cols-16 .timeline-item {
    width: calc(100vw / 16);
  }
  .timeline-horizontal.xsmall-timeline-cols-17 .timeline-item {
    width: calc(100vw / 17);
  }
  .timeline-horizontal.xsmall-timeline-cols-18 .timeline-item {
    width: calc(100vw / 18);
  }
  .timeline-horizontal.xsmall-timeline-cols-19 .timeline-item {
    width: calc(100vw / 19);
  }
  .timeline-horizontal.xsmall-timeline-cols-20 .timeline-item {
    width: calc(100vw / 20);
  }
}
@media (min-width: 568px) {
  .timeline-horizontal.small-timeline-cols-1 .timeline-item {
    width: calc(100vw / 1);
  }
  .timeline-horizontal.small-timeline-cols-2 .timeline-item {
    width: calc(100vw / 2);
  }
  .timeline-horizontal.small-timeline-cols-3 .timeline-item {
    width: calc(100vw / 3);
  }
  .timeline-horizontal.small-timeline-cols-4 .timeline-item {
    width: calc(100vw / 4);
  }
  .timeline-horizontal.small-timeline-cols-5 .timeline-item {
    width: calc(100vw / 5);
  }
  .timeline-horizontal.small-timeline-cols-6 .timeline-item {
    width: calc(100vw / 6);
  }
  .timeline-horizontal.small-timeline-cols-7 .timeline-item {
    width: calc(100vw / 7);
  }
  .timeline-horizontal.small-timeline-cols-8 .timeline-item {
    width: calc(100vw / 8);
  }
  .timeline-horizontal.small-timeline-cols-9 .timeline-item {
    width: calc(100vw / 9);
  }
  .timeline-horizontal.small-timeline-cols-10 .timeline-item {
    width: calc(100vw / 10);
  }
  .timeline-horizontal.small-timeline-cols-11 .timeline-item {
    width: calc(100vw / 11);
  }
  .timeline-horizontal.small-timeline-cols-12 .timeline-item {
    width: calc(100vw / 12);
  }
  .timeline-horizontal.small-timeline-cols-13 .timeline-item {
    width: calc(100vw / 13);
  }
  .timeline-horizontal.small-timeline-cols-14 .timeline-item {
    width: calc(100vw / 14);
  }
  .timeline-horizontal.small-timeline-cols-15 .timeline-item {
    width: calc(100vw / 15);
  }
  .timeline-horizontal.small-timeline-cols-16 .timeline-item {
    width: calc(100vw / 16);
  }
  .timeline-horizontal.small-timeline-cols-17 .timeline-item {
    width: calc(100vw / 17);
  }
  .timeline-horizontal.small-timeline-cols-18 .timeline-item {
    width: calc(100vw / 18);
  }
  .timeline-horizontal.small-timeline-cols-19 .timeline-item {
    width: calc(100vw / 19);
  }
  .timeline-horizontal.small-timeline-cols-20 .timeline-item {
    width: calc(100vw / 20);
  }
}
@media (min-width: 768px) {
  .timeline-horizontal.medium-timeline-cols-1 .timeline-item {
    width: calc(100vw / 1);
  }
  .timeline-horizontal.medium-timeline-cols-2 .timeline-item {
    width: calc(100vw / 2);
  }
  .timeline-horizontal.medium-timeline-cols-3 .timeline-item {
    width: calc(100vw / 3);
  }
  .timeline-horizontal.medium-timeline-cols-4 .timeline-item {
    width: calc(100vw / 4);
  }
  .timeline-horizontal.medium-timeline-cols-5 .timeline-item {
    width: calc(100vw / 5);
  }
  .timeline-horizontal.medium-timeline-cols-6 .timeline-item {
    width: calc(100vw / 6);
  }
  .timeline-horizontal.medium-timeline-cols-7 .timeline-item {
    width: calc(100vw / 7);
  }
  .timeline-horizontal.medium-timeline-cols-8 .timeline-item {
    width: calc(100vw / 8);
  }
  .timeline-horizontal.medium-timeline-cols-9 .timeline-item {
    width: calc(100vw / 9);
  }
  .timeline-horizontal.medium-timeline-cols-10 .timeline-item {
    width: calc(100vw / 10);
  }
  .timeline-horizontal.medium-timeline-cols-11 .timeline-item {
    width: calc(100vw / 11);
  }
  .timeline-horizontal.medium-timeline-cols-12 .timeline-item {
    width: calc(100vw / 12);
  }
  .timeline-horizontal.medium-timeline-cols-13 .timeline-item {
    width: calc(100vw / 13);
  }
  .timeline-horizontal.medium-timeline-cols-14 .timeline-item {
    width: calc(100vw / 14);
  }
  .timeline-horizontal.medium-timeline-cols-15 .timeline-item {
    width: calc(100vw / 15);
  }
  .timeline-horizontal.medium-timeline-cols-16 .timeline-item {
    width: calc(100vw / 16);
  }
  .timeline-horizontal.medium-timeline-cols-17 .timeline-item {
    width: calc(100vw / 17);
  }
  .timeline-horizontal.medium-timeline-cols-18 .timeline-item {
    width: calc(100vw / 18);
  }
  .timeline-horizontal.medium-timeline-cols-19 .timeline-item {
    width: calc(100vw / 19);
  }
  .timeline-horizontal.medium-timeline-cols-20 .timeline-item {
    width: calc(100vw / 20);
  }
}
@media (min-width: 1024px) {
  .timeline-horizontal.large-timeline-cols-1 .timeline-item {
    width: calc(100vw / 1);
  }
  .timeline-horizontal.large-timeline-cols-2 .timeline-item {
    width: calc(100vw / 2);
  }
  .timeline-horizontal.large-timeline-cols-3 .timeline-item {
    width: calc(100vw / 3);
  }
  .timeline-horizontal.large-timeline-cols-4 .timeline-item {
    width: calc(100vw / 4);
  }
  .timeline-horizontal.large-timeline-cols-5 .timeline-item {
    width: calc(100vw / 5);
  }
  .timeline-horizontal.large-timeline-cols-6 .timeline-item {
    width: calc(100vw / 6);
  }
  .timeline-horizontal.large-timeline-cols-7 .timeline-item {
    width: calc(100vw / 7);
  }
  .timeline-horizontal.large-timeline-cols-8 .timeline-item {
    width: calc(100vw / 8);
  }
  .timeline-horizontal.large-timeline-cols-9 .timeline-item {
    width: calc(100vw / 9);
  }
  .timeline-horizontal.large-timeline-cols-10 .timeline-item {
    width: calc(100vw / 10);
  }
  .timeline-horizontal.large-timeline-cols-11 .timeline-item {
    width: calc(100vw / 11);
  }
  .timeline-horizontal.large-timeline-cols-12 .timeline-item {
    width: calc(100vw / 12);
  }
  .timeline-horizontal.large-timeline-cols-13 .timeline-item {
    width: calc(100vw / 13);
  }
  .timeline-horizontal.large-timeline-cols-14 .timeline-item {
    width: calc(100vw / 14);
  }
  .timeline-horizontal.large-timeline-cols-15 .timeline-item {
    width: calc(100vw / 15);
  }
  .timeline-horizontal.large-timeline-cols-16 .timeline-item {
    width: calc(100vw / 16);
  }
  .timeline-horizontal.large-timeline-cols-17 .timeline-item {
    width: calc(100vw / 17);
  }
  .timeline-horizontal.large-timeline-cols-18 .timeline-item {
    width: calc(100vw / 18);
  }
  .timeline-horizontal.large-timeline-cols-19 .timeline-item {
    width: calc(100vw / 19);
  }
  .timeline-horizontal.large-timeline-cols-20 .timeline-item {
    width: calc(100vw / 20);
  }
}
@media (min-width: 1200px) {
  .timeline-horizontal.xlarge-timeline-cols-1 .timeline-item {
    width: calc(100vw / 1);
  }
  .timeline-horizontal.xlarge-timeline-cols-2 .timeline-item {
    width: calc(100vw / 2);
  }
  .timeline-horizontal.xlarge-timeline-cols-3 .timeline-item {
    width: calc(100vw / 3);
  }
  .timeline-horizontal.xlarge-timeline-cols-4 .timeline-item {
    width: calc(100vw / 4);
  }
  .timeline-horizontal.xlarge-timeline-cols-5 .timeline-item {
    width: calc(100vw / 5);
  }
  .timeline-horizontal.xlarge-timeline-cols-6 .timeline-item {
    width: calc(100vw / 6);
  }
  .timeline-horizontal.xlarge-timeline-cols-7 .timeline-item {
    width: calc(100vw / 7);
  }
  .timeline-horizontal.xlarge-timeline-cols-8 .timeline-item {
    width: calc(100vw / 8);
  }
  .timeline-horizontal.xlarge-timeline-cols-9 .timeline-item {
    width: calc(100vw / 9);
  }
  .timeline-horizontal.xlarge-timeline-cols-10 .timeline-item {
    width: calc(100vw / 10);
  }
  .timeline-horizontal.xlarge-timeline-cols-11 .timeline-item {
    width: calc(100vw / 11);
  }
  .timeline-horizontal.xlarge-timeline-cols-12 .timeline-item {
    width: calc(100vw / 12);
  }
  .timeline-horizontal.xlarge-timeline-cols-13 .timeline-item {
    width: calc(100vw / 13);
  }
  .timeline-horizontal.xlarge-timeline-cols-14 .timeline-item {
    width: calc(100vw / 14);
  }
  .timeline-horizontal.xlarge-timeline-cols-15 .timeline-item {
    width: calc(100vw / 15);
  }
  .timeline-horizontal.xlarge-timeline-cols-16 .timeline-item {
    width: calc(100vw / 16);
  }
  .timeline-horizontal.xlarge-timeline-cols-17 .timeline-item {
    width: calc(100vw / 17);
  }
  .timeline-horizontal.xlarge-timeline-cols-18 .timeline-item {
    width: calc(100vw / 18);
  }
  .timeline-horizontal.xlarge-timeline-cols-19 .timeline-item {
    width: calc(100vw / 19);
  }
  .timeline-horizontal.xlarge-timeline-cols-20 .timeline-item {
    width: calc(100vw / 20);
  }
}
.timeline-year {
  padding-top: var(--f7-timeline-year-height);
}
.timeline-year:after {
  content: '';
  position: absolute;
  background-color: var(--f7-timeline-horizontal-item-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: 0;
  bottom: auto;
  left: auto;
  width: 1px;
  height: 100%;
  transform-origin: 100% 50%;
  transform: scaleX(calc(1 / var(--f7-device-pixel-ratio)));
}
.timeline-year:last-child:after {
  display: none !important;
}
.timeline-month {
  padding-top: var(--f7-timeline-month-height);
}
.timeline-month .timeline-item:before {
  content: '';
  position: absolute;
  background-color: var(--f7-timeline-horizontal-item-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.timeline-year,
.timeline-month {
  display: flex;
  flex-shrink: 0;
  position: relative;
  box-sizing: border-box;
  height: 100%;
}
.timeline-year-title {
  line-height: var(--f7-timeline-year-height);
  height: var(--f7-timeline-year-height);
  font-size: var(--f7-timeline-year-font-size);
  font-weight: var(--f7-timeline-year-font-weight);
}
.timeline-month-title {
  line-height: var(--f7-timeline-month-height);
  height: var(--f7-timeline-month-height);
  font-size: var(--f7-timeline-month-font-size);
  font-weight: var(--f7-timeline-month-font-weight);
}
.timeline-year-title,
.timeline-month-title {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  box-sizing: border-box;
  padding: 0 var(--f7-timeline-horizontal-item-padding);
  background-color: var(--f7-bars-bg-color);
  color: var(--f7-bars-text-color);
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-bars .timeline-year-title,
  .ios-translucent-bars .timeline-month-title {
    background-color: rgba(var(--f7-bars-bg-color-rgb), var(--f7-bars-translucent-opacity));
    -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
            backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
  }
}
.timeline-year-title span,
.timeline-month-title span {
  display: inline-block;
  position: sticky;
  left: calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-left));
}
.timeline-month-title span {
  margin-top: -2px;
}
.timeline-year:first-child .timeline-year-title,
.timeline-year:first-child .timeline-month:first-child .timeline-month-title,
.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-month-title {
  left: calc(var(--f7-safe-area-left) * -1);
  right: 0;
  width: auto;
}
.timeline-horizontal .timeline-item:first-child,
.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child,
.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-item:first-child,
.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-month-title + .timeline-item {
  overflow: visible;
}
.timeline-horizontal .timeline-item:first-child .timeline-item-date,
.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child .timeline-item-date,
.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-item:first-child .timeline-item-date,
.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-month-title + .timeline-item .timeline-item-date {
  width: auto;
  padding-left: calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-left));
  left: calc(0px - var(--f7-safe-area-left));
  right: 0;
}
.timeline-year:last-child .timeline-year-title,
.timeline-year:last-child .timeline-month:last-child .timeline-month-title {
  width: auto;
  right: calc(0px - var(--f7-safe-area-right));
}
.timeline-horizontal .timeline-item:last-child,
.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child {
  overflow: visible;
}
.timeline-horizontal .timeline-item:last-child .timeline-item-date,
.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child .timeline-item-date {
  width: auto;
  right: calc(0px - var(--f7-safe-area-right));
  left: 0;
}
.ios .block-strong .timeline-item-inner {
  border-radius: 3px;
  border: 1px solid rgba(0, 0, 0, 0.1);
}
.ios .timeline-year-title span {
  margin-top: 3px;
}
.md .timeline-year-title span {
  margin-top: 2px;
}
/* === Tabs === */
.tabs .tab {
  display: none;
}
.tabs .tab-active {
  display: block;
}
.tabs-animated-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
  height: 100%;
}
.tabs-animated-wrap > .tabs {
  display: flex;
  height: 100%;
  transition-duration: 300ms;
}
.tabs-animated-wrap > .tabs > .tab {
  width: 100%;
  display: block;
  flex-shrink: 0;
}
.tabs-animated-wrap.not-animated > .tabs {
  transition-duration: 0ms;
}
swiper-container.tabs {
  height: 100%;
}
swiper-container.tabs > .tab {
  display: block;
  touch-action: pan-y;
}
.page > .tabs {
  height: 100%;
}
/* === Panels === */
:root {
  --f7-panel-width: 260px;
  --f7-panel-backdrop-bg-color: rgba(0, 0, 0, 0.3);
  /*
  --f7-panel-left-width: var(--f7-panel-width);
  --f7-panel-right-width: var(--f7-panel-width);
  --f7-panel-left-collapsed-width: var(--f7-panel-collapsed-width);
  --f7-panel-right-collapsed-width: var(--f7-panel-collapsed-width);
  */
  --f7-panel-bg-color: #fff;
}
:root .dark,
:root.dark {
  --f7-panel-bg-color: #000;
}
.ios {
  --f7-panel-collapsed-width: 58px;
  --f7-panel-transition-duration: 400ms;
  --f7-panel-transition-timing-function: initial;
}
.md {
  --f7-panel-collapsed-width: 60px;
  --f7-panel-transition-duration: 400ms;
  --f7-panel-transition-timing-function: cubic-bezier(0, 0.8, 0.34, 1);
}
.panel-backdrop {
  position: absolute;
  left: 0;
  top: 0px;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 5999;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(0, 0, 0);
  background-color: var(--f7-panel-backdrop-bg-color);
  transition-property: transform, opacity;
  transition-duration: var(--f7-panel-transition-duration);
}
.panel-backdrop .with-panel,
.panel-backdrop .with-panel-closing {
  visibility: visible;
}
.panel-backdrop.not-animated {
  transition-duration: 0ms !important;
}
.panel {
  z-index: 1000;
  box-sizing: border-box;
  position: absolute;
  top: 0px;
  height: 100%;
  transform: translate3d(0, 0, 0);
  width: var(--f7-panel-width);
  background-color: var(--f7-panel-bg-color);
  overflow: visible;
  transition-property: transform;
  transition-duration: var(--f7-panel-transition-duration);
}
.panel:not(.panel-in):not(.panel-out):not(.panel-in-breakpoint):not(.panel-in-collapsed):not(
      .panel-in-swipe
    ) {
  display: none;
}
.panel:after {
  pointer-events: none;
  opacity: 0;
  z-index: 5999;
  position: absolute;
  content: '';
  top: 0;
  width: 20px;
  height: 100%;
  transition-property: transform, opacity;
  transition-duration: var(--f7-panel-transition-duration);
}
.panel.not-animated,
.panel.not-animated:after {
  transition-duration: 0ms !important;
}
.panel.panel-reveal.not-animated ~ .views,
.panel.panel-reveal.not-animated ~ .view {
  transition-duration: 0ms !important;
}
.panel.panel-resizing {
  -webkit-user-select: none;
          user-select: none;
}
.panel.panel-resizing,
.panel.panel-resizing:after,
.panel.panel-resizing ~ .views,
.panel.panel-resizing ~ .view {
  transition-duration: 0ms !important;
}
.panel-cover,
.panel-floating {
  z-index: 6000;
}
.panel-floating {
  overflow: hidden;
  border-radius: 16px;
  height: auto;
  top: calc(8px + var(--f7-safe-area-top, 0px));
  bottom: calc(8px + var(--f7-safe-area-bottom, 0px));
}
.panel-floating .views,
.panel-floating .view {
  --f7-safe-area-top: 0px;
  --f7-safe-area-bottom: 0px;
}
.page .panel-floating {
  top: calc(8px + var(--f7-page-navbar-offset, 0px));
  bottom: calc(8px + var(--f7-safe-area-bottom, 0px));
}
.page .panel-floating .page {
  --f7-page-navbar-offset: 0px;
}
.page .panel-floating .navbar ~ *,
.page .panel-floating .navbars ~ * {
  --f7-page-navbar-offset: calc(var(--f7-navbar-height));
}
.panel-left {
  left: 0;
  width: var(--f7-panel-left-width, var(--f7-panel-width));
}
.panel-left.panel-cover,
.panel-left.panel-floating,
.panel-left.panel-push {
  transform: translate3d(calc(-1 * var(--f7-panel-left-width, var(--f7-panel-width))), 0, 0);
}
.panel-right {
  right: 0;
  width: var(--f7-panel-right-width, var(--f7-panel-width));
}
.panel-right.panel-cover,
.panel-right.panel-floating,
.panel-right.panel-push {
  transform: translate3d(var(--f7-panel-right-width, var(--f7-panel-width)), 0, 0);
}
.panel-in-breakpoint {
  transform: translate3d(0, 0, 0) !important;
  transition-duration: 0ms;
}
.panel-in-breakpoint:after {
  display: none;
}
.panel-in-breakpoint.panel-cover,
.panel-in-breakpoint.panel-floating {
  z-index: 5900;
}
.panel,
.panel-backdrop {
  transition-timing-function: var(--f7-panel-transition-timing-function);
}
html.with-panel-left-reveal .views,
html.with-panel-right-reveal .views,
html.with-panel-left-push .views,
html.with-panel-right-push .views,
html.with-panel-closing .views,
html.with-panel-left-reveal .framework7-root > .view,
html.with-panel-right-reveal .framework7-root > .view,
html.with-panel-left-push .framework7-root > .view,
html.with-panel-right-push .framework7-root > .view,
html.with-panel-closing .framework7-root > .view {
  transition-duration: var(--f7-panel-transition-duration);
  transition-property: transform;
  transition-timing-function: var(--f7-panel-transition-timing-function);
}
html.with-panel .framework7-root > .views .page-content,
html.with-panel .framework7-root > .view .page-content {
  overflow: hidden;
  -webkit-overflow-scrolling: auto;
}
html.with-panel-left-reveal .views,
html.with-panel-left-push .views,
html.with-panel-left-reveal .framework7-root > .view,
html.with-panel-left-push .framework7-root > .view {
  transform: translate3d(var(--f7-panel-left-width, var(--f7-panel-width)), 0, 0);
}
html.with-panel-right-reveal .views,
html.with-panel-right-push .views,
html.with-panel-right-reveal .framework7-root > .view,
html.with-panel-right-push .framework7-root > .view {
  transform: translate3d(calc(-1 * var(--f7-panel-right-width, var(--f7-panel-width))), 0, 0);
}
.page > .panel-backdrop {
  z-index: 290;
}
.page > .panel-reveal,
.page .panel-push {
  z-index: 1;
}
.page > .panel-cover,
.page > .panel-floating {
  z-index: 300;
}
.page.with-panel-left-reveal > .page-content,
.page.with-panel-right-reveal > .page-content,
.page.with-panel-left-push > .page-content,
.page.with-panel-right-push > .page-content,
.page.with-panel-closing > .page-content,
.page.with-panel-left-reveal > .tabs,
.page.with-panel-right-reveal > .tabs,
.page.with-panel-left-push > .tabs,
.page.with-panel-right-push > .tabs,
.page.with-panel-closing > .tabs {
  transition-duration: var(--f7-panel-transition-duration);
  transition-property: transform;
  transition-timing-function: var(--f7-panel-transition-timing-function);
}
.page.with-panel-left-reveal > .page-content,
.page.with-panel-left-push > .page-content,
.page.with-panel-left-reveal > .tabs,
.page.with-panel-left-push > .tabs {
  transform: translate3d(var(--f7-panel-left-width, var(--f7-panel-width)), 0, 0);
}
.page.with-panel-right-reveal > .page-content,
.page.with-panel-right-push > .page-content,
.page.with-panel-right-reveal > .tabs,
.page.with-panel-right-push > .tabs {
  transform: translate3d(calc(-1 * var(--f7-panel-right-width, var(--f7-panel-width))), 0, 0);
}
.with-panel-closing .panel-backdrop-in {
  visibility: visible;
  pointer-events: auto;
  opacity: 0;
}
.with-panel-left-reveal .panel-backdrop-in,
.with-panel-right-reveal .panel-backdrop-in,
.with-panel-left-cover .panel-backdrop-in,
.with-panel-right-cover .panel-backdrop-in,
.with-panel-left-floating .panel-backdrop-in,
.with-panel-right-floating .panel-backdrop-in,
.with-panel-left-push .panel-backdrop-in,
.with-panel-right-push .panel-backdrop-in {
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
}
.with-panel-left-reveal .panel-backdrop-in,
.with-panel-left-push .panel-backdrop-in {
  transform: translate3d(var(--f7-panel-left-width, var(--f7-panel-width)), 0, 0);
}
.with-panel-right-reveal .panel-backdrop-in,
.with-panel-right-push .panel-backdrop-in {
  transform: translate3d(calc(-1 * var(--f7-panel-right-width, var(--f7-panel-width))), 0, 0);
}
.with-panel-left-cover .panel-left,
.with-panel-left-push .panel-left {
  transform: translate3d(0px, 0, 0);
}
.with-panel-left-floating .panel-left {
  transform: translate3d(8px, 0, 0);
}
.with-panel-right-cover .panel-right,
.with-panel-right-push .panel-right {
  transform: translate3d(0px, 0, 0);
}
.with-panel-right-floating .panel-right {
  transform: translate3d(-8px, 0, 0);
}
.panel-resizable {
  max-width: 100%;
}
.panel-resize-handler {
  position: absolute;
  top: 0;
  height: 100%;
  width: 6px;
  cursor: col-resize;
  z-index: 6000;
  display: none;
}
.panel-resizable .panel-resize-handler {
  display: block;
}
.panel-left.panel-cover .panel-resize-handler,
.panel-left.panel-floating .panel-resize-handler {
  right: -3px;
}
.panel-left.panel-reveal .panel-resize-handler,
.panel-left.panel-push .panel-resize-handler {
  right: 0;
}
.panel-right.panel-cover .panel-resize-handler,
.panel-right.panel-floating .panel-resize-handler {
  left: -3px;
}
.panel-right.panel-reveal .panel-resize-handler,
.panel-right.panel-push .panel-resize-handler {
  left: 0;
}
.panel-left.panel-in-collapsed ~ .views,
.panel-left.panel-in-collapsed ~ .view,
.panel-left.panel-in-collapsed ~ .page-content,
.panel-left.panel-in-collapsed ~ .tabs {
  margin-left: var(--f7-panel-left-collapsed-width, var(--f7-panel-collapsed-width));
}
.page.with-panel-left-reveal .panel-left.panel-in-collapsed ~ .page-content,
.page.with-panel-left-reveal .panel-left.panel-in-collapsed ~ .tabs,
html.with-panel-left-reveal .panel-left.panel-in-collapsed ~ .views,
html.with-panel-left-reveal .panel-left.panel-in-collapsed ~ .view {
  transform: translate3d(calc(var(--f7-panel-left-width, var(--f7-panel-width)) - var(--f7-panel-left-collapsed-width, var(--f7-panel-collapsed-width))), 0, 0);
}
.panel-right.panel-in-collapsed ~ .views,
.panel-right.panel-in-collapsed ~ .view,
.panel-right.panel-in-collapsed ~ .page-content,
.panel-right.panel-in-collapsed ~ .tabs {
  margin-right: var(--f7-panel-right-collapsed-width, var(--f7-panel-collapsed-width));
}
.page.with-panel-right-reveal .panel-right.panel-in-collapsed ~ .page-content,
.page.with-panel-right-reveal .panel-right.panel-in-collapsed ~ .tabs,
html.with-panel-right-reveal .panel-right.panel-in-collapsed ~ .views,
html.with-panel-right-reveal .panel-right.panel-in-collapsed ~ .view {
  transform: translate3d(calc(var(--f7-panel-right-collapsed-width, var(--f7-panel-collapsed-width)) - var(--f7-panel-right-width, var(--f7-panel-width))), 0, 0);
}
html.with-modal-popup-push .framework7-root,
html.with-modal-popup-push-closing .framework7-root {
  --f7-panelPushScale: var(--f7-popup-push-scale);
  --f7-panelPushTransitionDuration: var(--f7-popup-transition-duration);
  --f7-panelPushTransitionTimingFunction: var(--f7-popup-transition-timing-function);
  --f7-panelPushBorderRadius: var(--f7-popup-push-border-radius);
}
html.with-modal-sheet-push .framework7-root,
html.with-modal-sheet-push-closing .framework7-root {
  --f7-panelPushScale: var(--f7-sheet-push-scale);
  --f7-panelPushTransitionDuration: var(--f7-sheet-transition-duration);
  --f7-panelPushTransitionTimingFunction: var(--f7-sheet-transition-timing-function);
  --f7-panelPushBorderRadius: var(--f7-sheet-push-border-radius);
}
html.with-modal-popup-push .framework7-root > .panel-in,
html.with-modal-sheet-push .framework7-root > .panel-in,
html.with-modal-popup-push .framework7-root > .panel-out,
html.with-modal-sheet-push .framework7-root > .panel-out {
  transition-duration: var(--f7-panelPushTransitionDuration);
  transition-timing-function: var(--f7-panelPushTransitionTimingFunction);
}
html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-left,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-left,
html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-left,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-left,
html.with-modal-popup-push .framework7-root > .panel-in.panel-push.panel-left,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-push.panel-left,
html.with-modal-popup-push .framework7-root > .panel-out.panel-push.panel-left,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-push.panel-left {
  transform: scale(var(--f7-panelPushScale, 1));
  transform-origin: 50vw center;
  border-top-left-radius: var(--f7-panelPushBorderRadius);
}
html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-left .view,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-left .view,
html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-left .view,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-left .view,
html.with-modal-popup-push .framework7-root > .panel-in.panel-push.panel-left .view,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-push.panel-left .view,
html.with-modal-popup-push .framework7-root > .panel-out.panel-push.panel-left .view,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-push.panel-left .view {
  border-top-left-radius: var(--f7-panelPushBorderRadius);
}
html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-right,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-right,
html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-right,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-right,
html.with-modal-popup-push .framework7-root > .panel-in.panel-push.panel-right,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-push.panel-right,
html.with-modal-popup-push .framework7-root > .panel-out.panel-push.panel-right,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-push.panel-right {
  transform: scale(var(--f7-panelPushScale, 1));
  transform-origin: calc(var(--f7-panel-left-width, var(--f7-panel-width)) - 50vw) center;
  border-top-right-radius: var(--f7-panelPushBorderRadius);
}
html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-right .view,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-right .view,
html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-right .view,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-right .view,
html.with-modal-popup-push .framework7-root > .panel-in.panel-push.panel-right .view,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-push.panel-right .view,
html.with-modal-popup-push .framework7-root > .panel-out.panel-push.panel-right .view,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-push.panel-right .view {
  border-top-right-radius: var(--f7-panelPushBorderRadius);
}
html.with-modal-popup-push .framework7-root > .panel-in.panel-cover.panel-left,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-cover.panel-left,
html.with-modal-popup-push .framework7-root > .panel-out.panel-cover.panel-left,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-cover.panel-left {
  transform: translate3d(calc(-1 * var(--f7-panel-left-width, var(--f7-panel-width))), 0, 0px);
}
html.with-modal-popup-push .framework7-root > .panel-in.panel-cover.panel-right,
html.with-modal-sheet-push .framework7-root > .panel-in.panel-cover.panel-right,
html.with-modal-popup-push .framework7-root > .panel-out.panel-cover.panel-right,
html.with-modal-sheet-push .framework7-root > .panel-out.panel-cover.panel-right {
  transform: translate3d(var(--f7-panel-right-width, var(--f7-panel-width)), 0, 0px);
}
html.with-modal-popup-push-closing .framework7-root > .panel-in,
html.with-modal-sheet-push-closing .framework7-root > .panel-in {
  transition-duration: var(--f7-panelPushTransitionDuration);
  transition-timing-function: var(--f7-panelPushTransitionTimingFunction);
}
html.with-modal-popup-push-closing .framework7-root > .panel-in.panel-reveal.panel-left,
html.with-modal-sheet-push-closing .framework7-root > .panel-in.panel-reveal.panel-left,
html.with-modal-popup-push-closing .framework7-root > .panel-in.panel-push.panel-left,
html.with-modal-sheet-push-closing .framework7-root > .panel-in.panel-push.panel-left {
  transform-origin: 50vw center;
}
html.with-modal-popup-push-closing .framework7-root > .panel-in.panel-reveal.panel-right,
html.with-modal-sheet-push-closing .framework7-root > .panel-in.panel-reveal.panel-right,
html.with-modal-popup-push-closing .framework7-root > .panel-in.panel-push.panel-right,
html.with-modal-sheet-push-closing .framework7-root > .panel-in.panel-push.panel-right {
  transform-origin: calc(var(--f7-panel-right-width, var(--f7-panel-width)) - 50vw) center;
}
.md .panel-cover {
  overflow: hidden;
}
.md .panel-cover.panel-left {
  border-radius: 0 16px 16px 0;
}
.md .panel-cover.panel-right {
  border-radius: 16px 0 0 16px;
}
/* === Card === */
:root {
  --f7-card-margin-horizontal: 16px;
  --f7-card-margin-vertical: 16px;
  --f7-card-content-padding-horizontal: 16px;
  --f7-card-content-padding-vertical: 16px;
  --f7-card-font-size: inherit;
  --f7-card-header-text-color: inherit;
  --f7-card-header-font-weight: 400;
  --f7-card-header-padding-horizontal: 16px;
  --f7-card-footer-font-weight: 400;
  --f7-card-footer-font-size: inherit;
  --f7-card-footer-padding-horizontal: 16px;
  --f7-card-expandable-font-size: 16px;
  --f7-card-expandable-tablet-width: 670px;
  --f7-card-expandable-tablet-height: 670px;
}
.ios {
  --f7-card-border-radius: 8px;
  --f7-card-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);
  --f7-card-header-font-size: 17px;
  --f7-card-header-padding-vertical: 10px;
  --f7-card-header-min-height: 44px;
  --f7-card-footer-text-color: rgba(0, 0, 0, 0.45);
  --f7-card-footer-padding-vertical: 10px;
  --f7-card-footer-min-height: 44px;
  --f7-card-expandable-margin-horizontal: 20px;
  --f7-card-expandable-margin-vertical: 30px;
  --f7-card-expandable-box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.3);
  --f7-card-expandable-border-radius: 16px;
  --f7-card-expandable-tablet-border-radius: 16px;
  --f7-card-expandable-header-font-size: 27px;
  --f7-card-expandable-header-font-weight: bold;
  --f7-card-text-color: inherit;
  --f7-card-bg-color: #fff;
  --f7-card-expandable-bg-color: #fff;
  --f7-card-outline-border-color: rgba(0, 0, 0, 0.12);
  --f7-card-header-border-color: rgba(0, 0, 0, 0.1);
  --f7-card-footer-border-color: rgba(0, 0, 0, 0.1);
}
.ios .dark,
.ios.dark {
  --f7-card-bg-color: #1c1c1d;
  --f7-card-expandable-bg-color: #1c1c1d;
  --f7-card-outline-border-color: rgba(255, 255, 255, 0.15);
  --f7-card-header-border-color: rgba(255, 255, 255, 0.15);
  --f7-card-footer-border-color: rgba(255, 255, 255, 0.15);
  --f7-card-footer-text-color: rgba(255, 255, 255, 0.55);
}
.md {
  --f7-card-border-radius: 16px;
  --f7-card-box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2),
                        0px 1px 1px 0px rgba(0, 0, 0, 0.14),
                        0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  --f7-card-header-font-size: 22px;
  --f7-card-header-padding-vertical: 16px;
  --f7-card-header-min-height: 48px;
  --f7-card-footer-padding-vertical: 16px;
  --f7-card-footer-min-height: 48px;
  --f7-card-expandable-margin-horizontal: 12px;
  --f7-card-expandable-margin-vertical: 24px;
  --f7-card-expandable-box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2),
                                   0px 10px 14px 1px rgba(0, 0, 0, 0.14),
                                   0px 4px 18px 3px rgba(0, 0, 0, 0.12);
  --f7-card-expandable-border-radius: 16px;
  --f7-card-expandable-tablet-border-radius: 16px;
  --f7-card-expandable-header-font-size: 22px;
  --f7-card-expandable-header-font-weight: 500;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-card-bg-color: var(--f7-md-surface-1);
  --f7-card-expandable-bg-color: var(--f7-md-surface-1);
  --f7-card-outline-border-color: var(--f7-md-outline);
  --f7-card-header-border-color: var(--f7-md-outline);
  --f7-card-footer-border-color: var(--f7-md-outline);
  --f7-card-text-color: var(--f7-md-on-surface);
  --f7-card-footer-text-color: var(--f7-md-on-surface-variant);
}
.cards-list > ul:before,
.card .list > ul:before,
.cards-list > ul:after,
.card .list > ul:after {
  display: none !important;
}
.cards-list ul,
.card .list ul {
  background: none;
}
.card {
  background: var(--f7-card-bg-color);
  position: relative;
  border-radius: var(--f7-card-border-radius);
  font-size: var(--f7-card-font-size);
  margin-top: var(--f7-card-margin-vertical);
  margin-bottom: var(--f7-card-margin-vertical);
  margin-left: calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-left));
  margin-right: calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-right));
  color: var(--f7-card-text-color);
}
.card .list,
.card .block {
  margin: 0;
}
.row:not(.no-gap) .col > .card {
  margin-left: 0;
  margin-right: 0;
}
.card-raised {
  box-shadow: var(--f7-card-box-shadow);
}
.card-outline,
.ios .card-outline-ios,
.md .card-outline-md {
  border: 1px solid var(--f7-card-outline-border-color);
}
.card-content {
  position: relative;
}
.card-content-padding {
  position: relative;
  padding: var(--f7-card-content-padding-vertical) var(--f7-card-content-padding-horizontal);
}
.card-content-padding > .list,
.card-content-padding > .block {
  margin: calc(-1 * var(--f7-card-content-padding-vertical)) calc(-1 * var(--f7-card-content-padding-horizontal));
}
.card-content-padding > p:first-child {
  margin-top: 0;
}
.card-content-padding > p:last-child {
  margin-bottom: 0;
}
.card-header {
  min-height: var(--f7-card-header-min-height);
  color: var(--f7-card-header-text-color);
  font-size: var(--f7-card-header-font-size);
  font-weight: var(--f7-card-header-font-weight);
  padding: var(--f7-card-header-padding-vertical) var(--f7-card-header-padding-horizontal);
}
.card-header.card-header-divider,
.card-header-divider .card-header,
.card-dividers .card-header {
  border-bottom: 1px solid var(--f7-card-header-border-color);
}
.card-footer {
  min-height: var(--f7-card-footer-min-height);
  color: var(--f7-card-footer-text-color);
  font-size: var(--f7-card-footer-font-size);
  font-weight: var(--f7-card-footer-font-weight);
  padding: var(--f7-card-footer-padding-vertical) var(--f7-card-footer-padding-horizontal);
}
.card-footer.card-footer-divider,
.card-footer-divider .card-footer,
.card-dividers .card-footer {
  border-top: 1px solid var(--f7-card-header-border-color);
}
.card-footer a.link {
  overflow: hidden;
}
.card-header,
.card-footer {
  position: relative;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.card-header[valign='top'],
.card-footer[valign='top'] {
  align-items: flex-start;
}
.card-header[valign='bottom'],
.card-footer[valign='bottom'] {
  align-items: flex-end;
}
.card-header a.link,
.card-footer a.link {
  position: relative;
}
.card-header a.link i.icon,
.card-footer a.link i.icon {
  display: block;
}
.card-header a.icon-only,
.card-footer a.icon-only {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
}
.card-header {
  border-radius: var(--f7-card-border-radius) var(--f7-card-border-radius) 0 0;
}
.card-footer {
  border-radius: 0 0 var(--f7-card-border-radius) var(--f7-card-border-radius);
}
.card-expandable {
  overflow: hidden;
  height: 300px;
  background: var(--f7-card-expandable-bg-color);
  position: relative;
  transform-origin: center center;
  transition-property: transform, border-radius;
  border-radius: var(--f7-card-expandable-border-radius);
  z-index: 2;
  transition-duration: 200ms;
  margin-left: calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-left));
  margin-right: calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-right));
  margin-top: var(--f7-card-expandable-margin-vertical);
  margin-bottom: var(--f7-card-expandable-margin-vertical);
  font-size: var(--f7-card-expandable-font-size);
}
.card-expandable.card-raised {
  box-shadow: var(--f7-card-expandable-box-shadow);
}
.card-expandable:not(.card-opened) {
  -webkit-user-select: none;
          user-select: none;
}
.card-expandable.card-no-transition {
  transition-duration: 0ms;
}
.card-expandable.card-expandable-animate-width .card-content {
  transition-property: width, transform;
  width: 100%;
}
.card-expandable.active-state {
  transform: scale(0.97) translate3d(0, 0, 0);
}
.card-expandable .card-opened-fade-in,
.card-expandable .card-opened-fade-out {
  transition-duration: 400ms;
}
.card-expandable .card-opened-fade-in {
  opacity: 0;
  pointer-events: none;
}
.card-expandable .card-content {
  position: absolute;
  top: 0;
  width: 100vw;
  height: 100vh;
  transform-origin: center top;
  overflow: hidden;
  transition-property: transform;
  box-sizing: border-box;
  pointer-events: none;
  left: 0;
}
.card-expandable .card-content .card-content-padding {
  padding-left: calc(var(--f7-safe-area-left) + var(--f7-card-content-padding-horizontal));
  padding-right: calc(var(--f7-safe-area-right) + var(--f7-card-content-padding-horizontal));
}
.card-expandable.card-opened {
  transition-duration: 0ms;
}
.card-expandable.card-opening,
.card-expandable.card-closing,
.card-expandable.card-transitioning {
  transition-duration: 400ms;
}
.card-expandable.card-opening .card-content {
  transition-duration: 300ms;
}
.card-expandable.card-closing .card-content {
  transition-duration: 500ms;
}
.card-expandable.card-opening,
.card-expandable.card-opened,
.card-expandable.card-closing {
  z-index: 300;
}
.card-expandable.card-opening,
.card-expandable.card-opened {
  border-radius: 0;
}
.card-expandable.card-opening .card-opened-fade-in,
.card-expandable.card-opened .card-opened-fade-in {
  opacity: 1;
  pointer-events: auto;
}
.card-expandable.card-opening .card-opened-fade-out,
.card-expandable.card-opened .card-opened-fade-out {
  opacity: 0;
  pointer-events: none;
}
.card-expandable.card-opened .card-content {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  pointer-events: auto;
}
.card-expandable .card-header {
  font-size: var(--f7-card-expandable-header-font-size);
  font-weight: var(--f7-card-expandable-header-font-weight);
}
.card-prevent-open {
  pointer-events: auto;
}
.card-expandable-size {
  width: 0;
  height: 0;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}
@media (min-width: 768px) and (min-height: 670px) {
  .card-expandable:not(.card-tablet-fullscreen) {
    max-width: var(--f7-card-expandable-tablet-width);
  }
  .card-expandable:not(.card-tablet-fullscreen).card-opened,
  .card-expandable:not(.card-tablet-fullscreen).card-opening {
    border-radius: var(--f7-card-expandable-tablet-border-radius);
  }
  .card-expandable:not(.card-tablet-fullscreen):not(.card-expandable-animate-width) .card-content {
    width: var(--f7-card-expandable-tablet-width);
  }
  .card-expandable:not(.card-tablet-fullscreen) .card-expandable-size {
    width: var(--f7-card-expandable-tablet-width);
    height: var(--f7-card-expandable-tablet-height);
  }
}
.page.page-with-card-opened .page-content {
  overflow: hidden;
}
.card-backdrop {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 299;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.2);
  opacity: 0;
}
.card-backdrop-in {
  animation: card-backdrop-fade-in 400ms forwards;
  pointer-events: auto;
}
.card-backdrop-out {
  animation: card-backdrop-fade-out 400ms forwards;
}
@supports ((-webkit-backdrop-filter: blur(15px)) or (backdrop-filter: blur(15px))) {
  .card-backdrop {
    background: transparent;
    -webkit-backdrop-filter: blur(15px);
            backdrop-filter: blur(15px);
  }
}
@keyframes card-backdrop-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes card-backdrop-fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
/* === Chips === */
:root {
  --f7-chip-font-size: 14px;
  --f7-chip-media-font-size: 16px;
  --f7-chip-delete-button-color: #000;
}
:root .dark,
:root.dark {
  --f7-chip-delete-button-color: #fff;
}
.ios {
  --f7-chip-height: 28px;
  --f7-chip-media-size: 28px;
  --f7-chip-padding-horizontal: 10px;
  --f7-chip-border-radius: 28px;
  --f7-chip-font-weight: normal;
  --f7-chip-outline-border-color: rgba(0, 0, 0, 0.12);
  --f7-chip-bg-color: rgba(0, 0, 0, 0.12);
  --f7-chip-text-color: #000;
  --f7-chip-outline-text-color: #000;
}
.ios .dark,
.ios.dark {
  --f7-chip-bg-color: #333;
  --f7-chip-text-color: #fff;
  --f7-chip-outline-text-color: #fff;
  --f7-chip-outline-border-color: rgba(255, 255, 255, 0.12);
}
.md {
  --f7-chip-font-weight: 500;
  --f7-chip-media-size: 24px;
  --f7-chip-height: 32px;
  --f7-chip-padding-horizontal: 12px;
  --f7-chip-border-radius: 8px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-chip-bg-color: var(--f7-md-secondary-container);
  --f7-chip-text-color: var(--f7-md-on-secondary-container);
  --f7-chip-outline-text-color: var(--f7-md-on-surface);
  --f7-chip-outline-border-color: var(--f7-md-outline);
}
.chip {
  padding-left: var(--f7-chip-padding-horizontal);
  padding-right: var(--f7-chip-padding-horizontal);
  font-weight: var(--f7-chip-font-weight);
  display: inline-flex;
  box-sizing: border-box;
  vertical-align: middle;
  align-items: center;
  margin: 2px 0;
  background-color: var(--f7-chip-bg-color);
  font-size: var(--f7-chip-font-size);
  color: var(--f7-chip-text-color);
  height: var(--f7-chip-height);
  line-height: var(--f7-chip-height);
  border-radius: var(--f7-chip-border-radius);
  position: relative;
}
.chip-media {
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--f7-chip-media-size);
  width: var(--f7-chip-media-size);
  border-radius: var(--f7-chip-media-size);
  text-align: center;
  line-height: var(--f7-chip-media-size);
  box-sizing: border-box;
  color: #fff;
  font-size: var(--f7-chip-media-font-size);
  vertical-align: middle;
}
.chip-media i.icon {
  font-size: calc(var(--f7-chip-media-size) - 8px);
  height: calc(var(--f7-chip-media-size) - 8px);
}
.chip-media img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  border-radius: 50%;
  display: block;
}
.chip-media + .chip-label {
  margin-left: 4px;
}
.chip-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  position: relative;
  flex-shrink: 1;
  min-width: 0;
}
.chip-delete {
  text-align: center;
  cursor: pointer;
  flex-shrink: 0;
  background-repeat: no-repeat;
  width: 24px;
  height: 24px;
  color: var(--f7-chip-delete-button-color);
  opacity: 0.54;
  position: relative;
}
.chip-delete:after {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  line-height: 24px;
}
.chip .chip-delete.active-state {
  opacity: 1;
}
.chip-outline,
.ios .chip-outline-ios,
.md .chip-outline-md {
  border: 1px solid var(--f7-chip-outline-border-color);
  color: var(--f7-chip-outline-text-color);
  background: none;
}
.ios .chip[class*='color-'] {
  --f7-chip-bg-color: var(--f7-theme-color);
  --f7-chip-text-color: #fff;
}
.ios .chip-outline[class*='color-'],
.ios .chip-outline-ios[class*='color-'] {
  --f7-chip-outline-border-color: var(--f7-theme-color);
  --f7-chip-outline-text-color: var(--f7-theme-color);
}
.ios .chip-media {
  margin-left: calc(-1 * var(--f7-chip-padding-horizontal));
}
.ios .chip-delete {
  margin-right: calc(-1 * var(--f7-chip-padding-horizontal));
}
.ios .chip-delete::after {
  content: 'delete_round_ios';
}
.ios .chip-delete:after {
  font-size: 10px;
}
.md .chip-media {
  margin-left: calc(-1 * var(--f7-chip-padding-horizontal) + 4px);
}
.md .chip-label + .chip-delete {
  margin-left: 4px;
}
.md .chip-delete {
  margin-right: calc(-1 * var(--f7-chip-padding-horizontal) + 4px);
}
.md .chip-delete::after {
  content: 'delete_round_md';
  font-size: 16px;
}
/* === Form === */
/* === Input === */
:root {
  --f7-input-bg-color: transparent;
  --f7-label-font-weight: 400;
  --f7-label-height: 16px;
  --f7-label-font-size: 12px;
  --f7-floating-label-scale: calc(16 / 12);
  --f7-input-padding-left: 0px;
  --f7-input-padding-right: 0px;
  --f7-input-error-text-color: #ff3b30;
  --f7-input-error-font-size: 12px;
  --f7-input-error-line-height: 1.4;
  --f7-input-error-font-weight: 400;
  --f7-input-info-font-size: 12px;
  --f7-input-info-line-height: 1.4;
  --f7-textarea-height: 100px;
  /*
  --f7-input-outline-focused-border-color: var(--f7-theme-color);
  --f7-input-outline-invalid-border-color: var(--f7-input-error-text-color);
  */
}
.ios {
  --f7-input-item-bg-color: transparent;
  --f7-input-item-border-radius: 0px;
  --f7-input-height: 40px;
  --f7-input-font-size: 16px;
  --f7-input-placeholder-color: #a9a9a9;
  --f7-textarea-padding-vertical: 8px;
  /*
  --f7-input-focused-border-color: var(--f7-list-item-border-color);
  --f7-input-invalid-border-color: var(--f7-list-item-border-color);
  --f7-input-invalid-text-color: var(--f7-input-error-text-color);
  */
  --f7-label-text-color: inherit;
  /*
  --f7-label-focused-text-color: var(--f7-label-text-color);
  --f7-label-invalid-text-color: var(--f7-label-text-color);
  */
  --f7-input-clear-button-size: 14px;
  --f7-input-outline-border-radius: 8px;
  --f7-input-text-color: #000000;
  --f7-input-info-text-color: rgba(0, 0, 0, 0.45);
  --f7-input-clear-button-color: rgba(0, 0, 0, 0.45);
  --f7-input-outline-border-color: #bbb;
}
.ios .dark,
.ios.dark {
  --f7-input-text-color: #fff;
  --f7-input-info-text-color: rgba(255, 255, 255, 0.55);
  --f7-input-clear-button-color: rgba(255, 255, 255, 0.5);
  --f7-input-outline-border-color: #444;
}
.md {
  --f7-input-item-border-radius: 4px 4px 0 0;
  --f7-input-height: 24px;
  --f7-input-font-size: 16px;
  --f7-textarea-padding-vertical: 0px;
  --f7-input-outline-border-radius: 4px;
  /*
  --f7-input-focused-border-color: var(--f7-theme-color);
  --f7-input-invalid-border-color: var(--f7-input-error-text-color);
  --f7-input-invalid-text-color: var(--f7-input-text-color);
  */
  /*
  --f7-label-focused-text-color: var(--f7-theme-color);
  --f7-label-invalid-text-color: var(--f7-input-error-text-color );
  */
  --f7-floating-label-scale: calc(16 / 12);
  --f7-input-clear-button-size: 24px;
  --f7-input-info-text-color: rgba(0, 0, 0, 0.45);
}
.md .dark,
.md.dark {
  --f7-input-info-text-color: rgba(255, 255, 255, 0.45);
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-input-placeholder-color: var(--f7-md-on-surface-variant);
  --f7-input-item-bg-color: var(--f7-md-surface-variant);
  --f7-input-border-color: var(--f7-md-outline);
  --f7-input-clear-button-color: var(--f7-md-on-surface-variant);
  --f7-input-outline-border-color: var(--f7-md-outline);
  --f7-input-text-color: var(--f7-md-on-surface);
  --f7-label-text-color: var(--f7-md-on-surface-variant);
}
input[type='text'],
input[type='password'],
input[type='search'],
input[type='email'],
input[type='tel'],
input[type='url'],
input[type='date'],
input[type='month'],
input[type='datetime-local'],
input[type='time'],
input[type='number'],
select,
textarea {
  box-sizing: border-box;
  -webkit-appearance: none;
          appearance: none;
  border: none;
  box-shadow: none;
  border-radius: 0;
  outline: 0;
  display: block;
  padding: 0;
  margin: 0;
  font-family: inherit;
  background: none;
  resize: none;
  font-size: inherit;
  color: inherit;
}
input[type='text']:-internal-autofill-selected,
input[type='password']:-internal-autofill-selected,
input[type='search']:-internal-autofill-selected,
input[type='email']:-internal-autofill-selected,
input[type='tel']:-internal-autofill-selected,
input[type='url']:-internal-autofill-selected,
input[type='date']:-internal-autofill-selected,
input[type='month']:-internal-autofill-selected,
input[type='datetime-local']:-internal-autofill-selected,
input[type='time']:-internal-autofill-selected,
input[type='number']:-internal-autofill-selected,
select:-internal-autofill-selected,
textarea:-internal-autofill-selected {
  background-color: transparent !important;
  transition: background-color 5000s ease-in-out 0s !important;
}
input[type='text']:autofill,
input[type='password']:autofill,
input[type='search']:autofill,
input[type='email']:autofill,
input[type='tel']:autofill,
input[type='url']:autofill,
input[type='date']:autofill,
input[type='month']:autofill,
input[type='datetime-local']:autofill,
input[type='time']:autofill,
input[type='number']:autofill,
select:autofill,
textarea:autofill,
input[type='text']:-webkit-autofill-and-obscured,
input[type='password']:-webkit-autofill-and-obscured,
input[type='search']:-webkit-autofill-and-obscured,
input[type='email']:-webkit-autofill-and-obscured,
input[type='tel']:-webkit-autofill-and-obscured,
input[type='url']:-webkit-autofill-and-obscured,
input[type='date']:-webkit-autofill-and-obscured,
input[type='month']:-webkit-autofill-and-obscured,
input[type='datetime-local']:-webkit-autofill-and-obscured,
input[type='time']:-webkit-autofill-and-obscured,
input[type='number']:-webkit-autofill-and-obscured,
select:-webkit-autofill-and-obscured,
textarea:-webkit-autofill-and-obscured {
  background-color: transparent !important;
  -webkit-transition: background-color 5000s ease-in-out 0s !important;
  transition: background-color 5000s ease-in-out 0s !important;
}
.textarea-resizable-shadow {
  opacity: 0;
  position: absolute;
  z-index: -1000;
  pointer-events: none;
  left: -1000px;
  top: -1000px;
  visibility: hidden;
}
.list input[type='text'],
.list input[type='password'],
.list input[type='search'],
.list input[type='email'],
.list input[type='tel'],
.list input[type='url'],
.list input[type='date'],
.list input[type='month'],
.list input[type='datetime-local'],
.list input[type='time'],
.list input[type='number'],
.list select {
  width: 100%;
  height: var(--f7-input-height);
  color: var(--f7-input-text-color);
  font-size: var(--f7-input-font-size);
  background-color: var(--f7-input-bg-color, transparent);
  padding-left: var(--f7-input-padding-left);
  padding-right: var(--f7-input-padding-right);
}
.list input[type='text']::placeholder,
.list input[type='password']::placeholder,
.list input[type='search']::placeholder,
.list input[type='email']::placeholder,
.list input[type='tel']::placeholder,
.list input[type='url']::placeholder,
.list input[type='date']::placeholder,
.list input[type='month']::placeholder,
.list input[type='datetime-local']::placeholder,
.list input[type='time']::placeholder,
.list input[type='number']::placeholder,
.list select::placeholder {
  color: var(--f7-input-placeholder-color);
}
.list textarea {
  width: 100%;
  color: var(--f7-input-text-color);
  font-size: var(--f7-input-font-size);
  resize: none;
  line-height: 1.4;
  height: var(--f7-textarea-height);
  background-color: var(--f7-input-bg-color, transparent);
  padding-top: var(--f7-textarea-padding-vertical);
  padding-bottom: var(--f7-textarea-padding-vertical);
  padding-left: var(--f7-input-padding-left);
  padding-right: var(--f7-input-padding-right);
}
.list textarea::placeholder {
  color: var(--f7-input-placeholder-color);
}
.list textarea.resizable {
  height: calc(var(--f7-input-height) + var(--f7-textarea-padding-vertical) * 2);
}
.list input[type='time'],
.list input[type='date'],
.list input[type='month'],
.list input[type='datetime-local'] {
  line-height: var(--f7-input-height);
}
.list .item-label,
.list .item-floating-label {
  width: auto;
  vertical-align: top;
  flex-shrink: 0;
  font-size: var(--f7-label-font-size);
  font-weight: var(--f7-label-font-weight);
  line-height: var(--f7-label-height);
  color: var(--f7-label-text-color);
  transition-duration: 200ms;
  transition-property: transform, color;
}
.list .item-floating-label {
  color: var(--f7-input-placeholder-color);
  max-width: calc(100% / var(--f7-floating-label-scale));
  pointer-events: none;
  left: var(--f7-input-padding-left);
  transform-origin: left center;
}
.list .item-floating-label ~ .item-input-wrap input::placeholder,
.list .item-floating-label ~ .item-input-wrap textarea::placeholder {
  opacity: 0;
  transition-duration: 100ms;
}
.list .item-floating-label ~ .item-input-wrap input.input-focused::placeholder,
.list .item-floating-label ~ .item-input-wrap textarea.input-focused::placeholder {
  opacity: 1;
  transition-duration: 300ms;
}
.list .item-input-with-value .item-floating-label {
  color: var(--f7-label-text-color);
}
.list .item-input-with-value .item-floating-label,
.list .item-input-focused .item-floating-label {
  transform: scale(1) translateY(0) !important;
}
.list .item-input-wrap {
  width: 100%;
  flex-shrink: 1;
  position: relative;
}
.item-input,
.input {
  position: relative;
}
.item-input .item-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.item-input-error-message,
.input-error-message {
  font-size: var(--f7-input-error-font-size);
  line-height: var(--f7-input-error-line-height);
  color: var(--f7-input-error-text-color);
  font-weight: var(--f7-input-error-font-weight);
  display: none;
  box-sizing: border-box;
}
.item-input-info,
.input-info {
  font-size: var(--f7-input-info-font-size);
  line-height: var(--f7-input-info-line-height);
  color: var(--f7-input-info-text-color);
}
.item-input-invalid .item-input-error-message,
.input-invalid .item-input-error-message,
.item-input-invalid .input-error-message,
.input-invalid .input-error-message {
  display: block;
}
.item-input-invalid .item-input-info,
.input-invalid .item-input-info,
.item-input-invalid .input-info,
.input-invalid .input-info {
  display: none;
}
.input {
  position: relative;
}
.input input,
.input select,
.input textarea {
  width: 100%;
}
.input-clear-button {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition-duration: 100ms;
  position: absolute;
  top: 50%;
  border: none;
  padding: 0;
  margin: 0;
  outline: 0;
  z-index: 1;
  cursor: pointer;
  background: none;
  width: var(--f7-input-clear-button-size);
  height: var(--f7-input-clear-button-size);
  margin-top: calc(-1 * var(--f7-input-clear-button-size) / 2);
  color: var(--f7-input-clear-button-color);
  right: 0;
}
.input-clear-button:after {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
}
.input-clear-button:before {
  position: absolute;
  content: '';
  left: 50%;
  top: 50%;
}
.item-input-wrap .input-clear-button {
  top: calc(var(--f7-input-height) / 2);
}
.input-clear-button.active-state {
  opacity: 0.75 !important;
}
.input-with-value ~ .input-clear-button,
.item-input-with-value .input-clear-button,
.input-with-value .input-clear-button {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}
.input-dropdown-wrap,
.input-dropdown {
  position: relative;
}
.input-dropdown-wrap:before,
.input-dropdown:before {
  content: '';
  pointer-events: none;
  position: absolute;
  top: 50%;
  margin-top: -2px;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid #727272;
  right: 6px;
}
.input-dropdown-wrap select,
.input-dropdown select,
.input-dropdown-wrap input,
.input-dropdown input,
.input-dropdown-wrap textarea,
.input-dropdown textarea {
  padding-right: calc(20px + var(--f7-input-padding-right));
}
.item-input-outline .item-content::after,
.item-input-outline.item-content::after,
.input-outline::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 8px;
  bottom: 8px;
  border: 1px solid var(--f7-input-outline-border-color);
  border-radius: var(--f7-input-outline-border-radius);
  pointer-events: none;
  box-sizing: border-box;
  transition-duration: 200ms;
}
.item-input-outline .item-content .item-label,
.item-input-outline.item-content .item-label,
.input-outline .item-label,
.item-input-outline .item-content .item-floating-label,
.item-input-outline.item-content .item-floating-label,
.input-outline .item-floating-label {
  pointer-events: none;
  background: var(--f7-page-bg-color);
  z-index: 1;
  padding: 4px;
}
.item-input-outline .item-content.item-input-focused::after,
.item-input-outline.item-content.item-input-focused::after,
.input-outline.item-input-focused::after,
.item-input-outline .item-content.input-focused::after,
.item-input-outline.item-content.input-focused::after,
.input-outline.input-focused::after {
  border-width: 2px;
  border-color: var(--f7-input-outline-invalid-border-color, var(--f7-theme-color));
}
.item-input-outline .item-content.item-input-invalid::after,
.item-input-outline.item-content.item-input-invalid::after,
.input-outline.item-input-invalid::after,
.item-input-outline .item-content.input-invalid::after,
.item-input-outline.item-content.input-invalid::after,
.input-outline.input-invalid::after {
  border-width: 2px;
  border-color: var(--f7-input-outline-invalid-border-color, var(--f7-input-error-text-color));
}
.block-strong .item-input-outline .item-label,
.block-strong .item-input-outline .item-floating-label,
.ios .block-strong-ios .item-input-outline .item-label,
.ios .block-strong-ios .item-input-outline .item-floating-label,
.md .block-strong-md .item-input-outline .item-label,
.md .block-strong-md .item-input-outline .item-floating-label {
  background: var(--f7-block-strong-bg-color) !important;
}
.list-strong .item-input-outline .item-floating-label,
.list-strong .item-input-outline .item-label,
.ios .list-strong-ios .item-input-outline .item-floating-label,
.ios .list-strong-ios .item-input-outline .item-label,
.md .list-strong-md .item-input-outline .item-floating-label,
.md .list-strong-md .item-input-outline .item-label {
  background: var(--f7-list-strong-bg-color) !important;
}
.dark option {
  background-color: var(--f7-page-bg-color);
}
.ios .item-label + .item-input-wrap,
.ios .item-floating-label + .item-input-wrap {
  margin-top: 0;
}
.ios .item-floating-label {
  transform: scale(var(--f7-floating-label-scale)) translateY(calc(var(--f7-label-height) + 25%));
}
.ios .item-input-focused .item-floating-label {
  color: var(--f7-label-text-color);
}
.ios .item-input .item-media {
  align-self: flex-start;
}
.ios .item-input-wrap {
  margin-top: calc(-1 * var(--f7-list-item-padding-vertical));
  margin-bottom: calc(-1 * var(--f7-list-item-padding-vertical));
}
.ios .item-input:not(.item-input-outline) .item-content,
.ios .item-input:not(.item-input-outline).item-content {
  background: var(--f7-input-item-bg-color);
}
.ios .item-input-error-message,
.ios .item-input-info,
.ios .input-error-message,
.ios .input-info {
  position: relative;
  margin-bottom: 6px;
  margin-top: -8px;
}
.ios .item-input-focused .item-label,
.ios .item-input-focused .item-floating-label {
  color: var(--f7-label-focused-text-color, var(--f7-label-text-color));
}
.ios .item-input-focused .item-inner:after {
  background: var(--f7-input-focused-border-color, var(--f7-list-item-border-color));
}
.ios .item-input-invalid .item-label,
.ios .item-input-invalid .item-floating-label {
  color: var(--f7-label-invalid-text-color, var(--f7-label-text-color));
}
.ios .item-input-invalid .item-inner:after {
  background: var(--f7-input-invalid-border-color, var(--f7-list-item-border-color));
}
.ios .item-input-invalid input,
.ios .input-invalid input,
.ios .item-input-invalid select,
.ios .input-invalid select,
.ios .item-input-invalid textarea,
.ios .input-invalid textarea {
  color: var(--f7-input-invalid-text-color, var(--f7-input-error-text-color));
}
.ios .input-clear-button:after {
  content: 'delete_round_ios';
  font-size: calc(var(--f7-input-clear-button-size) / (14 / 10));
  line-height: 1.4;
}
.ios .input-clear-button:before {
  width: 44px;
  height: 44px;
  margin-left: -22px;
  margin-top: -22px;
}
.ios .item-input-outline .item-content,
.ios .item-input-outline.item-content {
  padding-top: 8px;
  padding-bottom: 8px;
  margin-left: 16px;
  margin-right: 16px;
}
.ios li.item-input-outline:first-child,
.ios li:first-child > .item-input-outline {
  padding-top: 16px;
}
.ios li.item-input-outline:first-child::after,
.ios li:first-child > .item-input-outline::after {
  top: 16px;
}
.ios li.item-input-outline:last-child,
.ios li:last-child > .item-input-outline {
  padding-bottom: 16px;
}
.ios li.item-input-outline:last-child::after,
.ios li:last-child > .item-input-outline::after {
  bottom: 16px;
}
.ios .item-input-outline .item-content .item-inner,
.ios .item-input-outline.item-content .item-inner,
.ios .input-outline .item-inner {
  display: block;
  padding-top: 0px;
  padding-bottom: 0px;
}
.ios .item-input-outline .item-content .item-input-wrap,
.ios .item-input-outline.item-content .item-input-wrap,
.ios .input-outline .item-input-wrap {
  margin-top: 2px;
}
.ios .item-input-outline .item-content .item-title + .item-input-wrap,
.ios .item-input-outline.item-content .item-title + .item-input-wrap,
.ios .input-outline .item-title + .item-input-wrap {
  margin-top: -22px;
}
.ios .item-input-outline .item-content .item-label,
.ios .item-input-outline.item-content .item-label,
.ios .input-outline .item-label,
.ios .item-input-outline .item-content .item-floating-label,
.ios .item-input-outline.item-content .item-floating-label,
.ios .input-outline .item-floating-label {
  display: inline-flex;
  margin: -8px -4px -4px;
  top: -4px;
}
.ios .item-input-outline .item-content .item-floating-label,
.ios .item-input-outline.item-content .item-floating-label,
.ios .input-outline .item-floating-label {
  transform: scale(var(--f7-floating-label-scale)) translateY(calc(var(--f7-label-height)));
}
.md .item-input-wrap {
  min-height: var(--f7-input-height);
}
.md .item-floating-label {
  transform: scale(var(--f7-floating-label-scale)) translateY(calc((var(--f7-input-height) / 2) / var(--f7-floating-label-scale)));
}
.md .item-input .item-inner:after {
  display: none !important;
}
.md .item-input .item-content,
.md .item-input.item-content {
  margin-left: 16px;
  margin-right: 16px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.md .input:after {
  content: '';
  position: absolute;
  background-color: var(--f7-input-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.md .input::after {
  transform: scaleY(1) !important;
  transition-duration: 200ms;
  bottom: 0px;
}
.md .input.input-focused::after {
  transform: scaleY(2) !important;
  background: var(--f7-input-focused-border-color, var(--f7-theme-color));
}
.md .input.input-invalid::after {
  transform: scaleY(2) !important;
  background: var(--f7-input-invalid-border-color, var(--f7-input-error-text-color));
}
.md .item-input:not(.item-input-outline) .item-content:after,
.md .item-input:not(.item-input-outline).item-content:after {
  content: '';
  position: absolute;
  background-color: var(--f7-input-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.md .item-input:not(.item-input-outline) .item-content::before,
.md .item-input:not(.item-input-outline).item-content::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  right: 0;
  border-radius: var(--f7-input-item-border-radius);
  background: var(--f7-input-item-bg-color);
  pointer-events: none;
}
.md .item-input:not(.item-input-outline) .item-content::after,
.md .item-input:not(.item-input-outline).item-content::after {
  transform: scaleY(1) !important;
  transition-duration: 200ms;
  bottom: 8px;
}
.md .item-input:not(.item-input-outline) .item-content.item-input-focused::after,
.md .item-input:not(.item-input-outline).item-content.item-input-focused::after {
  transform: scaleY(2) !important;
  background: var(--f7-input-focused-border-color, var(--f7-theme-color));
}
.md .item-input:not(.item-input-outline) .item-content.item-input-invalid::after,
.md .item-input:not(.item-input-outline).item-content.item-input-invalid::after,
.md .item-input:not(.item-input-outline) .item-content.input-invalid::after,
.md .item-input:not(.item-input-outline).item-content.input-invalid::after {
  transform: scaleY(2) !important;
  background: var(--f7-input-invalid-border-color, var(--f7-input-error-text-color));
}
.md .item-input-outline .item-content .item-inner,
.md .item-input-outline.item-content .item-inner,
.md .input-outline .item-inner {
  padding-top: 16px;
  padding-bottom: 16px;
}
.md .item-input-outline .item-content .item-label,
.md .item-input-outline.item-content .item-label,
.md .input-outline .item-label,
.md .item-input-outline .item-content .item-floating-label,
.md .item-input-outline.item-content .item-floating-label,
.md .input-outline .item-floating-label {
  --label-height: calc(var(--f7-label-height) + 8px);
  margin: calc(0px - 16px - var(--label-height) / 2) -4px 4px;
}
.md .item-input-outline .item-content .item-floating-label,
.md .item-input-outline.item-content .item-floating-label,
.md .input-outline .item-floating-label {
  transform: scale(var(--f7-floating-label-scale)) translateY(calc((var(--f7-input-height) / 2) + 8px));
}
.md .item-input-with-error-message,
.md .item-input-with-info,
.md .input-with-error-message,
.md .input-with-info {
  padding-bottom: 24px !important;
}
.md .item-input-error-message,
.md .item-input-info,
.md .input-error-message,
.md .input-info {
  position: absolute;
  top: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
  left: 0;
}
.md .item-input-focused .item-label,
.md .item-input-focused .item-floating-label {
  color: var(--f7-label-focused-text-color, var(--f7-theme-color));
}
.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after,
.md .input-focused:not(.input-outline):after {
  background: var(--f7-input-focused-border-color, var(--f7-theme-color));
}
.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after,
.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after,
.md .input-invalid:not(.input-outline):after,
.md .input-focused:not(.input-outline):after {
  transform: scaleY(2) !important;
}
.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after,
.md .input-invalid:not(.input-outline):after {
  background: var(--f7-input-invalid-border-color, var(--f7-input-error-text-color));
}
.md .item-input-invalid .item-label,
.md .item-input-invalid .item-floating-label {
  color: var(--f7-label-invalid-text-color, var(--f7-input-error-text-color));
}
.md .item-input-invalid input,
.md .input-invalid input,
.md .item-input-invalid select,
.md .input-invalid select,
.md .item-input-invalid textarea,
.md .input-invalid textarea {
  color: var(--f7-input-invalid-text-color, var(--f7-input-text-color));
}
.md .input-clear-button:after {
  font-size: var(--f7-input-clear-button-size);
  content: 'delete_round_md';
  line-height: 1;
}
.md .input-clear-button:before {
  width: 48px;
  height: 48px;
  margin-left: -24px;
  margin-top: -24px;
}
/* === Checkbox === */
:root {
  /* --f7-checkbox-active-color: var(--f7-theme-color); */
  --f7-checkbox-icon-color: #fff;
  --f7-checkbox-extra-margin: 0px;
}
:root .dark,
:root.dark {
  --f7-checkbox-inactive-color: rgba(255, 255, 255, 0.3);
  --f7-checkbox-icon-color: #000;
}
.ios {
  --f7-checkbox-size: 22px;
  --f7-checkbox-border-radius: 50%;
  --f7-checkbox-border-width: 1px;
  --f7-checkbox-inactive-color: #c7c7cc;
}
.md {
  --f7-checkbox-size: 18px;
  --f7-checkbox-border-radius: 2px;
  --f7-checkbox-border-width: 2px;
  --f7-checkbox-inactive-color: #6d6d6d;
}
.checkbox {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  z-index: 1;
  background-color: transparent;
  --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.5);
}
.icon-checkbox,
.checkbox i {
  flex-shrink: 0;
  border: var(--f7-checkbox-border-width) solid var(--f7-checkbox-inactive-color);
  width: var(--f7-checkbox-size);
  height: var(--f7-checkbox-size);
  border-radius: var(--f7-checkbox-border-radius);
  box-sizing: border-box;
  position: relative;
  display: block;
}
.icon-checkbox:after,
.checkbox i:after {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  width: var(--f7-checkbox-size);
  height: var(--f7-checkbox-size);
  line-height: var(--f7-checkbox-size);
  top: calc(0px - var(--f7-checkbox-border-width));
  opacity: 0;
  color: var(--f7-checkbox-icon-color);
  position: relative;
  transition-property: opacity;
  left: calc(0px - var(--f7-checkbox-border-width));
}
.icon-checkbox.color-white,
.checkbox i.color-white,
.color-white .icon-checkbox,
.color-white .checkbox i {
  --f7-theme-color: #fff;
  --f7-checkbox-icon-color: #000;
}
.icon-checkbox.color-black,
.checkbox i.color-black,
.color-black .icon-checkbox,
.color-black .checkbox i {
  --f7-theme-color: #000;
  --f7-checkbox-icon-color: #fff;
}
label.item-checkbox input[type='checkbox']:not(:checked) ~ .icon-checkbox:after,
label.item-checkbox input[type='checkbox']:not(:checked) ~ * .icon-checkbox:after,
.checkbox input[type='checkbox']:not(:checked) ~ i:after {
  font-size: 0;
}
label.item-checkbox input[type='checkbox']:checked ~ .icon-checkbox,
label.item-checkbox input[type='checkbox']:checked ~ * .icon-checkbox,
.checkbox input[type='checkbox']:checked ~ i,
label.item-checkbox input[type='checkbox']:indeterminate ~ .icon-checkbox,
label.item-checkbox input[type='checkbox']:indeterminate ~ * .icon-checkbox,
.checkbox input[type='checkbox']:indeterminate ~ i {
  border-color: var(--f7-checkbox-active-color, var(--f7-theme-color));
  background-color: var(--f7-checkbox-active-color, var(--f7-theme-color));
}
label.item-checkbox input[type='checkbox']:checked ~ .icon-checkbox:after,
label.item-checkbox input[type='checkbox']:checked ~ * .icon-checkbox:after,
.checkbox input[type='checkbox']:checked ~ i:after,
label.item-checkbox input[type='checkbox']:indeterminate ~ .icon-checkbox:after,
label.item-checkbox input[type='checkbox']:indeterminate ~ * .icon-checkbox:after,
.checkbox input[type='checkbox']:indeterminate ~ i:after {
  opacity: 1;
}
label.item-checkbox input[type='checkbox']:indeterminate ~ .icon-checkbox:after,
label.item-checkbox input[type='checkbox']:indeterminate ~ * .icon-checkbox:after,
.checkbox input[type='checkbox']:indeterminate ~ i:after {
  font-size: 0;
  content: '';
  position: absolute;
  top: 50%;
  width: 70%;
  background: var(--f7-checkbox-icon-color);
  height: 2px;
  border-radius: 2px;
  margin-top: -1px;
  transition: 0ms;
  left: 15%;
}
label.item-checkbox,
.checkbox {
  cursor: pointer;
}
label.item-checkbox input[type='checkbox'],
.checkbox input[type='checkbox'],
label.item-checkbox input[type='radio'],
.checkbox input[type='radio'] {
  display: none;
}
label.item-checkbox {
  transition-duration: 300ms;
}
label.item-checkbox .item-content .item-media,
label.item-checkbox.item-content .item-media {
  align-self: center;
}
label.item-checkbox > .icon-checkbox {
  margin-right: calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin));
}
label.item-checkbox.active-state {
  background-color: var(--f7-list-link-pressed-bg-color);
}
label.item-checkbox.active-state:after {
  background-color: transparent;
}
label.item-checkbox.disabled,
.disabled label.item-checkbox {
  opacity: 0.55;
  pointer-events: none;
  opacity: 0.55 !important;
  pointer-events: none !important;
}
label.item-checkbox.item-checkbox-icon-end .item-inner {
  padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right) + var(--f7-checkbox-size) + 16px);
}
label.item-checkbox.item-checkbox-icon-end input[type='checkbox'] ~ .icon-checkbox {
  position: absolute;
  right: calc(var(--f7-safe-area-right) + 16px);
  margin-right: 0;
}
.ios .icon-checkbox:after,
.ios .checkbox i:after {
  content: 'checkbox_ios';
  font-size: 21px;
}
.ios label.item-checkbox.active-state {
  transition-duration: 0ms;
}
.ios label.item-checkbox input[type='checkbox']:indeterminate ~ .icon-checkbox:after,
.ios label.item-checkbox input[type='checkbox']:indeterminate ~ * .icon-checkbox:after,
.ios .checkbox input[type='checkbox']:indeterminate ~ i:after {
  height: 2px;
  margin-top: -1px;
}
.md .icon-checkbox,
.md .checkbox i {
  transition-duration: 200ms;
}
.md .icon-checkbox:after,
.md .checkbox i:after {
  content: 'checkbox_md';
  transition-duration: 200ms;
  font-size: 15px;
}
.md label.item-checkbox {
  position: relative;
  overflow: hidden;
  z-index: 0;
}
/* === Radio === */
:root {
  /*
  --f7-radio-active-color: var(--f7-theme-color);
  */
  --f7-radio-border-radius: 50%;
  --f7-radio-extra-margin: 0px;
}
:root .dark,
:root.dark {
  --f7-radio-inactive-color: rgba(255, 255, 255, 0.3);
}
.ios {
  --f7-radio-size: 22px;
  --f7-radio-border-width: 1px;
  --f7-radio-inactive-color: #c7c7cc;
}
.md {
  --f7-radio-size: 20px;
  --f7-radio-border-width: 2px;
  --f7-radio-inactive-color: #6d6d6d;
}
.radio {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  z-index: 1;
  --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.5);
}
.icon-radio {
  width: var(--f7-radio-size);
  height: var(--f7-radio-size);
  border-radius: var(--f7-radio-border-radius);
  position: relative;
  box-sizing: border-box;
  display: block;
  flex-shrink: 0;
}
.radio.color-white,
.icon-radio.color-white,
.color-white .radio,
.color-white .icon-radio {
  --f7-theme-color: #fff;
}
.radio.color-black,
.icon-radio.color-black,
.color-black .radio,
.color-black .icon-radio {
  --f7-theme-color: #000;
}
.radio .icon-radio,
.md .icon-radio {
  border: var(--f7-radio-border-width) solid var(--f7-radio-inactive-color);
}
label.item-radio,
.radio {
  cursor: pointer;
}
label.item-radio input[type='checkbox'],
.radio input[type='checkbox'],
label.item-radio input[type='radio'],
.radio input[type='radio'] {
  display: none;
}
label.item-radio {
  transition-duration: 300ms;
}
label.item-radio .item-content .item-media,
label.item-radio.item-content .item-media {
  align-self: center;
}
label.item-radio.active-state {
  background-color: var(--f7-list-link-pressed-bg-color);
}
label.item-radio.active-state:after {
  background-color: transparent;
}
label.item-radio.disabled,
.disabled label.item-radio {
  opacity: 0.55;
  pointer-events: none;
  opacity: 0.55 !important;
  pointer-events: none !important;
}
.ios .icon-radio:after {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  width: calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2);
  height: calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2);
  line-height: calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2 + 1px);
  font-size: 20px;
  content: 'radio_ios';
  color: var(--f7-radio-active-color, var(--f7-theme-color));
  opacity: 0;
}
.ios label.item-radio input[type='radio']:checked ~ .icon-radio:after,
.ios label.item-radio input[type='radio']:checked ~ * .icon-radio:after,
.ios .radio input[type='radio']:checked ~ .icon-radio:after {
  opacity: 1;
}
.ios .radio input[type='radio']:checked ~ .icon-radio {
  border-color: var(--f7-radio-active-color, var(--f7-theme-color));
}
.ios label.item-radio:not(.item-radio-icon-start) input[type='radio'] ~ .icon-radio {
  position: absolute;
  top: 50%;
  margin-top: -11px;
  right: calc(var(--f7-safe-area-right) + 10px);
}
.ios label.item-radio:not(.item-radio-icon-start) .item-inner {
  padding-right: calc(var(--f7-safe-area-right) + 36px);
}
.ios label.item-radio-icon-start > .icon-radio {
  margin-right: calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin));
}
.ios label.item-radio.active-state {
  transition-duration: 0ms;
}
.md .icon-radio {
  transition-duration: 200ms;
}
.md .icon-radio:after {
  content: '';
  position: absolute;
  width: 10px;
  height: 10px;
  left: 50%;
  top: 50%;
  margin-left: -5px;
  margin-top: -5px;
  background-color: var(--f7-radio-active-color, var(--f7-theme-color));
  border-radius: 50%;
  transform: scale(0);
  transition-duration: 200ms;
}
.md label.item-radio input[type='radio']:checked ~ .icon-radio,
.md label.item-radio input[type='radio']:checked ~ * .icon-radio,
.md .radio input[type='radio']:checked ~ .icon-radio {
  border-color: var(--f7-radio-active-color, var(--f7-theme-color));
}
.md label.item-radio input[type='radio']:checked ~ .icon-radio:after,
.md label.item-radio input[type='radio']:checked ~ * .icon-radio:after,
.md .radio input[type='radio']:checked ~ .icon-radio:after {
  background-color: var(--f7-radio-active-color, var(--f7-theme-color));
  transform: scale(1);
}
.md label.item-radio {
  position: relative;
  overflow: hidden;
  z-index: 0;
}
.md label.item-radio:not(.item-radio-icon-end) > .icon-radio {
  margin-right: calc(var(--f7-list-item-media-margin) + var(--f7-radio-extra-margin));
}
.md label.item-radio-icon-end input[type='radio'] ~ .icon-radio {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  right: calc(var(--f7-safe-area-right) + 16px);
}
.md label.item-radio-icon-end .item-inner {
  padding-right: calc(var(--f7-safe-area-right) + 52px);
}
/* === Toggle === */
.ios {
  --f7-toggle-width: 52px;
  --f7-toggle-height: 32px;
  /*
  --f7-toggle-active-bg-color: var(--f7-theme-color);
  */
  --f7-toggle-inactive-knob-bg-color: #fff;
  --f7-toggle-active-knob-bg-color: #fff;
  --f7-toggle-inactive-border-color: #e5e5e5;
  --f7-toggle-inactive-bg-color: #fff;
}
.ios .dark,
.ios.dark {
  --f7-toggle-inactive-border-color: #555;
  --f7-toggle-inactive-bg-color: #555;
}
.md {
  --f7-toggle-width: 52px;
  --f7-toggle-height: 32px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-toggle-inactive-bg-color: var(--f7-md-surface-variant);
  --f7-toggle-active-bg-color: var(--f7-theme-color);
  --f7-toggle-inactive-knob-bg-color: var(--f7-md-outline);
  --f7-toggle-active-knob-bg-color: var(--f7-md-on-primary);
  --f7-toggle-inactive-border-color: var(--f7-md-outline);
  --f7-toggle-active-border-color: var(--f7-theme-color);
}
.toggle,
.toggle-icon {
  width: var(--f7-toggle-width);
  height: var(--f7-toggle-height);
  border-radius: var(--f7-toggle-height);
}
.toggle {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  box-sizing: border-box;
  align-self: center;
  -webkit-user-select: none;
          user-select: none;
}
.toggle input[type='checkbox'] {
  display: none;
}
.toggle input[disabled] ~ .toggle-icon {
  pointer-events: none;
}
.toggle-icon {
  z-index: 0;
  margin: 0;
  padding: 0;
  -webkit-appearance: none;
          appearance: none;
  border: none;
  position: relative;
  transition: 300ms;
  box-sizing: border-box;
  display: block;
  cursor: pointer;
}
.toggle-icon:before,
.toggle-icon:after {
  content: '';
}
.toggle-icon:after {
  position: absolute;
  z-index: 2;
  transform: translateX(0px);
  transition-duration: 300ms;
}
.ios .toggle {
  background: var(--f7-toggle-inactive-border-color);
}
.ios .toggle input[type='checkbox']:checked + .toggle-icon {
  background: var(--f7-toggle-active-color, var(--f7-theme-color));
}
.ios .toggle input[type='checkbox']:checked + .toggle-icon:before {
  background: var(--f7-toggle-active-bg-color, var(--f7-theme-color));
  transform: scale(0);
}
.ios .toggle input[type='checkbox']:checked + .toggle-icon:after {
  background: var(--f7-toggle-active-knob-bg-color);
  transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height)));
}
.ios .toggle-icon {
  background: var(--f7-toggle-border-color);
}
.ios .toggle-icon:before {
  position: absolute;
  left: 2px;
  top: 2px;
  width: calc(var(--f7-toggle-width) - 4px);
  height: calc(var(--f7-toggle-height) - 4px);
  border-radius: var(--f7-toggle-height);
  box-sizing: border-box;
  background: var(--f7-toggle-inactive-bg-color);
  z-index: 1;
  transition-duration: 300ms;
  transform: scale(1);
}
.ios .toggle-icon:after {
  background: var(--f7-toggle-inactive-knob-bg-color);
  height: calc(var(--f7-toggle-height) - 4px);
  width: calc(var(--f7-toggle-height) - 4px);
  top: 2px;
  left: 2px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  border-radius: calc(var(--f7-toggle-height) - 4px);
}
.ios .toggle-active-state input[type='checkbox']:not(:checked) + .toggle-icon:before {
  transform: scale(0);
}
.ios .toggle-active-state input[type='checkbox'] + .toggle-icon:after {
  width: calc(var(--f7-toggle-height) + 4px);
}
.ios .toggle-active-state input[type='checkbox']:checked + .toggle-icon:after {
  transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height) - 8px));
}
.md .toggle input[type='checkbox']:checked + .toggle-icon {
  background: var(--f7-toggle-active-bg-color);
  border-color: var(--f7-toggle-active-border-color);
}
.md .toggle input[type='checkbox']:checked + .toggle-icon:after {
  transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height))) scale(1);
  background: var(--f7-toggle-active-knob-bg-color);
}
.md .toggle.active-state input[type='checkbox']:checked + .toggle-icon:after {
  transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height))) scale(1.1);
}
.md .toggle-icon {
  background: var(--f7-toggle-inactive-bg-color);
  border: 2px solid var(--f7-toggle-inactive-border-color);
}
.md .toggle-icon:after {
  background: var(--f7-toggle-inactive-knob-bg-color);
  height: calc(var(--f7-toggle-height) - 8px);
  width: calc(var(--f7-toggle-height) - 8px);
  top: 2px;
  border-radius: var(--f7-toggle-height);
  transform: scale(0.666);
  left: 2px;
}
.md .toggle-icon.active-state:after {
  transform: scale(1.1);
}
/* === Range Slider === */
:root {
  /*
  --f7-range-bar-active-bg-color: var(--f7-theme-color);
  --f7-range-scale-bg-color: var(--f7-range-bar-bg-color);
  --f7-range-scale-substep-bg-color: var(--f7-range-bar-bg-color);
  */
  --f7-range-scale-step-height: 5px;
  --f7-range-scale-substep-width: 1px;
  --f7-range-scale-substep-height: 4px;
  --f7-range-bar-bg-color: rgba(0, 0, 0, 0.2);
}
:root .dark,
:root.dark {
  --f7-range-bar-bg-color: rgba(255, 255, 255, 0.2);
}
.ios {
  --f7-range-size: 28px;
  --f7-range-bar-size: 4px;
  --f7-range-bar-border-radius: 2px;
  --f7-range-knob-size: 28px;
  --f7-range-knob-color: #fff;
  --f7-range-knob-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  --f7-range-label-size: 24px;
  --f7-range-label-text-color: #000;
  --f7-range-label-bg-color: #fff;
  --f7-range-label-font-size: 12px;
  --f7-range-label-font-weight: 500;
  --f7-range-label-border-radius: 5px;
  --f7-range-label-padding: 0px 2px;
  --f7-range-scale-text-color: #666;
  --f7-range-scale-step-width: 1px;
  --f7-range-scale-font-size: 12px;
  --f7-range-scale-font-weight: 400;
  --f7-range-scale-label-offset: 4px;
}
.md {
  --f7-range-size: 20px;
  --f7-range-bar-size: 2px;
  --f7-range-bar-border-radius: 0px;
  --f7-range-knob-size: 12px;
  --f7-range-knob-box-shadow: none;
  --f7-range-label-size: 26px;
  --f7-range-label-font-weight: normal;
  --f7-range-label-font-size: 10px;
  --f7-range-label-border-radius: 50%;
  --f7-range-label-padding: 0px;
  --f7-range-scale-step-width: 2px;
  --f7-range-scale-font-size: 12px;
  --f7-range-scale-font-weight: 400;
  --f7-range-scale-label-offset: 4px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-range-knob-color: var(--f7-theme-color);
  --f7-range-label-text-color: var(--f7-md-on-primary);
  --f7-range-label-bg-color: var(--f7-theme-color);
  --f7-range-scale-text-color: var(--f7-md-on-surface-variant);
}
.range-slider {
  display: block;
  position: relative;
  align-self: center;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
}
.range-slider input[type='range'] {
  display: none;
}
.range-slider.range-slider-horizontal {
  width: 100%;
  height: var(--f7-range-size);
  touch-action: pan-y;
}
.range-slider.range-slider-vertical {
  height: 100%;
  width: var(--f7-range-size);
  touch-action: pan-x;
}
.range-bar {
  position: absolute;
  overflow: hidden;
  background: var(--f7-range-bar-bg-color);
  border-radius: var(--f7-range-bar-border-radius);
}
.range-slider-vertical .range-bar {
  left: 50%;
  top: 0;
  height: 100%;
  width: var(--f7-range-bar-size);
  margin-left: calc(-1 * var(--f7-range-bar-size) / 2);
}
.range-slider-horizontal .range-bar {
  left: 0;
  top: 50%;
  width: 100%;
  height: var(--f7-range-bar-size);
  margin-top: calc(-1 * var(--f7-range-bar-size) / 2);
}
.range-bar-active {
  position: absolute;
  background: var(--f7-range-bar-active-bg-color, var(--f7-theme-color));
}
.range-slider-horizontal .range-bar-active {
  left: 0;
  top: 0;
  height: 100%;
}
.range-slider-vertical .range-bar-active {
  left: 0;
  bottom: 0;
  width: 100%;
}
.range-slider-vertical-reversed .range-bar-active {
  top: 0;
  bottom: auto;
}
.range-knob-wrap {
  z-index: 20;
  position: absolute;
  height: var(--f7-range-knob-size);
  width: var(--f7-range-knob-size);
}
.range-slider-horizontal .range-knob-wrap {
  top: 50%;
  margin-top: calc(-1 * var(--f7-range-knob-size) / 2);
  margin-left: calc(-1 * var(--f7-range-knob-size) / 2);
  left: 0;
}
.range-slider-vertical .range-knob-wrap {
  left: 50%;
  margin-left: calc(-1 * var(--f7-range-knob-size) / 2);
  bottom: 0;
  margin-bottom: calc(-1 * var(--f7-range-knob-size) / 2);
}
.range-slider-vertical-reversed .range-knob-wrap {
  bottom: auto;
  top: 0;
  margin-bottom: 0;
  margin-top: calc(-1 * var(--f7-range-knob-size) / 2);
}
.range-knob {
  box-sizing: border-box;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  background: var(--f7-range-knob-color, var(--f7-range-knob-bg-color, var(--f7-theme-color)));
  box-shadow: var(--f7-range-knob-box-shadow);
}
.range-knob:after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 44px;
  height: 44px;
  margin-left: -22px;
  margin-top: -22px;
}
.range-knob-label {
  position: absolute;
  left: 50%;
  bottom: 100%;
  text-align: center;
  transition-duration: 120ms;
  transition-property: transform;
  box-sizing: border-box;
  transform: translateY(100%) scale(0);
  height: var(--f7-range-label-size);
  line-height: var(--f7-range-label-size);
  min-width: var(--f7-range-label-size);
  color: var(--f7-range-label-text-color);
  background-color: var(--f7-range-label-bg-color, var(--f7-theme-color));
  font-size: var(--f7-range-label-font-size);
  font-weight: var(--f7-range-label-font-weight);
  border-radius: var(--f7-range-label-border-radius);
  padding: var(--f7-range-label-padding);
}
.range-knob-active-state .range-knob-label {
  transform: translateY(0%) scale(1);
}
.range-scale {
  position: absolute;
}
.range-slider-horizontal .range-scale {
  top: 50%;
  left: 0;
  width: 100%;
  margin-top: calc(var(--f7-range-bar-size) / 2);
}
.range-slider-vertical .range-scale {
  right: 50%;
  top: 0;
  height: 100%;
  margin-right: calc(var(--f7-range-bar-size) / 2);
}
.range-scale-step {
  position: absolute;
  box-sizing: border-box;
  display: flex;
  font-size: var(--f7-range-scale-font-size);
  font-weight: var(--f7-range-scale-font-weight);
  color: var(--f7-range-scale-text-color, var(--f7-range-bar-bg-color));
  line-height: 1;
}
.range-scale-step:before {
  content: '';
  position: absolute;
  background: var(--f7-range-scale-step-bg-color, var(--f7-range-bar-bg-color));
}
.range-slider-horizontal .range-scale-step {
  justify-content: center;
  align-items: flex-start;
  width: var(--f7-range-scale-step-width);
  height: var(--f7-range-scale-step-height);
  padding-top: calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset));
  top: 0;
  margin-left: calc(-1 * var(--f7-range-scale-step-width) / 2);
}
.range-slider-horizontal .range-scale-step:before {
  left: 0;
  top: 0;
  width: 100%;
  height: var(--f7-range-scale-step-height);
}
.range-slider-horizontal .range-scale-step:first-child {
  margin-left: 0;
}
.range-slider-horizontal .range-scale-step:last-child {
  margin-left: calc(-1 * var(--f7-range-scale-step-width));
}
.range-slider-vertical .range-scale-step {
  line-height: 1;
  justify-content: flex-end;
  align-items: center;
  height: var(--f7-range-scale-step-width);
  width: var(--f7-range-scale-step-height);
  padding-right: calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset));
  right: 0;
  margin-bottom: calc(-1 * var(--f7-range-scale-step-width) / 2);
}
.range-slider-vertical .range-scale-step:first-child {
  margin-bottom: 0;
}
.range-slider-vertical .range-scale-step:last-child {
  margin-bottom: calc(-1 * var(--f7-range-scale-step-width));
}
.range-slider-vertical .range-scale-step:before {
  right: 0;
  top: 0;
  height: 100%;
  width: var(--f7-range-scale-step-height);
}
.range-scale-substep {
  --f7-range-scale-step-bg-color: var(--f7-range-scale-substep-bg-color, var(--f7-range-bar-bg-color));
  --f7-range-scale-step-width: var(--f7-range-scale-substep-width);
  --f7-range-scale-step-height: var(--f7-range-scale-substep-height);
}
.ios .range-knob-label {
  margin-bottom: 6px;
  transform: translateX(-50%) translateY(100%) scale(0);
}
.ios .range-knob-active-state .range-knob-label {
  transform: translateX(-50%) translateY(0%) scale(1);
}
.md .range-knob {
  transition-duration: 200ms;
  transition-property: transform, background-color;
}
.md .range-knob-active-state .range-knob {
  transform: scale(1.5);
}
.md .range-slider-min:not(.range-slider-dual) .range-knob {
  background: #fff !important;
  border: 2px solid var(--f7-range-bar-bg-color);
}
.md .range-knob-label {
  width: var(--f7-range-label-size);
  margin-left: calc(-1 * var(--f7-range-label-size) / 2);
  margin-bottom: 8px;
}
.md .range-knob-label:before {
  content: '';
  left: 50%;
  top: 0px;
  margin-left: calc(-1 * var(--f7-range-label-size) / 2);
  position: absolute;
  z-index: -1;
  width: var(--f7-range-label-size);
  height: var(--f7-range-label-size);
  background: var(--f7-range-label-bg-color, var(--f7-theme-color));
  transform: rotate(-45deg);
  border-radius: 50% 50% 50% 0;
}
.md .range-knob-active-state .range-knob-label {
  transform: translateY(0%) scale(1);
}
.md .range-slider-label .range-knob-active-state .range-knob {
  transform: scale(0);
}
/* === Stepper === */
:root {
  /*
  --f7-stepper-button-text-color: var(--f7-theme-color);
  --f7-stepper-button-pressed-text-color: var(--f7-button-text-color, var(--f7-theme-color));
  --f7-stepper-value-text-color: var(--f7-theme-color);
  --f7-stepper-fill-button-bg-color: var(--f7-theme-color);
  */
  --f7-stepper-raised-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
  --f7-stepper-value-font-weight: 500;
}
.ios {
  --f7-stepper-height: 28px;
  --f7-stepper-border-radius: 5px;
  --f7-stepper-fill-button-text-color: #fff;
  /*
  --f7-stepper-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15);
  --f7-stepper-fill-button-pressed-bg-color: var(--f7-theme-color-tint);
  */
  --f7-stepper-large-height: 44px;
  --f7-stepper-small-height: 26px;
  --f7-stepper-value-font-size: 17px;
  --f7-stepper-border-width: 2px;
  --f7-stepper-border-color: var(--f7-theme-color);
  --f7-stepper-small-border-width: 2px;
}
.md {
  --f7-stepper-height: 40px;
  --f7-stepper-border-radius: 8px;
  --f7-stepper-large-height: 48px;
  --f7-stepper-small-height: 32px;
  --f7-stepper-value-font-size: 14px;
  --f7-stepper-border-width: 1px;
  --f7-stepper-small-border-width: 1px;
  --f7-stepper-button-pressed-bg-color: transparent;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-stepper-fill-button-text-color: var(--f7-md-on-primary);
  --f7-stepper-fill-button-pressed-bg-color: var(--f7-theme-color);
  --f7-stepper-border-color: var(--f7-md-outline);
}
.stepper {
  --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.25);
  display: inline-flex;
  align-items: stretch;
  height: var(--f7-stepper-height);
  border-radius: var(--f7-stepper-border-radius);
}
.stepper-button,
.stepper-button-minus,
.stepper-button-plus {
  background-color: var(--f7-stepper-button-bg-color);
  width: 40px;
  border-radius: var(--f7-stepper-border-radius);
  border: var(--f7-stepper-border-width) solid var(--f7-stepper-border-color);
  color: var(--f7-stepper-button-text-color, var(--f7-theme-color));
  line-height: calc(var(--f7-stepper-height) - var(--f7-stepper-border-width, 0px));
  text-align: center;
  display: flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  flex-shrink: 0;
  box-sizing: border-box;
  position: relative;
  cursor: pointer;
}
.stepper-button.active-state,
.stepper-button-minus.active-state,
.stepper-button-plus.active-state {
  background-color: var(--f7-stepper-button-pressed-bg-color, rgba(var(--f7-theme-color-rgb), 0.15));
  color: var(--f7-stepper-button-pressed-text-color, var(--f7-stepper-button-text-color, var(--f7-theme-color)));
}
.stepper-button:first-child,
.stepper-button-minus:first-child,
.stepper-button-plus:first-child {
  border-radius: var(--f7-stepper-border-radius) 0 0 var(--f7-stepper-border-radius);
}
.stepper-button:last-child,
.stepper-button-minus:last-child,
.stepper-button-plus:last-child {
  border-radius: 0 var(--f7-stepper-border-radius) var(--f7-stepper-border-radius) 0;
}
.stepper-button .icon,
.stepper-button-minus .icon,
.stepper-button-plus .icon {
  pointer-events: none;
}
.stepper-button + .stepper-button,
.stepper-button-minus + .stepper-button,
.stepper-button-plus + .stepper-button,
.stepper-button + .stepper-button-minus,
.stepper-button-minus + .stepper-button-minus,
.stepper-button-plus + .stepper-button-minus,
.stepper-button + .stepper-button-plus,
.stepper-button-minus + .stepper-button-plus,
.stepper-button-plus + .stepper-button-plus {
  border-left: none;
}
.stepper-button-plus,
.stepper-button-minus {
  -webkit-user-select: none;
          user-select: none;
}
.stepper-button-plus:after,
.stepper-button-minus:after,
.stepper-button-plus:before,
.stepper-button-minus:before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background-color: var(--f7-stepper-button-text-color, var(--f7-theme-color));
  border-radius: 2px;
}
.stepper-button-plus:after,
.stepper-button-minus:after {
  width: 15px;
  height: 2px;
}
.stepper-button-plus:before {
  height: 15px;
  width: 2px;
}
.stepper-value {
  display: flex;
  align-content: center;
  align-items: center;
  justify-content: center;
}
.stepper-input-wrap,
.stepper-value {
  flex-shrink: 1;
  text-align: center;
  border-top: var(--f7-stepper-border-width) solid var(--f7-stepper-border-color);
  border-bottom: var(--f7-stepper-border-width) solid var(--f7-stepper-border-color);
}
.stepper .stepper-input-wrap input,
.stepper-value {
  width: 45px;
  color: var(--f7-stepper-value-text-color, var(--f7-theme-color));
  font-size: var(--f7-stepper-value-font-size);
  font-weight: var(--f7-stepper-value-font-weight);
  text-align: center;
}
.stepper .stepper-input-wrap input {
  height: 100%;
}
.stepper-round,
.ios .stepper-round-ios,
.md .stepper-round-md {
  --f7-stepper-border-radius: var(--f7-stepper-height);
}
.stepper-fill,
.ios .stepper-fill-ios,
.md .stepper-fill-md {
  --f7-stepper-border-color: var(--f7-stepper-fill-button-bg-color, var(--f7-theme-color));
  --f7-stepper-button-bg-color: var(--f7-stepper-fill-button-bg-color, var(--f7-theme-color));
  --f7-stepper-button-text-color: var(--f7-stepper-fill-button-text-color);
  --f7-touch-ripple-color: var(--f7-touch-ripple-white);
}
.stepper-fill .stepper-button + .stepper-button,
.ios .stepper-fill-ios .stepper-button + .stepper-button,
.md .stepper-fill-md .stepper-button + .stepper-button,
.stepper-raised .stepper-button + .stepper-button,
.ios .stepper-raised-ios .stepper-button + .stepper-button,
.md .stepper-raised-md .stepper-button + .stepper-button,
.stepper-fill .stepper-button-minus + .stepper-button-plus,
.ios .stepper-fill-ios .stepper-button-minus + .stepper-button-plus,
.md .stepper-fill-md .stepper-button-minus + .stepper-button-plus,
.stepper-raised .stepper-button-minus + .stepper-button-plus,
.ios .stepper-raised-ios .stepper-button-minus + .stepper-button-plus,
.md .stepper-raised-md .stepper-button-minus + .stepper-button-plus {
  border-left: 1px solid rgba(0, 0, 0, 0.1);
}
.stepper-fill .stepper-button + .stepper-button.active-state,
.ios .stepper-fill-ios .stepper-button + .stepper-button.active-state,
.md .stepper-fill-md .stepper-button + .stepper-button.active-state,
.stepper-fill .stepper-button-minus + .stepper-button-plus.active-state,
.ios .stepper-fill-ios .stepper-button-minus + .stepper-button-plus.active-state,
.md .stepper-fill-md .stepper-button-minus + .stepper-button-plus.active-state {
  border-left-color: var(--f7-stepper-button-pressed-bg-color);
}
.stepper-raised:not(.stepper-fill) .stepper-input-wrap,
.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-input-wrap,
.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-input-wrap,
.stepper-raised:not(.stepper-fill) .stepper-value,
.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-value,
.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-value {
  border-left: 1px solid rgba(0, 0, 0, 0.1);
  border-right: 1px solid rgba(0, 0, 0, 0.1);
}
.stepper-large,
.ios .stepper-large-ios,
.md .stepper-large-md {
  --f7-stepper-height: var(--f7-stepper-large-height);
}
.stepper-small,
.ios .stepper-small-ios,
.md .stepper-small-md {
  --f7-stepper-border-width: var(--f7-stepper-small-border-width);
  --f7-stepper-height: var(--f7-stepper-small-height);
}
.ios .stepper-fill.stepper-small-ios,
.ios .stepper-fill.stepper-small {
  --f7-stepper-button-pressed-bg-color: transparent;
  --f7-stepper-button-pressed-text-color: var(--f7-theme-color);
}
.stepper-raised,
.ios .stepper-raised-ios,
.md .stepper-raised-md {
  --f7-stepper-border-width: 0;
  box-shadow: var(--f7-stepper-raised-box-shadow);
}
.ios .stepper-button .f7-icons,
.ios .stepper-button-minus .f7-icons,
.ios .stepper-button-plus .f7-icons {
  font-size: 22px;
}
.ios .stepper-fill,
.ios .stepper-fill-ios {
  --f7-stepper-button-pressed-bg-color: var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-tint));
}
.ios .stepper-small.stepper-raised,
.ios .stepper-small-ios.stepper-raised,
.ios .stepper-small.stepper-raised-ios,
.ios .stepper-small-ios.stepper-raised-ios {
  --f7-stepper-border-width: 0px;
}
.ios .stepper-small .stepper-button,
.ios .stepper-small-ios .stepper-button,
.ios .stepper-small .stepper-button-minus,
.ios .stepper-small-ios .stepper-button-minus,
.ios .stepper-small .stepper-button-plus,
.ios .stepper-small-ios .stepper-button-plus {
  transition-duration: 200ms;
}
.ios .stepper-small .stepper-button.active-state:after,
.ios .stepper-small-ios .stepper-button.active-state:after,
.ios .stepper-small .stepper-button-minus.active-state:after,
.ios .stepper-small-ios .stepper-button-minus.active-state:after,
.ios .stepper-small .stepper-button-plus.active-state:after,
.ios .stepper-small-ios .stepper-button-plus.active-state:after,
.ios .stepper-small .stepper-button.active-state:before,
.ios .stepper-small-ios .stepper-button.active-state:before,
.ios .stepper-small .stepper-button-minus.active-state:before,
.ios .stepper-small-ios .stepper-button-minus.active-state:before,
.ios .stepper-small .stepper-button-plus.active-state:before,
.ios .stepper-small-ios .stepper-button-plus.active-state:before {
  transition-duration: 200ms;
  background-color: var(--f7-theme-color);
}
.md .stepper-button,
.md .stepper-button-minus,
.md .stepper-button-plus {
  transition-duration: 300ms;
  transform: translate3d(0, 0, 0);
  overflow: hidden;
}
.md .stepper-fill,
.md .stepper-fill-md {
  --f7-stepper-button-pressed-bg-color: var(--f7-stepper-fill-button-bg-color, var(--f7-theme-color));
}
/* === Smart Select === */
.smart-select :root {
  /*
  --f7-smart-select-sheet-bg: var(--f7-list-bg-color);
  --f7-smart-select-sheet-toolbar-border-color: var(--f7-bars-border-color);
  */
}
.smart-select select {
  display: none;
}
.smart-select .item-after {
  max-width: 70%;
  overflow: hidden;
  text-overflow: ellipsis;
  position: relative;
  display: block;
}
.smart-select-sheet .page,
.smart-select-sheet .sheet-modal-inner,
.smart-select-sheet .list ul {
  background: var(--f7-smart-select-sheet-bg, var(--f7-list-bg-color));
}
.smart-select-sheet .toolbar:after {
  content: '';
  position: absolute;
  background-color: var(--f7-smart-select-sheet-toolbar-border-color, var(--f7-bars-border-color));
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.smart-select-sheet .toolbar:after {
  display: block;
}
.smart-select-sheet .list {
  margin: 0;
}
.smart-select-sheet .list ul:before,
.smart-select-sheet .list ul:after {
  display: none !important;
}
.smart-select-popover .popover-inner {
  max-height: 40vh;
}
/* === Grid === */
:root {
  --f7-grid-gap: 16px;
}
.grid {
  display: grid;
}
.grid.grid-gap {
  gap: var(--f7-grid-gap);
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.grid-cols-8 {
  grid-template-columns: repeat(8, minmax(0, 1fr));
}
.grid-cols-9 {
  grid-template-columns: repeat(9, minmax(0, 1fr));
}
.grid-cols-10 {
  grid-template-columns: repeat(10, minmax(0, 1fr));
}
.grid-cols-11 {
  grid-template-columns: repeat(11, minmax(0, 1fr));
}
.grid-cols-12 {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}
.grid-cols-13 {
  grid-template-columns: repeat(13, minmax(0, 1fr));
}
.grid-cols-14 {
  grid-template-columns: repeat(14, minmax(0, 1fr));
}
.grid-cols-15 {
  grid-template-columns: repeat(15, minmax(0, 1fr));
}
.grid-cols-16 {
  grid-template-columns: repeat(16, minmax(0, 1fr));
}
.grid-cols-17 {
  grid-template-columns: repeat(17, minmax(0, 1fr));
}
.grid-cols-18 {
  grid-template-columns: repeat(18, minmax(0, 1fr));
}
.grid-cols-19 {
  grid-template-columns: repeat(19, minmax(0, 1fr));
}
.grid-cols-20 {
  grid-template-columns: repeat(20, minmax(0, 1fr));
}
.grid-rows-1 {
  grid-template-rows: repeat(1, minmax(0, 1fr));
}
.grid-rows-2 {
  grid-template-rows: repeat(2, minmax(0, 1fr));
}
.grid-rows-3 {
  grid-template-rows: repeat(3, minmax(0, 1fr));
}
.grid-rows-4 {
  grid-template-rows: repeat(4, minmax(0, 1fr));
}
.grid-rows-5 {
  grid-template-rows: repeat(5, minmax(0, 1fr));
}
.grid-rows-6 {
  grid-template-rows: repeat(6, minmax(0, 1fr));
}
.grid-rows-7 {
  grid-template-rows: repeat(7, minmax(0, 1fr));
}
.grid-rows-8 {
  grid-template-rows: repeat(8, minmax(0, 1fr));
}
.grid-rows-9 {
  grid-template-rows: repeat(9, minmax(0, 1fr));
}
.grid-rows-10 {
  grid-template-rows: repeat(10, minmax(0, 1fr));
}
.grid-rows-11 {
  grid-template-rows: repeat(11, minmax(0, 1fr));
}
.grid-rows-12 {
  grid-template-rows: repeat(12, minmax(0, 1fr));
}
.grid-rows-13 {
  grid-template-rows: repeat(13, minmax(0, 1fr));
}
.grid-rows-14 {
  grid-template-rows: repeat(14, minmax(0, 1fr));
}
.grid-rows-15 {
  grid-template-rows: repeat(15, minmax(0, 1fr));
}
.grid-rows-16 {
  grid-template-rows: repeat(16, minmax(0, 1fr));
}
.grid-rows-17 {
  grid-template-rows: repeat(17, minmax(0, 1fr));
}
.grid-rows-18 {
  grid-template-rows: repeat(18, minmax(0, 1fr));
}
.grid-rows-19 {
  grid-template-rows: repeat(19, minmax(0, 1fr));
}
.grid-rows-20 {
  grid-template-rows: repeat(20, minmax(0, 1fr));
}
@media (min-width: 480px) {
  .xsmall-grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .xsmall-grid-rows-1 {
    grid-template-rows: repeat(1, minmax(0, 1fr));
  }
  .xsmall-grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xsmall-grid-rows-2 {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }
  .xsmall-grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xsmall-grid-rows-3 {
    grid-template-rows: repeat(3, minmax(0, 1fr));
  }
  .xsmall-grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xsmall-grid-rows-4 {
    grid-template-rows: repeat(4, minmax(0, 1fr));
  }
  .xsmall-grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .xsmall-grid-rows-5 {
    grid-template-rows: repeat(5, minmax(0, 1fr));
  }
  .xsmall-grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .xsmall-grid-rows-6 {
    grid-template-rows: repeat(6, minmax(0, 1fr));
  }
  .xsmall-grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .xsmall-grid-rows-7 {
    grid-template-rows: repeat(7, minmax(0, 1fr));
  }
  .xsmall-grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .xsmall-grid-rows-8 {
    grid-template-rows: repeat(8, minmax(0, 1fr));
  }
  .xsmall-grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .xsmall-grid-rows-9 {
    grid-template-rows: repeat(9, minmax(0, 1fr));
  }
  .xsmall-grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .xsmall-grid-rows-10 {
    grid-template-rows: repeat(10, minmax(0, 1fr));
  }
  .xsmall-grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .xsmall-grid-rows-11 {
    grid-template-rows: repeat(11, minmax(0, 1fr));
  }
  .xsmall-grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .xsmall-grid-rows-12 {
    grid-template-rows: repeat(12, minmax(0, 1fr));
  }
  .xsmall-grid-cols-13 {
    grid-template-columns: repeat(13, minmax(0, 1fr));
  }
  .xsmall-grid-rows-13 {
    grid-template-rows: repeat(13, minmax(0, 1fr));
  }
  .xsmall-grid-cols-14 {
    grid-template-columns: repeat(14, minmax(0, 1fr));
  }
  .xsmall-grid-rows-14 {
    grid-template-rows: repeat(14, minmax(0, 1fr));
  }
  .xsmall-grid-cols-15 {
    grid-template-columns: repeat(15, minmax(0, 1fr));
  }
  .xsmall-grid-rows-15 {
    grid-template-rows: repeat(15, minmax(0, 1fr));
  }
  .xsmall-grid-cols-16 {
    grid-template-columns: repeat(16, minmax(0, 1fr));
  }
  .xsmall-grid-rows-16 {
    grid-template-rows: repeat(16, minmax(0, 1fr));
  }
  .xsmall-grid-cols-17 {
    grid-template-columns: repeat(17, minmax(0, 1fr));
  }
  .xsmall-grid-rows-17 {
    grid-template-rows: repeat(17, minmax(0, 1fr));
  }
  .xsmall-grid-cols-18 {
    grid-template-columns: repeat(18, minmax(0, 1fr));
  }
  .xsmall-grid-rows-18 {
    grid-template-rows: repeat(18, minmax(0, 1fr));
  }
  .xsmall-grid-cols-19 {
    grid-template-columns: repeat(19, minmax(0, 1fr));
  }
  .xsmall-grid-rows-19 {
    grid-template-rows: repeat(19, minmax(0, 1fr));
  }
  .xsmall-grid-cols-20 {
    grid-template-columns: repeat(20, minmax(0, 1fr));
  }
  .xsmall-grid-rows-20 {
    grid-template-rows: repeat(20, minmax(0, 1fr));
  }
}
@media (min-width: 568px) {
  .small-grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .small-grid-rows-1 {
    grid-template-rows: repeat(1, minmax(0, 1fr));
  }
  .small-grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .small-grid-rows-2 {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }
  .small-grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .small-grid-rows-3 {
    grid-template-rows: repeat(3, minmax(0, 1fr));
  }
  .small-grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .small-grid-rows-4 {
    grid-template-rows: repeat(4, minmax(0, 1fr));
  }
  .small-grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .small-grid-rows-5 {
    grid-template-rows: repeat(5, minmax(0, 1fr));
  }
  .small-grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .small-grid-rows-6 {
    grid-template-rows: repeat(6, minmax(0, 1fr));
  }
  .small-grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .small-grid-rows-7 {
    grid-template-rows: repeat(7, minmax(0, 1fr));
  }
  .small-grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .small-grid-rows-8 {
    grid-template-rows: repeat(8, minmax(0, 1fr));
  }
  .small-grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .small-grid-rows-9 {
    grid-template-rows: repeat(9, minmax(0, 1fr));
  }
  .small-grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .small-grid-rows-10 {
    grid-template-rows: repeat(10, minmax(0, 1fr));
  }
  .small-grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .small-grid-rows-11 {
    grid-template-rows: repeat(11, minmax(0, 1fr));
  }
  .small-grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .small-grid-rows-12 {
    grid-template-rows: repeat(12, minmax(0, 1fr));
  }
  .small-grid-cols-13 {
    grid-template-columns: repeat(13, minmax(0, 1fr));
  }
  .small-grid-rows-13 {
    grid-template-rows: repeat(13, minmax(0, 1fr));
  }
  .small-grid-cols-14 {
    grid-template-columns: repeat(14, minmax(0, 1fr));
  }
  .small-grid-rows-14 {
    grid-template-rows: repeat(14, minmax(0, 1fr));
  }
  .small-grid-cols-15 {
    grid-template-columns: repeat(15, minmax(0, 1fr));
  }
  .small-grid-rows-15 {
    grid-template-rows: repeat(15, minmax(0, 1fr));
  }
  .small-grid-cols-16 {
    grid-template-columns: repeat(16, minmax(0, 1fr));
  }
  .small-grid-rows-16 {
    grid-template-rows: repeat(16, minmax(0, 1fr));
  }
  .small-grid-cols-17 {
    grid-template-columns: repeat(17, minmax(0, 1fr));
  }
  .small-grid-rows-17 {
    grid-template-rows: repeat(17, minmax(0, 1fr));
  }
  .small-grid-cols-18 {
    grid-template-columns: repeat(18, minmax(0, 1fr));
  }
  .small-grid-rows-18 {
    grid-template-rows: repeat(18, minmax(0, 1fr));
  }
  .small-grid-cols-19 {
    grid-template-columns: repeat(19, minmax(0, 1fr));
  }
  .small-grid-rows-19 {
    grid-template-rows: repeat(19, minmax(0, 1fr));
  }
  .small-grid-cols-20 {
    grid-template-columns: repeat(20, minmax(0, 1fr));
  }
  .small-grid-rows-20 {
    grid-template-rows: repeat(20, minmax(0, 1fr));
  }
}
@media (min-width: 768px) {
  .medium-grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .medium-grid-rows-1 {
    grid-template-rows: repeat(1, minmax(0, 1fr));
  }
  .medium-grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .medium-grid-rows-2 {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }
  .medium-grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .medium-grid-rows-3 {
    grid-template-rows: repeat(3, minmax(0, 1fr));
  }
  .medium-grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .medium-grid-rows-4 {
    grid-template-rows: repeat(4, minmax(0, 1fr));
  }
  .medium-grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .medium-grid-rows-5 {
    grid-template-rows: repeat(5, minmax(0, 1fr));
  }
  .medium-grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .medium-grid-rows-6 {
    grid-template-rows: repeat(6, minmax(0, 1fr));
  }
  .medium-grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .medium-grid-rows-7 {
    grid-template-rows: repeat(7, minmax(0, 1fr));
  }
  .medium-grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .medium-grid-rows-8 {
    grid-template-rows: repeat(8, minmax(0, 1fr));
  }
  .medium-grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .medium-grid-rows-9 {
    grid-template-rows: repeat(9, minmax(0, 1fr));
  }
  .medium-grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .medium-grid-rows-10 {
    grid-template-rows: repeat(10, minmax(0, 1fr));
  }
  .medium-grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .medium-grid-rows-11 {
    grid-template-rows: repeat(11, minmax(0, 1fr));
  }
  .medium-grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .medium-grid-rows-12 {
    grid-template-rows: repeat(12, minmax(0, 1fr));
  }
  .medium-grid-cols-13 {
    grid-template-columns: repeat(13, minmax(0, 1fr));
  }
  .medium-grid-rows-13 {
    grid-template-rows: repeat(13, minmax(0, 1fr));
  }
  .medium-grid-cols-14 {
    grid-template-columns: repeat(14, minmax(0, 1fr));
  }
  .medium-grid-rows-14 {
    grid-template-rows: repeat(14, minmax(0, 1fr));
  }
  .medium-grid-cols-15 {
    grid-template-columns: repeat(15, minmax(0, 1fr));
  }
  .medium-grid-rows-15 {
    grid-template-rows: repeat(15, minmax(0, 1fr));
  }
  .medium-grid-cols-16 {
    grid-template-columns: repeat(16, minmax(0, 1fr));
  }
  .medium-grid-rows-16 {
    grid-template-rows: repeat(16, minmax(0, 1fr));
  }
  .medium-grid-cols-17 {
    grid-template-columns: repeat(17, minmax(0, 1fr));
  }
  .medium-grid-rows-17 {
    grid-template-rows: repeat(17, minmax(0, 1fr));
  }
  .medium-grid-cols-18 {
    grid-template-columns: repeat(18, minmax(0, 1fr));
  }
  .medium-grid-rows-18 {
    grid-template-rows: repeat(18, minmax(0, 1fr));
  }
  .medium-grid-cols-19 {
    grid-template-columns: repeat(19, minmax(0, 1fr));
  }
  .medium-grid-rows-19 {
    grid-template-rows: repeat(19, minmax(0, 1fr));
  }
  .medium-grid-cols-20 {
    grid-template-columns: repeat(20, minmax(0, 1fr));
  }
  .medium-grid-rows-20 {
    grid-template-rows: repeat(20, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .large-grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .large-grid-rows-1 {
    grid-template-rows: repeat(1, minmax(0, 1fr));
  }
  .large-grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .large-grid-rows-2 {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }
  .large-grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .large-grid-rows-3 {
    grid-template-rows: repeat(3, minmax(0, 1fr));
  }
  .large-grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .large-grid-rows-4 {
    grid-template-rows: repeat(4, minmax(0, 1fr));
  }
  .large-grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .large-grid-rows-5 {
    grid-template-rows: repeat(5, minmax(0, 1fr));
  }
  .large-grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .large-grid-rows-6 {
    grid-template-rows: repeat(6, minmax(0, 1fr));
  }
  .large-grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .large-grid-rows-7 {
    grid-template-rows: repeat(7, minmax(0, 1fr));
  }
  .large-grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .large-grid-rows-8 {
    grid-template-rows: repeat(8, minmax(0, 1fr));
  }
  .large-grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .large-grid-rows-9 {
    grid-template-rows: repeat(9, minmax(0, 1fr));
  }
  .large-grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .large-grid-rows-10 {
    grid-template-rows: repeat(10, minmax(0, 1fr));
  }
  .large-grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .large-grid-rows-11 {
    grid-template-rows: repeat(11, minmax(0, 1fr));
  }
  .large-grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .large-grid-rows-12 {
    grid-template-rows: repeat(12, minmax(0, 1fr));
  }
  .large-grid-cols-13 {
    grid-template-columns: repeat(13, minmax(0, 1fr));
  }
  .large-grid-rows-13 {
    grid-template-rows: repeat(13, minmax(0, 1fr));
  }
  .large-grid-cols-14 {
    grid-template-columns: repeat(14, minmax(0, 1fr));
  }
  .large-grid-rows-14 {
    grid-template-rows: repeat(14, minmax(0, 1fr));
  }
  .large-grid-cols-15 {
    grid-template-columns: repeat(15, minmax(0, 1fr));
  }
  .large-grid-rows-15 {
    grid-template-rows: repeat(15, minmax(0, 1fr));
  }
  .large-grid-cols-16 {
    grid-template-columns: repeat(16, minmax(0, 1fr));
  }
  .large-grid-rows-16 {
    grid-template-rows: repeat(16, minmax(0, 1fr));
  }
  .large-grid-cols-17 {
    grid-template-columns: repeat(17, minmax(0, 1fr));
  }
  .large-grid-rows-17 {
    grid-template-rows: repeat(17, minmax(0, 1fr));
  }
  .large-grid-cols-18 {
    grid-template-columns: repeat(18, minmax(0, 1fr));
  }
  .large-grid-rows-18 {
    grid-template-rows: repeat(18, minmax(0, 1fr));
  }
  .large-grid-cols-19 {
    grid-template-columns: repeat(19, minmax(0, 1fr));
  }
  .large-grid-rows-19 {
    grid-template-rows: repeat(19, minmax(0, 1fr));
  }
  .large-grid-cols-20 {
    grid-template-columns: repeat(20, minmax(0, 1fr));
  }
  .large-grid-rows-20 {
    grid-template-rows: repeat(20, minmax(0, 1fr));
  }
}
@media (min-width: 1200px) {
  .xlarge-grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .xlarge-grid-rows-1 {
    grid-template-rows: repeat(1, minmax(0, 1fr));
  }
  .xlarge-grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .xlarge-grid-rows-2 {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }
  .xlarge-grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .xlarge-grid-rows-3 {
    grid-template-rows: repeat(3, minmax(0, 1fr));
  }
  .xlarge-grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xlarge-grid-rows-4 {
    grid-template-rows: repeat(4, minmax(0, 1fr));
  }
  .xlarge-grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .xlarge-grid-rows-5 {
    grid-template-rows: repeat(5, minmax(0, 1fr));
  }
  .xlarge-grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .xlarge-grid-rows-6 {
    grid-template-rows: repeat(6, minmax(0, 1fr));
  }
  .xlarge-grid-cols-7 {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  .xlarge-grid-rows-7 {
    grid-template-rows: repeat(7, minmax(0, 1fr));
  }
  .xlarge-grid-cols-8 {
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .xlarge-grid-rows-8 {
    grid-template-rows: repeat(8, minmax(0, 1fr));
  }
  .xlarge-grid-cols-9 {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  .xlarge-grid-rows-9 {
    grid-template-rows: repeat(9, minmax(0, 1fr));
  }
  .xlarge-grid-cols-10 {
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }
  .xlarge-grid-rows-10 {
    grid-template-rows: repeat(10, minmax(0, 1fr));
  }
  .xlarge-grid-cols-11 {
    grid-template-columns: repeat(11, minmax(0, 1fr));
  }
  .xlarge-grid-rows-11 {
    grid-template-rows: repeat(11, minmax(0, 1fr));
  }
  .xlarge-grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .xlarge-grid-rows-12 {
    grid-template-rows: repeat(12, minmax(0, 1fr));
  }
  .xlarge-grid-cols-13 {
    grid-template-columns: repeat(13, minmax(0, 1fr));
  }
  .xlarge-grid-rows-13 {
    grid-template-rows: repeat(13, minmax(0, 1fr));
  }
  .xlarge-grid-cols-14 {
    grid-template-columns: repeat(14, minmax(0, 1fr));
  }
  .xlarge-grid-rows-14 {
    grid-template-rows: repeat(14, minmax(0, 1fr));
  }
  .xlarge-grid-cols-15 {
    grid-template-columns: repeat(15, minmax(0, 1fr));
  }
  .xlarge-grid-rows-15 {
    grid-template-rows: repeat(15, minmax(0, 1fr));
  }
  .xlarge-grid-cols-16 {
    grid-template-columns: repeat(16, minmax(0, 1fr));
  }
  .xlarge-grid-rows-16 {
    grid-template-rows: repeat(16, minmax(0, 1fr));
  }
  .xlarge-grid-cols-17 {
    grid-template-columns: repeat(17, minmax(0, 1fr));
  }
  .xlarge-grid-rows-17 {
    grid-template-rows: repeat(17, minmax(0, 1fr));
  }
  .xlarge-grid-cols-18 {
    grid-template-columns: repeat(18, minmax(0, 1fr));
  }
  .xlarge-grid-rows-18 {
    grid-template-rows: repeat(18, minmax(0, 1fr));
  }
  .xlarge-grid-cols-19 {
    grid-template-columns: repeat(19, minmax(0, 1fr));
  }
  .xlarge-grid-rows-19 {
    grid-template-rows: repeat(19, minmax(0, 1fr));
  }
  .xlarge-grid-cols-20 {
    grid-template-columns: repeat(20, minmax(0, 1fr));
  }
  .xlarge-grid-rows-20 {
    grid-template-rows: repeat(20, minmax(0, 1fr));
  }
}
/* === Calendar/Datepicker === */
:root {
  --f7-calendar-height: 340px;
  --f7-calendar-sheet-landscape-height: 220px;
  --f7-calendar-popover-width: 320px;
  --f7-calendar-popover-height: 320px;
  --f7-calendar-modal-height: 420px;
  --f7-calendar-modal-max-width: 380px;
  /*
  --f7-calendar-header-bg-color: var(--f7-bars-bg-color);
  --f7-calendar-header-link-color: var(--f7-bars-link-color);
  --f7-calendar-header-text-color: var(--f7-bars-text-color);
  --f7-calendar-footer-bg-color: var(--f7-bars-bg-color);
  --f7-calendar-footer-border-color: var(--f7-bars-border-color);
  --f7-calendar-footer-link-color: var(--f7-bars-link-color);
  --f7-calendar-footer-text-color: var(--f7-bars-text-color);
  */
  --f7-calendar-week-header-bg-color: transparent;
  --f7-calendar-footer-padding: 0 8px;
  --f7-calendar-week-header-font-size: 11px;
  /*
  --f7-calendar-selected-bg-color:  var(--f7-theme-color);
  */
  --f7-calendar-disabled-text-color: #d4d4d4;
  --f7-calendar-event-dot-size: 4px;
  /*
  --f7-calendar-event-bg-color: var(--f7-theme-color);
  */
  /*
  --f7-calendar-picker-selected-text-color: var(--f7-theme-color);
  */
  --f7-calendar-time-selector-height: 28px;
  --f7-calendar-picker-pressed-bg-color: rgba(0, 0, 0, 0.1);
  --f7-calendar-picker-hover-bg-color: rgba(0, 0, 0, 0.03);
  --f7-calendar-time-selector-bg-color: rgba(0, 0, 0, 0.05);
}
:root .dark,
:root.dark {
  --f7-calendar-picker-pressed-bg-color: rgba(255, 255, 255, 0.08);
  --f7-calendar-picker-hover-bg-color: rgba(255, 255, 255, 0.03);
  --f7-calendar-time-selector-bg-color: rgba(255, 255, 255, 0.1);
}
.ios {
  --f7-calendar-selected-text-color: #fff;
  --f7-calendar-header-height: 44px;
  --f7-calendar-header-font-size: 17px;
  --f7-calendar-header-font-weight: 600;
  --f7-calendar-header-padding: 0 8px;
  --f7-calendar-footer-height: 44px;
  --f7-calendar-footer-font-size: 17px;
  --f7-calendar-week-header-height: 18px;
  --f7-calendar-day-font-size: 15px;
  --f7-calendar-day-size: 30px;
  --f7-calendar-picker-font-size: 17px;
  --f7-calendar-time-selector-font-size: 17px;
  --f7-calendar-modal-border-radius: 4px;
  --f7-calendar-modal-box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2),
                                  0px 24px 38px 3px rgba(0, 0, 0, 0.14),
                                  0px 9px 46px 8px rgba(0, 0, 0, 0.12);
  --f7-calendar-prev-next-text-color: #c8c8c8;
  --f7-calendar-sheet-border-color: #929499;
  --f7-calendar-sheet-bg-color: #fff;
  --f7-calendar-week-header-text-color: #5e5e5e;
  --f7-calendar-modal-bg-color: #fff;
  --f7-calendar-day-text-color: #000;
  --f7-calendar-today-text-color: #000;
  --f7-calendar-today-bg-color: #e3e3e3;
}
.ios .dark,
.ios.dark {
  --f7-calendar-prev-next-text-color: #5e5e5e;
  --f7-calendar-sheet-border-color: var(--f7-bars-border-color);
  --f7-calendar-sheet-bg-color: #121212;
  --f7-calendar-week-header-text-color: #aaa;
  --f7-calendar-modal-bg-color: #121212;
  --f7-calendar-day-text-color: #fff;
  --f7-calendar-today-text-color: #fff;
  --f7-calendar-today-bg-color: #333;
}
.md {
  --f7-calendar-sheet-border-color: transparent;
  --f7-calendar-header-height: 64px;
  --f7-calendar-header-font-size: 24px;
  --f7-calendar-header-font-weight: 400;
  --f7-calendar-header-padding: 0 24px;
  --f7-calendar-footer-height: 56px;
  --f7-calendar-footer-font-size: 14px;
  --f7-calendar-week-header-height: 24px;
  --f7-calendar-day-font-size: 14px;
  --f7-calendar-today-bg-color: none;
  --f7-calendar-day-size: 32px;
  --f7-calendar-picker-font-size: 14px;
  --f7-calendar-time-selector-font-size: 14px;
  --f7-calendar-modal-border-radius: 28px;
  --f7-calendar-modal-box-shadow: none;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-calendar-sheet-bg-color: var(--f7-md-surface-1);
  --f7-calendar-selected-text-color: var(--f7-md-on-primary);
  --f7-calendar-week-header-text-color: var(--f7-md-on-surface-variant);
  --f7-calendar-day-text-color: var(--f7-md-on-surface);
  --f7-calendar-prev-next-text-color: rgba(var(--f7-md-on-surface-variant-rgb), 0.55);
  --f7-calendar-today-text-color: var(--f7-theme-color);
  --f7-calendar-modal-bg-color: var(--f7-md-surface-1);
}
.calendar {
  overflow: hidden;
  height: var(--f7-calendar-height);
  width: 100%;
  display: flex;
  flex-direction: column;
}
.calendar.modal-in {
  display: flex;
}
@media (orientation: landscape) and (max-height: 415px) {
  .calendar.calendar-sheet {
    height: var(--f7-calendar-sheet-landscape-height);
  }
  .calendar.calendar-modal {
    height: calc(100vh - var(--f7-navbar-height));
  }
}
.calendar.calendar-inline,
.calendar.calendar-popover .calendar {
  position: relative;
}
.calendar-sheet {
  --f7-sheet-border-color: var(--f7-calendar-sheet-border-color);
  background: var(--f7-calendar-sheet-bg-color);
  padding-bottom: var(--f7-safe-area-bottom);
  height: calc(var(--f7-calendar-height) + var(--f7-safe-area-bottom));
}
.calendar-sheet:before {
  z-index: 600;
}
.calendar-sheet .toolbar:before,
.calendar-modal .toolbar:before,
.calendar-popover .toolbar:before {
  display: none;
}
.calendar-popover {
  width: var(--f7-calendar-popover-width);
}
.calendar-popover .toolbar-top,
.calendar-popover .calendar-header {
  border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0;
  overflow: hidden;
}
.calendar-popover .calendar-header + .toolbar-top {
  border-radius: 0;
}
.calendar-popover .toolbar-bottom,
.calendar-popover .calendar-footer {
  border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius);
}
.calendar-popover .calendar {
  height: var(--f7-calendar-popover-height);
  position: relative;
  z-index: 1;
}
.calendar-popover .calendar-month-picker,
.calendar-popover .calendar-year-picker,
.calendar-popover .calendar-time-picker {
  border-radius: var(--f7-popover-border-radius);
}
.calendar-popover .calendar-month-picker .picker,
.calendar-popover .calendar-year-picker .picker,
.calendar-popover .calendar-time-picker .picker {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.calendar-header {
  width: 100%;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  white-space: nowrap;
  text-overflow: ellipsis;
  box-sizing: border-box;
  padding: var(--f7-calendar-header-padding);
  background-color: var(--f7-calendar-header-bg-color, var(--f7-bars-bg-color));
  color: var(--f7-calendar-header-text-color, var(--f7-bars-text-color));
  height: var(--f7-calendar-header-height);
  line-height: var(--f7-calendar-header-height);
  font-size: var(--f7-calendar-header-font-size);
  font-weight: var(--f7-calendar-header-font-weight);
}
.calendar-header a {
  color: var(--f7-calendar-header-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
}
.calendar-footer {
  width: 100%;
  flex-shrink: 0;
  padding: var(--f7-calendar-footer-padding);
  background-color: var(--f7-calendar-footer-bg-color, var(--f7-bars-bg-color));
  color: var(--f7-calendar-footer-text-color, var(--f7-bars-text-color));
  height: var(--f7-calendar-footer-height);
  font-size: var(--f7-calendar-header-font-size);
  display: flex;
  justify-content: flex-end;
  box-sizing: border-box;
  align-items: center;
  position: relative;
}
.calendar-footer a {
  color: var(--f7-calendar-footer-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
}
.calendar-footer:before {
  content: '';
  position: absolute;
  background-color: var(--f7-calendar-footer-border-color, var(--f7-bars-border-color));
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.calendar-modal {
  position: absolute;
  height: var(--f7-calendar-modal-height);
  overflow: hidden;
  top: 50%;
  left: 50%;
  min-width: 300px;
  max-width: var(--f7-calendar-modal-max-width);
  transform: translate3d(-50%, 100vh, 0);
  transition-property: transform;
  display: flex;
  z-index: 13500;
  background: var(--f7-calendar-modal-bg-color);
  width: 90%;
  border-radius: var(--f7-calendar-modal-border-radius);
  box-shadow: var(--f7-calendar-modal-box-shadow);
  transition-timing-function: cubic-bezier(0, 1, 0.2, 1);
}
.calendar-modal.modal-in,
.calendar-modal.modal-out {
  transition-duration: 400ms;
}
.calendar-modal.modal-in {
  transform: translate3d(-50%, -50%, 0);
}
.calendar-modal.modal-out {
  transform: translate3d(-50%, 100vh, 0);
}
.calendar-week-header {
  display: flex;
  box-sizing: border-box;
  position: relative;
  font-size: var(--f7-calendar-week-header-font-size);
  background-color: var(--f7-calendar-week-header-bg-color, var(--f7-bars-bg-color));
  color: var(--f7-calendar-week-header-text-color, var(--f7-bars-text-color));
  height: var(--f7-calendar-week-header-height);
  padding-left: var(--f7-safe-area-left);
  padding-right: var(--f7-safe-area-right);
}
.calendar-week-header .calendar-week-day {
  flex-shrink: 1;
  width: calc(100% / 7);
  text-align: center;
  line-height: var(--f7-calendar-week-header-height);
}
.calendar-months {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
  flex-shrink: 10;
}
.calendar-months-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  transition: 300ms;
}
.calendar-month {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.calendar-row {
  height: 16.66666667%;
  display: flex;
  flex-shrink: 1;
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding-left: var(--f7-safe-area-left);
  padding-right: var(--f7-safe-area-right);
}
.calendar-modal .calendar-months:first-child .calendar-row:first-child:before,
.calendar-popover .calendar-months:first-child .calendar-row:first-child:before {
  display: none !important;
}
.calendar-day {
  flex-shrink: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: 14.28571429%;
  text-align: center;
  cursor: pointer;
  z-index: 20;
  color: var(--f7-calendar-day-text-color);
  height: 100%;
  font-size: var(--f7-calendar-day-font-size);
}
.calendar-day-today .calendar-day-number {
  color: var(--f7-calendar-today-text-color, var(--f7-theme-color));
  background-color: var(--f7-calendar-today-bg-color);
}
.calendar-day-prev,
.calendar-day-next {
  color: var(--f7-calendar-prev-next-text-color);
}
.calendar-day-disabled {
  color: var(--f7-calendar-disabled-text-color);
  cursor: auto;
}
.calendar-day-selected .calendar-day-number {
  color: var(--f7-calendar-selected-text-color);
  background-color: var(--f7-calendar-selected-bg-color, var(--f7-theme-color));
}
.calendar-day-number {
  display: inline-block;
  border-radius: 50%;
  position: relative;
  width: var(--f7-calendar-day-size);
  height: var(--f7-calendar-day-size);
  line-height: var(--f7-calendar-day-size);
}
.calendar-day-events {
  position: absolute;
  display: flex;
  left: 0;
  width: 100%;
  top: 100%;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}
.calendar-day-event {
  width: var(--f7-calendar-event-dot-size);
  height: var(--f7-calendar-event-dot-size);
  border-radius: calc(var(--f7-calendar-event-dot-size) / 2);
  background-color: var(--f7-calendar-event-bg-color);
}
.calendar-day-event + .calendar-day-event {
  margin-left: 2px;
}
.calendar-day-selected-range,
.calendar-day-selected-left,
.calendar-day-selected-right {
  position: relative;
}
.calendar-day-selected-range:before,
.calendar-day-selected-left:before,
.calendar-day-selected-right:before {
  width: 100%;
  height: var(--f7-calendar-day-size);
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: -1;
  background-color: var(--f7-calendar-selected-bg-color, var(--f7-theme-color));
  opacity: 0.2;
}
.calendar-day-selected-range:first-child:before,
.calendar-day-selected-left:before {
  left: auto;
  right: 0;
  width: calc(50% + var(--f7-calendar-day-size) / 2);
  border-radius: var(--f7-calendar-day-size) 0 0 var(--f7-calendar-day-size);
}
.calendar-day-selected-range:last-child:before,
.calendar-day-selected-right:before {
  width: calc(50% + var(--f7-calendar-day-size) / 2);
  border-radius: 0 var(--f7-calendar-day-size) var(--f7-calendar-day-size) 0;
}
.calendar-day-selected-left:last-child:before,
.calendar-day-selected-right:first-child:before {
  display: none;
}
.calendar-day-selected-left.calendar-day-selected-right:before {
  content: none;
  display: none;
}
.calendar-day-selected-range .calendar-day-number {
  background-color: transparent;
  color: inherit;
}
.calendar-month-selector,
.calendar-year-selector {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 50%;
  max-width: 200px;
  flex-shrink: 10;
  margin-left: auto;
  margin-right: auto;
}
.calendar-month-selector .calendar-day-number,
.calendar-year-selector .calendar-day-number {
  flex-shrink: 1;
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis;
}
.calendar-month-selector a.icon-only,
.calendar-year-selector a.icon-only {
  min-width: 36px;
}
.calendar-month-picker,
.calendar-year-picker,
.calendar-time-picker {
  position: relative;
  width: 100%;
  height: 100%;
  -webkit-user-select: none;
          user-select: none;
  background: transparent;
}
.calendar-month-picker .picker-columns,
.calendar-year-picker .picker-columns {
  text-align: center;
}
.calendar-month-picker-item,
.calendar-year-picker-item {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition-duration: 100ms;
  box-sizing: border-box;
}
.calendar-month-picker-item span,
.calendar-year-picker-item span {
  white-space: nowrap;
  text-overflow: ellipsis;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  pointer-events: none;
}
.calendar-month-picker-item.active-state,
.calendar-year-picker-item.active-state {
  background: var(--f7-calendar-picker-pressed-bg-color);
}
.calendar-month-picker-item {
  padding: 5px;
}
.sheet-modal .calendar-month-picker-item {
  width: 25%;
  height: 33.33333333%;
}
.sheet-modal .calendar-month-picker-item:nth-child(4n + 1):before {
  display: none !important;
}
.sheet-modal .calendar-month-picker-item:nth-child(n + 9):after {
  display: none !important;
}
.popover .calendar-month-picker-item,
.calendar-modal .calendar-month-picker-item {
  width: 33.33333333%;
  height: 25%;
}
.popover .calendar-month-picker-item:nth-child(3n + 1):before,
.calendar-modal .calendar-month-picker-item:nth-child(3n + 1):before {
  display: none !important;
}
.popover .calendar-month-picker-item:nth-child(n + 10):after,
.calendar-modal .calendar-month-picker-item:nth-child(n + 10):after {
  display: none !important;
}
.calendar-month-picker-item-current,
.calendar-year-picker-item-current {
  color: var(--f7-calendar-picker-selected-text-color, var(--f7-theme-color));
}
.calendar-year-picker {
  overflow: auto;
  --webkit-overflow-scrolling: touch;
}
.calendar-year-picker-item {
  height: 34px;
  line-height: 34px;
  width: 100%;
}
.calendar-time-selector {
  flex-shrink: 0;
  font-size: var(--f7-calendar-time-selector-font-size);
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
}
.calendar-time-selector a {
  overflow: hidden;
  position: relative;
  justify-content: center;
  align-items: center;
  display: flex;
  box-sizing: border-box;
  height: var(--f7-calendar-time-selector-height);
  background-color: var(--f7-calendar-time-selector-bg-color);
  padding: 0 16px;
  border-radius: 8px;
}
.calendar-time-selector > span {
  font-weight: 500;
}
.calendar-time-selector .segmented {
  margin-left: 8px;
}
.calendar-time-picker-popover,
.calendar-year-picker-popover,
.calendar-month-picker-popover {
  height: 240px;
  width: 240px;
}
.calendar-time-picker-popover .popover-inner,
.calendar-year-picker-popover .popover-inner,
.calendar-month-picker-popover .popover-inner {
  height: 100%;
  overflow: hidden;
}
.calendar-time-picker {
  --f7-picker-popover-height: 100%;
  --f7-picker-inline-height: 100%;
}
.calendar-time-picker .toolbar {
  flex-shrink: 0;
  top: 0 !important;
}
.calendar-time-picker .picker {
  height: 100%;
  display: flex;
  flex-direction: column;
}
/* === Picker === */
:root {
  --f7-picker-height: 260px;
  --f7-picker-inline-height: 200px;
  --f7-picker-popover-height: 260px;
  --f7-picker-popover-width: 280px;
  --f7-picker-landscape-height: 200px;
  --f7-picker-item-height: 36px;
  /*
  --f7-picker-sheet-bg-color: var(--f7-sheet-bg-color);
  */
}
.ios {
  --f7-picker-column-font-size: 20px;
  --f7-picker-item-selected-text-color: #000;
  --f7-picker-item-selected-bg-color: rgba(0, 0, 0, 0.12);
  --f7-picker-divider-text-color: #000;
  --f7-picker-item-text-color: rgba(0, 0, 0, 0.45);
}
.ios .dark,
.ios.dark {
  --f7-picker-item-selected-text-color: #fff;
  --f7-picker-item-selected-bg-color: rgba(255, 255, 255, 0.1);
  --f7-picker-divider-text-color: #fff;
  --f7-picker-item-text-color: rgba(255, 255, 255, 0.55);
}
.md {
  --f7-picker-column-font-size: 20px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-picker-item-selected-text-color: var(--f7-md-on-surface);
  --f7-picker-item-text-color: var(--f7-md-on-surface-variant);
  --f7-picker-divider-text-color: var(--f7-md-on-surface);
  --f7-picker-item-selected-border-color: var(--f7-md-outline);
}
.picker {
  width: 100%;
  height: var(--f7-picker-height);
}
.picker.picker-inline {
  height: var(--f7-picker-inline-height);
}
.popover .picker {
  height: var(--f7-picker-popover-height);
}
@media (orientation: landscape) and (max-height: 415px) {
  .picker:not(.picker-inline) {
    height: var(--f7-picker-landscape-height);
  }
}
.picker.sheet-modal {
  background: var(--f7-picker-sheet-bg-color, var(--f7-sheet-bg-color));
}
.picker-popover {
  width: var(--f7-picker-popover-width);
}
.picker-popover .toolbar {
  background: none;
  border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0;
}
.picker-popover .toolbar:before {
  display: none !important;
}
.picker-popover .toolbar + .picker-columns {
  height: calc(100% - var(--f7-toolbar-height));
}
.picker-columns {
  display: flex;
  overflow: hidden;
  justify-content: center;
  padding: 0;
  text-align: right;
  height: 100%;
  position: relative;
  font-size: var(--f7-picker-column-font-size);
  --f7-picker-mask-bg-color: transparent;
}
.popover .picker-columns {
  border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius);
}
.picker-columns::before,
.picker-columns::after {
  content: '';
  position: absolute;
  left: 0;
  width: 100%;
  height: 20%;
  z-index: 100;
  pointer-events: none;
}
.page .picker-columns {
  --f7-picker-mask-bg-color: var(--f7-page-bg-color);
}
.block-strong .picker-columns {
  --f7-picker-mask-bg-color: var(--f7-block-strong-bg-color);
}
.picker-sheet .picker-columns {
  --f7-picker-mask-bg-color: var(--f7-picker-sheet-bg-color, var(--f7-sheet-bg-color));
}
.picker-popover .picker-columns {
  --f7-picker-mask-bg-color: var(--f7-popover-bg-color);
}
.picker-columns::before {
  top: 0;
  background-image: linear-gradient(to bottom, var(--f7-picker-mask-bg-color), transparent);
}
.picker-columns::after {
  bottom: 0;
  background-image: linear-gradient(to top, var(--f7-picker-mask-bg-color), transparent);
}
.picker-column {
  position: relative;
  max-height: 100%;
  z-index: 10;
}
.picker-column.picker-column-first.picker-column-last {
  width: 100%;
}
.picker-column.picker-column-left {
  text-align: left;
}
.picker-column.picker-column-center {
  text-align: center;
}
.picker-column.picker-column-right {
  text-align: right;
}
.picker-column.picker-column-divider {
  display: flex;
  align-items: center;
  color: var(--f7-picker-divider-text-color);
}
.picker-items {
  overflow: auto;
  scroll-snap-type: y mandatory;
  height: 100%;
  box-sizing: border-box;
  padding: var(--f7-picker-scroll-padding, 0px) 0px;
  scrollbar-width: none;
  scrollbar-color: transparent;
}
.picker-items::-webkit-scrollbar {
  -webkit-appearance: none;
          appearance: none;
  width: 0px;
  display: none;
  opacity: 0;
  background: transparent;
}
.picker-items::-webkit-scrollbar-track {
  box-shadow: none;
  background: transparent;
}
.picker-items::-webkit-scrollbar-thumb {
  background-color: transparent;
  outline: none;
  border-radius: 9999px;
  position: relative;
}
.picker-item {
  height: var(--f7-picker-item-height);
  line-height: var(--f7-picker-item-height);
  white-space: nowrap;
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis;
  left: 0;
  top: 0;
  width: 100%;
  box-sizing: border-box;
  color: var(--f7-picker-item-text-color);
  cursor: pointer;
  scroll-snap-align: center;
}
.picker-item span {
  padding: 0 10px;
}
.picker-item.picker-item-far {
  pointer-events: none;
}
.picker-item.picker-item-selected {
  color: var(--f7-picker-item-selected-text-color);
  transform: translate3d(0, 0, 0) rotateX(0deg);
}
.picker-column-free-mode .picker-item {
  scroll-snap-align: none;
}
.picker-center-highlight {
  height: var(--f7-picker-item-height);
  box-sizing: border-box;
  position: absolute;
  top: 50%;
  margin-top: calc(-1 * var(--f7-picker-item-height) / 2);
  pointer-events: none;
}
.picker-3d .picker-columns {
  overflow: hidden;
}
.picker-3d .picker-column,
.picker-3d .picker-items,
.picker-3d .picker-item {
  transform-style: preserve-3d;
}
.picker-3d .picker-column {
  overflow: visible;
}
.picker-3d .picker-item {
  perspective: 1200px;
  overflow: visible;
}
.picker-3d .picker-item > span {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: block;
  transform-style: preserve-3d;
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
  max-width: 100%;
  transform-origin: center center -100px;
}
.ios .picker-center-highlight {
  left: 16px;
  right: 16px;
  background-color: var(--f7-picker-item-selected-bg-color);
  border-radius: 8px;
}
.popover .ios .picker-center-highlight {
  left: 8px;
  right: 8px;
}
.md .picker-center-highlight {
  left: 0;
  right: 0;
  border-top: 1px solid var(--f7-md-outline);
  border-bottom: 1px solid var(--f7-md-outline);
}
/* === Infinite === */
.infinite-scroll-preloader {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.infinite-scroll-preloader.preloader {
  display: block;
}
.ios .infinite-scroll-preloader {
  margin-top: 35px;
  margin-bottom: 35px;
}
.ios .infinite-scroll-preloader .preloader,
.ios .infinite-scroll-preloader.preloader {
  width: 27px;
  height: 27px;
}
.md .infinite-scroll-preloader {
  margin-top: 32px;
  margin-bottom: 32px;
}
/* === PTR === */
.ios {
  --f7-ptr-preloader-size: 28px;
  --f7-ptr-size: 44px;
}
.md {
  --f7-ptr-preloader-size: 22px;
  --f7-ptr-size: 40px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-ptr-preloader-bg-color: var(--f7-md-surface-1);
  --f7-ptr-preloader-color: var(--f7-md-primary);
}
.ptr-preloader {
  position: relative;
  top: var(--f7-ptr-top, 0);
  height: var(--f7-ptr-size);
  pointer-events: none;
}
.ptr-preloader .preloader {
  position: absolute;
  left: 50%;
  width: var(--f7-ptr-preloader-size);
  height: var(--f7-ptr-preloader-size);
  margin-left: calc(-1 * var(--f7-ptr-preloader-size) / 2);
  margin-top: calc(-1 * var(--f7-ptr-preloader-size) / 2);
  top: 50%;
  visibility: hidden;
}
.ptr-bottom .ptr-preloader {
  top: auto;
  bottom: 0;
  position: fixed;
}
.ptr-with-navbar-large-transparent .ptr-preloader,
.ptr-with-navbar-transparent .ptr-preloader {
  top: calc(-1 * var(--f7-page-navbar-offset, 0px) + var(--f7-safe-area-top));
}
.ios .ptr-preloader {
  margin-bottom: calc(-1 * var(--f7-ptr-size));
  width: 100%;
  left: 0;
  top: 0;
  position: relative;
}
.ios .ptr-preloader .preloader {
  visibility: visible;
}
.ios .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader,
.ios .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader-inner {
  animation: none;
}
.ios .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up):not(.ptr-pull-down) .ptr-preloader .preloader-inner-line,
.ios .ptr-content.ptr-closing .ptr-preloader .preloader-inner-line {
  opacity: 0 !important;
}
.ios .ptr-transitioning > *,
.ios .ptr-refreshing > * {
  transition-duration: 200ms;
  transition-property: transform;
}
.ios .ptr-transitioning .ptr-preloader .preloader-inner-line {
  transition-duration: 200ms;
}
.ios .ptr-pull-up .ptr-preloader .preloader {
  animation: ios-ptr-preloader-spin 1s ease-out forwards;
}
.ios .ptr-refreshing:not(.ptr-bottom) {
  transform: none;
}
.ios .ptr-refreshing:not(.ptr-bottom) > * {
  transform: translate3d(0, var(--f7-ptr-size), 0);
}
.ios .ptr-refreshing:not(.ptr-bottom) > .ptr-preloader {
  transform: translate3d(0, 0, 0);
}
.ios .ptr-bottom .ptr-preloader {
  margin-bottom: 0;
  margin-top: calc(-1 * var(--f7-ptr-size));
  position: relative;
}
.ios .ptr-bottom.ptr-transitioning > *,
.ios .ptr-bottom.ptr-refreshing > * {
  transition-duration: 300ms;
  transition-property: transform;
}
.ios .ptr-bottom.ptr-refreshing {
  transform: none;
}
.ios .ptr-bottom.ptr-refreshing > * {
  transform: translate3d(0, calc(-1 * var(--f7-ptr-size)), 0);
}
.ios .ptr-bottom.ptr-refreshing > .ptr-preloader {
  transform: translate3d(0, 0, 0);
}
@keyframes ios-ptr-preloader-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(135deg);
  }
}
.md {
  --f7-ptr-top: -4px;
}
.md .ptr-preloader {
  width: var(--f7-ptr-size);
  border-radius: 50%;
  background: var(--f7-ptr-preloader-bg-color);
  --f7-preloader-color: var(--f7-ptr-preloader-color);
  margin-top: calc(-1 * var(--f7-ptr-size));
  z-index: 100;
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  left: 50%;
  margin-left: calc(-1 * var(--f7-ptr-size) / 2);
}
.md .ptr-preloader .preloader circle {
  stroke-width: 4;
}
.md .ptr-arrow {
  width: 22px;
  height: 22px;
  box-sizing: border-box;
  border: 3px solid var(--f7-preloader-color);
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -11px;
  margin-top: -11px;
  border-left-color: transparent;
  border-radius: 50%;
  opacity: 1;
  transform: rotate(150deg);
}
.md .ptr-arrow:after {
  content: '';
  width: 0px;
  height: 0px;
  position: absolute;
  left: -5px;
  bottom: 0px;
  border-bottom-width: 6px;
  border-bottom-style: solid;
  border-bottom-color: inherit;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  transform: rotate(-40deg);
}
.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader,
.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader-inner,
.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader circle {
  animation: none;
}
.md .ptr-refreshing .ptr-preloader .preloader,
.md .ptr-pull-up .ptr-preloader .preloader {
  visibility: visible;
}
.md .ptr-refreshing .ptr-arrow,
.md .ptr-pull-up .ptr-arrow {
  visibility: hidden;
}
.md .ptr-refreshing .ptr-preloader {
  transform: translate3d(0, 66px, 0);
}
.md .ptr-transitioning .ptr-arrow {
  transition: 300ms;
}
.md .ptr-pull-up .ptr-arrow {
  transition: 400ms;
  transform: rotate(620deg) !important;
  opacity: 0;
}
.md .ptr-transitioning .ptr-preloader,
.md .ptr-refreshing .ptr-preloader {
  transition-duration: 300ms;
  transition-property: transform, opacity;
}
.md .ptr-bottom .ptr-preloader {
  margin-top: 0;
  margin-bottom: calc(-1 * var(--f7-ptr-size) - 4px);
}
.md .ptr-bottom.ptr-refreshing .ptr-preloader {
  transform: translate3d(0, -66px, 0);
}
.md .ptr-with-navbar-large-transparent .ptr-preloader,
.md .ptr-with-navbar-transparent .ptr-preloader {
  opacity: 0;
}
.md .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader,
.md .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader,
.md .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader,
.md .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader,
.md .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader,
.md .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader {
  opacity: 1;
}
.md .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader,
.md .ptr-with-navbar-transparent.ptr-closing .ptr-preloader {
  opacity: 0;
  transition-duration: 300ms;
}
/* === Data Table === */
:root {
  --f7-table-head-font-size: 12px;
  --f7-table-body-font-size: 14px;
  --f7-table-footer-font-size: 12px;
  --f7-table-input-height: 24px;
  --f7-table-input-font-size: 14px;
  --f7-table-collapsible-cell-padding: 16px;
  --f7-table-link-icon-only-icon-size: 20px;
  --f7-table-head-bg-color: transparent;
  --f7-table-card-header-bg-color: transparent;
  --f7-table-card-header-height: 64px;
  --f7-table-cell-padding-vertical: 0px;
  --f7-table-sortable-icon-color: #000;
}
:root .dark,
:root.dark {
  --f7-table-sortable-icon-color: #fff;
  --f7-table-input-text-color: #fff;
}
.ios {
  --f7-table-head-font-weight: 600;
  --f7-table-head-cell-height: 44px;
  --f7-table-head-icon-size: 18px;
  --f7-table-body-cell-height: 44px;
  --f7-table-cell-padding-horizontal: 16px;
  --f7-table-edge-cell-padding-horizontal: 16px;
  --f7-table-label-cell-padding-horizontal: 16px;
  --f7-table-checkbox-cell-width: 22px;
  /* --f7-table-actions-cell-link-color: var(--f7-theme-color); */
  /* --f7-table-actions-link-color: var(--f7-theme-color); */
  --f7-table-title-font-size: 17px;
  --f7-table-title-font-weight: 600;
  --f7-table-footer-height: 44px;
  --f7-table-head-text-color: rgba(0, 0, 0, 0.45);
  --f7-table-cell-border-color: rgba(0, 0, 0, 0.22);
  --f7-table-selected-row-bg-color: rgba(0, 0, 0, 0.03);
  --f7-table-footer-text-color: rgba(0, 0, 0, 0.45);
  --f7-table-input-text-color: #000;
}
.ios .dark,
.ios.dark {
  --f7-table-head-text-color: rgba(255, 255, 255, 0.55);
  --f7-table-cell-border-color: rgba(255, 255, 255, 0.15);
  --f7-table-footer-text-color: rgba(255, 255, 255, 0.55);
  --f7-table-selected-row-bg-color: rgba(255, 255, 255, 0.08);
}
.md {
  --f7-table-head-font-weight: 500;
  --f7-table-head-cell-height: 56px;
  --f7-table-head-icon-size: 16px;
  --f7-table-body-cell-height: 48px;
  --f7-table-cell-padding-horizontal: 28px;
  --f7-table-edge-cell-padding-horizontal: 24px;
  --f7-table-label-cell-padding-horizontal: 24px;
  --f7-table-checkbox-cell-width: 18px;
  --f7-table-title-font-size: 20px;
  --f7-table-title-font-weight: 400;
  --f7-table-footer-height: 56px;
  --f7-table-actions-cell-link-color: rgba(0, 0, 0, 0.54);
  --f7-table-actions-link-color: rgba(0, 0, 0, 0.54);
  --f7-table-input-text-color: #212121;
}
.md .dark,
.md.dark {
  --f7-table-actions-cell-link-color: rgba(255, 255, 255, 0.54);
  --f7-table-actions-link-color: rgba(255, 255, 255, 0.54);
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-table-head-text-color: var(--f7-md-on-surface-variant);
  --f7-table-footer-text-color: var(--f7-md-on-surface-variant);
  --f7-table-selected-row-bg-color: var(--f7-md-secondary-container);
  --f7-table-cell-border-color: var(--f7-md-outline);
}
.data-table {
  overflow-x: auto;
}
.data-table table,
table.data-table {
  width: 100%;
  border: none;
  padding: 0;
  margin: 0;
  border-collapse: collapse;
  text-align: left;
}
.data-table thead th,
.data-table thead td {
  font-size: var(--f7-table-head-font-size);
  font-weight: var(--f7-table-head-font-weight);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  line-height: 16px;
  height: var(--f7-table-head-cell-height);
  background-color: var(--f7-table-head-bg-color);
}
.data-table thead th:not(.sortable-cell-active),
.data-table thead td:not(.sortable-cell-active) {
  color: var(--f7-table-head-text-color);
}
.data-table thead i.icon,
.data-table thead i.f7-icons,
.data-table thead i.material-icons {
  vertical-align: top;
  font-size: var(--f7-table-head-icon-size);
}
.data-table tbody {
  font-size: var(--f7-table-body-font-size);
}
.data-table tbody th,
.data-table tbody td {
  height: var(--f7-table-body-cell-height);
}
.data-table tbody tr.data-table-row-selected,
.device-desktop .data-table tbody tr:hover {
  background: var(--f7-table-selected-row-bg-color);
}
.data-table tbody td:before,
.data-table tbody th:before {
  content: '';
  position: absolute;
  background-color: var(--f7-table-cell-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.data-table th,
.data-table td {
  --f7-table-cell-padding-left: var(--f7-table-cell-padding-horizontal);
  --f7-table-cell-padding-right: var(--f7-table-cell-padding-horizontal);
  padding-top: var(--f7-table-cell-padding-vertical);
  padding-bottom: var(--f7-table-cell-padding-vertical);
  padding-left: var(--f7-table-cell-padding-left);
  padding-right: var(--f7-table-cell-padding-right);
  position: relative;
  box-sizing: border-box;
}
.data-table th:first-child,
.data-table td:first-child {
  --f7-table-cell-padding-left: var(--f7-table-edge-cell-padding-horizontal);
}
.data-table th:last-child,
.data-table td:last-child {
  --f7-table-cell-padding-right: var(--f7-table-edge-cell-padding-horizontal);
}
.data-table th.label-cell,
.data-table td.label-cell {
  --f7-table-cell-padding-left: var(--f7-table-label-cell-padding-horizontal);
  --f7-table-cell-padding-right: var(--f7-table-label-cell-padding-horizontal);
}
.data-table th.numeric-cell,
.data-table td.numeric-cell {
  text-align: right;
}
.data-table th.checkbox-cell,
.data-table td.checkbox-cell {
  overflow: visible;
  width: var(--f7-table-checkbox-cell-width);
}
.data-table th.checkbox-cell label + span,
.data-table td.checkbox-cell label + span {
  margin-left: 8px;
}
.data-table th.checkbox-cell:first-child,
.data-table td.checkbox-cell:first-child {
  padding-right: calc(var(--f7-table-cell-padding-right) / 2);
}
.data-table th.checkbox-cell:first-child + td,
.data-table td.checkbox-cell:first-child + td,
.data-table th.checkbox-cell:first-child + th,
.data-table td.checkbox-cell:first-child + th {
  padding-left: calc(var(--f7-table-cell-padding-left) / 2);
}
.data-table th.checkbox-cell:last-child,
.data-table td.checkbox-cell:last-child {
  padding-left: calc(var(--f7-table-cell-padding-left) / 2);
}
.data-table th.actions-cell,
.data-table td.actions-cell {
  text-align: right;
  white-space: nowrap;
}
.data-table th.actions-cell a.link,
.data-table td.actions-cell a.link {
  color: var(--f7-table-actions-cell-link-color, var(--f7-theme-color));
}
.data-table th a.icon-only,
.data-table td a.icon-only,
.card .data-table th a.icon-only,
.card .data-table td a.icon-only,
.card.data-table th a.icon-only,
.card.data-table td a.icon-only {
  display: inline-block;
  vertical-align: middle;
  text-align: center;
  font-size: 0;
  min-width: 0;
}
.data-table th a.icon-only i,
.data-table td a.icon-only i,
.card .data-table th a.icon-only i,
.card .data-table td a.icon-only i,
.card.data-table th a.icon-only i,
.card.data-table td a.icon-only i {
  font-size: var(--f7-table-link-icon-only-icon-size);
  vertical-align: middle;
}
.data-table .sortable-cell:not(.input-cell) {
  cursor: pointer;
  position: relative;
}
.data-table .sortable-cell.input-cell .table-head-label {
  cursor: pointer;
  position: relative;
}
.data-table .sortable-cell:not(.numeric-cell):not(.input-cell):after,
.data-table .sortable-cell.numeric-cell:not(.input-cell):before,
.data-table .sortable-cell:not(.numeric-cell).input-cell > .table-head-label:after,
.data-table .sortable-cell.numeric-cell.input-cell > .table-head-label:before {
  content: 'arrow_bottom_md';
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  display: inline-block;
  vertical-align: top;
  width: 16px;
  height: 16px;
  color: var(--f7-table-sortable-icon-color);
  font-size: 13px;
  line-height: 16px;
  transition-duration: 300ms;
  transform: rotate(0);
  opacity: 0;
}
.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:after,
.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:after,
.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:before,
.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:before {
  opacity: 0.54;
}
.data-table .sortable-cell.sortable-cell-active:after,
.data-table .sortable-cell.sortable-cell-active .table-head-label:after,
.data-table .sortable-cell.sortable-cell-active:before,
.data-table .sortable-cell.sortable-cell-active .table-head-label:before {
  opacity: 0.87 !important;
}
.data-table .sortable-cell.sortable-desc:after,
.data-table .sortable-cell.sortable-desc:after,
.data-table .table-head-label:after,
.data-table .sortable-cell.sortable-desc:before,
.data-table .sortable-cell.sortable-desc:before,
.data-table .table-head-label:before {
  transform: rotate(180deg) !important;
}
.data-table.card .card-header,
.card .data-table .card-header,
.data-table.card .card-footer,
.card .data-table .card-footer {
  padding-left: var(--f7-table-edge-cell-padding-horizontal);
  padding-right: var(--f7-table-edge-cell-padding-horizontal);
}
.data-table.card .card-header,
.card .data-table .card-header {
  min-height: var(--f7-table-card-header-height);
  background-color: var(--f7-table-card-header-bg-color);
}
.data-table.card .card-content,
.card .data-table .card-content {
  overflow-x: auto;
}
.data-table.card .card-footer,
.card .data-table .card-footer {
  min-height: var(--f7-table-footer-height);
}
.data-table .data-table-title {
  font-size: var(--f7-table-title-font-size);
  font-weight: var(--f7-table-title-font-weight);
}
.data-table .data-table-links,
.data-table .data-table-actions {
  display: flex;
}
.data-table .data-table-links .button {
  min-width: 64px;
}
.data-table .data-table-actions {
  margin-left: auto;
  align-items: center;
}
.data-table .data-table-actions a.link {
  color: var(--f7-table-actions-link-color, var(--f7-theme-color));
  min-width: 0;
}
.data-table .data-table-actions a.link.icon-only {
  line-height: 1;
  justify-content: center;
  padding: 0;
}
.data-table .data-table-header,
.data-table .data-table-header-selected {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
.data-table .card-header > .data-table-header,
.data-table .card-header > .data-table-header-selected {
  padding-top: var(--f7-card-header-padding-vertical);
  padding-bottom: var(--f7-card-header-padding-vertical);
  height: 100%;
  margin-top: calc(-1 * var(--f7-card-header-padding-vertical));
  margin-bottom: calc(-1 * var(--f7-card-header-padding-vertical));
  min-height: var(--f7-table-card-header-height);
  padding-left: var(--f7-table-edge-cell-padding-horizontal);
  padding-right: var(--f7-table-edge-cell-padding-horizontal);
  margin-left: calc(-1 * var(--f7-table-edge-cell-padding-horizontal));
  margin-right: calc(-1 * var(--f7-table-edge-cell-padding-horizontal));
}
.data-table .data-table-header-selected {
  background: rgba(var(--f7-theme-color-rgb), 0.1);
  display: none;
}
.data-table.data-table-has-checked .data-table-header {
  display: none;
}
.data-table.data-table-has-checked .data-table-header-selected {
  display: flex;
}
.data-table .data-table-title-selected {
  font-size: 14px;
  color: var(--f7-theme-color);
}
.data-table .data-table-footer {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  position: relative;
  font-size: var(--f7-table-footer-font-size);
  overflow: hidden;
  min-height: var(--f7-table-footer-height);
  color: var(--f7-table-footer-text-color);
  justify-content: flex-end;
}
.data-table .data-table-footer:before {
  content: '';
  position: absolute;
  background-color: var(--f7-table-cell-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.data-table .data-table-rows-select,
.data-table .data-table-pagination {
  display: flex;
  align-items: center;
}
.data-table .input-cell {
  padding-top: 8px;
  padding-bottom: 8px;
  height: auto;
  vertical-align: top;
}
.data-table .input-cell .table-head-label + .input {
  margin-top: 4px;
}
.data-table .input-cell .input {
  height: var(--f7-table-input-height);
}
.data-table .input-cell .input input,
.data-table .input-cell .input textarea,
.data-table .input-cell .input select {
  height: var(--f7-table-input-height);
  color: var(--f7-table-input-text-color);
  font-size: var(--f7-table-input-font-size);
}
@media (max-width: 480px) and (orientation: portrait) {
  .data-table.data-table-collapsible thead {
    display: none;
  }
  .data-table.data-table-collapsible tbody,
  .data-table.data-table-collapsible tr,
  .data-table.data-table-collapsible td {
    display: block;
  }
  .data-table.data-table-collapsible tr {
    position: relative;
  }
  .data-table.data-table-collapsible tr:before {
    content: '';
    position: absolute;
    background-color: var(--f7-table-cell-border-color);
    display: block;
    z-index: 15;
    top: 0;
    right: auto;
    bottom: auto;
    left: 0;
    height: 1px;
    width: 100%;
    transform-origin: 50% 0%;
    transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
  }
  .data-table.data-table-collapsible tr:hover {
    background-color: inherit;
  }
  .data-table.data-table-collapsible td {
    --f7-table-cell-padding-left: var(--f7-table-collapsible-cell-padding);
    --f7-table-cell-padding-right: var(--f7-table-collapsible-cell-padding);
    height: auto;
    min-height: var(--f7-table-body-cell-height);
    display: flex;
    align-content: center;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
  }
  .data-table.data-table-collapsible td:before {
    display: none !important;
  }
  .data-table.data-table-collapsible td:not(.checkbox-cell):before {
    width: 40%;
    display: block !important;
    content: attr(data-collapsible-title);
    position: relative;
    height: auto;
    background: none !important;
    transform: none !important;
    font-size: var(--f7-table-head-font-size);
    font-weight: var(--f7-table-head-font-weight);
    color: var(--f7-table-head-text-color);
    margin-right: 16px;
    flex-shrink: 0;
  }
  .data-table.data-table-collapsible td.checkbox-cell {
    position: absolute;
    top: 0;
    left: 0;
  }
  .data-table.data-table-collapsible td.checkbox-cell + td {
    padding-left: 16px;
  }
  .data-table.data-table-collapsible td.checkbox-cell ~ td {
    margin-left: 32px;
  }
}
.data-table .xsmall-only,
.data-table .xsmall-landscape-only {
  display: none;
}
@media (min-width: 480px) {
  .data-table .xsmall-only {
    display: table-cell;
  }
}
@media (min-width: 480px) and (orientation: landscape) {
  .data-table .xsmall-landscape-only {
    display: table-cell;
  }
}
.data-table .small-only,
.data-table .small-landscape-only {
  display: none;
}
@media (min-width: 568px) {
  .data-table .small-only {
    display: table-cell;
  }
}
@media (min-width: 568px) and (orientation: landscape) {
  .data-table .small-landscape-only {
    display: table-cell;
  }
}
.data-table .medium-only,
.data-table .medium-landscape-only {
  display: none;
}
@media (min-width: 768px) {
  .data-table .medium-only {
    display: table-cell;
  }
}
@media (min-width: 768px) and (orientation: landscape) {
  .data-table .medium-landscape-only {
    display: table-cell;
  }
}
.data-table .large-only,
.data-table .large-landscape-only {
  display: none;
}
@media (min-width: 1024px) {
  .data-table .large-only {
    display: table-cell;
  }
}
@media (min-width: 1024px) and (orientation: landscape) {
  .data-table .large-landscape-only {
    display: table-cell;
  }
}
.data-table .xlarge-only,
.data-table .xlarge-landscape-only {
  display: none;
}
@media (min-width: 1200px) {
  .data-table .xlarge-only {
    display: table-cell;
  }
}
@media (min-width: 1200px) and (orientation: landscape) {
  .data-table .xlarge-landscape-only {
    display: table-cell;
  }
}
.ios .data-table th.actions-cell a.link + a.link,
.ios .data-table td.actions-cell a.link + a.link {
  margin-left: 16px;
}
.ios .sortable-cell:not(.numeric-cell):after {
  margin-left: 5px;
}
.ios .sortable-cell.numeric-cell:before {
  margin-right: 5px;
}
.ios .data-table-links a.link + a.link,
.ios .data-table-actions a.link + a.link,
.ios .data-table-links .button + .button,
.ios .data-table-actions .button + .button {
  margin-left: 16px;
}
.ios .data-table-actions a.link.icon-only {
  width: 44px;
  height: 44px;
}
.ios .data-table-rows-select a.link,
.ios .data-table-pagination a.link {
  width: 44px;
  height: 44px;
}
.ios .data-table-rows-select + .data-table-pagination {
  margin-left: 30px;
}
.ios .data-table-rows-select .input {
  margin-left: 20px;
}
.ios .data-table-pagination-label {
  margin-right: 16px;
}
.md .data-table th.actions-cell a.link + a.link,
.md .data-table td.actions-cell a.link + a.link {
  margin-left: 24px;
}
.md .data-table th.actions-cell a.icon-only,
.md .data-table td.actions-cell a.icon-only {
  width: 24px;
  height: 24px;
  line-height: 24px;
}
.md .sortable-cell:not(.numeric-cell):after {
  margin-left: 8px;
}
.md .sortable-cell.numeric-cell:before {
  margin-right: 8px;
}
.md .data-table-links a.link + a.link,
.md .data-table-actions a.link + a.link,
.md .data-table-links .button + .button,
.md .data-table-actions .button + .button {
  margin-left: 24px;
}
.md .data-table-actions a.link.icon-only {
  width: 24px;
  height: 24px;
  overflow: visible;
}
.md .data-table-actions a.link.icon-only.active-state {
  background: none;
}
.md .data-table-rows-select a.link,
.md .data-table-pagination a.link {
  width: 48px;
  height: 48px;
}
.md .data-table-rows-select + .data-table-pagination {
  margin-left: 32px;
}
.md .data-table-rows-select .input {
  margin-left: 24px;
}
.md .data-table-pagination-label {
  margin-right: 20px;
}
.md .input-cell .input-clear-button {
  transform: scale(0.8);
}
/* === FAB === */
:root {
  --f7-fab-margin: 16px;
  --f7-fab-extended-text-font-size: 14px;
  --f7-fab-label-padding: 4px 12px;
  --f7-fab-label-font-size: inherit;
  --f7-fab-button-size: 40px;
}
.ios {
  /* --f7-fab-pressed-bg-color: var(--f7-theme-color-shade); */
  /* --f7-fab-bg-color: var(--f7-theme-color)); */
  --f7-fab-text-color: #fff;
  --f7-fab-border-radius: 50px;
  --f7-fab-size: 50px;
  --f7-fab-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4);
  --f7-fab-extended-text-transform: uppercase;
  --f7-fab-extended-size: 50px;
  --f7-fab-extended-text-padding: 0 20px;
  --f7-fab-extended-text-font-weight: 600;
  --f7-fab-extended-text-letter-spacing: 0;
  --f7-fab-label-border-radius: 4px;
  --f7-fab-label-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.4);
  --f7-fab-label-text-color: #333;
  --f7-fab-label-bg-color: #fff;
}
.md {
  /*
  --f7-fab-pressed-bg-color: var(--f7-fab-bg-color, var(--f7-theme-color));
  */
  --f7-fab-border-radius: 16px;
  --f7-fab-size: 56px;
  --f7-fab-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.25);
  --f7-fab-extended-size: 56px;
  --f7-fab-extended-text-padding: 0 16px;
  --f7-fab-extended-text-font-weight: 500;
  --f7-fab-extended-text-letter-spacing: 0;
  --f7-fab-extended-text-transform: none;
  --f7-fab-label-border-radius: 8px;
  --f7-fab-label-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.25);
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-fab-bg-color: var(--f7-md-primary-container);
  --f7-fab-text-color: var(--f7-md-on-primary-container);
  --f7-fab-label-text-color: var(--f7-md-on-surface);
  --f7-fab-label-bg-color: var(--f7-md-surface-5);
}
.fab-backdrop {
  z-index: 1400;
}
.fab {
  position: absolute;
  z-index: 1500;
}
.fab a {
  --f7-touch-ripple-color: var(--f7-touch-ripple-white);
}
.fab-left-top,
.fab-left-center,
.fab-left-bottom {
  left: calc(var(--f7-fab-margin) + var(--f7-safe-area-left));
}
.fab-right-top,
.fab-right-center,
.fab-right-bottom {
  right: calc(var(--f7-fab-margin) + var(--f7-safe-area-right));
}
.fab-left-top,
.fab-center-top,
.fab-right-top {
  top: var(--f7-fab-margin);
}
.fab-left-bottom,
.fab-center-bottom,
.fab-right-bottom {
  bottom: calc(var(--f7-fab-margin) + var(--f7-safe-area-bottom));
}
.fab-center-top,
.fab-center-center,
.fab-center-bottom {
  left: 50%;
  transform: translateX(-50%);
}
.fab-left-center,
.fab-center-center,
.fab-right-center {
  top: 50%;
  transform: translateY(-50%);
}
.fab-center-center {
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}
.fab > a,
.fab-buttons a {
  background-color: var(--f7-fab-bg-color, var(--f7-theme-color));
  width: var(--f7-fab-size);
  height: var(--f7-fab-size);
  box-shadow: var(--f7-fab-box-shadow);
  border-radius: var(--f7-fab-border-radius);
  position: relative;
  transition-duration: 300ms;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  z-index: 1;
  color: var(--f7-fab-text-color);
}
.fab > a i {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1);
  transition: 300ms;
}
.fab > a i + i {
  transform: translate3d(-50%, -50%, 0) rotate(-90deg) scale(0.5);
  opacity: 0;
}
.fab-buttons a {
  border-radius: var(--f7-fab-border-radius);
  width: var(--f7-fab-button-size);
  height: var(--f7-fab-button-size);
}
.fab-buttons {
  display: flex;
  visibility: hidden;
  pointer-events: none;
  position: absolute;
}
.fab-buttons a {
  opacity: 0;
}
.fab-opened:not(.fab-morph) > a i {
  transform: translate3d(-50%, -50%, 0) rotate(90deg) scale(0.5);
  opacity: 0;
}
.fab-opened:not(.fab-morph) > a i + i {
  transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1);
  opacity: 1;
}
.fab-opened .fab-buttons {
  visibility: visible;
  pointer-events: auto;
}
.fab-opened .fab-buttons a {
  opacity: 1;
  transform: translate3d(0, 0px, 0) scale(1) !important;
}
.fab-opened .fab-buttons a:nth-child(2) {
  transition-delay: 50ms;
}
.fab-opened .fab-buttons a:nth-child(3) {
  transition-delay: 100ms;
}
.fab-opened .fab-buttons a:nth-child(4) {
  transition-delay: 150ms;
}
.fab-opened .fab-buttons a:nth-child(5) {
  transition-delay: 200ms;
}
.fab-opened .fab-buttons a:nth-child(6) {
  transition-delay: 250ms;
}
.fab-buttons-top,
.fab-buttons-bottom {
  left: 50%;
  width: var(--f7-fab-button-size);
  margin-left: calc(-1 * var(--f7-fab-button-size) / 2);
}
.fab-buttons-top {
  bottom: 100%;
  margin-bottom: 16px;
  flex-direction: column-reverse;
}
.fab-buttons-top a {
  transform: translate3d(0, 8px, 0) scale(0.3);
  transform-origin: center bottom;
}
.fab-buttons-top a + a {
  margin-bottom: 16px;
}
.fab-buttons-bottom {
  top: 100%;
  margin-top: 16px;
  flex-direction: column;
}
.fab-buttons-bottom a {
  transform: translate3d(0, -8px, 0) scale(0.3);
  transform-origin: center top;
}
.fab-buttons-bottom a + a {
  margin-top: 16px;
}
.fab-buttons-left,
.fab-buttons-right {
  top: 50%;
  height: var(--f7-fab-button-size);
  margin-top: calc(-1 * var(--f7-fab-button-size) / 2);
}
.fab-buttons-left {
  right: 100%;
  margin-right: 16px;
  flex-direction: row-reverse;
}
.fab-buttons-left a {
  transform: translate3d(8px, 0px, 0) scale(0.3);
  transform-origin: right center;
}
.fab-buttons-left a + a {
  margin-right: 16px;
}
.fab-buttons-right {
  left: 100%;
  margin-left: 16px;
}
.fab-buttons-right a {
  transform: translate3d(-8px, 0, 0) scale(0.3);
  transform-origin: left center;
}
.fab-buttons-right a + a {
  margin-left: 16px;
}
.fab-buttons-center {
  left: 0%;
  top: 0%;
  width: 100%;
  height: 100%;
}
.fab-buttons-center a {
  position: absolute;
}
.fab-buttons-center a:nth-child(1) {
  left: 50%;
  margin-left: calc(-1 * var(--f7-fab-button-size) / 2);
  bottom: 100%;
  margin-bottom: 16px;
  transform: translateY(-8px) scale(0.3);
  transform-origin: center bottom;
}
.fab-buttons-center a:nth-child(2) {
  left: 100%;
  margin-top: calc(-1 * var(--f7-fab-button-size) / 2);
  top: 50%;
  margin-left: 16px;
  transform: translateX(-8px) scale(0.3);
  transform-origin: left center;
}
.fab-buttons-center a:nth-child(3) {
  left: 50%;
  margin-left: calc(-1 * var(--f7-fab-button-size) / 2);
  top: 100%;
  margin-top: 16px;
  transform: translateY(8px) scale(0.3);
  transform-origin: center top;
}
.fab-buttons-center a:nth-child(4) {
  right: 100%;
  margin-top: calc(-1 * var(--f7-fab-button-size) / 2);
  top: 50%;
  margin-right: 16px;
  transform: translateX(8px) scale(0.3);
  transform-origin: right center;
}
.fab-morph {
  border-radius: var(--f7-fab-border-radius);
  background: var(--f7-fab-bg-color, var(--f7-theme-color));
  box-shadow: var(--f7-fab-box-shadow);
}
.fab-morph > a {
  box-shadow: none;
  background: none !important;
}
.fab-opened.fab-morph > a i {
  opacity: 0;
}
.fab-morph,
.fab-morph > a,
.fab-morph-target {
  transition-duration: 250ms;
}
.fab-morph-target:not(.fab-morph-target-visible) {
  display: none;
}
.fab-extended {
  width: auto;
  min-width: var(--f7-fab-extended-size);
}
.fab-extended > a {
  width: 100%;
  height: var(--f7-fab-extended-size);
}
.fab-extended > a i {
  left: calc(var(--f7-fab-extended-size) / 2);
}
.fab-extended i ~ .fab-text {
  padding-left: var(--f7-fab-extended-size);
}
.fab-extended > a {
  width: 100% !important;
}
.fab-text {
  box-sizing: border-box;
  font-size: var(--f7-fab-extended-text-font-size);
  padding: var(--f7-fab-extended-text-padding);
  font-weight: var(--f7-fab-extended-text-font-weight);
  letter-spacing: var(--f7-fab-extended-text-letter-spacing);
  text-transform: var(--f7-fab-extended-text-transform);
}
.fab-label-button {
  overflow: visible !important;
}
.fab-label {
  position: absolute;
  top: 50%;
  padding: var(--f7-fab-label-padding);
  border-radius: var(--f7-fab-label-border-radius);
  background: var(--f7-fab-label-bg-color);
  color: var(--f7-fab-label-text-color);
  box-shadow: var(--f7-fab-label-box-shadow);
  white-space: nowrap;
  transform: translateY(-50%);
  pointer-events: none;
  font-size: var(--f7-fab-label-font-size);
}
.fab-right-top .fab-label,
.fab-right-center .fab-label,
.fab-right-bottom .fab-label {
  right: 100%;
  margin-right: 8px;
}
.fab-left-top .fab-label,
.fab-left-center .fab-label,
.fab-left-bottom .fab-label {
  left: 100%;
  margin-left: 8px;
}
.navbar ~ * .fab-left-top,
.navbar ~ * .fab-center-top,
.navbar ~ * .fab-right-top,
.navbar ~ .fab-left-top,
.navbar ~ .fab-center-top,
.navbar ~ .fab-right-top,
.navbars ~ * .fab-left-top,
.navbars ~ * .fab-center-top,
.navbars ~ * .fab-right-top,
.navbars ~ .fab-left-top,
.navbars ~ .fab-center-top,
.navbars ~ .fab-right-top {
  margin-top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.toolbar-top ~ * .fab-left-top,
.toolbar-top ~ * .fab-center-top,
.toolbar-top ~ * .fab-right-top,
.toolbar-top ~ .fab-left-top,
.toolbar-top ~ .fab-center-top,
.toolbar-top ~ .fab-right-top,
.ios .toolbar-top-ios ~ * .fab-left-top,
.ios .toolbar-top-ios ~ * .fab-center-top,
.ios .toolbar-top-ios ~ * .fab-right-top,
.ios .toolbar-top-ios ~ .fab-left-top,
.ios .toolbar-top-ios ~ .fab-center-top,
.ios .toolbar-top-ios ~ .fab-right-top,
.md .toolbar-top-md ~ * .fab-left-top,
.md .toolbar-top-md ~ * .fab-center-top,
.md .toolbar-top-md ~ * .fab-right-top,
.md .toolbar-top-md ~ .fab-left-top,
.md .toolbar-top-md ~ .fab-center-top,
.md .toolbar-top-md ~ .fab-right-top {
  margin-top: var(--f7-toolbar-height);
}
.toolbar-bottom ~ * .fab-left-bottom,
.toolbar-bottom ~ * .fab-center-bottom,
.toolbar-bottom ~ * .fab-right-bottom,
.toolbar-bottom ~ .fab-left-bottom,
.toolbar-bottom ~ .fab-center-bottom,
.toolbar-bottom ~ .fab-right-bottom,
.ios .toolbar-bottom-ios ~ * .fab-left-bottom,
.ios .toolbar-bottom-ios ~ * .fab-center-bottom,
.ios .toolbar-bottom-ios ~ * .fab-right-bottom,
.ios .toolbar-bottom-ios ~ .fab-left-bottom,
.ios .toolbar-bottom-ios ~ .fab-center-bottom,
.ios .toolbar-bottom-ios ~ .fab-right-bottom,
.md .toolbar-bottom-md ~ * .fab-left-bottom,
.md .toolbar-bottom-md ~ * .fab-center-bottom,
.md .toolbar-bottom-md ~ * .fab-right-bottom,
.md .toolbar-bottom-md ~ .fab-left-bottom,
.md .toolbar-bottom-md ~ .fab-center-bottom,
.md .toolbar-bottom-md ~ .fab-right-bottom {
  margin-bottom: var(--f7-toolbar-height);
}
.tabbar-icons.toolbar-bottom ~ * .fab-left-bottom,
.tabbar-icons.toolbar-bottom ~ * .fab-center-bottom,
.tabbar-icons.toolbar-bottom ~ * .fab-right-bottom,
.tabbar-icons.toolbar-bottom ~ .fab-left-bottom,
.tabbar-icons.toolbar-bottom ~ .fab-center-bottom,
.tabbar-icons.toolbar-bottom ~ .fab-right-bottom,
.ios .tabbar-icons.toolbar-bottom-ios ~ * .fab-left-bottom,
.ios .tabbar-icons.toolbar-bottom-ios ~ * .fab-center-bottom,
.ios .tabbar-icons.toolbar-bottom-ios ~ * .fab-right-bottom,
.ios .tabbar-icons.toolbar-bottom-ios ~ .fab-left-bottom,
.ios .tabbar-icons.toolbar-bottom-ios ~ .fab-center-bottom,
.ios .tabbar-icons.toolbar-bottom-ios ~ .fab-right-bottom,
.md .tabbar-icons.toolbar-bottom-md ~ * .fab-left-bottom,
.md .tabbar-icons.toolbar-bottom-md ~ * .fab-center-bottom,
.md .tabbar-icons.toolbar-bottom-md ~ * .fab-right-bottom,
.md .tabbar-icons.toolbar-bottom-md ~ .fab-left-bottom,
.md .tabbar-icons.toolbar-bottom-md ~ .fab-center-bottom,
.md .tabbar-icons.toolbar-bottom-md ~ .fab-right-bottom {
  margin-bottom: var(--f7-tabbar-icons-height);
}
.tabbar-icons.toolbar-top ~ * .fab-left-bottom,
.tabbar-icons.toolbar-top ~ * .fab-center-bottom,
.tabbar-icons.toolbar-top ~ * .fab-right-bottom,
.tabbar-icons.toolbar-top ~ .fab-left-bottom,
.tabbar-icons.toolbar-top ~ .fab-center-bottom,
.tabbar-icons.toolbar-top ~ .fab-right-bottom,
.ios .tabbar-icons.toolbar-top-ios ~ * .fab-left-bottom,
.ios .tabbar-icons.toolbar-top-ios ~ * .fab-center-bottom,
.ios .tabbar-icons.toolbar-top-ios ~ * .fab-right-bottom,
.ios .tabbar-icons.toolbar-top-ios ~ .fab-left-bottom,
.ios .tabbar-icons.toolbar-top-ios ~ .fab-center-bottom,
.ios .tabbar-icons.toolbar-top-ios ~ .fab-right-bottom,
.md .tabbar-icons.toolbar-top-md ~ * .fab-left-bottom,
.md .tabbar-icons.toolbar-top-md ~ * .fab-center-bottom,
.md .tabbar-icons.toolbar-top-md ~ * .fab-right-bottom,
.md .tabbar-icons.toolbar-top-md ~ .fab-left-bottom,
.md .tabbar-icons.toolbar-top-md ~ .fab-center-bottom,
.md .tabbar-icons.toolbar-top-md ~ .fab-right-bottom {
  margin-top: var(--f7-tabbar-icons-height);
}
.messagebar ~ * .fab-left-bottom,
.messagebar ~ * .fab-center-bottom,
.messagebar ~ * .fab-right-bottom,
.messagebar ~ .fab-left-bottom,
.messagebar ~ .fab-center-bottom,
.messagebar ~ .fab-right-bottom {
  margin-bottom: var(--f7-messagebar-height);
}
.navbar + .toolbar-top ~ * .fab-left-top,
.ios .navbar + .toolbar-top-ios ~ * .fab-left-top,
.md .navbar + .toolbar-top-ios ~ * .fab-left-top,
.navbar + .toolbar-top ~ * .fab-center-top,
.ios .navbar + .toolbar-top-ios ~ * .fab-center-top,
.md .navbar + .toolbar-top-ios ~ * .fab-center-top,
.navbar + .toolbar-top ~ * .fab-right-top,
.ios .navbar + .toolbar-top-ios ~ * .fab-right-top,
.md .navbar + .toolbar-top-ios ~ * .fab-right-top,
.navbar + .toolbar-top ~ .fab-left-top,
.ios .navbar + .toolbar-top-ios ~ .fab-left-top,
.md .navbar + .toolbar-top-ios ~ .fab-left-top,
.navbar + .toolbar-top ~ .fab-center-top,
.ios .navbar + .toolbar-top-ios ~ .fab-center-top,
.md .navbar + .toolbar-top-ios ~ .fab-center-top,
.navbar + .toolbar-top ~ .fab-right-top,
.ios .navbar + .toolbar-top-ios ~ .fab-right-top,
.md .navbar + .toolbar-top-ios ~ .fab-right-top {
  margin-top: calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.navbar + .toolbar-top.tabbar-icons ~ * .fab-left-top,
.ios .navbar + .toolbar-top-ios.tabbar-icons ~ * .fab-left-top,
.md .navbar + .toolbar-top-ios.tabbar-icons ~ * .fab-left-top,
.navbar + .toolbar-top.tabbar-icons ~ * .fab-center-top,
.ios .navbar + .toolbar-top-ios.tabbar-icons ~ * .fab-center-top,
.md .navbar + .toolbar-top-ios.tabbar-icons ~ * .fab-center-top,
.navbar + .toolbar-top.tabbar-icons ~ * .fab-right-top,
.ios .navbar + .toolbar-top-ios.tabbar-icons ~ * .fab-right-top,
.md .navbar + .toolbar-top-ios.tabbar-icons ~ * .fab-right-top,
.navbar + .toolbar-top.tabbar-icons ~ .fab-left-top,
.ios .navbar + .toolbar-top-ios.tabbar-icons ~ .fab-left-top,
.md .navbar + .toolbar-top-ios.tabbar-icons ~ .fab-left-top,
.navbar + .toolbar-top.tabbar-icons ~ .fab-center-top,
.ios .navbar + .toolbar-top-ios.tabbar-icons ~ .fab-center-top,
.md .navbar + .toolbar-top-ios.tabbar-icons ~ .fab-center-top,
.navbar + .toolbar-top.tabbar-icons ~ .fab-right-top,
.ios .navbar + .toolbar-top-ios.tabbar-icons ~ .fab-right-top,
.md .navbar + .toolbar-top-ios.tabbar-icons ~ .fab-right-top {
  margin-top: calc(var(--f7-tabbar-icons-height) + var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.navbars + .toolbar-top ~ * .fab-left-top,
.ios .navbars + .toolbar-top-ios ~ * .fab-left-top,
.navbars + .toolbar-top ~ * .fab-center-top,
.ios .navbars + .toolbar-top-ios ~ * .fab-center-top,
.navbars + .toolbar-top ~ * .fab-right-top,
.ios .navbars + .toolbar-top-ios ~ * .fab-right-top,
.navbars + .toolbar-top ~ .fab-left-top,
.ios .navbars + .toolbar-top-ios ~ .fab-left-top,
.navbars + .toolbar-top ~ .fab-center-top,
.ios .navbars + .toolbar-top-ios ~ .fab-center-top,
.navbars + .toolbar-top ~ .fab-right-top,
.ios .navbars + .toolbar-top-ios ~ .fab-right-top {
  margin-top: calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.navbars + .toolbar-top.tabbar-icons ~ * .fab-left-top,
.ios .navbars + .toolbar-top-ios.tabbar-icons ~ * .fab-left-top,
.navbars + .toolbar-top.tabbar-icons ~ * .fab-center-top,
.ios .navbars + .toolbar-top-ios.tabbar-icons ~ * .fab-center-top,
.navbars + .toolbar-top.tabbar-icons ~ * .fab-right-top,
.ios .navbars + .toolbar-top-ios.tabbar-icons ~ * .fab-right-top,
.navbars + .toolbar-top.tabbar-icons ~ .fab-left-top,
.ios .navbars + .toolbar-top-ios.tabbar-icons ~ .fab-left-top,
.navbars + .toolbar-top.tabbar-icons ~ .fab-center-top,
.ios .navbars + .toolbar-top-ios.tabbar-icons ~ .fab-center-top,
.navbars + .toolbar-top.tabbar-icons ~ .fab-right-top,
.ios .navbars + .toolbar-top-ios.tabbar-icons ~ .fab-right-top {
  margin-top: calc(var(--f7-tabbar-icons-height) + var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.ios .fab > a.active-state,
.ios .fab-buttons a.active-state {
  transition-duration: 0ms;
  background-color: var(--f7-fab-pressed-bg-color, var(--f7-theme-color-shade));
}
.md .fab > a.active-state,
.md .fab-buttons a.active-state {
  background-color: var(--f7-fab-pressed-bg-color, var(--f7-fab-bg-color, var(--f7-theme-color)));
}
/* === Searchbar === */
:root {
  /*
  --f7-searchbar-link-color: var(--f7-bars-link-color);
  --f7-searchbar-inline-input-font-size: var(--f7-searchbar-input-font-size);
  */
  --f7-searchbar-input-border-width: 0px;
  --f7-searchbar-input-border-color: transparent;
}
.ios {
  /*
  --f7-searchbar-bg-color: var(--f7-bars-bg-color);
  --f7-searchbar-bg-color-rgb: var(--f7-bars-bg-color-rgb);
  --f7-searchbar-border-color: var(--f7-bars-border-color);
  */
  --f7-searchbar-height: 44px;
  --f7-searchbar-inner-padding-left: 8px;
  --f7-searchbar-inner-padding-right: 8px;
  /*
  --f7-searchbar-link-color: var(--f7-bars-link-color, var(--f7-theme-color));
  */
  --f7-searchbar-input-font-size: 17px;
  --f7-searchbar-input-border-radius: 8px;
  --f7-searchbar-input-height: 32px;
  --f7-searchbar-inline-input-height: 32px;
  /*
  --f7-searchbar-inline-input-border-radius: var(--f7-searchbar-input-border-radius);
  */
  --f7-searchbar-input-padding-horizontal: 28px;
  /*
  --f7-searchbar-inline-input-padding-horizontal: var(--f7-searchbar-input-padding-horizontal);
  --f7-searchbar-input-clear-button-color: var(--f7-input-clear-button-color);
  */
  --f7-searchbar-backdrop-bg-color: rgba(0, 0, 0, 0.4);
  --f7-searchbar-in-page-content-margin: 0px;
  --f7-searchbar-in-page-content-box-shadow: none;
  --f7-searchbar-in-page-content-border-radius: 0;
  --f7-searchbar-in-page-content-input-border-radius: 0;
  --f7-searchbar-placeholder-color: rgba(0, 0, 0, 0.4);
  --f7-searchbar-input-text-color: #000;
  --f7-searchbar-search-icon-color: rgba(0, 0, 0, 0.4);
  --f7-searchbar-input-bg-color: #e4e4e4;
}
.ios .dark,
.ios.dark {
  --f7-searchbar-placeholder-color: rgba(255, 255, 255, 0.4);
  --f7-searchbar-input-text-color: #fff;
  --f7-searchbar-search-icon-color: rgba(255, 255, 255, 0.4);
  --f7-searchbar-input-bg-color: #2a2a2a;
}
.md {
  --f7-searchbar-border-color: transparent;
  --f7-searchbar-height: 48px;
  --f7-searchbar-inner-padding-left: 8px;
  --f7-searchbar-inner-padding-right: 8px;
  --f7-searchbar-input-font-size: 16px;
  --f7-searchbar-input-border-radius: 24px;
  --f7-searchbar-input-height: 48px;
  --f7-searchbar-inline-input-height: 48px;
  --f7-searchbar-inline-input-border-radius: 24px;
  --f7-searchbar-input-padding-horizontal: 16px;
  --f7-searchbar-inline-input-padding-horizontal: 16px;
  --f7-searchbar-backdrop-bg-color: rgba(0, 0, 0, 0.25);
  --f7-searchbar-in-page-content-margin: 16px 0;
  --f7-searchbar-in-page-content-box-shadow: none;
  --f7-searchbar-in-page-content-border-radius: 24px;
  --f7-searchbar-in-page-content-input-border-radius: 24px;
  --f7-searchbar-bg-color: transparent;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-searchbar-link-color: var(--f7-md-on-surface);
  --f7-searchbar-search-icon-color: var(--f7-md-on-surface);
  --f7-searchbar-input-clear-button-color: var(--f7-md-on-surface);
  --f7-searchbar-placeholder-color: var(--f7-md-on-surface-variant);
  --f7-searchbar-input-bg-color: var(--f7-md-secondary-container);
  --f7-searchbar-input-text-color: var(--f7-md-on-surface);
}
.searchbar {
  --f7-link-highlight-color: var(--f7-link-highlight-black);
  width: 100%;
  position: relative;
  z-index: 200;
  height: var(--f7-searchbar-height);
  background-color: var(--f7-searchbar-bg-color, var(--f7-bars-bg-color));
}
.dark .searchbar {
  --f7-link-highlight-color: var(--f7-link-highlight-white);
}
.searchbar input[type='search']::-webkit-search-decoration {
  display: none;
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-bars .searchbar {
    background-color: rgba(var(--f7-searchbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity));
    -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
            backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
  }
}
.ios .subnavbar .searchbar {
  background-color: transparent;
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
}
.ios .subnavbar .searchbar:after {
  display: none !important;
}
.searchbar.no-outline:after {
  display: none !important;
}
.searchbar:after {
  content: '';
  position: absolute;
  background-color: var(--f7-searchbar-border-color, var(--f7-bars-border-color));
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
.page > .searchbar:not(.searchbar-inline) {
  z-index: 600;
}
.searchbar input[type='text'],
.searchbar input[type='search'] {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  display: block;
  border: var(--f7-searchbar-input-border-width) solid var(--f7-searchbar-input-border-color);
  -webkit-appearance: none;
          appearance: none;
  font-family: inherit;
  font-weight: normal;
  color: var(--f7-searchbar-input-text-color);
  font-size: var(--f7-searchbar-input-font-size);
  background-color: var(--f7-searchbar-input-bg-color);
  border-radius: var(--f7-searchbar-input-border-radius);
  position: relative;
  padding: 0;
  padding-left: calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left, 0px));
  padding-right: calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-right, 0px));
}
.searchbar input[type='text']::placeholder,
.searchbar input[type='search']::placeholder {
  color: var(--f7-searchbar-placeholder-color);
  opacity: 1;
}
.searchbar input::-webkit-search-cancel-button {
  -webkit-appearance: none;
          appearance: none;
}
.searchbar .searchbar-input-wrap {
  flex-shrink: 1;
  width: 100%;
  height: var(--f7-searchbar-input-height);
  position: relative;
}
.searchbar a {
  color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
}
.page > .searchbar:not(.searchbar-inline) {
  position: absolute;
  left: 0;
  top: 0;
}
.page-content .searchbar:not(.searchbar-inline) {
  border-radius: var(--f7-searchbar-in-page-content-border-radius);
  margin: var(--f7-searchbar-in-page-content-margin);
  width: auto;
  box-shadow: var(--f7-searchbar-in-page-content-box-shadow);
}
.page-content .searchbar:not(.searchbar-inline) .searchbar-inner,
.page-content .searchbar:not(.searchbar-inline) input[type='text'],
.page-content .searchbar:not(.searchbar-inline) input[type='search'] {
  border-radius: var(--f7-searchbar-in-page-content-input-border-radius, var(--f7-searchbar-input-border-radius));
}
.searchbar .input-clear-button {
  color: var(--f7-searchbar-input-clear-button-color, var(--f7-input-clear-button-color));
}
.searchbar-expandable {
  --f7-searchbar-expandable-size: var(--f7-searchbar-height);
  position: absolute;
  transition-duration: 300ms;
  pointer-events: none;
}
.navbar .searchbar-expandable {
  background: transparent;
}
.navbar .searchbar-expandable:after {
  display: none !important;
}
.navbar .searchbar.searchbar-expandable {
  --f7-searchbar-expandable-size: calc(var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.navbar .searchbar.searchbar-expandable .searchbar-inner {
  top: var(--f7-safe-area-top);
  height: calc(100% - var(--f7-safe-area-top));
}
.toolbar .searchbar.searchbar-expandable {
  --f7-searchbar-expandable-size: var(--f7-toolbar-height);
}
.subnavbar .searchbar.searchbar-expandable {
  --f7-searchbar-expandable-size: var(--f7-subnavbar-height);
}
.tabbar-icons .searchbar.searchbar-expandable {
  --f7-searchbar-expandable-size: var(--f7-tabbar-icons-height);
}
.searchbar-inner {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding: 0 calc(var(--f7-searchbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-searchbar-inner-padding-left) + var(--f7-safe-area-left));
}
.searchbar-disable-button {
  cursor: pointer;
  pointer-events: none;
  -webkit-appearance: none;
          appearance: none;
  background: none;
  border: none;
  outline: 0;
  padding: 0;
  margin: 0;
  width: auto;
  opacity: 0;
}
.searchbar-icon {
  pointer-events: none;
  background-position: center;
  background-repeat: no-repeat;
}
.searchbar-icon:after {
  color: var(--f7-searchbar-search-icon-color);
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
}
.searchbar-backdrop {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition-duration: 300ms;
  transform: translate3d(0, 0, 0);
  background: var(--f7-searchbar-backdrop-bg-color);
}
.searchbar-backdrop.searchbar-backdrop-in {
  opacity: 1;
  pointer-events: auto;
}
.page-content > .searchbar-backdrop {
  position: fixed;
}
.searchbar-not-found {
  display: none;
}
.hidden-by-searchbar,
.list .hidden-by-searchbar,
.list.li.hidden-by-searchbar,
.list li.hidden-by-searchbar {
  display: none !important;
}
.navbar.with-searchbar-expandable-enabled-no-transition,
.navbar.with-searchbar-expandable-enabled-no-transition {
  --f7-navbar-large-collapse-progress: 1;
}
.navbar.with-searchbar-expandable-enabled,
.navbar.with-searchbar-expandable-enabled {
  --f7-navbar-large-collapse-progress: 1;
}
.navbar.with-searchbar-expandable-enabled .navbar-bg,
.navbar.with-searchbar-expandable-enabled .navbar-bg,
.navbar.with-searchbar-expandable-enabled .title-large,
.navbar.with-searchbar-expandable-enabled .title-large,
.navbar.with-searchbar-expandable-enabled .title-large-text,
.navbar.with-searchbar-expandable-enabled .title-large-text {
  transition-duration: 300ms;
}
.navbar.with-searchbar-expandable-closing .navbar-bg,
.navbar.with-searchbar-expandable-closing .navbar-bg,
.navbar.with-searchbar-expandable-closing .title-large,
.navbar.with-searchbar-expandable-closing .title-large,
.navbar.with-searchbar-expandable-closing .title-large-text,
.navbar.with-searchbar-expandable-closing .title-large-text {
  transition-duration: 300ms;
}
.page-content.with-searchbar-expandable-enabled {
  height: calc(100% + var(--f7-navbar-large-title-height));
  transform: translateY(calc(-1 * var(--f7-navbar-large-title-height)));
  transition-duration: 300ms;
  transition-property: transform;
}
.page-content.with-searchbar-expandable-closing {
  transition-duration: 300ms;
}
.navbar ~ .page:not(.no-navbar) > .searchbar,
.navbars ~ .page:not(.no-navbar) > .searchbar,
.page > .navbar ~ .searchbar {
  top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top));
}
.navbar ~ .page-with-navbar-large:not(.no-navbar) .searchbar,
.navbars ~ .page-with-navbar-large:not(.no-navbar) .searchbar,
.page-with-navbar-large .navbar ~ .searchbar,
.page-with-navbar-large .navbar ~ * .searchbar {
  top: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top));
  transform: translate3d(0, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0);
}
.navbars ~ .page-with-navbar-large:not(.no-navbar) .page-content .searchbar,
.page-with-navbar-large .page-content .searchbar {
  top: 0;
  transform: none;
}
.searchbar ~ * {
  --f7-page-searchbar-offset: var(--f7-searchbar-height);
}
.page > .toolbar-top ~ .searchbar,
.ios .page > .toolbar-top-ios ~ .searchbar,
.md .page > .toolbar-top-md ~ .searchbar {
  top: var(--f7-toolbar-height);
}
.page > .tabbar-icons.toolbar-top ~ .searchbar,
.ios .page > .tabbar-icons.toolbar-top-ios ~ .searchbar,
.md .page > .tabbar-icons.toolbar-top-md ~ .searchbar {
  top: var(--f7-tabbar-icons-height);
}
.page > .navbar ~ .toolbar-top ~ .searchbar,
.ios .page > .navbar ~ .toolbar-top-ios ~ .searchbar,
.md .page > .navbar ~ .toolbar-top-md ~ .searchbar {
  top: calc(var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top));
}
.page > .navbar ~ .tabbar-icons.toolbar-top ~ .searchbar,
.ios .page > .navbar ~ .tabbar-icons.toolbar-top-ios ~ .searchbar,
.md .page > .navbar ~ .tabbar-icons.toolbar-top-md ~ .searchbar {
  top: calc(var(--f7-navbar-height) + var(--f7-tabbar-icons-height) + var(--f7-safe-area-top));
}
.searchbar.searchbar-inline {
  width: auto;
  height: auto;
  background-color: transparent;
  background-image: none;
}
.searchbar.searchbar-inline:after,
.searchbar.searchbar-inline:before {
  display: none !important;
}
.searchbar.searchbar-inline .searchbar-input-wrap {
  height: var(--f7-searchbar-inline-input-height, var(--f7-searchbar-input-height));
}
.searchbar.searchbar-inline .searchbar-inner {
  padding: 0;
  position: static;
  width: auto;
  height: auto;
}
.searchbar.searchbar-inline input[type='text'],
.searchbar.searchbar-inline input[type='search'] {
  font-size: var(--f7-searchbar-inline-input-font-size, var(--f7-searchbar-input-font-size));
  border-radius: var(--f7-searchbar-inline-input-border-radius, var(--f7-searchbar-input-border-radius));
  padding-left: calc(var(--f7-searchbar-inline-input-padding-horizontal, var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-left, 0px));
  padding-right: calc(var(--f7-searchbar-inline-input-padding-horizontal, var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-right, 0px));
}
.ios .searchbar input[type='search'],
.ios .searchbar input[type='text'] {
  z-index: 30;
}
.ios .searchbar .input-clear-button {
  z-index: 40;
  right: 7px;
}
.ios .searchbar-icon {
  width: 13px;
  height: 13px;
  position: absolute;
  top: 50%;
  margin-top: -6px;
  z-index: 40;
  left: 8px;
}
.ios .searchbar-icon:after {
  content: 'search_ios';
  line-height: 13px;
}
.ios .searchbar-disable-button {
  font-size: 17px;
  flex-shrink: 0;
  transform: translate3d(0, 0, 0);
  transition-duration: 300ms;
  color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
  display: none;
}
.ios .searchbar-disable-button.active-state {
  transition-duration: 0ms;
  opacity: 0.3 !important;
}
.ios .searchbar-enabled .searchbar-disable-button {
  pointer-events: auto;
  opacity: 1;
  margin-left: 8px;
}
.ios .searchbar:not(.searchbar-enabled) .searchbar-disable-button {
  transition-duration: 300ms !important;
}
.ios .searchbar-expandable {
  left: 0;
  bottom: 0;
  opacity: 1;
  width: 100%;
  height: 0%;
  transform: translate3d(0, 0, 0);
  overflow: hidden;
}
.ios .searchbar-expandable .searchbar-disable-button {
  margin-left: 8px;
  opacity: 1;
  display: block;
}
.ios .searchbar-expandable .searchbar-inner {
  height: var(--f7-searchbar-expandable-size);
}
.ios .navbar.with-searchbar-expandable-enabled .navbar-bg,
.ios .navbar.with-searchbar-expandable-closing .navbar-bg {
  transition-property: transform, opacity;
}
.ios .navbar.with-searchbar-expandable-enabled .navbar-bg,
.ios .navbar.with-searchbar-expandable-closing .navbar-bg,
.ios .navbar.with-searchbar-expandable-enabled .left,
.ios .navbar.with-searchbar-expandable-closing .left,
.ios .navbar.with-searchbar-expandable-enabled .title,
.ios .navbar.with-searchbar-expandable-closing .title,
.ios .navbar.with-searchbar-expandable-enabled .right,
.ios .navbar.with-searchbar-expandable-closing .right {
  transition-duration: 300ms;
}
.ios .navbar.with-searchbar-expandable-enabled .left,
.ios .navbar.with-searchbar-expandable-enabled-no-transition .left,
.ios .navbar.with-searchbar-expandable-enabled .title,
.ios .navbar.with-searchbar-expandable-enabled-no-transition .title,
.ios .navbar.with-searchbar-expandable-enabled .right,
.ios .navbar.with-searchbar-expandable-enabled-no-transition .right {
  transform: translateY(calc(-1 * var(--f7-navbar-height)));
  opacity: 0 !important;
}
.ios .searchbar-expandable.searchbar-enabled {
  opacity: 1;
  height: var(--f7-searchbar-expandable-size);
  pointer-events: auto;
}
.md .searchbar-icon,
.md .searchbar-disable-button {
  position: absolute;
  top: 50%;
  transition-duration: 300ms;
}
.md .searchbar-icon {
  width: 48px;
  height: 48px;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  left: var(--f7-safe-area-left);
}
.md .searchbar-icon:after {
  width: auto;
  height: auto;
  content: 'search_md';
  line-height: 1.2;
}
.md .searchbar-disable-button {
  width: 48px;
  height: 48px;
  transform: rotate(-90deg) scale(0.5);
  font-size: 0 !important;
  display: block;
  margin-top: -24px;
  color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
  left: calc(var(--f7-searchbar-inner-padding-left) + var(--f7-safe-area-left));
}
.md .searchbar-disable-button:after {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  line-height: 48px;
  content: 'arrow_left_md';
}
.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-disable-button {
  transform: rotate(0deg) scale(1);
  pointer-events: auto;
  opacity: 1;
}
.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-icon {
  opacity: 0;
  transform: rotate(90deg) scale(0.5);
}
.md .searchbar {
  --f7-searchbar-input-extra-padding-left: 34px;
}
.md .searchbar .input-clear-button {
  width: 48px;
  height: 48px;
  margin-top: -24px;
  right: 0;
}
.md .searchbar .input-clear-button:after {
  line-height: 48px;
  content: 'delete_round_md';
  opacity: 1;
}
.md .searchbar .input-clear-button:before {
  display: none;
}
.md .searchbar-inline {
  --f7-searchbar-input-extra-padding-left: 32px;
}
.md .page > .searchbar,
.md .subnavbar .searchbar,
.md .searchbar-expandable {
  --f7-searchbar-input-extra-padding-left: 34px;
}
.md .page > .searchbar .searchbar-disable-button,
.md .subnavbar .searchbar .searchbar-disable-button,
.md .searchbar-expandable .searchbar-disable-button {
  left: calc(var(--f7-searchbar-inner-padding-left) + var(--f7-safe-area-left));
}
.md .page > .searchbar .searchbar-icon,
.md .subnavbar .searchbar .searchbar-icon,
.md .searchbar-expandable .searchbar-icon {
  left: var(--f7-safe-area-left);
}
.md .searchbar-expandable {
  --f7-searchbar-inner-padding-left: 4px;
  --f7-searchbar-inner-padding-right: 4px;
  height: var(--f7-searchbar-expandable-size);
  opacity: 0;
  bottom: 0;
  border-radius: calc(var(--f7-searchbar-expandable-size));
  width: calc(var(--f7-searchbar-expandable-size));
  margin-top: calc(var(--f7-searchbar-expandable-size) * -1 / 2);
  transform: translate3d(0px, 0px, 0px);
  background-color: var(--f7-searchbar-input-bg-color);
  left: 100%;
  margin-left: calc(var(--f7-searchbar-expandable-size) * -1);
}
.md .searchbar-expandable.searchbar-enabled {
  width: 100%;
  border-radius: 0;
  opacity: 1;
  pointer-events: auto;
  margin-top: 0;
  left: 0;
  margin-left: 0;
}
/* === Messages === */
:root {
  --f7-message-text-header-opacity: 0.65;
  --f7-message-text-header-font-size: 12px;
  --f7-message-text-footer-opacity: 0.65;
  --f7-message-text-footer-font-size: 12px;
  --f7-message-bubble-line-height: 1.2;
  --f7-message-header-font-size: 12px;
  --f7-message-footer-font-size: 11px;
  --f7-message-name-font-size: 12px;
  --f7-message-name-font-weight: inherit;
  --f7-message-avatar-border-radius: 50%;
  --f7-messages-title-font-weight: inherit;
  --f7-message-typing-indicator-bg-color: #000;
}
:root .dark,
:root.dark {
  --f7-message-typing-indicator-bg-color: #fff;
}
.ios {
  --f7-message-text-header-text-color: inherit;
  --f7-message-text-footer-text-color: inherit;
  --f7-messages-title-font-size: 11px;
  --f7-message-avatar-size: 29px;
  --f7-message-margin: 10px;
  --f7-message-bubble-min-height: 32px;
  --f7-message-bubble-font-size: 17px;
  --f7-message-bubble-border-radius: 16px;
  --f7-message-bubble-padding-vertical: 6px;
  --f7-message-bubble-padding-horizontal: 16px;
  --f7-message-typing-indicator-opacity: 0.35;
  /*
  --f7-message-sent-bg-color: var(--f7-theme-color);
  */
  --f7-message-sent-text-color: #fff;
  --f7-messages-content-bg-color: #fff;
  --f7-message-received-text-color: #000;
  --f7-message-received-bg-color: #e5e5ea;
  --f7-messages-title-text-color: rgba(0, 0, 0, 0.45);
  --f7-message-header-text-color: rgba(0, 0, 0, 0.45);
  --f7-message-footer-text-color: rgba(0, 0, 0, 0.45);
  --f7-message-name-text-color: rgba(0, 0, 0, 0.45);
}
.ios .dark,
.ios.dark {
  --f7-message-received-bg-color: #252525;
  --f7-message-received-text-color: #fff;
  --f7-messages-content-bg-color: transparent;
  --f7-messages-title-text-color: rgba(255, 255, 255, 0.54);
  --f7-message-header-text-color: rgba(255, 255, 255, 0.54);
  --f7-message-name-text-color: rgba(255, 255, 255, 0.54);
  --f7-message-footer-text-color: rgba(255, 255, 255, 0.54);
}
.md {
  --f7-messages-content-bg-color: transparent;
  --f7-messages-title-font-size: 12px;
  --f7-message-avatar-size: 32px;
  --f7-message-margin: 16px;
  --f7-message-bubble-min-height: 40px;
  --f7-message-bubble-font-size: 16px;
  --f7-message-bubble-border-radius: 20px;
  --f7-message-bubble-padding-vertical: 10px;
  --f7-message-bubble-padding-horizontal: 16px;
  --f7-message-typing-indicator-opacity: 0.6;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-message-sent-bg-color: var(--f7-md-primary);
  --f7-message-sent-text-color: var(--f7-md-on-primary);
  --f7-message-received-bg-color: var(--f7-md-surface-variant);
  --f7-message-received-text-color: var(--f7-md-on-surface);
  --f7-message-text-header-text-color: var(--f7-md-on-surface-variant);
  --f7-message-text-footer-text-color: var(--f7-md-on-surface-variant);
  --f7-messages-title-text-color: var(--f7-md-on-surface-variant);
  --f7-message-header-text-color: var(--f7-md-on-surface-variant);
  --f7-message-footer-text-color: var(--f7-md-on-surface-variant);
  --f7-message-name-text-color: var(--f7-md-on-surface-variant);
}
.messages-content,
.messages {
  background: var(--f7-messages-content-bg-color);
}
.messages {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  position: relative;
  z-index: 1;
}
.messages-title,
.message {
  margin-top: var(--f7-message-margin);
}
.messages-title:last-child,
.message:last-child {
  margin-bottom: var(--f7-message-margin);
}
.messages-title {
  text-align: center;
  width: 100%;
  line-height: 1;
  color: var(--f7-messages-title-text-color);
  font-size: var(--f7-messages-title-font-size);
  font-weight: var(--f7-messages-title-font-weight);
}
.message {
  max-width: 70%;
  box-sizing: border-box;
  display: flex;
  align-items: flex-end;
  position: relative;
  z-index: 1;
  transform: translate3d(0, 0, 0);
}
.message-avatar {
  border-radius: var(--f7-message-avatar-border-radius);
  position: relative;
  background-size: cover;
  align-self: flex-end;
  flex-shrink: 0;
  width: var(--f7-message-avatar-size);
  height: var(--f7-message-avatar-size);
}
.message-content {
  position: relative;
  display: flex;
  flex-direction: column;
}
.message-header,
.message-footer,
.message-name {
  line-height: 1;
}
.message-header {
  color: var(--f7-message-header-text-color);
  font-size: var(--f7-message-header-font-size);
}
.message-footer {
  color: var(--f7-message-footer-text-color);
  font-size: var(--f7-message-footer-font-size);
  margin-bottom: -1em;
}
.message-name {
  color: var(--f7-message-name-text-color);
  font-size: var(--f7-message-name-font-size);
  font-weight: var(--f7-message-name-font-weight);
}
.message-bubble {
  box-sizing: border-box;
  word-break: break-word;
  display: flex;
  flex-direction: column;
  position: relative;
  line-height: var(--f7-message-bubble-line-height);
  font-size: var(--f7-message-bubble-font-size);
  border-radius: var(--f7-message-bubble-border-radius);
  padding: var(--f7-message-bubble-padding-vertical) var(--f7-message-bubble-padding-horizontal);
  min-height: var(--f7-message-bubble-min-height);
}
.message-image img {
  display: block;
  max-width: 100%;
  height: auto;
  width: auto;
}
.message-text-header,
.message-text-footer {
  line-height: 1;
}
.message-text-header {
  color: var(--f7-message-text-header-text-color);
  opacity: var(--f7-message-text-header-opacity);
  font-size: var(--f7-message-text-header-font-size);
}
.message-text-footer {
  color: var(--f7-message-text-footer-text-color);
  opacity: var(--f7-message-text-footer-opacity);
  font-size: var(--f7-message-text-footer-font-size);
}
.message-text {
  text-align: left;
}
.message-sent {
  text-align: right;
  flex-direction: row-reverse;
  align-self: flex-end;
}
.message-sent .message-bubble {
  color: var(--f7-message-sent-text-color);
  background: var(--f7-message-sent-bg-color, var(--f7-theme-color));
}
.message-sent .message-content {
  align-items: flex-end;
}
.message-received {
  flex-direction: row;
}
.message-received .message-bubble {
  color: var(--f7-message-received-text-color);
  background: var(--f7-message-received-bg-color);
}
.message-received .message-content {
  align-items: flex-start;
}
.message:not(.message-last) .message-avatar {
  opacity: 0;
}
.message:not(.message-first) .message-name {
  display: none;
}
.message.message-same-name .message-name {
  display: none;
}
.message.message-same-header .message-header {
  display: none;
}
.message.message-same-footer .message-footer {
  display: none;
}
.message-appear-from-bottom {
  animation: message-appear-from-bottom 300ms;
}
.message-appear-from-top {
  animation: message-appear-from-top 300ms;
}
.message-typing-indicator {
  display: inline-block;
  font-size: 0;
  vertical-align: middle;
}
.message-typing-indicator > div {
  display: inline-block;
  position: relative;
  background: var(--f7-message-typing-indicator-bg-color);
  opacity: var(--f7-message-typing-indicator-opacity);
  vertical-align: middle;
  border-radius: 50%;
}
@keyframes message-appear-from-bottom {
  from {
    transform: translate3d(0, 100%, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes message-appear-from-top {
  from {
    transform: translate3d(0, -100%, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.ios .messages-title b,
.ios .message-header b,
.ios .message-footer b,
.ios .message-name b {
  font-weight: 600;
}
.ios .message-header,
.ios .message-name {
  margin-bottom: 3px;
}
.ios .message-footer {
  margin-top: 3px;
}
.ios .message-bubble {
  min-width: 48px;
}
.ios .message-image {
  margin: var(--f7-message-bubble-padding-vertical) calc(-1 * var(--f7-message-bubble-padding-horizontal));
}
.ios .message-image:first-child {
  margin-top: calc(-1 * var(--f7-message-bubble-padding-vertical));
}
.ios .message-image:first-child img {
  border-top-left-radius: var(--f7-message-bubble-border-radius);
  border-top-right-radius: var(--f7-message-bubble-border-radius);
}
.ios .message-image:last-child {
  margin-bottom: calc(-1 * var(--f7-message-bubble-padding-vertical));
}
.ios .message-image:last-child img {
  border-bottom-left-radius: var(--f7-message-bubble-border-radius);
  border-bottom-right-radius: var(--f7-message-bubble-border-radius);
}
.ios .message-text-header {
  margin-bottom: 3px;
}
.ios .message-text-footer {
  margin-top: 3px;
}
.ios .message-received {
  margin-left: calc(10px + var(--f7-safe-area-left));
}
.ios .message-received .message-header,
.ios .message-received .message-footer,
.ios .message-received .message-name {
  margin-left: var(--f7-message-bubble-padding-horizontal);
}
.ios .message-received .message-bubble {
  padding-left: calc(var(--f7-message-bubble-padding-horizontal) + 6px);
  -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,<svg height='35' viewBox='0 0 96 70' width='48' xmlns='http://www.w3.org/2000/svg'><path d='m96 35c1 7-5 37-42 35-37 2-43-28-42-35-1-7 5-37 42-35 37-2 43 28 42 35z'/></svg>") 50% 42% 46% 56%;
}
.ios .message-received .message-image {
  margin-left: calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px));
}
.ios .message-received.message-tail .message-bubble {
  border-radius: var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0;
}
.ios .message-received.message-tail:not(.message-typing) .message-bubble {
  -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,<svg height='35' viewBox='0 0 96 70' width='48' xmlns='http://www.w3.org/2000/svg'><path d='m96 35c1 7-5 37-42 35-37 2-43-28-42-35-1-7 5-37 42-35 37-2 43 28 42 35z'/><path d='m0 70c6-2 12-10 12-19v-16l14 27s-8 8-26 8z'/></svg>") 50% 42% 46% 56%;
}
.ios .message-received.message-tail:not(.message-typing) .message-bubble .message-image:last-child img {
  border-bottom-left-radius: 0px;
}
.ios .message-sent {
  margin-right: calc(10px + var(--f7-safe-area-right));
}
.ios .message-sent .message-header,
.ios .message-sent .message-footer,
.ios .message-sent .message-name {
  margin-right: var(--f7-message-bubble-padding-horizontal);
}
.ios .message-sent .message-bubble {
  padding-right: calc(var(--f7-message-bubble-padding-horizontal) + 6px);
  -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,<svg height='35' viewBox='0 0 96 70' width='48' xmlns='http://www.w3.org/2000/svg'><path d='m84 35c1 7-5 37-42 35-37 2-43-28-42-35-1-7 5-37 42-35 37-2 43 28 42 35z'/></svg>") 50% 56% 46% 42%;
}
.ios .message-sent .message-image {
  margin-right: calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px));
}
.ios .message-sent.message-tail .message-bubble {
  border-radius: var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0 var(--f7-message-bubble-border-radius);
}
.ios .message-sent.message-tail .message-bubble {
  -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,<svg height='35' viewBox='0 0 96 70' width='48' xmlns='http://www.w3.org/2000/svg'><path d='m84 35c1 7-5 37-42 35-37 2-43-28-42-35-1-7 5-37 42-35 37-2 43 28 42 35z'/><path d='m96 70c-6-2-12-10-12-19v-16l-14 27s8 8 26 8z'/></svg>") 50% 56% 46% 42%;
}
.ios .message-sent.message-tail .message-bubble .message-image:last-child img {
  border-bottom-right-radius: 0px;
}
.ios .message + .message:not(.message-first) {
  margin-top: 1px;
}
.ios .message-received.message-typing .message-content:after,
.ios .message-received.message-typing .message-content:before {
  content: '';
  position: absolute;
  background: var(--f7-message-received-bg-color);
  border-radius: 50%;
}
.ios .message-received.message-typing .message-content:after {
  width: 11px;
  height: 11px;
  left: 4px;
  bottom: 0px;
}
.ios .message-received.message-typing .message-content:before {
  width: 6px;
  height: 6px;
  left: -1px;
  bottom: -4px;
}
.ios .message-typing-indicator > div {
  width: 9px;
  height: 9px;
}
.ios .message-typing-indicator > div + div {
  margin-left: 4px;
}
.ios .message-typing-indicator > div:nth-child(1) {
  animation: ios-message-typing-indicator 900ms infinite;
}
.ios .message-typing-indicator > div:nth-child(2) {
  animation: ios-message-typing-indicator 900ms 150ms infinite;
}
.ios .message-typing-indicator > div:nth-child(3) {
  animation: ios-message-typing-indicator 900ms 300ms infinite;
}
@keyframes ios-message-typing-indicator {
  0% {
    opacity: 0.35;
  }
  25% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.2;
  }
}
.md .messages-title b,
.md .message-header b,
.md .message-footer b,
.md .message-name b {
  font-weight: 500;
}
.md .message-header,
.md .message-name {
  margin-bottom: 2px;
}
.md .message-footer {
  margin-top: 2px;
}
.md .message-text-header {
  margin-bottom: 4px;
}
.md .message-text-footer {
  margin-top: 4px;
}
.md .message-image {
  margin: calc(-1 * var(--f7-message-bubble-padding-vertical)) calc(-1 * var(--f7-message-bubble-padding-horizontal));
}
.md .message-image,
.md .message-image img {
  border-radius: var(--f7-message-bubble-border-radius);
}
.md .message-received {
  margin-left: calc(8px + var(--f7-safe-area-left));
}
.md .message-received .message-name,
.md .message-received .message-header,
.md .message-received .message-footer {
  margin-left: 16px;
}
.md .message-received.message-first:not(.message-last) .message-bubble,
.md .message-received.message-first:not(.message-last) .message-image,
.md .message-received.message-first:not(.message-last) .message-image img {
  border-bottom-left-radius: 4px;
}
.md .message-received.message-last:not(.message-first) .message-bubble,
.md .message-received.message-last:not(.message-first) .message-image,
.md .message-received.message-last:not(.message-first) .message-image img {
  border-top-left-radius: 4px;
}
.md .message-received:not(.message-last):not(.message-first) .message-bubble,
.md .message-received:not(.message-last):not(.message-first) .message-image,
.md .message-received:not(.message-last):not(.message-first) .message-image img {
  border-bottom-left-radius: 4px;
  border-top-left-radius: 4px;
}
.md .message-received .message-avatar + .message-content {
  margin-left: 8px;
}
.md .message-sent {
  margin-right: calc(8px + var(--f7-safe-area-right));
}
.md .message-sent .message-name,
.md .message-sent .message-header,
.md .message-sent .message-footer {
  margin-right: 16px;
}
.md .message-sent.message-first:not(.message-last) .message-bubble,
.md .message-sent.message-first:not(.message-last) .message-image,
.md .message-sent.message-first:not(.message-last) .message-image img {
  border-bottom-right-radius: 4px;
}
.md .message-sent.message-last:not(.message-first) .message-bubble,
.md .message-sent.message-last:not(.message-first) .message-image,
.md .message-sent.message-last:not(.message-first) .message-image img {
  border-top-right-radius: 4px;
}
.md .message-sent:not(.message-last):not(.message-first) .message-bubble,
.md .message-sent:not(.message-last):not(.message-first) .message-image,
.md .message-sent:not(.message-last):not(.message-first) .message-image img {
  border-bottom-right-radius: 4px;
  border-top-right-radius: 4px;
}
.md .message-sent .message-avatar + .message-content {
  margin-right: var(--f7-message-bubble-padding-horizontal);
}
.md .message + .message:not(.message-first) {
  margin-top: 2px;
}
.md .message-typing-indicator > div {
  width: 6px;
  height: 6px;
}
.md .message-typing-indicator > div + div {
  margin-left: 6px;
}
.md .message-typing-indicator > div:nth-child(1) {
  animation: md-message-typing-indicator 900ms infinite;
}
.md .message-typing-indicator > div:nth-child(2) {
  animation: md-message-typing-indicator 900ms 150ms infinite;
}
.md .message-typing-indicator > div:nth-child(3) {
  animation: md-message-typing-indicator 900ms 300ms infinite;
}
@keyframes md-message-typing-indicator {
  0% {
    transform: translateY(0%);
  }
  25% {
    transform: translateY(-5px);
  }
  50% {
    transform: translateY(0%);
  }
}
/* === Messagebar === */
:root {
  --f7-messagebar-attachments-height: 155px;
  --f7-messagebar-sheet-height: 252px;
  --f7-messagebar-sheet-landscape-height: 192px;
  /*
  --f7-messagebar-inner-padding-left: var(--f7-toolbar-inner-padding-left);
  --f7-messagebar-inner-padding-right: var(--f7-toolbar-inner-padding-right);
  */
}
.ios {
  --f7-messagebar-height: 44px;
  --f7-messagebar-font-size: 17px;
  --f7-messagebar-textarea-bg-color: transparent;
  /*
  --f7-messagebar-link-color: var(--f7-theme-color);
  */
  --f7-messagebar-border-color: transparent;
  --f7-messagebar-textarea-border-radius: 17px;
  --f7-messagebar-textarea-padding: 6px 16px;
  --f7-messagebar-textarea-height: 34px;
  --f7-messagebar-textarea-font-size: 17px;
  --f7-messagebar-textarea-line-height: 20px;
  --f7-messagebar-sheet-bg-color: #d1d5da;
  --f7-messagebar-sheet-border-color: transparent;
  --f7-messagebar-attachment-border-radius: 12px;
  --f7-messagebar-attachment-height: 155px;
  --f7-messagebar-attachment-landscape-height: 120px;
  --f7-messagebar-textarea-placeholder-color: rgba(0, 0, 0, 0.4);
  --f7-messagebar-textarea-text-color: #000;
  --f7-messagebar-textarea-border: 1px solid #c8c8cd;
  --f7-messagebar-attachments-border-color: #c8c8cd;
  --f7-messagebar-bg-color: #fff;
  --f7-messagebar-bg-color-rgb: 255, 255, 255;
}
.ios .dark,
.ios.dark {
  --f7-messagebar-textarea-placeholder-color: rgba(255, 255, 255, 0.4);
  --f7-messagebar-textarea-text-color: #fff;
  --f7-messagebar-textarea-border: 1px solid var(--f7-bars-border-color);
  --f7-messagebar-attachments-border-color: var(--f7-bars-border-color);
  --f7-messagebar-bg-color: var(--f7-bars-bg-color);
  --f7-messagebar-bg-color-rgb: var(--f7-bars-bg-color-rgb);
}
.md {
  --f7-messagebar-height: 64px;
  --f7-messagebar-font-size: 16px;
  --f7-messagebar-textarea-border-radius: 24px;
  --f7-messagebar-textarea-padding: 12px 16px;
  --f7-messagebar-textarea-height: 48px;
  --f7-messagebar-textarea-font-size: 16px;
  --f7-messagebar-textarea-line-height: 22px;
  --f7-messagebar-textarea-border: 1px solid transparent;
  --f7-messagebar-attachment-border-radius: 12px;
  --f7-messagebar-attachment-height: 72px;
  --f7-messagebar-attachment-landscape-height: 72px;
  --f7-messagebar-border-color: transparent;
  --f7-messagebar-attachments-border-color: transparent;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-messagebar-textarea-placeholder-color: var(--f7-md-on-surface-variant);
  --f7-messagebar-textarea-bg-color: var(--f7-md-surface-variant);
  --f7-messagebar-bg-color: var(--f7-md-surface);
  --f7-messagebar-textarea-text-color: var(--f7-md-on-surface);
  --f7-messagebar-sheet-bg-color: var(--f7-md-surface);
  --f7-messagebar-sheet-border-color: var(--f7-md-outline-variant);
  --f7-messagebar-link-color: var(--f7-md-on-surface);
}
.messagebar {
  transform: translate3d(0, 0, 0);
  background: var(--f7-messagebar-bg-color);
  height: auto;
  min-height: var(--f7-messagebar-height);
  font-size: var(--f7-messagebar-font-size);
  padding-bottom: var(--f7-safe-area-bottom);
  bottom: 0;
}
.messagebar:before {
  content: '';
  position: absolute;
  background-color: var(--f7-messagebar-border-color);
  display: block;
  z-index: 15;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 0%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-bars .messagebar {
    background-color: rgba(var(--f7-messagebar-bg-color-rgb), var(--f7-bars-translucent-opacity));
    -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
            backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
  }
}
.messagebar.no-outline:before {
  display: none !important;
}
.messagebar.toolbar-hidden:after {
  display: none !important;
}
.messagebar .toolbar-inner {
  top: auto;
  position: relative;
  height: auto;
  bottom: auto;
  padding-left: calc(var(--f7-messagebar-inner-padding-left, var(--f7-toolbar-inner-padding-left)) + var(--f7-safe-area-left));
  padding-right: calc(var(--f7-messagebar-inner-padding-right, var(--f7-toolbar-inner-padding-right)) + var(--f7-safe-area-right));
}
.messagebar.messagebar-sheet-visible > .toolbar-inner {
  bottom: 0;
}
.messagebar .messagebar-area {
  width: 100%;
  flex-shrink: 1;
  overflow: hidden;
  position: relative;
}
.messagebar textarea {
  width: 100%;
  flex-shrink: 1;
  background-color: var(--f7-messagebar-textarea-bg-color);
  border-radius: var(--f7-messagebar-textarea-border-radius);
  padding: var(--f7-messagebar-textarea-padding);
  height: var(--f7-messagebar-textarea-height);
  color: var(--f7-messagebar-textarea-text-color);
  font-size: var(--f7-messagebar-textarea-font-size);
  line-height: var(--f7-messagebar-textarea-line-height);
  border: var(--f7-messagebar-textarea-border);
}
.messagebar textarea::placeholder {
  color: var(--f7-messagebar-textarea-placeholder-color);
}
.messagebar a.link {
  align-self: flex-end;
  flex-shrink: 0;
  color: var(--f7-messagebar-link-color, var(--f7-theme-color));
}
.messagebar-attachments {
  width: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  font-size: 0;
  white-space: nowrap;
  box-sizing: border-box;
  position: relative;
}
.messagebar:not(.messagebar-attachments-visible) .messagebar-attachments {
  display: none;
}
.messagebar-attachment {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: inline-block;
  vertical-align: middle;
  white-space: normal;
  height: var(--f7-messagebar-attachment-height);
  position: relative;
  border-radius: var(--f7-messagebar-attachment-border-radius);
}
@media (orientation: landscape) {
  .messagebar-attachment {
    height: var(--f7-messagebar-attachment-landscape-height);
  }
}
.messagebar-attachment img {
  display: block;
  width: auto;
  height: 100%;
  border-radius: var(--f7-messagebar-attachment-border-radius);
}
.messagebar-sheet {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-content: flex-start;
  height: var(--f7-messagebar-sheet-height);
  background-color: var(--f7-messagebar-sheet-bg-color);
  border-top: 1px solid var(--f7-messagebar-sheet-border-color);
  padding-left: var(--f7-safe-area-left);
  padding-right: var(--f7-safe-area-right);
}
@media (orientation: landscape) {
  .messagebar-sheet {
    height: var(--f7-messagebar-sheet-landscape-height);
  }
}
.messagebar-sheet-image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.messagebar-sheet-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
  transition-duration: 200ms;
}
.messagebar-attachment-delete {
  display: block;
  position: absolute;
  border-radius: 50%;
  box-sizing: border-box;
  cursor: pointer;
}
.messagebar-attachment-delete:after,
.messagebar-attachment-delete:before {
  position: absolute;
  content: '';
  left: 50%;
  top: 50%;
}
.messagebar-attachment-delete:after {
  transform: rotate(45deg);
}
.messagebar-attachment-delete:before {
  transform: rotate(-45deg);
}
.messagebar:not(.messagebar-sheet-visible) .messagebar-sheet {
  display: none;
}
.messagebar ~ * {
  --f7-page-toolbar-bottom-offset: var(--f7-messagebar-height);
}
.ios .messagebar a.link.icon-only:first-child {
  margin-left: -8px;
}
.ios .messagebar a.link.icon-only:last-child {
  margin-right: -8px;
}
.ios .messagebar a.link:not(.icon-only) + .messagebar-area {
  margin-left: 8px;
}
.ios .messagebar .messagebar-area + a.link:not(.icon-only) {
  margin-left: 8px;
}
.ios .messagebar-area {
  margin-top: 5px;
  margin-bottom: 5px;
}
.ios .messagebar-attachments {
  padding: 5px;
  border-radius: var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0;
  border: 1px solid var(--f7-messagebar-attachments-border-color);
  border-bottom: none;
}
.ios .messagebar-attachments-visible .messagebar-attachments + textarea {
  border-radius: 0 0 var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius);
}
.ios .messagebar-attachment {
  font-size: 14px;
}
.ios .messagebar-attachment + .messagebar-attachment {
  margin-left: 8px;
}
.ios .messagebar-attachment-delete {
  right: 5px;
  top: 5px;
  width: 20px;
  height: 20px;
  background: #7d7e80;
  border: 2px solid #fff;
  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
}
.ios .messagebar-attachment-delete:after,
.ios .messagebar-attachment-delete:before {
  width: 10px;
  height: 2px;
  background: #fff;
  margin-left: -5px;
  margin-top: -1px;
}
.ios .messagebar-sheet-image,
.ios .messagebar-sheet-item {
  box-sizing: border-box;
  flex-shrink: 0;
  margin-top: 1px;
  position: relative;
  overflow: hidden;
  height: calc((var(--f7-messagebar-sheet-height) - 2px) / 2);
  width: calc((var(--f7-messagebar-sheet-height) - 2px) / 2);
  margin-left: 1px;
}
@media (orientation: landscape) {
  .ios .messagebar-sheet-image,
  .ios .messagebar-sheet-item {
    width: calc((var(--f7-messagebar-sheet-landscape-height) - 2px) / 2);
    height: calc((var(--f7-messagebar-sheet-landscape-height) - 2px) / 2);
  }
}
.ios .messagebar-sheet-image .icon-checkbox,
.ios .messagebar-sheet-item .icon-checkbox,
.ios .messagebar-sheet-image .icon-radio,
.ios .messagebar-sheet-item .icon-radio {
  position: absolute;
  right: 8px;
  bottom: 8px;
  z-index: 1;
}
.md .messagebar {
  --f7-toolbar-link-height: var(--f7-messagebar-height);
}
.md .messagebar-attachments {
  padding: 16px 16px 0;
  border-bottom: 1px solid var(--f7-messagebar-attachments-border-color);
}
.md .messagebar-attachment img {
  width: var(--f7-messagebar-attachment-height);
  height: var(--f7-messagebar-attachment-height);
  object-fit: cover;
  object-position: center;
}
.md .messagebar-attachment + .messagebar-attachment {
  margin-left: 16px;
}
.md .messagebar-attachments-visible .messagebar-attachments {
  background: var(--f7-messagebar-textarea-bg-color);
  border-radius: var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0;
}
.md .messagebar-attachments-visible textarea {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.md .messagebar-area {
  margin-top: 8px;
  margin-bottom: 8px;
}
.md .messagebar-attachment-delete {
  right: -6px;
  top: -6px;
  width: 24px;
  height: 24px;
  background-color: var(--f7-md-inverse-surface);
  border-radius: 24px;
  border: 2px solid var(--f7-messagebar-textarea-bg-color);
}
.md .messagebar-attachment-delete:after,
.md .messagebar-attachment-delete:before {
  width: 12px;
  height: 2px;
  background: var(--f7-messagebar-textarea-bg-color);
  margin-left: -6px;
  margin-top: -1px;
}
.md .messagebar-sheet-image,
.md .messagebar-sheet-item {
  --f7-touch-ripple-color: transparent;
  box-sizing: border-box;
  flex-shrink: 0;
  margin-top: 8px;
  position: relative;
  overflow: hidden;
  height: calc((var(--f7-messagebar-sheet-height) - 24px) / 2);
  width: calc((var(--f7-messagebar-sheet-height) - 24px) / 2);
  border-radius: 4px;
  margin-left: 8px;
}
@media (orientation: landscape) {
  .md .messagebar-sheet-image,
  .md .messagebar-sheet-item {
    width: calc((var(--f7-messagebar-sheet-landscape-height) - 8px) / 2);
    height: calc((var(--f7-messagebar-sheet-landscape-height) - 24px) / 2);
  }
}
.md .messagebar-sheet-image input:checked ~ img,
.md .messagebar-sheet-item input:checked ~ img {
  transform: scale(0.85);
}
.md .messagebar-sheet-image input:checked ~ .icon-checkbox,
.md .messagebar-sheet-item input:checked ~ .icon-checkbox,
.md .messagebar-sheet-image input:checked ~ .icon-radio,
.md .messagebar-sheet-item input:checked ~ .icon-radio {
  transform: translate(-50%, -50%) scale(1);
}
.md .messagebar-sheet-image .icon-checkbox,
.md .messagebar-sheet-item .icon-checkbox,
.md .messagebar-sheet-image .icon-radio,
.md .messagebar-sheet-item .icon-radio {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(0.85);
  border: none;
  z-index: 1;
  --f7-checkbox-inactive-color: var(--f7-md-surface);
  --f7-checkbox-active-color: var(--f7-md-surface);
}
.md .messagebar-sheet-image .icon-checkbox::after,
.md .messagebar-sheet-item .icon-checkbox::after,
.md .messagebar-sheet-image .icon-radio::after,
.md .messagebar-sheet-item .icon-radio::after {
  color: var(--f7-md-on-surface);
  font-size: 18px;
  width: auto;
  height: 100%;
  line-height: 32px;
  left: 0;
  position: static;
}
/* === Swiper === */
/**
 * Swiper 10.2.0
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2023 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: August 17, 2023
 */

/* FONT_START */
@font-face {
  font-family: 'swiper-icons';
  src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');
  font-weight: 400;
  font-style: normal;
}
/* FONT_END */
:root {
  --swiper-theme-color: #007aff;
  /*
  --swiper-preloader-color: var(--swiper-theme-color);
  --swiper-wrapper-transition-timing-function: initial;
  */
}
:host {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
}
.swiper {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  overflow: clip;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
  display: block;
}
.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}
.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
  box-sizing: content-box;
}
.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}
.swiper-horizontal {
  touch-action: pan-y;
}
.swiper-vertical {
  touch-action: pan-x;
}
.swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
  display: block;
}
.swiper-slide-invisible-blank {
  visibility: hidden;
}
/* Auto Height */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}
.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}
.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
/* 3D Effects */
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}
.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}
.swiper-3d {
  perspective: 1200px;
}
.swiper-3d .swiper-slide,
.swiper-3d .swiper-cube-shadow {
  transform-style: preserve-3d;
}
/* CSS Mode */
.swiper-css-mode > .swiper-wrapper {
  overflow: auto;
  scrollbar-width: none;
  /* For Firefox */
  -ms-overflow-style: none;
  /* For Internet Explorer and Edge */
}
.swiper-css-mode > .swiper-wrapper::-webkit-scrollbar {
  display: none;
}
.swiper-css-mode > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: start start;
}
.swiper-css-mode.swiper-horizontal > .swiper-wrapper {
  scroll-snap-type: x mandatory;
}
.swiper-css-mode.swiper-vertical > .swiper-wrapper {
  scroll-snap-type: y mandatory;
}
.swiper-css-mode.swiper-free-mode > .swiper-wrapper {
  scroll-snap-type: none;
}
.swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: none;
}
.swiper-css-mode.swiper-centered > .swiper-wrapper::before {
  content: '';
  flex-shrink: 0;
  order: 9999;
}
.swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: center center;
  scroll-snap-stop: always;
}
.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child {
  margin-inline-start: var(--swiper-centered-offset-before);
}
.swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before {
  height: 100%;
  min-height: 1px;
  width: var(--swiper-centered-offset-after);
}
.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child {
  margin-block-start: var(--swiper-centered-offset-before);
}
.swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before {
  width: 100%;
  min-width: 1px;
  height: var(--swiper-centered-offset-after);
}
/* Slide styles start */
/* 3D Shadows */
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top,
.swiper-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}
.swiper-3d .swiper-slide-shadow {
  background: rgba(0, 0, 0, 0.15);
}
.swiper-3d .swiper-slide-shadow-left {
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-right {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-top {
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-3d .swiper-slide-shadow-bottom {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  transform-origin: 50%;
  box-sizing: border-box;
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top-color: transparent;
}
.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,
.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader {
  animation: swiper-preloader-spin 1s infinite linear;
}
.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff;
}
.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000;
}
@keyframes swiper-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Slide styles end */
.swiper-virtual .swiper-slide {
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
}
.swiper-virtual.swiper-css-mode .swiper-wrapper::after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
}
.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after {
  height: 1px;
  width: var(--swiper-virtual-size);
}
.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after {
  width: 1px;
  height: var(--swiper-virtual-size);
}
:root {
  --swiper-navigation-size: 44px;
  /*
  --swiper-navigation-top-offset: 50%;
  --swiper-navigation-sides-offset: 10px;
  --swiper-navigation-color: var(--swiper-theme-color);
  */
}
.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: var(--swiper-navigation-top-offset, 50%);
  width: calc(var(--swiper-navigation-size) / 44 * 27);
  height: var(--swiper-navigation-size);
  margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 0.35;
  cursor: auto;
  pointer-events: none;
}
.swiper-button-prev.swiper-button-hidden,
.swiper-button-next.swiper-button-hidden {
  opacity: 0;
  cursor: auto;
  pointer-events: none;
}
.swiper-navigation-disabled .swiper-button-prev,
.swiper-navigation-disabled .swiper-button-next {
  display: none !important;
}
.swiper-button-prev svg,
.swiper-button-next svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform-origin: center;
}
.swiper-rtl .swiper-button-prev svg,
.swiper-rtl .swiper-button-next svg {
  transform: rotate(180deg);
}
.swiper-button-prev,
.swiper-rtl .swiper-button-next {
  left: var(--swiper-navigation-sides-offset, 10px);
  right: auto;
}
.swiper-button-next,
.swiper-rtl .swiper-button-prev {
  right: var(--swiper-navigation-sides-offset, 10px);
  left: auto;
}
.swiper-button-lock {
  display: none;
}
/* Navigation font start */
.swiper-button-prev:after,
.swiper-button-next:after {
  font-family: swiper-icons;
  font-size: var(--swiper-navigation-size);
  text-transform: none !important;
  letter-spacing: 0;
  font-variant: initial;
  line-height: 1;
}
.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after {
  content: 'prev';
}
.swiper-button-next,
.swiper-rtl .swiper-button-prev {
  right: var(--swiper-navigation-sides-offset, 10px);
  left: auto;
}
.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
  content: 'next';
}
/* Navigation font end */
:root {
  /*
  --swiper-pagination-color: var(--swiper-theme-color);
  --swiper-pagination-left: auto;
  --swiper-pagination-right: 8px;
  --swiper-pagination-bottom: 8px;
  --swiper-pagination-top: auto;
  --swiper-pagination-fraction-color: inherit;
  --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25);
  --swiper-pagination-progressbar-size: 4px;
  --swiper-pagination-bullet-size: 8px;
  --swiper-pagination-bullet-width: 8px;
  --swiper-pagination-bullet-height: 8px;
  --swiper-pagination-bullet-border-radius: 50%;
  --swiper-pagination-bullet-inactive-color: #000;
  --swiper-pagination-bullet-inactive-opacity: 0.2;
  --swiper-pagination-bullet-opacity: 1;
  --swiper-pagination-bullet-horizontal-gap: 4px;
  --swiper-pagination-bullet-vertical-gap: 6px;
  */
}
.swiper-pagination {
  position: absolute;
  text-align: center;
  transition: 300ms opacity;
  transform: translate3d(0, 0, 0);
  z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
  opacity: 0;
}
.swiper-pagination-disabled > .swiper-pagination,
.swiper-pagination.swiper-pagination-disabled {
  display: none !important;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: var(--swiper-pagination-bottom, 8px);
  top: var(--swiper-pagination-top, auto);
  left: 0;
  width: 100%;
}
/* Bullets */
.swiper-pagination-bullets-dynamic {
  overflow: hidden;
  font-size: 0;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transform: scale(0.33);
  position: relative;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
  transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
  transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
  transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
  transform: scale(0.33);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
  transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
  transform: scale(0.33);
}
.swiper-pagination-bullet {
  width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));
  height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));
  display: inline-block;
  border-radius: var(--swiper-pagination-bullet-border-radius, 50%);
  background: var(--swiper-pagination-bullet-inactive-color, #000);
  opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2);
}
button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  box-shadow: none;
  -webkit-appearance: none;
          appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}
.swiper-pagination-bullet:only-child {
  display: none !important;
}
.swiper-pagination-bullet-active {
  opacity: var(--swiper-pagination-bullet-opacity, 1);
  background: var(--swiper-pagination-color, var(--swiper-theme-color));
}
.swiper-vertical > .swiper-pagination-bullets,
.swiper-pagination-vertical.swiper-pagination-bullets {
  right: var(--swiper-pagination-right, 8px);
  left: var(--swiper-pagination-left, auto);
  top: 50%;
  transform: translate3d(0px, -50%, 0);
}
.swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
  display: block;
}
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
}
.swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  display: inline-block;
  transition: 200ms transform, 200ms top;
}
.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px);
}
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
}
.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transition: 200ms transform, 200ms left;
}
.swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  transition: 200ms transform, 200ms right;
}
/* Fraction */
.swiper-pagination-fraction {
  color: var(--swiper-pagination-fraction-color, inherit);
}
/* Progress */
.swiper-pagination-progressbar {
  background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25));
  position: absolute;
}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background: var(--swiper-pagination-color, var(--swiper-theme-color));
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  transform: scale(0);
  transform-origin: left top;
}
.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  transform-origin: right top;
}
.swiper-horizontal > .swiper-pagination-progressbar,
.swiper-pagination-progressbar.swiper-pagination-horizontal,
.swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite {
  width: 100%;
  height: var(--swiper-pagination-progressbar-size, 4px);
  left: 0;
  top: 0;
}
.swiper-vertical > .swiper-pagination-progressbar,
.swiper-pagination-progressbar.swiper-pagination-vertical,
.swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite {
  width: var(--swiper-pagination-progressbar-size, 4px);
  height: 100%;
  left: 0;
  top: 0;
}
.swiper-pagination-lock {
  display: none;
}
:root {
  /*
  --swiper-scrollbar-border-radius: 10px;
  --swiper-scrollbar-top: auto;
  --swiper-scrollbar-bottom: 4px;
  --swiper-scrollbar-left: auto;
  --swiper-scrollbar-right: 4px;
  --swiper-scrollbar-sides-offset: 1%;
  --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1);
  --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5);
  --swiper-scrollbar-size: 4px;
  */
}
.swiper-scrollbar {
  border-radius: var(--swiper-scrollbar-border-radius, 10px);
  position: relative;
  -ms-touch-action: none;
  background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1));
}
.swiper-scrollbar-disabled > .swiper-scrollbar,
.swiper-scrollbar.swiper-scrollbar-disabled {
  display: none !important;
}
.swiper-horizontal > .swiper-scrollbar,
.swiper-scrollbar.swiper-scrollbar-horizontal {
  position: absolute;
  left: var(--swiper-scrollbar-sides-offset, 1%);
  bottom: var(--swiper-scrollbar-bottom, 4px);
  top: var(--swiper-scrollbar-top, auto);
  z-index: 50;
  height: var(--swiper-scrollbar-size, 4px);
  width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));
}
.swiper-vertical > .swiper-scrollbar,
.swiper-scrollbar.swiper-scrollbar-vertical {
  position: absolute;
  left: var(--swiper-scrollbar-left, auto);
  right: var(--swiper-scrollbar-right, 4px);
  top: var(--swiper-scrollbar-sides-offset, 1%);
  z-index: 50;
  width: var(--swiper-scrollbar-size, 4px);
  height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%));
}
.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5));
  border-radius: var(--swiper-scrollbar-border-radius, 10px);
  left: 0;
  top: 0;
}
.swiper-scrollbar-cursor-drag {
  cursor: move;
}
.swiper-scrollbar-lock {
  display: none;
}
/* Zoom container styles start */
.swiper-zoom-container {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
/* Zoom container styles end */
.swiper-slide-zoomed {
  cursor: move;
  touch-action: none;
}
/* a11y */
.swiper .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000;
}
.swiper-free-mode > .swiper-wrapper {
  transition-timing-function: ease-out;
  margin: 0 auto;
}
.swiper-grid > .swiper-wrapper {
  flex-wrap: wrap;
}
.swiper-grid-column > .swiper-wrapper {
  flex-wrap: wrap;
  flex-direction: column;
}
.swiper-fade.swiper-free-mode .swiper-slide {
  transition-timing-function: ease-out;
}
.swiper-fade .swiper-slide {
  pointer-events: none;
  transition-property: opacity;
}
.swiper-fade .swiper-slide .swiper-slide {
  pointer-events: none;
}
.swiper-fade .swiper-slide-active {
  pointer-events: auto;
}
.swiper-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}
.swiper-cube {
  overflow: visible;
}
.swiper-cube .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 1;
  visibility: hidden;
  transform-origin: 0 0;
  width: 100%;
  height: 100%;
}
.swiper-cube .swiper-slide .swiper-slide {
  pointer-events: none;
}
.swiper-cube.swiper-rtl .swiper-slide {
  transform-origin: 100% 0;
}
.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}
.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-next,
.swiper-cube .swiper-slide-prev {
  pointer-events: auto;
  visibility: visible;
}
.swiper-cube .swiper-cube-shadow {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  opacity: 0.6;
  z-index: 0;
}
.swiper-cube .swiper-cube-shadow:before {
  content: '';
  background: #000;
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  filter: blur(50px);
}
.swiper-cube .swiper-slide-next + .swiper-slide {
  pointer-events: auto;
  visibility: visible;
}
/* Cube slide shadows start */
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
/* Cube slide shadows end */
.swiper-flip {
  overflow: visible;
}
.swiper-flip .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 1;
}
.swiper-flip .swiper-slide .swiper-slide {
  pointer-events: none;
}
.swiper-flip .swiper-slide-active,
.swiper-flip .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}
/* Flip slide shadows start */
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
/* Flip slide shadows end */
.swiper-creative .swiper-slide {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  overflow: hidden;
  transition-property: transform, opacity, height;
}
.swiper-cards {
  overflow: visible;
}
.swiper-cards .swiper-slide {
  transform-origin: center bottom;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  overflow: hidden;
}

/* === Photo Browser === */
:root {
  --f7-photobrowser-bg-color: #fff;
  --f7-photobrowser-bars-bg-color: rgba(var(--f7-bars-bg-color-rgb), 0.95);
  --f7-photobrowser-bars-text-color: var(--f7-bars-text-color);
  --f7-photobrowser-bars-link-color: var(--f7-bars-link-color);
  --f7-photobrowser-caption-font-size: 13px;
  --f7-photobrowser-caption-font-weight: 500;
  --f7-photobrowser-caption-light-text-color: #000;
  --f7-photobrowser-caption-dark-text-color: #fff;
  --f7-photobrowser-exposed-bg-color: #000;
  --f7-photobrowser-dark-bg-color: #000;
  --f7-photobrowser-dark-bars-bg-color: rgba(27, 27, 27, 0.8);
  --f7-photobrowser-dark-bars-text-color: #fff;
  --f7-photobrowser-dark-bars-link-color: #fff;
}
.photo-browser {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 400;
}
.photo-browser-standalone.modal-in {
  transition-duration: 0ms;
  animation: photo-browser-in 400ms;
}
.photo-browser-standalone.modal-out {
  transition-duration: 0ms;
  animation: photo-browser-out 400ms !important;
}
.photo-browser-standalone.modal-out.swipe-close-to-bottom,
.photo-browser-standalone.modal-out.swipe-close-to-top {
  animation: none !important;
}
.photo-browser-standalone.photo-browser-transitioning {
  transition: 400ms;
  animation: none !important;
}
.photo-browser-popup.modal-out.swipe-close-to-bottom,
.photo-browser-popup.modal-out.swipe-close-to-top {
  transition-duration: 300ms;
}
.photo-browser-popup.modal-out.swipe-close-to-bottom {
  transform: translate3d(0, 100vh, 0);
}
.photo-browser-popup.modal-out.swipe-close-to-top {
  transform: translate3d(0, -100vh, 0);
}
.photo-browser-page {
  background: none;
}
.photo-browser-page .toolbar {
  transform: none;
}
.photo-browser-popup {
  background: none;
}
.photo-browser-of {
  margin: 0 5px;
}
.photo-browser-captions {
  pointer-events: none;
  position: absolute;
  left: 0;
  width: 100%;
  bottom: var(--f7-safe-area-bottom);
  z-index: 10;
  opacity: 1;
  transition-duration: 400ms;
}
.photo-browser-captions.photo-browser-captions-exposed {
  opacity: 0;
}
.toolbar ~ .toolbar.photo-browser-thumbs {
  bottom: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom));
}
.page ~ .photo-browser-page:not(.photo-browser-exposed) .toolbar ~ .toolbar.photo-browser-thumbs,
.photo-browser-popup:not(.photo-browser-exposed) .toolbar ~ .toolbar.photo-browser-thumbs,
.photo-browser-standalone:not(.photo-browser-exposed) .toolbar ~ .toolbar.photo-browser-thumbs {
  height: var(--f7-toolbar-height);
}
.photo-browser-exposed .toolbar ~ .toolbar.photo-browser-thumbs {
  transform: translate3d(0, calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom, 0)), 0);
}
.photo-browser-exposed .toolbar ~ .toolbar.photo-browser-thumbs .swiper {
  height: calc(100% - var(--f7-safe-area-bottom, 0));
}
.navbar + .toolbar.photo-browser-thumbs .swiper {
  height: calc(100% - var(--f7-safe-area-bottom, 0));
}
.toolbar ~ .photo-browser-captions {
  bottom: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom));
  transform: translate3d(0, 0px, 0);
}
.toolbar ~ .photo-browser-captions.photo-browser-captions-exposed {
  transform: translate3d(0, 0px, 0);
}
.toolbar ~ .toolbar ~ .photo-browser-captions {
  bottom: calc(var(--f7-toolbar-height) * 2 + var(--f7-safe-area-bottom));
}
.toolbar ~ .toolbar ~ .photo-browser-captions.photo-browser-captions-exposed {
  transform: translate3d(0, var(--f7-toolbar-height), 0);
}
.photo-browser-thumbs {
  transition-property: transform, background-color, color;
}
.photo-browser-thumbs .swiper {
  width: 100%;
  height: 100%;
}
.photo-browser-thumbs .swiper-slide {
  width: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}
.photo-browser-thumbs img {
  width: auto;
  height: 75%;
  display: block;
  border-radius: 2px;
  min-width: 4px;
}
.photo-browser-thumbs .swiper-slide img {
  transform: translateX(-4px);
  transition-duration: 150ms;
}
.photo-browser-thumbs .swiper-slide-active img {
  transform: scale(1.2);
}
.photo-browser-thumbs .swiper-slide-active ~ .swiper-slide img {
  transform: translateX(4px);
}
.photo-browser-caption {
  box-sizing: border-box;
  transition-duration: 400ms;
  position: absolute;
  bottom: 0;
  left: 0;
  opacity: 0;
  padding: 4px 5px;
  width: 100%;
  text-align: center;
  font-size: var(--f7-photobrowser-caption-font-size);
  font-weight: var(--f7-photobrowser-caption-font-weight);
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-bars .photo-browser-caption {
    -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
            backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur));
  }
}
.photo-browser-caption:empty {
  display: none;
}
.photo-browser-caption.photo-browser-caption-active {
  opacity: 1;
}
.photo-browser-captions-light .photo-browser-caption {
  color: var(--f7-photobrowser-caption-light-text-color);
}
.photo-browser-captions-dark .photo-browser-caption,
.dark .photo-browser-caption {
  color: var(--f7-photobrowser-caption-dark-text-color);
}
.photo-browser-swiper-container {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--f7-photobrowser-bg-color);
  transition: 400ms;
  transition-property: background-color;
  touch-action: none;
}
.photo-browser-prev.swiper-button-disabled,
.photo-browser-next.swiper-button-disabled {
  opacity: 0.3;
  pointer-events: none;
}
.photo-browser-slide {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  box-sizing: border-box;
}
.photo-browser-slide span.swiper-zoom-container {
  display: none;
}
.photo-browser-slide img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  display: none;
}
.photo-browser-slide.swiper-slide-active span.swiper-zoom-container,
.photo-browser-slide.swiper-slide-next span.swiper-zoom-container,
.photo-browser-slide.swiper-slide-prev span.swiper-zoom-container {
  display: flex;
}
.photo-browser-slide.swiper-slide-active img,
.photo-browser-slide.swiper-slide-next img,
.photo-browser-slide.swiper-slide-prev img {
  display: inline;
}
.photo-browser-slide.swiper-slide-active.photo-browser-slide-lazy .preloader,
.photo-browser-slide.swiper-slide-next.photo-browser-slide-lazy .preloader,
.photo-browser-slide.swiper-slide-prev.photo-browser-slide-lazy .preloader {
  display: block;
}
.photo-browser-slide iframe {
  width: 100%;
  height: 100%;
}
.photo-browser-slide .preloader {
  display: none;
  position: absolute;
  width: 42px;
  height: 42px;
  margin-left: -21px;
  margin-top: -21px;
  left: 50%;
  top: 50%;
}
.navbar-photo-browser .right .link svg,
.navbar-photo-browser .right .link i {
  width: 24px;
  height: 24px;
  display: block;
}
.photo-browser-page .navbar-bg,
.navbar-photo-browser .navbar-bg,
.photo-browser-page .toolbar,
.photo-browser-caption {
  background-color: var(--f7-photobrowser-bars-bg-color, rgba(var(--f7-bars-bg-color-rgb), 0.95));
}
.photo-browser-page {
  touch-action: none;
}
.photo-browser-page .navbar,
.photo-browser-page .toolbar {
  transform: translate3d(0, 0, 0);
  transition-duration: 400ms;
  color: var(--f7-photobrowser-bars-text-color, var(--f7-bars-text-color));
}
.photo-browser-page .navbar a,
.photo-browser-page .toolbar a {
  color: var(--f7-photobrowser-bars-link-color, var(--f7-bars-link-color, var(--f7-theme-color)));
}
.photo-browser-exposed .navbar,
.photo-browser-exposed .toolbar:not(.photo-browser-thumbs) {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.photo-browser-exposed .toolbar:not(.photo-browser-thumbs) ~ .photo-browser-captions,
.photo-browser-exposed .toolbar ~ .toolbar.photo-browser-thumbs ~ .photo-browser-captions {
  transform: translate3d(0, var(--f7-toolbar-height), 0);
}
.photo-browser-exposed .photo-browser-swiper-container {
  background: var(--f7-photobrowser-exposed-bg-color);
}
.photo-browser-exposed .photo-browser-thumbs,
.photo-browser-dark .photo-browser-thumbs,
.photo-browser-exposed .toolbar,
.photo-browser-dark .toolbar {
  background-color: var(--f7-photobrowser-dark-bars-bg-color);
}
.photo-browser-exposed .photo-browser-caption,
.photo-browser-dark .photo-browser-caption {
  color: var(--f7-photobrowser-caption-dark-text-color);
  background-color: var(--f7-photobrowser-dark-bars-bg-color);
}
.view.with-photo-browser-page-exposed .navbar {
  opacity: 0;
  pointer-events: none;
}
.photo-browser-page .toolbar:before,
.photo-browser-page .toolbar:after {
  display: none !important;
}
.photo-browser-page-dark .navbar-bg,
.navbar-photo-browser-dark .navbar-bg {
  background: var(--f7-photobrowser-dark-bars-bg-color);
}
.photo-browser-page-dark .navbar-bg:before,
.navbar-photo-browser-dark .navbar-bg:before,
.photo-browser-page-dark .navbar-bg:after,
.navbar-photo-browser-dark .navbar-bg:after {
  display: none !important;
}
.navbar-photo-browser-dark,
.photo-browser-dark .navbar,
.photo-browser-dark .toolbar,
.photo-browser-page-dark .navbar,
.photo-browser-page-dark .toolbar {
  color: var(--f7-photobrowser-dark-bars-text-color);
}
.navbar-photo-browser-dark a,
.photo-browser-dark .navbar a,
.photo-browser-dark .toolbar a,
.photo-browser-page-dark .navbar a,
.photo-browser-page-dark .toolbar a {
  color: var(--f7-photobrowser-dark-bars-link-color);
}
.photo-browser-dark .photo-browser-swiper-container,
.photo-browser-page-dark .photo-browser-swiper-container {
  background: var(--f7-photobrowser-dark-bg-color);
}
@keyframes photo-browser-in {
  0% {
    transform: translate3d(0, 0, 0) scale(0.5);
    opacity: 0;
  }
  50% {
    transform: translate3d(0, 0, 0) scale(1.05);
    opacity: 1;
  }
  100% {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 1;
  }
}
@keyframes photo-browser-out {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 1;
  }
  50% {
    transform: translate3d(0, 0, 0) scale(1.05);
    opacity: 1;
  }
  100% {
    transform: translate3d(0, 0, 0) scale(0.5);
    opacity: 0;
  }
}
/* === Notifications === */
:root {
  --f7-notification-max-width: 568px;
  --f7-notification-subtitle-text-transform: none;
  --f7-notification-subtitle-line-height: 1.35;
  --f7-notification-text-text-transform: none;
  --f7-notification-text-font-weight: 400;
}
.ios {
  --f7-notification-margin: 8px;
  --f7-notification-padding-horizontal: 10px;
  --f7-notification-padding-vertical: 10px;
  --f7-notification-border-radius: 12px;
  --f7-notification-box-shadow: 0px 5px 25px -10px rgba(0, 0, 0, 0.7);
  --f7-notification-icon-size: 20px;
  --f7-notification-title-font-size: 13px;
  --f7-notification-title-text-transform: uppercase;
  --f7-notification-title-line-height: 1.4;
  --f7-notification-title-font-weight: 400;
  --f7-notification-title-letter-spacing: 0.02em;
  --f7-notification-title-right-font-size: 13px;
  --f7-notification-subtitle-font-size: 15px;
  --f7-notification-subtitle-font-weight: 600;
  --f7-notification-text-font-size: 15px;
  --f7-notification-text-line-height: 1.2;
  --f7-notification-bg-color: rgba(250, 250, 250, 0.95);
  --f7-notification-bg-color-rgb: 255, 255, 255;
  --f7-notification-title-color: #000;
  --f7-notification-title-right-color: rgba(0, 0, 0, 0.45);
  --f7-notification-subtitle-color: #000;
  --f7-notification-text-color: #000;
}
.ios .dark,
.ios.dark {
  --f7-notification-bg-color: rgba(30, 30, 30, 0.95);
  --f7-notification-bg-color-rgb: 30, 30, 30;
  --f7-notification-title-color: #fff;
  --f7-notification-text-color: #fff;
  --f7-notification-subtitle-color: #fff;
  --f7-notification-title-right-color: rgba(255, 255, 255, 0.55);
}
.md {
  --f7-notification-margin: 16px;
  --f7-notification-padding-vertical: 20px;
  --f7-notification-padding-horizontal: 16px;
  --f7-notification-border-radius: 16px;
  --f7-notification-box-shadow: none;
  --f7-notification-icon-size: 24px;
  --f7-notification-title-font-size: 16px;
  --f7-notification-title-text-transform: none;
  --f7-notification-title-line-height: 1.35;
  --f7-notification-title-font-weight: 500;
  --f7-notification-title-right-font-size: 12px;
  --f7-notification-subtitle-font-size: 14px;
  --f7-notification-subtitle-font-weight: 400;
  --f7-notification-text-font-size: 14px;
  --f7-notification-text-line-height: 1.35;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-notification-title-color: var(--f7-md-on-surface);
  --f7-notification-bg-color: var(--f7-md-surface-5);
  --f7-notification-text-color: var(--f7-md-on-surface-variant);
  --f7-notification-title-right-color: var(--f7-md-on-surface-variant);
  --f7-notification-subtitle-color: var(--f7-md-on-surface);
}
.notification {
  position: absolute;
  left: var(--f7-notification-margin);
  top: var(--f7-notification-margin);
  width: calc(100% - var(--f7-notification-margin) * 2);
  z-index: 20000;
  font-size: 14px;
  margin: 0;
  border: none;
  display: none;
  box-sizing: border-box;
  transition-property: transform;
  direction: ltr;
  max-width: var(--f7-notification-max-width);
  padding: var(--f7-notification-padding-vertical) var(--f7-notification-padding-horizontal);
  border-radius: var(--f7-notification-border-radius);
  box-shadow: var(--f7-notification-box-shadow);
  background: var(--f7-notification-bg-color);
  margin-top: var(--f7-safe-area-top);
}
@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) {
  .ios-translucent-modals .notification {
    background-color: rgba(var(--f7-notification-bg-color-rgb), 0.8);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
            backdrop-filter: saturate(180%) blur(20px);
  }
}
@media (min-width: 568px) {
  .notification {
    left: 50%;
    width: var(--f7-notification-max-width);
    margin-left: calc(-1 * var(--f7-notification-max-width) / 2);
  }
}
.notification-title {
  color: var(--f7-notification-title-color, var(--f7-theme-color));
  font-size: var(--f7-notification-title-font-size);
  text-transform: var(--f7-notification-title-text-transform);
  line-height: var(--f7-notification-title-line-height);
  font-weight: var(--f7-notification-title-font-weight);
  letter-spacing: var(--f7-notification-title-letter-spacing);
}
.notification-subtitle {
  color: var(--f7-notification-subtitle-color);
  font-size: var(--f7-notification-subtitle-font-size);
  text-transform: var(--f7-notification-subtitle-text-transform);
  line-height: var(--f7-notification-subtitle-line-height);
  font-weight: var(--f7-notification-subtitle-font-weight);
}
.notification-text {
  color: var(--f7-notification-text-color);
  font-size: var(--f7-notification-text-font-size);
  text-transform: var(--f7-notification-text-text-transform);
  line-height: var(--f7-notification-text-line-height);
  font-weight: var(--f7-notification-text-font-weight);
}
.notification-title-right-text {
  color: var(--f7-notification-title-right-color);
  font-size: var(--f7-notification-title-right-font-size);
}
.notification-icon {
  font-size: 0;
  line-height: var(--f7-notification-icon-size);
}
.notification-icon i,
.notification-icon {
  width: var(--f7-notification-icon-size) !important;
  height: var(--f7-notification-icon-size) !important;
}
.notification-icon i {
  font-size: var(--f7-notification-icon-size);
}
.notification-icon img {
  height: var(--f7-notification-icon-size);
}
.notification-header {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.notification-close-button {
  margin-left: auto;
  cursor: pointer;
  position: relative;
}
.notification-close-button:after {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  position: absolute;
  left: 50%;
  top: 50%;
  text-align: center;
}
.ios .notification {
  transition-duration: 450ms;
  transform: translate3d(0%, -200%, 0);
}
.ios .notification.modal-in {
  transform: translate3d(0%, 0%, 0);
  opacity: 1;
}
.ios .notification.modal-out {
  transform: translate3d(0%, -200%, 0);
}
.ios .notification-icon {
  margin-right: 8px;
}
.ios .notification-header + .notification-content {
  margin-top: 10px;
}
.ios .notification-title-right-text {
  margin-right: 6px;
  margin-left: auto;
}
.ios .notification-title-right-text + .notification-close-button {
  margin-left: 10px;
}
.ios .notification-close-button {
  font-size: 14px;
  width: 20px;
  height: 20px;
  opacity: 0.3;
  transition-duration: 300ms;
}
.ios .notification-close-button.active-state {
  transition-duration: 0ms;
  opacity: 0.1;
}
.ios .notification-close-button:after {
  color: #000;
  content: 'notification_close_ios';
  font-size: 0.65em;
  line-height: 44px;
  width: 44px;
  height: 44px;
  margin-left: -22px;
  margin-top: -22px;
}
.ios .dark .notification-close-button:after,
.ios.dark .notification-close-button:after {
  color: #fff;
}
.md .notification {
  transform: translate3d(0, -150%, 0);
}
.md .notification.modal-in {
  transition-duration: 500ms;
  transform: translate3d(0, 0%, 0);
  transition-timing-function: cubic-bezier(0, 0.8, 0.34, 1);
}
.md .notification.modal-in.notification-transitioning {
  transition-duration: 200ms;
}
.md .notification.modal-out {
  animation: none;
  transition-duration: 200ms;
  transition-timing-function: ease-in;
  transform: translate3d(0, -150%, 0);
}
.md .notification-with-icon .notification-icon {
  position: absolute;
  left: var(--f7-notification-padding-horizontal);
  top: var(--f7-notification-padding-vertical);
}
.md .notification-with-icon .notification-content,
.md .notification-with-icon .notification-header {
  margin-left: calc(var(--f7-notification-icon-size) + 16px);
}
.md .notification-icon {
  margin-right: 8px;
}
.md .notification-subtitle + .notification-text {
  margin-top: 4px;
}
.md .notification-header + .notification-content {
  margin-top: 8px;
}
.md .notification-title-right-text {
  margin-left: 4px;
}
.md .notification-title-right-text:before {
  content: '';
  width: 3px;
  height: 3px;
  border-radius: 50%;
  display: inline-block;
  vertical-align: middle;
  margin-right: 4px;
  background: var(--f7-notification-title-right-color);
}
.md .notification-close-button {
  width: 16px;
  height: 16px;
  transition-duration: 300ms;
}
.md .notification-close-button:before,
.md .notification-close-button:after {
  width: 48px;
  height: 48px;
  left: 50%;
  top: 50%;
  margin-left: -24px;
  margin-top: -24px;
}
.md .notification-close-button:after {
  color: var(--f7-md-on-surface-variant);
  content: 'delete_round_md';
  line-height: 48px;
  font-size: 24px;
}
@keyframes notification-md-in {
  0% {
    transform: translate3d(0, -150%, 0);
  }
  50% {
    transform: translate3d(0, 10%, 0);
  }
  100% {
    transform: translate3d(0, 0%, 0);
  }
}
/* === Autocomplete === */
:root {
  --f7-autocomplete-dropdown-placeholder-color: #a9a9a9;
  --f7-autocomplete-dropdown-preloader-size: 20px;
  --f7-autocomplete-dropdown-font-size: var(--f7-list-font-size);
  /*
  --f7-autocomplete-dropdown-selected-bg-color: rgba(var(--f7-theme-color-rgb), 0.2);
  */
}
.ios {
  --f7-autocomplete-dropdown-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
  --f7-autocomplete-dropdown-text-matching-font-weight: 600;
  --f7-autocomplete-dropdown-bg-color: #fff;
  --f7-autocomplete-dropdown-text-color: #000;
  --f7-autocomplete-dropdown-text-matching-color: #000;
}
.ios .dark,
.ios.dark {
  --f7-autocomplete-dropdown-bg-color: #1c1c1d;
  --f7-autocomplete-dropdown-text-color: #fff;
  --f7-autocomplete-dropdown-text-matching-color: #fff;
}
.md {
  --f7-autocomplete-dropdown-box-shadow: none;
  --f7-autocomplete-dropdown-text-matching-font-weight: 500;
  --f7-autocomplete-dropdown-text-matching-color: #000;
}
.md .dark,
.md.dark {
  --f7-autocomplete-dropdown-text-matching-color: #fff;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-autocomplete-dropdown-bg-color: var(--f7-md-surface-2);
  --f7-autocomplete-dropdown-text-color: var(--f7-md-on-surface);
}
.autocomplete-page .autocomplete-found {
  display: block;
}
.autocomplete-page .autocomplete-not-found {
  display: none;
}
.autocomplete-page .autocomplete-values {
  display: block;
}
.autocomplete-page .list ul:empty {
  display: none;
}
.autocomplete-preloader:not(.autocomplete-preloader-visible) {
  visibility: hidden;
}
.autocomplete-preloader:not(.autocomplete-preloader-visible),
.autocomplete-preloader:not(.autocomplete-preloader-visible) * {
  animation: none;
}
.autocomplete-dropdown {
  background: var(--f7-autocomplete-dropdown-bg-color);
  box-shadow: var(--f7-autocomplete-dropdown-box-shadow);
  box-sizing: border-box;
  position: absolute;
  z-index: 500;
  width: 100%;
  left: 0;
}
.autocomplete-dropdown .autocomplete-dropdown-inner {
  position: relative;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  height: 100%;
  z-index: 1;
}
.autocomplete-dropdown .autocomplete-preloader {
  display: none;
  position: absolute;
  bottom: 100%;
  width: var(--f7-autocomplete-dropdown-preloader-size);
  height: var(--f7-autocomplete-dropdown-preloader-size);
}
.autocomplete-dropdown .autocomplete-preloader-visible {
  display: block;
}
.autocomplete-dropdown .autocomplete-dropdown-placeholder {
  color: var(--f7-autocomplete-dropdown-placeholder-color);
}
.autocomplete-dropdown .list {
  margin: 0;
  color: var(--f7-autocomplete-dropdown-text-color);
  font-size: var(--f7-autocomplete-dropdown-font-size);
}
.autocomplete-dropdown .list b {
  color: var(--f7-autocomplete-dropdown-text-matching-color);
  font-weight: var(--f7-autocomplete-dropdown-text-matching-font-weight);
}
.autocomplete-dropdown .list ul {
  background: none !important;
}
.autocomplete-dropdown .list ul:before,
.autocomplete-dropdown .list ul:after {
  display: none !important;
}
.autocomplete-dropdown .autocomplete-dropdown-selected {
  background: var(--f7-autocomplete-dropdown-selected-bg-color, rgba(var(--f7-theme-color-rgb), 0.2));
}
.searchbar-input-wrap .autocomplete-dropdown {
  background-color: var(--f7-searchbar-input-bg-color, var(--f7-searchbar-bg-color));
  border-radius: var(--f7-searchbar-input-border-radius);
  margin-top: calc(-1 * var(--f7-searchbar-input-height));
  top: 100%;
  z-index: -1;
}
.searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-inner {
  padding-top: var(--f7-searchbar-input-height);
}
.searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-placeholder {
  color: var(--f7-searchbar-placeholder-color);
}
.searchbar-input-wrap .autocomplete-dropdown li:last-child {
  border-radius: 0 0 var(--f7-searchbar-input-border-radius) var(--f7-searchbar-input-border-radius);
  position: relative;
  overflow: hidden;
}
.searchbar-input-wrap .autocomplete-dropdown .item-content {
  padding-left: calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left, 0px));
}
.ios .autocomplete-dropdown .autocomplete-preloader {
  right: 16px;
  margin-bottom: 12px;
}
.md .autocomplete-page .navbar .autocomplete-preloader {
  margin-right: 8px;
}
.md .autocomplete-popup .navbar .autocomplete-preloader {
  margin-left: 8px;
  margin-right: 16px;
}
.md .autocomplete-dropdown .autocomplete-preloader {
  right: 16px;
  margin-bottom: 8px;
}
.md .autocomplete-dropdown .autocomplete-preloader circle {
  stroke-width: 3;
}
/* === Tooltip === */
:root {
  --f7-tooltip-padding: 8px 16px;
  --f7-tooltip-font-size: 14px;
  --f7-tooltip-font-weight: 500;
  --f7-tooltip-desktop-padding: 6px 8px;
  --f7-tooltip-desktop-font-size: 12px;
}
.ios {
  --f7-tooltip-border-radius: 4px;
  --f7-tooltip-bg-color: rgba(0, 0, 0, 0.87);
  --f7-tooltip-text-color: #fff;
}
.md {
  --f7-tooltip-border-radius: 8px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-tooltip-bg-color: var(--f7-md-secondary);
  --f7-tooltip-text-color: var(--f7-md-on-secondary);
}
.tooltip {
  position: absolute;
  z-index: 20000;
  background: var(--f7-tooltip-bg-color);
  border-radius: var(--f7-tooltip-border-radius);
  padding: var(--f7-tooltip-padding);
  color: var(--f7-tooltip-text-color);
  font-size: var(--f7-tooltip-font-size);
  font-weight: var(--f7-tooltip-font-weight);
  box-sizing: border-box;
  line-height: 1.2;
  opacity: 0;
  transform: scale(0.9);
  transition-duration: 150ms;
  transition-property: opacity, transform;
  z-index: 99000;
}
.tooltip.tooltip-in {
  transform: scale(1);
  opacity: 1;
}
.tooltip.tooltip-out {
  opacity: 0;
  transform: scale(1);
}
.device-desktop .tooltip {
  font-size: var(--f7-tooltip-desktop-font-size);
  padding: var(--f7-tooltip-desktop-padding);
}
/* === Gauge === */
.gauge {
  position: relative;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  display: inline-block;
}
.gauge-svg,
.gauge svg {
  max-width: 100%;
  height: auto;
}
.gauge-svg circle,
.gauge svg circle,
.gauge-svg path,
.gauge svg path {
  transition-duration: 400ms;
}
/* === Skeleton === */
:root {
  --skeleton-color: #ccc;
  --skeleton-icon-color: rgba(0, 0, 0, 0.25);
}

.skeleton-block {
  height: 1em;
  background: var(--skeleton-color) !important;
  width: 100%;
  display: block;
}

@font-face {
  font-family: "skeleton";
  src: url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAYAAA0AAAAAESgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABoAAAAclcTxx09TLzIAAAFMAAAASwAAAGBRtV1jY21hcAAAAZgAAAC9AAABamglddJjdnQgAAACWAAAAAQAAAAEABEBRGdhc3AAAAJcAAAACAAAAAj//wADZ2x5ZgAAAmQAAACTAAAJdL6KsfZoZWFkAAAC+AAAAC4AAAA2GgvLb2hoZWEAAAMoAAAAGgAAACQC8ADFaG10eAAAA0QAAAATAAAAtAMAABFsb2NhAAADWAAAAK4AAACuaF5mEm1heHAAAAQIAAAAHwAAACAAmgA5bmFtZQAABCgAAAE5AAACNKbyxURwb3N0AAAFZAAAAJkAAADOCL0Ic3icY2BgYGQAgts30q6A6DvfXCthNABZwwgPAAB4nGNgYWRgnMDAysDA6MOYxsDA4A6lvzJIMrQwMDAxsHIywAAjAxIISHNNYWhgUGCoZTzw/wCDHuMBBgeYGsYDQB4DUI4RAOnYC70AeJxjYGBgZoBgGQZGBhBIAfIYwXwWBg8gzcfAwcDEwMagxKDFYM0QyxDPUPv/P1BcgUGNQYfBEchP/P///+P/D/7f/3/r/83/N6DmIAFGNga4ICMTkGBCVwB0AgsrkMHGzsHJxcDNw8vHLyAoJCwiKiYuISkFViMtIysnr6CopKyiqqauoamlraOrp29gaGRsYmpmzmDBYGllbWNrZ+/g6OTs4urm7uHp5e3j6+cfEBgUHBKK7iL6AwBJLiG7AAAAABEBRAAAAAH//wACeJztzrENwjAUBNA7O4nrXzBAREEHEm5dsERWyApZIStkBip7ggzCCmyAEmxCQYNESfG7r3un04eBAJjYwcLhGIlTSK7C/Ryb+haSNflEtCWuS5xcw0dILLkXLwcvexmHvme3XIU+rxFYZ4Jz3sROWiEuBgug9tXMh7lN21djxbu1Nf/pZzU1NTU1NbWf7QnZ5mwOAHicY2BkYGAAYrZdrHLx/DZfGbiZGEDgzjfXSgT9/wAjA+MBIJeDASwNAA4cCj0AAHicY2BkYGA88P8Agx6QAQSMYIQCWABQZgK3AAB4nGNkYBBkAAJGKB4KAAAOfQAVAAAAACoAKgAqADgARgBUAGIAcAB+AIwAmgCoALYAxADYAOYA9AECARABHgEsAToBSAFWAWQBcgGAAY4BnAGqAbgBxgHUAeIB8AH+AgwCGgIoAjYCRAJSAmACbgJ8AooCmAKmArQCwgLQAt4C7AL6AwgDFgMkAzIDQANOA1wDagN4A4YDlAOiA7ADvgPMA9oD6AP2BAQEEgQgBC4EPARKBFgEZgR0BIIEkASeBKwEugAAeJxjYGRgYAhj4GBgYgABEMnIABJzYNADCQAADScA1AB4nH2PvW7CMBSFj/krXSpeoJKHDiAR6mRAFStSVIkFMWToFhErWCQkMmFAVR+hax+hY5+vY0+MWTqQ6Mqfj4/vPQbwgB8IXL4xNp4Fhvj03MEdvj138YRfzz0MxbPnPkbizfOA+gedonfP3drdallghHfPHc798tzFKzNcuMc+j577kOLF84D6HktUqHGGhUGOHRpIZt5iwjWCYoWYkhMUSJHRVbIslRXdKanVS/Yw7hTLqj5bk+8aOd5OZKSicCqTIs1Maaxc7VJbpGVtMjqP2EPzuubQCgcKe13opiJtKOY4ud6WW52fipQQO2PjVkuHdilnzCmxYP1veVHbNwSYs64vQlwdmriyuZbRTMmFvI4mRmEwD9rcNxMmFC0Nxs9R/EOXRLk0SLQ9GjZUKpwppeStbn/Mg1tYAAAAeJxdzlkzggEARuGn1EXUWEJFubJU1iyRJcbQJoRC9t/dn8k3XXZu3plz8c4RNmI4kAkmZJzXkQ2bEBEVM2lKXMK0GbPmJM1bsCglHTwsWZaVs2LVmnUb8gqKNm3ZtmPXnpJ9Bw4dKTt2ouLUmXMXqi5duXbjVk1dQ1PLnbZ7Dx51PHn2oqsXdL151/fh05dvP379/QOXKRMwAAAA") format("woff");
  font-weight: 100, 200, 300, 400, 500, 600, 700, 800, 900;
  font-style: normal, italic;
  font-display: block;
}
.skeleton-text {
  font-family: "skeleton" !important;
  -webkit-user-select: none;
          user-select: none;
}
.skeleton-text, .skeleton-text * {
  color: var(--skeleton-color) !important;
  letter-spacing: -0.03em !important;
}

.skeleton-image {
  display: inline-block;
}
.skeleton-image svg {
  max-width: 100%;
  height: auto;
}
.skeleton-image polygon {
  fill: var(--skeleton-color);
}
.skeleton-image path {
  fill: var(--skeleton-icon-color);
}

.skeleton-avatar {
  display: inline-block;
}
.skeleton-avatar svg {
  max-width: 100%;
  height: auto;
}
.skeleton-avatar rect {
  fill: var(--skeleton-color);
}
.skeleton-avatar path {
  fill: var(--skeleton-icon-color);
}

.skeleton-effect-blink, .skeleton-effect-wave {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 25%, black 75%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 25%, black 75%, transparent 100%);
  -webkit-mask-size: 200% 100%;
  mask-size: 200% 100%;
  -webkit-mask-repeat: repeat;
  mask-repeat: repeat;
  -webkit-mask-position: 50% top;
  mask-position: 50% top;
  animation: skeleton-effect-wave 1s infinite;
}
.skeleton-effect-fade {
  animation: skeleton-effect-fade 1s infinite;
}
.skeleton-effect-pulse {
  animation: skeleton-effect-pulse 1s infinite;
}

@keyframes skeleton-effect-fade {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.2;
  }
  100% {
    opacity: 1;
  }
}
@keyframes skeleton-effect-wave {
  0% {
    -webkit-mask-position: 50% top;
    mask-position: 50% top;
  }
  100% {
    -webkit-mask-position: -150% top;
    mask-position: -150% top;
  }
}
@keyframes skeleton-effect-pulse {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1);
  }
  50% {
    transform: scale(0.975);
  }
  100% {
    transform: scale(1);
  }
}
:root {
  --skeleton-color: #ccc;
  --skeleton-icon-color: rgba(0, 0, 0, 0.25);
}
.dark {
  --skeleton-color: #515151;
  --skeleton-icon-color: rgba(255, 255, 255, 0.25);
}
/* === Color Picker === */
:root {
  --f7-color-picker-popover-width: 350px;
  --f7-color-picker-slider-size: 6px;
  --f7-color-picker-slider-knob-size: 16px;
  --f7-color-picker-bar-size: 50px;
  --f7-color-picker-bar-min-height: 260px;
  --f7-color-picker-value-width: 64px;
  --f7-color-picker-value-height: 32px;
  --f7-color-picker-value-font-size: 16px;
  --f7-color-picker-value-border-radius: 4px;
  --f7-color-picker-hex-value-width: 84px;
  --f7-color-picker-label-font-size: 14px;
  --f7-color-picker-label-width: 10px;
  --f7-color-picker-label-height: 14px;
  --f7-color-picker-sb-spectrum-height: 260px;
  --f7-color-picker-sb-spectrum-handle-size: 16px;
  --f7-color-picker-wheel-width: 330px;
  --f7-color-picker-palette-value-width: 36px;
  --f7-color-picker-palette-value-height: 36px;
  --f7-color-picker-initial-current-color-height: 40px;
  --f7-color-picker-initial-current-color-border-radius: 4px;
  --f7-color-picker-sheet-bg-color: #fff;
  --f7-color-picker-popup-bg-color: #fff;
  --f7-color-picker-value-bg-color: rgba(0, 0, 0, 0.05);
  --f7-color-picker-group-bg-color: rgba(0, 0, 0, 0.05);
  --f7-color-picker-group-value-bg-color: #fff;
}
:root .dark,
:root.dark {
  --f7-color-picker-sheet-bg-color: #121212;
  --f7-color-picker-popup-bg-color: #121212;
  --f7-color-picker-value-bg-color: rgba(255, 255, 255, 0.1);
  --f7-color-picker-group-bg-color: #000;
  --f7-color-picker-group-value-bg-color: rgba(255, 255, 255, 0.12);
}
.color-picker {
  overflow: hidden;
  width: 100%;
  display: flex;
  flex-direction: column;
}
.color-picker.color-picker-inline,
.color-picker-popover .color-picker,
.color-picker-popup .color-picker {
  position: relative;
}
.color-picker-sheet-modal {
  background: var(--f7-color-picker-sheet-bg-color);
}
.color-picker-sheet-modal:before {
  z-index: 600;
}
.color-picker-sheet-modal .sheet-modal-inner {
  margin-bottom: var(--f7-safe-area-bottom);
}
.color-picker-popup .page {
  background: var(--f7-color-picker-popup-bg-color);
}
.color-picker-popup .page-content {
  padding-bottom: var(--f7-safe-area-bottom);
}
.color-picker-popover .color-picker,
.color-picker-popup .color-picker,
.color-picker-page .color-picker {
  height: 100%;
}
.color-picker-popover .color-picker .toolbar,
.color-picker-popup .color-picker .toolbar,
.color-picker-page .color-picker .toolbar {
  position: absolute;
}
.color-picker-popover {
  width: var(--f7-color-picker-popover-width);
  max-width: 90vw;
  max-height: 80vh;
}
.md .color-picker-popover .popover-inner {
  padding: 8px;
}
.color-picker-popover .color-picker {
  max-height: 80vh;
}
.color-picker-popover .toolbar-top {
  border-top-left-radius: var(--f7-popover-border-radius);
  border-top-right-radius: var(--f7-popover-border-radius);
}
.color-picker-popover .color-picker-module-palette {
  overflow: hidden;
  flex-shrink: 0;
}
.color-picker-popover .color-picker-module-palette:first-child {
  border-top-left-radius: var(--f7-popover-border-radius);
  border-top-right-radius: var(--f7-popover-border-radius);
}
.color-picker-popover .color-picker-module-palette:last-child {
  border-bottom-left-radius: var(--f7-popover-border-radius);
  border-bottom-right-radius: var(--f7-popover-border-radius);
}
.color-picker-popover .color-picker-module-palette:first-child:last-child {
  border-radius: var(--f7-popover-border-radius);
}
.color-picker-popover .toolbar ~ .page-content .color-picker-module-palette:first-child {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.color-picker-popup .page-content,
.color-picker-popover .page-content,
.color-picker-sheet-modal .page-content,
.color-picker-page .page-content {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  flex-direction: column;
  overflow-x: hidden;
}
.color-picker-module {
  margin-top: 5px;
}
.color-picker-module:last-child {
  margin-bottom: 5px;
}
.color-picker-module-sb-spectrum,
.color-picker-module-hs-spectrum {
  margin-left: 10px;
  margin-right: 10px;
}
.color-picker-module-sb-spectrum:first-child,
.color-picker-module-hs-spectrum:first-child {
  margin-top: 10px;
}
.color-picker-module-sb-spectrum .color-picker-sb-spectrum,
.color-picker-module-hs-spectrum .color-picker-sb-spectrum,
.color-picker-module-sb-spectrum .color-picker-hs-spectrum,
.color-picker-module-hs-spectrum .color-picker-hs-spectrum {
  height: var(--f7-color-picker-sb-spectrum-height);
}
.ios .color-picker-module-sb-spectrum .color-picker-sb-spectrum,
.ios .color-picker-module-hs-spectrum .color-picker-sb-spectrum,
.ios .color-picker-module-sb-spectrum .color-picker-hs-spectrum,
.ios .color-picker-module-hs-spectrum .color-picker-hs-spectrum {
  border-radius: 4px;
}
.md .color-picker-module-sb-spectrum .color-picker-sb-spectrum,
.md .color-picker-module-hs-spectrum .color-picker-sb-spectrum,
.md .color-picker-module-sb-spectrum .color-picker-hs-spectrum,
.md .color-picker-module-hs-spectrum .color-picker-hs-spectrum {
  border-radius: 12px;
}
.md .color-picker-module-sb-spectrum .color-picker-sb-spectrum::after,
.md .color-picker-module-hs-spectrum .color-picker-sb-spectrum::after,
.md .color-picker-module-sb-spectrum .color-picker-hs-spectrum::after,
.md .color-picker-module-hs-spectrum .color-picker-hs-spectrum::after {
  border-radius: inherit;
}
.color-picker-sb-spectrum {
  background-color: #000;
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%), linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #fff 100%);
  position: relative;
}
.color-picker-hs-spectrum {
  position: relative;
  background-image: linear-gradient(to right, hsl(0, 100%, 50%), hsl(60, 100%, 50%), hsl(120, 100%, 50%), hsl(180, 100%, 50%), hsl(240, 100%, 50%), hsl(300, 100%, 50%), hsl(0, 100%, 50%));
}
.color-picker-hs-spectrum:after {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), #ffffff);
}
.color-picker-sb-spectrum-handle,
.color-picker-hs-spectrum-handle {
  width: 4px;
  height: 4px;
  position: absolute;
  left: -2px;
  top: -2px;
  z-index: 1;
}
.color-picker-sb-spectrum-handle:after,
.color-picker-hs-spectrum-handle:after {
  background-color: inherit;
  content: '';
  position: absolute;
  width: var(--f7-color-picker-sb-spectrum-handle-size);
  height: var(--f7-color-picker-sb-spectrum-handle-size);
  border: 1px solid #fff;
  border-radius: 50%;
  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5);
  box-sizing: border-box;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: 150ms;
  transition-property: transform;
  transform-origin: center;
}
.color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after,
.color-picker-hs-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after,
.color-picker-sb-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after,
.color-picker-hs-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after {
  transform: scale(1.5) translate(-33.333%, -33.333%);
}
.color-picker-module-wheel {
  margin-left: 10px;
  margin-right: 10px;
}
.color-picker-wheel {
  position: relative;
  width: var(--f7-color-picker-wheel-width);
  max-width: 100%;
  height: auto;
  font-size: 0;
  margin-left: auto;
  margin-right: auto;
}
.color-picker-wheel svg {
  width: 100%;
  height: auto;
}
.color-picker-wheel .color-picker-wheel-handle {
  width: 16.66666667%;
  height: 16.66666667%;
  position: absolute;
  box-sizing: border-box;
  border: 2px solid #fff;
  box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
  background: red;
  border-radius: 50%;
  left: 0;
  top: 0;
}
.color-picker-wheel .color-picker-sb-spectrum {
  width: 45%;
  height: 45%;
  left: 50%;
  top: 50%;
  transform: translate3d(-50%, -50%, 0);
  position: absolute;
}
.color-picker-slider-wrap {
  display: flex;
  align-items: center;
  margin-bottom: 2px;
}
.color-picker-slider-wrap + .color-picker-slider-wrap {
  margin-top: 5px;
}
.color-picker-hex-wrap {
  justify-content: space-between;
  display: flex;
  align-items: center;
}
.color-picker-slider-label,
.color-picker-hex-label {
  font-size: var(--f7-color-picker-label-font-size);
  width: var(--f7-color-picker-label-size);
  flex-shrink: 0;
  margin-right: 12px;
}
.color-picker-hex-label {
  width: auto;
}
.color-picker-bar-value,
.color-picker-slider-value,
.color-picker-hex-value {
  width: var(--f7-color-picker-value-width);
  height: var(--f7-color-picker-value-height);
  background: var(--f7-color-picker-value-bg-color);
  border-radius: var(--f7-color-picker-value-border-radius);
  text-align: center;
  font-size: var(--f7-color-picker-value-font-size);
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  margin-left: 10px;
}
.color-picker-bar-value input,
.color-picker-slider-value input,
.color-picker-hex-value input {
  width: 100%;
  height: 100%;
  -webkit-appearance: none;
          appearance: none;
  border: none;
  outline: 0;
  background: transparent;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  text-align: center;
  display: block;
  border-radius: 4px;
}
.color-picker-bar-value input::-webkit-inner-spin-button,
.color-picker-slider-value input::-webkit-inner-spin-button,
.color-picker-hex-value input::-webkit-inner-spin-button,
.color-picker-bar-value input::-webkit-outer-spin-button,
.color-picker-slider-value input::-webkit-outer-spin-button,
.color-picker-hex-value input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
  display: none;
}
.color-picker-hex-value {
  width: var(--f7-color-picker-hex-value-width);
}
.color-picker-hex-value:first-child {
  margin-left: auto;
}
.color-picker-slider {
  --f7-range-bar-active-bg-color: transparent;
  --f7-range-bar-size: var(--f7-color-picker-slider-size);
  --f7-range-bar-border-radius: var(--f7-color-picker-slider-size);
  --f7-range-knob-size: var(--f7-color-picker-slider-knob-size);
  --f7-range-knob-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.color-picker-slider .range-knob {
  transition-duration: 200ms;
  transition-property: transform;
}
.color-picker-slider .range-knob:after {
  width: 30px;
  height: 30px;
  margin-left: -16px;
  margin-top: -16px;
}
.color-picker-slider .range-knob-active-state .range-knob {
  transform: scale(1.5);
}
.md .color-picker-slider.range-slider-min:not(.range-slider-dual) .range-knob {
  background: var(--f7-range-knob-color) !important;
  border: none;
}
.color-picker-module-rgb-bars {
  display: flex;
  justify-content: space-around;
  justify-content: space-evenly;
  align-items: stretch;
  height: 100%;
  min-height: var(--f7-color-picker-bar-min-height);
  padding-bottom: 10px;
  padding-top: 10px;
  box-sizing: border-box;
}
.color-picker-bar-wrap {
  display: flex;
  align-items: center;
  flex-direction: column-reverse;
}
.color-picker-bar {
  --f7-range-bar-active-bg-color: transparent;
  --f7-range-bar-size: var(--f7-color-picker-bar-size);
  --f7-range-bar-border-radius: 2px;
  --f7-range-knob-size: 6px;
  --f7-range-knob-box-shadow: 0 0px 3px rgba(0, 0, 0, 0.3);
  --f7-range-knob-color: #fff;
}
.color-picker-bar .range-knob {
  transition-duration: 0ms;
  transition-property: transform;
  border-radius: 3px;
}
.color-picker-bar .range-knob-wrap {
  height: 6px;
  width: calc(var(--f7-color-picker-bar-size) - 4px);
  margin-left: calc(-0.5 * (var(--f7-color-picker-bar-size) - 4px));
}
.color-picker-bar .range-knob-active-state .range-knob {
  transform: scale(1);
}
.md .color-picker-bar.range-slider-min:not(.range-slider-dual) .range-knob {
  background: var(--f7-range-knob-color) !important;
  border: none;
}
.color-picker-bar-label {
  font-size: var(--f7-color-picker-label-size);
  margin-top: 12px;
  line-height: 1;
  height: var(--f7-color-picker-label-height);
  flex-shrink: 0;
}
.color-picker-bar-value {
  margin-left: 0;
  margin-bottom: 10px;
}
.color-picker-slider-alpha {
  --f7-range-knob-color: #fff;
}
.color-picker-slider-alpha .range-bar {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0), #000), linear-gradient(to right, rgba(255, 255, 255, 0.2) 50%, rgba(0, 0, 0, 0.2) 50%), linear-gradient(to left, rgba(255, 255, 255, 0.2) 50%, rgba(0, 0, 0, 0.2) 50%);
  background-size: 100% 100%,
      6px 3px,
      6px 3px;
  background-position: 0 0,
      0px 3px,
      0 0;
  background-repeat: repeat-y, repeat-x, repeat-x;
}
.color-picker-slider-hue .range-bar {
  background-image: linear-gradient(to right, hsl(0, 100%, 50%), hsl(60, 100%, 50%), hsl(120, 100%, 50%), hsl(180, 100%, 50%), hsl(240, 100%, 50%), hsl(300, 100%, 50%), hsl(0, 100%, 50%));
}
.color-picker-slider-brightness .range-bar {
  background-image: linear-gradient(to right, #000, #fff);
}
.color-picker-module-palette {
  margin-top: 16px;
}
.color-picker-module-palette:first-child {
  margin-top: 0;
}
.color-picker-module-palette:last-child {
  margin-bottom: 0;
}
.color-picker-module-palette:first-child:last-child {
  margin: 0;
}
.color-picker-palette {
  display: flex;
  flex-wrap: wrap;
}
.color-picker-palette-row {
  width: 100%;
  display: flex;
  flex-wrap: nowrap;
}
.color-picker-palette-row .color-picker-palette-value {
  width: 100%;
}
.color-picker-palette-value {
  width: var(--f7-color-picker-palette-value-width);
  height: var(--f7-color-picker-palette-value-height);
  cursor: pointer;
}
.color-picker-module-initial-current-colors,
.color-picker-module-current-color {
  margin-left: 10px;
  margin-right: 10px;
  border-radius: var(--f7-color-picker-initial-current-color-border-radius);
  overflow: hidden;
  flex-shrink: 0;
}
.color-picker-initial-color,
.color-picker-current-color {
  height: var(--f7-color-picker-initial-current-color-height);
}
.color-picker-initial-current-colors {
  display: flex;
}
.color-picker-initial-current-colors .color-picker-initial-color,
.color-picker-initial-current-colors .color-picker-current-color {
  width: 50%;
}
.color-picker-module-rgb-sliders,
.color-picker-module-hsb-sliders,
.color-picker-module-alpha-slider,
.color-picker-module-hue-slider,
.color-picker-module-brightness-slider,
.color-picker-module-hex {
  margin-left: 10px;
  margin-right: 10px;
}
.color-picker-grouped-modules .color-picker-module-rgb-sliders,
.color-picker-grouped-modules .color-picker-module-hsb-sliders,
.color-picker-grouped-modules .color-picker-module-alpha-slider,
.color-picker-grouped-modules .color-picker-module-hue-slider,
.color-picker-grouped-modules .color-picker-module-brightness-slider,
.color-picker-grouped-modules .color-picker-module-hex {
  background: var(--f7-color-picker-group-bg-color);
  padding: 8px;
  border-radius: 8px;
  margin-top: 16px;
  margin-left: 8px;
  margin-right: 8px;
}
.color-picker-grouped-modules .color-picker-module-rgb-sliders:last-child,
.color-picker-grouped-modules .color-picker-module-hsb-sliders:last-child,
.color-picker-grouped-modules .color-picker-module-alpha-slider:last-child,
.color-picker-grouped-modules .color-picker-module-hue-slider:last-child,
.color-picker-grouped-modules .color-picker-module-brightness-slider:last-child,
.color-picker-grouped-modules .color-picker-module-hex:last-child {
  margin-bottom: 16px;
}
.color-picker-grouped-modules .color-picker-slider-value,
.color-picker-grouped-modules .color-picker-hex-value {
  background: var(--f7-color-picker-group-value-bg-color);
}
.color-picker-grouped-modules .color-picker-slider-label,
.color-picker-grouped-modules .color-picker-hex-label {
  margin-left: 5px;
}
.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:first-child,
.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:first-child,
.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:first-child,
.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:first-child,
.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:first-child {
  margin-left: 5px;
}
.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:last-child,
.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:last-child,
.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:last-child,
.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:last-child,
.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:last-child {
  margin-right: 5px;
}
/* === Treeview === */
:root {
  --f7-treeview-item-height: 34px;
  --f7-treeview-item-padding-left: 16px;
  --f7-treeview-item-padding-right: 16px;
  --f7-treeview-toggle-size: 24px;
  --f7-treeview-children-offset: 29px;
  --f7-treeview-label-font-weight: 400;
  --f7-treeview-label-text-color: inherit;
  --f7-treeview-icon-size: 24px;
  /*
  --f7-treeview-selectable-selected-bg-color: rgba(var(--f7-theme-color-rgb), 0.2);
  */
  --f7-treeview-toggle-color: rgba(0, 0, 0, 0.5);
  --f7-treeview-toggle-hover-bg-color: rgba(0, 0, 0, 0.1);
  --f7-treeview-toggle-pressed-bg-color: rgba(0, 0, 0, 0.15);
  --f7-treeview-icon-color: rgba(0, 0, 0, 0.5);
  --f7-treeview-selectable-hover-bg-color: rgba(0, 0, 0, 0.1);
  --f7-treeview-link-hover-bg-color: rgba(0, 0, 0, 0.1);
  --f7-treeview-link-pressed-bg-color: rgba(0, 0, 0, 0.15);
}
:root .dark,
:root.dark {
  --f7-treeview-toggle-color: rgba(255, 255, 255, 0.5);
  --f7-treeview-toggle-hover-bg-color: rgba(255, 255, 255, 0.03);
  --f7-treeview-toggle-pressed-bg-color: rgba(255, 255, 255, 0.1);
  --f7-treeview-icon-color: rgba(255, 255, 255, 0.75);
  --f7-treeview-selectable-hover-bg-color: rgba(255, 255, 255, 0.03);
  --f7-treeview-link-hover-bg-color: rgba(255, 255, 255, 0.03);
  --f7-treeview-link-pressed-bg-color: rgba(255, 255, 255, 0.11);
}
.ios {
  --f7-treeview-label-font-size: 17px;
}
.md {
  --f7-treeview-label-font-size: 16px;
}
.treeview-item-root {
  padding-left: var(--f7-treeview-item-padding-left);
  padding-right: var(--f7-treeview-item-padding-right);
  min-height: var(--f7-treeview-item-height);
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.treeview-item-content {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.treeview-item-content > i,
.treeview-item-content > .f7-icons,
.treeview-item-content > .material-icons {
  font-size: var(--f7-treeview-icon-size);
  color: var(--f7-treeview-icon-color);
}
.treeview-item-content:first-child {
  margin-left: calc(var(--f7-treeview-toggle-size) + 5px);
}
.treeview-item-content > * + * {
  margin-left: 5px;
}
.treeview-item-label {
  font-size: var(--f7-treeview-label-font-size);
  font-weight: var(--f7-treeview-label-font-weight);
  color: var(--f7-treeview-label-text-color);
}
.treeview-toggle {
  width: var(--f7-treeview-toggle-size);
  height: var(--f7-treeview-toggle-size);
  cursor: pointer;
  border-radius: 4px;
  background-color: rgba(0, 0, 0, 0);
  transition-duration: 200ms;
  position: relative;
  margin-right: 5px;
}
.treeview-toggle.active-state {
  background-color: var(--f7-treeview-toggle-pressed-bg-color);
}
.treeview-toggle:after {
  transition-duration: 200ms;
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  transform: translate(-50%, -50%);
  border-left: 6px solid var(--f7-treeview-toggle-color);
}
.treeview-toggle-hidden {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}
.treeview-preloader {
  --f7-preloader-size: var(--f7-treeview-toggle-size);
  margin-right: calc(-1 * var(--f7-treeview-toggle-size));
}
.treeview-item-children {
  display: none;
}
.treeview-item-opened > .treeview-item-children {
  display: block;
}
.treeview-item-opened > .treeview-item-root .treeview-toggle:after {
  transform: translate(-50%, -50%) rotate(90deg);
}
a.treeview-item-root {
  color: var(--f7-treeview-label-text-color);
}
.treeview-item-selectable > .treeview-item-root,
.treeview-item-selectable.treeview-item-root {
  cursor: pointer;
  transition-duration: 150ms;
}
a.treeview-item-root {
  transition-duration: 150ms;
}
a.treeview-item-root.active-state {
  background: var(--f7-treeview-link-pressed-bg-color);
}
.treeview-item-toggle > .treeview-item-root,
.treeview-item-toggle.treeview-item-root {
  cursor: pointer;
}
.treeview-item-selected > .treeview-item-root,
.treeview-item-selected.treeview-item-root {
  background: var(--f7-treeview-selectable-selected-bg-color, rgba(var(--f7-theme-color-rgb), 0.2));
}
.treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 1);
}
.treeview-item .treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 2);
}
.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 3);
}
.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 4);
}
.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 5);
}
.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 6);
}
.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 7);
}
.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 8);
}
.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 9);
}
.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root {
  padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 10);
}
/* === Stepper === */
:root {
  --f7-text-editor-font-size: inherit;
  --f7-text-editor-font-weight: inherit;
  --f7-text-editor-border-width: 1px;
  --f7-text-editor-height: 250px;
  --f7-text-editor-margin: 16px;
  --f7-text-editor-padding: 8px;
  --f7-text-editor-button-bg-color: transparent;
  --f7-text-editor-button-size: 28px;
  --f7-text-editor-button-icon-size: 20px;
  --f7-text-editor-button-margin: 2px;
  --f7-text-editor-text-color: #000;
  --f7-text-editor-bg-color: #fff;
  --f7-text-editor-button-divider-color: rgba(0, 0, 0, 0.15);
}
:root .dark,
:root.dark {
  --f7-text-editor-bg-color: #121212;
  --f7-text-editor-text-color: #fff;
  --f7-text-editor-button-divider-color: rgba(255, 255, 255, 0.15);
}
.ios {
  --f7-text-editor-toolbar-padding: 6px;
  --f7-text-editor-button-border-radius: 2px;
  --f7-text-editor-placeholder-color: rgba(0, 0, 0, 0.35);
  --f7-text-editor-toolbar-border-color: rgba(0, 0, 0, 0.25);
  --f7-text-editor-toolbar-bg-color: #fff;
  --f7-text-editor-border-color: rgba(0, 0, 0, 0.1);
  --f7-text-editor-button-text-color: #333;
}
.ios .dark,
.ios.dark {
  --f7-text-editor-placeholder-color: rgba(255, 255, 255, 0.35);
  --f7-text-editor-toolbar-bg-color: #121212;
  --f7-text-editor-toolbar-border-color: rgba(255, 255, 255, 0.1);
  --f7-text-editor-toolbar-bg-color: #202020;
  --f7-text-editor-border-color: rgba(255, 255, 255, 0.1);
  --f7-text-editor-button-text-color: #fff;
}
.md {
  --f7-text-editor-button-border-radius: 8px;
  --f7-text-editor-toolbar-padding: 8px;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-text-editor-placeholder-color: var(--f7-md-on-surface-variant);
  --f7-text-editor-toolbar-bg-color: var(--f7-md-surface-1);
  --f7-text-editor-border-color: var(--f7-md-outline);
  --f7-text-editor-button-text-color: var(--f7-md-on-surface);
}
.text-editor {
  margin: var(--f7-text-editor-margin);
  background-color: var(--f7-text-editor-bg-color);
  display: block;
  position: relative;
  border: var(--f7-text-editor-border-width) solid var(--f7-text-editor-border-color);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: var(--f7-text-editor-height);
  box-sizing: border-box;
}
.text-editor.text-editor-resizable {
  height: auto;
}
.text-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  background: var(--f7-text-editor-toolbar-bg-color);
  z-index: 100;
  position: relative;
  position: sticky;
  left: 0;
  top: 0;
  padding: var(--f7-text-editor-toolbar-padding);
  flex-shrink: 0;
  box-sizing: border-box;
}
.text-editor-toolbar:after {
  content: '';
  position: absolute;
  background-color: var(--f7-text-editor-toolbar-border-color);
  display: block;
  z-index: 15;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  transform-origin: 50% 100%;
  transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
button.text-editor-button {
  -webkit-appearance: none;
          appearance: none;
  border: none;
  padding: 0;
  margin: 0;
  outline: 0;
  font-family: inherit;
  background: transparent;
  cursor: pointer;
  box-shadow: none;
  border-radius: var(--f7-text-editor-button-border-radius);
  position: relative;
  z-index: 1;
  display: flex;
  width: auto;
  overflow: hidden;
  width: var(--f7-text-editor-button-size);
  height: var(--f7-text-editor-button-size);
  align-items: center;
  justify-content: center;
  margin: var(--f7-text-editor-button-margin);
  box-sizing: border-box;
  color: var(--f7-text-editor-button-text-color);
  background-color: var(--f7-text-editor-button-bg-color);
  flex-shrink: 0;
}
button.text-editor-button i,
button.text-editor-button .f7-icons,
button.text-editor-button .material-icons {
  font-size: var(--f7-text-editor-button-icon-size);
  font-style: normal;
}
button.text-editor-button i sup,
button.text-editor-button .f7-icons sup,
button.text-editor-button .material-icons sup,
button.text-editor-button i sub,
button.text-editor-button .f7-icons sub,
button.text-editor-button .material-icons sub {
  font-size: 60%;
}
.text-editor-button-divider {
  width: 1px;
  background: var(--f7-text-editor-button-divider-color);
  margin: 0 2px;
  flex-shrink: 0;
}
.text-editor-content {
  -webkit-user-modify: read-write;
  -webkit-appearance: none;
          appearance: none;
  border: none;
  outline: 0;
  height: 100%;
  -webkit-user-select: text;
          user-select: text;
  padding: var(--f7-text-editor-padding);
  overflow: auto;
  flex-shrink: 10;
  box-sizing: border-box;
  color: var(--f7-text-editor-text-color);
  font-size: var(--f7-text-editor-font-size);
  font-weight: var(--f7-text-editor-font-weight);
}
.text-editor-content .text-editor-placeholder {
  pointer-events: none;
  color: var(--f7-text-editor-placeholder-color);
}
.text-editor-content img {
  max-width: 100%;
}
.text-editor-content a {
  pointer-events: none;
}
.text-editor-popover {
  z-index: 12500;
  width: auto;
  max-width: 80vw;
}
.text-editor-popover .popover-inner {
  display: flex;
  flex-wrap: wrap;
  padding: 3px;
}
.text-editor-keyboard-toolbar {
  position: absolute;
  z-index: 6000;
  --f7-safe-area-bottom: 0px;
}
.text-editor-keyboard-toolbar .toolbar-inner {
  justify-content: flex-start !important;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scrollbar-color: transparent;
}
.text-editor-keyboard-toolbar .toolbar-inner::-webkit-scrollbar {
  -webkit-appearance: none;
          appearance: none;
  width: 0px;
  display: none;
  opacity: 0;
  background: transparent;
}
.text-editor-keyboard-toolbar .toolbar-inner::-webkit-scrollbar-track {
  box-shadow: none;
  background: transparent;
}
.text-editor-keyboard-toolbar .toolbar-inner::-webkit-scrollbar-thumb {
  background-color: transparent;
  outline: none;
  border-radius: 9999px;
  position: relative;
}
.text-editor-keyboard-toolbar .toolbar-inner .text-editor-button-divider {
  height: 100%;
}
.item-input .text-editor {
  border: none;
  margin: 0;
  background-color: var(--f7-input-bg-color, transparent);
}
.item-input .text-editor-content {
  padding-top: var(--f7-textarea-padding-vertical);
  padding-bottom: var(--f7-textarea-padding-vertical);
  padding-left: var(--f7-input-padding-left);
  padding-right: var(--f7-input-padding-right);
  color: var(--f7-input-text-color);
  font-size: var(--f7-input-font-size);
}
.item-input .text-editor-toolbar {
  box-shadow: none;
}
.item-input .text-editor-toolbar:after {
  display: none !important;
}
.item-input-outline .text-editor-content {
  border-radius: var(--f7-input-outline-border-radius);
}
.ios button.text-editor-button {
  transition: opacity 300ms;
}
.ios button.text-editor-button.active-state {
  opacity: 0.3;
  transition-duration: 0ms;
}
.md button.text-editor-button {
  --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.25);
}
.md .text-editor-keyboard-toolbar .toolbar-inner {
  padding-left: 8px;
  padding-right: 8px;
}
.pie-chart {
  position: relative;
}
.pie-chart svg {
  display: block;
  width: 100%;
  font-size: 0;
  height: auto;
  margin: 0 auto;
}
.pie-chart path {
  transition-duration: 150ms;
}
.pie-chart-hidden {
  opacity: 0.4;
}
.pie-chart-tooltip {
  pointer-events: none;
  text-align: left;
  font-size: 12px;
  line-height: 1.4;
  white-space: nowrap;
  width: auto;
  max-width: none;
}
.pie-chart-tooltip-label {
  display: flex;
  align-items: center;
}
.pie-chart-tooltip-color {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  margin-right: 4px;
}
:root {
  --f7-area-chart-current-line-stroke-width: 2px;
  --f7-area-chart-current-line-stroke: rgba(0, 0, 0, 0.15);
  --f7-area-chart-axis-text-color: inherit;
  --f7-area-chart-axis-height: 1px;
  --f7-area-chart-axis-font-size: 10px;
  --f7-area-chart-axis-font-weight: 500;
  --f7-area-chart-tooltip-font-size: 12px;
  --f7-area-chart-tooltip-total-font-size: 16px;
  --f7-area-chart-tooltip-total-font-weight: bold;
  --f7-area-chart-tooltip-color-size: 10px;
  --f7-area-chart-legend-font-size: 14px;
  --f7-area-chart-legend-font-weight: 500;
  --f7-area-chart-legend-text-color: inherit;
  --f7-area-chart-legend-padding: 4px 8px;
  --f7-area-chart-legend-border-radius: 4px;
  --f7-area-chart-legend-color-size: 14px;
  --f7-area-chart-line-stroke-width: 2px;
  --f7-area-chart-axis-bg-color: rgba(0, 0, 0, 0.15);
  --f7-area-chart-legend-disabled-text-color: rgba(0, 0, 0, 0.22);
}
:root .dark,
:root.dark {
  --f7-area-chart-axis-bg-color: rgba(255, 255, 255, 0.15);
  --f7-area-chart-legend-disabled-text-color: rgba(255, 255, 255, 0.22);
}
.ios {
  --f7-area-chart-tooltip-total-label-text-color: rgba(255, 255, 255, 0.75);
}
.md {
  --f7-area-chart-tooltip-total-label-text-color: inherit;
}
.area-chart {
  position: relative;
}
.area-chart svg {
  display: block;
  width: 100%;
  font-size: 0;
  height: auto;
  margin: 0 auto;
}
.area-chart path {
  fill: none;
  stroke-width: var(--f7-area-chart-line-stroke-width);
}
.area-chart-current-line {
  stroke: var(--f7-area-chart-current-line-stroke);
  stroke-width: var(--f7-area-chart-current-line-stroke-width);
}
.area-chart-axis {
  height: var(--f7-area-chart-axis-height);
  background: var(--f7-area-chart-axis-bg-color);
  color: var(--f7-area-chart-axis-text-color);
  display: flex;
  font-size: var(--f7-area-chart-axis-font-size);
  font-weight: var(--f7-area-chart-axis-font-weight);
  justify-content: space-between;
  line-height: 1;
  margin-bottom: 2em;
}
.area-chart-axis > span {
  padding-top: 10px;
  width: 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  white-space: nowrap;
}
.area-chart-axis > span:first-child {
  justify-content: flex-start;
}
.area-chart-axis > span:last-child {
  justify-content: flex-end;
}
.area-chart-tooltip {
  pointer-events: none;
  text-align: left;
  font-size: var(--f7-area-chart-tooltip-font-size);
  line-height: 1.4;
}
.area-chart-tooltip-label {
  color: var(--f7-area-chart-tooltip-total-label-text-color);
}
.area-chart-tooltip-total {
  font-size: var(--f7-area-chart-tooltip-total-font-size);
  font-weight: var(--f7-area-chart-tooltip-total-font-weight);
}
.area-chart-tooltip-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.area-chart-tooltip-list li {
  white-space: nowrap;
}
.area-chart-tooltip-list span {
  display: inline-block;
  width: var(--f7-area-chart-tooltip-color-size);
  height: var(--f7-area-chart-tooltip-color-size);
  border-radius: 50%;
  margin-right: 4px;
}
.area-chart-axis ~ .area-chart-legend {
  margin-top: 2em;
}
.area-chart-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  font-size: var(--f7-area-chart-legend-font-size);
  width: 100%;
  margin-top: 1em;
}
.area-chart-legend-button {
  -webkit-appearance: none !important;
  appearance: none !important;
  background-color: transparent;
  border-radius: 0;
  border: none;
  outline: 0 !important;
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  box-shadow: none !important;
}
.area-chart-legend-item {
  position: relative;
  color: var(--f7-area-chart-legend-text-color);
  width: auto;
  display: flex;
  align-items: center;
  font-weight: var(--f7-area-chart-legend-font-weight);
  transition-duration: 200ms;
  padding: var(--f7-area-chart-legend-padding);
  border-radius: var(--f7-area-chart-legend-border-radius);
  overflow: hidden;
}
.area-chart-legend-item span {
  width: var(--f7-area-chart-legend-color-size);
  height: var(--f7-area-chart-legend-color-size);
  margin-right: 4px;
  border-radius: 50%;
  transition-duration: 200ms;
}
.area-chart-legend-item-hidden {
  color: var(--f7-area-chart-legend-disabled-text-color);
}
.area-chart-legend-item-hidden span {
  background-color: var(--f7-area-chart-legend-disabled-text-color) !important;
}
/* === Breadcrumbs === */
:root {
  --f7-breadcrumbs-spacing: 12px;
  --f7-breadcrumbs-padding: 2px 0;
  --f7-breadcrumbs-icon-size: 24px;
  --f7-breadcrumbs-separator-color: rgba(0, 0, 0, 0.35);
}
:root .dark,
:root.dark {
  --f7-breadcrumbs-separator-color: rgba(255, 255, 255, 0.35);
}
.ios {
  --f7-breadcrumbs-item-bg-color: transparent;
  --f7-breadcrumbs-collapsed-border-radius: 4px;
  --f7-breadcrumbs-collapsed-padding: 0px 6px;
  --f7-breadcrumbs-separator-icon: 'chevron_right_ios';
  --f7-breadcrumbs-font-size: 17px;
  --f7-breadcrumbs-item-border-radius: 0px;
  --f7-breadcrumbs-item-padding: 0px;
  --f7-breadcrumbs-item-font-weight: normal;
  --f7-breadcrumbs-item-active-font-weight: 600;
  --f7-breadcrumbs-item-color: rgba(0, 0, 0, 0.55);
  --f7-breadcrumbs-item-active-color: #000;
  --f7-breadcrumbs-collapsed-bg-color: rgba(0, 0, 0, 0.15);
  --f7-breadcrumbs-collapsed-color: rgba(0, 0, 0, 0.75);
}
.ios .dark,
.ios.dark {
  --f7-breadcrumbs-item-color: rgba(255, 255, 255, 0.75);
  --f7-breadcrumbs-item-active-color: #fff;
  --f7-breadcrumbs-collapsed-bg-color: rgba(255, 255, 255, 0.15);
  --f7-breadcrumbs-collapsed-color: rgba(255, 255, 255, 0.75);
}
.md {
  --f7-breadcrumbs-collapsed-border-radius: 8px;
  --f7-breadcrumbs-collapsed-padding: 12px 8px;
  --f7-breadcrumbs-separator-icon: 'chevron_right_md';
  --f7-breadcrumbs-font-size: 14px;
  --f7-breadcrumbs-item-border-radius: 8px;
  --f7-breadcrumbs-item-padding: 4px 8px;
  --f7-breadcrumbs-item-font-weight: 500;
  --f7-breadcrumbs-item-active-font-weight: 500;
}
.md,
.md .dark,
.md [class*='color-'] {
  --f7-breadcrumbs-item-color: var(--f7-theme-color);
  --f7-breadcrumbs-item-bg-color: var(--f7-md-secondary-container);
  --f7-breadcrumbs-item-active-color: var(--f7-md-on-secondary-container);
  --f7-breadcrumbs-collapsed-color: var(--f7-theme-color);
  --f7-breadcrumbs-collapsed-bg-color: var(--f7-md-secondary-container);
}
.breadcrumbs {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-size: var(--f7-breadcrumbs-font-size);
  overflow: auto;
  white-space: nowrap;
  padding: var(--f7-breadcrumbs-padding);
  scrollbar-width: none;
  scrollbar-color: transparent;
}
.breadcrumbs::-webkit-scrollbar {
  -webkit-appearance: none;
          appearance: none;
  width: 0px;
  display: none;
  opacity: 0;
  background: transparent;
}
.breadcrumbs::-webkit-scrollbar-track {
  box-shadow: none;
  background: transparent;
}
.breadcrumbs::-webkit-scrollbar-thumb {
  background-color: transparent;
  outline: none;
  border-radius: 9999px;
  position: relative;
}
.breadcrumbs-separator,
.breadcrumbs-item,
.breadcrumbs-collapsed {
  flex-shrink: 0;
  --f7-touch-ripple-color: transparent !important;
}
.breadcrumbs-separator + .breadcrumbs-separator,
.breadcrumbs-separator + .breadcrumbs-item,
.breadcrumbs-separator + .breadcrumbs-collapsed,
.breadcrumbs-item + .breadcrumbs-separator,
.breadcrumbs-item + .breadcrumbs-item,
.breadcrumbs-item + .breadcrumbs-collapsed,
.breadcrumbs-collapsed + .breadcrumbs-separator,
.breadcrumbs-collapsed + .breadcrumbs-item,
.breadcrumbs-collapsed + .breadcrumbs-collapsed {
  margin-left: var(--f7-breadcrumbs-spacing);
}
.breadcrumbs-item {
  color: var(--f7-breadcrumbs-item-color);
  font-weight: var(--f7-breadcrumbs-item-font-weight);
  padding: var(--f7-breadcrumbs-item-padding);
  background-color: var(--f7-breadcrumbs-item-bg-color);
  display: flex;
  align-items: center;
  border-radius: var(--f7-breadcrumbs-item-border-radius);
}
.breadcrumbs-item .icon {
  font-size: var(--f7-breadcrumbs-icon-size);
  width: var(--f7-breadcrumbs-icon-size);
  height: var(--f7-breadcrumbs-icon-size);
}
.breadcrumbs-item a {
  color: inherit;
  --f7-touch-ripple-color: transparent !important;
}
.breadcrumbs-item-active {
  color: var(--f7-breadcrumbs-item-active-color, var(--f7-breadcrumbs-item-color));
  font-weight: var(--f7-breadcrumbs-item-active-font-weight);
}
.breadcrumbs-separator {
  color: var(--f7-breadcrumbs-separator-color);
  height: 24px;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.breadcrumbs-separator::after {
  font-family: 'framework7-core-icons';
  font-weight: normal;
  font-style: normal;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
  display: block;
  width: 100%;
  height: 100%;
  font-size: 20px;
  content: var(--f7-breadcrumbs-separator-icon);
  width: 12px;
}
.ios .breadcrumbs-separator::after {
  font-size: 12px;
  height: 11px;
}
.md .breadcrumbs-separator::after {
  font-size: 18px;
  height: 18px;
}
.breadcrumbs-collapsed {
  display: flex;
  align-items: center;
  padding: var(--f7-breadcrumbs-collapsed-padding);
  background: var(--f7-breadcrumbs-collapsed-bg-color);
  min-height: 1em;
  border-radius: var(--f7-breadcrumbs-collapsed-border-radius);
  cursor: pointer;
}
.breadcrumbs-collapsed::before,
.breadcrumbs-collapsed::after,
.breadcrumbs-collapsed span {
  content: '';
  width: 4px;
  height: 4px;
  background: var(--f7-breadcrumbs-collapsed-color);
  border-radius: 50%;
}
.breadcrumbs-collapsed span {
  margin: 0 3px;
}
/* === Typography === */
:root {
  --f7-typography-padding: 16px;
  --f7-typography-margin: 16px;
}
.display-flex {
  display: flex !important;
}
.display-block {
  display: block !important;
}
.display-inline-flex {
  display: inline-flex !important;
}
.display-inline-block {
  display: inline-block !important;
}
.display-inline {
  display: inline !important;
}
.display-none {
  display: none !important;
}
.flex-shrink-0 {
  flex-shrink: 0 !important;
}
.flex-shrink-1 {
  flex-shrink: 1 !important;
}
.flex-shrink-2 {
  flex-shrink: 2 !important;
}
.flex-shrink-3 {
  flex-shrink: 3 !important;
}
.flex-shrink-4 {
  flex-shrink: 4 !important;
}
.flex-shrink-5 {
  flex-shrink: 5 !important;
}
.flex-shrink-6 {
  flex-shrink: 6 !important;
}
.flex-shrink-7 {
  flex-shrink: 7 !important;
}
.flex-shrink-8 {
  flex-shrink: 8 !important;
}
.flex-shrink-9 {
  flex-shrink: 9 !important;
}
.flex-shrink-10 {
  flex-shrink: 10 !important;
}
.flex-direction-row {
  flex-direction: row !important;
}
.flex-direction-row-reverse {
  flex-direction: row-reverse !important;
}
.flex-direction-column {
  flex-direction: column !important;
}
.flex-direction-column-reverse {
  flex-direction: column-reverse !important;
}
.justify-content-flex-start {
  justify-content: flex-start !important;
}
.justify-content-center {
  justify-content: center !important;
}
.justify-content-flex-end {
  justify-content: flex-end !important;
}
.justify-content-space-between {
  justify-content: space-between !important;
}
.justify-content-space-around {
  justify-content: space-around !important;
}
.justify-content-space-evenly {
  justify-content: space-evenly !important;
}
.justify-content-stretch {
  justify-content: stretch !important;
}
.justify-content-start {
  justify-content: start !important;
}
.justify-content-end {
  justify-content: end !important;
}
.justify-content-left {
  justify-content: left !important;
}
.justify-content-right {
  justify-content: right !important;
}
.align-content-flex-start {
  align-content: flex-start !important;
}
.align-content-flex-end {
  align-content: flex-end !important;
}
.align-content-center {
  align-content: center !important;
}
.align-content-space-between {
  align-content: space-between !important;
}
.align-content-space-around {
  align-content: space-around !important;
}
.align-content-stretch {
  align-content: stretch !important;
}
.align-items-baseline {
  align-items: baseline !important;
}
.align-items-flex-start {
  align-items: flex-start !important;
}
.align-items-flex-end {
  align-items: flex-end !important;
}
.align-items-center {
  align-items: center !important;
}
.align-items-stretch {
  align-items: stretch !important;
}
.align-self-flex-start {
  align-self: flex-start !important;
}
.align-self-flex-end {
  align-self: flex-end !important;
}
.align-self-center {
  align-self: center !important;
}
.align-self-stretch {
  align-self: stretch !important;
}
.text-align-left {
  text-align: left !important;
}
.text-align-center {
  text-align: center !important;
}
.text-align-right {
  text-align: right !important;
}
.text-align-justify {
  text-align: justify !important;
}
.float-left {
  float: left !important;
}
.float-right {
  float: right !important;
}
.float-none {
  float: none !important;
}
.vertical-align-bottom {
  vertical-align: bottom !important;
}
.vertical-align-middle {
  vertical-align: middle !important;
}
.vertical-align-top {
  vertical-align: top !important;
}
.no-padding {
  padding: 0 !important;
}
.no-padding-left {
  padding-left: 0 !important;
}
.no-padding-right {
  padding-right: 0 !important;
}
.no-padding-horizontal {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.no-padding-top {
  padding-top: 0 !important;
}
.no-padding-bottom {
  padding-bottom: 0 !important;
}
.no-padding-vertical {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.no-margin {
  margin: 0 !important;
}
.no-margin-left {
  margin-left: 0 !important;
}
.no-margin-right {
  margin-right: 0 !important;
}
.no-margin-horizontal {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.no-margin-top {
  margin-top: 0 !important;
}
.no-margin-bottom {
  margin-bottom: 0 !important;
}
.no-margin-vertical {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.width-auto {
  width: auto !important;
}
.width-100 {
  width: 100% !important;
}
.padding {
  padding: var(--f7-typography-padding) !important;
}
.padding-half {
  padding: calc(var(--f7-typography-padding) / 2) !important;
}
.padding-top {
  padding-top: var(--f7-typography-padding) !important;
}
.padding-top-half {
  padding-top: calc(var(--f7-typography-padding) / 2) !important;
}
.padding-bottom {
  padding-bottom: var(--f7-typography-padding) !important;
}
.padding-bottom-half {
  padding-bottom: calc(var(--f7-typography-padding) / 2) !important;
}
.padding-left {
  padding-left: var(--f7-typography-padding) !important;
}
.padding-left-half {
  padding-left: calc(var(--f7-typography-padding) / 2) !important;
}
.padding-right {
  padding-right: var(--f7-typography-padding) !important;
}
.padding-right-half {
  padding-right: calc(var(--f7-typography-padding) / 2) !important;
}
.padding-vertical {
  padding-top: var(--f7-typography-padding) !important;
  padding-bottom: var(--f7-typography-padding) !important;
}
.padding-vertical-half {
  padding-top: calc(var(--f7-typography-padding) / 2) !important;
  padding-bottom: calc(var(--f7-typography-padding) / 2) !important;
}
.padding-horizontal {
  padding-left: var(--f7-typography-padding) !important;
  padding-right: var(--f7-typography-padding) !important;
}
.padding-horizontal-half {
  padding-left: calc(var(--f7-typography-padding) / 2) !important;
  padding-right: calc(var(--f7-typography-padding) / 2) !important;
}
.margin {
  margin: var(--f7-typography-margin) !important;
}
.margin-half {
  margin: calc(var(--f7-typography-margin) / 2) !important;
}
.margin-top {
  margin-top: var(--f7-typography-margin) !important;
}
.margin-top-half {
  margin-top: calc(var(--f7-typography-margin) / 2) !important;
}
.margin-bottom {
  margin-bottom: var(--f7-typography-margin) !important;
}
.margin-bottom-half {
  margin-bottom: calc(var(--f7-typography-margin) / 2) !important;
}
.margin-left {
  margin-left: var(--f7-typography-margin) !important;
}
.margin-left-half {
  margin-left: calc(var(--f7-typography-margin) / 2) !important;
}
.margin-right {
  margin-right: var(--f7-typography-margin) !important;
}
.margin-right-half {
  margin-right: calc(var(--f7-typography-margin) / 2) !important;
}
.margin-vertical {
  margin-top: var(--f7-typography-margin) !important;
  margin-bottom: var(--f7-typography-margin) !important;
}
.margin-vertical-half {
  margin-top: calc(var(--f7-typography-margin) / 2) !important;
  margin-bottom: calc(var(--f7-typography-margin) / 2) !important;
}
.margin-horizontal {
  margin-left: var(--f7-typography-margin) !important;
  margin-right: var(--f7-typography-margin) !important;
}
.margin-horizontal-half {
  margin-left: calc(var(--f7-typography-margin) / 2) !important;
  margin-right: calc(var(--f7-typography-margin) / 2) !important;
}
[class*='text-color-'] {
  color: var(--f7-theme-color-text-color) !important;
}
[class*='bg-color-'] {
  background-color: var(--f7-theme-color-bg-color) !important;
}
[class*='border-color-'] {
  border-color: var(--f7-theme-color-border-color) !important;
}
/* Self-hosted brand fonts (Inter + EB Garamond, latin + latin-ext, variable
   woff2). Vendored from Google Fonts so text renders instantly & offline — no
   network round-trip at launch. Same fonts as before; no visual change. */
@font-face{font-family:'EB Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/ebgaramond-latin-ext-0-dkY5D-I6.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'EB Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/ebgaramond-latin-1-KGnr19QW.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ebgaramond-latin-ext-2-Bgo24x86.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ebgaramond-latin-3-BUNBP5ar.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ebgaramond-latin-ext-2-Bgo24x86.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ebgaramond-latin-3-BUNBP5ar.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/inter-latin-ext-4-DO1Apj_S.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/inter-latin-5-Dx4kXJAl.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/inter-latin-ext-4-DO1Apj_S.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/inter-latin-5-Dx4kXJAl.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/inter-latin-ext-4-DO1Apj_S.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/inter-latin-5-Dx4kXJAl.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/inter-latin-ext-4-DO1Apj_S.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/inter-latin-5-Dx4kXJAl.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* Material Icons Font (for MD theme — F7 auto-theme on Android).
   woff2 only: every WebView we target (Android Chromium, iOS WKWebView 15+)
   supports it, so the ~165 KB .woff fallback never loaded — dropped it. */
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: local('Material Icons'), local('MaterialIcons-Regular'),
    url(/assets/material-icons-kAwBdRge.woff2) format('woff2');
}
.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
}

/* Framework7 Icons Font (for iOS theme) — woff2 only (see note above). */
@font-face {
  font-family: 'Framework7 Icons';
  font-style: normal;
  font-weight: 400;
  src: url('/assets/Framework7Icons-Regular-Db9RwDq_.woff2') format('woff2');
}
.f7-icons {
  font-family: 'Framework7 Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 28px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  text-align: center;
}

/* ============================================================================
   CBM design system — editorial / ElevenLabs-inspired
   Off-white canvas, warm near-black ink, single ink-pill CTA, serif display +
   Inter body, soft pill/rounded geometry, pastel atmospheric orbs.
   Applied app-wide by mapping the tokens onto Framework7 CSS variables.
   ============================================================================ */
/* Brand fonts are now self-hosted — see src/css/fonts.css, imported in app.js
   before this file. (Was a render-blocking @import of Google Fonts; vendoring
   them removes the launch-time network round-trip and makes text render
   instantly & offline. Same Inter + EB Garamond, so no visual change.) */
:root {
  /* ---- Design tokens ---- */
  --cbm-canvas: #f5f5f5;
  --cbm-canvas-soft: #fafafa;
  --cbm-surface: #ffffff;
  --cbm-surface-strong: #f0efed;
  --cbm-ink: #0c0a09;
  --cbm-ink-pill: #292524;
  --cbm-ink-pill-active: #0c0a09;
  --cbm-body: #4e4e4e;
  --cbm-muted: #777169;
  --cbm-muted-soft: #a8a29e;
  --cbm-on-primary: #ffffff;
  --cbm-hairline: #e7e5e4;
  --cbm-hairline-soft: #f0efed;
  --cbm-hairline-strong: #d6d3d1;
  --cbm-success: #16a34a;
  --cbm-error: #dc2626;
  --cbm-warning: #d97706;
  --cbm-info: #2563eb;
  --cbm-pink: #c2185b; /* decorative accent (birthday pill); re-pigments on dark */
  /* Atmospheric pastel gradient stops (decoration only) */
  --cbm-mint: #a7e5d3;
  --cbm-peach: #f4c5a8;
  --cbm-lavender: #c8b8e0;
  --cbm-sky: #a8c8e8;
  --cbm-rose: #e8b8c4;
  --cbm-radius-md: 8px;
  --cbm-radius-lg: 12px;
  --cbm-radius-xl: 16px;
  --cbm-radius-xxl: 24px;
  --cbm-shadow-soft: 0 4px 16px rgba(0, 0, 0, 0.04);
  --cbm-display-font: "EB Garamond", "Times New Roman", serif;
  --cbm-body-font: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Roboto, sans-serif;
  /* ---- Map onto Framework7 (applies to both ios & md themes) ---- */
  --f7-font-family: var(--cbm-body-font);
  --f7-theme-color: var(--cbm-ink-pill);
  --f7-theme-color-rgb: 41, 37, 37;
  --f7-theme-color-shade: var(--cbm-ink-pill-active);
  --f7-theme-color-tint: #3f3a37;
  --f7-page-bg-color: var(--cbm-canvas);
  --f7-text-color: var(--cbm-ink);
  --f7-text-color-rgb: 12, 10, 9;
  /* Bars */
  --f7-bars-bg-color: var(--cbm-canvas);
  --f7-bars-bg-color-rgb: 245, 245, 245;
  --f7-bars-text-color: var(--cbm-ink);
  --f7-bars-link-color: var(--cbm-ink);
  --f7-bars-border-color: var(--cbm-hairline);
  /* Blocks / lists / cards */
  --f7-block-strong-bg-color: var(--cbm-surface);
  --f7-list-bg-color: var(--cbm-surface);
  --f7-list-item-border-color: var(--cbm-hairline);
  --f7-list-item-after-text-color: var(--cbm-muted);
  --f7-list-group-title-text-color: var(--cbm-muted);
  --f7-block-title-text-color: var(--cbm-ink);
  --f7-block-text-color: var(--cbm-body);
  /* ---- Kill Material You tonal (lavender/"silver") surfaces ----
     The app runs Framework7's md theme, whose tonal palette derives a cool
     lavender (surface-1 #f1f3fc, surface-2 #eaeefa, variant #e1e2ec) from the
     default Material primary. We map the plain list/block/card vars below, but
     the *strong/inset* list var, list-group-title and menu fell through to that
     lavender — which is what painted every inset FORM silver. Remap the tonal
     surfaces (and the leaking consumers) onto the brand neutrals so all form
     surfaces are flat white on the canvas, per the design system. */
  --f7-md-surface-1: var(--cbm-surface); /* #fff — list-strong, cards, menus */
  --f7-md-surface-2: var(--cbm-canvas); /* #f5f5f5 — bars, group plates */
  --f7-md-surface-variant: var(--cbm-surface-strong); /* #f0efed — warm utility backing */
  --f7-list-strong-bg-color: var(--cbm-surface); /* inset/strong form lists → white */
  --f7-list-group-title-bg-color: transparent; /* muted text on canvas, no plate */
  --f7-menu-list-item-bg-color: var(--cbm-surface);
  --f7-card-bg-color: var(--cbm-surface);
  --f7-card-box-shadow: var(--cbm-shadow-soft);
  --f7-card-border-radius: var(--cbm-radius-xl);
  --f7-list-inset-border-radius: var(--cbm-radius-xl);
  /* Buttons → pill, ink */
  --f7-button-border-radius: 9999px;
  --f7-button-font-weight: 500;
  --f7-button-text-transform: none;
  --f7-button-fill-text-color: var(--cbm-on-primary);
  /* Inputs */
  --f7-input-text-color: var(--cbm-ink);
  --f7-input-placeholder-color: var(--cbm-muted-soft);
  --f7-label-text-color: var(--cbm-muted);
  --f7-input-outline-border-color: var(--cbm-hairline-strong);
  --f7-input-outline-focused-border-color: var(--cbm-ink);
  --f7-input-info-text-color: var(--cbm-muted);
  /* Legacy width helpers */
  --width-80: 80%;
  --width-70: 70%;
  --width-75: 75%;
  --width-65: 65%;
}
/* ============================================================================
   Apple glass (frosted) chrome — translucent bars over the canvas, content
   scrolls under with a saturated blur. Non-negotiable across all chrome.
   Cards/content surfaces stay solid white (per the design spec).
   ============================================================================ */
:root {
  /* Declare the page is LIGHT so the Android WebView never algorithmically darkens it
     (force-dark) when the device is in dark mode — the #1 cause of "light theme looks
     like a darker version" on real devices. The dark block sets color-scheme:dark.
     (Reinforces the inline pre-paint script + the <meta name="color-scheme"> in index.html.) */
  --csstools-color-scheme--dark:  ;
  color-scheme: light;
  /* ▸ DECISION KNOB = GLASS OFF (FLAT) — for performance. backdrop-filter glass forces a
     GPU re-blur on every scroll/render frame, which janks weaker Android devices ("too heavy
     to load smoothly"). Every chrome rule reads these three tokens, so opaque bg + blur:none
     flattens the whole app in one place (no explicit backdrop-filter:none block needed —
     `backdrop-filter: none` is free). To bring Liquid Glass back (capable devices / a Lite
     split): set the bgs to the translucent rgba + --cbm-glass-blur: saturate(180%) blur(22px). */
  --cbm-glass-bg: var(--cbm-canvas-soft, #fafafa);
  --cbm-glass-bg-strong: var(--cbm-surface, #ffffff);
  --cbm-glass-blur: none;
}
/* ============================================================================
   DARK THEME — single source of truth. The whole app reads --cbm-* tokens (and
   the --f7-* vars are mapped onto them), so re-pigmenting the token set here
   flips every token-driven surface at once. Driven by <html data-theme="dark">
   (set pre-paint in index.html, toggled via the store). This is a surface-based
   adaptation per docs/…-dark guideline: warm near-black ladder (never pure
   black), bone ink-pill (polarity flip), smoked glass, lightened semantics.
   Placed BEFORE the LITE block so lite's opaque-glass remap still wins in
   lite+dark (its glass vars resolve to the dark surface tokens below).
   ============================================================================ */
html[data-theme=dark] {
  --csstools-color-scheme--dark: initial;
  color-scheme: dark;
  /* Surfaces — warm-dark elevation ladder (higher = lighter). No pure black. */
  --cbm-canvas: #1a1714; /* L0 page floor */
  --cbm-canvas-soft: #211d19; /* L1 raised band / glass solid fallback */
  --cbm-surface: #28231e; /* L2 card */
  --cbm-surface-strong: #322c26; /* L3 plates / badges / inputs backing */
  --cbm-canvas-deep: #100e0b; /* deepest contrast band */
  /* Brand / action — polarity flip: the ink pill becomes a bone pill. */
  --cbm-ink: #f5f3f0; /* display + primary text */
  --cbm-ink-pill: #f5f3f0; /* bone pill fill */
  --cbm-ink-pill-active: #e3ded7; /* press */
  --cbm-on-primary: #1a1714; /* ink text ON the bone pill */
  --cbm-body: #c2bbb1;
  --cbm-body-strong: #d9d3cc;
  --cbm-muted: #968d84;
  --cbm-muted-soft: #6b635b;
  /* Hairlines — low-opacity light strokes read better than dark on dark. */
  --cbm-hairline: rgba(255, 255, 255, 0.09);
  --cbm-hairline-soft: rgba(255, 255, 255, 0.06);
  --cbm-hairline-strong: rgba(255, 255, 255, 0.14);
  /* Semantics — lightened for AA on dark (never #dc2626/#16a34a as text). */
  --cbm-success: #4ade80;
  --cbm-error: #f87171;
  --cbm-warning: #fbbf24;
  --cbm-info: #60a5fa;
  --cbm-pink: #f472b6;
  /* Elevation leans on surface-lightness; shadow is deeper + softer. */
  --cbm-shadow-soft: 0 6px 24px rgba(0, 0, 0, 0.45);
  --cbm-focus-ring: #f5f3f0;
  --cbm-overlay-scrim: rgba(10, 9, 7, 0.64);
  /* ▸ DECISION KNOB = GLASS OFF (FLAT) for dark too — opaque warm-dark surfaces, no blur
     (mirrors the light flat profile; backdrop-filter is the scroll-jank cost on weak GPUs).
     To bring smoked glass back: rgba(33,29,25,.55/.72) + --cbm-glass-blur: saturate(150%) blur(22px). */
  --cbm-glass-bg: var(--cbm-canvas-soft);
  --cbm-glass-bg-strong: var(--cbm-surface);
  --cbm-glass-blur: none;
  --cbm-glass-frost: rgba(245, 243, 240, 0.10);
  /* ---- F7 vars that carry LITERAL values (don't reference --cbm-*) ---- */
  --f7-theme-color-rgb: 245, 243, 240; /* bone */
  --f7-theme-color-tint: #ffffff;
  --f7-text-color-rgb: 245, 243, 240;
  --f7-bars-bg-color-rgb: 26, 23, 20;
  --f7-page-bg-color: var(--cbm-canvas);
  /* F7 controls whose glyph must flip to dark on the now-bone accent fill. */
  --f7-checkbox-active-color: var(--cbm-ink-pill);
  --f7-checkbox-icon-color: var(--cbm-on-primary);
  --f7-radio-active-color: var(--cbm-ink-pill);
  /* F7 surfaces that otherwise default to a light grey on dark. */
  --f7-card-bg-color: var(--cbm-surface);
  --f7-block-strong-bg-color: var(--cbm-surface);
  --f7-list-bg-color: var(--cbm-surface);
  --f7-list-item-after-text-color: var(--cbm-muted);
  --f7-input-info-text-color: var(--cbm-muted);
  --f7-md-list-item-divider-color: var(--cbm-hairline);
  /* ---- THE SYSTEMIC TEXT FIX ----
     F7's md theme hardcodes its text palette to Material-You LIGHT values
     (on-surface #1b1b1f, on-surface-variant #44474f, secondary #565e71, outline
     #74777f, surface #fefbff). ~90 component text vars — list-item titles,
     navbar/dialog/picker/searchbar/calendar/message/toast/notification/timeline/
     table text — all derive from these via var(), so on dark they render NEAR
     BLACK → invisible. Re-point the md SOURCE vars at our tokens and every
     consumer flips at once (titles, labels, picker rows, dialog text, etc.). */
  --f7-md-on-surface: var(--cbm-ink); /* primary text → bone */
  --f7-md-on-surface-variant: var(--cbm-muted); /* secondary/label text → muted */
  --f7-md-secondary: var(--cbm-muted);
  --f7-md-outline: var(--cbm-hairline-strong);
  --f7-md-surface: var(--cbm-surface); /* stray light surface → dark card */
  /* The md "primary" is a blue (#005bc1) used for links/active accents — re-point
     to the brand ink so links/active text read as bone, not a foreign blue. */
  --f7-md-primary: var(--cbm-ink);
  --f7-md-on-primary: var(--cbm-on-primary);
  /* Tonal "container" surfaces — md uses light blue containers (#dbe2f9) with dark
     text (#141b2c) for chips, tonal buttons, selected menu rows, breadcrumbs. On
     dark those are bright islands with invisible text → dark surface + light text. */
  --f7-md-secondary-container: var(--cbm-surface-strong);
  --f7-md-on-secondary-container: var(--cbm-ink);
  --f7-md-primary-container: var(--cbm-surface-strong);
  --f7-md-on-primary-container: var(--cbm-ink);
  --f7-md-tertiary-container: var(--cbm-surface-strong);
  --f7-md-on-tertiary-container: var(--cbm-ink);
  --f7-chip-bg-color: var(--cbm-surface-strong);
  /* Stray literal text vars not reached via the source vars above. */
  --f7-table-input-text-color: var(--cbm-ink);
}
/* Status bar / browser chrome already handled by the pre-paint meta swap; keep
   the canvas paint and a few global affordances dark-aware. */
html[data-theme=dark] body,
html[data-theme=dark] .page-content {
  background-color: var(--cbm-canvas);
}
/* Scrollbars, text selection, placeholders, autofill — commonly-missed. */
html[data-theme=dark] ::selection {
  background: rgba(245, 243, 240, 0.22);
  color: var(--cbm-ink);
}
html[data-theme=dark] ::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
html[data-theme=dark] ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.14);
  border-radius: 9999px;
}
html[data-theme=dark] ::-webkit-scrollbar-track {
  background: transparent;
}
html[data-theme=dark] ::placeholder {
  color: var(--cbm-muted-soft);
}
html[data-theme=dark] input:-webkit-autofill,
html[data-theme=dark] textarea:-webkit-autofill {
  -webkit-text-fill-color: var(--cbm-ink);
  -webkit-box-shadow: 0 0 0 1000px var(--cbm-surface-strong) inset;
  caret-color: var(--cbm-ink);
}
/* Caret + native form chrome (selects, date/time, range, checkbox/radio, file)
   adopt dark via color-scheme; set the caret explicitly for all inputs too. */
html[data-theme=dark] input,
html[data-theme=dark] textarea,
html[data-theme=dark] [contenteditable] {
  caret-color: var(--cbm-ink);
}
/* Skeleton loaders — Framework7's --skeleton-color defaults to a light #ccc that
   GLOWS on dark. Step it to a warm-dark surface so placeholders read as quiet
   raised blocks, not bright bars. (Category 5: loading state.) */
html[data-theme=dark] {
  --skeleton-color: #322c26;
  --skeleton-icon-color: rgba(255, 255, 255, 0.16);
  --f7-skeleton-color: #322c26;
}
/* Self-contained light-tint status pills (Tailwind-ish *-50 bg + dark text) stay
   legible on dark but read as bright islands. Re-tint to a translucent
   lightened-semantic chip (dark-aware) per the guideline. (Categories 2 + 9.) */
html[data-theme=dark] .pos-badge-active {
  background: rgba(74, 222, 128, 0.16);
  color: var(--cbm-success);
}
html[data-theme=dark] .pos-badge-draft {
  background: rgba(251, 191, 36, 0.16);
  color: var(--cbm-warning);
}
/* Light-assuming images (Category 3). The login wordmark is a monochrome BLACK
   PNG on transparent → invisible on dark; invert it to bone. Company logos
   (about / invoice / estimate) are user-supplied and may be dark-on-transparent
   → give them a small white backing so any logo stays visible (a safe scrim for
   unknown art). */
html[data-theme=dark] .brand-logo {
  filter: brightness(0) invert(0.96);
}
html[data-theme=dark] .login-screen-logo,
html[data-theme=dark] .about-icon {
  background: #fff;
  border-radius: var(--cbm-radius-md, 8px);
  padding: 4px;
  box-sizing: content-box;
}
/* Core glass — add the prefers-reduced-transparency fallback the guideline
   requires (the app only had @supports-not). Solid warm-dark surface, no blur. */
@media (prefers-reduced-transparency: reduce) {
  html[data-theme=dark] .navbar .navbar-bg,
  html[data-theme=dark] .subnavbar,
  html[data-theme=dark] .subnavbar .subnavbar-bg,
  html[data-theme=dark] .toolbar,
  html[data-theme=dark] .cbm-bottom-nav,
  html[data-theme=dark] .ds-bottom,
  html[data-theme=dark] .sheet-modal,
  html[data-theme=dark] .dialog,
  html[data-theme=dark] .preloader-modal {
    background-color: var(--cbm-canvas-soft) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}
/* ============================================================================
   LIGHTWEIGHT PROFILE — for EVERY device (no lite/RAM split any more).
   backdrop-filter glass over scrolling content is the single biggest scroll-jank
   source on weak GPUs, and the always-on idle animations keep the compositor busy.
   So the whole app renders with FLAT brand surfaces (no blur) and NO idle
   animations, unconditionally — there is no `cbm-lite` class and no device check.
   Almost all chrome reads these three glass vars, so overriding them flips the
   whole app in one place; the explicit rules below catch the few literal uses and
   the loops. Loaders/spinners keep their motion — they signal active progress.

   ▸ DECISION KNOB — want the full GLASS look back (still with animations off)?
     Swap the three --cbm-glass-* overrides below back to the glass tokens (a real
     translucent bg + a `blur(...)` value) and delete the `backdrop-filter: none`
     block; leave the `animation: none` block as-is so idle animation stays off.
   ============================================================================ */
/* ▸ DECISION KNOB = GLASS ON (light). The earlier `:root {}` block already carries the
   translucent light glass tokens (rgba(245,245,245,.68/.82) + saturate(180%) blur(22px));
   we no longer override them to opaque here, so the floating chrome (header, navbar,
   sheets, dialogs, pickers, bottom nav) renders as real backdrop-blurred Liquid Glass.
   The always-on `backdrop-filter: none` override that used to flatten everything is
   removed. (Accessibility fallbacks — @supports no-backdrop-filter, reduced-transparency,
   reduced-motion — still apply; idle-animation-off stays below; and the BOTTOM contextual
   chrome over the flat canvas stays solid for scroll perf in the next block.) */
/* Stop the always-running idle animations (AI orbs, pulses). */
html .ahdr-ai-orb,
html .cbm-nav-ai-orb,
html .dash-train-pulse,
html .handson-coach-orb {
  animation: none !important;
}
/* ============================================================================
   Smoothness (all devices): keep the live blur only where content scrolls /
   refracts under it — the top header, the F7 navbar bg, and modal sheets/dialogs.
   The BOTTOM chrome (footer, search bar, deal controls, the Board/List switch)
   sits over the flat off-white canvas: backdrop-filter adds no visible depth
   there but forces a full GPU re-blur on every scroll frame. Make them solid.
   This cuts the simultaneous glass regions per screen from ~4–5 down to ~1–2.
   ============================================================================ */
/* html prefix raises specificity so these win over the later glass rules + the
   per-component styles, even though they also use !important. */
html .app-foot,
html .btm-bar,
html .deal-bottom-controls,
html .cbm-view-seg {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html .app-foot {
  background: var(--cbm-surface, #ffffff) !important;
}
html .btm-bar {
  background: var(--cbm-surface, #ffffff) !important;
}
html .deal-bottom-controls {
  background-color: var(--cbm-canvas-soft, #fafafa) !important;
}
html .cbm-view-seg {
  background: var(--cbm-canvas-soft, #fafafa) !important;
}
/* Skip layout/paint for off-screen list & board cards — a large scroll win on
   long lists (the renderer doesn't lay out or paint what you can't see).
   contain-intrinsic-size reserves an approximate height so the scrollbar stays
   stable, and `auto` remembers each card's real size once it has been rendered. */
.search-list > .card,
.deal-card-unified,
.deal-board-card,
.fin-card,
.note-item,
.today-row {
  content-visibility: auto;
  contain-intrinsic-size: auto 150px;
}
/* Top navbar */
.navbar .navbar-bg {
  background-color: var(--cbm-glass-bg) !important;
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
}
/* Sub-navbar (search row) */
.subnavbar,
.subnavbar .subnavbar-bg {
  background-color: var(--cbm-glass-bg) !important;
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
}
/* Toolbars (incl. detail bottom tabbar) + the custom bottom nav + the custom
   fixed bottom action bars — all floating footers wear the Liquid Glass material. */
.toolbar,
.cbm-bottom-nav,
.ds-bottom,
.deal-bottom-controls {
  background-color: var(--cbm-glass-bg) !important;
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
}
/* Action sheets / bottom sheets */
.sheet-modal {
  background-color: var(--cbm-glass-bg-strong) !important;
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
}
.sheet-modal .toolbar {
  background-color: transparent !important;
}
/* Action-sheet button groups + alert dialogs */
.actions-modal .actions-group .actions-button,
.actions-modal .actions-label {
  background-color: var(--cbm-glass-bg-strong);
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
}
.dialog {
  background-color: var(--cbm-glass-bg-strong) !important;
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
}
/* Popup page navbars inherit the .navbar glass above. Keep content readable. */
.cbm-bottom-nav {
  border-top: 1px solid var(--cbm-hairline);
}
/* Header language selector — globe chip (EN / HI / বাং). Defined globally so both
   the shared app-header and the dashboard's own header pick it up. */
.hdr-lang {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex: 0 0 auto;
  height: 28px;
  padding: 0 8px;
  border-radius: 9999px;
  border: 1px solid var(--cbm-hairline-strong);
  background: var(--cbm-surface);
  color: var(--cbm-ink);
  cursor: pointer;
}
.hdr-lang:active {
  background: var(--cbm-surface-strong);
}
.hdr-lang.open {
  border-color: var(--cbm-ink-pill, #292524);
}
.hdr-lang .icon {
  color: var(--cbm-ink);
}
.hdr-lang-code {
  font-family: var(--cbm-body-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
}
/* ============================================================================
   Premium preloader — every f7.preloader.show() (used across submit/load flows
   and popups) renders the brand's drifting pastel orb on a Liquid-Glass card,
   instead of the generic Framework7 spinner.
   ============================================================================ */
.preloader-modal {
  background: var(--cbm-glass-bg-strong) !important;
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
  border: 1px solid var(--cbm-hairline);
  border-radius: var(--cbm-radius-xl);
  box-shadow: 0 12px 40px rgba(12, 10, 9, 0.14);
  color: var(--cbm-muted);
}
/* Hide the stock spinner and draw the brand orb in its place. */
.preloader-modal .preloader {
  display: none !important;
}
.preloader-modal::before {
  content: "";
  display: block;
  width: 46px;
  height: 46px;
  margin: 0 auto 10px;
  border-radius: 9999px;
  background: conic-gradient(from 210deg, #bfe9db, #bcd6ef, #d6c7ea, #f1d0c4, #bfe9db);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55);
  -webkit-mask: radial-gradient(circle at center, transparent 38%, #000 41%);
  mask: radial-gradient(circle at center, transparent 38%, #000 41%);
  animation: cbmPreloaderSpin 1.1s linear infinite;
}
@keyframes cbmPreloaderSpin {
  to {
    transform: rotate(360deg);
  }
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
  .preloader-modal {
    background: var(--cbm-glass-bg-strong) !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .preloader-modal::before {
    animation: none;
  }
}
/* ============================================================================
   Dropdown / select popups & sheets (Framework7 smart-select) — dressed in the
   brand Liquid-Glass material so every selector matches the design guideline.
   ============================================================================ */
.smart-select-sheet,
.smart-select-popup {
  --f7-sheet-bg-color: transparent;
}
.smart-select-sheet .sheet-modal-inner,
.smart-select-popup .view,
.smart-select-popup .page {
  background: var(--cbm-glass-bg-strong);
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
}
.smart-select-popup .navbar .navbar-bg,
.smart-select-sheet .toolbar {
  background: transparent !important;
}
.smart-select-popup .navbar .title {
  font-family: var(--cbm-display-font);
  font-weight: 300;
  letter-spacing: -0.2px;
}
/* Option rows: brand list, selected row goes ink with the check. */
.smart-select-popup .item-radio.item-radio-checked .item-title,
.smart-select-sheet .item-radio.item-radio-checked .item-title {
  color: var(--cbm-ink);
  font-weight: 600;
}
.smart-select-popup li, .smart-select-sheet li {
  background: transparent;
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
  .smart-select-sheet .sheet-modal-inner,
  .smart-select-popup .view,
  .smart-select-popup .page {
    background: var(--cbm-glass-bg-strong);
  }
}
/* ---- Base ---- */
body,
.page-content {
  background-color: var(--cbm-canvas);
}
body {
  letter-spacing: 0.15px;
  -webkit-font-smoothing: antialiased;
  color: var(--cbm-ink);
}
/* ============================================================================
   Viewport containment — NON-NEGOTIABLE. No screen may ever break the mobile
   width. A single too-wide element (a stat grid, a full-bleed rail, a long
   unbreakable string, an oversized image/table) used to let the WHOLE page
   scroll sideways and shift the layout off-screen. We clamp every layout box to
   the viewport and clip horizontal overflow at the page level. Content that is
   *meant* to scroll sideways (the deal board, the dashboard rails, chip rows,
   tables) lives in its own nested container with its own `overflow-x: auto`, so
   it keeps scrolling internally — only the page itself is pinned to the screen.
   ============================================================================ */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}
/* ── Kill the Android WebView orange tap/focus ring ──────────────────────────────
   The native focus outline is a hard amber RECTANGLE that ignores border-radius and
   wrecks the premium look the instant anything is tapped. Tap feedback is conveyed by
   each element's own :active state + the brand surfaces, so suppress the OS ring (and
   the tap-highlight flash) everywhere. Form inputs still show focus via their
   border-color, so legibility is unaffected. */
* {
  -webkit-tap-highlight-color: transparent;
}
:focus,
:focus-visible,
a:focus, button:focus, [tabindex]:focus, [role=button]:focus,
.card:focus, .mc-rcard:focus, .swiper-slide:focus {
  outline: none !important;
}
.framework7-root,
.views,
.view,
.page {
  max-width: 100%;
  overflow-x: hidden;
}
/* The page-content is the vertical scroller — keep Y scrolling, kill the
   sideways page drift that made screens "break" the mobile width. */
.page-content {
  overflow-x: hidden;
  box-sizing: border-box;
}
/* Media / wide blocks never push the layout past the screen. */
.page-content img,
.page-content video,
.page-content table,
.page-content pre,
.page-content canvas,
.page-content iframe {
  max-width: 100%;
}
/* Flex/grid children collapse to their track instead of forcing it wider
   (the classic min-content overflow that long titles/emails/ids cause). */
.item-inner,
.item-title,
.item-subtitle,
.item-text,
.item-after,
.block,
.card-content {
  min-width: 0;
}
/* ---- Display typography (editorial serif at light weight) ---- */
.block-title,
.block-title-medium,
.block-title-large,
.login-screen-title,
.brand-name {
  font-family: var(--cbm-display-font) !important;
  font-weight: 400 !important;
  letter-spacing: -0.3px;
  color: var(--cbm-ink) !important;
  text-transform: none;
}
.block-title-large {
  letter-spacing: -0.6px;
}
.brand-name {
  font-size: 52px;
  line-height: 1.05;
}
/* Navbar / toolbar titles run Inter (title weight) */
.navbar .title,
.navbar-large .title-large-text {
  font-family: var(--cbm-body-font);
  font-weight: 600;
  letter-spacing: 0;
}
/* ---- Cards: rounded-xl, hairline + single soft shadow ---- */
.card {
  border-radius: var(--cbm-radius-xl);
  box-shadow: var(--cbm-shadow-soft);
  border: 1px solid var(--cbm-hairline);
  overflow: hidden;
}
.card .card-content-padding {
  color: var(--cbm-body);
}
/* Tactile press feedback on tappable list cards (every .search-list card opens a detail). */
.search-list .card {
  transition: transform 120ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 120ms cubic-bezier(0.4, 0, 0.2, 1);
}
.search-list .card:active {
  transform: scale(0.985);
  box-shadow: var(--cbm-shadow-soft), 0 0 0 1px var(--cbm-hairline-strong) inset;
}
@media (prefers-reduced-motion: reduce) {
  .search-list .card {
    transition: none;
  }
  .search-list .card:active {
    transform: none;
  }
}
/* Inset lists rounded */
.list.inset,
.list.inset-ios,
.list.inset-md,
.list.medium-inset {
  border-radius: var(--cbm-radius-xl);
}
/* ---- Buttons → pill geometry, ink primary ---- */
.button {
  border-radius: 9999px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}
/* Affirmative fill buttons → ink pill; destructive stays red; reset stays neutral */
.button-fill:not(.color-red):not(.color-gray),
.button-fill-ios:not(.color-red):not(.color-gray),
.button-fill-md:not(.color-red):not(.color-gray) {
  background-color: var(--cbm-ink-pill);
  color: var(--cbm-on-primary);
}
.button-fill:not(.color-red):not(.color-gray):active {
  background-color: var(--cbm-ink-pill-active);
}
.button-fill.color-red {
  background-color: var(--cbm-error);
  color: var(--cbm-on-primary);
}
.button-fill.color-gray {
  background-color: var(--cbm-surface-strong);
  color: var(--cbm-ink);
}
/* Single CTA colour: remap the app's affirmative button colours to ink.
   Destructive stays error-red; success text stays green where used as status. */
.color-blue,
.color-info,
.color-green,
.color-orange,
.color-teal,
.color-black {
  --f7-theme-color: var(--cbm-ink-pill);
  --f7-theme-color-rgb: 41, 37, 37;
  --f7-theme-color-shade: var(--cbm-ink-pill-active);
  --f7-theme-color-tint: #3f3a37;
}
.color-red {
  --f7-theme-color: var(--cbm-error);
  --f7-theme-color-rgb: 220, 38, 38;
}
.color-gray {
  --f7-theme-color: var(--cbm-surface-strong);
  --f7-theme-color-rgb: 240, 239, 237;
}
.button-fill.color-gray {
  color: var(--cbm-ink);
}
/* Outline buttons = transparent ink pill */
.button-outline {
  border-color: var(--cbm-hairline-strong);
  color: var(--cbm-ink);
}
/* ---- Badges → caption-uppercase pill, surface-strong (stage/label badges keep inline colours) ---- */
.badge {
  border-radius: 9999px;
  background-color: var(--cbm-surface-strong);
  color: var(--cbm-ink);
  font-family: var(--cbm-body-font);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 9px;
  height: auto;
  line-height: 1.3;
}
/* Down-arrow inside a changeable stage/status badge */
.deal-stage-badge .badge-chevron,
.task-status-badge .badge-chevron {
  margin-left: 3px;
  margin-right: -1px;
  vertical-align: middle;
  opacity: 0.85;
}
/* ---- Premium task card meta ---- */
.task-heading {
  font-weight: 600;
  font-size: 15px;
  color: var(--cbm-ink);
  line-height: 1.3;
}
.task-code {
  font-size: 12px;
  font-weight: 600;
  color: var(--cbm-muted);
  background-color: var(--cbm-surface-strong);
  border-radius: 9999px;
  padding: 2px 9px;
  white-space: nowrap;
}
.task-project {
  color: var(--cbm-body);
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.task-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.task-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 24px;
  padding: 0 9px;
  border-radius: 9999px;
  background-color: var(--cbm-surface-strong);
  color: var(--cbm-ink);
  font-size: 12px;
  font-weight: 500;
}
.task-chip i {
  opacity: 0.85;
}
.task-chip.prio-high i {
  color: var(--cbm-error);
  opacity: 1;
}
.task-chip.prio-medium i {
  color: #c2810c;
  opacity: 1;
}
.task-chip.prio-low i {
  color: var(--cbm-success);
  opacity: 1;
}
.task-subprogress .task-progress {
  width: 34px;
  height: 4px;
  border-radius: 9999px;
  background-color: var(--cbm-hairline-strong);
  overflow: hidden;
  margin-left: 2px;
}
.task-subprogress .task-progress-fill {
  display: block;
  height: 100%;
  background-color: var(--cbm-ink);
  border-radius: 9999px;
}
.task-assignees {
  display: flex;
  gap: 4px;
  margin-top: 10px;
}
.task-assignees .user-img {
  border: 2px solid var(--cbm-surface);
  margin-left: -6px;
}
.task-assignees .user-img:first-child {
  margin-left: 0;
}
.task-assignees {
  cursor: pointer;
  align-items: center;
}
.assignee-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 26px;
  padding: 0 6px;
  margin-left: -6px;
  border-radius: 9999px;
  border: 2px solid var(--cbm-surface);
  background: var(--cbm-ink-pill, #292524);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}
.assignees-list .user-img {
  border-radius: 9999px;
}
.deal-agent {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}
.deal-agent .user-img {
  border-radius: 9999px;
}
/* ---- Card date chips: distinct due-date (red) vs next follow-up (green, tappable) ---- */
.date-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.1px;
}
/* Subtle pipeline eyebrow shown wherever a deal's stage appears — a tiny muted
   dot + uppercase pipeline name, generous letter-spacing for a premium, airy feel. */
.deal-pipeline-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--cbm-body-font);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--cbm-muted-soft, #b3afaa);
  line-height: 1.2;
}
.deal-pipeline-tag::before {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 9999px;
  background: var(--cbm-hairline-strong, #d6d3d1);
  flex: 0 0 auto;
}
/* Deal due / close date — red icon so it reads as a hard deadline */
.date-chip.due {
  color: var(--cbm-ink);
}
.date-chip.due i {
  color: var(--cbm-error);
}
/* Next follow-up — distinct green bell, sits in a soft pill, taps through to details */
.date-chip.followup {
  cursor: pointer;
  padding: 5px 10px;
  border-radius: 9999px;
  background: rgba(22, 163, 74, 0.08);
  border: 1px solid rgba(22, 163, 74, 0.22);
  color: var(--cbm-success);
}
.date-chip.followup i {
  color: var(--cbm-success);
}
.date-chip.followup .fu-go {
  color: var(--cbm-success);
  opacity: 0.7;
  margin-left: 1px;
}
.date-chip.followup.done {
  background: var(--cbm-surface-strong);
  border-color: var(--cbm-hairline);
  color: var(--cbm-muted);
}
.date-chip.followup.done i,
.date-chip.followup.done .fu-go {
  color: var(--cbm-muted);
}
/* ---- Aggregate Deal Notes / Followups screens ---- */
.note-preview {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
  padding: 10px 12px;
  border-radius: var(--cbm-radius-md);
  background: var(--cbm-surface-strong);
  border: 1px solid var(--cbm-hairline);
  color: var(--cbm-body);
  font-size: 14px;
  line-height: 1.45;
  letter-spacing: 0.1px;
}
.note-preview > i {
  color: var(--cbm-muted);
  margin-top: 2px;
  flex: 0 0 auto;
}
.note-preview-body {
  min-width: 0;
  flex: 1;
}
.note-preview-title {
  display: block;
  color: var(--cbm-ink);
  font-weight: 600;
  margin-bottom: 2px;
}
.note-preview-text {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.note-count {
  flex: 0 0 auto;
  align-self: flex-start;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 9999px;
  background: var(--cbm-ink-pill);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  line-height: 20px;
  text-align: center;
}
.note-empty {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  color: var(--cbm-muted-soft);
  font-size: 13px;
  letter-spacing: 0.1px;
}
.deal-card-actions .qa-complete {
  color: var(--cbm-success);
}
/* "View all N notes" affordance + "+N more" follow-up badge (multi-item cards) */
.note-viewall {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 8px;
  color: var(--cbm-ink);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1px;
}
.note-viewall i {
  color: var(--cbm-muted);
}
.fu-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.fu-next-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--cbm-muted);
  background: var(--cbm-surface-strong);
  padding: 3px 7px;
  border-radius: 9999px;
}
.fu-more-badge {
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  color: var(--cbm-success);
  background: rgba(22, 163, 74, 0.08);
  border: 1px solid rgba(22, 163, 74, 0.22);
  padding: 3px 9px;
  border-radius: 9999px;
}
/* ---- Notes popup: per-note cards (multiple notes) ---- */
.note-list-wrap {
  padding: 16px;
}
.note-item {
  background: var(--cbm-surface);
  border: 1px solid var(--cbm-hairline);
  border-radius: var(--cbm-radius-xl);
  box-shadow: var(--cbm-shadow-soft);
  padding: 14px 16px;
  margin-bottom: 12px;
}
.note-item-head {
  display: flex;
  align-items: center;
  gap: 8px;
}
.note-index {
  flex: 0 0 auto;
  min-width: 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  border-radius: 9999px;
  background: var(--cbm-surface-strong);
  color: var(--cbm-muted);
  font-size: 11px;
  font-weight: 700;
}
.note-item-title {
  flex: 1;
  min-width: 0;
  color: var(--cbm-ink);
  font-size: 16px;
  font-weight: 600;
}
.note-edit {
  color: var(--cbm-muted);
  padding: 4px;
  flex: 0 0 auto;
}
.fu-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.note-item-untitled {
  color: var(--cbm-muted);
  font-weight: 500;
}
.note-item-body {
  margin-top: 8px;
  color: var(--cbm-body);
  font-size: 15px;
  line-height: 1.55;
  letter-spacing: 0.15px;
  white-space: pre-wrap;
}
.note-item-body.clamped {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.note-more {
  display: inline-block;
  margin-top: 6px;
  color: var(--cbm-ink);
  font-size: 13px;
  font-weight: 600;
}
/* ---- Shared editorial popup header (notes/files list popups) ----
   Matches the create form's dn-head: gradient orb + uppercase eyebrow + EB Garamond
   display title + a text Close. Replaces the plain f7-navbar on list popups so they
   follow the crudoimage guideline. Token-driven → dark-safe. */
.cbm-pop-page {
  --f7-page-bg-color: var(--cbm-canvas, #f5f5f5);
}
.cbm-pop-page .page-content {
  background: var(--cbm-canvas, #f5f5f5);
}
.cbm-pop-head {
  position: relative;
  padding: 22px 18px 6px;
  overflow: visible;
}
.cbm-pop-orb {
  position: absolute;
  top: -46px;
  right: -32px;
  width: 158px;
  height: 158px;
  border-radius: 9999px;
  opacity: 0.5;
  pointer-events: none;
  filter: blur(8px);
  z-index: 0;
  background: radial-gradient(circle at center, var(--cbm-gradient-mint, #a7e5d3) 0%, transparent 70%);
}
.cbm-pop-orb.cbm-pop-orb-sky {
  background: radial-gradient(circle at center, var(--cbm-gradient-sky, #a8c8e8) 0%, transparent 70%);
}
.cbm-pop-eyebrow {
  position: relative;
  font-family: var(--cbm-body-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.96px;
  text-transform: uppercase;
  color: var(--cbm-muted, #777169);
  margin-bottom: 4px;
}
.cbm-pop-head-row {
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.cbm-pop-title {
  font-family: var(--cbm-display-font);
  font-weight: 300;
  font-size: 26px;
  line-height: 1.13;
  color: var(--cbm-ink, #0c0a09);
  margin: 0;
}
.cbm-pop-close {
  flex: 0 0 auto;
  font-family: var(--cbm-body-font);
  font-size: 15px;
  font-weight: 500;
  color: var(--cbm-ink, #0c0a09);
}
/* ---- File list popup: brand row cards ---- */
.file-list-wrap {
  padding: 12px 16px 24px;
}
.file-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--cbm-surface);
  border: 1px solid var(--cbm-hairline);
  border-radius: var(--cbm-radius-xl);
  box-shadow: var(--cbm-shadow-soft);
  padding: 12px 14px;
  margin-bottom: 10px;
}
.file-row-ic {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--cbm-surface-strong);
  color: var(--cbm-ink);
}
.file-row-main {
  flex: 1;
  min-width: 0;
}
.file-row-name {
  color: var(--cbm-ink);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  word-break: break-word;
}
.file-row-meta {
  color: var(--cbm-muted);
  font-size: 12.5px;
  margin-top: 2px;
}
.file-row-actions {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.file-row-act {
  color: var(--cbm-muted);
  padding: 6px;
  display: inline-flex;
}
.file-row-act.file-row-del {
  color: var(--cbm-error, #dc2626);
}
.cbm-pop-empty {
  text-align: center;
  color: var(--cbm-muted);
  padding: 28px 16px;
  font-size: 14px;
}
/* ---- Follow-up popup: summary bar + section heads (multiple follow-ups) ---- */
.fu-summary {
  display: flex;
  gap: 8px;
  padding: 12px 16px 0;
}
.fu-summary-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.3px;
  padding: 5px 11px;
  border-radius: 9999px;
}
.fu-summary-pill .fu-dot {
  width: 7px;
  height: 7px;
  border-radius: 9999px;
  background: currentColor;
}
.fu-summary-pill.pending {
  background: rgba(217, 119, 6, 0.12);
  color: #b45309;
}
.fu-summary-pill.done {
  background: rgba(22, 163, 74, 0.12);
  color: var(--cbm-success);
}
.fu-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 4px 2px 10px;
  font-family: var(--cbm-body-font);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--cbm-muted);
}
.fu-section-count {
  min-width: 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  border-radius: 9999px;
  background: var(--cbm-surface-strong);
  color: var(--cbm-muted);
  font-size: 11px;
}
/* Sort chip — neutral (not a value filter), with a sort glyph */
.deal-filter-bar .filter-chip.sort-chip {
  background: var(--cbm-surface);
  color: var(--cbm-ink);
  border-color: var(--cbm-hairline-strong);
}
.deal-filter-bar .filter-chip.sort-chip i {
  opacity: 1;
  color: var(--cbm-muted);
}
/* ---- Follow-up detail popup (web Deal V2 design): status · date · remark · reminder · mark complete ---- */
.fu-wrap {
  padding: 16px;
}
.fu-card {
  background: var(--cbm-surface);
  border: 1px solid var(--cbm-hairline);
  border-radius: var(--cbm-radius-xl);
  box-shadow: var(--cbm-shadow-soft);
  padding: 16px;
  margin-bottom: 14px;
}
.fu-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.fu-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 9999px;
}
.fu-status .fu-dot {
  width: 7px;
  height: 7px;
  border-radius: 9999px;
  background: currentColor;
}
.fu-status.done {
  background: rgba(22, 163, 74, 0.12);
  color: var(--cbm-success);
}
.fu-status.pending {
  background: rgba(217, 119, 6, 0.12);
  color: #b45309;
}
.fu-del {
  color: var(--cbm-muted);
  padding: 4px;
}
.fu-when {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 12px;
  font-family: var(--cbm-body-font);
  font-size: 16px;
  font-weight: 600;
  color: var(--cbm-ink);
}
.fu-when i {
  color: var(--cbm-success);
}
.fu-remark {
  margin: 8px 0 0;
  color: var(--cbm-body);
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.15px;
}
.fu-remark-empty {
  color: var(--cbm-muted-soft);
  font-style: italic;
}
.fu-remind {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  font-size: 13px;
  color: var(--cbm-muted);
}
.fu-toggle {
  margin-top: 14px;
  height: 44px;
  border-radius: 9999px;
  background: var(--cbm-ink-pill);
  color: var(--cbm-on-primary);
  font-weight: 500;
  letter-spacing: 0.15px;
}
.fu-toggle i {
  margin-right: 6px;
}
.fu-toggle.is-done {
  background: transparent;
  color: var(--cbm-ink);
  border: 1px solid var(--cbm-hairline-strong);
}
/* Count badge on action-row icons */
.deal-card-actions .qa-btn .badge {
  position: absolute;
  top: -6px;
  right: -6px;
  font-size: 9px;
  min-width: 14px;
  height: 14px;
  line-height: 14px;
  padding: 0 3px;
  background-color: var(--cbm-ink-pill);
  color: var(--cbm-on-primary);
}
.deal-card-actions .qa-btn {
  position: relative;
}
/* ---- Links / accents in ink ---- */
.text-color-blue {
  color: var(--cbm-ink) !important;
}
.text-color-green {
  color: var(--cbm-success) !important;
}
.text-color-red {
  color: var(--cbm-error) !important;
}
/* ---- Neutralise legacy saturated decorations to match the editorial palette ---- */
.bg-success-gradient,
.dashboard-widget-icon {
  background: var(--cbm-ink-pill) !important;
  color: var(--cbm-on-primary) !important;
}
.dashboard-card .card-header.bg-color-orange,
.card-header.bg-color-orange {
  background: var(--cbm-ink-pill) !important;
  color: var(--cbm-on-primary) !important;
}
/* ---- Bottom tab bar (P1 — top-level navigation) ---- */
.cbm-bottom-nav {
  --f7-tabbar-link-active-color: var(--cbm-ink);
  --f7-tabbar-link-inactive-color: var(--cbm-muted-soft);
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  background-color: var(--cbm-surface);
  border-top: 1px solid var(--cbm-hairline);
  height: calc(56px + var(--f7-safe-area-bottom));
  padding-bottom: var(--f7-safe-area-bottom);
}
.cbm-bottom-nav-spacer {
  height: calc(56px + var(--f7-safe-area-bottom));
  width: 100%;
}
.cbm-bottom-nav .tabbar-label {
  font-family: var(--cbm-body-font);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1px;
  margin-top: 2px;
}
.cbm-bottom-nav .link.tab-link-active {
  color: var(--cbm-ink);
}
.cbm-bottom-nav .link.tab-link-active i {
  transform: translateY(-1px);
}
/* The bar carries up to ~8 destinations (mode-dependent: Back, Home, Tasks,
   Deals, AI, Messages, Search, More). Rather than crushing them below a usable
   tap target, let the bar scroll horizontally. Each item keeps a comfortable
   min width and grows to fill the bar when there's spare room (few tabs), then
   overflows into a smooth horizontal scroll when there are too many to fit. */
.cbm-bottom-nav .toolbar-inner {
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.cbm-bottom-nav .toolbar-inner::-webkit-scrollbar {
  display: none;
}
.cbm-bottom-nav .toolbar-inner > .link {
  /* Explicit 54px basis (not `auto`, which would resolve to the link's full
     width and blow each tab out to the viewport). Grow to fill the bar when
     there's room; never shrink below the tap target, so a crowded bar overflows
     into the horizontal scroll above instead of crushing the icons. */
  flex: 1 0 54px;
  min-width: 54px;
}
/* ============================================================================
   Unified list-page bottom action bar — Back · Search · Home, one glass strip
   pinned to the very bottom. These rules used to live only inside deal/index.vue
   and silently applied app-wide once that page loaded; defined here they are
   always present, so every list page (tasks, deals, attendance, workload …) is
   styled regardless of which page-level stylesheet happened to load first.
   ============================================================================ */
.deal-bottom-controls {
  position: fixed;
  left: 0;
  right: 0;
  z-index: 999;
  background-color: var(--cbm-canvas-soft);
  border-top: 1px solid var(--cbm-hairline);
}
/* No tab bar beneath → pin to the very bottom (the only state now that the old
   contextual footer / 8-icon bar are gone from list pages). */
.deal-bottom-controls.db-no-tabbar {
  bottom: 0;
  padding-bottom: var(--f7-safe-area-bottom, 0px);
}
/* The shared filter bar is reused inside the control bar — drop its sticky/top
   behaviour and glass so it reads as a plain row above the search line. */
.deal-bottom-controls .deal-filter-bar {
  position: static;
  top: auto;
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-bottom: 1px solid var(--cbm-hairline);
  padding: 10px 16px;
}
.deal-bottom-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px calc(10px + var(--f7-safe-area-bottom, 0px));
}
.deal-bottom-controls.db-no-tabbar .deal-bottom-row {
  padding-bottom: 10px;
}
/* Round Back / Home — solid surface controls (no glass-on-glass), 44px target. */
.db-back,
.db-apps,
.db-home {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--cbm-hairline-strong);
  border-radius: 9999px;
  color: var(--cbm-ink);
  background: var(--cbm-surface);
  transition: background 180ms cubic-bezier(0.4, 0, 0.2, 1), transform 120ms cubic-bezier(0.4, 0, 0.2, 1);
}
.db-back:active,
.db-apps:active,
.db-home:active {
  background: var(--cbm-surface-strong);
  transform: scale(0.96);
}
.db-back i.f7-icons,
.db-apps i.f7-icons,
.db-home i.f7-icons {
  font-size: 20px;
}
/* Brand ink FAB — replaces F7's default blue. Warm near-black pill + white glyph (light);
   the --cbm-* tokens auto-flip on dark (bone pill + ink glyph). Used by the deal notes /
   files add-FABs so the quick-add controls match the crudoimage guideline, not a stock blue. */
.cbm-fab-ink > a {
  background: var(--cbm-ink-pill, #292524);
  color: var(--cbm-on-primary, #fff);
}
.cbm-fab-ink > a i.icon,
.cbm-fab-ink > a i.f7-icons {
  color: var(--cbm-on-primary, #fff);
}
.cbm-fab-ink .fab-buttons a {
  background: var(--cbm-ink-pill, #292524);
  color: var(--cbm-on-primary, #fff);
}
.cbm-fab-ink .fab-buttons a i.icon,
.cbm-fab-ink .fab-buttons a i.f7-icons {
  color: var(--cbm-on-primary, #fff);
}
/* Search field fills the middle. */
.db-search {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 14px;
  background: var(--cbm-surface);
  border: 1px solid var(--cbm-hairline-strong);
  border-radius: 9999px;
}
.db-search-icon {
  color: var(--cbm-muted-soft);
  font-size: 18px;
}
.db-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-family: var(--cbm-body-font, inherit);
  font-size: 15px;
  letter-spacing: 0.15px;
  color: var(--cbm-ink);
  -webkit-appearance: none;
}
.db-search input::placeholder {
  color: var(--cbm-muted-soft);
}
/* A short status hint (shift range, pending count) where a page has no search. */
.deal-bottom-row .shift-hint {
  flex: 1;
  min-width: 0;
  font-family: var(--cbm-body-font);
  font-size: 14px;
  color: var(--cbm-muted);
  text-align: center;
}
.deal-bottom-spacer {
  height: 118px;
}
/* Fills the middle of the row when a page has no search field, so Back and Home
   stay pinned to opposite edges. */
.deal-bottom-row .db-spacer {
  flex: 1;
  min-width: 0;
}
@media (prefers-reduced-motion: reduce) {
  .db-back, .db-home {
    transition: none;
  }
}
/* Lift FABs clear of the bottom tab bar (list pages all carry the bar) */
/* ============================================================================
   View switch (Board | List) — a brand segmented control pinned at the top of
   the Tasks / Deals screens. Kanban board is the default view; the segment lets
   you flip to the list. Sits on a thin glass strip so content scrolls under it.
   ============================================================================ */
.cbm-view-seg {
  position: sticky;
  top: 0;
  z-index: 60;
  padding: 10px 16px;
  background: var(--cbm-glass-bg);
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
  border-bottom: 1px solid var(--cbm-hairline);
}
.cbm-view-seg .cvs-track {
  display: flex;
  gap: 4px;
  padding: 4px;
  background: var(--cbm-surface-strong, #f0efed);
  border-radius: 9999px;
}
.cbm-view-seg .cvs-seg {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 36px;
  border: 0;
  border-radius: 9999px;
  background: transparent;
  color: var(--cbm-muted, #777169);
  cursor: pointer;
  font-family: var(--cbm-body-font);
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.2px;
  transition: background 200ms cubic-bezier(0.4, 0, 0.2, 1), color 200ms cubic-bezier(0.4, 0, 0.2, 1);
}
.cbm-view-seg .cvs-seg.on {
  background: var(--cbm-surface, #fff);
  color: var(--cbm-ink, #0c0a09);
  box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
}
.cbm-view-seg .cvs-seg .icon {
  color: inherit;
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
  .cbm-view-seg {
    background: var(--cbm-glass-bg-strong);
  }
}
@media (prefers-reduced-motion: reduce) {
  .cbm-view-seg .cvs-seg {
    transition: none;
  }
}
/* Lift FABs clear of the bottom tab bar (list pages all carry the bar) */
.fab-right-bottom {
  bottom: calc(72px + var(--f7-safe-area-bottom));
}
/* ---- Always-visible deal filter bar (header) ---- */
.deal-filter-bar {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 10px 16px;
  background-color: var(--cbm-glass-bg);
  -webkit-backdrop-filter: var(--cbm-glass-blur);
  backdrop-filter: var(--cbm-glass-blur);
  border-bottom: 1px solid var(--cbm-hairline);
  position: sticky;
  top: 0;
  z-index: 50;
}
.deal-filter-bar::-webkit-scrollbar {
  display: none;
}
.deal-filter-bar .filter-chip {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--cbm-hairline-strong);
  border-radius: 9999px;
  background-color: var(--cbm-surface);
  color: var(--cbm-ink);
  font-size: 13px;
  font-weight: 500;
}
.deal-filter-bar .filter-chip.active {
  background-color: var(--cbm-ink-pill);
  border-color: var(--cbm-ink-pill);
  color: var(--cbm-on-primary);
}
.deal-filter-bar .filter-chip select {
  -webkit-appearance: none;
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 13px;
  font-weight: 500;
  padding: 0 2px;
  max-width: 130px;
  outline: none;
}
.deal-filter-bar .filter-chip.chip-disabled {
  opacity: 0.45;
}
.deal-filter-bar .filter-chip .chip-text {
  max-width: 120px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.deal-filter-bar .filter-chip i {
  pointer-events: none;
  opacity: 0.7;
}
/* Searchable filter dropdown (ElevenLabs editorial) */
.filter-dropdown-popover {
  width: 250px;
  --f7-popover-bg-color: var(--cbm-surface);
}
.filter-dropdown-popover .popover-inner {
  background-color: var(--cbm-surface);
  border-radius: var(--cbm-radius-lg);
}
.filter-dropdown-popover .fd-search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--cbm-hairline);
}
.filter-dropdown-popover .fd-search i {
  color: var(--cbm-muted);
}
.filter-dropdown-popover .fd-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-family: var(--cbm-body-font);
  font-size: 14px;
  letter-spacing: 0.15px;
  color: var(--cbm-ink);
}
.filter-dropdown-popover .fd-list {
  max-height: 264px;
  overflow-y: auto;
  padding: 6px;
}
.filter-dropdown-popover .fd-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 10px;
  border-radius: var(--cbm-radius-md);
  font-family: var(--cbm-body-font);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.15px;
  color: var(--cbm-ink);
}
.filter-dropdown-popover .fd-option:active,
.filter-dropdown-popover .fd-option.selected {
  background-color: var(--cbm-surface-strong);
}
.filter-dropdown-popover .fd-option i {
  color: var(--cbm-ink);
  flex: 0 0 auto;
}
/* ============================================================================
   Sheets & popups — editorial reskin (stages, status, assignees, agent,
   action sheets, create forms, files, preview). Glass chrome is applied
   above; this styles the inner structure to the ElevenLabs guideline:
   soft corners, hairline header, Inter titles, ink-pill CTAs (no saturated
   colour), clean rows.
   ============================================================================ */
/* Bottom sheets: soft top corners (rounded-xxl) + hairline header */
.sheet-modal.sheet-modal-bottom,
.sheet-modal {
  border-radius: var(--cbm-radius-xxl) var(--cbm-radius-xxl) 0 0 !important;
  border-top: 1px solid var(--cbm-hairline);
  overflow: hidden;
}
.sheet-modal .toolbar {
  position: relative;
  height: 56px;
  border-bottom: 1px solid var(--cbm-hairline);
}
/* Grab handle */
.sheet-modal .toolbar::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 50%;
  width: 36px;
  height: 4px;
  transform: translateX(-50%);
  border-radius: 9999px;
  background: var(--cbm-hairline-strong);
}
.sheet-modal .toolbar .left {
  font-family: var(--cbm-body-font);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1px;
  color: var(--cbm-ink);
  padding-top: 6px;
}
.sheet-modal .toolbar .right .link {
  color: var(--cbm-ink);
  font-weight: 500;
  padding-top: 6px;
}
/* Sheet list rows — transparent over the glass, comfortable rhythm */
.sheet-modal .list,
.sheet-modal .list ul {
  background: transparent;
  --f7-list-bg-color: transparent;
}
.sheet-modal .list .item-inner {
  padding-top: 13px;
  padding-bottom: 13px;
}
.sheet-modal .list .item-title {
  font-family: var(--cbm-body-font);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15px;
  color: var(--cbm-ink);
}
.sheet-modal .list .item-after {
  color: var(--cbm-muted);
  font-weight: 500;
}
.sheet-modal .list .item-link:active {
  background: var(--cbm-surface-strong);
}
/* Stage / status colour chips → tidy round dots */
.sheet-modal .list .badge {
  min-width: 14px;
  height: 14px;
  border-radius: 9999px;
}
/* ---- Popups: keep the page body on canvas, soft inset forms ---- */
.popup .page,
.popup .page-content {
  background-color: var(--cbm-canvas);
}
.popup .list input,
.popup .list textarea {
  letter-spacing: 0.15px;
}
/* Editorial text-input: white surface, hairline border (rounded-md),
   2px ink border on focus. Scoped to create/edit form popups. */
.popup .list .item-input-wrap {
  background: var(--cbm-surface);
  border: 1px solid var(--cbm-hairline-strong);
  border-radius: var(--cbm-radius-md);
  padding: 10px 14px;
  margin-top: 6px;
}
.popup .list .item-input-wrap::after,
.popup .list .item-input-wrap::before {
  display: none !important;
}
.popup .list .item-input-focused .item-input-wrap,
.popup .list .item-content-focused .item-input-wrap {
  border-color: var(--cbm-ink);
  box-shadow: inset 0 0 0 1px var(--cbm-ink);
}
.popup .list .item-title.item-label,
.popup .list .item-floating-label {
  color: var(--cbm-muted);
  font-family: var(--cbm-body-font);
  font-weight: 500;
  letter-spacing: 0.15px;
}
/* Primary action pill = ink (overrides legacy green / blue fills inside
   create forms — the brand has no saturated CTA colour) */
.popup .button-fill,
.sheet-modal .button-fill {
  background-color: var(--cbm-ink-pill) !important;
  color: var(--cbm-on-primary) !important;
  border-radius: 9999px;
}
.popup .button-fill.active-state,
.popup .button-fill:active,
.sheet-modal .button-fill:active,
.sheet-modal .button-fill.active-state {
  background-color: var(--cbm-ink-pill-active) !important;
}
/* Secondary / cancel = transparent outline pill */
.popup .button.color-gray:not(.button-fill) {
  background: transparent;
  color: var(--cbm-ink);
  border: 1px solid var(--cbm-hairline-strong);
  border-radius: 9999px;
}
/* The brand has no saturated CTA colour — every filled green/blue action
   button becomes the ink pill (covers popups AND full-page create/edit forms). */
.button-fill.color-green,
.button-fill.color-blue {
  background-color: var(--cbm-ink-pill) !important;
  color: var(--cbm-on-primary) !important;
}
.button-fill.color-green.active-state,
.button-fill.color-blue.active-state {
  background-color: var(--cbm-ink-pill-active) !important;
}
/* ============================================================================
   Full-page create / edit forms (.cbm-form) — same editorial text-input system
   as the popups: every field is a white box with a hairline border (rounded-md),
   2px ink ring on focus, muted labels. Applied to New/Edit Task & Deal screens.
   ============================================================================ */
.cbm-form.list ul {
  background: transparent;
}
.cbm-form.list ul::before,
.cbm-form.list ul::after {
  display: none !important;
}
.cbm-form.list > ul > li {
  background: var(--cbm-surface);
  border: 1px solid var(--cbm-hairline-strong);
  border-radius: var(--cbm-radius-md);
  margin-bottom: 10px;
}
.cbm-form.list > ul > li:last-child {
  margin-bottom: 0;
}
/* Remove F7's inner row dividers + input underlines — the per-field border
   carries the structure (these pseudo-elements paint the lavender/grey bars). */
.cbm-form .item-inner::before,
.cbm-form .item-inner::after,
.cbm-form .item-content::before,
.cbm-form .item-content::after,
.cbm-form .item-input-wrap::before,
.cbm-form .item-input-wrap::after,
.cbm-form.list > ul > li::before,
.cbm-form.list > ul > li::after {
  display: none !important;
}
.cbm-form .item-content {
  background: transparent;
  border-radius: var(--cbm-radius-md);
}
/* Inputs sit flush inside the bordered field box */
.cbm-form .item-input-wrap {
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
}
.cbm-form .item-input-wrap::after,
.cbm-form .item-input-wrap::before {
  display: none !important;
}
/* Focus → ink ring on the field box */
.cbm-form.list > ul > li.item-input-focused,
.cbm-form.list > ul > li.item-content-focused,
.cbm-form.list > ul > li:focus-within {
  border-color: var(--cbm-ink);
  box-shadow: inset 0 0 0 1px var(--cbm-ink);
}
.cbm-form .item-label,
.cbm-form .item-floating-label,
.cbm-form .item-title.item-label {
  color: var(--cbm-muted);
  font-family: var(--cbm-body-font);
  font-weight: 500;
  letter-spacing: 0.15px;
}
.cbm-form .item-title {
  color: var(--cbm-ink);
}
/* Brand submit / CTA — every form's submit button is the near-black ink pill,
   never a saturated colour. Overrides any leftover F7 `color="green"`. The pill
   geometry + Inter 500 + ink fill is the brand's single primary action. */
.login-btn.button {
  --f7-theme-color: var(--cbm-ink-pill);
  --f7-theme-color-shade: var(--cbm-ink-pill-active);
  background-color: var(--cbm-ink-pill) !important;
  color: var(--cbm-on-primary) !important;
  border-radius: 9999px !important;
  font-family: var(--cbm-body-font);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  height: 50px;
  line-height: 50px;
}
.login-btn.button.active-state {
  background-color: var(--cbm-ink-pill-active) !important;
}
.login-btn.button.disabled,
.login-btn.button[disabled] {
  opacity: 0.4;
}
/* ---- Deal kanban / pipeline board ---- */
/* Kanban tap-arrows (v-kanban-nav) — edge buttons that scroll the column row, so
   the user doesn't have to fight a card-eaten swipe. Used by the deal + task boards. */
.kbn-wrap {
  position: relative;
}
.kbn-arrow {
  position: absolute;
  top: 84px; /* sit over the first row of cards, clear of column headers + the bottom
   filter/search bars (was 46% of a variable-height board → landed on the
   header row and read as "overlapping") */
  z-index: 30;
  width: 42px;
  height: 42px;
  display: none; /* shown (flex) by the directive only when there's room to scroll */
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 9999px;
  /* Solid high-contrast ink pill — opaque (no see-through overlap) and instantly
     readable as a control on both themes (ink-pill flips to bone on dark). */
  border: 0;
  background: var(--cbm-ink-pill, #292524);
  color: var(--cbm-on-primary, #fff);
  box-shadow: 0 6px 18px rgba(12, 10, 9, 0.28);
  cursor: pointer;
}
.kbn-arrow:active {
  background: var(--cbm-ink-pill-active, #0c0a09);
  transform: scale(0.94);
}
.kbn-arrow-left {
  left: 8px;
}
.kbn-arrow-right {
  right: 8px;
}
.deal-board {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 12px 16px 24px;
  align-items: flex-start;
  -webkit-overflow-scrolling: touch;
  /* Keep the horizontal swipe INSIDE the board: don't let reaching either end
     chain the gesture into the page / F7 swipe-back navigation. Gentle column
     snapping makes the board settle on a column instead of sliding loosely. */
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-padding-left: 16px;
}
.deal-board::-webkit-scrollbar {
  display: none;
}
.deal-board-col {
  flex: 0 0 270px;
  max-width: 270px;
  background-color: var(--cbm-surface-strong);
  border: 1px solid var(--cbm-hairline);
  border-radius: var(--cbm-radius-xl);
  padding: 10px;
  scroll-snap-align: start;
}
.deal-board-col-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 2px 6px 10px;
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--cbm-ink);
}
.deal-board-col-head .stage-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: 0 0 auto;
}
.deal-board-col-head .stage-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.deal-board-col-head .stage-count {
  margin-left: auto;
  background-color: var(--cbm-surface);
  border-radius: 9999px;
  padding: 1px 9px;
  font-size: 11px;
  color: var(--cbm-muted);
}
.deal-board-card {
  background-color: var(--cbm-surface);
  border: 1px solid var(--cbm-hairline);
  border-radius: var(--cbm-radius-md);
  box-shadow: var(--cbm-shadow-soft);
  padding: 10px 12px;
  margin-bottom: 8px;
}
.deal-board-card .dbc-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.deal-board-card .dbc-name {
  font-weight: 600;
  font-size: 14px;
  color: var(--cbm-ink);
  line-height: 1.3;
  min-width: 0;
}
.deal-board-card .dbc-code {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.3px;
  color: var(--cbm-muted-soft);
  white-space: nowrap;
}
.deal-board-card .dbc-projrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 7px;
}
.deal-board-card .dbc-project {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  font-size: 12.5px;
  color: var(--cbm-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.deal-board-card .dbc-project .icon {
  color: var(--cbm-muted-soft);
  flex: 0 0 auto;
}
.deal-board-card .dbc-status-link {
  flex: 0 0 auto;
}
.deal-board-card .dbc-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 6px;
  font-size: 12px;
  color: var(--cbm-muted);
}
.deal-board-card .dbc-value {
  color: var(--cbm-success);
  font-weight: 600;
  white-space: nowrap;
}
.deal-board-card .dbc-foot {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--cbm-hairline);
}
.deal-board-card .dbc-act {
  color: var(--cbm-ink);
}
.deal-board-card .dbc-move {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 500;
  color: var(--cbm-ink);
}
.deal-board-card .dbc-empty,
.deal-board-cards .dbc-empty {
  color: var(--cbm-muted-soft);
  text-align: center;
  padding: 8px 0;
}
.deal-board-hint {
  color: var(--cbm-muted);
  padding: 24px 16px;
  text-align: center;
}
/* ---- Deal V2 quick-action row ---- */
.deal-quick-actions {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 4px 16px 14px;
  -webkit-overflow-scrolling: touch;
  /* The card's action row is itself a horizontal scroller nested inside the
     board's horizontal scroller. Contain its overscroll so swiping the actions
     doesn't bleed into the board sliding (or the page swiping) once you hit the
     end of the row. */
  overscroll-behavior-x: contain;
}
.deal-quick-actions::-webkit-scrollbar {
  display: none;
}
.deal-quick-actions .qa-btn,
.ds-quick .qa-btn {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--cbm-radius-md);
  border: 1px solid var(--cbm-hairline-strong);
  background-color: var(--cbm-surface);
  color: var(--cbm-ink);
}
.deal-quick-actions .qa-btn i,
.ds-quick .qa-btn i {
  font-size: 21px;
}
.deal-quick-actions .qa-btn:active,
.ds-quick .qa-btn:active {
  background-color: var(--cbm-surface-strong);
}
.deal-quick-actions .qa-danger,
.ds-quick .qa-danger {
  color: var(--cbm-error);
  border-color: rgba(220, 38, 38, 0.35);
}
.deal-quick-actions .qa-whatsapp,
.ds-quick .qa-whatsapp {
  color: #25d366;
  border-color: rgba(37, 211, 102, 0.4);
}
.deal-quick-actions .qa-disabled,
.ds-quick .qa-disabled {
  opacity: 0.35;
  pointer-events: none;
}
/* ── Stage-move pickers (sheet + action-sheet): keep usable with many stages ──
   Framework7's .sheet-modal is display:block, so we can't flex the sheet to
   constrain its body. Instead the sheet stays content-sized and we cap the LIST
   itself, so the toolbar + search stay pinned on screen and long pipelines
   scroll inside. Shared by deal/show.vue and deal/index.vue stage sheets. */
.stage-actions,
.deal-stage-sheet {
  max-height: 90vh;
}
.stage-pick-search {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 10px 12px 6px;
  padding: 0 12px;
  height: 38px;
  border-radius: 9999px;
  background: var(--cbm-surface-strong, #f0efed);
  color: var(--cbm-muted, #777169);
}
.stage-pick-search input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  outline: none;
  font-family: var(--cbm-body-font);
  font-size: 15px;
  color: var(--cbm-ink, #0c0a09);
}
.stage-pick-clear {
  display: inline-flex;
  color: var(--cbm-muted-soft, #b3afaa);
}
.stage-pick-scroll {
  /* Viewport minus the toolbar (~44px) + search (~54px) + breathing room, so
     Close/search never get pushed off-screen. */
  max-height: calc(82vh - 112px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.stage-pick-empty {
  color: var(--cbm-muted, #777169);
}
/* Self-managing badge picker (deal/badge.vue) uses an action sheet — cap the
   stage list group so its Cancel button stays reachable with 100 stages. */
.stage-actions-list .actions-group:first-child {
  max-height: 62vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
/* Compact variant on list cards */
.deal-card-actions {
  padding: 0;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--cbm-hairline);
  gap: 6px;
}
.deal-card-actions .qa-btn {
  width: 40px;
  height: 40px;
}
/* Keep the compact 40px visual on the card row, but expand the tap target.
   Width caps at 46px so neighbouring hit areas meet the 6px gap without
   overlapping (overlap would cause boundary mis-taps); full 48px vertically. */
.deal-card-actions .qa-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 46px;
  height: 48px;
  transform: translate(-50%, -50%);
}
.deal-card-actions .qa-btn i {
  font-size: 18px;
}
/* ---- Inline activity (P2 — deal/task detail progressive disclosure) ---- */
.activity-head {
  align-items: center;
  padding-right: 16px;
}
.activity-head .block-title {
  margin-bottom: 6px;
}
.activity-link {
  font-family: var(--cbm-body-font);
  font-size: 14px;
  font-weight: 500;
  color: var(--cbm-ink);
}
.activity-card {
  margin-top: 4px;
}
.activity-when {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  color: var(--cbm-ink);
}
.activity-remark,
.note-details {
  color: var(--cbm-body);
  margin: 4px 0 0;
  font-size: 14px;
  line-height: 1.45;
}
.activity-empty {
  color: var(--cbm-muted-soft);
  font-size: 14px;
}
.note-row + .note-row {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--cbm-hairline);
}
.note-title {
  font-weight: 600;
  color: var(--cbm-ink);
}
/* ---- Atmospheric pastel orbs behind the auth screens ---- */
/* Atmospheric pastel orbs — pure decoration, kept soft per the brand system
   (no saturated bands; gentle radial blooms drifting on the off-white canvas). */
.cbm-orbs {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background: radial-gradient(circle at 14% 12%, rgba(167, 229, 211, 0.22), transparent 45%), radial-gradient(circle at 88% 16%, rgba(244, 197, 168, 0.2), transparent 45%), radial-gradient(circle at 82% 88%, rgba(200, 184, 224, 0.2), transparent 48%), radial-gradient(circle at 12% 86%, rgba(168, 200, 232, 0.18), transparent 46%);
  filter: blur(36px);
}
/* Off-white canvas floor across the whole login screen */
.login-screen .page,
.login-screen-page,
.login-screen-content {
  position: relative;
  background-color: var(--cbm-canvas) !important;
}
/* Let the soft orbs cover the full screen instead of a mid-page band */
.login-screen-page .cbm-orbs {
  position: fixed;
}
.brand-name {
  font-weight: 300 !important;
}
/* Login form — brand text-inputs (white surface, hairline border, 8px) + ink pill */
.login-form.list {
  background: transparent;
  --f7-list-bg-color: transparent;
}
.login-form.list ul {
  background: transparent;
}
.login-form.list ul::before,
.login-form.list ul::after {
  display: none;
}
.login-form .item-content {
  padding-left: 0;
}
.login-form li .item-inner {
  background: var(--cbm-surface);
  border: 1px solid var(--cbm-hairline-strong);
  border-radius: 8px; /* rounded.md */
  padding: 8px 14px;
  margin-bottom: 14px;
}
.login-form li .item-inner::before,
.login-form li .item-inner::after {
  display: none;
}
/* Kill the F7 input underline/focus line — the box border is the only outline */
.login-form .item-input-wrap::before,
.login-form .item-input-wrap::after {
  display: none !important;
}
.login-form .item-title.item-label,
.login-form .item-floating-label {
  color: var(--cbm-muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}
.login-form .item-input-wrap input,
.login-form input.input-with-value {
  color: var(--cbm-ink);
  font-family: var(--cbm-body-font);
  font-size: 15px;
  letter-spacing: 0.15px;
}
.login-form .item-input-wrap input::placeholder {
  color: var(--cbm-muted-soft);
}
.login-form .eye-icon {
  color: var(--cbm-muted);
}
/* Primary CTA = near-black ink pill */
.login-form .block-footer .button {
  --f7-button-fill-bg-color: var(--cbm-ink-pill);
  --f7-button-fill-text-color: var(--cbm-on-primary);
  --f7-button-text-color: var(--cbm-on-primary);
  height: 48px;
  border-radius: 9999px;
  font-family: var(--cbm-body-font);
  font-weight: 500;
  letter-spacing: 0.2px;
}
/* Secondary "different domain" = tertiary ink text link (not a coloured button) */
.login-form .block-footer .button.color-black {
  --f7-button-fill-bg-color: transparent;
  --f7-button-text-color: var(--cbm-body);
  background: transparent;
  height: auto;
  font-weight: 400;
  text-transform: none;
}
/* ============================================================================
   App layout helpers (retained)
   ============================================================================ */
/* iOS Cordova Tweak */
.device-cordova.device-ios {
  height: 100vh;
}
#navbar-user .item-media img {
  width: 29px;
  height: 29px;
  border-radius: 50%;
}
.user-img {
  width: 35px;
  height: 35px;
  border-radius: 50%;
}
.change-company-button {
  margin-top: 55px;
  color: var(--cbm-ink);
  font-weight: 600;
  border: 0px none;
  -webkit-text-decoration: underline;
  text-decoration: underline;
  font-size: 12px;
}
.item-media .f7-icons.side-menu-icon {
  font-size: 18px;
}
.navbar-fixed.toolbar-fixed .page-content {
  padding-top: 56px;
}
.android .badge {
  font-size: 13px;
  padding: 2px 6px;
}
.side-menu {
  margin-top: 10px;
}
.navbar-fixed.toolbar-fixed .page-content {
  padding-top: 43px;
}
.navbar-fixed .page > .searchbar ~ .page-content,
.navbar-fixed > .searchbar ~ .page-content,
.navbar-through .page > .searchbar ~ .page-content,
.navbar-through > .searchbar ~ .page-content {
  padding-top: 88px;
}
.navbar-fixed.toolbar-fixed .with-subnavbar .page-content {
  padding-top: 86px;
}
/* Subdomain Input */
#fauxInput {
  display: inline-block;
  text-indent: 10px;
  min-width: 10px;
  outline: none;
  color: #ffffff;
}
.inputWrapper {
  max-width: 250px;
  margin: 10px 0;
  cursor: text;
  border-radius: 5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.domain {
  display: inline-block;
  color: var(--cbm-muted);
}
.fade-enter-active, .fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}
#navbar-user .item-title {
  margin-top: 2px;
}
#navbar-user.list ul {
  background: transparent;
}
.error-block {
  text-align: center;
  color: var(--cbm-error);
}
/*Input field margins left*/
.ios .item-input-outline .item-content, .ios .item-input-outline.item-content {
  margin: unset;
}
.search-list .card {
  margin-left: 0;
  margin-right: 0;
}
form {
  margin: 10px !important;
}
/* Calendar Page */
#calendar,
#calendar-events {
  height: 50%;
  box-sizing: border-box;
}
#calendar .calendar {
  height: 100%;
}
#calendar-events ul {
  height: 100%;
  overflow: auto;
}
#calendar-events .event-color {
  position: absolute;
  left: 0;
  top: 0;
  width: 8px;
  height: 100%;
}
@media (orientation: landscape) {
  #calendar {
    float: left;
  }
  #calendar,
  #calendar-events {
    height: 100%;
  }
  #calendar,
  #calendar-events {
    width: 50%;
  }
  #calendar-events {
    margin-left: 50% !important;
    border-left: 1px solid var(--cbm-hairline);
  }
  .dark #calendar-events {
    border-left-color: #282828;
  }
}
#selected {
  background-color: rgba(0, 0, 0, 0.06);
}
.same-line {
  display: flex;
  justify-content: space-between;
}
.w {
  width: var(--width, 100%);
}
.w-80 {
  width: var(--width-80);
}
.w-70 {
  width: var(--width-70);
}
.w-75 {
  width: var(--width-75);
}
.w-65 {
  width: var(--width-65);
}
.description img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
/* ---- Required-field marker (mandatory fields across all add/edit forms) ---- */
/* Add class `cbm-req` to an f7-list-input or f7-list-item to append a red star
   to its label. Works for both text inputs (.item-label) and smart-selects (.item-title). */
.cbm-req .item-title::after {
  content: " *";
  color: var(--cbm-error);
  font-weight: 700;
}
/* Inline star used inside the dynamic custom-fields renderer. */
.req-star {
  color: var(--cbm-error);
  font-weight: 700;
  margin-left: 2px;
}
/* ---- Admin / Personal view toggle in the dashboard customizers ---- */
.dvw-seg {
  display: flex;
  gap: 4px;
  padding: 4px;
  margin: 6px 0 4px;
  border-radius: 9999px;
  background: var(--cbm-surface-strong, #f0efed);
  border: 1px solid var(--cbm-hairline, #e7e5e4);
}
.dvw-opt {
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 32px;
  padding: 0 10px;
  border: 0;
  border-radius: 9999px;
  background: transparent;
  color: var(--cbm-muted, #777169);
  cursor: pointer;
  font-family: var(--cbm-body-font);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1px;
  transition: background 160ms, color 160ms;
}
.dvw-opt.on {
  background: var(--cbm-ink-pill, #292524);
  color: var(--cbm-on-primary, #fff);
}
@media (prefers-reduced-motion: reduce) {
  .dvw-opt {
    transition: none;
  }
}
/* Per-view identity color — Company = sky, Personal = peach (brand pastel orbs,
   the system's only color). A small dot carries the color so ink text stays
   legible; the same dot is reused on the header chip and the dropdown menu. */
.view-company {
  --dvw-color: var(--cbm-sky, #a8c8e8);
}
.view-personal {
  --dvw-color: var(--cbm-peach, #f4c5a8);
}
.dvw-dot {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background: var(--dvw-color, var(--cbm-muted-soft, #a8a29e));
}
.dvw-opt .dvw-dot {
  width: 7px;
  height: 7px;
}
/* On the dark active pill, ring the dot so a pale pastel still reads. */
.dvw-opt.on .dvw-dot {
  box-shadow: 0 0 0 1.5px rgba(255, 255, 255, 0.55);
}
/* "Select all / Clear" action in the dashboard customizer pickers. */
.dvw-all {
  width: auto;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 2px 4px;
  font-family: var(--cbm-body-font);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2px;
  color: var(--cbm-ink-pill, #292524);
}
.dvw-all:active {
  opacity: 0.55;
}
/* Section header that carries the select-all button on the right. */
.dvw-sec-h-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
/* ════════════════════════════════════════════════════════════════════════════
   SCHEDULING (Calendly-like) — shared primitives. Pure --cbm-* tokens, flat
   surfaces (lite profile), EB Garamond display + Inter body, ink-pill CTA,
   pastel gradient-orb accents. Used by pages/scheduling/* and pages/meet/*.
   ════════════════════════════════════════════════════════════════════════════ */
.sch-page {
  --f7-page-bg-color: var(--cbm-canvas, #f5f5f5);
}
.sch-wrap {
  padding: 0 16px 40px;
  background: var(--cbm-canvas, #f5f5f5);
  min-height: 100%;
}
/* Editorial header band with a drifting orb */
.sch-head {
  position: relative;
  padding: 18px 4px 8px;
  overflow: visible;
}
.sch-orb {
  position: absolute;
  top: -46px;
  right: -30px;
  width: 180px;
  height: 180px;
  border-radius: 9999px;
  opacity: 0.5;
  filter: blur(10px);
  pointer-events: none;
  background: radial-gradient(circle at center, var(--cbm-peach, #f4c5a8) 0%, transparent 70%);
}
.sch-eyebrow {
  position: relative;
  font-family: var(--cbm-body-font);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.96px;
  text-transform: uppercase;
  color: var(--cbm-muted, #777169);
  margin-bottom: 4px;
}
.sch-title {
  position: relative;
  font-family: var(--cbm-display-font);
  font-weight: 300;
  font-size: 27px;
  line-height: 1.13;
  letter-spacing: -0.4px;
  color: var(--cbm-ink, #0c0a09);
  margin: 0 0 6px;
}
.sch-sub {
  position: relative;
  font-family: var(--cbm-body-font);
  font-size: 14px;
  line-height: 1.45;
  color: var(--cbm-muted, #777169);
  margin: 0;
}
.sch-section-h {
  font-family: var(--cbm-display-font);
  font-weight: 300;
  font-size: 20px;
  letter-spacing: -0.2px;
  color: var(--cbm-ink, #0c0a09);
  margin: 22px 2px 10px;
}
/* Cards */
.sch-card {
  position: relative;
  background: var(--cbm-surface, #fff);
  border: 1px solid var(--cbm-hairline, #e7e5e4);
  border-radius: var(--cbm-radius-xl, 16px);
  box-shadow: var(--cbm-shadow-soft, 0 6px 18px rgba(12, 10, 9, 0.06));
  padding: 16px;
  overflow: hidden;
}
.sch-card + .sch-card {
  margin-top: 12px;
}
/* Buttons */
.sch-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: auto;
  height: 46px;
  padding: 0 22px;
  border: 0;
  border-radius: 9999px;
  cursor: pointer;
  background: var(--cbm-ink-pill, #292524);
  color: var(--cbm-on-primary, #fff);
  font-family: var(--cbm-body-font);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.1px;
}
.sch-pill:active {
  background: var(--cbm-ink-pill-active, #0c0a09);
}
.sch-pill[disabled] {
  opacity: 0.45;
  pointer-events: none;
}
.sch-pill-block {
  display: flex;
  width: 100%;
}
.sch-pill-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: auto;
  height: 44px;
  padding: 0 20px;
  border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
  border-radius: 9999px;
  background: transparent;
  color: var(--cbm-ink, #0c0a09);
  font-family: var(--cbm-body-font);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.sch-pill-ghost:active {
  background: var(--cbm-surface-strong, #f0efed);
}
.sch-iconbtn {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
  background: var(--cbm-surface, #fff);
  color: var(--cbm-ink, #0c0a09);
  cursor: pointer;
}
.sch-iconbtn:active {
  background: var(--cbm-surface-strong, #f0efed);
}
/* Segmented nav / tabs */
.sch-seg {
  display: flex;
  gap: 3px;
  padding: 3px;
  background: var(--cbm-surface-strong, #f0efed);
  border-radius: 9999px;
}
.sch-seg-btn {
  flex: 1;
  -webkit-appearance: none;
          appearance: none;
  border: 0;
  background: transparent;
  padding: 8px 6px;
  border-radius: 9999px;
  font-family: var(--cbm-body-font);
  font-size: 13px;
  font-weight: 600;
  color: var(--cbm-body, #44403c);
  cursor: pointer;
  white-space: nowrap;
}
.sch-seg-btn.on {
  background: var(--cbm-ink-pill, #292524);
  color: var(--cbm-on-primary, #fff);
}
/* Event-type card */
.sch-et-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.sch-et {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  padding-left: 18px;
}
.sch-et-accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  border-radius: 16px 0 0 16px;
}
.sch-et-orb {
  position: absolute;
  top: -24px;
  right: -16px;
  width: 110px;
  height: 110px;
  border-radius: 9999px;
  opacity: 0.5;
  filter: blur(8px);
  pointer-events: none;
}
.sch-et-name {
  position: relative;
  font-family: var(--cbm-display-font);
  font-weight: 300;
  font-size: 19px;
  letter-spacing: -0.2px;
  color: var(--cbm-ink, #0c0a09);
  line-height: 1.2;
}
.sch-et-meta {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--cbm-body-font);
  font-size: 13px;
  color: var(--cbm-muted, #777169);
}
.sch-et-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.sch-et-desc {
  position: relative;
  font-family: var(--cbm-body-font);
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--cbm-body, #4e4e4e);
  margin: 0;
}
.sch-et-foot {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 2px;
  padding-top: 12px;
  border-top: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.sch-et-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
/* iOS-style toggle (tokenised) */
.sch-switch {
  position: relative;
  width: 44px;
  height: 26px;
  border-radius: 9999px;
  background: var(--cbm-hairline-strong, #d6d3d1);
  cursor: pointer;
  transition: background 0.2s;
  flex: 0 0 auto;
  border: 0;
  padding: 0;
}
.sch-switch.on {
  background: var(--cbm-success, #16a34a);
}
.sch-switch::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 9999px;
  background: #fff;
  transition: transform 0.2s;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.sch-switch.on::after {
  transform: translateX(18px);
}
/* Status pill */
.sch-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 9999px;
  font-family: var(--cbm-body-font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}
.sch-status .dot {
  width: 6px;
  height: 6px;
  border-radius: 9999px;
  background: currentColor;
}
.sch-status.tone-success {
  color: var(--cbm-success, #16a34a);
  background: color-mix(in srgb, var(--cbm-success, #16a34a) 12%, transparent);
}
.sch-status.tone-error {
  color: var(--cbm-error, #dc2626);
  background: color-mix(in srgb, var(--cbm-error, #dc2626) 12%, transparent);
}
.sch-status.tone-muted {
  color: var(--cbm-muted, #777169);
  background: var(--cbm-surface-strong, #f0efed);
}
/* Forms */
.sch-field {
  margin-top: 14px;
}
.sch-label {
  display: block;
  font-family: var(--cbm-body-font);
  font-size: 13px;
  font-weight: 600;
  color: var(--cbm-body-strong, #292524);
  margin: 0 2px 7px;
}
.sch-hint {
  font-family: var(--cbm-body-font);
  font-size: 12px;
  color: var(--cbm-muted, #777169);
  margin: 6px 2px 0;
}
/* element+class so it outspecifies F7's input[type="email|tel|number|date|time"] reset (§5 trap). */
input.sch-input, textarea.sch-textarea {
  width: 100%;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  background: var(--cbm-surface, #fff);
  border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
  border-radius: var(--cbm-radius-md, 8px);
  padding: 0 14px;
  height: 46px;
  font-family: var(--cbm-body-font);
  font-size: 15px;
  color: var(--cbm-ink, #0c0a09);
}
textarea.sch-textarea {
  height: auto;
  min-height: 84px;
  padding: 12px 14px;
  line-height: 1.45;
}
input.sch-input:focus, textarea.sch-textarea:focus {
  outline: none;
  border-color: var(--cbm-ink, #0c0a09);
}
input.sch-input::placeholder, textarea.sch-textarea::placeholder {
  color: var(--cbm-muted-soft, #a8a29e);
}
/* Choice chips (durations, location types, etc.) */
.sch-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sch-chip {
  -webkit-appearance: none;
          appearance: none;
  width: auto;
  border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
  background: var(--cbm-surface, #fff);
  border-radius: 9999px;
  padding: 9px 15px;
  font-family: var(--cbm-body-font);
  font-size: 14px;
  font-weight: 500;
  color: var(--cbm-ink, #0c0a09);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.sch-chip.on {
  background: var(--cbm-ink-pill, #292524);
  color: var(--cbm-on-primary, #fff);
  border-color: var(--cbm-ink-pill, #292524);
}
/* Slot picker (the booking flow) */
.sch-daystrip {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 4px 2px 10px;
  -webkit-overflow-scrolling: touch;
}
.sch-daystrip::-webkit-scrollbar {
  display: none;
}
.sch-daychip {
  flex: 0 0 auto;
  width: 62px;
  min-width: 62px;
  padding: 10px 8px;
  border-radius: var(--cbm-radius-lg, 12px);
  cursor: pointer;
  border: 1px solid var(--cbm-hairline, #e7e5e4);
  background: var(--cbm-surface, #fff);
  text-align: center;
}
.sch-daychip.on {
  background: var(--cbm-ink-pill, #292524);
  border-color: var(--cbm-ink-pill, #292524);
}
.sch-daychip.on .sch-daychip-dow, .sch-daychip.on .sch-daychip-num {
  color: var(--cbm-on-primary, #fff);
}
.sch-daychip-dow {
  font-family: var(--cbm-body-font);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--cbm-muted, #777169);
}
.sch-daychip-num {
  font-family: var(--cbm-display-font);
  font-weight: 300;
  font-size: 22px;
  color: var(--cbm-ink, #0c0a09);
  line-height: 1.1;
  margin-top: 2px;
}
.sch-daychip-dot {
  width: 5px;
  height: 5px;
  border-radius: 9999px;
  background: var(--cbm-success, #16a34a);
  margin: 4px auto 0;
}
.sch-slots {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.sch-slot {
  -webkit-appearance: none;
          appearance: none;
  width: 100%;
  border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
  background: var(--cbm-surface, #fff);
  border-radius: var(--cbm-radius-md, 8px);
  padding: 12px 6px;
  font-family: var(--cbm-body-font);
  font-size: 14px;
  font-weight: 600;
  color: var(--cbm-ink, #0c0a09);
  cursor: pointer;
}
.sch-slot:active, .sch-slot.on {
  background: var(--cbm-ink-pill, #292524);
  color: var(--cbm-on-primary, #fff);
  border-color: var(--cbm-ink-pill, #292524);
}
/* Key/value rows for detail screens */
.sch-kv {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.sch-kv:last-child {
  border-bottom: 0;
}
.sch-kv-ic {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 9999px;
  background: var(--cbm-surface-strong, #f0efed);
  color: var(--cbm-ink, #0c0a09);
  display: flex;
  align-items: center;
  justify-content: center;
}
.sch-kv-t {
  font-family: var(--cbm-body-font);
  font-size: 12px;
  color: var(--cbm-muted, #777169);
}
.sch-kv-v {
  font-family: var(--cbm-body-font);
  font-size: 15px;
  font-weight: 500;
  color: var(--cbm-ink, #0c0a09);
  margin-top: 1px;
  word-break: break-word;
}
/* Empty + loading */
.sch-empty {
  text-align: center;
  padding: 48px 20px;
}
.sch-empty-ic {
  width: 56px;
  height: 56px;
  margin: 0 auto 14px;
  border-radius: 9999px;
  background: var(--cbm-surface-strong, #f0efed);
  color: var(--cbm-muted, #777169);
  display: flex;
  align-items: center;
  justify-content: center;
}
.sch-empty-t {
  font-family: var(--cbm-display-font);
  font-weight: 300;
  font-size: 19px;
  color: var(--cbm-ink, #0c0a09);
  margin: 0 0 4px;
}
.sch-empty-s {
  font-family: var(--cbm-body-font);
  font-size: 13.5px;
  color: var(--cbm-muted, #777169);
  margin: 0 0 16px;
}
.sch-skel {
  background: var(--cbm-surface-strong, #f0efed);
  border-radius: var(--cbm-radius-md, 8px);
}
/* Host link row (the public /meet handle) */
.sch-linkrow {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--cbm-surface-strong, #f0efed);
  border-radius: 9999px;
  padding: 7px 7px 7px 16px;
}
.sch-linkrow-url {
  flex: 1;
  min-width: 0;
  font-family: var(--cbm-body-font);
  font-size: 13px;
  color: var(--cbm-body, #4e4e4e);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* ============================================================================
   MOBILE WEB BROWSER ADAPTATIONS — iOS Safari bottom-bar inset + dark-mode
   overscroll + smooth scrolling. Scoped under html.cbm-web / .cbm-mobile-web,
   which the boot/mobile-web.js runtime adds ONLY on the web build (never Cordova).
   Consumes --cbm-vv-bottom (px of Safari bottom-toolbar overlap, kept current by
   the visualViewport runtime).
   ============================================================================ */
/* --- STEP 2 · GROUP A — elements that read var(--f7-safe-area-bottom) ----------
   ONE override lifts every bar/FAB that reads the F7 safe-area var clear of the
   dynamic Safari bottom toolbar: .cbm-bottom-nav(+spacer), .deal-bottom-controls.
   db-no-tabbar, .deal-bottom-row, .fab-right-bottom, the app.vue global FABs
   (.global-add-fab/.global-msg-fab/.global-back-fab) and the deal/tasks list FABs.
   Do NOT add per-element overrides for these — that would double-count the inset. */
html.cbm-mobile-web {
  --f7-safe-area-bottom: calc(env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
/* belt-and-suspenders: also set it on the F7 root in case F7 redefines the var there */
html.cbm-mobile-web .framework7-root {
  --f7-safe-area-bottom: calc(env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
/* --- STEP 2 · GROUP B — elements that read env(safe-area-inset-bottom) DIRECTLY -
   The var override above does NOT reach these, so add + var(--cbm-vv-bottom, 0px)
   explicitly while preserving each element's own base px (verified against source). */
/* .app-foot — contextual bottom footer (app-footer.vue): height calc(52px + env),
   padding-bottom env. */
html.cbm-mobile-web .app-foot {
  height: calc(52px + env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
html.cbm-mobile-web .app-foot-spacer {
  height: calc(52px + env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
/* .btm-bar — list-screen bottom search bar (bottom-search.vue): padding 8px 12px
   calc(8px + env). Preserve the horizontal 12px; only lift the bottom. */
html.cbm-mobile-web .btm-bar {
  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
html.cbm-mobile-web .btm-search-spacer {
  height: calc(60px + env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
/* .finf-bar / .finf-fab — finance form save bar + list create pill (finance-form.css). */
html.cbm-mobile-web .finf-bar {
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
html.cbm-mobile-web .finf-fab {
  bottom: calc(78px + env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
/* .ifa-orb — in-form AI floating helper orb (in-form-ai.vue): bottom calc(72px + env). */
html.cbm-mobile-web .ifa-orb {
  bottom: calc(72px + env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
/* projects/show.vue fixed chips toolbar + its content padding. */
html.cbm-mobile-web .psd-chip-toolbar.toolbar {
  bottom: calc(56px + env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
html.cbm-mobile-web .psd-page .page-content {
  padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px) + var(--cbm-vv-bottom, 0px));
}
/* --- STEP 3 · Keyboard-open polish -------------------------------------------
   When a text field is focused, slide the persistent bottom nav + contextual
   footer out of the way so they don't float over content. Composers/search bars
   are intentionally NOT hidden. Spacers are left as-is (harmless). */
html.cbm-keyboard-open .cbm-bottom-nav,
html.cbm-keyboard-open .app-foot {
  transform: translateY(120%);
  transition: transform 0.18s ease;
}
/* --- STEP 4 · Dark-mode mobile-web overscroll fix ----------------------------
   The html/root background shows through during iOS rubber-band overscroll; force
   it to the canvas token in BOTH themes so there is never a white (or black) flash.
   --cbm-canvas = #f5f5f5 light / #1a1714 dark. The [data-theme='dark'] block is
   explicit insurance against any later light-literal rule. */
html.cbm-web, html.cbm-web body, html.cbm-web #app, html.cbm-web .framework7-root,
html.cbm-web .views, html.cbm-web .view, html.cbm-web .page {
  background-color: var(--cbm-canvas);
}
html.cbm-web[data-theme=dark], html.cbm-web[data-theme=dark] body,
html.cbm-web[data-theme=dark] #app, html.cbm-web[data-theme=dark] .framework7-root,
html.cbm-web[data-theme=dark] .views, html.cbm-web[data-theme=dark] .view,
html.cbm-web[data-theme=dark] .page {
  background-color: var(--cbm-canvas);
}
/* --- STEP 5 · Smooth scrolling (mobile-web only, guarded) --------------------- */
html.cbm-mobile-web .page-content,
html.cbm-mobile-web .panel,
html.cbm-mobile-web .sheet-modal .page-content,
html.cbm-mobile-web .popup .page-content {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}
/* prevent the whole-document rubber-band / pull-to-refresh fighting F7's own scrollers */
html.cbm-mobile-web, html.cbm-mobile-web body {
  overscroll-behavior: none;
}
/* ── Fixed glass header + in-flow spacer ──────────────────────────────────── */
.ahdr {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    padding-top: env(safe-area-inset-top);
    background: var(--cbm-glass-bg, rgba(245, 245, 245, 0.68));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    border-bottom: 1px solid var(--cbm-hairline, #e7e5e4);
    /* Promote the fixed header to its OWN stable compositor layer. Without this the
       Android WebView re-rasterizes the fixed bar on every momentum-/overscroll frame,
       so it visibly double-paints — a ghost "second header" pops in while scrolling the
       Command Center (and other long pages) up/down on a real device. translateZ + the
       backface/will-change hints pin it to the GPU so it never repaints on scroll. */
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    will-change: transform;
}
/* ── PREMIUM frosted-glass header (matches the glass bottom nav). ──────────────
   The §5 flat profile overrides --cbm-glass-bg to opaque and sets
   `html .ahdr { backdrop-filter:none !important }`, so re-enable the glass here
   with higher specificity (.ahdr.ahdr) + !important. @supports-gated so old
   WebViews stay opaque; dark variant + reduced-transparency fallback. */
/* Header surface — driven by the glass tokens so the DECISION KNOB (§5) controls it.
   With the flat profile the tokens are opaque + blur:none → a solid, cheap header (no
   per-frame backdrop re-blur, the scroll-jank cost on weak devices). Flip the knob to
   restore frosted glass. */
@supports (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
html .ahdr.ahdr {
        background: var(--cbm-glass-bg) !important;
        -webkit-backdrop-filter: var(--cbm-glass-blur) !important;
        backdrop-filter: var(--cbm-glass-blur) !important;
}
html[data-theme='dark'] .ahdr.ahdr {
        background: var(--cbm-glass-bg) !important;
}
@media (prefers-reduced-transparency: reduce) {
html .ahdr.ahdr {
            background: var(--cbm-surface) !important;
            -webkit-backdrop-filter: none !important;
            backdrop-filter: none !important;
}
}
}
/* Two rows, always present (incl. the dashboard): row 1 (title + priority
   actions) + row 2 (scrollable extras). */
.ahdr-spacer { height: calc(100px + env(safe-area-inset-top)); width: 100%;
}

/* Row 1 — title pinned left, priority actions pinned right. */
.ahdr-row1 { display: flex; align-items: center; gap: 6px; height: 46px; padding: 0 8px;
}
.ahdr-back {
    flex: 0 0 auto; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border: 0; padding: 0; color: var(--cbm-ink, #0c0a09); cursor: pointer;
}
.ahdr-back:active { opacity: 0.55;
}
.ahdr-pagetitle {
    flex: 1 1 auto; min-width: 0;
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 20px; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* Priority actions group, right-aligned: Mode · AI · + · Message · Notification. */
.ahdr-row1-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; margin-left: auto;
}

/* Dashboard greeting (top-left) — compact serif name + soft mode badge on one line. */
.ahdr-greet { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 8px; padding-left: 4px;
}
.ahdr-greet-name {
    flex: 0 1 auto; min-width: 0; margin: 0;
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 21px; line-height: 1.1;
    letter-spacing: -0.3px; color: var(--cbm-ink, #0c0a09);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ahdr-greet-badge {
    flex: 0 0 auto; display: inline-flex; align-items: center; height: 21px; padding: 0 9px;
    border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-body-strong, #292524);
    font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.2px; white-space: nowrap;
}

/* The scrollable control row — like the bottom bar, it scrolls when crowded. */
.ahdr-scroll {
    display: flex; align-items: center; gap: 6px; height: 54px; padding: 0 10px;
    overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.ahdr-scroll::-webkit-scrollbar { display: none;
}
/* Equal spacing between all controls (the 6px gap on .ahdr-scroll), no extra
   separators. width:auto defeats F7's global `button { width: 100% }` reset,
   which would otherwise stretch every pill control and blow out the row width. */
.ahdr-ctl { flex: 0 0 auto; width: auto;
}

/* Plain icon controls (Bell, Message, +). */
.ahdr-add, .ahdr-bell, .ahdr-msg {
    width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border: 0; padding: 0; color: var(--cbm-ink, #0c0a09); cursor: pointer; position: relative;
}
.ahdr-add:active, .ahdr-bell:active, .ahdr-msg:active { opacity: 0.55;
}
.ahdr-add { border: 1px solid var(--cbm-hairline-strong, #d6d3d1); border-radius: 9999px; background: var(--cbm-surface, #fff);
}
.ahdr-add:active { background: var(--cbm-surface-strong, #f0efed); opacity: 1;
}
.ahdr-bell-badge {
    position: absolute; top: 0; right: 0; min-width: 16px; height: 16px; padding: 0 4px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 9999px; background: var(--cbm-error, #dc2626); color: #fff;
    font-family: var(--cbm-body-font); font-size: 10px; font-weight: 700; line-height: 1;
}

/* AI orb */
.ahdr-ai { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; cursor: pointer;
}
.ahdr-ai-orb {
    display: block; width: 22px; height: 22px; border-radius: 9999px;
    background: conic-gradient(from 0deg, var(--cbm-mint, #a7e5d3), var(--cbm-sky, #a8c8e8), var(--cbm-lavender, #c8b8e0), var(--cbm-rose, #e8b8c4), var(--cbm-peach, #f4c5a8), var(--cbm-mint, #a7e5d3));
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.65), 0 1px 4px rgba(0, 0, 0, 0.12);
    animation: ahdrOrbSpin 7s linear infinite;
}
@keyframes ahdrOrbSpin {
to { transform: rotate(360deg);
}
}

/* Mode pill */
.hdr-modepick { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 9px 0 12px; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong); background: var(--cbm-surface); color: var(--cbm-ink); font-family: var(--cbm-body-font); font-size: 11.5px; font-weight: 600; letter-spacing: 0.2px; cursor: pointer;
}
.hdr-modepick:active { background: var(--cbm-surface-strong);
}
.hdr-modepick-caret { color: var(--cbm-muted); transition: transform 0.18s ease;
}
.hdr-modepick.open .hdr-modepick-caret { transform: rotate(180deg);
}

/* Role chip (Company / Personal) */
.hdr-role { display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0 9px; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong); background: var(--cbm-surface); color: var(--cbm-ink); cursor: pointer;
}
.hdr-role:active { background: var(--cbm-surface-strong);
}
.hdr-role-caret { color: var(--cbm-muted); transition: transform 0.18s ease;
}
.hdr-role.open .hdr-role-caret { transform: rotate(180deg);
}
.hdr-role-code { font-family: var(--cbm-body-font); font-size: 12px; font-weight: 700; letter-spacing: 0.5px; color: var(--cbm-ink, #0c0a09);
}
.hdr-role .dvw-dot, .hdr-role-opt .dvw-dot { width: 8px; height: 8px; border-radius: 9999px; flex: 0 0 auto; background: var(--cbm-muted-soft, #a8a29e);
}
.hdr-role.view-company .dvw-dot, .hdr-role-opt.view-company .dvw-dot { background: var(--cbm-success, #2fa37e);
}
.hdr-role.view-personal .dvw-dot, .hdr-role-opt.view-personal .dvw-dot { background: var(--cbm-sky, #a8c8e8);
}

/* Language chip */
.hdr-lang { display: inline-flex; align-items: center; gap: 3px; height: 30px; padding: 0 9px; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong); background: var(--cbm-surface); color: var(--cbm-ink); cursor: pointer;
}
.hdr-lang:active { background: var(--cbm-surface-strong);
}
.hdr-lang.open { border-color: var(--cbm-ink-pill, #292524);
}
.hdr-lang .icon { color: var(--cbm-ink);
}
.hdr-lang-code { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 700; letter-spacing: 0.3px;
}
.hdr-lang-caret { color: var(--cbm-muted-soft, #a8a29e);
}

/* Tips — circular icon button (matches the Reports control geometry). */
.hdr-tips { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 30px; padding: 0; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); cursor: pointer;
}
.hdr-tips:active { background: var(--cbm-surface-strong, #f0efed);
}

/* Master Settings — same circular icon button (in the old theme-switch slot). */
.hdr-settings { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 30px; padding: 0; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); cursor: pointer;
}
.hdr-settings:active { background: var(--cbm-surface-strong, #f0efed);
}
.hdr-settings .icon { color: var(--cbm-ink, #0c0a09);
}

/* Reports — live ECG sign (faint waveform + a bright pulse running across it). */
.hdr-reports { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 30px; padding: 0; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); cursor: pointer;
}
.hdr-reports:active { background: var(--cbm-surface-strong, #f0efed);
}
.hdr-ecg { display: block; overflow: visible;
}
.hdr-ecg path { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}
.hdr-ecg-base { opacity: 0.24;
}
.hdr-ecg-pulse {
    opacity: 0.95;
    stroke-dasharray: 18 82;
    animation: hdrEcgRun 1.5s linear infinite;
}
@keyframes hdrEcgRun {
from { stroke-dashoffset: 100;
}
to { stroke-dashoffset: 0;
}
}
@media (prefers-reduced-motion: reduce) {
.hdr-ecg-pulse { animation: none; opacity: 0.5;
}
}

/* Training pill */
.dash-train-pill { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 30px; padding: 0; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); cursor: pointer;
}
.dash-train-pill:active { background: var(--cbm-surface-strong, #f0efed);
}
.dash-train-pill .dash-train-cap { color: var(--cbm-success, #2fa37e); display: block;
}
.dash-train-pulse { position: absolute; left: -3px; top: -3px; width: 10px; height: 10px; border-radius: 9999px; background: var(--cbm-success, #2fa37e); animation: dashTrainPulse 1.8s ease-out infinite;
}
@keyframes dashTrainPulse {
0% { box-shadow: 0 0 0 0 rgba(47, 163, 126, 0.5);
}
70% { box-shadow: 0 0 0 8px rgba(47, 163, 126, 0);
}
100% { box-shadow: 0 0 0 0 rgba(47, 163, 126, 0);
}
}

/* Teleported dropdown menus */
.hdr-role-backdrop { position: fixed; inset: 0; z-index: 13590;
}
.hdr-role-menu { position: fixed; z-index: 13600; min-width: 150px; max-width: calc(100vw - 16px); padding: 5px; background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: 14px; box-shadow: 0 12px 34px rgba(12, 10, 9, 0.16);
}
.hdr-role-opt { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 11px; border: 0; border-radius: 9px; background: transparent; color: var(--cbm-ink, #0c0a09); font-family: var(--cbm-body-font); font-size: 13px; font-weight: 500; text-align: left; cursor: pointer;
}
.hdr-role-opt span { flex: 1; text-align: left; line-height: 1.35;
}
.hdr-role-opt.on { font-weight: 600;
}
.hdr-role-opt:active { background: var(--cbm-surface-strong, #f0efed);
}

/* Glass fallbacks (design-guideline required). */
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.ahdr { background: var(--cbm-glass-bg-strong);
}
}
@media (prefers-reduced-transparency: reduce) {
.ahdr { background: var(--cbm-canvas-soft, #fafafa); backdrop-filter: none; -webkit-backdrop-filter: none;
}
}
@media (prefers-reduced-motion: reduce) {
.ahdr-ai-orb, .dash-train-pulse { animation: none;
}
.hdr-modepick-caret, .hdr-role-caret { transition: none;
}
}

/* Fixed/sticky like the bottom tab bar — the contextual footer is a custom
   component so F7 doesn't hoist its toolbar out of page-content; pin it here.
   Glass material (tint + blur + saturate) comes from the global .toolbar rule. */
.app-foot {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000;
    --f7-toolbar-bg-color: transparent;
    height: calc(52px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
    border-top: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 -4px 16px rgba(12, 10, 9, 0.04);
}
.app-foot-spacer { height: calc(52px + env(safe-area-inset-bottom)); width: 100%;
}
.app-foot .toolbar-inner { padding: 0 4px;
}
.app-foot-back {
    flex: 0 0 auto; width: 52px; height: 100%;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border: 0; cursor: pointer; color: var(--cbm-ink, #0c0a09);
}
.app-foot-back:active { opacity: 0.55;
}
.app-foot-item { color: var(--cbm-muted, #777169);
}
.app-foot-item .icon { color: var(--cbm-ink, #0c0a09);
}
/* Command Center item — highlighted when the current screen IS the hub. */
.app-foot-cc-on .icon { color: var(--cbm-ink-pill, #292524);
}
.app-foot-cc-on .tabbar-label { color: var(--cbm-ink, #0c0a09);
}
.app-foot .tabbar-label { font-family: var(--cbm-body-font); font-size: 10px; font-weight: 500; letter-spacing: 0.1px; margin-top: 1px;
}

/* Glass bottom bar — translucent tint + blur + saturate + hairline + soft drop. */
.btm-bar {
    position: fixed; left: 0; right: 0; z-index: 1001;
    display: flex; align-items: center; gap: 10px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: var(--cbm-glass-bg, rgba(245, 245, 245, 0.68));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    border-top: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 -4px 16px rgba(12, 10, 9, 0.04);
    transition: bottom 180ms cubic-bezier(.4, 0, .2, 1);
}
.btm-search-spacer { height: calc(60px + env(safe-area-inset-bottom)); width: 100%;
}

/* Round Back / Home / Apps — solid surface controls (no glass-on-glass), 44px tap target. */
.btm-bar .db-back,
.btm-bar .db-apps,
.btm-bar .db-home {
    flex: 0 0 auto; width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: 9999px;
    color: var(--cbm-ink, #0c0a09);
    background: var(--cbm-surface, #fff);
    cursor: pointer;
    transition: background 180ms cubic-bezier(.4, 0, .2, 1), transform 120ms cubic-bezier(.4, 0, .2, 1);
}
.btm-bar .db-back:active,
.btm-bar .db-apps:active,
.btm-bar .db-home:active { background: var(--cbm-surface-strong, #f0efed); transform: scale(0.96);
}

/* Search field fills the middle — brand text-input tokens, pill to match the round
   controls flanking it. */
.btm-bar .btm-search-bar {
    flex: 1; min-width: 0;
    --f7-searchbar-bg-color: transparent;
    --f7-searchbar-input-bg-color: var(--cbm-surface, #fff);
    --f7-searchbar-input-border-radius: 9999px;
    --f7-searchbar-input-height: 44px;
    --f7-searchbar-input-text-color: var(--cbm-ink, #0c0a09);
    margin: 0; padding: 0; background: transparent;
}
.btm-bar .searchbar { background: transparent;
}
.btm-bar .searchbar:before, .btm-bar .searchbar:after { display: none;
}
.btm-bar .searchbar input {
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    padding-left: 34px;
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px;
}

/* Design-guideline glass fallbacks. */
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.btm-bar { background: var(--cbm-glass-bg-strong);
}
}
@media (prefers-reduced-transparency: reduce) {
.btm-bar { background: var(--cbm-canvas-soft, #fafafa); -webkit-backdrop-filter: none; backdrop-filter: none;
}
}
@media (prefers-reduced-motion: reduce) {
.btm-bar, .btm-bar .db-back, .btm-bar .db-home { transition: none;
}
}

#selected[data-v-a7de6762] {
    background-color: var(--cbm-surface-strong, rgba(0, 0, 0, 0.08));
}

.project-card-unified .pc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px;
}
.pc-title-wrap { min-width: 0; flex: 1 1 auto;
}
.pc-code { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.4px; color: var(--cbm-muted-soft, #a8a29e); margin-right: 6px;
}
.pc-title { font-family: var(--cbm-body-font); font-size: 15px; font-weight: 600; letter-spacing: 0.1px; color: var(--cbm-ink, #0c0a09);
}
.pc-status { flex: 0 0 auto; font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.4px; border-radius: 9999px; padding: 3px 10px; white-space: nowrap;
}
.pc-progress { display: flex; align-items: center; gap: 9px; margin-top: 12px;
}
.pc-bar { flex: 1 1 auto; height: 6px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); overflow: hidden;
}
.pc-bar-fill { display: block; height: 100%; border-radius: 9999px; background: var(--cbm-ink-pill, #292524); transition: width 0.3s ease;
}
.pc-pct { flex: 0 0 auto; font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; color: var(--cbm-body-strong, #292524); min-width: 34px; text-align: right;
}
.pc-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 11px;
}
.pc-client, .pc-due { display: inline-flex; align-items: center; gap: 5px; font-family: var(--cbm-body-font); font-size: 12.5px; letter-spacing: 0.15px; color: var(--cbm-muted, #777169);
}
.pc-client { min-width: 0;
}
.pc-due.is-overdue { color: var(--cbm-error, #dc2626); font-weight: 600;
}
.pc-members { display: flex; align-items: center; margin-top: 12px;
}
.pc-av { border-radius: 9999px; border: 1.5px solid var(--cbm-surface, #fff); margin-left: -7px; background: var(--cbm-surface-strong, #f0efed);
}
.pc-av:first-child { margin-left: 0;
}
.pc-av-more { font-family: var(--cbm-body-font); font-size: 11px; color: var(--cbm-muted, #777169); margin-left: 6px;
}

/* Horizontally scrollable section chips. */
.pc-sections {
    display: flex; gap: 7px; margin-top: 14px;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; padding-bottom: 2px;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 18px), transparent);
            mask-image: linear-gradient(to right, #000 calc(100% - 18px), transparent);
}
.pc-sections::-webkit-scrollbar { display: none;
}
.pc-chip {
    flex: 0 0 auto; width: auto;
    display: inline-flex; align-items: center; gap: 5px;
    height: 30px; padding: 0 12px;
    border-radius: var(--cbm-radius-pill, 9999px);
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-body-strong, #292524);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; letter-spacing: 0.15px;
    white-space: nowrap; cursor: pointer;
}
.pc-chip:active { background: var(--cbm-hairline-strong, #d6d3d1);
}
.pc-chip .icon { color: var(--cbm-muted, #777169);
}

/* Embedded primary actions — same look as the quick-sheet buttons. */
.pc-actions { display: flex; gap: 8px; margin-top: 14px;
}
.pc-act { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 42px; border-radius: var(--cbm-radius-md, 10px); font-family: var(--cbm-body-font); font-size: 13px; font-weight: 500; letter-spacing: 0.15px; cursor: pointer;
}
.pc-act-ink { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border: 0;
}
.pc-act-ink:active { background: var(--cbm-ink-pill-active, #0c0a09);
}
.pc-act-ink .icon { color: var(--cbm-on-primary, #fff);
}
.pc-act-out { background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
}
.pc-act-out:active { background: var(--cbm-surface-strong, #f0efed);
}

.psx-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.psx {
    display: flex; flex-direction: column; height: 100%;
    border-radius: 24px 24px 0 0;
    padding: 10px 16px max(14px, env(safe-area-inset-bottom));
    background: var(--cbm-glass-bg-strong, rgba(245, 245, 245, 0.88));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-bottom: 0;
    box-shadow: 0 -8px 28px rgba(12, 10, 9, 0.10);
}
.psx-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 12px; flex: 0 0 auto;
}
.psx-head { flex: 0 0 auto;
}
.psx-code { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.4px; color: var(--cbm-muted-soft, #a8a29e); margin-right: 6px;
}
.psx-name { font-family: var(--cbm-display-font); font-weight: 300; font-size: 21px; letter-spacing: -0.3px; color: var(--cbm-ink, #0c0a09);
}
.psx-tabs {
    flex: 0 0 auto; display: flex; gap: 7px; margin-top: 12px; padding-bottom: 6px;
    overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.psx-tabs::-webkit-scrollbar { display: none;
}
.psx-tab {
    flex: 0 0 auto; width: auto; display: inline-flex; align-items: center; gap: 5px;
    height: 32px; padding: 0 13px; border-radius: 9999px;
    background: var(--cbm-surface, #fff); color: var(--cbm-body-strong, #292524);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; letter-spacing: 0.15px;
    white-space: nowrap; cursor: pointer;
}
.psx-tab .icon { color: var(--cbm-muted, #777169);
}
.psx-tab.is-on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border-color: var(--cbm-ink-pill, #292524);
}
.psx-tab.is-on .icon { color: var(--cbm-on-primary, #fff);
}
.psx-body { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; margin-top: 8px; padding-top: 4px;
}
.psx-skel { display: flex; flex-direction: column; gap: 10px;
}
.psx-row-skel { height: 58px; border-radius: var(--cbm-radius-lg, 12px); background: var(--cbm-surface-strong, #f0efed);
}
.psx-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 48px 0; color: var(--cbm-muted, #777169); font-family: var(--cbm-body-font); font-size: 14px;
}
.psx-empty .icon { color: var(--cbm-muted-soft, #a8a29e);
}
.psx-list { display: flex; flex-direction: column;
}
.psx-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 2px; border-bottom: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.psx-item:last-child { border-bottom: 0;
}
.psx-item-main { min-width: 0; display: flex; flex-direction: column; gap: 3px;
}
.psx-item-title { font-family: var(--cbm-body-font); font-size: 14.5px; font-weight: 500; letter-spacing: 0.1px; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.psx-item-sub { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.psx-item-meta { font-family: var(--cbm-body-font); font-size: 11.5px; color: var(--cbm-muted-soft, #a8a29e);
}
.psx-item-right { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 5px;
}
.psx-item-amt { font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; color: var(--cbm-body-strong, #292524);
}
.psx-item-badge { font-family: var(--cbm-body-font); font-size: 10.5px; font-weight: 600; letter-spacing: 0.3px; padding: 2px 8px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted, #777169); text-transform: capitalize;
}
.psx-item-badge.is-ok { background: rgba(22, 163, 74, 0.10); color: var(--cbm-success, #16a34a);
}
.psx-item-badge.is-bad { background: rgba(220, 38, 38, 0.09); color: var(--cbm-error, #dc2626);
}
.psx-item-badge.is-warn { background: rgba(244, 197, 168, 0.26); color: var(--cbm-warning, #a4601f);
}
.psx-reports { display: flex; flex-direction: column; gap: 10px;
}
.psx-report { border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: var(--cbm-radius-lg, 12px); background: var(--cbm-surface, #fff); padding: 12px 14px;
}
.psx-kv { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 5px 0;
}
.psx-kv + .psx-kv { border-top: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.psx-kv-k { font-family: var(--cbm-body-font); font-size: 12px; color: var(--cbm-muted, #777169); letter-spacing: 0.15px; flex: 0 0 auto;
}
.psx-kv-v { font-family: var(--cbm-body-font); font-size: 13px; font-weight: 500; color: var(--cbm-ink, #0c0a09); text-align: right;
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.psx { background: var(--cbm-glass-bg-strong);
}
}
@media (prefers-reduced-transparency: reduce) {
.psx { background: var(--cbm-canvas-soft, #fafafa); -webkit-backdrop-filter: none; backdrop-filter: none;
}
}

.pfb { margin: 0;
}
.pfb-row {
    display: flex; gap: 8px; align-items: center;
    overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
    padding: 10px 16px;
}
.pfb-row::-webkit-scrollbar { display: none;
}
.pfb-pill {
    flex: 0 0 auto; width: auto;
    display: inline-flex; align-items: center; gap: 6px;
    height: 34px; padding: 0 13px;
    border-radius: 9999px;
    background: var(--cbm-surface, #fff);
    color: var(--cbm-body-strong, #292524);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    font-family: var(--cbm-body-font); font-size: 13px; font-weight: 500; letter-spacing: 0.15px;
    white-space: nowrap; cursor: pointer;
}
.pfb-pill .icon { color: var(--cbm-muted, #777169);
}
.pfb-caret { color: var(--cbm-muted-soft, #a8a29e) !important; margin-left: -1px;
}
.pfb-pill.is-on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border-color: var(--cbm-ink-pill, #292524);
}
.pfb-pill.is-on .icon { color: var(--cbm-on-primary, #fff);
}
.pfb-clear {
    flex: 0 0 auto; width: auto;
    display: inline-flex; align-items: center; gap: 4px;
    height: 34px; padding: 0 12px; border-radius: 9999px;
    background: transparent; color: var(--cbm-muted, #777169);
    border: 1px dashed var(--cbm-hairline-strong, #d6d3d1);
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500;
    white-space: nowrap; cursor: pointer;
}
.pfb-clear .icon { color: var(--cbm-muted, #777169);
}

/* Glass dropdown */
.pfb-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.pfb-dd {
    border-radius: 24px 24px 0 0;
    padding: 10px 16px max(16px, env(safe-area-inset-bottom));
    background: var(--cbm-glass-bg-strong, rgba(245, 245, 245, 0.9));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-bottom: 0;
    box-shadow: 0 -8px 28px rgba(12, 10, 9, 0.10);
}
.pfb-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 12px;
}
.pfb-dd-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 20px; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09); padding: 0 2px 8px;
}
.pfb-dd-list { display: block; max-height: 52vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
/* Search at the BOTTOM of the dropdown (thumb zone). */
.pfb-dd-search { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 12px; margin-top: 10px; border-radius: var(--cbm-radius-md, 8px); background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
}
.pfb-dd-search .icon { color: var(--cbm-muted, #777169);
}
.pfb-dd-search input { flex: 1; border: 0; background: transparent; outline: none; font-family: var(--cbm-body-font); font-size: 15px; color: var(--cbm-ink, #0c0a09);
}
.pfb-opt {
    width: 100%; flex-shrink: 0;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 52px; padding: 6px 6px; background: transparent; border: 0;
    border-bottom: 1px solid var(--cbm-hairline, #e7e5e4);
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 400; letter-spacing: 0.15px; line-height: 1.4;
    color: var(--cbm-body-strong, #292524); text-align: left; cursor: pointer;
}
.pfb-opt:last-child { border-bottom: 0;
}
.pfb-opt.is-sel { color: var(--cbm-ink, #0c0a09); font-weight: 600;
}
.pfb-opt.is-sel .icon { color: var(--cbm-ink, #0c0a09);
}
.pfb-opt:active { background: var(--cbm-surface-strong, #f0efed);
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.pfb-dd { background: var(--cbm-glass-bg-strong);
}
}
@media (prefers-reduced-transparency: reduce) {
.pfb-dd { background: var(--cbm-canvas-soft, #fafafa); -webkit-backdrop-filter: none; backdrop-filter: none;
}
}

#selected[data-v-67b8be25] {
    background-color: var(--cbm-surface-strong, rgba(0, 0, 0, 0.08));
}

/* AI assistant tab — a soft pastel "presence" orb among the line icons. Kept calm
   and editorial (muted atmospheric pastels, flat — no drop shadow), with a slow
   drift that is disabled under reduced-motion per the design system. */
.cbm-bottom-nav .cbm-nav-ai-orb {
    display: block;
    width: 24px;
    height: 24px;
    margin: 0 auto;
    border-radius: 9999px;
    background: conic-gradient(from 210deg, #bfe9db, #bcd6ef, #d6c7ea, #f1d0c4, #bfe9db);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
    animation: cbmNavOrbSpin 18s linear infinite;
}
.cbm-bottom-nav .link.tab-link-active .cbm-nav-ai-orb {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.6), 0 0 0 2px var(--cbm-hairline-strong, #d6d3d1);
}
@keyframes cbmNavOrbSpin {
to { transform: rotate(360deg);
}
}
@media (prefers-reduced-motion: reduce) {
.cbm-bottom-nav .cbm-nav-ai-orb { animation: none;
}
}
/* Icon-only bar: hide every text label, keep icons (and the AI orb) centred. */
.cbm-bottom-nav-iconly .tabbar-label { display: none;
}
.cbm-bottom-nav-iconly .link { justify-content: center;
}
.cbm-bottom-nav-iconly .icon { margin: 0;
}
.cbm-bottom-nav-iconly .cbm-nav-ai-orb { margin: 0 auto;
}

/* Mode switcher sheet — bottom-anchored, options stacked with AIO lowest. */
.mode-switch-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.msw {
    border-radius: 24px 24px 0 0; padding: 10px 16px calc(18px + env(safe-area-inset-bottom));
    background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.92));
    border: 1px solid var(--cbm-hairline, #e7e5e4); border-bottom: 0;
    box-shadow: 0 -8px 30px rgba(12, 10, 9, 0.12);
    /* All modes must always be reachable — cap the height and scroll if the list (now
       up to 5 modes) is taller than the screen, so options never get cut off below the
       fold ("mode list hidden" on shorter devices). */
    max-height: 80vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.msw-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 10px;
}
.msw-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 20px; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09); padding: 0 2px 8px;
}
.msw-opt {
    width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px;
    height: 54px; padding: 0 14px; margin-top: 8px; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); border-radius: var(--cbm-radius-lg, 12px);
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 15.5px; font-weight: 500; letter-spacing: 0.15px;
}
.msw-opt:active { background: var(--cbm-surface-strong, #f0efed);
}
.msw-opt.is-on { border-color: var(--cbm-ink-pill, #292524);
}
.msw-opt-l { display: inline-flex; align-items: center; gap: 12px;
}
.msw-opt-l .icon { color: var(--cbm-ink, #0c0a09);
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.msw { background: var(--cbm-glass-bg-strong);
}
}

/* ============================================================================
   PREMIUM Apple-style glass bottom bar — APP-WIDE (every screen + mode).
   The .cbm-nav-premium class is now ALWAYS on the bar (static class), so the
   frosted treatment applies everywhere the bottom nav renders. Edge-to-edge
   frosted glass (the real iOS tab-bar material) + rounded top + a soft active
   pill + larger icons. Edge-to-edge (same 56px height) so the spacer + the
   floating mode switcher above it are untouched.
   PERF NOTE (§5): this re-introduces a live backdrop-blur over scrolling content
   on every nav screen — the very cost the flat profile removed for weak GPUs.
   It's @supports-gated (old WebViews stay opaque) + reduced-transparency-safe;
   if scroll jank shows up on low-end devices, scope this back to the dashboards.
   The glass needs to BEAT the §5 flat overrides (`html .cbm-bottom-nav {
   backdrop-filter:none !important }` + the opaque `--cbm-glass-bg`), so these
   use higher specificity (html .cbm-bottom-nav.cbm-nav-premium) + !important.
   ============================================================================ */
@supports (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
    /* Token-driven so the §5 DECISION KNOB controls it — flat profile = opaque + blur:none
       (a solid, cheap bar, no per-frame re-blur). Flip the knob to restore frosted glass. */
html .cbm-bottom-nav.cbm-nav-premium {
        background-color: var(--cbm-glass-bg-strong) !important;
        -webkit-backdrop-filter: var(--cbm-glass-blur) !important;
        backdrop-filter: var(--cbm-glass-blur) !important;
        border-top: 1px solid var(--cbm-hairline, rgba(255, 255, 255, 0.55));
        border-radius: 22px 22px 0 0;
        box-shadow: 0 -6px 24px rgba(12, 10, 9, 0.10), 0 1px 0 rgba(255, 255, 255, 0.6) inset;
}
html[data-theme='dark'] .cbm-bottom-nav.cbm-nav-premium {
        background-color: var(--cbm-glass-bg-strong) !important;
        border-top-color: rgba(255, 255, 255, 0.1);
        box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.4), 0 1px 0 rgba(255, 255, 255, 0.06) inset;
}
    /* Respect reduced-transparency — solid premium bar (keeps the shape, drops blur). */
@media (prefers-reduced-transparency: reduce) {
html .cbm-bottom-nav.cbm-nav-premium {
            background-color: var(--cbm-surface) !important;
            -webkit-backdrop-filter: none !important;
            backdrop-filter: none !important;
}
}
}
/* Premium icons + active pill (independent of backdrop-filter support). */
.cbm-bottom-nav.cbm-nav-premium .toolbar-inner > .link {
    margin: 6px 2px;
    border-radius: 16px;
    transition: background 200ms ease, transform 160ms ease;
}
.cbm-bottom-nav.cbm-nav-premium .icon { font-size: 25px;
}
.cbm-bottom-nav.cbm-nav-premium .link.tab-link-active {
    background: var(--cbm-surface-strong, #f0efed);
}
html[data-theme='dark'] .cbm-bottom-nav.cbm-nav-premium .link.tab-link-active {
    background: rgba(255, 255, 255, 0.08);
}
.cbm-bottom-nav.cbm-nav-premium .link.tab-link-active .icon {
    color: var(--cbm-ink);
    transform: translateY(0);
}
.cbm-bottom-nav.cbm-nav-premium .link:active { transform: scale(0.92);
}
@media (prefers-reduced-motion: reduce) {
.cbm-bottom-nav.cbm-nav-premium .link:active { transform: none;
}
}

.item-title[data-v-87985b13] {
    /*font-size: var(--f7-list-item-subtitle-font-size) !important;*/
    font-weight: var(--f7-list-item-subtitle-font-weight) !important;
}

.tfb { margin: 0;
}
.tfb-row {
    display: flex; gap: 8px; align-items: center;
    overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
    padding: 2px 2px;
}
.tfb-row::-webkit-scrollbar { display: none;
}
.tfb-pill {
    flex: 0 0 auto; width: auto;
    display: inline-flex; align-items: center; gap: 6px;
    height: 32px; padding: 0 12px;
    border-radius: 9999px;
    background: var(--cbm-surface, #fff);
    color: var(--cbm-body-strong, #292524);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; letter-spacing: 0.15px;
    white-space: nowrap; cursor: pointer;
}
.tfb-pill .icon { color: var(--cbm-muted, #777169);
}
.tfb-caret { color: var(--cbm-muted-soft, #a8a29e) !important; margin-left: -1px;
}
.tfb-pill.is-on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border-color: var(--cbm-ink-pill, #292524);
}
.tfb-pill.is-on .icon { color: var(--cbm-on-primary, #fff);
}
.tfb-clear {
    flex: 0 0 auto; width: auto;
    display: inline-flex; align-items: center; gap: 4px;
    height: 32px; padding: 0 12px; border-radius: 9999px;
    background: transparent; color: var(--cbm-muted, #777169);
    border: 1px dashed var(--cbm-hairline-strong, #d6d3d1);
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500;
    white-space: nowrap; cursor: pointer;
}
.tfb-clear .icon { color: var(--cbm-muted, #777169);
}
.tfb-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.tfb-dd {
    border-radius: 24px 24px 0 0;
    padding: 10px 16px max(16px, env(safe-area-inset-bottom));
    background: var(--cbm-glass-bg-strong, rgba(245, 245, 245, 0.9));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-bottom: 0;
    box-shadow: 0 -8px 28px rgba(12, 10, 9, 0.10);
}
.tfb-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 12px;
}
.tfb-dd-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 20px; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09); padding: 0 2px 8px;
}
.tfb-dd-search { display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 12px; margin-top: 10px; border-radius: var(--cbm-radius-md, 8px); background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
}
.tfb-dd-search .icon { color: var(--cbm-muted, #777169);
}
.tfb-dd-search input { flex: 1; border: 0; background: transparent; outline: none; font-family: var(--cbm-body-font); font-size: 15px; color: var(--cbm-ink, #0c0a09);
}
.tfb-dd-list { display: block; max-height: 52vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.tfb-opt {
    width: 100%; flex-shrink: 0;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 52px; padding: 6px 6px; background: transparent; border: 0;
    border-bottom: 1px solid var(--cbm-hairline, #e7e5e4);
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 400; letter-spacing: 0.15px; line-height: 1.4;
    color: var(--cbm-body-strong, #292524); text-align: left; cursor: pointer;
}
.tfb-opt:last-child { border-bottom: 0;
}
.tfb-opt.is-sel { color: var(--cbm-ink, #0c0a09); font-weight: 600;
}
.tfb-opt.is-sel .icon { color: var(--cbm-ink, #0c0a09);
}
.tfb-opt:active { background: var(--cbm-surface-strong, #f0efed);
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.tfb-dd { background: var(--cbm-glass-bg-strong);
}
}
@media (prefers-reduced-transparency: reduce) {
.tfb-dd { background: var(--cbm-canvas-soft, #fafafa); -webkit-backdrop-filter: none; backdrop-filter: none;
}
}

#selected[data-v-9fa42b4e] {
    background-color: var(--cbm-surface-strong, rgba(0, 0, 0, 0.08));
}

label.item-checkbox > .icon-checkbox {
    margin-right: 5px;
}

/* Bottom controls (.deal-bottom-* / .db-* / .db-no-tabbar styles are defined
   globally in app.scss). Only the task-specific FAB offset stays here. */
/* Lift the create-task FAB above the bottom controls (no tab bar anymore). */
#task-list .fab-right-bottom {
    bottom: calc(16px + 118px + var(--f7-safe-area-bottom));
}

/* Card label chips + description preview */
.task-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 8px;
}
.task-labels .tl-chip {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 600;
}
.task-desc {
    margin-top: 8px;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--cbm-muted);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.badge-profile-image {
    height: 40px;
    width: 40px;
    border-radius: 50%;
}
.page > .toolbar {
    min-height: 56px;
}

/* Data-block chips toolbar — a Liquid-Glass strip docked just above the bottom
   nav (thumb zone), horizontally scrollable. */
.psd-chip-toolbar.toolbar {
    bottom: calc(56px + env(safe-area-inset-bottom, 0px));
    height: 52px;
    padding: 0;
    background: var(--cbm-glass-bg-strong, rgba(245, 245, 245, 0.82));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}
.psd-chip-toolbar:before, .psd-chip-toolbar:after { display: none !important;
}
.psd-chip-toolbar .toolbar-inner { padding: 0; display: block; height: 100%;
}
.psd-sections {
    display: flex; gap: 8px; align-items: center; height: 100%;
    overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
    padding: 0 16px;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 20px), transparent);
            mask-image: linear-gradient(to right, #000 calc(100% - 20px), transparent);
}
.psd-sections::-webkit-scrollbar { display: none;
}
.psd-chip {
    flex: 0 0 auto; width: auto;
    display: inline-flex; align-items: center; gap: 6px;
    height: 34px; padding: 0 14px;
    border-radius: var(--cbm-radius-pill, 9999px);
    background: var(--cbm-surface, #fff);
    color: var(--cbm-body-strong, #292524);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    font-family: var(--cbm-body-font); font-size: 13px; font-weight: 500; letter-spacing: 0.15px;
    white-space: nowrap; cursor: pointer;
}
.psd-chip:active { background: var(--cbm-surface-strong, #f0efed);
}
.psd-chip .icon { color: var(--cbm-muted, #777169);
}

/* Keep the last bit of content clear of the chips toolbar + nav. */
.psd-page .page-content { padding-bottom: calc(56px + 56px + env(safe-area-inset-bottom, 0px));
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.psd-chip-toolbar.toolbar { background: var(--cbm-canvas-soft, #fafafa);
}
}
@media (prefers-reduced-transparency: reduce) {
.psd-chip-toolbar.toolbar { background: var(--cbm-canvas-soft, #fafafa); -webkit-backdrop-filter: none; backdrop-filter: none;
}
}

/* Liquid-glass bottom nav — brand material + ink active state (no lavender). */
.ps-glass-toolbar,
.ps-glass-toolbar.toolbar {
    --f7-tabbar-link-active-color: var(--cbm-ink, #0c0a09);
    --f7-tabbar-link-inactive-color: var(--cbm-muted, #777169);
    --f7-tabbar-link-active-bg-color: transparent;
    background: var(--cbm-glass-bg-strong, rgba(245, 245, 245, 0.82));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}
.ps-glass-toolbar:before,
.ps-glass-toolbar:after { display: none !important;
}
/* Kill the Material active-indicator pill; keep glyphs flat on the canvas. */
.ps-glass-toolbar .tab-link:after,
.ps-glass-toolbar .tab-link-active:after,
.ps-glass-toolbar .tabbar-highlight { display: none !important; background: transparent !important;
}
.ps-glass-toolbar .tab-link { color: var(--cbm-muted, #777169);
}
.ps-glass-toolbar .tab-link .icon { color: inherit; background: transparent !important;
}
.ps-glass-toolbar .tab-link-active,
.ps-glass-toolbar .tab-link-active .icon { color: var(--cbm-ink, #0c0a09);
}
.ps-glass-toolbar .tabbar-label,
.ps-glass-toolbar .tab-link span { font-family: var(--cbm-body-font); font-weight: 500; letter-spacing: 0.15px;
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.ps-glass-toolbar.toolbar { background: var(--cbm-canvas-soft, #fafafa);
}
}
@media (prefers-reduced-transparency: reduce) {
.ps-glass-toolbar.toolbar { background: var(--cbm-canvas-soft, #fafafa); -webkit-backdrop-filter: none; backdrop-filter: none;
}
}

.rm-page { --f7-page-bg-color: var(--cbm-canvas, #f5f5f5);
}
.rm-navbar .navbar-bg, .rm-navbar .navbar-inner {
    background: var(--cbm-glass-bg-strong, rgba(245,245,245,0.82));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
}
.rm-navbar .navbar-bg:after { display: none;
}
.rm-title-wrap { display: flex; flex-direction: column; align-items: center; line-height: 1;
}
.rm-eyebrow { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.9px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.rm-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 18px; color: var(--cbm-ink, #0c0a09); margin-top: 2px; max-width: 220px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rm-loading { padding: 40px 16px; text-align: center; font-family: var(--cbm-body-font); color: var(--cbm-muted, #777169);
}
.rm-body { padding: 14px 16px calc(20px + var(--f7-safe-area-bottom, 0px)); display: flex; flex-direction: column; gap: 12px;
}
.rm-card { background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: var(--cbm-radius-xl, 16px); padding: 16px; box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0,0,0,0.04));
}
.rm-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px;
}
.rm-status { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.4px; color: var(--cbm-body-strong, #292524); background: var(--cbm-surface-strong, #f0efed); border-radius: 9999px; padding: 3px 10px;
}
.rm-progress { display: flex; align-items: center; gap: 10px;
}
.rm-bar { flex: 1 1 auto; height: 7px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); overflow: hidden; display: block;
}
.rm-bar-fill { display: block; height: 100%; border-radius: 9999px; background: var(--cbm-ink-pill, #292524);
}
.rm-pct { font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600; color: var(--cbm-body-strong, #292524); min-width: 38px; text-align: right;
}
.rm-dates { display: flex; justify-content: space-between; margin-top: 8px; font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.rm-overdue { color: var(--cbm-error, #dc2626); font-weight: 600;
}
.rm-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.rm-stat { background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: var(--cbm-radius-xl, 16px); padding: 14px 16px;
}
.rm-stat-num { display: block; font-family: var(--cbm-display-font); font-weight: 400; font-size: 22px; line-height: 1; color: var(--cbm-ink, #0c0a09);
}
.rm-stat-num.rm-neg { color: var(--cbm-error, #dc2626);
}
.rm-stat-label { display: block; margin-top: 5px; font-family: var(--cbm-body-font); font-size: 12px; color: var(--cbm-muted, #777169); letter-spacing: 0.15px;
}
.rm-bars { display: flex; flex-direction: column; gap: 10px;
}
.rm-bar-row { display: flex; align-items: center; gap: 10px;
}
.rm-bar-label { flex: 0 0 92px; font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-body, #4e4e4e); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rm-bar-track { flex: 1 1 auto; height: 8px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); overflow: hidden;
}
.rm-bar-fillc { display: block; height: 100%; border-radius: 9999px; min-width: 3px;
}
.rm-bar-val { flex: 0 0 auto; font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 600; color: var(--cbm-body-strong, #292524); min-width: 26px; text-align: right;
}
.rm-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px;
}
.rm-two-cell { text-align: center;
}
.rm-two-num { display: block; font-family: var(--cbm-display-font); font-size: 24px; color: var(--cbm-ink, #0c0a09); line-height: 1;
}
.rm-two-label { display: block; margin-top: 4px; font-family: var(--cbm-body-font); font-size: 12px; color: var(--cbm-muted, #777169);
}
.rm-chips { display: flex; flex-wrap: wrap; gap: 8px;
}
.rm-chip { font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; color: var(--cbm-body, #4e4e4e); background: var(--cbm-surface-strong, #f0efed); border-radius: 9999px; padding: 5px 12px;
}
.rm-chip.prio-high { background: rgba(220,38,38,0.08); color: var(--cbm-error, #dc2626);
}

/* Profitability P&L — editorial label→value rows with hairline rhythm. */
.rm-pl { display: flex; flex-direction: column;
}
.rm-pl-row {
    display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
    min-height: 40px; padding: 7px 0;
}
.rm-pl-label { font-family: var(--cbm-body-font); font-size: 13.5px; color: var(--cbm-body, #4e4e4e); letter-spacing: 0.15px;
}
.rm-pl-val {
    font-family: var(--cbm-display-font); font-weight: 400; font-size: 17px; line-height: 1;
    color: var(--cbm-ink, #0c0a09); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.rm-pl-row.is-strong .rm-pl-label { font-weight: 600; color: var(--cbm-body-strong, #292524);
}
.rm-pl-row.is-strong .rm-pl-val { font-size: 19px;
}
.rm-pl-val.rm-pos { color: var(--cbm-success, #16a34a);
}
.rm-pl-val.rm-neg { color: var(--cbm-error, #dc2626);
}
.rm-pl-pct { font-family: var(--cbm-body-font); font-size: 12px; font-weight: 500; color: var(--cbm-muted, #777169);
}
.rm-pl-sep { height: 1px; background: var(--cbm-hairline, #e7e5e4); margin: 6px 0;
}

/* Team workload — one member per row. */
.rm-team { display: flex; flex-direction: column;
}
.rm-team-row {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 44px; padding: 6px 0; border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}
.rm-team-row:first-child { border-top: 0;
}
.rm-team-name { font-family: var(--cbm-body-font); font-size: 14px; font-weight: 500; color: var(--cbm-ink, #0c0a09); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.rm-team-stats { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto;
}
.rm-team-stat { font-family: var(--cbm-body-font); font-size: 13px; color: var(--cbm-body, #4e4e4e); font-variant-numeric: tabular-nums;
}
.rm-team-stat strong { color: var(--cbm-ink, #0c0a09); font-weight: 600;
}
.rm-team-late { font-family: var(--cbm-body-font); font-size: 11.5px; font-weight: 600; color: var(--cbm-error, #dc2626); background: rgba(220,38,38,0.08); border-radius: 9999px; padding: 2px 8px;
}
.rm-team-hours { font-family: var(--cbm-body-font); font-size: 12px; color: var(--cbm-muted, #777169); background: var(--cbm-surface-strong, #f0efed); border-radius: 9999px; padding: 2px 8px;
}

.cbm-empty[data-v-48b43136] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 56px 28px 40px;
    gap: 10px;
}
.cbm-empty-orb[data-v-48b43136] {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface-strong);
    color: var(--cbm-muted);
    margin-bottom: 4px;
}
.cbm-empty-orb i[data-v-48b43136] { font-size: 28px;
}
.cbm-empty-title[data-v-48b43136] {
    font-family: var(--cbm-body-font);
    font-size: 16px;
    font-weight: 500;
    color: var(--cbm-ink);
    letter-spacing: 0.16px;
}
.cbm-empty-hint[data-v-48b43136] {
    font-family: var(--cbm-body-font);
    font-size: 14px;
    color: var(--cbm-muted-soft);
    max-width: 260px;
    line-height: 1.5;
}
.cbm-empty-cta[data-v-48b43136] {
    margin-top: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 44px;
    padding: 0 22px;
    border-radius: 9999px;
    background: var(--cbm-ink-pill);
    color: var(--cbm-on-primary);
    font-family: var(--cbm-body-font);
    font-size: 15px;
    font-weight: 500;
    transition: transform 120ms cubic-bezier(.4, 0, .2, 1);
}
.cbm-empty-cta i[data-v-48b43136] { font-size: 17px;
}
.cbm-empty-cta[data-v-48b43136]:active { transform: scale(0.97);
}
@media (prefers-reduced-motion: reduce) {
.cbm-empty-cta[data-v-48b43136] { transition: none;
}
.cbm-empty-cta[data-v-48b43136]:active { transform: none;
}
}

.badge-profile-image {
        height: 40px;
        width: 40px;
        border-radius: 50%;
}

.badge-profile-image {
    height: 40px;
    width: 40px;
    border-radius: 50%;
}

.deal-stage-badge.badge-actionable {
    cursor: pointer;
}

/* Scroll the popup itself so tall content (Title + Details + the follow-up section)
   is reachable; the wrap fills it when content is short. */
.dn-popup { background: var(--cbm-canvas, #f5f5f5); overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.dn-wrap { padding: 0 16px calc(20px + env(safe-area-inset-bottom)); background: var(--cbm-canvas, #f5f5f5); min-height: 100%; box-sizing: border-box;
}
.dn-head { position: relative; padding: 24px 4px 8px; overflow: visible;
}
.dn-orb {
    position: absolute; top: -48px; right: -34px; width: 160px; height: 160px;
    border-radius: 9999px; opacity: 0.5; pointer-events: none; filter: blur(8px); z-index: 0;
    background: radial-gradient(circle at center, var(--cbm-gradient-lavender, #c8b8e0) 0%, transparent 70%);
}
.dn-eyebrow { position: relative; font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted, #777169); margin-bottom: 4px;
}
.dn-head-row { position: relative; display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
}
.dn-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 26px; line-height: 1.13; color: var(--cbm-ink, #0c0a09); margin: 0;
}
.dn-close { flex: 0 0 auto; font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; color: var(--cbm-ink, #0c0a09);
}
.dn-popup .cbm-field { padding: 8px 0 4px;
}
.dn-popup .dn-input, .dn-popup .dn-textarea {
    width: 100%; box-sizing: border-box; padding: 0 12px;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px); color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px;
    transition: border-color 160ms cubic-bezier(.4, 0, .2, 1);
}
.dn-popup .dn-input { height: 46px;
}
.dn-popup .dn-textarea { min-height: 104px; padding: 12px; line-height: 1.5; resize: vertical;
}
.dn-popup .dn-input::placeholder, .dn-popup .dn-textarea::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.dn-popup .dn-input:focus, .dn-popup .dn-textarea:focus { outline: none; border-color: var(--cbm-ink, #0c0a09);
}
.dn-cta { margin-top: 18px; padding: 0 2px;
}
.dn-submit {
    width: 100%; height: 50px; border: 0; border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px; cursor: pointer;
}
.dn-submit:disabled { opacity: 0.5;
}
.dn-submit:active:not(:disabled) { background: var(--cbm-ink-pill-active, #0c0a09);
}
@media (prefers-reduced-motion: reduce) {
.dn-popup .dn-input, .dn-popup .dn-textarea { transition: none;
}
}

/* ── Brand form surface (mirrors the standalone followup-create-page so every
   "Add Follow Up" entry point looks identical). Scoped to the popup so it never
   depends on the lazy page's styles being loaded. ──────────────────────────── */
.new-deal-followup-popup .cf-popup-block { margin: 14px 0 0;
}
.new-deal-followup-popup .cf-form { display: flex; flex-direction: column; gap: 6px;
}
.new-deal-followup-popup .cf-readonly {
    width: 100%;
    display: flex; align-items: center; gap: 10px;
    min-height: 52px; padding: 0 14px;
    background: var(--cbm-surface-strong, #f0efed);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-md, 8px);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px;
}
.new-deal-followup-popup .cf-readonly .cbm-field-ic { color: var(--cbm-muted, #777169);
}
.new-deal-followup-popup .cf-readonly .cbm-field-val { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.new-deal-followup-popup .cf-textarea {
    width: 100%; min-height: 88px; padding: 12px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px; line-height: 1.5;
    resize: vertical; box-sizing: border-box;
}
.new-deal-followup-popup .cf-textarea::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.new-deal-followup-popup .cf-textarea:focus { outline: none; border-color: var(--cbm-ink, #0c0a09);
}
.new-deal-followup-popup .cf-cta { margin: 18px 16px 0;
}
.new-deal-followup-popup .cf-submit {
    width: 100%; height: 50px; border: 0; border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px;
    cursor: pointer;
}
.new-deal-followup-popup .cf-submit:disabled { opacity: 0.5;
}
.new-deal-followup-popup .cf-submit:active:not(:disabled) { background: var(--cbm-ink-pill-active, #0c0a09);
}

/* ── Merged reminder control (toggle + inline "Remind N unit before") ───────── */
.new-deal-followup-popup .cf-remind {
    margin: 8px 16px 4px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-lg, 12px);
    overflow: hidden;
}
.new-deal-followup-popup .cf-remind-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    height: 50px;
    padding: 0 14px;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: var(--cbm-ink, #0c0a09);
}
.new-deal-followup-popup .cf-remind-lead { display: inline-flex; align-items: center; gap: 9px; font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px;
}
.new-deal-followup-popup .cf-remind-lead .icon { color: var(--cbm-muted, #777169);
}

/* iOS-style switch in ink. */
.new-deal-followup-popup .cf-switch {
    flex: 0 0 auto;
    width: 44px; height: 26px;
    border-radius: 9999px;
    background: var(--cbm-hairline-strong, #d6d3d1);
    transition: background 180ms cubic-bezier(.4, 0, .2, 1);
    position: relative;
}
.new-deal-followup-popup .cf-switch.on { background: var(--cbm-ink-pill, #292524);
}
.new-deal-followup-popup .cf-switch-knob {
    position: absolute; top: 3px; left: 3px;
    width: 20px; height: 20px;
    border-radius: 9999px; background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    transition: transform 180ms cubic-bezier(.4, 0, .2, 1);
}
.new-deal-followup-popup .cf-switch.on .cf-switch-knob { transform: translateX(18px);
}
.new-deal-followup-popup .cf-remind-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px 14px;
    border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}
.new-deal-followup-popup .cf-remind-word { font-family: var(--cbm-body-font); font-size: 15px; color: var(--cbm-body, #4e4e4e); letter-spacing: 0.15px;
}
.new-deal-followup-popup .cf-remind-num {
    width: 64px; height: 40px;
    text-align: center;
    background: var(--cbm-canvas-soft, #fafafa);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 16px; font-weight: 600;
    box-sizing: border-box;
}
.new-deal-followup-popup .cf-remind-num:focus { outline: none; border-color: var(--cbm-ink, #0c0a09);
}
.new-deal-followup-popup .cf-remind-unit {
    display: inline-flex; align-items: center; gap: 5px;
    height: 40px; padding: 0 12px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: 9999px;
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 500;
    cursor: pointer;
}
.new-deal-followup-popup .cf-remind-unit:active { background: var(--cbm-surface-strong, #f0efed);
}
.new-deal-followup-popup .cf-remind-unit .icon { color: var(--cbm-muted, #777169);
}

/* ── Unit picker sheet (reuses the shared .cbm-pick glass surface) ──────────── */
.cf-sheet-title {
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px; letter-spacing: -0.2px;
    color: var(--cbm-ink, #0c0a09); padding: 0 2px 8px;
}
.cf-opt-list { max-height: 46vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.cf-opt {
    width: 100%;
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    min-height: 52px; padding: 12px 4px;
    background: transparent; border: 0;
    border-bottom: 1px solid var(--cbm-hairline, #e7e5e4);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px;
    text-align: left; cursor: pointer;
}
.cf-opt span { flex: 1; min-width: 0;
}
.cf-opt:active { background: var(--cbm-surface-strong, #f0efed);
}
.cf-opt.on { font-weight: 600;
}
.cf-opt.on .icon { color: var(--cbm-ink, #0c0a09);
}
@media (prefers-reduced-motion: reduce) {
.new-deal-followup-popup .cf-switch, .new-deal-followup-popup .cf-switch-knob, .new-deal-followup-popup .cf-remind-num { transition: none;
}
}

.deal-stage-popup { --f7-popup-bg-color: var(--cbm-canvas, #f5f5f5);
}
.dsp { background: var(--cbm-canvas, #f5f5f5); height: 100%; display: flex; flex-direction: column; padding: 16px; box-sizing: border-box;
}
.dsp-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px;
}
.dsp-title { font-family: var(--cbm-display-font); font-weight: 400; font-size: 20px; color: var(--cbm-ink, #0c0a09);
}
.dsp-x { color: var(--cbm-muted, #777169);
}
.dsp-banner { display: flex; align-items: flex-start; gap: 9px; background: var(--cbm-surface-strong, #f0efed); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: var(--cbm-radius-lg, 12px); padding: 12px 14px; font-family: var(--cbm-body-font); font-size: 13.5px; line-height: 1.45; letter-spacing: 0.15px; color: var(--cbm-body, #4e4e4e);
}
.dsp-banner .icon { color: var(--cbm-muted, #777169); flex: 0 0 auto; margin-top: 1px;
}
.dsp-body { margin-top: 16px; display: flex; flex-direction: column; gap: 14px;
}
.dsp-field { display: flex; flex-direction: column; gap: 6px;
}
.dsp-label { font-family: var(--cbm-body-font); font-size: 12px; letter-spacing: 0.3px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.dsp-label i { color: var(--cbm-error, #dc2626); font-style: normal;
}
.dsp-field input, .dsp-field textarea { border: 1px solid var(--cbm-hairline-strong, #d6d3d1); border-radius: 12px; padding: 11px 13px; font-family: var(--cbm-body-font); font-size: 15px; color: var(--cbm-ink, #0c0a09); background: var(--cbm-surface, #fff); outline: none; width: 100%; box-sizing: border-box;
}
.dsp-field textarea { resize: vertical; min-height: 80px;
}
.dsp-readonly { background: var(--cbm-surface-strong, #f0efed) !important; color: var(--cbm-body, #4e4e4e) !important;
}
.dsp-foot { margin-top: auto; padding-top: 16px; display: flex; align-items: center; justify-content: flex-end; gap: 10px;
}
.dsp-cancel { background: transparent; border: 0; color: var(--cbm-muted, #777169); font-family: var(--cbm-body-font); font-size: 14.5px; font-weight: 500; padding: 10px 14px; cursor: pointer;
}
.dsp-save { display: inline-flex; align-items: center; gap: 6px; background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border: 0; height: 42px; padding: 0 20px; border-radius: 9999px; font-family: var(--cbm-body-font); font-size: 14.5px; font-weight: 500; cursor: pointer;
}
.dsp-save:disabled { opacity: 0.5;
}
.dsp-save:active { background: var(--cbm-ink-pill-active, #0c0a09);
}

/* ── Bulk multi-select (list view) ───────────────────────────────────────── */
.deal-bulkbar { display: flex; align-items: center; gap: 12px; padding: 6px 16px 0;
}
.deal-bulk-toggle { display: inline-flex; align-items: center; gap: 5px; color: var(--cbm-ink, #0c0a09); font-size: 13.5px; font-weight: 500;
}
.deal-bulk-count { color: var(--cbm-muted, #777169); font-size: 12.5px;
}
.deal-bulk-all { margin-left: auto; color: var(--cbm-ink, #0c0a09); font-size: 13px; font-weight: 500;
}
.deal-bulk-export { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; color: var(--cbm-ink, #0c0a09); font-size: 13px; font-weight: 500;
}
.deal-sel-wrap { display: flex; align-items: stretch; gap: 6px;
}
.deal-sel-check { flex: 0 0 auto; display: flex; align-items: center; padding-left: 8px; color: var(--cbm-ink-pill, #292524);
}
.deal-sel-body { flex: 1; min-width: 0; position: relative;
}
.deal-sel-mask { position: absolute; inset: 0; z-index: 5;
}
.search-list.has-bulkbar { padding-bottom: 84px;
}
.deal-bulk-actions {
    position: fixed; left: 12px; right: 12px; bottom: calc(116px + var(--f7-safe-area-bottom));
    z-index: 600; display: flex; gap: 8px; padding: 8px;
    background: var(--cbm-glass-bg-strong, rgba(245,245,245,0.95));
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1); border-radius: 16px;
    box-shadow: 0 -6px 24px rgba(12,10,9,0.14);
}
.deal-bulk-actions .dba-btn {
    flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 8px 4px; border-radius: 12px; color: var(--cbm-ink, #0c0a09); font-size: 12px; font-weight: 500;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
}
.deal-bulk-actions .dba-btn.dba-danger { color: var(--cbm-semantic-error, #dc2626);
}
.deal-bulk-actions .dba-btn:active { background: var(--cbm-surface-strong, #f0efed);
}

/* ── List / Kanban view toggle (navbar) ──────────────────────────────────── */
.deals-navbar .title {
    margin-left: 16px;
}
/* Pipeline eyebrow on the list card (breathing space above the deal name). */
.dl-pipe {
    margin-bottom: 7px;
}
/* Pipeline name above the kanban board. */
.deal-board-pipeline {
    padding: 4px 16px 12px;
}
/* Kanban card header: name (left) + changeable stage badge (right). */
.dbc-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}
.dbc-head .dbc-name {
    flex: 1;
    min-width: 0;
}
.dbc-head .deal-stage-badge {
    flex: 0 0 auto;
}
.deal-view-toggle {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    /* Clear the fixed global notification bell at the top-right. */
    margin-right: 56px;
    background: var(--cbm-surface-strong, #f0efed);
    border-radius: 9999px;
}
.deal-view-toggle .dv-seg {
    -webkit-appearance: none;
            appearance: none;
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 11px;
    border-radius: 9999px;
    font-family: var(--cbm-body-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.2px;
    color: var(--cbm-body, #44403c);
    cursor: pointer;
}
.deal-view-toggle .dv-seg.active {
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #ffffff);
}
.deal-view-toggle .dv-seg i { font-size: 15px;
}

/* Bottom control bar styles (.deal-bottom-controls / .deal-bottom-row / .db-*)
   are defined globally in app.scss so every list page is styled regardless of
   load order. Only the deal-specific FAB offset stays here. */
/* Lift the create-deal FAB above the bottom controls (no tab bar anymore). */
#deal-list .fab-right-bottom {
    bottom: calc(16px + 118px + var(--f7-safe-area-bottom));
}

/* Deal history timeline sheet */
.deal-history .dh-scroll { max-height: 56vh; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 6px 16px 16px;
}
.deal-history .dh-empty { text-align: center; color: var(--cbm-muted, #777169); padding: 28px 0;
}
.deal-history .dh-item { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.deal-history .dh-item:last-child { border-bottom: 0;
}
.deal-history .dh-dot { flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%; margin-top: 4px;
}
.deal-history .dh-body { flex: 1; min-width: 0;
}
.deal-history .dh-title { color: var(--cbm-ink, #0c0a09); font-size: 14.5px; font-weight: 500;
}
.deal-history .dh-meta { color: var(--cbm-muted, #777169); font-size: 12.5px; margin-top: 2px;
}

/* Stage-move sheet styles (.stage-pick-*) live in app.scss so the deals list
   sheet shares them. */
/* ── Deal detail: fixed bottom stack (sections + thumb action row) ─────────── */
.ds-bottom {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
    background-color: var(--cbm-canvas-soft);
    border-top: 1px solid var(--cbm-hairline);
}
/* Row 1 — sub-section chips (scrollable, with counts) */
.ds-sections {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 10px 16px;
    border-bottom: 1px solid var(--cbm-hairline);
}
.ds-sections::-webkit-scrollbar { display: none;
}
.ds-chip {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    padding: 0 12px;
    border: 1px solid var(--cbm-hairline-strong);
    border-radius: 9999px;
    background-color: var(--cbm-surface);
    color: var(--cbm-ink);
    font-size: 13px;
    font-weight: 500;
}
.ds-chip:active {
    background-color: var(--cbm-surface-strong);
}
.ds-count {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background-color: var(--cbm-ink-pill);
    color: var(--cbm-on-primary);
    font-size: 11px;
    font-weight: 600;
}
/* Row 2 — back + quick actions + more */
.ds-actions-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px calc(10px + var(--f7-safe-area-bottom, 0px));
}
.ds-back,
.ds-more {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cbm-hairline-strong);
    border-radius: 9999px;
    color: var(--cbm-ink);
    background: var(--cbm-surface);
}
.ds-back:active,
.ds-more:active {
    background: var(--cbm-surface-strong);
}
.ds-back i.f7-icons,
.ds-more i.f7-icons {
    font-size: 20px;
}
.ds-quick {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
}
.ds-quick::-webkit-scrollbar { display: none;
}
/* Clearance so the page content scrolls free of the fixed stack. */
.ds-bottom-spacer {
    height: 132px;
}

.cf-checkbox-block {
    list-style: none;
    padding: 10px 16px;
}
.cf-checkbox-block .cf-checkbox-label {
    font-size: 12px;
    color: var(--cbm-muted, #777169);
    margin-bottom: 6px;
}
.cf-checkbox-block .cf-checkbox-options {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}
.cf-checkbox-block .cf-checkbox-text {
    margin-left: 6px;
    font-size: 14px;
}

.cdw { margin: 4px 16px 0;
}
.cdw-banner {
    width: 100%;
    display: flex; align-items: center; gap: 11px;
    padding: 10px 12px;
    border-radius: var(--cbm-radius-lg, 12px);
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; letter-spacing: 0.1px;
    cursor: pointer; text-align: left;
}
.cdw-banner-ic {
    flex: 0 0 auto; width: 32px; height: 32px; border-radius: 9999px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09);
}
.cdw-banner-text { flex: 1; min-width: 0;
}
.cdw-caret { flex: 0 0 auto; color: var(--cbm-muted-soft, #a8a29e);
}
.cdw-hint { font-family: var(--cbm-body-font); font-size: 13px; color: var(--cbm-muted, #777169); margin: 0 2px 10px; line-height: 1.45;
}
.cdw-list { max-height: 46vh; overflow-y: auto; -webkit-overflow-scrolling: touch; display: flex; flex-direction: column; gap: 8px;
}
.cdw-card {
    width: 100%;
    display: flex; align-items: center; gap: 10px;
    padding: 12px 14px;
    border-radius: var(--cbm-radius-md, 8px);
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    color: var(--cbm-ink, #0c0a09);
    cursor: pointer; text-align: left;
}
.cdw-card:active { background: var(--cbm-surface-strong, #f0efed);
}
.cdw-card-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.cdw-card-name { font-family: var(--cbm-body-font); font-size: 15px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cdw-card-sub { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cdw-card-go { flex: 0 0 auto; color: var(--cbm-muted-soft, #a8a29e);
}
.cdw-anyway {
    width: 100%; height: 46px; margin-top: 14px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1); border-radius: 9999px;
    background: transparent; color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 500; cursor: pointer;
}
.cdw-anyway:active { background: var(--cbm-surface-strong, #f0efed);
}

.smart-select-page .list li.disabled {
    display: none;
}
.cbm-form-submit {
    padding: 8px 16px 0;
}
.lead-mode-row {
    list-style: none;
    padding: 10px 16px 6px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.lead-mode-row .lead-mode-label {
    font-size: 13px;
    color: var(--cbm-ink, #2b2b2b);
    opacity: 0.7;
}
.lead-mode-row .lead-mode-seg {
    flex: 0 0 auto;
    width: 190px;
}

.cf-wrap {
    padding: 0 16px 28px;
    background: var(--cbm-canvas);
    min-height: 100%;
}
.cf-head {
    position: relative;
    padding: 18px 4px 10px;
    overflow: visible;
}
.cf-orb {
    position: absolute;
    top: -54px;
    right: -36px;
    width: 170px;
    height: 170px;
    border-radius: 9999px;
    opacity: 0.5;
    pointer-events: none;
    filter: blur(8px);
    z-index: 0;
    background: radial-gradient(circle at center, var(--cbm-peach, #f4c5a8) 0%, transparent 70%);
}
.cf-eyebrow {
    position: relative;
    font-family: var(--cbm-body-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.96px;
    text-transform: uppercase;
    color: var(--cbm-muted);
    margin-bottom: 4px;
}
.cf-title {
    position: relative;
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 26px;
    line-height: 1.13;
    color: var(--cbm-ink);
    margin: 0;
}

/* The fields stack with a steady rhythm (each .cbm-field has its own padding). */
.cf-form { display: flex; flex-direction: column; gap: 6px;
}

/* Branded multiline remark, matching the .cbm-field-trigger surface. */
.cf-textarea {
    width: 100%;
    min-height: 88px;
    padding: 12px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font);
    font-size: 15px;
    letter-spacing: 0.15px;
    line-height: 1.5;
    resize: vertical;
    box-sizing: border-box;
    transition: border-color 160ms cubic-bezier(.4, 0, .2, 1);
}
.cf-textarea::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.cf-textarea:focus { outline: none; border-color: var(--cbm-ink, #0c0a09);
}

/* ── Reminder control (toggle + inline "Remind N unit before") ─────────────── */
.cf-remind {
    margin: 8px 16px 4px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-lg, 12px);
    overflow: hidden;
}
.cf-remind-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    height: 50px;
    padding: 0 14px;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: var(--cbm-ink, #0c0a09);
}
.cf-remind-lead { display: inline-flex; align-items: center; gap: 9px; font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px;
}
.cf-remind-lead .icon { color: var(--cbm-muted, #777169);
}

/* iOS-style switch in ink. */
.cf-switch {
    flex: 0 0 auto;
    width: 44px; height: 26px;
    border-radius: 9999px;
    background: var(--cbm-hairline-strong, #d6d3d1);
    transition: background 180ms cubic-bezier(.4, 0, .2, 1);
    position: relative;
}
.cf-switch.on { background: var(--cbm-ink-pill, #292524);
}
.cf-switch-knob {
    position: absolute; top: 3px; left: 3px;
    width: 20px; height: 20px;
    border-radius: 9999px; background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    transition: transform 180ms cubic-bezier(.4, 0, .2, 1);
}
.cf-switch.on .cf-switch-knob { transform: translateX(18px);
}
.cf-remind-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 4px 14px 14px;
    border-top: 1px solid var(--cbm-hairline, #e7e5e4);
    padding-top: 12px;
}
.cf-remind-word { font-family: var(--cbm-body-font); font-size: 15px; color: var(--cbm-body, #4e4e4e); letter-spacing: 0.15px;
}
.cf-remind-num {
    width: 64px; height: 40px;
    text-align: center;
    background: var(--cbm-canvas-soft, #fafafa);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 16px; font-weight: 600;
    box-sizing: border-box;
}
.cf-remind-num:focus { outline: none; border-color: var(--cbm-ink, #0c0a09);
}
.cf-remind-unit {
    display: inline-flex; align-items: center; gap: 5px;
    height: 40px; padding: 0 12px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: 9999px;
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 500;
    cursor: pointer;
}
.cf-remind-unit:active { background: var(--cbm-surface-strong, #f0efed);
}
.cf-remind-unit .icon { color: var(--cbm-muted, #777169);
}

/* ── Glass select sheets (reuse the shared .cbm-pick* surface) ─────────────── */
.cf-sheet-title {
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px; letter-spacing: -0.2px;
    color: var(--cbm-ink, #0c0a09); padding: 0 2px 8px;
}
.cf-opt-list { max-height: 46vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.cf-opt {
    width: 100%;
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    min-height: 52px; padding: 12px 4px;
    background: transparent; border: 0;
    border-bottom: 1px solid var(--cbm-hairline, #e7e5e4);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px;
    text-align: left; cursor: pointer;
}
.cf-opt span { flex: 1; min-width: 0;
}
.cf-opt:active { background: var(--cbm-surface-strong, #f0efed);
}
.cf-opt.on { font-weight: 600;
}
.cf-opt.on .icon { color: var(--cbm-ink, #0c0a09);
}
.cf-opt-empty { padding: 18px 4px; text-align: center; color: var(--cbm-muted-soft, #a8a29e); font-family: var(--cbm-body-font); font-size: 14px;
}
.cf-sheet-search {
    display: flex; align-items: center; gap: 8px;
    margin-top: 10px; padding: 0 12px;
    height: 44px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px);
}
.cf-sheet-search .icon { color: var(--cbm-muted, #777169); flex: 0 0 auto;
}
.cf-sheet-search input {
    flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
    color: var(--cbm-ink, #0c0a09); font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px;
}

/* ── CTA ───────────────────────────────────────────────────────────────────── */
.cf-cta {
    margin-top: 18px;
    padding: 0 6px;
}
.cf-submit {
    width: 100%;
    height: 50px;
    border: 0;
    border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #ffffff);
    font-family: var(--cbm-body-font);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.15px;
}
.cf-submit:disabled {
    opacity: 0.5;
}
.cf-submit:active:not(:disabled) {
    background: var(--cbm-ink-pill-active, #0c0a09);
}
@media (prefers-reduced-motion: reduce) {
.cf-switch, .cf-switch-knob, .cf-textarea, .cf-remind-num { transition: none;
}
}

.cf-wrap { padding: 0 16px 28px; background: var(--cbm-canvas); min-height: 100%;
}
.cf-head { position: relative; padding: 18px 4px 10px; overflow: visible;
}
.cf-orb {
    position: absolute; top: -54px; right: -36px; width: 170px; height: 170px;
    border-radius: 9999px; opacity: 0.5; pointer-events: none; filter: blur(8px); z-index: 0;
    background: radial-gradient(circle at center, var(--cbm-peach, #f4c5a8) 0%, transparent 70%);
}
.cf-orb-lavender { background: radial-gradient(circle at center, var(--cbm-lavender, #c8b8e0) 0%, transparent 70%);
}
.cf-eyebrow { position: relative; font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted); margin-bottom: 4px;
}
.cf-title { position: relative; font-family: var(--cbm-display-font); font-weight: 300; font-size: 26px; line-height: 1.13; color: var(--cbm-ink); margin: 0;
}
.cf-form { display: flex; flex-direction: column; gap: 6px;
}
.cf-page .np-input, .cf-page .np-textarea {
    width: 100%; box-sizing: border-box; padding: 0 12px;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px); color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px;
    transition: border-color 160ms cubic-bezier(.4, 0, .2, 1);
}
.cf-page .np-input { height: 46px;
}
.cf-page .np-textarea { min-height: 96px; padding: 12px; line-height: 1.5; resize: vertical;
}
.cf-page .np-input::placeholder, .cf-page .np-textarea::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.cf-page .np-input:focus, .cf-page .np-textarea:focus { outline: none; border-color: var(--cbm-ink, #0c0a09);
}

/* Deal picker sheet (reuses the global .cbm-pick glass shell). */
.np-sheet-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09); padding: 0 2px 8px;
}
.np-opt-list { max-height: 46vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.np-opt {
    width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px;
    min-height: 52px; padding: 12px 4px; background: transparent; border: 0;
    border-bottom: 1px solid var(--cbm-hairline, #e7e5e4); color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px; text-align: left; cursor: pointer;
}
.np-opt span { flex: 1; min-width: 0;
}
.np-opt:active { background: var(--cbm-surface-strong, #f0efed);
}
.np-opt.on { font-weight: 600;
}
.np-opt-empty { padding: 18px 4px; text-align: center; color: var(--cbm-muted-soft, #a8a29e); font-family: var(--cbm-body-font); font-size: 14px;
}
.np-sheet-search {
    display: flex; align-items: center; gap: 8px; margin-top: 10px; padding: 0 12px; height: 44px;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline-strong, #d6d3d1); border-radius: var(--cbm-radius-md, 8px);
}
.np-sheet-search .icon { color: var(--cbm-muted, #777169); flex: 0 0 auto;
}
.np-sheet-search input { flex: 1; min-width: 0; border: 0; background: transparent; outline: none; color: var(--cbm-ink, #0c0a09); font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px;
}
.cf-cta { margin-top: 18px; padding: 0 6px;
}
.cf-submit {
    width: 100%; height: 50px; border: 0; border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #ffffff);
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px;
}
.cf-submit:disabled { opacity: 0.5;
}
.cf-submit:active:not(:disabled) { background: var(--cbm-ink-pill-active, #0c0a09);
}
@media (prefers-reduced-motion: reduce) {
.cf-page .np-input, .cf-page .np-textarea { transition: none;
}
}

#employee-list .badge {
    min-width: unset;
    width: 12px;
    height: 12px
}

.badge-profile-image {
    height: 40px;
    width: 40px;
    border-radius: 50%;
}
.rep-person {
    display: flex;
    align-items: center;
    gap: 8px;
}
.rep-avatar {
    height: 28px;
    width: 28px;
    border-radius: 50%;
    object-fit: cover;
}
.rep-avatar-lg {
    border-radius: 50%;
    object-fit: cover;
}
.rep-team-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 4px;
}
.rep-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
    background: var(--cbm-surface-strong, #efeae3);
    color: var(--cbm-ink, #1b1b1b);
}
.rep-empty {
    padding: 4px 16px 8px;
    color: var(--cbm-muted, #8a8a8a);
    font-size: 13px;
}
.rep-orglink {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 8px 16px 4px;
    font-size: 13px;
    font-weight: 600;
    color: var(--cbm-ink, #1b1b1b);
}

.passwordShowHide {
        z-index: 9;
        padding: 18px;
        position: absolute;
        right: 0;
}
.passwordShowHide div {
        display: none !important;
}
.passwordShowHide i {
        font-size: 18px;
        color: var(--cbm-muted);
}

.passwordShowHide {
    z-index: 9;
    padding: 18px;
    position: absolute;
    right: 0;
}
.passwordShowHide div {
    display: none !important;
}
.passwordShowHide i {
    font-size: 18px;
    color: var(--cbm-muted);
}
/* Org chart — shared styles (imported by org-chart.vue AND the recursive
   org-node.vue; scoped styles can't cross component boundaries). All colours are
   --cbm-* tokens so light/dark just re-pigment. */

/* ── top bar ───────────────────────────────────────────────────────────── */
.org-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px 8px;
}
.org-summary {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.org-eyebrow {
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cbm-muted, #777169);
}
.org-stat {
    font-family: var(--cbm-display-font, 'EB Garamond', serif);
    font-weight: 300;
    font-size: 19px;
    color: var(--cbm-ink, #0c0a09);
}
.org-controls {
    display: flex;
    gap: 6px;
    flex: 0 0 auto;
}
.org-ctl {
    width: auto;
    height: 30px;
    padding: 0 13px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 500;
    color: var(--cbm-ink, #0c0a09);
    background: var(--cbm-surface-strong, #f0efed);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
}

.org-tree {
    padding: 6px 14px 16px;
}

/* ── grouped subtree panel ─────────────────────────────────────────────── */
/* a manager's reports sit inside a soft contained panel, indented under the
   manager, with a colour rail (set inline to the manager's level tint). */
.org-group {
    margin: 2px 0 8px 16px;
    padding: 10px 10px 2px;
    background: var(--cbm-surface-strong, #f0efed);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-left: 4px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: 16px;
}

/* ── node card ─────────────────────────────────────────────────────────── */
.org-card {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    margin-bottom: 8px;
    padding: 10px 12px;
    background: var(--cbm-surface, #ffffff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: 14px;
    cursor: pointer;
    transition: box-shadow 160ms ease, transform 160ms ease;
}
.org-card:active {
    transform: scale(0.99);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}
.org-card.is-root {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

/* avatar with soft level ring */
.org-ava {
    flex: 0 0 auto;
    align-self: center;
    display: inline-flex;
    border-radius: 50%;
}
.org-avatar,
.org-initials {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex: 0 0 40px;
    object-fit: cover;
    display: flex;
    align-items: center;
    justify-content: center;
}
.org-initials {
    font-size: 14px;
    font-weight: 600;
    color: #1b1b1b;
}

.org-meta {
    align-self: center;
    min-width: 0;
    flex: 1 1 auto;
}
.org-name {
    font-family: var(--cbm-display-font, 'EB Garamond', serif);
    font-weight: 400;
    font-size: 17px;
    line-height: 1.25;
    color: var(--cbm-ink, #0c0a09);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.org-sub {
    font-size: 12px;
    letter-spacing: 0.1px;
    color: var(--cbm-muted, #777169);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 1px;
}
.org-count {
    align-self: center;
    flex: 0 0 auto;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 600;
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-ink, #0c0a09);
}
/* on the grey group panel, the neutral count pill would blend — flip it to white */
.org-group .org-count {
    background: var(--cbm-surface, #ffffff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
}
/* dedicated "open profile" action — ink pill (primary), distinct from the
   neutral expand chevron; on dark the pill flips to bone + ink glyph via tokens */
.org-open {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--cbm-ink-pill, #292524);
    border: none;
    color: var(--cbm-on-primary, #ffffff);
    transition: transform 160ms ease;
}
.org-open:active {
    transform: scale(0.92);
}
.org-toggle {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--cbm-surface, #ffffff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    color: var(--cbm-ink, #0c0a09);
}

.org-empty {
    padding: 24px 16px;
    text-align: center;
    color: var(--cbm-muted, #777169);
    font-size: 13px;
}

#selected[data-v-69bdf051] {
    background-color: var(--cbm-surface-strong, rgba(0, 0, 0, 0.08));
}

/* Inline approve/reject row on pending expense cards */
.exp-approve-row {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--cbm-hairline);
}
.exp-btn {
    flex: 1;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 500;
    border: 1px solid var(--cbm-hairline-strong);
    color: var(--cbm-ink);
}
.exp-btn i {
    font-size: 15px;
}
.exp-btn-approve {
    background: var(--cbm-ink-pill);
    border-color: var(--cbm-ink-pill);
    color: var(--cbm-on-primary);
}
.exp-btn-approve:active {
    background: var(--cbm-ink-pill-active);
}
.exp-btn-reject {
    background: transparent;
    color: var(--cbm-error);
    border-color: rgba(220, 38, 38, 0.35);
}
.exp-btn-reject:active {
    background: rgba(220, 38, 38, 0.06);
}

.badge-profile-image {
    height: 40px;
    width: 40px;
    border-radius: 50%;
}

/* "Scan a receipt" CTA — native OCR pre-fill (build-only). */
.exp-scan {
    width: auto; display: flex; align-items: center; gap: 9px;
    margin: 14px 16px 2px; padding: 11px 16px 11px 11px;
    border-radius: 9999px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; letter-spacing: 0.1px;
    cursor: pointer;
}
.exp-scan:active { background: var(--cbm-surface-strong, #f0efed);
}
.exp-scan:disabled { opacity: 0.6;
}
.exp-scan-ic {
    flex: 0 0 auto; width: 30px; height: 30px; border-radius: 9999px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
}
.exp-scan-label { flex: 1; text-align: left;
}
.exp-scan-spark { color: var(--cbm-muted-soft, #a8a29e);
}

#selected[data-v-709acb42] {
    background-color: var(--cbm-surface-strong, rgba(0, 0, 0, 0.08));
}

/* ── Team attendance — editorial cards + roster ───────────────────────────── */
.att-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 4px 16px 8px;
}
.att-card {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 14px 14px 13px;
    background: var(--cbm-surface);
    border: 1px solid var(--cbm-hairline);
    border-radius: 16px;
    color: var(--cbm-ink);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.att-card.active {
    border-color: var(--cbm-ink-pill);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}
.att-card-orb {
    position: absolute;
    right: -22px;
    top: -26px;
    width: 80px;
    height: 80px;
    border-radius: 9999px;
    opacity: 0.5;
    pointer-events: none;
}
.att-orb-mint { background: radial-gradient(circle at center, var(--cbm-gradient-mint, #a7e5d3) 0%, rgba(167,229,211,0) 70%);
}
.att-orb-rose { background: radial-gradient(circle at center, var(--cbm-gradient-rose, #e8b8c4) 0%, rgba(232,184,196,0) 70%);
}
.att-orb-sky  { background: radial-gradient(circle at center, var(--cbm-gradient-sky, #a8c8e8) 0%, rgba(168,200,232,0) 70%);
}
.att-card .att-dot {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: 9999px;
}
.att-card-num {
    position: relative;
    font-family: var(--cbm-display-font, serif);
    font-weight: 300;
    font-size: 30px;
    line-height: 1.05;
    letter-spacing: -0.6px;
    color: var(--cbm-ink);
}
.att-card-cap {
    position: relative;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--cbm-muted);
}
.att-dot-present { background: var(--cbm-success, #16a34a);
}
.att-dot-absent { background: var(--cbm-error, #dc2626);
}

/* Icon legend (key) */
.att-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    margin: 0 16px 4px;
    padding: 9px 14px;
    background: var(--cbm-canvas-soft);
    border: 1px solid var(--cbm-hairline);
    border-radius: 12px;
}
.att-legend-cap {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    color: var(--cbm-muted);
    margin-right: 2px;
}
.att-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11.5px;
    color: var(--cbm-body);
}
.att-legend-item i {
    color: var(--cbm-muted-soft);
}
.att-legend-item i.lg-late { color: var(--cbm-warning, #d97706);
}
.att-legend-item i.lg-half { color: var(--cbm-pink, #c026d3);
}
.att-legend-item i.lg-rate { color: var(--cbm-success);
}

/* Roster rows (voice-row style) */
.att-list {
    padding: 6px 16px 4px;
}
.att-empty {
    text-align: center;
    color: var(--cbm-muted-soft);
    font-size: 14px;
    padding: 36px 24px;
}
.att-row {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 11px 2px;
    border-bottom: 1px solid var(--cbm-hairline);
    cursor: pointer;
}
.att-row:last-child { border-bottom: none;
}
.att-row:active { background: var(--cbm-canvas-soft);
}
.att-avatar {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 9999px;
    object-fit: cover;
    background: var(--cbm-surface-strong);
}
.att-avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 600;
    color: var(--cbm-muted);
}
.att-row-main {
    flex: 1;
    min-width: 0;
}
.att-name {
    font-size: 15px;
    font-weight: 500;
    color: var(--cbm-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.att-sub {
    font-size: 12.5px;
    color: var(--cbm-muted);
    margin-top: 1px;
}
/* Icon-based monthly punctuality chips */
.att-stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    margin-top: 4px;
}
.att-stat {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 12px;
    font-weight: 500;
    color: var(--cbm-muted);
    font-variant-numeric: tabular-nums;
}
.att-stat i {
    color: var(--cbm-muted-soft);
}
.att-stat-late { color: var(--cbm-warning, #b45309);
}
.att-stat-late i { color: var(--cbm-warning, #d97706);
}
.att-stat-half { color: var(--cbm-body);
}
.att-stat-half i { color: var(--cbm-pink, #c026d3);
}
.att-stat-rate { color: var(--cbm-ink); font-weight: 600;
}
.att-stat-rate i { color: var(--cbm-success);
}
.att-clockin {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--cbm-body);
    font-variant-numeric: tabular-nums;
}
.att-halfday {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 9999px;
    background: rgba(220, 38, 38, 0.12);
    color: var(--cbm-error, #dc2626);
    font-size: 11px;
    font-weight: 700;
    font-style: normal;
}
.att-badge-absent {
    flex: 0 0 auto;
    padding: 3px 10px;
    border-radius: 9999px;
    background: rgba(220, 38, 38, 0.1);
    color: var(--cbm-error, #dc2626);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}
/* Self view (normal employee) — today's status row + bottom-bar hint */
.att-self-today {
    display: flex; align-items: center; gap: 8px;
    padding: 12px 14px; margin: 8px 0 2px;
    border-radius: var(--cbm-radius-lg, 14px);
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    color: var(--cbm-ink, #0c0a09); font-size: 14px;
}
.att-self-in { color: var(--cbm-success, #16a34a);
}
.att-self-hint {
    display: flex; align-items: center; justify-content: center;
    color: var(--cbm-muted, #78716c); font-size: 13px;
}
/* Month section header in the full attendance journey */
.att-month-head {
    display: flex; align-items: baseline; justify-content: space-between;
    padding: 14px 4px 6px; margin-top: 4px;
}
.att-month-label {
    font-family: var(--cbm-display-font); font-weight: 400; font-size: 15px;
    color: var(--cbm-ink, #0c0a09);
}
.att-month-meta { font-size: 12px; color: var(--cbm-muted, #78716c);
}

#selected[data-v-088eb26f] {
    background-color: var(--cbm-surface-strong, rgba(0, 0, 0, 0.08));
}

.badge-profile-image {
    height: 40px;
    width: 40px;
    border-radius: 50%;
}

.ios .tabbar-icons .tab-link[data-v-2ea3bb78], .ios .tabbar-icons .link[data-v-2ea3bb78] {
    font-size: small;
}

/* Task labels row + picker */
.task-labels {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}
.tl-chip {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 9999px;
    font-size: 11.5px;
    font-weight: 600;
}
.tl-edit {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 9999px;
    border: 1px dashed var(--cbm-hairline-strong);
    color: var(--cbm-muted);
    font-size: 11.5px;
    font-weight: 500;
}
.tl-dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 9999px;
}
.label-pick-list {
    max-height: 60vh;
    overflow-y: auto;
}

.smart-select-page .list li.disabled {
    display: none;
}

/* ── Team workload — editorial roster with capacity bars ──────────────────── */
.wl-glass {
    position: relative;
    display: flex;
    align-items: baseline;
    gap: 16px;
    flex-wrap: wrap;
    margin: 0 16px;
    padding: 14px 16px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.55);
    -webkit-backdrop-filter: var(--cbm-glass-blur);
    backdrop-filter: var(--cbm-glass-blur);
    border: 1px solid rgba(255, 255, 255, 0.65);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
    border-radius: 16px;
    color: var(--cbm-ink);
    font-size: 13px;
}
.wl-orb {
    position: absolute;
    right: -36px;
    top: -48px;
    width: 150px;
    height: 150px;
    border-radius: 9999px;
    background: radial-gradient(circle at center, var(--cbm-gradient-lavender, #c8b8e0) 0%, rgba(200, 184, 224, 0) 70%);
    opacity: 0.55;
    pointer-events: none;
}
.wl-dot-busy { background: var(--cbm-muted, #777169);
}

/* Legend — the key for the status signs */
.wl-legend-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: auto;
    margin: 10px 16px 0;
    padding: 0;
    background: none;
    border: 0;
    color: var(--cbm-muted);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.2px;
}
.wl-legend-toggle:active { opacity: 0.6;
}
.wl-legend {
    margin: 8px 16px 0;
    padding: 12px 14px;
    background: var(--cbm-surface);
    border: 1px solid var(--cbm-hairline);
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.wl-legend-row {
    display: flex;
    align-items: center;
    gap: 10px;
}
.wl-legend-pill {
    flex: 0 0 auto;
    width: 104px;
    justify-content: flex-start;
}
.wl-legend-text {
    font-size: 12.5px;
    line-height: 1.35;
    color: var(--cbm-body);
}
.wl-legend-note {
    margin-top: 2px;
    padding-top: 9px;
    border-top: 1px solid var(--cbm-hairline);
    font-family: 'EB Garamond', Georgia, serif;
    font-weight: 300;
    font-style: italic;
    font-size: 13px;
    color: var(--cbm-muted);
}

/* Roster cards */
.wl-roster {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 16px 8px;
}
.wl-empty,
.wl-task-empty {
    text-align: center;
    color: var(--cbm-muted-soft);
    font-size: 13px;
    padding: 20px 0;
}
.wl-card {
    background: var(--cbm-surface);
    border: 1px solid var(--cbm-hairline);
    border-radius: 16px;
    overflow: hidden;
    transition: box-shadow 0.18s ease;
}
.wl-card.expanded {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}
.wl-card-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    cursor: pointer;
}
.wl-card-head:active {
    background: var(--cbm-canvas-soft);
}
.wl-avatar {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 9999px;
    object-fit: cover;
    background: var(--cbm-surface-strong);
}
.wl-avatar-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    color: var(--cbm-muted);
}
.wl-card-main {
    flex: 1;
    min-width: 0;
}
.wl-name-line {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 3px;
}
.wl-name {
    font-size: 14px;
    font-weight: 500;
    color: var(--cbm-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wl-status-pill {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 8px;
    border-radius: 9999px;
    background: var(--cbm-surface-strong);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--cbm-body);
}
.wl-pill-overloaded {
    color: var(--cbm-error);
}
.wl-counts {
    display: flex;
    gap: 12px;
    font-size: 12px;
    color: var(--cbm-muted);
    margin-bottom: 6px;
}
.wl-counts strong {
    color: var(--cbm-ink);
    font-weight: 600;
}
.wl-danger,
.wl-danger strong {
    color: var(--cbm-error);
}
.wl-bar {
    height: 4px;
    border-radius: 9999px;
    background: var(--cbm-hairline);
    overflow: hidden;
}
.wl-bar-fill {
    display: block;
    height: 100%;
    border-radius: 9999px;
    background: var(--cbm-ink-pill);
    transition: width 0.4s ease;
}
.wl-bar-danger {
    background: var(--cbm-error);
}
.wl-pct {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 600;
    color: var(--cbm-ink);
    font-variant-numeric: tabular-nums;
}
.wl-chevron {
    flex: 0 0 auto;
    color: var(--cbm-muted-soft);
    transition: transform 0.18s ease;
}
.wl-card.expanded .wl-chevron {
    transform: rotate(180deg);
}

/* Expanded task list */
.wl-tasks {
    border-top: 1px solid var(--cbm-hairline);
    background: var(--cbm-canvas-soft);
}
.wl-task {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px 10px 11px;
    border-bottom: 1px solid var(--cbm-hairline-soft, #f0efed);
    border-left: 3px solid transparent;
    cursor: pointer;
}
.wl-task:last-child {
    border-bottom: none;
}
.wl-task:active {
    background: var(--cbm-surface-strong);
}
/* Aging heat map: green = new today, amber = 1-2 days, red = 3+ days piled up */
.wl-task.wl-age-new {
    border-left-color: var(--cbm-success, #16a34a);
}
.wl-task.wl-age-warm {
    border-left-color: var(--cbm-warning, #d97706);
    background: rgba(217, 119, 6, 0.05);
}
.wl-task.wl-age-hot {
    border-left-color: var(--cbm-error, #dc2626);
    background: rgba(220, 38, 38, 0.05);
}
.wl-task-created {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: var(--cbm-muted-soft);
    margin-top: 3px;
}
.wl-age-chip {
    display: inline-flex;
    align-items: center;
    padding: 1px 7px;
    border-radius: 9999px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}
.wl-age-new .wl-age-chip {
    background: rgba(22, 163, 74, 0.12);
    color: var(--cbm-success, #16a34a);
}
.wl-age-warm .wl-age-chip {
    background: rgba(217, 119, 6, 0.14);
    color: var(--cbm-warning, #b45309);
}
.wl-age-hot .wl-age-chip {
    background: rgba(220, 38, 38, 0.12);
    color: var(--cbm-error, #dc2626);
}
.wl-task-main {
    flex: 1;
    min-width: 0;
}
.wl-task-heading {
    font-size: 13px;
    font-weight: 500;
    color: var(--cbm-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wl-task-meta {
    display: flex;
    gap: 8px;
    font-size: 11.5px;
    color: var(--cbm-muted);
    margin-top: 2px;
}
.wl-task-code {
    color: var(--cbm-muted-soft);
}
.wl-due {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11.5px;
    color: var(--cbm-muted);
}
.wl-due-over {
    color: var(--cbm-error);
    font-weight: 600;
}
.wl-col-pill {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 9999px;
}

.shift-datebar {
    align-items: center;
    justify-content: space-between;
    margin-top: 12px;
}
.shift-nav {
    width: 38px;
    height: 38px;
}
.shift-date {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.15px;
    color: var(--cbm-ink);
}
.shift-card {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--cbm-surface);
    border: 1px solid var(--cbm-hairline);
    border-radius: 16px;
    padding: 12px 14px;
}
.shift-card.shift-today {
    border-color: var(--cbm-ink-pill);
}
.shift-daycol {
    flex: 0 0 auto;
    width: 38px;
    text-align: center;
}
.shift-dow {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--cbm-muted);
}
.shift-dom {
    font-size: 18px;
    font-weight: 600;
    color: var(--cbm-ink);
    line-height: 1.1;
}
.shift-card-main {
    flex: 1;
    min-width: 0;
}
.shift-sub {
    font-size: 12px;
    color: var(--cbm-muted);
    margin-top: 2px;
    text-transform: capitalize;
}
.shift-badge {
    flex: 0 0 auto;
    display: inline-block;
    padding: 4px 10px;
    border-radius: 9999px;
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}
.shift-hint {
    flex: 1;
    text-align: right;
    font-size: 12px;
    color: var(--cbm-muted-soft);
}

.ps-list { padding: 4px 0 8px;
}
.ps-card {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 14px; margin: 8px 0;
    border-radius: var(--cbm-radius-xl, 16px);
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
    cursor: pointer; -webkit-text-decoration: none; text-decoration: none;
}
.ps-card:active { background: var(--cbm-canvas-soft, #fafafa);
}
.ps-card-l { flex: 1 1 auto; min-width: 0;
}
.ps-period {
    font-family: var(--cbm-display-font); font-weight: 400; font-size: 17px;
    color: var(--cbm-ink, #0c0a09); line-height: 1.2;
}
.ps-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 6px;
}
.ps-status {
    font-size: 11px; font-weight: 600; letter-spacing: .02em;
    padding: 2px 8px; border-radius: 999px;
}
.ps-paid { font-size: 12px; color: var(--cbm-muted, #78716c);
}
.ps-card-r { flex: 0 0 auto; text-align: right;
}
.ps-net {
    font-family: var(--cbm-display-font); font-weight: 400; font-size: 18px;
    color: var(--cbm-ink, #0c0a09); white-space: nowrap;
}
.ps-net-cap { font-size: 11px; color: var(--cbm-muted, #78716c); margin-top: 2px;
}
.ps-chev { color: var(--cbm-muted, #a8a29e); flex: 0 0 auto;
}

.ps-show { padding: 4px 0 8px;
}
/* Download payslip — ink-pill primary action in the bottom bar. */
.ps-download {
    flex: 1; width: auto; height: 44px; padding: 0 18px;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    border: 0; border-radius: 9999px; cursor: pointer;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.1px;
}
.ps-download .icon { color: var(--cbm-on-primary, #fff);
}
.ps-download.is-busy { opacity: 0.7;
}
.ps-hero {
    text-align: center; padding: 18px 16px 20px; margin: 8px 0 14px;
    border-radius: var(--cbm-radius-xl, 16px);
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
}
.ps-hero-period {
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px;
    color: var(--cbm-ink, #0c0a09); margin: 4px 0 12px;
}
.ps-hero-net {
    font-family: var(--cbm-display-font); font-weight: 400; font-size: 34px;
    color: var(--cbm-ink, #0c0a09); line-height: 1;
}
.ps-hero-cap { font-size: 12px; color: var(--cbm-muted, #78716c); margin-top: 6px;
}
.ps-hero-status { display: inline-block; margin-top: 12px;
}
.ps-rows {
    margin: 0 0 14px; border-radius: var(--cbm-radius-xl, 16px);
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04)); overflow: hidden;
}
.ps-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 13px 16px; border-bottom: 1px solid var(--cbm-hairline, #f0eeec);
}
.ps-row:last-child { border-bottom: 0;
}
.ps-row-k { color: var(--cbm-muted, #78716c); font-size: 14px;
}
.ps-row-v { color: var(--cbm-ink, #0c0a09); font-weight: 500;
}
.ps-row-neg { color: var(--cbm-rose-ink, #b42334);
}
.ps-row-total .ps-row-k,
.ps-row-total .ps-row-v {
    font-family: var(--cbm-display-font); font-weight: 400; font-size: 17px; color: var(--cbm-ink, #0c0a09);
}
.ps-status {
    font-size: 11px; font-weight: 600; letter-spacing: .02em;
    padding: 2px 8px; border-radius: 999px;
}

.wa-card {
    background: var(--cbm-surface);
    border: 1px solid var(--cbm-hairline);
    border-radius: 16px;
    padding: 14px;
    margin-bottom: 10px;
}
.wa-main {
    cursor: pointer;
}
.wa-assignees {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
}
.wa-avatar {
    width: 22px;
    height: 22px;
    border-radius: 9999px;
    object-fit: cover;
    margin-right: -6px;
    border: 1px solid var(--cbm-surface);
}
.wa-names {
    margin-left: 10px;
    font-size: 12px;
    color: var(--cbm-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.wa-actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--cbm-hairline);
}

/* ── Messages list — editorial pastel brand ──────────────────────────────── */
.wa-navbar { --f7-navbar-bg-color: var(--cbm-canvas, #f5f5f5);
}
.wa-navbar .navbar-bg { background: var(--cbm-canvas, #f5f5f5);
}
.wa-navbar .title {
    font-family: var(--cbm-body-font);
    font-weight: 600;
    font-size: 16px;
    letter-spacing: 0.1px;
    color: var(--cbm-ink, #0c0a09);
}
.wa-navbar a.link, .wa-navbar i { color: var(--cbm-ink, #0c0a09);
}
#messages-page { --f7-page-bg-color: var(--cbm-canvas, #f5f5f5);
}
.wa-list {
    padding: 4px 0 96px; /* room for the bottom back pill */
}
.wa-empty {
    text-align: center;
    font-family: var(--cbm-body-font);
    color: var(--cbm-muted-soft, #a8a29e);
    font-size: 14px;
    letter-spacing: 0.16px;
    padding: 48px 24px;
}
.wa-row {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 10px 16px;
    cursor: pointer;
}
.wa-row:active { background: var(--cbm-surface-strong, #f0efed);
}
.wa-avatar {
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 9999px;
    object-fit: cover;
    background: var(--cbm-surface-strong, #f0efed);
}
.wa-avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--cbm-body-font);
    font-size: 15px;
    font-weight: 600;
    color: var(--cbm-ink, #0c0a09);
    background: var(--cbm-surface-strong, #f0efed);
}
.wa-row-main {
    flex: 1;
    min-width: 0;
    border-bottom: 1px solid var(--cbm-hairline, #e7e5e4);
    padding-bottom: 12px;
    margin-top: -10px;
    padding-top: 12px;
}
.wa-row-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}
.wa-name {
    font-family: var(--cbm-body-font);
    font-size: 15.5px;
    font-weight: 500;
    letter-spacing: 0.16px;
    color: var(--cbm-ink, #0c0a09);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wa-time {
    flex: 0 0 auto;
    font-family: var(--cbm-body-font);
    font-size: 12px;
    color: var(--cbm-muted-soft, #a8a29e);
}
.wa-time.unread { color: var(--cbm-ink, #0c0a09); font-weight: 600;
}
.wa-row-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 3px;
}
.wa-preview {
    flex: 1;
    min-width: 0;
    font-family: var(--cbm-body-font);
    font-size: 13.5px;
    letter-spacing: 0.15px;
    color: var(--cbm-muted, #777169);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.wa-preview.unread {
    color: var(--cbm-ink, #0c0a09);
}
.wa-badge {
    flex: 0 0 auto;
    color: var(--cbm-ink, #0c0a09);
    font-size: 12px;
    line-height: 1;
}

/* Ink-pill FAB (the only CTA colour) */
.wa-fab {
    --f7-fab-bg-color: var(--cbm-ink-pill, #292524);
    --f7-fab-text-color: var(--cbm-on-primary, #ffffff);
}

/* Bottom-area back button (thumb reach) */
.msg-back {
    position: fixed;
    left: 14px;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    z-index: 500;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: 9999px;
    color: var(--cbm-ink, #0c0a09);
    background: var(--cbm-surface, #fff);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.06));
}
.msg-back:active { background: var(--cbm-surface-strong, #f0efed);
}
.msg-back i.f7-icons { font-size: 20px;
}

/* New-chat people sheet */
.msg-people-search {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 16px;
    padding: 0 14px;
    height: 44px;
    border: 1px solid var(--cbm-hairline);
    border-radius: 9999px;
    color: var(--cbm-muted-soft);
}
.msg-people-search input {
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 15px;
    color: var(--cbm-ink);
}
.msg-people-list {
    overflow-y: auto;
}

/* ── WhatsApp-style thread ─────────────────────────────────────────────────── */
/* Editorial header */
.wa-navbar { --f7-navbar-bg-color: var(--cbm-canvas, #f5f5f5);
}
.wa-navbar .navbar-bg { background: var(--cbm-canvas, #f5f5f5);
}
.wa-navbar a.link, .wa-navbar i { color: var(--cbm-ink, #0c0a09);
}
.wa-navbar .title { margin-left: 0; padding-left: 0; max-width: 100%;
}
.wa-peer {
    display: flex;
    align-items: center;
    gap: 9px;
    text-align: left;
}
.wa-peer-avatar {
    width: 34px;
    height: 34px;
    border-radius: 9999px;
    object-fit: cover;
    background: var(--cbm-surface-strong, #f0efed);
}
.wa-peer-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--cbm-body-font);
    font-size: 13px;
    font-weight: 600;
    color: var(--cbm-ink, #0c0a09);
}
.wa-peer-info { line-height: 1.15;
}
.wa-peer-name {
    font-family: var(--cbm-body-font);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.1px;
    color: var(--cbm-ink, #0c0a09);
}
.wa-peer-status {
    font-family: var(--cbm-body-font);
    font-size: 11px;
    color: var(--cbm-muted, #777169);
    margin-top: 1px;
}

/* Off-white editorial canvas */
.msg-thread-content {
    --f7-page-content-extra-padding-bottom: 64px;
    padding-bottom: calc(64px + var(--f7-safe-area-bottom, 0px));
    background-color: var(--cbm-canvas, #f5f5f5);
}
.msg-thread {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px 12px;
}
.msg-thread .wl-empty {
    font-family: var(--cbm-body-font);
    color: var(--cbm-muted-soft, #a8a29e);
    text-align: center;
    padding: 40px 16px;
}
.msg-bubble-row {
    display: flex;
    justify-content: flex-start;
    padding: 1px 0;
}
.msg-bubble-row.mine {
    justify-content: flex-end;
}
/* Rounded editorial bubbles — incoming white, outgoing soft surface */
.msg-bubble {
    position: relative;
    max-width: 80%;
    padding: 9px 12px;
    border-radius: var(--cbm-radius-lg, 14px);
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font);
    font-size: 14.5px;
    letter-spacing: 0.16px;
    line-height: 1.4;
}
.msg-bubble-row:not(.mine) .msg-bubble { border-bottom-left-radius: 5px;
}
.msg-bubble-row.mine .msg-bubble {
    background: var(--cbm-surface-strong, #f0efed);
    border-color: transparent;
    border-bottom-right-radius: 5px;
}
.msg-text {
    white-space: pre-wrap;
    word-break: break-word;
}
.msg-file {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
    padding: 7px 10px;
    border-radius: var(--cbm-radius-md, 8px);
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-ink, #0c0a09);
    font-size: 13px;
    font-weight: 500;
}
/* time + ticks at the bottom-right */
.msg-meta {
    float: right;
    margin: 6px 0 -2px 8px;
    font-family: var(--cbm-body-font);
    font-size: 10.5px;
    color: var(--cbm-muted-soft, #a8a29e);
    white-space: nowrap;
    line-height: 1;
}
.msg-ticks {
    margin-left: 3px;
    letter-spacing: -2px;
    color: var(--cbm-muted-soft, #a8a29e);
}
.msg-ticks.seen {
    color: var(--cbm-ink, #0c0a09); /* read */
}

/* Composer — canvas bar, white input pill, ink-pill send + bottom back */
.msg-composer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 500;
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 8px 10px calc(8px + var(--f7-safe-area-bottom, 0px));
    background: var(--cbm-canvas, #f5f5f5);
    border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}
.msg-back-inline {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: 9999px;
    color: var(--cbm-ink, #0c0a09);
    background: var(--cbm-surface, #fff);
}
.msg-back-inline:active { background: var(--cbm-surface-strong, #f0efed);
}
.msg-back-inline i { font-size: 20px;
}
.msg-input-pill {
    flex: 1;
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0 6px 0 14px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: 9999px;
}
.msg-input {
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    font-family: var(--cbm-body-font);
    font-size: 15px;
    letter-spacing: 0.16px;
    color: var(--cbm-ink, #0c0a09);
    min-width: 0;
}
.msg-input::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.msg-attach {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cbm-muted, #777169);
}
.msg-attach i { font-size: 20px;
}
.msg-send {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #ffffff);
}
.msg-send i { font-size: 19px;
}

.ntf-head {
    padding: 18px 20px 4px;
}
/* Web-push enable banner — brand soft surface card + ink-pill CTA. */
.ntf-push {
    display: flex; align-items: center; gap: 12px;
    margin: 8px 16px 4px; padding: 12px 14px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: 16px;
    box-shadow: 0 6px 18px rgba(12, 10, 9, 0.05);
}
.ntf-push:active { background: var(--cbm-surface-strong, #f0efed);
}
.ntf-push-ic {
    flex: 0 0 auto; width: 36px; height: 36px; border-radius: 9999px;
    display: flex; align-items: center; justify-content: center;
    background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09);
}
.ntf-push-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.ntf-push-title { font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; color: var(--cbm-ink, #0c0a09);
}
.ntf-push-sub { font-family: var(--cbm-body-font); font-size: 12px; color: var(--cbm-muted, #777169); line-height: 1.35;
}
.ntf-push-cta {
    flex: 0 0 auto; width: auto; height: 32px; padding: 0 14px; border-radius: 9999px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600;
}
.ntf-push-denied .ntf-push-ic { color: var(--cbm-error, #dc2626);
}
.ntf-head .qm-display {
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 30px;
    letter-spacing: -0.3px;
    color: var(--cbm-ink);
    margin: 2px 0 0;
}
.ntf-actions {
    display: flex;
    justify-content: flex-end;
    padding: 4px 18px 0;
}
.ntf-pills {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 8px 18px 6px;
    -webkit-overflow-scrolling: touch;
}
.ntf-pills::-webkit-scrollbar {
    display: none;
}
.ntf-pills .srch-pill {
    flex: 0 0 auto;
    width: auto;
}
.pill-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    margin-left: 6px;
    border-radius: 9999px;
    background: var(--cbm-error);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    vertical-align: middle;
}
.ntf-readall {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 500;
    color: var(--cbm-ink);
    letter-spacing: 0.15px;
}
.ntf-list {
    padding: 6px 12px 24px;
}
.ntf-row {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    padding: 13px 12px;
    border-radius: var(--cbm-radius-lg, 12px);
    position: relative;
}
.ntf-row.unread {
    background: var(--cbm-surface-strong);
}
.ntf-row:active {
    background: var(--cbm-hairline-soft);
}
.ntf-ic {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface);
    border: 1px solid var(--cbm-hairline);
    color: var(--cbm-ink);
}
.ntf-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.ntf-title {
    font-size: 15px;
    font-weight: 500;
    color: var(--cbm-ink);
}
.ntf-text {
    font-size: 13px;
    color: var(--cbm-body);
    line-height: 1.4;
}
.ntf-time {
    font-size: 11px;
    color: var(--cbm-muted-soft);
    letter-spacing: 0.2px;
    margin-top: 2px;
}
.ntf-dot {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    background: var(--cbm-error);
    margin-top: 6px;
}
.ntf-empty {
    text-align: center;
    color: var(--cbm-muted-soft);
    padding: 60px 24px;
}
.ntf-empty p {
    margin-top: 10px;
    font-size: 14px;
}

#selected[data-v-3f38a63c] {
        background-color: var(--cbm-surface-strong, rgba(0, 0, 0, 0.08));
}

.message-footer {
        margin-top: 4px !important;
        margin-bottom: 0;
}

.badge-profile-image {
    height: 40px;
    width: 40px;
    border-radius: 50%;
}

/* ── Attendance — premium glass card (matches the employee clock card, token-driven
   so it re-pigments cleanly on dark instead of staying a washed-out white strip). ─ */
.att-glass {
    position: relative;
    display: block;
    margin: 14px 16px 4px;
    padding: 16px 18px 14px;
    overflow: hidden;
    background: var(--cbm-glass-bg, rgba(255, 255, 255, 0.6));
    -webkit-backdrop-filter: var(--cbm-glass-blur);
    backdrop-filter: var(--cbm-glass-blur);
    border: 1px solid var(--cbm-hairline, rgba(255, 255, 255, 0.65));
    box-shadow: 0 8px 28px rgba(12, 10, 9, 0.08);
    border-radius: 22px;
    color: var(--cbm-ink);
}
/* One lightweight profile for every device: flat brand surface, no heavy blur.
   (html prefix wins over the glass base rule above.) */
:global(html) .att-glass {
    background: var(--cbm-surface, #fff);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border-color: var(--cbm-hairline, #e7e5e4);
}
/* The personal clock row reuses the (now premium) global .clk-* button/segment
   styles; .clk-status lost its rule in the clock redesign, so re-state the layout. */
.att-clock .clk-status {
    display: flex; align-items: center; flex-wrap: wrap;
    gap: 10px 16px; margin-bottom: 10px;
    font-size: 13px; color: var(--cbm-body, #44403c);
}
/* Tappable summary row (counts + chevron → full attendance) */
.att-summary {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--cbm-ink);
}
.att-summary:active .att-go {
    background: var(--cbm-hairline);
}
/* My clock section under the summary */
.att-clock {
    position: relative;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--cbm-hairline);
}
.att-clock .clk-actions {
    margin-bottom: 0;
}
.att-clock .clk-error {
    margin-bottom: 0;
}
/* Pastel atmospheric bloom — decoration only, behind the content */
.att-orb {
    position: absolute;
    right: -36px;
    top: -48px;
    width: 150px;
    height: 150px;
    border-radius: 9999px;
    background: radial-gradient(circle at center, var(--cbm-gradient-mint, #a7e5d3) 0%, rgba(167, 229, 211, 0) 70%);
    opacity: 0.55;
    pointer-events: none;
}
.att-main {
    position: relative;
    flex: 1;
    min-width: 0;
}
.att-eyebrow {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.88px;
    text-transform: uppercase;
    color: var(--cbm-muted);
    margin-bottom: 3px;
}
.att-company {
    font-family: var(--cbm-display-font);
    font-weight: 400;
    font-size: 17px;
    line-height: 1.2;
    letter-spacing: -0.2px;
    color: var(--cbm-ink);
    margin-bottom: 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.att-stats {
    display: flex;
    align-items: baseline;
    gap: 16px;
    font-size: 13px;
    letter-spacing: 0.15px;
    color: var(--cbm-body, #4e4e4e);
    margin-bottom: 8px;
}
.att-stat strong {
    font-size: 17px;
    font-weight: 600;
    color: var(--cbm-ink);
    margin-right: 2px;
}
.att-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 9999px;
    margin-right: 5px;
    vertical-align: 1px;
}
.att-dot-present { background: var(--cbm-success, #16a34a);
}
.att-dot-absent { background: var(--cbm-error, #dc2626);
}
/* Single thin present-ratio bar on a hairline track */
.att-bar {
    height: 4px;
    border-radius: 9999px;
    background: var(--cbm-hairline);
    overflow: hidden;
}
.att-bar-fill {
    display: block;
    height: 100%;
    border-radius: 9999px;
    background: var(--cbm-ink-pill);
    transition: width 0.4s ease;
}
.att-go {
    position: relative;
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface-strong);
    color: var(--cbm-ink);
}

/* ── Clock in/out — premium glass card, pinned to the top of the AIO dashboard ──
   Token-driven so it re-pigments cleanly on dark. Accent colour shifts with state
   (in = present, out = done, idle = awaiting). ───────────────────────────────── */
.clk-card {
    position: relative;
    margin: 14px 16px 4px;
    padding: 16px 18px 14px;
    overflow: hidden;
    background: var(--cbm-glass-bg, rgba(255, 255, 255, 0.6));
    -webkit-backdrop-filter: var(--cbm-glass-blur);
    backdrop-filter: var(--cbm-glass-blur);
    border: 1px solid var(--cbm-hairline, rgba(255, 255, 255, 0.65));
    box-shadow: 0 8px 28px rgba(12, 10, 9, 0.08);
    border-radius: 22px;
    color: var(--cbm-ink);
    /* Per-state accent (overridden below). Default = peach idle. */
    --clk-accent: var(--cbm-peach, #f4c5a8);
    --clk-accent-ink: var(--cbm-ink);
}

/* ── MINIMAL apple-widget mode (dashboard "Today" hero): flat soft card, no glass ── */
.clk-card.clk-mini {
    margin: 0 2px 14px;
    padding: 16px 18px;
    overflow: hidden;
    background: var(--cbm-surface, #fff);
    -webkit-backdrop-filter: none; backdrop-filter: none;
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: 28px;
    box-shadow: 0 8px 24px rgba(12, 10, 9, 0.06), 0 1px 0 rgba(255, 255, 255, 0.5) inset;
    box-sizing: border-box;
}
.clkm { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0;
}
.clkm-left { flex: 1 1 auto; min-width: 0;
}
.clkm-status { display: flex; align-items: center; gap: 8px; font-family: var(--cbm-body-font); font-size: 15px; font-weight: 600; color: var(--cbm-ink, #0c0a09); white-space: nowrap;
}
.clkm-dot { width: 9px; height: 9px; border-radius: 9999px; background: var(--clk-accent); flex: 0 0 auto;
}
.clk-mini.clk-is-in .clkm-dot { box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.16);
}
.clkm-sub { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* width:auto defeats the F7 `button{width:100%}` reset (§5) that stretched the pill full-width. */
.clkm-btn { flex: 0 0 auto; width: auto; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 18px; border-radius: 9999px; font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; cursor: pointer; border: 1px solid transparent; transition: transform 140ms ease; white-space: nowrap;
}
.clkm-btn:disabled { opacity: 0.5;
}
.clkm-btn-in { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
}
.clkm-btn-in .icon { color: var(--cbm-on-primary, #fff);
}
.clkm-btn-out { background: var(--cbm-surface, #fff); border-color: var(--cbm-hairline-strong, #d6d3d1); color: var(--cbm-ink, #0c0a09);
}
.clkm-btn-out .icon { color: var(--cbm-ink, #0c0a09);
}
.clkm-btn:active:not(:disabled) { transform: scale(0.97);
}
.clkm-error { margin-top: 10px; font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-error, #dc2626);
}
/* Flush-in-host (embedded in the Today box via slot): no card chrome. */
.clk-card.clk-bare { margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; overflow: visible;
}
.clk-card.clk-is-in {
    --clk-accent: var(--cbm-success, #16a34a);
    --clk-accent-ink: var(--cbm-success, #16a34a);
}
.clk-card.clk-is-out {
    --clk-accent: var(--cbm-info, #2563eb);
    --clk-accent-ink: var(--cbm-info, #2563eb);
}
/* Soft colour blooms — tint follows the state accent */
.clk-orb {
    position: absolute;
    right: -42px;
    top: -54px;
    width: 168px;
    height: 168px;
    border-radius: 9999px;
    background: radial-gradient(circle at center, var(--clk-accent) 0%, transparent 70%);
    opacity: 0.42;
    pointer-events: none;
}
.clk-orb-2 {
    right: auto;
    left: -60px;
    top: auto;
    bottom: -70px;
    width: 150px;
    height: 150px;
    opacity: 0.22;
}

/* Header — status pill + date, then the big live clock */
.clk-top {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.clk-meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.clk-company {
    font-family: var(--cbm-display-font);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.2;
    letter-spacing: -0.2px;
    color: var(--cbm-ink);
    max-width: 200px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.clk-status-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    align-self: flex-start;
    padding: 4px 11px 4px 9px;
    border-radius: 9999px;
    background: var(--cbm-surface-strong);
    color: var(--clk-accent-ink);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.2px;
    text-transform: capitalize;
}
.clk-pulse {
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    background: var(--clk-accent);
    box-shadow: 0 0 0 0 var(--clk-accent);
}
.clk-is-in .clk-pulse {
    animation: clk-pulse 2s ease-out infinite;
}
@keyframes clk-pulse {
0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--clk-accent) 55%, transparent);
}
70% { box-shadow: 0 0 0 7px transparent;
}
100% { box-shadow: 0 0 0 0 transparent;
}
}
.clk-date {
    font-size: 12px;
    font-weight: 500;
    color: var(--cbm-muted);
    letter-spacing: 0.2px;
}
.clk-clock {
    font-size: 30px;
    line-height: 1;
    font-weight: 300;
    letter-spacing: 0.5px;
    color: var(--cbm-ink);
    font-variant-numeric: tabular-nums;
    text-align: right;
}

/* Clocked summary — In → Out / Elapsed + place chip */
.clk-summary {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-bottom: 12px;
}
.clk-sum {
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.clk-sum-k {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--cbm-muted);
}
.clk-sum-v {
    font-size: 16px;
    font-weight: 500;
    color: var(--cbm-ink);
    font-variant-numeric: tabular-nums;
}
.clk-sum-arrow {
    color: var(--cbm-muted-soft);
    display: inline-flex;
}
.clk-place {
    margin-left: auto;
    padding: 4px 11px;
    border-radius: 9999px;
    background: var(--cbm-surface-strong);
    color: var(--cbm-ink);
    font-size: 12px;
    font-weight: 500;
    text-transform: capitalize;
}

/* Pre-clock-in — work-from segments */
.clk-segs-row {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
    margin-bottom: 12px;
}
.clk-segs-label {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--cbm-muted);
}
.clk-segs {
    display: inline-flex;
    padding: 3px;
    background: var(--cbm-surface-strong);
    border-radius: 9999px;
}
.clk-seg {
    -webkit-appearance: none;
            appearance: none;
    border: none;
    background: transparent;
    padding: 7px 15px;
    border-radius: 9999px;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--cbm-body);
    text-transform: capitalize;
    cursor: pointer;
    transition: background 0.18s ease, color 0.18s ease;
}
.clk-seg.active {
    background: var(--cbm-ink-pill);
    color: var(--cbm-on-primary);
}
.clk-other {
    flex: 1;
    min-width: 130px;
    height: 38px;
    padding: 0 14px;
    border: 1px solid var(--cbm-hairline-strong);
    border-radius: 9999px;
    background: var(--cbm-surface);
    font-family: inherit;
    font-size: 13px;
    color: var(--cbm-ink);
    outline: none;
}

/* Actions — Clock In (ink pill) / Clock Out (outline pill) */
.clk-actions {
    position: relative;
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
}
.clk-btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 46px;
    border-radius: 9999px;
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: 0.2px;
    cursor: pointer;
    transition: transform 0.12s ease, background 0.18s ease, opacity 0.18s ease;
}
.clk-btn:active:not(:disabled) {
    transform: scale(0.97);
}
.clk-btn-primary {
    border: none;
    background: var(--cbm-ink-pill);
    color: var(--cbm-on-primary);
    box-shadow: 0 6px 16px rgba(12, 10, 9, 0.14);
}
.clk-btn-primary:active {
    background: var(--cbm-ink-pill-active);
}
.clk-btn-outline {
    border: 1.5px solid var(--cbm-hairline-strong);
    background: transparent;
    color: var(--cbm-ink);
}
.clk-btn-outline:active {
    background: var(--cbm-surface-strong);
}
.clk-btn:disabled {
    opacity: 0.38;
    cursor: default;
    box-shadow: none;
}
.clk-error {
    position: relative;
    font-size: 13px;
    color: var(--cbm-error);
    margin-bottom: 8px;
}
.clk-ip {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    letter-spacing: 0.3px;
    color: var(--cbm-muted-soft);
}

/* One lightweight profile for every device: the card is flat (no heavy blur),
   just as legible. (html prefix wins over the glass base rule above.) */
:global(html) .clk-card {
    background: var(--cbm-surface, #fff);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    border-color: var(--cbm-hairline, #e7e5e4);
}
@media (prefers-reduced-motion: reduce) {
.clk-is-in .clk-pulse { animation: none;
}
}

.dfreq { margin: 10px 16px 2px;
}
.dfreq-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: 0 2px 10px;
}
.dfreq-head-titles { min-width: 0;
}
/* Sparkles glyph ties "For you" to the ML intelligence-layer identity. */
.dfreq-eyebrow { display: inline-flex; align-items: center; gap: 5px;
}
.dfreq-eyebrow .icon { color: var(--cbm-ink, #0c0a09);
}
.dfreq-dismiss {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: 9999px;
    background: transparent; border: 0; color: var(--cbm-muted-soft, #a8a29e);
    cursor: pointer;
}
.dfreq-dismiss:active { background: var(--cbm-surface-strong, #f0efed);
}
/* Horizontal chip rail — scrolls sideways, no scrollbar. */
.dfreq-rail {
    display: flex; gap: 8px;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; padding: 1px 2px 2px;
}
.dfreq-rail::-webkit-scrollbar { display: none;
}
.dfreq-chip {
    flex: 0 0 auto;
    /* width:auto — F7's `button { width: 100% }` reset (§5) otherwise stretches each chip
       to the full rail, so only the first showed and the rest scrolled off-screen. */
    width: auto;
    display: inline-flex; align-items: center; gap: 7px;
    height: 38px; padding: 0 14px 0 8px;
    border-radius: 9999px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 13.5px; font-weight: 500; letter-spacing: 0.1px;
    cursor: pointer;
    transition: background 0.16s ease, transform 0.12s ease;
}
.dfreq-chip:active { background: var(--cbm-surface-strong, #f0efed); transform: scale(0.97);
}
.dfreq-chip-ic {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px; border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09);
}
/* Create-action chips get the ink disc so "New X" reads as an action, distinct from a
   screen (which gets a soft pastel orb disc — the brand atmosphere). */
.dfreq-chip-ic.is-create { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
}
.dfreq-chip-ic.is-create .icon { color: var(--cbm-on-primary, #fff);
}
/* Navigate chips: a soft pastel orb bloom behind the ink glyph — atmosphere, not a flat
   fill. The radial gradient keeps the disc reading as the brand's drifting orb colour. */
.dfreq-chip-ic.orb-mint { background: radial-gradient(circle at 30% 25%, var(--cbm-mint, #a7e5d3) 0%, color-mix(in srgb, var(--cbm-mint, #a7e5d3) 35%, transparent) 100%);
}
.dfreq-chip-ic.orb-peach { background: radial-gradient(circle at 30% 25%, var(--cbm-peach, #f4c5a8) 0%, color-mix(in srgb, var(--cbm-peach, #f4c5a8) 35%, transparent) 100%);
}
.dfreq-chip-ic.orb-sky { background: radial-gradient(circle at 30% 25%, var(--cbm-sky, #a8c8e8) 0%, color-mix(in srgb, var(--cbm-sky, #a8c8e8) 35%, transparent) 100%);
}
.dfreq-chip-ic.orb-lavender { background: radial-gradient(circle at 30% 25%, var(--cbm-lavender, #c8b8e0) 0%, color-mix(in srgb, var(--cbm-lavender, #c8b8e0) 35%, transparent) 100%);
}
.dfreq-chip-ic.orb-rose { background: radial-gradient(circle at 30% 25%, var(--cbm-rose, #e8b8c4) 0%, color-mix(in srgb, var(--cbm-rose, #e8b8c4) 35%, transparent) 100%);
}
.dfreq-chip-label { white-space: nowrap;
}

.dnudge { margin: 12px 16px 6px;
}
.dnudge-head { padding: 0 2px 12px;
}
/* Sparkles glyph on the eyebrow ties the nudges to the ML "intelligence layer"
   identity (matches the Command Center "Suggested for you" eyebrow). */
.dnudge-eyebrow { display: inline-flex; align-items: center; gap: 5px;
}
.dnudge-eyebrow .icon { color: var(--cbm-ink, #0c0a09);
}
.dnudge-list { display: flex; flex-direction: column; gap: 12px;
}

/* Each nudge is a brand `gradient-orb-card`: warm canvas-soft surface, rounded-xxl,
   a drifting severity-tinted orb bloom as the only "colour" (photographic, not a flat
   fill), EB Garamond title, and the single ink-pill CTA. Mirrors the reference's soft
   panels (the C.Lab gradient cards). */
.dnudge-card {
    position: relative; overflow: hidden;
    display: flex; align-items: stretch;
    border-radius: var(--cbm-radius-xxl, 24px);
    background: var(--cbm-canvas-soft, #fafafa);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
}
/* Drifting pastel bloom — the brand atmosphere, tinted by severity, gathered behind
   the CTA on the right so the warm halo wraps the "go" action (like the reference orb). */
.dnudge-orb {
    position: absolute; z-index: 0; pointer-events: none;
    top: 50%; right: -26px; transform: translateY(-50%);
    width: 150px; height: 150px; border-radius: 9999px;
    opacity: 0.5; filter: blur(20px);
    background: radial-gradient(circle at center, var(--cbm-peach, #f4c5a8) 0%, transparent 68%);
}
.dnudge-card.is-info .dnudge-orb { background: radial-gradient(circle at center, var(--cbm-sky, #a8c8e8) 0%, transparent 68%);
}
.dnudge-card.is-warn .dnudge-orb { background: radial-gradient(circle at center, var(--cbm-peach, #f4c5a8) 0%, transparent 68%);
}
.dnudge-card.is-alert .dnudge-orb { background: radial-gradient(circle at center, var(--cbm-rose, #e8b8c4) 0%, transparent 68%);
}
.dnudge-main {
    position: relative; z-index: 1; flex: 1; min-width: 0;
    display: flex; align-items: center; gap: 13px;
    padding: 16px 8px 16px 16px;
    background: transparent; border: 0; cursor: pointer; text-align: left;
    border-radius: inherit;
}
.dnudge-main:active { background: rgba(12, 10, 9, 0.025);
}
/* Soft circular icon plate — concentric white plate (brand circular icon treatment). */
.dnudge-ic {
    flex: 0 0 auto; width: 44px; height: 44px; border-radius: 9999px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 1px 3px rgba(12, 10, 9, 0.05);
}
.dnudge-ic .icon { color: var(--cbm-ink, #0c0a09);
}
.dnudge-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px;
}
/* Editorial title — EB Garamond 300, like every section title in the app. */
.dnudge-card-title {
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 18px;
    line-height: 1.22; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09);
}
.dnudge-card-body { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169); line-height: 1.45;
}

/* Right action column — quiet dismiss on top, ink-pill chevron CTA on the bottom
   (the reference's "Join in >" blob — the one primary action). */
.dnudge-aside {
    position: relative; z-index: 1; flex: 0 0 auto;
    display: flex; flex-direction: column; align-items: center; justify-content: space-between;
    padding: 10px 12px 12px 0;
}
.dnudge-x {
    width: 24px; height: 24px; border-radius: 9999px;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border: 0; padding: 0;
    color: var(--cbm-muted-soft, #a8a29e); cursor: pointer;
}
.dnudge-x:active { background: rgba(12, 10, 9, 0.05);
}
.dnudge-cta {
    width: 40px; height: 40px; border-radius: 9999px; padding: 0;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--cbm-ink-pill, #292524); border: 0; cursor: pointer;
    box-shadow: 0 6px 16px rgba(12, 10, 9, 0.2);
    transition: transform 0.16s cubic-bezier(0.4, 0, 0.2, 1);
}
.dnudge-cta:active { transform: scale(0.92);
}
.dnudge-cta .icon { color: var(--cbm-on-primary, #fff);
}
@media (prefers-reduced-motion: reduce) {
.dnudge-cta { transition: none;
}
}

.tdw { padding: 4px 2px 6px; max-width: 100%; overflow-x: hidden;
}
/* The app has no global border-box, so a width:100% card + padding would overflow; and
   flex children default to min-width:auto (won't shrink). Scope both fixes to the widget. */
.tdw, .tdw *, .tdw *::before, .tdw *::after { box-sizing: border-box;
}

/* ── "today." hero ─────────────────────────────────────────────────────────── */
.tdw-hero { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 6px 6px 18px; overflow: visible;
}
.tdw-hero-orb { position: absolute; top: -34px; right: 18px; width: 150px; height: 150px; border-radius: 9999px; opacity: 0.42; filter: blur(10px); pointer-events: none; background: radial-gradient(circle at center, var(--cbm-sky, #a8c8e8) 0%, transparent 70%);
}
.tdw-hero-main { position: relative; min-width: 0;
}
.tdw-today { font-family: var(--cbm-body-font); font-size: 16px; font-weight: 700; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09);
}
.tdw-dot { color: var(--cbm-muted-soft, #a8a29e);
}
.tdw-greet { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 30px; line-height: 1.08; letter-spacing: -0.4px; color: var(--cbm-ink, #0c0a09); margin-top: 2px;
}
.tdw-place { position: relative; display: inline-block; font-family: var(--cbm-body-font); font-size: 22px; font-weight: 700; letter-spacing: -0.3px; color: var(--cbm-ink, #0c0a09); margin-top: 12px; max-width: 240px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tdw-place-rule { display: block; width: 46px; height: 3px; border-radius: 9999px; background: var(--cbm-ink, #0c0a09); margin-top: 5px; opacity: 0.85;
}
/* Settings gear (top-right) → Master Settings. Circular soft apple-widget button. */
.tdw-hero-settings { position: relative; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); box-shadow: 0 4px 14px rgba(12, 10, 9, 0.05); cursor: pointer; transition: transform 140ms ease, background 140ms ease;
}
.tdw-hero-settings .icon { color: var(--cbm-ink, #0c0a09);
}
.tdw-hero-settings:active { transform: scale(0.94); background: var(--cbm-surface-strong, #f0efed);
}

/* ── shared soft widget card ───────────────────────────────────────────────── */
.tdw-card { display: block; width: 100%; text-align: left; border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-surface, #fff); border-radius: 28px; box-shadow: 0 8px 24px rgba(12, 10, 9, 0.06), 0 1px 0 rgba(255, 255, 255, 0.5) inset; padding: 18px 18px 16px; margin-bottom: 14px;
}

/* ── the "Today" box ───────────────────────────────────────────────────────── */
.tdw-cal-head { display: flex; align-items: center; gap: 12px; padding: 2px 4px 4px;
}
.tdw-cal-day { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 52px; line-height: 0.9; letter-spacing: -1px; color: var(--cbm-ink, #0c0a09);
}
.tdw-cal-dm { display: flex; flex-direction: column;
}
.tdw-cal-wd { font-family: var(--cbm-body-font); font-size: 16px; font-weight: 700; letter-spacing: 0.6px; color: var(--cbm-ink, #0c0a09);
}
.tdw-cal-mo { font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; color: var(--cbm-muted, #777169); margin-top: 2px;
}

/* Followups/Tasks + glance tiles — HORIZONTAL scroller: ~2 full tiles + a 30% peek of the
   next (tile width = (100% − 2 gaps) / 2.3). Native scrollbar hidden (brand rule). */
.tdw-sq-row { display: flex; gap: 12px; margin-top: 14px; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; scrollbar-width: none; -ms-overflow-style: none; padding-bottom: 2px;
}
.tdw-sq-row::-webkit-scrollbar { width: 0; height: 0; display: none;
}
.tdw-sq { flex: 0 0 calc((100% - 24px) / 2.3); scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 13px 6px 11px; border-radius: 18px; border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-surface-strong, #f0efed); cursor: pointer; min-width: 0; transition: transform 140ms ease, background 140ms ease;
}
.tdw-sq:active { transform: scale(0.97); background: var(--cbm-hairline, #e7e5e4);
}
.tdw-sq-ic { color: var(--cbm-ink, #0c0a09);
}
.tdw-sq-ic .icon { color: var(--cbm-ink, #0c0a09);
}
.tdw-sq-label { font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%;
}
.tdw-sq-badge { min-width: 26px; height: 21px; padding: 0 8px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; background: var(--cbm-error, #dc2626); color: #fff; font-family: var(--cbm-body-font); font-size: 12px; font-weight: 700;
}
.tdw-sq-badge.tdw-sq-badge-dark { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
}
.tdw-sq-sub { font-family: var(--cbm-body-font); font-size: 9px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: var(--cbm-muted-soft, #a8a29e); white-space: nowrap;
}

/* Clock-in/out row inside the box (the <clocking minimal bare> slot). */
.tdw-cal-clock { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}

.cal-panel { background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: var(--cbm-radius-xl, 16px); box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0,0,0,0.04)); margin: 4px 16px 12px; overflow: hidden;
}
/* Flush variant — for parents that already inset their content (e.g. .crm-dash). */
.cal-panel.cal-flush { margin-left: 0; margin-right: 0;
}
.cal-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; cursor: pointer;
}
.cal-eyebrow { font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.cal-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 24px; letter-spacing: -0.3px; color: var(--cbm-ink, #0c0a09); margin: 3px 0 0; line-height: 1.15;
}
.cal-head-actions { display: flex; align-items: center; gap: 10px;
}
.cal-total { min-width: 24px; height: 24px; padding: 0 8px; display: inline-flex; align-items: center; justify-content: center; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-body-strong, #292524); border-radius: 9999px; font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 600;
}
.cal-collapse { color: var(--cbm-muted, #777169); transition: transform 0.22s ease;
}
.cal-collapse.is-open { transform: rotate(180deg);
}

/* Collapsed monthly-insight strip — horizontally scrollable chips */
.cal-insights { display: flex; gap: 10px; padding: 0 14px 16px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.cal-insights::-webkit-scrollbar { display: none;
}
.cal-ins-card { flex: 0 0 auto; min-width: 92px; display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; background: var(--cbm-canvas-soft, #fafafa); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: var(--cbm-radius-lg, 12px);
}
.cal-ins-card.is-tappable { cursor: pointer; transition: border-color 0.18s ease, background 0.18s ease;
}
.cal-ins-card.is-tappable:active { background: var(--cbm-surface-strong, #f0efed); border-color: var(--cbm-hairline-strong, #d6d3d1);
}
.cal-ins-total { background: var(--cbm-ink-pill, #292524); border-color: var(--cbm-ink-pill, #292524);
}
.cal-ins-total.is-tappable:active { background: var(--cbm-ink-pill-active, #0c0a09); border-color: var(--cbm-ink-pill-active, #0c0a09);
}
.cal-ins-top { display: flex; align-items: center; gap: 6px;
}
.cal-ins-dot { width: 7px; height: 7px; border-radius: 9999px; flex: 0 0 auto;
}
.cal-ins-num { font-family: var(--cbm-body-font); font-size: 22px; font-weight: 500; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09); line-height: 1;
}
.cal-ins-total .cal-ins-num { color: var(--cbm-on-primary, #fff);
}
.cal-ins-label { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.7px; text-transform: uppercase; color: var(--cbm-muted, #777169); white-space: nowrap;
}
.cal-ins-total .cal-ins-label { color: var(--cbm-on-dark-soft, #a8a29e);
}
.cal-ins-empty { display: flex; align-items: center; font-family: var(--cbm-body-font); font-size: 14px; letter-spacing: 0.15px; color: var(--cbm-muted, #777169); padding: 4px 2px;
}
.cal-body { padding: 0 14px 14px;
}
.cal-nav { display: flex; align-items: center; justify-content: space-between; padding: 2px 4px 12px;
}
.cal-nav-btn { width: 34px; height: 34px; border-radius: 9999px; color: var(--cbm-ink, #0c0a09); display: inline-flex; align-items: center; justify-content: center;
}
.cal-nav-btn:active { background: var(--cbm-surface-strong, #f0efed);
}
.cal-today-btn { background: transparent; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); color: var(--cbm-ink, #0c0a09); border-radius: 9999px; height: 32px; padding: 0 16px; font-family: var(--cbm-body-font); font-size: 13px; font-weight: 500; letter-spacing: 0.15px; cursor: pointer;
}
.cal-today-btn:active { background: var(--cbm-surface-strong, #f0efed);
}
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
}
.cal-weekdays { margin-bottom: 4px;
}
.cal-wd { text-align: center; font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: var(--cbm-muted-soft, #a8a29e); padding: 4px 0;
}
.cal-grid.is-loading { opacity: 0.55;
}
.cal-cell { position: relative; aspect-ratio: 1 / 1; border: 0; background: transparent; border-radius: var(--cbm-radius-md, 8px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; cursor: pointer; padding: 0;
}
.cal-cell:active { background: var(--cbm-surface-strong, #f0efed);
}
.cal-num { font-family: var(--cbm-body-font); font-size: 14px; font-weight: 400; letter-spacing: 0.15px; color: var(--cbm-ink, #0c0a09); line-height: 1;
}
.cal-cell.is-out .cal-num { color: var(--cbm-muted-soft, #a8a29e);
}
.cal-cell.is-today { background: var(--cbm-surface-strong, #f0efed);
}
.cal-cell.is-today .cal-num { font-weight: 600;
}
.cal-cell.is-selected { background: var(--cbm-ink-pill, #292524);
}
.cal-cell.is-selected .cal-num { color: var(--cbm-on-primary, #fff); font-weight: 500;
}
.cal-dots { display: flex; gap: 3px; align-items: center; height: 6px;
}
.cal-dot { width: 5px; height: 5px; border-radius: 9999px; display: inline-block; flex: 0 0 auto;
}
.cal-cell.is-selected .cal-dot { box-shadow: 0 0 0 1px rgba(255,255,255,0.35);
}
.cal-day { margin-top: 16px; border-top: 1px solid var(--cbm-hairline, #e7e5e4); padding-top: 14px;
}
.cal-day-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; gap: 10px;
}
.cal-day-label { font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px; color: var(--cbm-ink, #0c0a09);
}
.cal-day-count { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.cal-scope { display: inline-flex; flex: 0 0 auto; background: var(--cbm-surface-strong, #f0efed); border-radius: 9999px; padding: 2px;
}
.cal-scope-btn { border: 0; background: transparent; color: var(--cbm-muted, #777169); font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; letter-spacing: 0.15px; padding: 5px 13px; border-radius: 9999px; cursor: pointer; transition: background 0.18s ease, color 0.18s ease;
}
.cal-scope-btn.active { background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.cal-empty { font-family: var(--cbm-body-font); font-size: 14px; letter-spacing: 0.15px; color: var(--cbm-muted, #777169); padding: 10px 2px 6px;
}
.cal-list { list-style: none; margin: 0; padding: 0;
}
.cal-item { display: flex; align-items: center; gap: 11px; padding: 11px 4px; border-bottom: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.cal-item:last-child { border-bottom: 0;
}
.cal-item.is-tappable { cursor: pointer;
}
.cal-item.is-tappable:active { background: var(--cbm-surface-strong, #f0efed); border-radius: var(--cbm-radius-md, 8px);
}
.cal-item-dot { width: 8px; height: 8px; border-radius: 9999px; flex: 0 0 auto;
}
.cal-item-body { flex: 1 1 auto; min-width: 0;
}
.cal-item-title { font-family: var(--cbm-body-font); font-size: 14.5px; font-weight: 500; letter-spacing: 0.15px; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cal-item-meta { display: flex; align-items: center; gap: 5px; margin-top: 2px;
}
.cal-item-type { font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.cal-item-time { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.cal-item-go { color: var(--cbm-muted-soft, #a8a29e); flex: 0 0 auto;
}
.cal-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}
.cal-leg { display: inline-flex; align-items: center; gap: 6px; font-family: var(--cbm-body-font); font-size: 12px; letter-spacing: 0.15px; color: var(--cbm-muted, #777169);
}

/* Per-type month-items sheet */
.cal-sheet { --f7-sheet-bg-color: var(--cbm-canvas, #f5f5f5); border-radius: 22px 22px 0 0; overflow: hidden;
}
.cal-sheet-inner { background: var(--cbm-canvas, #f5f5f5); padding: 18px 16px max(18px, env(safe-area-inset-bottom));
}
.cal-sheet-head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 14px;
}
.cal-sheet-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 24px; letter-spacing: -0.3px; color: var(--cbm-ink, #0c0a09); margin: 3px 0 0; line-height: 1.15;
}
.cal-sheet-x { color: var(--cbm-muted, #777169);
}
.cal-sheet-list { background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: var(--cbm-radius-xl, 16px); padding: 2px 14px; max-height: 52vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.cal-sheet-all { width: 100%; margin-top: 14px; height: 44px; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: transparent; color: var(--cbm-ink, #0c0a09); border-radius: 9999px; font-family: var(--cbm-body-font); font-weight: 500; font-size: 14.5px; letter-spacing: 0.15px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer;
}
.cal-sheet-all:active { background: var(--cbm-surface-strong, #f0efed);
}
.cal-sheet .cal-empty { padding: 18px 2px 8px;
}

.mch { width: 100%; display: flex; flex-direction: column;
}
.mch-svg { width: 100%; height: 100%; display: block;
}

/* Bar */
.mch-bar .mch-svg { height: 64px;
}
.mch-grid { stroke: var(--cbm-hairline-soft, #f0efed); stroke-width: 1;
}
/* Value numbers in an HTML row above the bars (crisp — not stretched by the svg). */
.mch-bar-vals { display: flex; margin-bottom: 3px;
}
.mch-bar-val {
    flex: 1 1 0; min-width: 0; text-align: center;
    font-family: var(--cbm-body-font); font-size: 10px; font-weight: 700; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09);
    white-space: nowrap; overflow: hidden; text-overflow: clip; padding: 0 1px;
}
.mch-xlabels { display: flex; margin-top: 4px;
}
.mch-xlabel {
    flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 0 1px;
}
.mch-xlabel-name {
    max-width: 100%; font-family: var(--cbm-body-font); font-size: 8.5px; font-weight: 500; color: var(--cbm-muted, #777169);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mch-xlabel-pct { font-family: var(--cbm-body-font); font-size: 8.5px; font-weight: 600; color: var(--cbm-muted-soft, #a8a29e);
}

/* Donut */
.mch-donut-wrap { display: flex; align-items: center; justify-content: center;
}
.mch-donut-svg { width: 104px; height: 104px;
}
.mch-donut-track { stroke: var(--cbm-hairline, #e7e5e4);
}
.mch-donut-center { font-family: var(--cbm-display-font); font-weight: 300; font-size: 20px; fill: var(--cbm-ink, #0c0a09);
}
.mch-donut-centersub { font-family: var(--cbm-body-font); font-size: 8.5px; font-weight: 600; letter-spacing: 0.4px; fill: var(--cbm-muted, #777169); text-transform: uppercase;
}

/* Line */
.mch-line .mch-svg { height: 84px;
}

/* Progress */
.mch-prog { display: flex; flex-direction: column; gap: 9px; padding: 2px 0;
}
.mch-prog-row { display: flex; align-items: center; gap: 8px;
}
.mch-prog-label { flex: 0 0 64px; font-family: var(--cbm-body-font); font-size: 11px; font-weight: 500; color: var(--cbm-body-strong, #292524); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mch-prog-track { flex: 1 1 auto; height: 8px; border-radius: 9999px; background: var(--cbm-hairline, #e7e5e4); overflow: hidden;
}
.mch-prog-fill { display: block; height: 100%; border-radius: 9999px;
}
.mch-prog-val { flex: 0 0 auto; font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; color: var(--cbm-ink, #0c0a09);
}
.mch-prog-share { font-weight: 500; color: var(--cbm-muted-soft, #a8a29e);
}

/* Legend */
.mch-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 8px;
}
.mch-leg { display: inline-flex; align-items: center; gap: 5px; font-family: var(--cbm-body-font); font-size: 11px; font-weight: 500; color: var(--cbm-muted, #777169);
}
.mch-leg-dot { width: 8px; height: 8px; border-radius: 9999px; flex: 0 0 auto;
}

.mc-wrap { margin: 8px 0 4px;
}
.mc-head { padding: 14px 4px 10px;
}
.mc-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px;
}
.mc-head-l { min-width: 0;
}
.mc-edit {
    display: inline-flex; align-items: center; gap: 5px;
    width: auto; height: 28px; padding: 0 12px; margin-bottom: 2px;
    border-radius: 9999px; border: 0; cursor: pointer; flex: 0 0 auto; white-space: nowrap;
    background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 12px; font-weight: 500;
}
.mc-edit .icon { color: var(--cbm-ink, #0c0a09);
}
.mc-edit:active { background: var(--cbm-hairline, #e7e5e4);
}
.mc-title {
    font-family: var(--cbm-display-font);
    font-weight: 300; font-size: 22px; line-height: 1.2; letter-spacing: -0.2px;
    color: var(--cbm-ink, #0c0a09); margin: 2px 0 0;
}

/* The rail: horizontal scroll-snap strip, edges bled to the screen margins so
   the first/last cards sit flush; a peek of the next card hints scrollability. */
.mc-rail {
    display: flex; gap: 12px;
    margin: 0 -16px; padding: 4px 16px 8px;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory; scroll-padding-left: 16px; scrollbar-width: none;
}
.mc-rail::-webkit-scrollbar { display: none;
}
.mc-rail.is-busy { opacity: 0.6;
}

/* Rectangular card — wider than tall. */
.mc-rcard {
    position: relative; flex: 0 0 auto;
    width: 220px; height: 124px;
    scroll-snap-align: start;
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 16px 17px; text-align: left;
    /* Apple-widget material — generous rounding + soft layered shadow, matching the Today box. */
    border-radius: 24px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 8px 24px rgba(12, 10, 9, 0.06), 0 1px 0 rgba(255, 255, 255, 0.5) inset;
    overflow: hidden; cursor: pointer;
    transition: transform 200ms cubic-bezier(.4, 0, .2, 1), box-shadow 200ms cubic-bezier(.4, 0, .2, 1);
}
.mc-rcard:active { transform: scale(0.98);
}

/* Tap hint — top-right corner, subtle, non-interactive (matches the deal cards). */
.mc-tap { position: absolute; top: 11px; right: 12px; z-index: 2; color: var(--cbm-muted-soft, #b3afaa); opacity: 0.7; line-height: 0; pointer-events: none;
}

/* Atmospheric orb bloom in the top-right — the only colour, drifting beneath. */
.mc-orb {
    position: absolute; top: -34px; right: -28px; width: 116px; height: 116px;
    border-radius: 9999px; filter: blur(14px); opacity: 0.5; pointer-events: none; z-index: 0;
}
.mc-orb-mint { background: radial-gradient(circle at 50% 50%, var(--cbm-mint, #a7e5d3), transparent 70%);
}
.mc-orb-peach { background: radial-gradient(circle at 50% 50%, var(--cbm-peach, #f4c5a8), transparent 70%);
}
.mc-orb-lavender { background: radial-gradient(circle at 50% 50%, var(--cbm-lavender, #c8b8e0), transparent 70%);
}
.mc-orb-sky { background: radial-gradient(circle at 50% 50%, var(--cbm-sky, #a8c8e8), transparent 70%);
}
.mc-orb-rose { background: radial-gradient(circle at 50% 50%, var(--cbm-rose, #e8b8c4), transparent 70%);
}
.mc-rcard-top { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between;
}
.mc-rcard-ic {
    width: 34px; height: 34px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center;
    background: var(--cbm-surface-strong, #f0efed); flex: 0 0 auto;
}
.mc-rcard-ic .icon { color: var(--cbm-ink, #0c0a09);
}
.mc-rcard-go { color: var(--cbm-muted-soft, #a8a29e);
}
.mc-rcard-body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 1px;
}
.mc-rcard-value {
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 26px; line-height: 1.05; letter-spacing: -0.4px;
    color: var(--cbm-ink, #0c0a09);
}
.mc-rcard-value.is-danger { color: var(--cbm-error, #dc2626);
}
.mc-rcard-name {
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; letter-spacing: 0.1px; color: var(--cbm-ink, #0c0a09);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px;
}
.mc-rcard-sub {
    font-family: var(--cbm-body-font); font-size: 12px; font-weight: 400; color: var(--cbm-muted, #777169);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Chart card — wider + taller so the chart reads, like a mini dashboard tile. */
.mc-rcard-chart { width: 280px; height: 184px; padding: 14px 16px;
}
.mc-rcard-chead { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding-right: 22px;
}
.mc-rcard-chead-l { display: flex; flex-direction: column; gap: 1px; min-width: 0;
}
.mc-rcard-cname { font-family: var(--cbm-body-font); font-size: 13.5px; font-weight: 600; letter-spacing: 0.1px; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-rcard-csub { font-family: var(--cbm-body-font); font-size: 11px; color: var(--cbm-muted, #777169); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-rcard-cval { font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px; line-height: 1; letter-spacing: -0.4px; color: var(--cbm-ink, #0c0a09); flex: 0 0 auto;
}
.mc-rcard-cval.is-danger { color: var(--cbm-error, #dc2626);
}
.mc-rcard-chart-body { position: relative; z-index: 1; flex: 1 1 auto; display: flex; align-items: stretch; margin-top: 10px; min-height: 0;
}
.mc-rcard-chart-body .mch { justify-content: center;
}

/* Summary card — fixed uniform size, all data inline (gauge + metric rows).
   Mirrors the Company-Health score card: donut gauge left, title + bars right. */
/* Full-width: one card per swipe, with ~10% of the next card peeking. */
.mc-rcard-sum { width: calc(100vw - 60px); max-width: 620px; height: 176px; padding: 15px 18px; cursor: default;
}
.mc-rcard-static { cursor: default;
}
.mc-sum { position: relative; z-index: 1; display: flex; align-items: stretch; gap: 14px; height: 100%;
}
.mc-sum-gauge { flex: 0 0 76px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
}
.mc-sum-ring { width: 72px; height: 72px;
}
.mc-sum-ring-track { stroke: var(--cbm-hairline, #e7e5e4);
}
.mc-sum-ring-val { font-family: var(--cbm-display-font); font-weight: 300; font-size: 19px; letter-spacing: -0.4px; fill: var(--cbm-ink, #0c0a09);
}
.mc-sum-ring-val.is-danger { fill: var(--cbm-error, #dc2626);
}
.mc-sum-gauge-cap { font-family: var(--cbm-body-font); font-size: 9.5px; font-weight: 600; letter-spacing: 0.3px; text-transform: uppercase; color: var(--cbm-muted-soft, #a8a29e); text-align: center; max-width: 76px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-sum-right { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column;
}
.mc-sum-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 18px; line-height: 1.15; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-sum-sub { font-family: var(--cbm-body-font); font-size: 10.5px; color: var(--cbm-muted, #777169); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 6px;
}
.mc-sum-metrics { display: flex; flex-direction: column; gap: 8px; margin-top: auto;
}
.mc-sum-metric { display: flex; align-items: center; gap: 10px;
}
/* Label grows + value sit large; the bar is a small fixed cue (~80% narrower). */
.mc-sum-m-label { flex: 1 1 auto; min-width: 0; font-family: var(--cbm-body-font); font-size: 13px; font-weight: 500; color: var(--cbm-body-strong, #292524); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-sum-m-track { flex: 0 0 50px; height: 7px; border-radius: 9999px; background: var(--cbm-hairline, #e7e5e4); overflow: hidden;
}
.mc-sum-m-fill { display: block; height: 100%; border-radius: 9999px;
}
.mc-sum-m-val { flex: 0 0 auto; font-family: var(--cbm-body-font); font-size: 13px; font-weight: 700; color: var(--cbm-ink, #0c0a09); white-space: nowrap;
}
.mc-sum-m-pct { font-weight: 500; font-size: 11.5px; color: var(--cbm-muted-soft, #a8a29e);
}

/* Carousel footer — pagination dots + a one-time swipe hint. */
.mc-foot { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 2px 16px 4px; position: relative;
}
.mc-dots { display: flex; gap: 5px; align-items: center;
}
.mc-dot { width: 5px; height: 5px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); transition: width 200ms ease, background 200ms ease;
}
.mc-dot.on { width: 16px; background: var(--cbm-ink-pill, #292524);
}
.mc-swipe {
    position: absolute; right: 16px; display: inline-flex; align-items: center; gap: 4px;
    font-family: var(--cbm-body-font); font-size: 10.5px; font-weight: 600; letter-spacing: 0.2px; text-transform: uppercase;
    color: var(--cbm-muted-soft, #a8a29e);
}
.mc-swipe-hand { color: var(--cbm-muted, #777169); animation: mcSwipeNudge 1.6s ease-in-out infinite;
}
@keyframes mcSwipeNudge {
0%, 100% { transform: translateX(0);
}
50% { transform: translateX(-6px);
}
}
@media (prefers-reduced-motion: reduce) {
.mc-rcard { transition: none;
}
.mc-swipe-hand { animation: none;
}
}

.dst {
    display: inline-flex; align-items: center; gap: 3px; padding: 3px;
    border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
}
.dst-seg {
    display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 13px; width: auto;
    border: 0; background: transparent; border-radius: 9999px; cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; letter-spacing: 0.15px;
    color: var(--cbm-muted, #777169); white-space: nowrap;
    transition: background 200ms cubic-bezier(.4,0,.2,1), color 200ms cubic-bezier(.4,0,.2,1);
}
.dst-seg .icon { color: var(--cbm-muted-soft, #a8a29e);
}
.dst-seg.is-on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); box-shadow: 0 2px 6px rgba(12,10,9,0.18);
}
.dst-seg.is-on .icon { color: var(--cbm-on-primary, #fff);
}
@media (prefers-reduced-motion: reduce) {
.dst-seg { transition: none;
}
}

/* ── "Welcome Back" soft-UI hero + raised-card grid (brand material) ──────────────
   Off-white canvas, soft RAISED cards (single soft shadow + inner top highlight — the
   crudoimage take on the soft-dashboard look, no heavy neumorphism), EB Garamond display,
   ink pill. All tokens → dark-safe. */
.cw-hero {
    position: relative; overflow: hidden; margin-top: 12px; padding: 20px 22px 22px;
    border-radius: 28px; background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 10px 28px rgba(12, 10, 9, 0.06), 0 1px 0 rgba(255, 255, 255, 0.6) inset;
    box-sizing: border-box;
}
.cw-hero-orb { position: absolute; top: -40px; right: -30px; width: 170px; height: 170px; border-radius: 9999px; opacity: 0.4; filter: blur(12px); pointer-events: none; background: radial-gradient(circle at center, var(--cbm-sky, #a8c8e8) 0%, transparent 70%);
}
.cw-hero-top { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.cw-date, .cw-time { font-family: var(--cbm-body-font); font-size: 13px; font-weight: 700; color: var(--cbm-ink, #0c0a09);
}
.cw-avatar { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); font-family: var(--cbm-body-font); font-size: 17px; font-weight: 700; box-shadow: 0 6px 16px rgba(12, 10, 9, 0.14);
}
.cw-day { position: relative; text-align: center; font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600; color: var(--cbm-muted, #777169); margin-top: 8px;
}
.cw-welcome { position: relative; text-align: center; font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 38px; line-height: 1.05; letter-spacing: -0.5px; color: var(--cbm-ink, #0c0a09); margin: 4px 0 2px;
}
.cw-who { position: relative; text-align: center; font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600; color: var(--cbm-muted, #777169);
}
.cw-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin-top: 14px;
}
.cw-grid * { box-sizing: border-box;
}
.cw-span2 { grid-column: 1 / -1;
}
.cw-card {
    position: relative; overflow: hidden; isolation: isolate;
    width: 100%; text-align: left; min-width: 0; cursor: pointer;
    border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-canvas-soft, #fafafa);
    border-radius: 24px; padding: 16px 17px;
    box-shadow: 0 8px 22px rgba(12, 10, 9, 0.06), 0 1px 0 rgba(255, 255, 255, 0.6) inset;
    transition: transform 140ms ease, box-shadow 140ms ease;
}
.cw-card:active { transform: scale(0.985); box-shadow: 0 4px 14px rgba(12, 10, 9, 0.05);
}
/* Drifting pastel bloom behind every card — the brand atmosphere (matches the
   insights cards + hero). Hue is set per card via --cw-orb; the orb sits behind
   content (z-index:-1 inside the card's own stacking context from `isolation`)
   and is clipped to the rounded corner by `overflow:hidden`. */
.cw-card::before {
    content: ''; position: absolute; z-index: -1; pointer-events: none;
    top: -30px; right: -32px; width: 152px; height: 152px; border-radius: 9999px;
    opacity: 0.42; filter: blur(16px);
    background: radial-gradient(circle at center, var(--cw-orb, var(--cbm-peach, #f4c5a8)) 0%, transparent 70%);
}
.cw-orb-sky { --cw-orb: var(--cbm-sky, #a8c8e8);
}
.cw-orb-mint { --cw-orb: var(--cbm-mint, #a7e5d3);
}
.cw-orb-peach { --cw-orb: var(--cbm-peach, #f4c5a8);
}
.cw-orb-lavender { --cw-orb: var(--cbm-lavender, #c8b8e0);
}
.cw-orb-rose { --cw-orb: var(--cbm-rose, #e8b8c4);
}
/* Concentric white icon plate — matches the insights card's circular plate. */
.cw-card-ic { display: inline-flex; width: 38px; height: 38px; border-radius: 9999px; align-items: center; justify-content: center; background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); border: 1px solid var(--cbm-hairline, #e7e5e4); box-shadow: 0 1px 3px rgba(12, 10, 9, 0.05);
}
.cw-card-ic .icon { color: var(--cbm-ink, #0c0a09);
}
.cw-card-title { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 400; font-size: 21px; line-height: 1.1; color: var(--cbm-ink, #0c0a09); margin-top: 10px;
}
.cw-eyebrow { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.9px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}

/* Pipeline (big) */
.cw-pipeline { padding: 16px 18px 18px;
}
.cw-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.cw-pipe-pick { display: inline-flex; align-items: center; gap: 4px; width: auto; height: 28px; padding: 0 11px; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09); font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; cursor: pointer;
}
.cw-pipe-pick .icon { color: var(--cbm-muted, #777169);
}
.cw-pipe-body { display: block; width: 100%; text-align: left; background: transparent; border: 0; padding: 0; cursor: pointer;
}
.cw-pipe-value { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 34px; line-height: 1; letter-spacing: -0.5px; color: var(--cbm-ink, #0c0a09); margin-top: 12px;
}
.cw-pipe-sub { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169); margin-top: 4px;
}
.cw-funnel { display: flex; align-items: flex-end; gap: 6px; height: 46px; margin-top: 14px;
}
.cw-funnel-bar { flex: 1 1 0; min-width: 0; border-radius: 7px 7px 4px 4px; opacity: 0.92;
}

/* Metric cards (won / avg / activity) — icon top, big number, title bottom. */
.cw-metric, .cw-followups { display: flex; flex-direction: column; gap: 2px; min-height: 128px;
}
.cw-metric-num { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 38px; line-height: 1; letter-spacing: -0.5px; color: var(--cbm-ink, #0c0a09); margin-top: auto;
}
.cw-metric-money { font-size: 28px;
}
.cw-fu-meta { font-family: var(--cbm-body-font); font-size: 11px; color: var(--cbm-muted, #777169); margin-top: 4px;
}
.cw-fu-meta .cw-danger { color: var(--cbm-error, #dc2626); font-weight: 700;
}
.cw-followups .cw-metric-num { margin-top: 10px;
}
/* Context sub-line for every metric card — so a number is never shown alone
   (no half-information). Same treatment as the follow-ups meta; the base
   .cw-metric-num margin-top:auto bottom-anchors the num/meta/title group. */
.cw-metric-meta { font-family: var(--cbm-body-font); font-size: 11px; color: var(--cbm-muted, #777169); margin-top: 4px; line-height: 1.3;
}

/* Top deal — "now playing" row. */
.cw-topdeal { display: flex; align-items: center; gap: 13px; cursor: default;
}
.cw-topdeal:active { transform: none; box-shadow: 0 8px 22px rgba(12, 10, 9, 0.06), 0 1px 0 rgba(255, 255, 255, 0.6) inset;
}
.cw-topdeal-ic { flex: 0 0 auto;
}
.cw-topdeal-text { flex: 1 1 auto; min-width: 0;
}
.cw-topdeal-eyebrow { font-family: var(--cbm-body-font); font-size: 10px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--cbm-muted-soft, #a8a29e);
}
.cw-topdeal-name { font-family: var(--cbm-body-font); font-size: 15px; font-weight: 600; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px;
}
.cw-topdeal-sub { font-family: var(--cbm-body-font); font-size: 12px; color: var(--cbm-muted, #777169); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px;
}
.cw-topdeal-actions { flex: 0 0 auto; display: inline-flex; gap: 6px;
}
.cw-tdbtn { width: 34px; height: 34px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; background: var(--cbm-surface-strong, #f0efed); border: 1px solid var(--cbm-hairline, #e7e5e4); color: var(--cbm-ink, #0c0a09); cursor: pointer;
}
.cw-tdbtn .icon { color: var(--cbm-ink, #0c0a09);
}
.cw-tdbtn-go { background: var(--cbm-ink-pill, #292524); border-color: var(--cbm-ink-pill, #292524);
}
.cw-tdbtn-go .icon { color: var(--cbm-on-primary, #fff);
}
.cw-tdbtn.off { opacity: 0.4;
}
@media (prefers-reduced-motion: reduce) {
.cw-card { transition: none;
}
}

/* Scope toggle merged into the hero as a centered footer, set off by a soft
   hairline above it — reads as part of the Welcome Back card, not a stray control. */
.cw-hero-scope {
    position: relative; display: flex; justify-content: center;
    margin-top: 16px; padding-top: 14px;
    border-top: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.crm-dash {
    padding: 0 16px 28px;
    background: var(--cbm-canvas);
}
/* The shared .dash-grid carries its own 16px side padding + 1fr columns. Inside
   the already-padded .crm-dash that doubles the inset and lets each card's
   min-width overflow the row at narrow widths (the 3rd card gets clipped).
   Drop the extra padding and let the columns shrink below content width. */
.crm-dash .dash-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding-left: 0;
    padding-right: 0;
}
/* Same double-inset for the shared ML rails: each carries its own 16px side margin
   (sized for the AIO home, which has no padded wrapper), which doubles to 32px inside
   the already-16px-padded .crm-dash and misaligns their card borders against the hero /
   grid / calendar. Drop only the HORIZONTAL margin so every card lines up at 16px;
   their vertical spacing is untouched. */
.crm-dash .dash-digest,
.crm-dash .dnudge,
.crm-dash .dfreq {
    margin-left: 0;
    margin-right: 0;
}
/* ---- Quick connect carousel ---- */
.qc-strip-head {
    padding: 18px 2px 8px;
}
.qc-strip-head .crm-card-label {
    font-family: var(--cbm-body-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.96px;
    text-transform: uppercase;
    color: var(--cbm-muted);
}
.qc-strip {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px;
    padding: 2px 16px 6px;
    /* Soft warm/cool atmospheric wash behind the rail (static gradient — no blur) so the
       frosted-glass cards on top have warmth to reveal, like the reference's glass over
       warm imagery. The bg stays fixed while the cards scroll over it. */
    background:
        radial-gradient(135% 95% at 86% -12%, rgba(244, 197, 168, 0.13) 0%, transparent 56%),
        radial-gradient(125% 95% at 8% 112%, rgba(168, 200, 232, 0.11) 0%, transparent 56%);
}
html[data-theme='dark'] .qc-strip {
    background:
        radial-gradient(135% 95% at 86% -12%, rgba(244, 197, 168, 0.10) 0%, transparent 56%),
        radial-gradient(125% 95% at 8% 112%, rgba(168, 200, 232, 0.09) 0%, transparent 56%);
}
.qc-strip::-webkit-scrollbar { display: none;
}
.qc-card {
    position: relative;
    flex: 0 0 auto;
    width: 150px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    /* Frosted glass — a translucent, faintly-warm layered fill (NOT solid white) so the
       canvas shows through, with a lit top highlight + soft ambient shadow (the glass
       edge). Real backdrop-blur stays OFF per the lite profile (§5) — and would blur
       nothing on the flat canvas anyway — so the frost is simulated with the translucent
       gradient + edge highlight, the same way the rest of the app fakes glass. */
    background: linear-gradient(157deg, rgba(255, 255, 255, 0.74) 0%, rgba(248, 244, 240, 0.44) 100%);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-xl, 16px);
    padding: 12px 13px;
    box-shadow: 0 8px 22px rgba(12, 10, 9, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.qc-card:active { background: linear-gradient(157deg, rgba(255, 255, 255, 0.88) 0%, rgba(245, 240, 235, 0.62) 100%);
}
/* Frosted glass in dark — smoked, warm translucent tint. */
html[data-theme='dark'] .qc-card {
    background: linear-gradient(157deg, rgba(52, 46, 39, 0.62) 0%, rgba(40, 35, 30, 0.34) 100%);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
html[data-theme='dark'] .qc-card:active { background: linear-gradient(157deg, rgba(60, 53, 45, 0.74) 0%, rgba(48, 42, 36, 0.5) 100%);
}
/* Reduced-transparency → fall back to a solid surface (a11y). */
@media (prefers-reduced-transparency: reduce) {
.qc-card { background: var(--cbm-surface, #ffffff);
}
html[data-theme='dark'] .qc-card { background: var(--cbm-surface, #28231e);
}
}
/* Tap hint in the top-right corner — subtle, non-interactive. */
.qc-tap {
    position: absolute;
    top: 9px;
    right: 9px;
    color: var(--cbm-muted-soft, #b3afaa);
    opacity: 0.75;
    line-height: 0;
    pointer-events: none;
}
.qc-avatar {
    color: var(--cbm-muted-soft, #b3afaa);
    font-size: 22px;
    line-height: 1;
}
.qc-lead {
    font-size: 14px;
    font-weight: 600;
    color: var(--cbm-ink, #0c0a09);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.qc-deal {
    font-size: 11.5px;
    color: var(--cbm-muted, #777169);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.qc-foot {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-top: 8px;
}
.qc-foot-left {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}
.qc-stage {
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    flex: 0 0 auto;
}
.qc-val {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--cbm-ink, #0c0a09);
}
/* Highlighted "time remaining" pill on the Upcoming-followups cards. Neutral by
   default, warm peach when <72h, soft red when <24h — clear, never congested. */
.uf-remain {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 9px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.2px;
    white-space: nowrap;
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-ink, #0c0a09);
}
.uf-remain i { font-size: 11px; color: var(--cbm-muted, #777169);
}
.uf-remain.uf-soon { background: rgba(244, 197, 168, 0.4); color: var(--cbm-warning, #98561f);
}
.uf-remain.uf-soon i { color: var(--cbm-warning, #c2702e);
}
.uf-remain.uf-urgent { background: rgba(220, 38, 38, 0.1); color: var(--cbm-error, #dc2626);
}
.uf-remain.uf-urgent i { color: var(--cbm-error, #dc2626);
}
/* Subtle per-card connect buttons — small, muted, unobtrusive. */
.qc-conn {
    display: flex;
    gap: 10px;
    flex: 0 0 auto;
}
.qc-conn-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-muted, #777169);
}
.qc-conn-btn:active { background: var(--cbm-hairline, #e7e5e4);
}
.qc-conn-wa { color: var(--cbm-success, #16a34a);
}
.qc-conn-off {
    opacity: 0.3;
    pointer-events: none;
}
.qc-empty {
    color: var(--cbm-muted-soft, #b3afaa);
    font-size: 13px;
    padding: 14px 2px;
}
/* ---- Quick connect sheet (popup) ---- */
.qc-popup { background: var(--cbm-canvas, #f5f5f5);
}
.qc-sheet { padding: 12px 16px 28px;
}
.qc-dc {
    background: var(--cbm-surface, #ffffff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-xl, 16px);
    padding: 14px 14px 10px;
    margin-bottom: 12px;
    box-shadow: 0 4px 16px rgba(12, 10, 9, 0.04);
}
.qc-dc-pipe {
    margin-bottom: 8px;
}
.qc-dc-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}
.qc-dc-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--cbm-ink, #0c0a09);
}
.qc-dc-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 4px;
}
.qc-dc-person,
.qc-dc-company {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: var(--cbm-body, #44403c);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.qc-dc-person i, .qc-dc-company i { color: var(--cbm-muted-soft, #b3afaa);
}
.qc-dc-value {
    font-size: 14px;
    font-weight: 600;
    color: var(--cbm-success, #16a34a);
    flex: 0 0 auto;
}
.qc-dc-fu { margin-top: 8px;
}
.qc-dc-actions {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}
/* At-a-glance heading row: title on the left, pipeline filter pill on the right. */
.glance-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
}
.glance-head-text {
    min-width: 0;
}
.glance-pipe {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
    margin-bottom: 2px;
    max-width: 160px;
    height: 32px;
    padding: 0 10px 0 14px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-surface, #ffffff);
    color: var(--cbm-ink, #0c0a09);
    border-radius: 9999px;
    font-family: var(--cbm-body-font);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.15px;
    cursor: pointer;
}
.glance-pipe-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.glance-pipe-caret {
    color: var(--cbm-muted);
    flex: 0 0 auto;
}
/* ---- Searchable pipeline picker sheet ---- */
.pipe-picker-sheet {
    background: var(--cbm-surface, #ffffff);
    border-radius: 18px 18px 0 0;
}
.pipe-picker {
    padding: 14px 14px calc(14px + var(--f7-safe-area-bottom, 0px));
    max-height: 70vh;
    display: flex;
    flex-direction: column;
}
.pipe-picker-search {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 12px;
    border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-muted, #777169);
    margin-bottom: 10px;
    flex: 0 0 auto;
}
.pipe-picker-search input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    outline: none;
    font-family: var(--cbm-body-font);
    font-size: 14.5px;
    color: var(--cbm-ink, #0c0a09);
}
.pipe-picker-clear { cursor: pointer;
}
.pipe-picker-list {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.pipe-picker-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 6px;
    border-bottom: 1px solid var(--cbm-hairline, #e7e5e4);
    font-size: 15px;
    color: var(--cbm-ink, #0c0a09);
}
.pipe-picker-row:active { background: var(--cbm-surface-strong, #f0efed);
}
.pipe-picker-row.active { color: var(--cbm-ink, #0c0a09); font-weight: 600;
}
.pipe-picker-row.active i { color: var(--cbm-success, #16a34a);
}
.pipe-picker-empty {
    padding: 22px 6px;
    text-align: center;
    color: var(--cbm-muted-soft, #b3afaa);
    font-size: 14px;
}
/* ---- Atmospheric pastel orbs — pure decoration, never content ---- */
.crm-orb {
    position: absolute;
    width: 200px;
    height: 200px;
    border-radius: 9999px;
    opacity: 0.5;
    pointer-events: none;
    filter: blur(8px);
    z-index: 0;
}
.crm-orb-peach { top: -70px; right: -40px; background: radial-gradient(circle at center, var(--cbm-peach, #f4c5a8) 0%, transparent 70%);
}
.crm-orb-sky { top: -40px; left: -50px; width: 160px; height: 160px; background: radial-gradient(circle at center, var(--cbm-sky, #a8c8e8) 0%, transparent 70%);
}
/* ---- Editorial headers ---- */
.crm-head {
    position: relative;
    padding: 22px 4px 14px;
    overflow: visible;
}
.crm-section {
    position: relative;
    padding: 22px 4px 10px;
}
.crm-eyebrow {
    position: relative;
    font-family: var(--cbm-body-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.96px;
    text-transform: uppercase;
    color: var(--cbm-muted);
    margin-bottom: 4px;
}
.crm-display {
    position: relative;
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 32px;
    line-height: 1.13;
    letter-spacing: -0.32px;
    color: var(--cbm-ink);
    margin: 0;
}
.crm-display-sm {
    font-size: 24px;
    letter-spacing: 0;
}
/* ---- Cards ---- */
.crm-card {
    position: relative;
    background: var(--cbm-surface, #ffffff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-xl, 16px);
    padding: 16px;
    box-shadow: 0 4px 16px rgba(12, 10, 9, 0.04);
    z-index: 1;
}
.crm-card-flush {
    padding: 6px 8px;
}
.crm-card-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.crm-card-label {
    font-size: 13px;
    color: var(--cbm-muted);
    letter-spacing: 0.15px;
}
.crm-card-value {
    font-size: 15px;
    font-weight: 500;
    color: var(--cbm-ink);
}
/* ---- Pipeline stages ---- */
.crm-stages {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -2px;
    padding: 0 2px 2px;
}
.crm-stages::-webkit-scrollbar { display: none;
}
.crm-stage {
    flex: 0 0 auto;
    min-width: 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    background: var(--cbm-surface-strong, #f0efed);
    border-radius: var(--cbm-radius-md, 8px);
    padding: 10px 4px;
}
.crm-stage-count {
    font-size: 18px;
    font-weight: 500;
    color: var(--cbm-ink);
}
.crm-stage-name {
    font-size: 10px;
    color: var(--cbm-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    letter-spacing: 0.1px;
}
.crm-stage-empty { color: var(--cbm-muted-soft);
}
/* ---- Today rows ---- */
.crm-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 10px;
    border-radius: var(--cbm-radius-lg, 12px);
}
.crm-row:active { background: var(--cbm-surface-strong, #f0efed);
}
.crm-row-ic {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-ink);
}
.crm-row-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.crm-row-title {
    font-size: 15px;
    font-weight: 500;
    color: var(--cbm-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.crm-row-sub {
    font-size: 12px;
    color: var(--cbm-muted);
    letter-spacing: 0.15px;
}
.crm-row-sub.overdue { color: var(--cbm-error, #dc2626);
}
.crm-row-go { color: var(--cbm-muted-soft);
}
.crm-empty {
    text-align: center;
    color: var(--cbm-muted-soft);
    font-size: 14px;
    padding: 26px 16px;
}
/* ---- Quick stats ---- */
.crm-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}
.crm-stat {
    background: var(--cbm-surface, #ffffff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-xl, 16px);
    padding: 14px;
    box-shadow: 0 4px 16px rgba(12, 10, 9, 0.04);
}
.crm-stat-label {
    display: block;
    font-size: 12px;
    color: var(--cbm-muted);
    letter-spacing: 0.15px;
    margin-bottom: 6px;
}
.crm-stat-num {
    font-size: 24px;
    font-weight: 500;
    color: var(--cbm-ink);
}

.ops-dash { padding-bottom: 28px;
}
.ops-scope { display: flex; justify-content: flex-end; margin: 8px 0 0;
}

/* Liquid-glass "Open board" CTA */
.ops-board-cta {
    position: relative;
    width: 100%;
    margin: 6px 0 4px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 54px;
    padding: 0 18px;
    border-radius: var(--cbm-radius-xl, 16px);
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
    border: 0;
    cursor: pointer;
    font-family: var(--cbm-body-font);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.15px;
    box-shadow: 0 6px 20px rgba(12, 10, 9, 0.14);
}
.ops-board-cta:active { background: var(--cbm-ink-pill-active, #0c0a09); transform: scale(0.99);
}
.ops-board-cta-l { display: inline-flex; align-items: center; gap: 10px;
}
.ops-board-cta .icon { color: var(--cbm-on-primary, #fff);
}
.ops-head { position: relative; padding: 22px 4px 10px;
}
.ops-title {
    position: relative;
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 24px;
    line-height: 1.2;
    color: var(--cbm-ink, #0c0a09);
    margin: 2px 0 0;
}
.ops-grid { margin-top: 2px;
}

/* Dedicated Performance entry — a flat editorial surface card. */
.ops-perf-cta {
    width: 100%; margin-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 16px; border-radius: var(--cbm-radius-xl, 16px);
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0,0,0,0.04)); cursor: pointer; text-align: left;
}
.ops-perf-cta:active { background: var(--cbm-canvas-soft, #fafafa);
}
.ops-perf-l { display: inline-flex; align-items: center; gap: 12px; min-width: 0;
}
.ops-perf-icon { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; background: radial-gradient(circle at 30% 30%, var(--cbm-lavender, #c8b8e0), var(--cbm-sky, #a8c8e8));
}
.ops-perf-icon .icon { color: var(--cbm-ink, #0c0a09);
}
.ops-perf-text { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.ops-perf-title { font-family: var(--cbm-body-font); font-size: 15px; font-weight: 600; letter-spacing: 0.1px; color: var(--cbm-ink, #0c0a09);
}
.ops-perf-sub { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.ops-perf-cta > .icon { color: var(--cbm-muted-soft, #a8a29e); flex: 0 0 auto;
}

/* Filter pills flush to the dashboard edges. */
.ops-filter-bar { margin: 2px -4px 8px;
}
.ops-empty { font-family: var(--cbm-body-font); font-size: 14px; color: var(--cbm-muted, #777169); padding: 8px 4px;
}
.ops-projects { display: flex; flex-direction: column; gap: 10px;
}
.ops-proj {
    display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
    padding: 14px 14px; cursor: pointer;
}
.ops-proj:active { background: var(--cbm-surface-strong, #f0efed);
}
.ops-proj-body { flex: 1 1 auto; min-width: 0;
}
.ops-proj-name { font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ops-proj-meta { display: flex; align-items: center; gap: 8px; margin-top: 6px;
}
.ops-proj-badge { text-transform: capitalize;
}
.ops-proj-due { display: inline-flex; align-items: center; gap: 4px; font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.ops-proj-go { color: var(--cbm-muted-soft, #a8a29e); flex: 0 0 auto;
}

.fin-dash { padding-bottom: 28px;
}
.fin-scope { display: flex; justify-content: flex-end; margin: 8px 0 0;
}

/* Warm peach atmospheric bloom behind the finance header. */
.fin-orb-peach {
    background: radial-gradient(circle at 50% 50%, var(--cbm-peach, #f4c5a8), var(--cbm-rose, #e8b8c4));
}
.fin-head { position: relative; padding: 22px 4px 10px;
}
.fin-title {
    position: relative;
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 24px;
    line-height: 1.2;
    color: var(--cbm-ink, #0c0a09);
    margin: 2px 0 0;
}
.fin-grid { margin-top: 2px;
}
/* Money figures reuse the `.dash-count` pill, which is a FIXED 22px-tall capsule built
   for tiny counts ("6"). A money sum ("₹ 2.94 Cr") is far wider, so in the 3-up grid it
   wrapped to two lines and spilled out of the fixed-height pill. Make the money pill
   flexible: auto height with real vertical padding, a single non-wrapping line, and a
   viewport-responsive font (clamps down on narrow cards) so the sum always fits cleanly.
   Scoped to the dashboard stat grid so it never overrides the shared list/detail
   `.fin-money` base in finance-ui.css (this <style> is unscoped/global). */
.fin-grid .fin-money {
    height: auto;
    min-height: 24px;
    max-width: 100%;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: clamp(14px, 4.2vw, 19px) !important;
    line-height: 1.15;
    letter-spacing: -0.2px;
    white-space: nowrap;
}

/* Section CTA — flat editorial surface card (mirrors ops-perf-cta). */
.fin-cta {
    width: 100%; margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 16px; border-radius: var(--cbm-radius-xl, 16px);
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0,0,0,0.04)); cursor: pointer; text-align: left;
}
.fin-cta:active { background: var(--cbm-canvas-soft, #fafafa);
}
.fin-cta-l { display: inline-flex; align-items: center; gap: 12px; min-width: 0;
}
.fin-cta-icon { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center;
}
.fin-cta-icon-sales { background: radial-gradient(circle at 30% 30%, var(--cbm-peach, #f4c5a8), var(--cbm-rose, #e8b8c4));
}
.fin-cta-icon-purchase { background: radial-gradient(circle at 30% 30%, var(--cbm-sky, #a8c8e8), var(--cbm-mint, #a7e5d3));
}
.fin-cta-icon .icon { color: var(--cbm-ink, #0c0a09);
}
.fin-cta-text { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.fin-cta-title { font-family: var(--cbm-body-font); font-size: 15px; font-weight: 600; letter-spacing: 0.1px; color: var(--cbm-ink, #0c0a09);
}
.fin-cta-sub { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.fin-cta > .icon { color: var(--cbm-muted-soft, #a8a29e); flex: 0 0 auto;
}

/* Quick links row into Purchase sub-screens. */
.fin-links { display: flex; gap: 8px; margin-top: 12px;
}
.fin-link {
    flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    height: 42px; border-radius: var(--cbm-radius-lg, 12px);
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; letter-spacing: 0.1px; cursor: pointer;
}
.fin-link .icon { color: var(--cbm-muted, #777169);
}
.fin-link:active { background: var(--cbm-surface-strong, #f0efed);
}
.fin-empty { font-family: var(--cbm-body-font); font-size: 14px; color: var(--cbm-muted, #777169); padding: 12px 4px;
}

.hr-dash { padding-bottom: 28px;
}
.hr-scope { display: flex; justify-content: flex-end; margin: 8px 0 0;
}
.hr-head { position: relative; padding: 22px 4px 10px;
}
.hr-title {
    position: relative;
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 24px; line-height: 1.2;
    color: var(--cbm-ink, #0c0a09); margin: 2px 0 0;
}
.hr-grid { margin-top: 2px;
}
.hr-grid .qm-card-icon { color: var(--cbm-ink, #0c0a09);
}

/* Section CTA — flat editorial surface card (mirrors fin-cta). */
.hr-cta {
    width: 100%; margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 16px; border-radius: var(--cbm-radius-xl, 16px);
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04)); cursor: pointer; text-align: left;
}
.hr-cta:active { background: var(--cbm-canvas-soft, #fafafa);
}
.hr-cta-l { display: inline-flex; align-items: center; gap: 12px; min-width: 0;
}
/* Clean single-tone tinted disc (the old two-colour glossy radial gradient read as
   two overlapping spheres). Soft colour wash + matching glyph, theme-safe. */
.hr-cta-icon { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; overflow: hidden;
}
.hr-cta-icon-people { background: var(--cbm-info-soft, rgba(37, 99, 235, 0.12));
}
.hr-cta-icon-people .icon { color: var(--cbm-info, #2563eb);
}
.hr-cta-icon-leave { background: var(--cbm-success-soft, rgba(22, 163, 74, 0.12));
}
.hr-cta-icon-leave .icon { color: var(--cbm-success, #16a34a);
}
.hr-cta-text { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.hr-cta-title { font-family: var(--cbm-body-font); font-size: 15px; font-weight: 600; letter-spacing: 0.1px; color: var(--cbm-ink, #0c0a09);
}
.hr-cta-sub { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.hr-cta > .icon { color: var(--cbm-muted-soft, #a8a29e); flex: 0 0 auto;
}
.hr-links { display: flex; gap: 8px; margin-top: 12px;
}
.hr-link {
    flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    height: 42px; border-radius: var(--cbm-radius-lg, 12px);
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; letter-spacing: 0.1px; cursor: pointer;
}
.hr-link .icon { color: var(--cbm-muted, #777169);
}
.hr-link:active { background: var(--cbm-surface-strong, #f0efed);
}

.mis-page { padding-bottom: 18px; box-sizing: border-box;
}
.mis-page * { box-sizing: border-box;
}

/* Sticky control header (range + lens tabs) — pins under the app-header on scroll. */
.mis-stick { position: sticky; top: 0; z-index: 20; background: var(--cbm-canvas, #f5f5f5); padding-top: 6px; margin-bottom: 12px; border-bottom: 1px solid var(--cbm-hairline-soft, #f0efed);
}

/* Time-filter rail */
.mis-rangebar { display: flex; gap: 8px; overflow-x: auto; padding: 0 2px 8px; -ms-overflow-style: none; scrollbar-width: none;
}
.mis-rangebar::-webkit-scrollbar { display: none;
}
.mis-range { flex: 0 0 auto; width: auto; height: 32px; padding: 0 13px; border-radius: 9999px; border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-surface, #fff); color: var(--cbm-body, #4e4e4e); font-size: 12.5px; font-weight: 500; letter-spacing: 0.15px; white-space: nowrap;
}
.mis-range.on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border-color: var(--cbm-ink-pill, #292524);
}

/* Scope chip */
.mis-scope { display: flex; align-items: center; gap: 7px; padding: 0 2px 14px; font-size: 12px; color: var(--cbm-muted, #777169);
}
.mis-scope-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--cbm-success, #16a34a); flex: 0 0 auto;
}
.mis-scope-dot.self { background: var(--cbm-warning, #d97706);
}
.mis-empchip { margin-left: auto; width: auto; display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09); font-size: 11.5px;
}

/* Lens tabs — icon + label, ink-pill active (high contrast so the current lens is
   unmistakable; matches the range pills). Stacked like a familiar tab bar. */
.mis-lenses { display: flex; gap: 5px; padding: 4px; margin-bottom: 10px; border-radius: 16px; background: var(--cbm-surface-strong, #f0efed); flex-wrap: nowrap; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.mis-lenses::-webkit-scrollbar { display: none;
}
/* flex:1 0 auto → lenses GROW to fill the bar when they fit (segmented look on wide
   screens) but never SHRINK, so when they don't fit the bar scrolls instead of cramming
   / cutting them off — fits any mobile width. Deals (.dmis-lenses) + HR (.hrm-lensrow)
   keep their own flex overrides. */
.mis-lens { flex: 1 0 auto; width: auto; min-width: 0; height: auto; padding: 7px 10px 6px; border-radius: 12px; border: 0; background: transparent; color: var(--cbm-muted, #777169); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; transition: background 180ms ease, color 180ms ease, transform 120ms ease;
}
.mis-lens-ic { color: inherit;
}
.mis-lens-lab { font-size: 11.5px; font-weight: 600; letter-spacing: 0.1px; line-height: 1; white-space: nowrap;
}
.mis-lens.on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.14);
}
.mis-lens:not(.on):active { transform: scale(0.96);
}
@media (prefers-reduced-motion: reduce) {
.mis-lens { transition: none;
}
}

/* Hero ring */
.mis-hero { display: flex; align-items: center; gap: 14px; padding: 12px 14px; margin-bottom: 10px; border-radius: 20px; background: var(--cbm-canvas-soft, #fafafa); border: 1px solid var(--cbm-hairline, #e7e5e4); position: relative; overflow: hidden;
}
.mis-ring-wrap { position: relative; width: 88px; height: 88px; flex: 0 0 auto;
}
.mis-ring { width: 88px; height: 88px; display: block;
}
.mis-ring-track { stroke: var(--cbm-surface-strong, #f0efed);
}
.mis-ring-prog { transition: stroke-dashoffset 600ms cubic-bezier(.4,0,.2,1);
}
.mis-ring-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.mis-ring-frac { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 22px; line-height: 1; color: var(--cbm-ink, #0c0a09);
}
.mis-ring-frac span { font-size: 12px; color: var(--cbm-muted, #777169); margin-left: 2px;
}
.mis-ring-lab { font-size: 9.5px; color: var(--cbm-muted, #777169); margin-top: 2px;
}
.mis-hero-side { flex: 1 1 auto; min-width: 0;
}
.mis-hero-pct { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 28px; line-height: 1; color: var(--cbm-ink, #0c0a09);
}
.mis-hero-stats { display: flex; flex-direction: column; gap: 3px; margin-top: 8px;
}
.mis-hero-stats span { font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.mis-hero-stats b { color: var(--cbm-ink, #0c0a09); font-weight: 600; margin-right: 4px;
}

/* Summary tiles */
.mis-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px;
}
.mis-tile { min-width: 0; background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: 16px; padding: 10px 10px;
}
.mis-tile-ic { width: 28px; height: 28px; border-radius: 9px; display: flex; align-items: center; justify-content: center; color: var(--cbm-ink, #0c0a09); margin-bottom: 6px;
}
.mis-tile-val { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 18px; line-height: 1.05; color: var(--cbm-ink, #0c0a09);
}
.mis-tile-lab { font-size: 11.5px; color: var(--cbm-body, #4e4e4e); margin-top: 3px;
}
.mis-tile-sub { font-size: 11px; color: var(--cbm-muted, #777169); margin-top: 1px;
}

/* Cards */
.mis-card { background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: 18px; padding: 16px; margin-bottom: 10px;
}
.mis-card-h { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 18px; color: var(--cbm-ink, #0c0a09); margin: 0 0 12px;
}
.mis-card-h.warn-h { color: var(--cbm-error, #dc2626);
}

/* Chart */
.mis-chart { position: relative; width: 100%; height: 84px;
}
.mis-chart-svg { width: 100%; height: 100%; display: block; overflow: visible;
}
.mis-chart-line { stroke: var(--cbm-ink, #0c0a09);
}
.mis-chart-guide { stroke: var(--cbm-hairline-strong, #d6d3d1); stroke-width: 1; stroke-dasharray: 3 3;
}
.mis-chart-dot { fill: var(--cbm-surface, #fff); stroke: var(--cbm-muted-soft, #a8a29e); stroke-width: 2; cursor: pointer;
}
.mis-chart-dot.on { fill: var(--cbm-ink, #0c0a09); stroke: var(--cbm-ink, #0c0a09);
}
.mis-chart-tip { position: absolute; transform: translate(-50%, -120%); background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border-radius: 10px; padding: 5px 9px; white-space: nowrap; pointer-events: none; box-shadow: 0 4px 14px rgba(0,0,0,0.14);
}
.mis-chart-tip b { display: block; font-size: 12.5px; font-weight: 600;
}
.mis-chart-tip span { display: block; font-size: 10px; opacity: 0.75;
}
.mis-chart-axis { display: flex; justify-content: space-between; margin-top: 8px;
}
.mis-chart-axis span { font-size: 10.5px; color: var(--cbm-muted, #777169); text-transform: uppercase; letter-spacing: 0.4px;
}

/* Gradient-orb stat cards (Pipeline funnel · Tasks by status) — one card per
   stage/status, mirroring the "Worth a look" insight cards + the crm-report KPIs:
   pastel orb bloom, soft icon disc, EB-Garamond count, label, sub. */
.mis-statgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.mis-stat { position: relative; overflow: hidden; min-width: 0; background: var(--cbm-canvas-soft, #fafafa); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: 18px; padding: 14px;
}
.mis-stat-orb { position: absolute; width: 120px; height: 120px; border-radius: 50%; filter: blur(34px); opacity: 0.45; top: -44px; right: -34px; pointer-events: none;
}
.mis-stat-ic { position: relative; width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; color: var(--cbm-ink, #0c0a09); margin-bottom: 9px;
}
.mis-stat-val { position: relative; font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 27px; line-height: 1; color: var(--cbm-ink, #0c0a09);
}
.mis-stat-lab { position: relative; font-size: 12.5px; color: var(--cbm-body, #4e4e4e); margin-top: 4px; text-transform: capitalize; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mis-stat-sub { position: relative; font-size: 11.5px; color: var(--cbm-muted, #777169); margin-top: 1px;
}

/* Funnel: horizontal stage rail + sort toggle (avoids a tall vertical grid) */
.mis-funnel-h { display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.mis-funnel-t { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mis-sortseg { flex: 0 0 auto; display: inline-flex; gap: 2px; padding: 3px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed);
}
.mis-sortbtn { width: auto; flex: 0 0 auto; height: 26px; padding: 0 11px; border: 0; border-radius: 9999px; background: transparent; color: var(--cbm-muted, #777169); font-family: var(--cbm-body-font, 'Inter', sans-serif); font-size: 11.5px; font-weight: 500; white-space: nowrap;
}
.mis-sortbtn.on { background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}
.mis-statrail { display: flex; gap: 10px; overflow-x: auto; padding: 1px 1px 4px; scroll-snap-type: x proximity; -ms-overflow-style: none; scrollbar-width: none;
}
.mis-statrail::-webkit-scrollbar { display: none;
}
.mis-statrail .mis-stat { flex: 0 0 auto; width: 140px; scroll-snap-align: start;
}
.mis-statrail .mis-stat-deal { width: 158px;
}
.mis-stat-val-sm { font-size: 20px;
}
.mis-cap { text-transform: capitalize;
}
.mis-stat-who { display: flex; align-items: center; overflow: hidden;
}
.mis-stat-who .mis-tl-av { margin: 0 5px 0 0; flex: 0 0 auto;
}

/* Assignee pill — single = plain avatar+name; multi = tappable pill with "+N" + caret. */
.mis-asg { width: auto; max-width: 100%; display: inline-flex; align-items: center; gap: 5px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; min-width: 0;
}
.mis-asg .mis-asg-av { flex: 0 0 auto;
}
.mis-asg-nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; color: var(--cbm-muted, #777169);
}
.mis-asg.is-multi { padding: 2px 8px 2px 3px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); border: 1px solid var(--cbm-hairline, #e7e5e4); cursor: pointer;
}
.mis-asg.is-multi .mis-asg-nm { color: var(--cbm-ink, #0c0a09); font-weight: 500;
}
.mis-asg-more { flex: 0 0 auto; font-size: 11px; font-weight: 700; color: var(--cbm-ink, #0c0a09);
}
.mis-asg.is-multi::after { content: ''; flex: 0 0 auto; width: 5px; height: 5px; border-right: 1.5px solid var(--cbm-muted, #777169); border-bottom: 1.5px solid var(--cbm-muted, #777169); transform: rotate(45deg); margin: -2px 1px 0 1px;
}
/* in the task sheet's bold value cell, keep the pill ink + right-aligned */
.mis-ds-by .mis-asg-nm { color: var(--cbm-ink, #0c0a09);
}
.mis-ins-s-asg { display: flex; align-items: center; flex-wrap: wrap; gap: 2px;
}
/* Assignee popup list */
.mis-asg-list { display: flex; flex-direction: column; margin-top: 4px;
}
.mis-asg-row { display: flex; align-items: center; gap: 11px; padding: 11px 0; border-top: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.mis-asg-row:first-child { border-top: 0;
}
.mis-asg-row-nm { font-size: 14.5px; color: var(--cbm-ink, #0c0a09); font-weight: 500;
}
/* deal cards: name wraps to 2 lines (deal names are long, unlike short stage labels) */
.mis-stat-name { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.25; min-height: 2.4em;
}
.mis-stat-deal .mis-stat-sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mis-stat-btn { cursor: pointer; -webkit-tap-highlight-color: transparent; padding-right: 24px;
}
.mis-stat-btn:active { transform: scale(0.97);
}
.mis-stat-go { position: absolute; bottom: 11px; right: 11px; color: var(--cbm-muted-soft, #a8a29e);
}
/* Funnel-stage drill list (nudge-style rows; reuses .mis-ins-card) */
.mis-stage-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 2px 0 10px;
}
.mis-stage-head .mis-ds-subhead { margin: 0;
}
.mis-stage-list { max-height: 58vh; overflow-y: auto; -webkit-overflow-scrolling: touch; margin-top: 2px;
}
.mis-stage-deal { cursor: pointer; margin-bottom: 10px;
}
.mis-stage-deal:last-child { margin-bottom: 0;
}
.mis-stage-deal .mis-ins-s .mis-tl-av { margin: 0 5px 0 0;
}
/* Zero-activity warning — semantic error tint + a gentle attention pulse */
.mis-zero { color: var(--cbm-error, #dc2626); font-weight: 600; white-space: nowrap;
}
.mis-ds-zero { display: inline-flex; align-items: center; gap: 5px; color: var(--cbm-error, #dc2626);
}
.mis-zero-ic { color: var(--cbm-error, #dc2626); margin-right: 4px; transform-origin: center; animation: mis-zpulse 1.5s ease-in-out infinite;
}
.mis-ds-zero .mis-zero-ic { margin-right: 0;
}
@keyframes mis-zpulse {
0%, 100% { opacity: 0.5; transform: scale(1);
}
50% { opacity: 1; transform: scale(1.22);
}
}
@media (prefers-reduced-motion: reduce) {
.mis-zero-ic { animation: none; opacity: 1;
}
}

/* Funnel bars */
.mis-bar-row { margin-bottom: 11px;
}
.mis-bar-row:last-child { margin-bottom: 0;
}
.mis-bar-head { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; margin-bottom: 5px;
}
.mis-bar-head .nm { color: var(--cbm-ink, #0c0a09); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; text-transform: capitalize;
}
.mis-bar-head .ct { flex: 0 0 auto; color: var(--cbm-muted, #777169);
}
.mis-bar-track { height: 8px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); overflow: hidden;
}
.mis-bar-fill { display: block; height: 100%; border-radius: 9999px;
}

/* Leaderboard */
.mis-lb-row { display: flex; align-items: center; gap: 11px; width: 100%; padding: 10px 0; border: 0; border-top: 1px solid var(--cbm-hairline-soft, #f0efed); background: transparent; text-align: left;
}
.mis-lb .mis-lb-row:first-of-type { border-top: 0;
}
.mis-lb-row.on { background: var(--cbm-surface-strong, #f0efed); border-radius: 12px; padding-left: 8px; padding-right: 8px;
}
.mis-lb-rank { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted, #777169); font-size: 11.5px; font-weight: 600; display: flex; align-items: center; justify-content: center;
}
.mis-lb-main { flex: 1 1 auto; min-width: 0;
}
.mis-lb-nm { display: block; font-size: 14px; font-weight: 500; color: var(--cbm-ink, #0c0a09); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mis-lb-stats { display: flex; gap: 12px; margin-top: 2px;
}
.mis-lb-stats span { font-size: 12px; color: var(--cbm-ink, #0c0a09);
}
.mis-lb-stats i { font-style: normal; font-size: 10.5px; color: var(--cbm-muted, #777169); margin-left: 3px;
}
.mis-lb-val { flex: 0 0 auto; font-size: 13.5px; font-weight: 500; color: var(--cbm-ink, #0c0a09);
}
.mis-lb-rank.top1 { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
}
.mis-lb-when { display: block; font-size: 11px; color: var(--cbm-muted, #777169); margin-top: 3px;
}

/* Recent activity list (icon · title · date · status pill · chevron) */
.mis-act { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 0; border: 0; border-top: 1px solid var(--cbm-hairline-soft, #f0efed); background: transparent; text-align: left;
}
.mis-card .mis-act:first-of-type { border-top: 0;
}
.mis-act-ic { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--cbm-ink, #0c0a09);
}
.mis-act-ic.warn { background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-error, #dc2626);
}
.mis-act-main { flex: 1 1 auto; min-width: 0;
}
.mis-act-nm { display: block; font-size: 14px; color: var(--cbm-ink, #0c0a09); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mis-act-sub { display: block; font-size: 11.5px; color: var(--cbm-muted, #777169);
}
.mis-act-val { flex: 0 0 auto; font-size: 13px; font-weight: 500; color: var(--cbm-ink, #0c0a09);
}
.mis-act-pill { flex: 0 0 auto; padding: 3px 9px; border-radius: 9999px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.3px; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted, #777169);
}
.mis-act-pill.ok { background: rgba(22,163,74,0.12); color: var(--cbm-success, #16a34a);
}
.mis-act-pill.move { background: rgba(37,99,235,0.12); color: var(--cbm-info, #2563eb);
}
.mis-act-pill.new { background: rgba(168,200,232,0.22); color: var(--cbm-ink, #0c0a09);
}
.mis-act-chev { flex: 0 0 auto; color: var(--cbm-muted-soft, #a8a29e);
}
.mis-more { width: 100%; height: 38px; margin-top: 8px; border-radius: 10px; border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09); font-size: 13px; font-weight: 500;
}

/* Wired activity timeline */
.mis-tl { position: relative; padding-top: 2px;
}
.mis-tl-item { position: relative; display: flex; gap: 12px; padding-bottom: 16px;
}
.mis-tl-item:last-child { padding-bottom: 0;
}
.mis-tl-rail { position: relative; flex: 0 0 20px; display: flex; justify-content: center;
}
.mis-tl-item:not(:last-child) .mis-tl-rail::before { content: ''; position: absolute; left: 50%; transform: translateX(-50%); top: 18px; bottom: -16px; width: 2px; background: var(--cbm-hairline-strong, #d6d3d1);
}
.mis-tl-node { position: relative; z-index: 1; width: 18px; height: 18px; border-radius: 50%; margin-top: 4px; background: var(--cbm-surface, #fff); border: 2px solid var(--cbm-hairline-strong, #d6d3d1); display: flex; align-items: center; justify-content: center; color: var(--cbm-muted, #777169);
}
.mis-tl-item.active .mis-tl-node { background: var(--cbm-ink-pill, #292524); border-color: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); box-shadow: 0 0 0 4px var(--cbm-surface, #fff);
}
.mis-tl-card { flex: 1 1 auto; min-width: 0; text-align: left; border: 0; border-radius: 16px; padding: 11px 13px; background: var(--cbm-surface-strong, #f0efed);
}
.mis-tl-item.active .mis-tl-card { background: var(--cbm-ink-pill, #292524);
}
.mis-tl-head { display: flex; justify-content: space-between; gap: 8px; align-items: baseline;
}
.mis-tl-title { font-size: 14px; font-weight: 500; color: var(--cbm-ink, #0c0a09); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0;
}
.mis-tl-time { flex: 0 0 auto; font-size: 11.5px; color: var(--cbm-muted, #777169);
}
.mis-tl-sub { display: block; font-size: 12px; color: var(--cbm-muted, #777169); margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mis-tl-verb { font-weight: 600; color: var(--cbm-body-strong, #292524);
}
.mis-tl-verb.ok { color: var(--cbm-success, #16a34a);
}
.mis-tl-verb.move { color: var(--cbm-info, #2563eb);
}
.mis-tl-item.active .mis-tl-title, .mis-tl-item.active .mis-tl-time { color: var(--cbm-on-primary, #fff);
}
.mis-tl-item.active .mis-tl-sub, .mis-tl-item.active .mis-tl-verb { color: var(--cbm-on-primary, #fff); opacity: 0.78;
}

/* Activity quick-detail sheet (reuses the global .cbm-pick-sheet glass surface) */
.mis-ds { padding: 4px 20px 22px;
}
.mis-ds-grip { width: 40px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 8px auto 14px;
}
.mis-ds-eyebrow { display: flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.mis-ds-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cbm-muted-soft, #a8a29e);
}
.mis-ds-dot.ok { background: var(--cbm-success, #16a34a);
}
.mis-ds-dot.move { background: var(--cbm-info, #2563eb);
}
.mis-ds-title { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 23px; line-height: 1.15; color: var(--cbm-ink, #0c0a09); margin: 6px 0 16px;
}
.mis-ds-rows { display: flex; flex-direction: column; margin-bottom: 18px;
}
.mis-ds-row { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-top: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.mis-ds-row:first-child { border-top: 0;
}
.mis-ds-row span { flex: 0 0 auto; font-size: 13px; color: var(--cbm-muted, #777169);
}
.mis-ds-row b { text-align: right; font-size: 13.5px; font-weight: 500; color: var(--cbm-ink, #0c0a09); min-width: 0;
}
.mis-ds-cta { width: 100%; height: 48px; border: 0; border-radius: 9999px; background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); font-size: 15px; font-weight: 500;
}
.mis-ds-cta.ghost { background: transparent; border: 1px solid var(--cbm-hairline-strong, #d6d3d1); color: var(--cbm-ink, #0c0a09);
}
.mis-ds-subhead { font-size: 11px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--cbm-muted, #777169); margin: 2px 0 12px;
}
.mis-emp-range { padding: 4px 0 14px;
}
.mis-emp-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px;
}
.mis-emp-stat { min-width: 0; background: var(--cbm-surface-strong, #f0efed); border-radius: 12px; padding: 10px 6px; text-align: center;
}
.mis-emp-stat b { display: block; font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 18px; line-height: 1.05; color: var(--cbm-ink, #0c0a09); overflow: hidden; text-overflow: ellipsis;
}
.mis-emp-stat span { display: block; font-size: 10px; color: var(--cbm-muted, #777169); margin-top: 3px; text-transform: capitalize;
}
.mis-emp-acts { max-height: 38vh; overflow-y: auto; -webkit-overflow-scrolling: touch; margin-bottom: 16px;
}
.mis-emp-empty { text-align: center; color: var(--cbm-muted, #777169); font-size: 13px; padding: 16px 0;
}

/* User avatars (photo or pastel initials) + involved-people pills rail */
.mis-av { position: relative; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; overflow: hidden; color: #292524; font-weight: 600; line-height: 1;
}
.mis-av .mis-av-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
.mis-av.av-tiny { width: 18px; height: 18px; font-size: 8px;
}
.mis-av.av-sm { width: 28px; height: 28px; font-size: 11px;
}
.mis-av.av-lg { width: 46px; height: 46px; font-size: 17px;
}
.mis-people { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 14px; -ms-overflow-style: none; scrollbar-width: none;
}
.mis-people::-webkit-scrollbar { display: none;
}
.mis-person-pill { flex: 0 0 auto; width: auto; display: inline-flex; align-items: center; gap: 8px; padding: 4px 13px 4px 4px; border-radius: 9999px; border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-surface, #fff);
}
.mis-person-name { font-size: 13px; font-weight: 500; color: var(--cbm-ink, #0c0a09); white-space: nowrap;
}
.mis-emp-head { display: flex; align-items: center; gap: 12px; margin: 6px 0 16px;
}
.mis-emp-head .mis-ds-title { margin: 0;
}
.mis-tl-av { margin: 0 5px 0 2px; vertical-align: middle;
}
.mis-ds-by { display: inline-flex; align-items: center; gap: 7px;
}

/* Neglected-deals sticky sub-header (title + live search + neglecter carousel pin
   together below the control header). Negative side/top margins bleed it to the card
   edges; the opaque surface bg hides deal rows scrolling beneath when pinned. */
.mis-nd-card { position: relative;
}
.mis-nd-sticky { position: sticky; z-index: 8; margin: -16px -16px 4px; padding: 16px 16px 10px; background: var(--cbm-surface, #fff); border-radius: 18px 18px 0 0; border-bottom: 1px solid var(--cbm-hairline-soft, #f0efed);
}
.mis-nd-head-right { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px;
}
.mis-nd-searchbtn { width: auto; flex: 0 0 auto; height: 28px; padding: 0 9px; border-radius: 9999px; border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09); display: inline-flex; align-items: center; justify-content: center; transition: background 180ms ease, color 180ms ease;
}
.mis-nd-searchbtn.on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border-color: var(--cbm-ink-pill, #292524);
}
.mis-nd-search { margin: 2px 0 12px;
}

/* Neglected-deals header + neglecter pills + ND detail */
.mis-nd-head { display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.mis-nd-badge { flex: 0 0 auto; padding: 2px 9px; border-radius: 9999px; background: rgba(220, 38, 38, 0.12); color: var(--cbm-error, #dc2626); font-size: 11px; font-weight: 700; letter-spacing: 0.4px;
}
.mis-nd-people { padding-top: 2px;
}
.mis-nd-sticky .mis-nd-people { padding-bottom: 0; margin-bottom: 0;
}

/* Deals-lens stage carousel (filter the top-open list by stage; neutral, not red) */
.mis-stage-pill { padding: 6px 12px;
}
.mis-stage-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%;
}
.mis-stage-ct { flex: 0 0 auto; margin-left: 1px; padding: 2px 7px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted, #777169); font-size: 11px; font-weight: 700;
}
.mis-stage-pill.on { border-color: var(--cbm-ink-pill, #292524); background: var(--cbm-surface-strong, #f0efed);
}
.mis-stage-pill .mis-nd-x { color: var(--cbm-ink, #0c0a09);
}
/* Active-deals row: emphasise the touch count */
.mis-act-count { color: var(--cbm-ink, #0c0a09); font-weight: 700;
}
.mis-nd-sticky .mis-nd-head { margin-bottom: 10px;
}
.mis-nd-pill { border-color: rgba(220, 38, 38, 0.28);
}
.mis-nd-pct { flex: 0 0 auto; margin-left: 2px; padding: 2px 7px; border-radius: 9999px; background: rgba(220, 38, 38, 0.12); color: var(--cbm-error, #dc2626); font-size: 11px; font-weight: 700;
}
.mis-ds-dot.warn-dot { background: var(--cbm-error, #dc2626);
}
.mis-nd-reasons { list-style: none; margin: 0 0 18px; padding: 0;
}
.mis-nd-reasons li { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; font-size: 13.5px; color: var(--cbm-ink, #0c0a09);
}
.mis-nd-rdot { flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; margin-top: 6px; background: var(--cbm-error, #dc2626);
}
.mis-nd-pill.on { border-color: var(--cbm-error, #dc2626); background: rgba(220, 38, 38, 0.08);
}
.mis-nd-x { flex: 0 0 auto; margin-left: 1px; color: var(--cbm-error, #dc2626);
}

/* Section-header count chip ("quantify") + list row numbers */
.mis-count { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 19px; padding: 0 6px; margin-left: 7px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted, #777169); font-family: var(--cbm-body-font, 'Inter', sans-serif); font-size: 11px; font-weight: 600; vertical-align: middle;
}
.mis-rownum { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted, #777169); font-size: 11.5px; font-weight: 600;
}
.mis-rownum.warn { background: rgba(220, 38, 38, 0.12); color: var(--cbm-error, #dc2626);
}

/* "Worth a look" insight nudge cards (✦ eyebrow · soft icon · headline · dismiss · arrow) */
.mis-insights { margin-bottom: 16px;
}
.mis-ins-eyebrow { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.mis-ins-h { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 24px; line-height: 1.12; color: var(--cbm-ink, #0c0a09); margin: 4px 0 14px;
}
.mis-ins-card { position: relative; overflow: hidden; display: flex; align-items: center; gap: 14px; min-height: 84px; background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: 20px; padding: 16px; margin-bottom: 12px;
}
.mis-ins-orb { position: absolute; width: 150px; height: 150px; border-radius: 50%; filter: blur(42px); opacity: 0.4; top: -52px; right: -34px; pointer-events: none;
}
.mis-ins-ic { position: relative; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09);
}
.mis-ins-body { position: relative; flex: 1 1 auto; min-width: 0; padding-right: 6px;
}
.mis-ins-t { display: block; font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 17px; line-height: 1.25; color: var(--cbm-ink, #0c0a09);
}
.mis-ins-s { display: block; font-size: 12.5px; line-height: 1.4; color: var(--cbm-muted, #777169); margin-top: 3px;
}
.mis-ins-x { position: absolute; top: 9px; right: 12px; z-index: 2; width: auto; padding: 4px; border: 0; background: transparent; color: var(--cbm-muted-soft, #a8a29e);
}
.mis-ins-go { position: relative; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); display: flex; align-items: center; justify-content: center;
}

/* Live search — pinned at the BOTTOM of each long list (brand rule §dropdown-search-bottom).
   text-input token (surface-card · rounded.md · hairline-strong · 44px) + leading glyph.
   Scoped under .mis-page so the F7 input[type=text] reset (§5) can't strip border/bg. */
.mis-page .mis-search { display: flex; align-items: center; gap: 9px; width: 100%; margin-top: 12px; padding: 0 12px; height: 44px; border-radius: 8px; background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline-strong, #d6d3d1); transition: border-color 180ms ease;
}
.mis-page .mis-search:focus-within { border-color: var(--cbm-ink-pill, #292524);
}
.mis-page .mis-search-ic { flex: 0 0 auto; color: var(--cbm-muted, #777169);
}
.mis-page .mis-search-in { flex: 1 1 auto; min-width: 0; height: 100%; border: 0; background: transparent; color: var(--cbm-ink, #0c0a09); font-family: var(--cbm-body-font, 'Inter', sans-serif); font-size: 14px; letter-spacing: 0.15px; -webkit-appearance: none; appearance: none;
}
.mis-page .mis-search-in::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.mis-page .mis-search-clr { flex: 0 0 auto; width: auto; padding: 2px; border: 0; background: transparent; color: var(--cbm-muted-soft, #a8a29e);
}
.mis-search-empty { text-align: center; color: var(--cbm-muted, #777169); font-size: 12.5px; padding: 12px 0 2px;
}
.mis-empty { text-align: center; color: var(--cbm-muted, #777169); font-size: 13.5px; padding: 26px 0;
}
@media (prefers-reduced-motion: reduce) {
.mis-ring-prog { transition: none;
}
}

/* Deal MIS reuses the global .mis-* chrome from mis-report.vue (sticky header, range/lens
   tabs, tiles, cards, bar rows, statrails, insight cards, lists, drill sheets, avatars).
   Below: only the deal-specific additions — the command KPI grid, the conversion funnel
   bands, the movement cells, the score chips, the neglecter rail. Tokens only → dark-safe. */
.dmis-page { padding-bottom: 8px;
}
/* 9 lens tabs → a horizontally-scrolling rail (the base .mis-lens flex:1 squishes them).
   Each tab sizes to its content, label on a single line; the rail scrolls under the finger. */
.dmis-lenses { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; flex-wrap: nowrap;
}
.dmis-lenses::-webkit-scrollbar { display: none;
}
.dmis-lenses .mis-lens { flex: 0 0 auto; min-width: 0; padding: 7px 11px 6px;
}
.dmis-lenses .mis-lens-lab { white-space: nowrap;
}

/* Command owner KPI grid (D20). */
.dmis-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px;
}
.dmis-kpi { width: auto; text-align: left; border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-surface, #fff); border-radius: 18px; padding: 13px 14px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.dmis-kpi:active { transform: scale(0.98);
}
.dmis-kpi-top { display: flex;
}
.dmis-kpi-val { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 26px; line-height: 1.1; color: var(--cbm-ink, #0c0a09); margin: 8px 0 2px;
}
.dmis-kpi-lab { font-size: 12px; color: var(--cbm-muted, #777169);
}
.dmis-top { display: flex; align-items: center; gap: 12px;
}
.dmis-top-nm { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 400; font-size: 18px; color: var(--cbm-ink, #0c0a09);
}
.dmis-top-sub { font-size: 12.5px; color: var(--cbm-muted, #777169); margin-top: 2px;
}

/* D1 conversion funnel — descending bands + drop-off labels. */
.dmis-funnel { display: flex; flex-direction: column; gap: 8px; align-items: center;
}
.dmis-band-wrap { width: 100%; display: flex; align-items: center; gap: 8px;
}
.dmis-band { min-width: 0; height: 40px; border-radius: 11px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; color: var(--cbm-ink, #0c0a09);
}
.dmis-band-nm { font-size: 12.5px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dmis-band-ct { font-size: 13px; font-weight: 700; flex: 0 0 auto; margin-left: 8px;
}
.dmis-band-drop { flex: 0 0 auto; font-size: 11.5px; font-weight: 600; color: var(--cbm-muted, #777169);
}
.dmis-band-drop.leak { color: var(--cbm-error, #d9534f);
}

/* Movement / score-distribution cells. */
.dmis-move { display: flex; gap: 8px;
}
.dmis-move-cell { flex: 1 1 0; min-width: 0; text-align: center; background: var(--cbm-surface-strong, #f0efed); border-radius: 12px; padding: 10px 4px;
}
.dmis-move-cell b { display: block; font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 400; font-size: 21px; color: var(--cbm-ink, #0c0a09);
}
.dmis-move-cell span { font-size: 11px; color: var(--cbm-muted, #777169);
}
.dmis-target-top { display: flex; align-items: center; gap: 14px; margin-bottom: 12px;
}
.dmis-target-big { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 34px; color: var(--cbm-ink, #0c0a09);
}
.dmis-target-meta { display: flex; flex-direction: column; gap: 2px; font-size: 12.5px; color: var(--cbm-muted, #777169);
}

/* D9 score chip. */
.dmis-score { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 11px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: var(--cbm-ink, #0c0a09);
}

/* Neglecter rail (D11). */
.dmis-neg-rail { display: flex; gap: 14px; overflow-x: auto; scrollbar-width: none; padding: 2px;
}
.dmis-neg-rail::-webkit-scrollbar { display: none;
}
.dmis-neg { flex: 0 0 auto; width: 74px; text-align: center;
}
.dmis-neg-nm { font-size: 11px; color: var(--cbm-ink, #0c0a09); margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dmis-neg-pct { font-size: 11px; color: var(--cbm-muted, #777169);
}
.dmis-reasons { list-style: none; margin: 8px 0 0; padding: 0;
}
.dmis-reasons li { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--cbm-muted, #777169); padding: 3px 0;
}
.dmis-chart-x { display: flex; justify-content: space-between; margin-top: 4px; font-size: 10px; color: var(--cbm-muted, #777169);
}

/* HR MIS reuses the global .mis-* styles from mis-report.vue (page chrome, sticky header,
   hero ring, stat rails, cards, bar rows, lists, drill sheets, avatars). Below: only the
   HR-specific additions — the owner KPI grid, status dots/pills (the universal green/amber/
   red logic), the composition donut and the payroll waterfall. */
.hrm-viewseg { margin-bottom: 8px;
}

/* HR lens tab row — scrolls horizontally if it ever overflows; active ink-pill stays clear. */
.hrm-lensrow { overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; flex-wrap: nowrap;
}
.hrm-lensrow::-webkit-scrollbar { display: none;
}
.hrm-lensrow .mis-lens { flex: 1 0 auto; min-width: 66px; padding-left: 10px; padding-right: 10px;
}

/* Four owner KPI cards — 2×2 grid of gradient-orb stat cards (tappable). */
.hrm-kpi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px;
}
.hrm-kpi { position: relative; overflow: hidden; min-width: 0; text-align: left; background: var(--cbm-canvas-soft, #fafafa); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: 18px; padding: 14px; -webkit-tap-highlight-color: transparent;
}
.hrm-kpi:active { transform: scale(0.98);
}
.hrm-kpi-top { position: relative; display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px;
}

/* Universal status dot + pill (green within target · amber watch · red breached). */
.hrm-dot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: var(--cbm-muted-soft, #a8a29e);
}
.hrm-dot.green { background: var(--cbm-success, #16a34a);
}
.hrm-dot.amber { background: var(--cbm-warning, #d97706);
}
.hrm-dot.red { background: var(--cbm-error, #dc2626);
}
.hrm-statuspill { flex: 0 0 auto; padding: 3px 9px; border-radius: 9999px; font-size: 10.5px; font-weight: 700; letter-spacing: 0.3px; white-space: nowrap; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted, #777169);
}
.hrm-statuspill.green { background: rgba(22, 163, 74, 0.12); color: var(--cbm-success, #16a34a);
}
.hrm-statuspill.amber { background: rgba(217, 119, 6, 0.14); color: var(--cbm-warning, #d97706);
}
.hrm-statuspill.red { background: rgba(220, 38, 38, 0.12); color: var(--cbm-error, #dc2626);
}
.hrm-red { color: var(--cbm-error, #dc2626) !important;
}
.hrm-amber { color: var(--cbm-warning, #d97706) !important;
}

/* Composition cut toggle reuses .mis-sortseg/.mis-sortbtn geometry. */
.hrm-compseg { display: flex; gap: 2px; padding: 3px; margin-bottom: 12px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none;
}
.hrm-compseg::-webkit-scrollbar { display: none;
}

/* Composition donut + legend. */
.hrm-donut-wrap { display: flex; align-items: center; gap: 18px;
}
.hrm-donut { width: 116px; height: 116px; flex: 0 0 auto;
}
.hrm-donut-num { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 22px; fill: var(--cbm-ink, #0c0a09); text-anchor: middle;
}
.hrm-donut-lab { font-size: 8px; fill: var(--cbm-muted, #777169); text-anchor: middle; text-transform: uppercase; letter-spacing: 0.6px;
}
.hrm-legend { flex: 1 1 auto; min-width: 0;
}
.hrm-legend-row { display: flex; align-items: center; gap: 9px; padding: 5px 0;
}
.hrm-legend-dot { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 3px;
}
.hrm-legend-nm { flex: 1 1 auto; min-width: 0; font-size: 13px; color: var(--cbm-body, #4e4e4e); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.hrm-legend-ct { flex: 0 0 auto; font-size: 13px; font-weight: 600; color: var(--cbm-ink, #0c0a09);
}

/* Payroll waterfall row. */
.hrm-wf-row { display: flex; align-items: center; gap: 10px; margin-bottom: 9px;
}
.hrm-wf-row:last-child { margin-bottom: 0;
}
.hrm-wf-lab { flex: 0 0 84px; font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.hrm-wf-lab.tot { color: var(--cbm-ink, #0c0a09); font-weight: 600;
}
.hrm-wf-row .mis-bar-track { flex: 1 1 auto; height: 8px;
}
.hrm-wf-val { flex: 0 0 auto; font-size: 12.5px; color: var(--cbm-body, #4e4e4e); min-width: 56px; text-align: right;
}
.hrm-wf-val.tot { color: var(--cbm-ink, #0c0a09); font-weight: 600;
}

/* Owner band — Cash+Bank hero + four owner numbers (the spec's landing strip). */
.fmis-owner { margin-bottom: 12px;
}
.fmis-owner-hero { background: var(--cbm-canvas-soft, #fafafa); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: 20px; padding: 16px 18px; position: relative; overflow: hidden;
}
.fmis-owner-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.9px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.fmis-owner-big { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 38px; line-height: 1.05; color: var(--cbm-ink, #0c0a09); margin: 4px 0 6px;
}
.fmis-owner-sub { display: flex; align-items: center; gap: 12px; font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.fmis-owner-sub .pos { color: var(--cbm-success, #16a34a); font-weight: 600;
}
.fmis-owner-sub .neg { color: var(--cbm-error, #dc2626); font-weight: 600;
}
.fmis-runway { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 9999px; font-weight: 600;
}
.fmis-runway.green { background: rgba(22,163,74,0.12); color: var(--cbm-success, #16a34a);
}
.fmis-runway.amber { background: rgba(217,119,6,0.14); color: var(--cbm-warning, #d97706);
}
.fmis-runway.red { background: rgba(220,38,38,0.12); color: var(--cbm-error, #dc2626);
}
.fmis-owner-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px;
}
.fmis-otile { width: auto; text-align: left; display: flex; flex-direction: column; gap: 2px; background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: 16px; padding: 11px 12px;
}
.fmis-otile-lab { font-size: 11px; color: var(--cbm-muted, #777169);
}
.fmis-otile-val { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 20px; line-height: 1.05; color: var(--cbm-ink, #0c0a09);
}
.fmis-otile-val.warn, .fmis-otile-val.neg { color: var(--cbm-error, #dc2626);
}
.fmis-otile-val.pos { color: var(--cbm-success, #16a34a);
}
.fmis-otile-sub { font-size: 10.5px; color: var(--cbm-muted, #777169);
}

/* Alerts band */
.fmis-alerts { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px;
}
.fmis-alert { display: flex; align-items: center; gap: 10px; padding: 11px 13px; border-radius: 14px; font-size: 13px; line-height: 1.35;
}
.fmis-alert.red { background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.2); color: var(--cbm-ink, #0c0a09);
}
.fmis-alert.amber { background: rgba(217,119,6,0.08); border: 1px solid rgba(217,119,6,0.2); color: var(--cbm-ink, #0c0a09);
}
.fmis-alert-ic { flex: 0 0 auto;
}
.fmis-alert.red .fmis-alert-ic { color: var(--cbm-error, #dc2626);
}
.fmis-alert.amber .fmis-alert-ic { color: var(--cbm-warning, #d97706);
}
.fmis-alert-tx { flex: 1 1 auto; min-width: 0;
}

/* Dashboard heading within a lens */
.fmis-dash-head { margin: 18px 2px 12px;
}
.fmis-dash-head:first-child { margin-top: 2px;
}
/* DECLUTTER (MIS redesign / C5): the tier label repeats on every dashboard head — render it as
   a contained, quiet badge-pill (guideline `badge-pill`: surface-strong, pill, caption-uppercase)
   rather than a loud full-width uppercase line, so it tags the section without shouting. */
.fmis-dash-eyebrow { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); font-size: 10px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.fmis-dash-h { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 23px; line-height: 1.1; color: var(--cbm-ink, #0c0a09); margin: 5px 0 2px;
}
.fmis-dash-sub { font-size: 12.5px; color: var(--cbm-muted, #777169);
}

/* KPI tile grid (3 cols, smaller than the standard summary tiles) */
.fmis-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px;
}
.fmis-kpi { padding: 12px 11px;
}
.fmis-kpi .mis-stat-val-sm { font-size: 17px; overflow: hidden; text-overflow: ellipsis;
}
.fmis-kpi .mis-stat-val.neg { color: var(--cbm-error, #dc2626);
}
.fmis-kpi .mis-stat-val.pos { color: var(--cbm-success, #16a34a);
}
.fmis-kpi .mis-stat-val.red { color: var(--cbm-error, #dc2626);
}
.fmis-kpi .mis-stat-val.amber { color: var(--cbm-warning, #d97706);
}
.fmis-kpi .mis-stat-val.green { color: var(--cbm-success, #16a34a);
}
.fmis-kpi .mis-stat-lab { font-size: 11px;
}
.fmis-foot { font-size: 11.5px; color: var(--cbm-muted, #777169); margin-top: 10px;
}

/* Ageing — vertical bars per bucket */
.fmis-ageing { display: flex; align-items: flex-end; gap: 8px; height: 130px; padding-top: 6px;
}
.fmis-ageing-col { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; height: 100%; justify-content: flex-end;
}
.fmis-ageing-bar-wrap { flex: 1 1 auto; width: 100%; display: flex; align-items: flex-end; justify-content: center;
}
.fmis-ageing-bar { width: 70%; min-height: 4px; border-radius: 7px 7px 0 0; background: var(--cbm-mint, #a7e5d3);
}
.fmis-ageing-bar.overdue { background: var(--cbm-error, #dc2626); opacity: 0.85;
}
.fmis-ageing-amt { font-size: 10.5px; font-weight: 600; color: var(--cbm-ink, #0c0a09); margin-top: 6px;
}
.fmis-ageing-lab { font-size: 10px; color: var(--cbm-muted, #777169); margin-top: 1px;
}

/* Waterfall — signed horizontal bars around a centre baseline */
.fmis-wf { display: flex; flex-direction: column; gap: 9px;
}
.fmis-wf-row { display: flex; align-items: center; gap: 10px;
}
.fmis-wf-lab { flex: 0 0 92px; font-size: 12px; color: var(--cbm-body, #4e4e4e); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.fmis-wf-track { position: relative; flex: 1 1 auto; height: 16px; border-radius: 6px; background: var(--cbm-surface-strong, #f0efed);
}
.fmis-wf-row.base .fmis-wf-track, .fmis-wf-row.sub .fmis-wf-track { background: transparent;
}
.fmis-wf-fill { position: absolute; top: 0; bottom: 0; border-radius: 6px;
}
.fmis-wf-val { flex: 0 0 auto; font-size: 12px; font-weight: 600; color: var(--cbm-ink, #0c0a09);
}
.fmis-wf-val.neg { color: var(--cbm-error, #dc2626);
}
.fmis-wf-row.base .fmis-wf-lab, .fmis-wf-row.sub .fmis-wf-lab { font-weight: 700; color: var(--cbm-ink, #0c0a09);
}

/* Two-series grouped bars */
.fmis-duo { display: flex; align-items: flex-end; gap: 7px; height: 120px; overflow-x: auto; padding-top: 6px; -ms-overflow-style: none; scrollbar-width: none;
}
.fmis-duo::-webkit-scrollbar { display: none;
}
.fmis-duo-col { flex: 0 0 auto; width: 42px; display: flex; flex-direction: column; align-items: center; height: 100%; justify-content: flex-end;
}
.fmis-duo-bars { flex: 1 1 auto; width: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 3px;
}
.fmis-duo-a, .fmis-duo-b { width: 11px; min-height: 3px; border-radius: 5px 5px 0 0;
}
.fmis-duo-a { background: var(--cbm-mint, #a7e5d3);
}
.fmis-duo-b { background: var(--cbm-sky, #a8c8e8);
}
.fmis-duo-lab { font-size: 9.5px; color: var(--cbm-muted, #777169); margin-top: 5px; white-space: nowrap;
}
.fmis-legend { display: flex; gap: 16px; margin-top: 10px; font-size: 11.5px; color: var(--cbm-muted, #777169);
}
.fmis-leg-a::before, .fmis-leg-b::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px;
}
.fmis-leg-a::before { background: var(--cbm-mint, #a7e5d3);
}
.fmis-leg-b::before { background: var(--cbm-sky, #a8c8e8);
}

/* Gauge */
.fmis-gauge-card { text-align: center;
}
.fmis-gauge { position: relative; width: 130px; height: 130px; margin: 0 auto;
}
.fmis-gauge-svg { width: 130px; height: 130px;
}
.fmis-gauge-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.fmis-gauge-pct { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 28px; color: var(--cbm-ink, #0c0a09);
}
.fmis-gauge-lab { font-size: 10.5px; color: var(--cbm-muted, #777169);
}
.fmis-gauge-foot { margin-top: 8px; font-size: 12.5px; color: var(--cbm-body, #4e4e4e);
}

/* Funnel */
.fmis-funnel { display: flex; flex-direction: column; gap: 9px;
}
.fmis-funnel-row { display: flex; align-items: center; gap: 10px;
}
.fmis-funnel-bar { height: 34px; border-radius: 9px; display: flex; align-items: center; padding: 0 12px; min-width: 64px;
}
.fmis-funnel-stage { font-size: 12px; font-weight: 600; color: var(--cbm-ink, #0c0a09); white-space: nowrap;
}
.fmis-funnel-meta { flex: 0 0 auto; font-size: 11.5px; color: var(--cbm-muted, #777169);
}

/* Ratio gauges grid */
.fmis-rgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px;
}
.fmis-rcell { background: var(--cbm-canvas-soft, #fafafa); border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: 14px; padding: 11px 12px;
}
.fmis-rcell-top { display: flex; align-items: center; gap: 6px;
}
.fmis-rdot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto;
}
.fmis-rdot.green { background: var(--cbm-success, #16a34a);
}
.fmis-rdot.amber { background: var(--cbm-warning, #d97706);
}
.fmis-rdot.red { background: var(--cbm-error, #dc2626);
}
.fmis-rname { flex: 1 1 auto; min-width: 0; font-size: 11.5px; color: var(--cbm-body, #4e4e4e); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.fmis-rtrend.up { color: var(--cbm-success, #16a34a);
}
.fmis-rtrend.down { color: var(--cbm-error, #dc2626);
}
.fmis-rval { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 22px; color: var(--cbm-ink, #0c0a09); margin: 3px 0 1px;
}
.fmis-rmeta { font-size: 10px; color: var(--cbm-muted, #777169);
}

/* Health hero */
.fmis-health { position: relative; overflow: hidden; display: flex; align-items: center; gap: 14px;
}
.fmis-health-l { flex: 0 0 auto;
}
.fmis-health-score { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 38px; line-height: 1; color: var(--cbm-ink, #0c0a09);
}
.fmis-health-score span { font-size: 15px; color: var(--cbm-muted, #777169);
}
.fmis-health-lab { font-size: 11px; color: var(--cbm-muted, #777169); text-transform: uppercase; letter-spacing: 0.5px;
}
.fmis-health-verdict { flex: 1 1 auto; min-width: 0; font-size: 13.5px; line-height: 1.4; color: var(--cbm-body, #4e4e4e);
}

/* Scatter */
.fmis-scatter { position: relative;
}
.fmis-scatter-svg { width: 100%; height: 180px;
}
.fmis-sc-grid { stroke: var(--cbm-hairline-strong, #d6d3d1); stroke-width: 1; stroke-dasharray: 3 3;
}
.fmis-sc-dot { opacity: 0.85;
}
.fmis-sc-axis { display: flex; justify-content: space-between; margin-top: 4px; font-size: 10.5px; color: var(--cbm-muted, #777169);
}

/* Tables */
.fmis-table-wrap { width: 100%; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none;
}
.fmis-table-wrap::-webkit-scrollbar { display: none;
}
.fmis-table { width: 100%; border-collapse: collapse;
}
.fmis-table th { font-size: 10.5px; font-weight: 600; letter-spacing: 0.3px; text-transform: uppercase; color: var(--cbm-muted, #777169); text-align: left; padding: 0 8px 8px 0; white-space: nowrap;
}
.fmis-table th.r, .fmis-table td.r { text-align: right;
}
.fmis-table td { font-size: 12.5px; color: var(--cbm-ink, #0c0a09); padding: 9px 8px 9px 0; border-top: 1px solid var(--cbm-hairline-soft, #f0efed); white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis;
}
.fmis-table td.neg { color: var(--cbm-error, #dc2626);
}
.fmis-table td.pos { color: var(--cbm-success, #16a34a);
}
.fmis-table tr.tappable { cursor: pointer;
}
.fmis-table tr.tappable:active td { background: var(--cbm-surface-strong, #f0efed);
}
.fmis-cell-pill { display: inline-block; padding: 2px 8px; border-radius: 9999px; font-size: 10.5px; font-weight: 600; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted, #777169);
}
.fmis-cell-pill.ok { background: rgba(22,163,74,0.12); color: var(--cbm-success, #16a34a);
}
.fmis-cell-pill.bad { background: rgba(220,38,38,0.12); color: var(--cbm-error, #dc2626);
}
.fmis-cell-pill.move { background: rgba(37,99,235,0.12); color: var(--cbm-info, #2563eb);
}

/* Status board (compliance) */
.fmis-sboard { display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.fmis-scard { display: flex; align-items: center; gap: 9px; padding: 11px 12px; border-radius: 13px; background: var(--cbm-canvas-soft, #fafafa); border: 1px solid var(--cbm-hairline, #e7e5e4);
}
.fmis-scard.red { background: rgba(220,38,38,0.07); border-color: rgba(220,38,38,0.22);
}
.fmis-scard.amber { background: rgba(217,119,6,0.07); border-color: rgba(217,119,6,0.22);
}
.fmis-sdot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%;
}
.fmis-sdot.green { background: var(--cbm-success, #16a34a);
}
.fmis-sdot.amber { background: var(--cbm-warning, #d97706);
}
.fmis-sdot.red { background: var(--cbm-error, #dc2626);
}
.fmis-stext { font-size: 12px; color: var(--cbm-ink, #0c0a09); line-height: 1.25; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.fmis-empty { text-align: center; color: var(--cbm-muted, #777169); font-size: 13px; padding: 22px 0;
}
.fmis-lens-body { padding-bottom: 8px;
}

.misg-gate {
    position: fixed; inset: 0; z-index: 13200;
    display: flex; align-items: center; justify-content: center;
    padding: 24px;
    background: var(--cbm-canvas, #f5f5f4);
    overflow: hidden;
}
.misg-gate-orb { position: absolute; border-radius: 9999px; filter: blur(10px); opacity: 0.5; pointer-events: none;
}
.misg-gate-orb-a { width: 320px; height: 320px; top: -80px; right: -60px; background: radial-gradient(circle at center, var(--cbm-sky, #a8c8e8), transparent 70%);
}
.misg-gate-orb-b { width: 300px; height: 300px; bottom: -90px; left: -70px; background: radial-gradient(circle at center, var(--cbm-mint, #a7e5d3), transparent 70%);
}
.misg-gate-orb-c { width: 240px; height: 240px; bottom: 80px; right: -40px; background: radial-gradient(circle at center, var(--cbm-lavender, #c8b8e0), transparent 70%); opacity: 0.4;
}
.misg-gate-card {
    position: relative; z-index: 1;
    width: 100%; max-width: 360px;
    padding: 28px 24px 22px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-xl, 18px);
    box-shadow: 0 18px 50px rgba(12, 10, 9, 0.12);
    text-align: center;
}
.misg-gate-eyebrow { display: inline-flex; align-items: center; gap: 5px; font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.misg-gate-eyebrow .icon { color: var(--cbm-ink, #0c0a09);
}
.misg-gate-eyebrow-err .icon { color: var(--cbm-error, #dc2626);
}
.misg-gate-title { margin: 8px 0 6px; font-family: var(--cbm-display-font); font-weight: 300; font-size: clamp(22px, 6.5vw, 28px); line-height: 1.14; letter-spacing: -0.5px; color: var(--cbm-ink, #0c0a09);
}
.misg-gate-sub { margin: 0 auto 22px; max-width: 32ch; font-family: var(--cbm-body-font); font-size: 13.5px; line-height: 1.5; color: var(--cbm-muted, #777169);
}
.misg-gate-steps { display: flex; flex-direction: column; gap: 12px; text-align: left; margin: 0 auto 20px; max-width: 280px;
}
.misg-gate-step { display: flex; align-items: center; gap: 12px; opacity: 0.45; transition: opacity 0.25s ease;
}
.misg-gate-step.is-active, .misg-gate-step.is-done { opacity: 1;
}
.misg-gate-ic { flex: 0 0 auto; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09);
}
.misg-gate-step.is-done .misg-gate-ic { background: var(--cbm-ink, #0c0a09); color: var(--cbm-on-primary, #fff);
}
.misg-gate-spin { width: 12px; height: 12px; border-radius: 9999px; border: 2px solid var(--cbm-hairline, #d6d3d1); border-top-color: var(--cbm-ink, #0c0a09); animation: misg-spin 0.7s linear infinite;
}
.misg-gate-pend { width: 7px; height: 7px; border-radius: 9999px; background: var(--cbm-muted-soft, #a8a29e);
}
.misg-gate-label { font-family: var(--cbm-body-font); font-size: 13.5px; color: var(--cbm-ink, #0c0a09);
}
@keyframes misg-spin {
to { transform: rotate(360deg);
}
}
.misg-gate-bar { height: 4px; border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed); overflow: hidden; margin: 4px auto 14px; max-width: 280px;
}
.misg-gate-bar-fill { display: block; height: 100%; border-radius: 9999px; background: var(--cbm-ink, #0c0a09); transition: width 0.4s ease;
}
.misg-gate-foot { display: inline-flex; align-items: center; gap: 5px; font-family: var(--cbm-body-font); font-size: 11.5px; letter-spacing: 0.4px; color: var(--cbm-muted-soft, #a8a29e);
}
.misg-gate-foot .icon { color: var(--cbm-muted, #777169);
}
.misg-gate-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 4px;
}
.misg-gate-btn { width: auto; height: 44px; border-radius: 9999px; border: none; font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; background: var(--cbm-ink, #0c0a09); color: var(--cbm-on-primary, #fff); cursor: pointer;
}
.misg-gate-btn-ghost { background: transparent; color: var(--cbm-ink, #0c0a09); border: 1px solid var(--cbm-hairline, #e7e5e4);
}
.misg-gate-btn:active { opacity: 0.85;
}

.mis-mode { padding: 0 0 28px;
}
.mis-mode-head { padding: 14px 2px 12px;
}
.mis-mode-h1 { font-family: var(--cbm-display-font, 'EB Garamond', serif); font-weight: 300; font-size: 26px; line-height: 1.12; color: var(--cbm-ink, #0c0a09); margin: 6px 0 2px;
}

/* MIS surface segmented toggle (Performance · HR · Finance), brand ink-pill active. */
.mis-kindseg { display: flex; gap: 5px; padding: 4px; margin: 0 2px 14px; border-radius: 16px; background: var(--cbm-surface-strong, #f0efed); flex-wrap: nowrap; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.mis-kindseg::-webkit-scrollbar { display: none;
}
/* flex:1 0 auto → buttons fill the bar when they fit, but never shrink → the bar scrolls
   instead of cramming/cutting them off (fits any width, incl. longer hi/bn labels). */
.mis-kindbtn { flex: 1 0 auto; width: auto; min-width: 0; height: auto; padding: 9px 12px; border-radius: 12px; border: 0; background: transparent; color: var(--cbm-muted, #777169); display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 12.5px; font-weight: 600; white-space: nowrap; transition: background 180ms ease, color 180ms ease;
}
.mis-kindbtn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.mis-kindbtn.on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.14);
}
.mis-kindbtn:not(.on):active { transform: scale(0.97);
}
@media (prefers-reduced-motion: reduce) {
.mis-kindbtn { transition: none;
}
}
.mis-cta {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    width: 100%; margin-top: 6px; padding: 14px 16px; border-radius: 16px;
    border: 1px solid var(--cbm-hairline, #e7e5e4); background: var(--cbm-surface, #fff);
    color: var(--cbm-ink, #0c0a09);
}
.mis-cta-l { display: flex; align-items: center; gap: 12px; min-width: 0;
}
.mis-cta-icon { width: 34px; height: 34px; border-radius: 11px; background: var(--cbm-surface-strong, #f0efed); display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.mis-cta-text { font-size: 14.5px; font-weight: 500;
}

/* The overdue follow-up chip reads in the error tone so it stands out from a
   normal (green) upcoming chip. Self-contained styling beyond the shared
   .fu-* / .date-chip classes already global in app.scss. */
.fu-card-unified .date-chip.followup.overdue {
    background: rgba(220, 38, 38, 0.12);
    color: var(--cbm-error, #dc2626);
}
.fu-card-unified .date-chip.followup.overdue .icon { color: var(--cbm-error, #dc2626);
}

.dfu { margin: 4px 0 18px;
}
.dfu-head {
    display: flex; align-items: baseline; justify-content: space-between;
    padding: 0 2px 10px;
}
.dfu-title {
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 21px;
    letter-spacing: -0.3px; color: var(--cbm-ink, #0c0a09);
}
.dfu-all {
    display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto;
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500;
    color: var(--cbm-muted, #777169); cursor: pointer;
}
.dfu-all .icon { color: var(--cbm-muted-soft, #a8a29e);
}

/* Horizontal rail — scrolls sideways, the page itself stays pinned (see app.scss
   viewport-containment). Mask fades the trailing edge. */
.dfu-rail {
    display: flex; gap: 12px;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; padding: 2px 2px 4px;
    scroll-snap-type: x mandatory;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 16px), transparent);
            mask-image: linear-gradient(to right, #000 calc(100% - 16px), transparent);
}
.dfu-rail::-webkit-scrollbar { display: none;
}
.dfu-slide { flex: 0 0 86%; max-width: 320px; scroll-snap-align: start;
}
/* Constant-size cards regardless of remark/contact length — the card is a fixed
   height, the remark takes the middle and SCROLLS when long, the action row stays
   pinned to the bottom. (Scoped to the carousel; the list keeps natural height.) */
.dfu-slide .card { margin: 0; height: 250px;
}
.dfu-slide .fu-card-unified .card-content {
    display: flex; flex-direction: column; height: 100%; box-sizing: border-box;
}
/* Trim the inter-row gaps a touch so the remark gets a readable, scrollable share. */
.dfu-slide .fu-card-unified .margin-top { margin-top: 9px;
}
.dfu-slide .fu-card-unified .margin-top-half { margin-top: 5px;
}
.dfu-slide .fu-card-unified .deal-card-actions { padding-top: 6px;
}
/* Clamp the deal name + contact line to one line each so the fixed top is a known
   height — the remark then gets the leftover space (and scrolls when long). */
.dfu-slide .fu-card-unified .same-line .w-70 { min-width: 0;
}
.dfu-slide .fu-card-unified .project-name {
    display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dfu-slide .fu-card-unified .margin-top-half .w-70 {
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dfu-slide .fu-card-unified .fu-remark {
    flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
    margin: 8px 0 0;
}
.dfu-slide .fu-card-unified .deal-quick-actions { flex: 0 0 auto;
}

/* "+N follow-ups" tile — matches a card's width AND the fixed 250px card height,
   with an at-a-glance overdue/due-soon breakdown. */
.dffu-more {
    flex: 0 0 86%; max-width: 320px; scroll-snap-align: start;
    height: 250px; box-sizing: border-box;
    display: flex; flex-direction: column;
    padding: 16px 16px 18px;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-xl, 16px); box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
    cursor: pointer; text-align: left;
}
.dffu-more:active { background: var(--cbm-surface-strong, #f0efed);
}
.dffu-more-top {
    display: inline-flex; align-items: center; gap: 3px;
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 600;
    color: var(--cbm-muted, #777169);
}
.dffu-more-mid { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: center;
}
.dffu-more-count {
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 40px; line-height: 1;
    color: var(--cbm-ink, #0c0a09);
}
.dffu-more-label {
    font-family: var(--cbm-body-font); font-size: 13px; color: var(--cbm-muted, #777169); margin-top: 2px;
}
.dffu-more-stats { display: flex; flex-direction: column; gap: 6px;
}
.dffu-stat {
    display: inline-flex; align-items: center; gap: 7px;
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500; color: var(--cbm-body, #44403c);
}
.dffu-stat i { width: 8px; height: 8px; border-radius: 9999px; flex: 0 0 auto;
}
.dffu-stat-over i { background: var(--cbm-error, #dc2626);
}
.dffu-stat-soon i { background: var(--cbm-success, #16a34a);
}

.rc-cards { display: flex; flex-direction: column; gap: 10px; margin-top: 12px;
}
.rc-cards .card { margin: 0; width: 100%;
}
.rc-cards .fu-index-card { margin: 0;
}

/* "Show more" pager — reveals the next chunk of a long list. */
.rc-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    align-self: center;
    margin: 2px 0 2px;
    padding: 9px 18px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: 9999px;
    background: var(--cbm-surface, #fff);
    color: var(--cbm-ink);
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.2px;
    cursor: pointer;
    transition: background 0.18s ease, transform 0.12s ease;
}
.rc-more:active { background: var(--cbm-surface-strong, #f0efed); transform: scale(0.98);
}

/* Generic fallback chip card (rows with no dedicated layout). */
/* CTM team-mate card (AI workforce) */
.rc-tm {
    display: flex; align-items: center; gap: 11px; width: 100%; text-align: left;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-lg, 12px); padding: 10px 12px; margin: 0;
    transition: background 180ms ease, transform 180ms ease;
}
.rc-tm:active { background: var(--cbm-surface-strong, #f0efed); transform: scale(0.99);
}
.rc-tm-av {
    flex: 0 0 auto; width: 40px; height: 40px; border-radius: 9999px; object-fit: cover;
    background: var(--cbm-surface-strong, #f0efed);
}
.rc-tm-av-fb {
    display: flex; align-items: center; justify-content: center;
    font-size: 14px; font-weight: 600; color: var(--cbm-muted, #777169);
}
.rc-tm-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.rc-tm-name {
    font-size: 14px; font-weight: 600; color: var(--cbm-ink, #0c0a09);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rc-tm-role {
    font-size: 12px; color: var(--cbm-muted, #777169);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rc-tm-meta { flex: 0 0 auto; display: flex; align-items: center; gap: 9px;
}
.rc-tm-rate, .rc-tm-cost {
    display: inline-flex; align-items: center; gap: 3px;
    font-size: 12px; font-weight: 600; color: var(--cbm-body-strong, #292524);
}
.rc-tm-rate i { color: var(--cbm-ink);
}
.rc-tm-cost i { color: var(--cbm-muted, #777169);
}
.rc-tm-caret { flex: 0 0 auto; color: var(--cbm-muted-soft, #a8a29e);
}
.aix-rec-card {
    display: flex; flex-direction: column; gap: 5px; width: 100%; text-align: left;
    background: var(--cbm-canvas-soft, #fafafa); border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-lg, 12px); padding: 11px 12px; margin: 0; cursor: default;
    transition: background 200ms cubic-bezier(.4, 0, .2, 1), transform 200ms cubic-bezier(.4, 0, .2, 1);
}
.aix-rec-card.is-tappable { cursor: pointer;
}
.aix-rec-card.is-tappable:active { background: var(--cbm-surface-strong, #f0efed); transform: scale(0.99);
}
.aix-rec-row { display: flex; align-items: center; gap: 8px;
}
.aix-rec-title {
    flex: 1 1 auto; min-width: 0; font-family: var(--cbm-body-font); font-size: 14.5px; font-weight: 600;
    letter-spacing: 0.1px; color: var(--cbm-ink, #0c0a09); line-height: 1.3;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.aix-rec-value { flex: 0 0 auto; font-family: var(--cbm-display-font); font-weight: 300; font-size: 15px; color: var(--cbm-ink, #0c0a09);
}
.aix-rec-row-2 { gap: 7px;
}
.aix-rec-badge {
    flex: 0 0 auto; font-family: var(--cbm-body-font); font-size: 10.5px; font-weight: 600;
    letter-spacing: 0.4px; text-transform: uppercase; color: var(--cbm-muted, #777169);
    background: var(--cbm-surface-strong, #f0efed); padding: 2px 8px; border-radius: 9999px;
}
.aix-rec-meta {
    flex: 1 1 auto; min-width: 0; font-family: var(--cbm-body-font); font-size: 12.5px;
    letter-spacing: 0.1px; color: var(--cbm-muted, #777169); line-height: 1.4;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.aix-rec-caret { flex: 0 0 auto; color: var(--cbm-muted-soft, #a8a29e); margin-left: auto;
}
@media (prefers-reduced-motion: reduce) {
.aix-rec-card { transition: none;
}
}

/* Reuses the .dfu* carousel styles from dash-followups.vue (loaded globally). The
   cards come from <record-cards>; lay its .rc-cards out as a horizontal scroll rail.
   Cards size to their CONTENT (NOT a forced fixed height — that left a huge empty gap
   when a task had little/no description) with the description clamped to two lines, so
   the rail stays compact and scrolls cleanly. */
.dtk .dfu-rail .rc-cards {
    display: flex;
    flex-flow: row nowrap;
    align-items: flex-start; /* each card sizes to its OWN content — no stretch gap */
    gap: 12px;
    margin: 0;
    flex: 0 0 auto;
}
.dtk .dfu-rail .rc-cards > .card {
    flex: 0 0 84vw;
    max-width: 330px;
    margin: 0;
}
.dtk .rc-cards .task-card-unified .task-heading {
    display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dtk .rc-cards .task-card-unified .task-project { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* Description clamped to 2 lines — no scroll, no leftover gap. */
.dtk .rc-cards .task-card-unified .task-desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 6px 0 8px;
}

/* "+N tasks" tile — matches a card's width and STRETCHES to the rail height (so it's
   exactly as tall as the cards beside it), with an at-a-glance overdue/due-soon stat. */
/* The task cards live INSIDE <record-cards> (.rc-cards), so they aren't direct rail
   children and carry no scroll-snap points. With `mandatory` snap (inherited from
   .dfu-rail) the only snap points are the start and the "+N" tile, so once you reach
   the tile the browser snaps you back to it and you CAN'T scroll left. Disable snap on
   this rail — free scrolling both ways. */
.dtk .dfu-rail { align-items: stretch; scroll-snap-type: none;
}
.dtk .dfu-rail .dtk-more { scroll-snap-align: none;
}
.dtk-more {
    flex: 0 0 84vw;
    max-width: 330px;
    /* No min-height — the tile's natural content is shorter than a card, so
       align-self: stretch sizes it to EXACTLY the card height (a min-height was
       forcing it taller than short cards). The mid section absorbs the slack. */
    align-self: stretch;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 16px 16px 18px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-xl, 16px);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
    cursor: pointer;
    text-align: left;
    scroll-snap-align: start;
}
.dtk-more:active { background: var(--cbm-surface-strong, #f0efed);
}
.dtk-more-top {
    display: inline-flex; align-items: center; gap: 3px;
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 600;
    color: var(--cbm-muted, #777169);
}
.dtk-more-mid {
    flex: 1 1 auto;
    display: flex; flex-direction: column; justify-content: center;
}
.dtk-more-count {
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 40px; line-height: 1;
    color: var(--cbm-ink, #0c0a09);
}
.dtk-more-label {
    font-family: var(--cbm-body-font); font-size: 13px; color: var(--cbm-muted, #777169);
    margin-top: 2px;
}
.dtk-more-stats { display: flex; flex-direction: column; gap: 6px;
}
.dtk-stat {
    display: inline-flex; align-items: center; gap: 7px;
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500;
    color: var(--cbm-body, #44403c);
}
.dtk-stat i { width: 8px; height: 8px; border-radius: 9999px; flex: 0 0 auto;
}
.dtk-stat-over i { background: var(--cbm-error, #dc2626);
}
.dtk-stat-soon i { background: var(--cbm-success, #16a34a);
}

.cud { margin: 4px 0 2px;
}
/* Reports grouping — editorial section per card type. */
.cud-group { margin: 4px 0 16px;
}
.cud-group + .cud-group { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}
.cud-group-head { padding: 2px 4px 8px;
}
.cud-group-eyebrow {
    display: block;
    margin-bottom: 2px;
    font-family: var(--cbm-body-font);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--cbm-muted-soft, #a8a29e);
}
.cud-group-title {
    margin: 0;
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 23px;
    line-height: 1.15;
    letter-spacing: -0.3px;
    color: var(--cbm-ink, #0c0a09);
}
.cud-head { padding: 12px 4px 6px;
}
.cud-head-row { display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.cud-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px; line-height: 1.2; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09); margin: 2px 0 0;
}
.cud-head-actions { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto;
}
/* Build + Customize, relocated from the header — quiet round icon buttons beside
   the "My dashboard" heading. width:auto defeats F7's button{width:100%} reset. */
.cud-iconbtn {
    width: 30px; height: 30px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    padding: 0; border-radius: 9999px; border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); cursor: pointer;
}
.cud-iconbtn:active { background: var(--cbm-surface-strong, #f0efed);
}
.cud-iconbtn .icon { color: var(--cbm-ink, #0c0a09);
}
.cud-edit { display: inline-flex; align-items: center; gap: 5px; width: auto; height: 30px; padding: 0 12px; border-radius: 9999px; background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border: 0; cursor: pointer; font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 500;
}
.cud-edit .icon { color: var(--cbm-on-primary, #fff);
}
.cud-empty { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 26px 16px; border-radius: var(--cbm-radius-xl, 16px); border: 1px dashed var(--cbm-hairline-strong, #d6d3d1); background: var(--cbm-surface, #fff); color: var(--cbm-muted, #777169); cursor: pointer; font-family: var(--cbm-body-font); font-size: 13.5px; text-align: center;
}
.cud-empty .icon { color: var(--cbm-muted-soft, #a8a29e);
}

/* Picker sheet */
.cud-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.cud-sheet-in { height: 100%; display: flex; flex-direction: column; border-radius: 24px 24px 0 0; padding: 10px 16px 0; background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.95)); border: 1px solid var(--cbm-hairline, #e7e5e4); border-bottom: 0;
}
.cud-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 10px;
}
.cud-sheet-bar { display: flex; align-items: center; justify-content: space-between; padding: 0 2px 8px;
}
.cud-sheet-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09);
}
.cud-done { width: auto; height: 32px; padding: 0 16px; border-radius: 9999px; background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border: 0; cursor: pointer; font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600;
}
.cud-scroll { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; padding-bottom: calc(24px + env(safe-area-inset-bottom));
}
.cud-sec { margin-top: 14px;
}
.cud-sec-h { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: var(--cbm-muted-soft, #a8a29e); padding: 0 2px 6px;
}
.cud-pick { width: 100%; display: flex; align-items: center; gap: 11px; padding: 9px 8px; border-radius: var(--cbm-radius-lg, 12px); background: transparent; border: 0; cursor: pointer; text-align: left;
}
.cud-pick:active { background: var(--cbm-surface-strong, #f0efed);
}
.cud-pick-on { background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); margin-bottom: 6px;
}
.cud-pick-ic { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--cbm-hairline, #e7e5e4);
}
.cud-pick-ic .icon { color: var(--cbm-ink, #0c0a09);
}
.cud-pick-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px;
}
.cud-pick-name { flex: 1 1 auto; min-width: 0; font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cud-pick-sub { font-family: var(--cbm-body-font); font-size: 11.5px; color: var(--cbm-muted, #777169); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cud-on { color: var(--cbm-ink-pill, #292524);
}
.cud-off { color: var(--cbm-hairline-strong, #d6d3d1);
}

/* Catalog preview row — a live mini-card: gauge + the card's real figures. */
.cud-prev { width: 100%; display: flex; align-items: center; gap: 12px; padding: 10px 8px; border-radius: var(--cbm-radius-lg, 12px); background: transparent; border: 1px solid transparent; cursor: pointer; text-align: left; transition: background 140ms, border-color 140ms;
}
.cud-prev:active { background: var(--cbm-surface-strong, #f0efed);
}
.cud-prev.is-sel { background: var(--cbm-surface, #fff); border-color: var(--cbm-hairline, #e7e5e4);
}
.cud-prev.is-busy .cud-prev-ring-val { opacity: 0.4;
}
.cud-prev-gauge { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; position: relative;
}
.cud-prev-ring { width: 44px; height: 44px;
}
.cud-prev-ring-track { stroke: var(--cbm-hairline, #e7e5e4);
}
.cud-prev-ring-val { font-family: var(--cbm-display-font); font-weight: 300; font-size: 13px; letter-spacing: -0.3px; fill: var(--cbm-ink, #0c0a09);
}
.cud-prev-ring-val.is-danger { fill: var(--cbm-error, #dc2626);
}
.cud-prev-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px;
}
.cud-prev-metrics { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 4px;
}
.cud-prev-m { font-family: var(--cbm-body-font); font-size: 11px; color: var(--cbm-muted, #777169); white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
}
.cud-prev-m-l { color: var(--cbm-muted-soft, #a8a29e);
}
.cud-prev-m b { color: var(--cbm-ink, #0c0a09); font-weight: 700;
}
.cud-mini { flex: 0 0 auto; width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; cursor: pointer; color: var(--cbm-muted, #777169);
}
.cud-mini[disabled] { opacity: 0.3;
}
.cud-mini-x .icon { color: var(--cbm-error, #dc2626);
}

/* Reuse the pastel icon plates from the dashboards catalog. */
.dbm-orb-mint { background: radial-gradient(circle at 30% 30%, var(--cbm-mint, #a7e5d3), #fff);
}
.dbm-orb-peach { background: radial-gradient(circle at 30% 30%, var(--cbm-peach, #f4c5a8), #fff);
}
.dbm-orb-lavender { background: radial-gradient(circle at 30% 30%, var(--cbm-lavender, #c8b8e0), #fff);
}
.dbm-orb-sky { background: radial-gradient(circle at 30% 30%, var(--cbm-sky, #a8c8e8), #fff);
}
.dbm-orb-rose { background: radial-gradient(circle at 30% 30%, var(--cbm-rose, #e8b8c4), #fff);
}

.dls-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.dls {
    border-radius: 24px 24px 0 0;
    padding: 10px 16px calc(18px + env(safe-area-inset-bottom));
    background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.95));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-bottom: 0;
    box-shadow: 0 -8px 30px rgba(12, 10, 9, 0.12);
}
.dls-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 10px;
}
.dls-bar { display: flex; align-items: center; justify-content: space-between; padding: 0 2px 4px;
}
.dls-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09);
}
.dls-done { width: auto; height: 32px; padding: 0 16px; border-radius: 9999px; background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border: 0; cursor: pointer; font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600;
}
.dls-hint { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169); padding: 0 2px 8px;
}
.dls-list { display: flex; flex-direction: column; gap: 6px;
}
.dls-row { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: var(--cbm-radius-lg, 12px); background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4); transition: opacity 160ms;
}
.dls-row.is-off { opacity: 0.5;
}
.dls-ic { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--cbm-hairline, #e7e5e4);
}
.dls-ic .icon { color: var(--cbm-ink, #0c0a09);
}
.dls-name { flex: 1 1 auto; min-width: 0; font-family: var(--cbm-body-font); font-size: 14.5px; font-weight: 600; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dls-mini { flex: 0 0 auto; width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; cursor: pointer; color: var(--cbm-muted, #777169);
}
.dls-mini[disabled] { opacity: 0.3;
}
.dls-tog { flex: 0 0 auto; width: 44px; height: 26px; padding: 0; border-radius: 9999px; border: 0; cursor: pointer; background: var(--cbm-hairline-strong, #d6d3d1); position: relative; transition: background 180ms;
}
.dls-tog.on { background: var(--cbm-ink-pill, #292524);
}
.dls-knob { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 9999px; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); transition: transform 180ms cubic-bezier(.4, 0, .2, 1);
}
.dls-tog.on .dls-knob { transform: translateX(18px);
}
@media (prefers-reduced-motion: reduce) {
.dls-row, .dls-tog, .dls-knob { transition: none;
}
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.dls { background: var(--cbm-glass-bg-strong);
}
}

.dts-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.dts { height: 100%; display: flex; flex-direction: column; border-radius: 24px 24px 0 0; padding: 10px 16px 0; background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.95)); border: 1px solid var(--cbm-hairline, #e7e5e4); border-bottom: 0;
}
.dts-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 10px;
}
.dts-bar { display: flex; align-items: center; justify-content: space-between; padding: 0 2px 8px;
}
.dts-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px; letter-spacing: -0.2px; color: var(--cbm-ink, #0c0a09);
}
.dts-done { width: auto; height: 32px; padding: 0 16px; border-radius: 9999px; background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border: 0; cursor: pointer; font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600;
}
.dts-scroll { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; padding-bottom: calc(24px + env(safe-area-inset-bottom));
}
.dts-sec { margin-top: 14px;
}
.dts-sec-h { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: var(--cbm-muted-soft, #a8a29e); padding: 0 2px 6px;
}
.dts-row { width: 100%; display: flex; align-items: center; gap: 11px; padding: 9px 8px; border-radius: var(--cbm-radius-lg, 12px); background: transparent; border: 1px solid transparent; cursor: pointer; text-align: left;
}
.dts-row:active { background: var(--cbm-surface-strong, #f0efed);
}
.dts-on { background: var(--cbm-surface, #fff); border-color: var(--cbm-hairline, #e7e5e4); margin-bottom: 6px;
}
.dts-ic { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center; background: var(--cbm-surface-strong, #f0efed);
}
.dts-ic .icon { color: var(--cbm-ink, #0c0a09);
}
.dts-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px;
}
.dts-name { font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dts-sub { font-family: var(--cbm-body-font); font-size: 11.5px; color: var(--cbm-muted, #777169); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dts-val { flex: 0 0 auto; font-family: var(--cbm-display-font); font-weight: 300; font-size: 22px; line-height: 1; letter-spacing: -0.4px; color: var(--cbm-ink, #0c0a09); min-width: 26px; text-align: right;
}
.dts-val.is-danger { color: var(--cbm-error, #dc2626);
}
.dts-mini { flex: 0 0 auto; width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; cursor: pointer; color: var(--cbm-muted, #777169);
}
.dts-mini[disabled] { opacity: 0.3;
}
.dts-x .icon { color: var(--cbm-error, #dc2626);
}
.dts-onc { color: var(--cbm-ink-pill, #292524);
}
.dts-offc { color: var(--cbm-hairline-strong, #d6d3d1);
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.dts { background: var(--cbm-glass-bg-strong);
}
}

/* Headlines on highlight cards can be strings ("47%") — smaller than the tile counts. */
.dts-val.dts-val-sm { font-size: 15px; font-weight: 600; font-family: var(--cbm-body-font); letter-spacing: 0;
}

.dwz-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.dwz {
    border-radius: 24px 24px 0 0;
    padding: 10px 18px calc(20px + env(safe-area-inset-bottom));
    background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.95));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-bottom: 0;
    box-shadow: 0 -8px 30px rgba(12, 10, 9, 0.12);
}
.dwz-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 12px;
}
.dwz-head { padding: 0 2px 6px;
}
.dwz-eyebrow { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 700; letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted-soft, #a8a29e);
}
.dwz-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 28px; line-height: 1.1; letter-spacing: -0.4px; color: var(--cbm-ink, #0c0a09); margin: 4px 0 4px;
}
.dwz-sub { font-family: var(--cbm-body-font); font-size: 13px; color: var(--cbm-muted, #777169); margin: 0;
}
.dwz-qs { margin: 12px 0 4px; display: flex; flex-direction: column; gap: 13px;
}
.dwz-q-label { display: block; font-family: var(--cbm-body-font); font-size: 13.5px; font-weight: 600; color: var(--cbm-body-strong, #292524); margin: 0 2px 7px;
}

/* Brand dropdown field + inline options (Liquid Glass editorial — no native menu). */
.dwz-field {
    width: 100%; height: 48px; padding: 0 14px;
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    border-radius: var(--cbm-radius-md, 8px);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-surface, #fff);
    color: var(--cbm-ink, #0c0a09); cursor: pointer; text-align: left;
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500;
}
.dwz-field.open { border-color: var(--cbm-ink-pill, #292524);
}
.dwz-field-caret { color: var(--cbm-muted, #777169); flex: 0 0 auto; transition: transform 200ms cubic-bezier(.4, 0, .2, 1);
}
.dwz-field.open .dwz-field-caret { transform: rotate(180deg);
}
.dwz-opts {
    margin-top: 6px; padding: 5px;
    border-radius: var(--cbm-radius-lg, 12px);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    background: var(--cbm-surface, #fff);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
}
.dwz-opt-row {
    width: 100%; height: 42px; padding: 0 11px;
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    border: 0; border-radius: var(--cbm-radius-md, 8px); background: transparent; cursor: pointer; text-align: left;
    font-family: var(--cbm-body-font); font-size: 14.5px; font-weight: 500; color: var(--cbm-body, #4e4e4e);
}
.dwz-opt-row:active { background: var(--cbm-surface-strong, #f0efed);
}
.dwz-opt-row.on { color: var(--cbm-ink, #0c0a09); font-weight: 600; background: var(--cbm-surface-strong, #f0efed);
}
.dwz-opt-row .icon { color: var(--cbm-ink-pill, #292524);
}
.dwz-cta {
    width: 100%; height: 50px; margin-top: 18px;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    border-radius: 9999px; border: 0; cursor: pointer;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 15.5px; font-weight: 600; letter-spacing: 0.1px;
    transition: transform 120ms cubic-bezier(.4, 0, .2, 1);
}
.dwz-cta .icon { color: var(--cbm-on-primary, #fff);
}
.dwz-cta:active { transform: scale(0.985); background: var(--cbm-ink-pill-active, #0c0a09);
}
@media (prefers-reduced-motion: reduce) {
.dwz-cta, .dwz-field-caret { transition: none;
}
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.dwz { background: var(--cbm-glass-bg-strong);
}
}

/* ── Mode pager — swipeable home screens (AIO · CRM · Ops · Finance · HR) ───────── */
/* Clear the floating .mode-switch (sits 8px above the nav, ~44px tall + shadow) so the
   last cards on every mode home screen can scroll fully above it instead of being covered. */
.mode-stage { width: 100%; padding-bottom: 68px;
}
/* Direction-aware slide. Quick + GPU-only; honours reduced-motion. */
.mode-slide-left-enter-active, .mode-slide-left-leave-active,
.mode-slide-right-enter-active, .mode-slide-right-leave-active {
    transition: transform 260ms cubic-bezier(.4, 0, .2, 1), opacity 240ms ease;
    will-change: transform, opacity;
}
.mode-slide-left-leave-active, .mode-slide-right-leave-active { position: absolute; top: 0; left: 0; right: 0;
}
.mode-slide-left-enter-from { transform: translateX(38px); opacity: 0;
}
.mode-slide-left-leave-to { transform: translateX(-26px); opacity: 0;
}
.mode-slide-right-enter-from { transform: translateX(-38px); opacity: 0;
}
.mode-slide-right-leave-to { transform: translateX(26px); opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
.mode-slide-left-enter-active, .mode-slide-left-leave-active,
    .mode-slide-right-enter-active, .mode-slide-right-leave-active { transition: none;
}
}

/* Floating segmented mode switcher — brand soft surface + ink-pill active + pill geometry.
   Each mode is a tappable icon; the active one expands into a named ink pill. Prominent and
   clearly tappable (the swipe still pages between modes). */
.mode-switch {
    position: fixed; left: 50%; transform: translateX(-50%); z-index: 500;
    bottom: calc(var(--f7-bottom-nav-height, 56px) + env(safe-area-inset-bottom) + 8px);
    display: inline-flex; align-items: center; gap: 2px; padding: 4px;
    max-width: calc(100vw - 20px); box-sizing: border-box;
    /* Opaque fallback (old WebViews / no backdrop-filter — keeps it readable, never see-through). */
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: 9999px;
    box-shadow: 0 10px 28px rgba(12, 10, 9, 0.16), 0 1px 0 rgba(255, 255, 255, 0.5) inset;
}
/* Apple-style glass morphism: a translucent frosted pill that blurs the dashboard
   content scrolling behind it. Applied ONLY where backdrop-filter is supported (so
   old Android WebViews keep the opaque pill above instead of a see-through one), and
   ONLY to this one small floating control — it's not caught by the flat-profile
   `backdrop-filter: none` block (§5), which targets the big chrome for scroll perf. */
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
.mode-switch {
        background: var(--cbm-glass-bg-strong);
        -webkit-backdrop-filter: var(--cbm-glass-blur);
        backdrop-filter: var(--cbm-glass-blur);
        border-color: var(--cbm-hairline-strong, rgba(255, 255, 255, 0.6));
}
html[data-theme='dark'] .mode-switch {
        background: rgba(40, 35, 30, 0.55);
        border-color: rgba(255, 255, 255, 0.12);
}
    /* Respect users who ask for less transparency — go solid for them. */
@media (prefers-reduced-transparency: reduce) {
.mode-switch {
            background: var(--cbm-surface, #fff);
            -webkit-backdrop-filter: none; backdrop-filter: none;
            border-color: var(--cbm-hairline, #e7e5e4);
}
html[data-theme='dark'] .mode-switch { background: var(--cbm-surface);
}
}
}
.mode-seg {
    flex: 0 0 auto; width: auto; height: 36px; min-width: 36px; padding: 0 10px;
    display: inline-flex; align-items: center; justify-content: center; gap: 5px;
    border: 0; border-radius: 9999px; background: transparent; color: var(--cbm-muted, #777169);
    cursor: pointer; transition: background 200ms ease, padding 200ms ease;
}
.mode-seg .icon { color: var(--cbm-muted, #777169); transition: color 200ms ease;
}
.mode-seg-label {
    max-width: 0; overflow: hidden; opacity: 0; white-space: nowrap;
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 600; letter-spacing: 0.2px;
    color: var(--cbm-on-primary, #fff);
    transition: max-width 220ms ease, opacity 200ms ease;
}
.mode-seg.on { background: var(--cbm-ink-pill, #292524); padding: 0 14px;
}
.mode-seg.on .icon { color: var(--cbm-on-primary, #fff);
}
.mode-seg.on .mode-seg-label { max-width: 84px; opacity: 1;
}
.mode-seg:not(.on):active { background: var(--cbm-surface-strong, #f0efed);
}
@media (prefers-reduced-motion: reduce) {
.mode-seg, .mode-seg-label, .mode-seg .icon { transition: none;
}
}

/* "Today's digest" — the flagship ML element, rendered as the brand `gradient-orb-card`:
   canvas-soft surface, rounded-xxl, soft pastel orb blooms drifting inside, high-contrast
   EB Garamond title floating in front, ink-pill CTA. (Atmosphere via radial blooms — never
   a flat orb fill, per the guideline.) */
.dash-digest {
    position: relative; overflow: hidden;
    width: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 7px;
    margin: 8px 16px 4px; padding: 20px;
    border-radius: var(--cbm-radius-xxl, 24px);
    background: var(--cbm-canvas-soft, #fafafa);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
    color: var(--cbm-ink, #0c0a09);
    text-align: left; cursor: pointer;
    transition: transform 0.16s ease, box-shadow 0.18s ease;
}
.dash-digest:active { transform: scale(0.992);
}
/* Drifting pastel orbs — the brand's signature atmosphere, behind the copy. */
.dash-digest-orb {
    position: absolute; top: -34px; right: -26px; width: 156px; height: 156px;
    border-radius: 9999px; opacity: 0.55; filter: blur(16px); pointer-events: none; z-index: 0;
    background: radial-gradient(circle at center, var(--cbm-sky, #a8c8e8) 0%, transparent 70%);
}
.dash-digest-orb-2 {
    top: auto; right: 44px; bottom: -48px; width: 124px; height: 124px; opacity: 0.42;
    background: radial-gradient(circle at center, var(--cbm-mint, #a7e5d3) 0%, transparent 70%);
}
.dash-digest-eyebrow {
    position: relative; z-index: 1;
    display: inline-flex; align-items: center; gap: 5px;
    font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600;
    letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.dash-digest-eyebrow .icon { color: var(--cbm-ink, #0c0a09);
}
.dash-digest-title {
    position: relative; z-index: 1;
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 26px;
    line-height: 1.1; letter-spacing: -0.4px; color: var(--cbm-ink, #0c0a09);
}
.dash-digest-sub {
    position: relative; z-index: 1; max-width: 94%;
    font-family: var(--cbm-body-font); font-size: 13.5px; line-height: 1.45;
    letter-spacing: 0.1px; color: var(--cbm-muted, #777169);
}
.dash-digest-cta {
    position: relative; z-index: 1; margin-top: 6px;
    display: inline-flex; align-items: center; gap: 6px;
    height: 38px; padding: 0 18px; border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 500; letter-spacing: 0.1px;
}
.dash-digest-cta .icon { color: var(--cbm-on-primary, #fff);
}

/* ── Dashboard — Quick-menu visual language (.qm-* base styles come from the popup) ── */
/* (The "Apps & modules" launcher entry and the Build/Customize action row were
   removed — Command Center is reached from the Apps bottom tab, and Build/
   Customize are now minimalist icons in the header's 2nd row, see app-header.vue.) */
/* Per-grid "Tiles" editor pill, right-aligned in the section header. */
.dash-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px;
}
.dash-tiles-edit {
    display: inline-flex; align-items: center; gap: 5px;
    width: auto; height: 28px; padding: 0 12px; margin-bottom: 2px;
    border-radius: 9999px; border: 0; cursor: pointer; flex: 0 0 auto; white-space: nowrap;
    background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 12px; font-weight: 500;
}
.dash-tiles-edit .icon { color: var(--cbm-ink, #0c0a09);
}
.dash-tiles-edit:active { background: var(--cbm-hairline, #e7e5e4);
}
.dash-head {
    padding: 20px 16px 12px;
}
.dash-head .qm-title {
    font-size: 26px;
}
.dash-grid {
    display: grid;
    /* minmax(0, 1fr) — plain 1fr is minmax(auto, 1fr), so a card whose content
       (icon + count pill + title) is wider than 1/3 of the row forces the track
       wider and the whole grid blows past the screen. minmax(0,…) lets tracks
       shrink below content width so 3 cards always share the viewport evenly. */
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    padding: 4px 16px 16px;
}
/* Stat cards carry a count pill + tiny caption under the name. Top-align the
   content (instead of centering) so the icon + title sit at the same height on
   every card, whether or not it has a count/caption below. The .dash-grid prefix
   raises specificity above the shared .qm-card (which centers content). */
.dash-grid .dash-card {
    gap: 6px;
    justify-content: flex-start;
    padding: 26px 10px 18px;
    min-width: 0; /* allow the card to shrink inside its grid track */
    /* Apple-widget look — soft surface, generous rounding, soft drop shadow (matches the
       Today hero widgets). Brand-faithful (tokens, no glass). */
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: 24px;
    box-shadow: 0 8px 22px rgba(12, 10, 9, 0.06), 0 1px 0 rgba(255, 255, 255, 0.5) inset;
}
.dash-grid .dash-card:active { transform: scale(0.98); background: var(--cbm-surface-strong, #f0efed);
}
.dash-grid .dash-card .qm-card-title {
    max-width: 100%;
    overflow-wrap: anywhere; /* long single-word titles wrap instead of widening the card */
}
.dash-count {
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background-color: var(--cbm-ink-pill);
    color: var(--cbm-on-primary);
    font-size: 12px;
    font-weight: 600;
}
/* Overdue count turns red to flag the backlog. */
.dash-count-danger {
    background-color: var(--cbm-error);
}
/* Today's agenda rows */
.today-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 4px 16px 4px;
}
.today-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    background: var(--cbm-surface);
    border: 1px solid var(--cbm-hairline);
    border-radius: 16px; /* rounded.xl */
    color: var(--cbm-ink);
    transition: box-shadow 0.18s ease, border-color 0.18s ease;
}
.today-row:active {
    background: var(--cbm-surface-strong);
}
.today-ic {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface-strong);
    color: var(--cbm-ink);
}
.today-main {
    flex: 1;
    min-width: 0;
}
.today-title {
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.1px;
}
.today-sub {
    font-size: 12px;
    letter-spacing: 0.15px;
    color: var(--cbm-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: 2px;
}
.today-go {
    color: var(--cbm-muted-soft);
}
.dash-sub {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--cbm-muted-soft);
}

/* ── Quick-menu popup — ElevenLabs editorial styling ───────────────────────── */
.quick-menu-popup {
    background: var(--cbm-canvas, #f5f5f5); /* canvas */
}

/* Centered editorial card on tablet/desktop widths. */
@media (min-width: 630px) and (min-height: 630px) {
.quick-menu-popup.quick-menu-popup {
        width: 560px;
        max-width: calc(100vw - 32px);
        height: 88vh; /* definite height so .qm can flex and pin the bottom controls */
        max-height: 720px;
        border-radius: 24px; /* rounded.xxl */
        box-shadow: 0 24px 64px rgba(12, 10, 9, 0.18);
        overflow: hidden;
}
}
.qm {
    display: flex;
    flex-direction: column;
    height: 100%;
    max-height: 100%;
    background: var(--cbm-canvas, #f5f5f5);
    color: var(--cbm-ink, #0c0a09);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    box-sizing: border-box;
}

/* Header */
.qm-head {
    padding: 26px 24px 16px;
    flex: 0 0 auto;
}
.qm-eyebrow {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.96px;
    text-transform: uppercase;
    color: var(--cbm-muted, #777169); /* muted */
    margin-bottom: 6px;
}
.qm-title {
    font-family: 'EB Garamond', 'Times New Roman', Georgia, serif;
    font-weight: 300;
    font-size: 28px;
    line-height: 1.13;
    letter-spacing: -0.4px;
    color: var(--cbm-ink, #0c0a09);
    margin: 0;
}

/* Grid */
.qm-grid-wrap {
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 4px 24px 20px;
}
.qm-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.qm-card {
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    padding: 8px;
    background: var(--cbm-surface, #ffffff); /* surface-card */
    border: 1px solid var(--cbm-hairline, #e7e5e4); /* hairline */
    border-radius: 16px; /* rounded.xl */
    cursor: pointer;
    box-sizing: border-box;
    transition: box-shadow 0.18s ease, border-color 0.18s ease, transform 0.12s ease;
}
.qm-card:active {
    transform: scale(0.96);
}
.qm-card:hover {
    border-color: var(--cbm-hairline-strong, #d6d3d1);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04); /* soft drop */
}
.qm-card-icon {
    color: var(--cbm-ink, #0c0a09);
    font-size: 27px;
}
.qm-card-title {
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.25;
    letter-spacing: 0.1px;
    color: var(--cbm-ink, #0c0a09);
}
.qm-card-danger .qm-card-icon {
    color: var(--cbm-error, #dc2626); /* semantic-error */
}
.qm-empty {
    text-align: center;
    color: var(--cbm-muted-soft, #a8a29e);
    font-size: 14px;
    padding: 32px 0;
}

/* Bottom control bar */
.qm-footer {
    flex: 0 0 auto;
    padding: 14px 24px calc(16px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--cbm-hairline, #e7e5e4); /* hairline */
    background: var(--cbm-canvas-soft, #fafafa); /* canvas-soft */
}
.qm-search {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 48px;
    padding: 0 16px;
    background: var(--cbm-surface, #ffffff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: 9999px; /* pill */
    margin-bottom: 12px;
}
.qm-search-icon {
    color: var(--cbm-muted-soft, #a8a29e);
    font-size: 18px;
}
.qm-search input {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-family: inherit;
    font-size: 15px;
    letter-spacing: 0.15px;
    color: var(--cbm-ink, #0c0a09);
}
.qm-search input::placeholder {
    color: var(--cbm-muted-soft, #a8a29e);
}
.qm-footer-row {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center; /* toggle centred */
    min-height: 48px;
}
.qm-toggle {
    display: inline-flex;
    padding: 4px;
    background: var(--cbm-surface-strong, #f0efed); /* surface-strong */
    border-radius: 9999px;
}
.qm-seg {
    -webkit-appearance: none;
            appearance: none;
    border: none;
    background: transparent;
    padding: 9px 20px;
    border-radius: 9999px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.1px;
    color: var(--cbm-body, #4e4e4e);
    cursor: pointer;
    transition: background 0.18s ease, color 0.18s ease;
}
.qm-seg.active {
    background: var(--cbm-ink-pill, #292524); /* ink primary */
    color: var(--cbm-surface, #ffffff);
}
.qm-close {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    border-radius: 9999px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1); /* hairline-strong */
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cbm-ink, #0c0a09);
    background: var(--cbm-surface, #ffffff);
}
.qm-close i.f7-icons {
    font-size: 19px;
}
.qm-close:active {
    background: var(--cbm-surface-strong, #f0efed);
}

/* Phone tweaks */
@media (max-width: 629px) {
.qm-head {
        padding: 22px 18px 14px;
}
.qm-grid-wrap {
        padding: 4px 18px 18px;
}
.qm-footer {
        padding: 14px 18px calc(16px + env(safe-area-inset-bottom, 0px));
}
.qm-title {
        font-size: 25px;
}
}

.app-search-popup {
    background: var(--cbm-canvas);
}
@media (min-width: 630px) and (min-height: 630px) {
.app-search-popup.app-search-popup {
        width: 540px;
        max-width: calc(100vw - 32px);
        height: 70vh;
        max-height: 640px;
        border-radius: 24px;
        box-shadow: 0 24px 64px rgba(12, 10, 9, 0.18);
        overflow: hidden;
}
}
.srch {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--cbm-canvas);
    font-family: var(--cbm-body-font, sans-serif);
}
.srch-pills {
    flex: 0 0 auto;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 10px 14px 4px;
    background: var(--cbm-canvas-soft);
    border-top: 1px solid var(--cbm-hairline);
    -webkit-overflow-scrolling: touch;
}
.srch-pills::-webkit-scrollbar {
    display: none;
}
.srch-pill {
    flex: 0 0 auto;
    width: auto;
    border: 1px solid var(--cbm-hairline-strong);
    background: transparent;
    color: var(--cbm-ink);
    border-radius: 9999px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.15px;
    white-space: nowrap;
    cursor: pointer;
    font-family: var(--cbm-body-font, sans-serif);
}
.srch-pill.active {
    background: var(--cbm-ink-pill);
    color: var(--cbm-on-primary);
    border-color: var(--cbm-ink-pill);
}
.srch-bar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px calc(12px + var(--f7-safe-area-bottom, 0px));
    background: var(--cbm-canvas-soft);
}
.srch-icon {
    color: var(--cbm-muted-soft);
    font-size: 19px;
}
.srch-bar input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 17px;
    letter-spacing: 0.15px;
    color: var(--cbm-ink);
}
.srch-bar input::placeholder {
    color: var(--cbm-muted-soft);
}
.srch-clear {
    color: var(--cbm-muted-soft);
}
.srch-cancel {
    flex: 0 0 auto;
    font-size: 15px;
    font-weight: 500;
    color: var(--cbm-ink);
}
.srch-body {
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    padding-top: calc(12px + var(--f7-safe-area-top, 0px));
}
/* Push results to the bottom so they sit just above the search bar. */
.srch-stack {
    margin-top: auto;
}
.srch-section {
    padding: 14px 18px 6px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.96px;
    text-transform: uppercase;
    color: var(--cbm-muted);
}
.srch-results {
    padding: 4px 8px;
}
.srch-row {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 11px 12px;
    border-radius: 12px;
    cursor: pointer;
}
.srch-row:active {
    background: var(--cbm-surface-strong);
}
.srch-row-ic {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface-strong);
    color: var(--cbm-ink);
}
.srch-row-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.srch-row-title {
    flex: 1;
    font-size: 15px;
    font-weight: 500;
    color: var(--cbm-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.srch-row-sub {
    font-size: 12px;
    color: var(--cbm-muted);
    letter-spacing: 0.15px;
}
.srch-row-go {
    flex: 0 0 auto;
    color: var(--cbm-muted-soft);
}
.srch-status {
    display: flex;
    justify-content: center;
    padding: 28px 0;
}
.srch-empty {
    text-align: center;
    color: var(--cbm-muted-soft);
    font-size: 14px;
    padding: 40px 24px;
}

/* ===== Quick Add launcher — Apple App Library MECHANIC, crudoimage MATERIAL =====
   We keep App Library's structural rules verbatim (pill search, 2×2 cell, slot-4
   mini-grid, search→A–Z collapse, top row = Suggestions + Recently Added). The
   visual material is restrained crudoimage: editorial off-white (light) / soft
   near-black (dark) via --cbm-* tokens, hairline-bordered surface tiles, no
   per-chip pastel orbs, EB Garamond for the category labels below tiles.
   Light/dark just works because every colour comes from --cbm-* tokens that the
   app's theme system already swaps (see app.scss [data-theme='dark']).
*/
.quick-add-popup {
    --qal-bg: var(--cbm-canvas, #f5f5f5);
    --qal-surface: var(--cbm-surface, #ffffff);
    --qal-surface-strong: var(--cbm-surface-strong, #f0efed);
    --qal-hairline: var(--cbm-hairline, #e7e5e4);
    --qal-ink: var(--cbm-ink, #0c0a09);
    --qal-on-ink: var(--cbm-on-primary, #ffffff);
    --qal-muted: var(--cbm-muted, #777169);
    --qal-muted-soft: var(--cbm-muted-soft, #a8a29e);
    --qal-badge: #FF3B30; /* iOS notification red — universal, OK in both themes */
    --qal-radius-folder: 28px;
    --qal-radius-chip: 14px;
    --qal-radius-pill: 9999px;
    --qal-display: var(--cbm-display-font, 'EB Garamond', Georgia, serif);
    --qal-body: var(--cbm-body-font, 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif);
    --qal-shadow-tile: 0 4px 16px rgba(12, 10, 9, 0.05), 0 1px 0 rgba(12, 10, 9, 0.02);
    --qal-shadow-chip: 0 1px 2px rgba(12, 10, 9, 0.06);
    --f7-popup-bg-color: var(--qal-bg);
    background: var(--qal-bg);
    color: var(--qal-ink);
}
.qal {
    position: relative;
    width: 100%; height: 100%;
    background: var(--qal-bg);
    color: var(--qal-ink);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    font-family: var(--qal-body);
    padding-bottom: env(safe-area-inset-bottom);
    /* Kill the native WebView/Chromium scrollbar (the grey strip on the right edge while
       scrolling) — same brand rule + fix as the Command Center (.mods-page .page-content
       / .mlib-sheet-body in command-center.css, §6.5). Scrolling still works; only the
       visible bar is removed. Applies to BOTH the folder grid and the A–Z list (both
       scroll inside .qal). */
    scrollbar-width: none;        /* Firefox */
    -ms-overflow-style: none;     /* old Edge */
}
.qal::-webkit-scrollbar { width: 0; height: 0; display: none;
} /* WebKit / Blink (Android WebView) */
.qal-canvas, .qal-glow { display: none;
}

/* ===== Search bar (pill, BOTTOM — brand rule §dropdown-search-bottom) =====
   Pinned to the bottom of the launcher; tapping it collapses the grid into the
   flat A–Z list above. crudoimage soft surface, not dark glass. */
.qal-searchbar {
    position: sticky; bottom: 0; top: auto; z-index: 5;
    display: flex; align-items: center; gap: 10px;
    padding: 12px 16px 14px;
    padding-bottom: calc(14px + env(safe-area-inset-bottom));
    background: linear-gradient(to top, var(--qal-bg) 72%, transparent 100%);
}
.qal-back, .qal-close, .qal-sheet-close {
    flex: 0 0 auto;
    width: 36px; height: 36px;
    border: 1px solid var(--qal-hairline);
    padding: 0;
    border-radius: var(--qal-radius-pill);
    background: var(--qal-surface);
    color: var(--qal-ink);
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    box-shadow: var(--qal-shadow-chip);
    transition: background 140ms ease, transform 140ms ease;
}
.qal-back:active, .qal-close:active, .qal-sheet-close:active { background: var(--qal-surface-strong); transform: scale(0.96);
}
.qal-close .icon, .qal-back .icon, .qal-sheet-close .icon { color: var(--qal-ink);
}
.qal-search-pill {
    flex: 1 1 auto;
    display: flex; align-items: center; gap: 8px;
    height: 48px; padding: 0 16px;
    border-radius: var(--qal-radius-pill);
    background: var(--qal-surface);
    border: 1px solid var(--qal-hairline);
    box-shadow: var(--qal-shadow-chip);
    transition: border-color 180ms ease, box-shadow 180ms ease;
}
.qal-search-pill.on { border-color: var(--qal-ink); box-shadow: 0 0 0 3px rgba(12, 10, 9, 0.04);
}
.qal-search-glyph { color: var(--qal-muted);
}
.qal-search-input {
    flex: 1 1 auto;
    border: 0; outline: 0;
    background: transparent;
    color: var(--qal-ink);
    font: 400 15.5px/1.2 var(--qal-body);
    -webkit-appearance: none; appearance: none;
    height: 100%;
}
.qal-search-input::placeholder { color: var(--qal-muted-soft); font-size: 15.5px;
}
.qal-search-input::-webkit-search-cancel-button { display: none; -webkit-appearance: none;
}
.qal-search-clear { border: 0; background: transparent; color: var(--qal-muted-soft); cursor: pointer; padding: 0 2px; height: 100%; display: inline-flex; align-items: center;
}

/* ===== Folder grid — 2 cols mobile, scales up on wider ===== */
.qal-folders {
    position: relative; z-index: 1;
    padding: 4px 16px 32px;
}
.qal-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 30px;
}
@media (min-width: 700px) {
.qal-row { grid-template-columns: repeat(3, 1fr); gap: 22px;
}
}
@media (min-width: 1024px) {
.qal-row { grid-template-columns: repeat(4, 1fr);
}
.qal-folders { max-width: 1100px; margin-left: auto; margin-right: auto;
}
}
.qal-folder-wrap { display: flex; flex-direction: column; align-items: center; gap: 10px;
}

/* The squircle folder tile — crudoimage soft surface with hairline + drop shadow.
   No backdrop blur, no translucent glass. Restraint. A fixed SQUARE box (iPhone
   App Library) holding a 2×2 icon grid that fills it edge-to-edge; the category
   name sits BELOW the box, never inside it. */
.qal-folder {
    width: 100%; aspect-ratio: 1 / 1;
    padding: 10px;
    border: 1px solid var(--qal-hairline);
    border-radius: var(--qal-radius-folder);
    background: var(--qal-surface);
    box-shadow: var(--qal-shadow-tile);
    cursor: pointer;
    transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease;
}
.qal-folder:active { transform: scale(0.97); background: var(--qal-surface-strong);
}

/* The 2×2 grid inside each folder — fills the box, equal quadrants, small gap. */
.qal-cell {
    width: 100%; height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
}
.qal-slot { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 0;
}
.qal-slot-empty { visibility: hidden;
}

/* Full slots (1–3): a square icon chip + a small "+Name" label BELOW it (icon on
   top, text under) — like the Command Center. Concentric corner: 18px = folder 28 − pad 10. */
.qal-slot-full { cursor: pointer; flex-direction: column; gap: 3px;
}
.qal-chip {
    position: relative;
    width: 100%; height: 100%;
    border-radius: 18px;
    background: var(--qal-surface-strong);
    border: 1px solid var(--qal-hairline);
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--qal-ink);
    overflow: visible;
    box-shadow: var(--qal-shadow-chip);
    transition: transform 140ms ease, background 140ms ease;
}
.qal-chip .icon { color: var(--qal-ink);
}
.qal-slot-full:active .qal-chip { transform: scale(0.92); background: var(--qal-surface);
}
/* In a labelled slot the chip stays square and shrinks to leave room for the text. */
.qal-slot-full .qal-chip { flex: 1 1 0; min-height: 0; width: auto; height: auto; aspect-ratio: 1 / 1; max-width: 100%;
}
/* Small "+Name" under each in-box icon (single line, ellipsis if long). */
.qal-slot-name {
    flex: 0 0 auto;
    min-width: 0; max-width: 100%; width: 100%;
    font-family: var(--qal-body);
    font-size: 8.5px; line-height: 1.1; font-weight: 500; letter-spacing: 0.1px;
    color: var(--qal-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    text-align: center;
}

/* Mini 2×2 grid (slot 4) — same material, scaled down. The mini icons keep a tiny
   coloured DOT in the corner to hint at the orb identity (the only place orbs
   appear directly on a chip — they signpost "more of this category here"). */
.qal-slot-mini-wrap { cursor: pointer;
}
.qal-slot-mini {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 4px;
    width: 100%; height: 100%;
    border-radius: 18px;
    padding: 5px;
    background: var(--qal-surface-strong);
    border: 1px solid var(--qal-hairline);
    box-shadow: var(--qal-shadow-chip);
}
.qal-mini {
    position: relative;
    border-radius: 6px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--qal-ink);
    background: var(--qal-surface);
    border: 1px solid var(--qal-hairline);
    overflow: hidden;
}
.qal-mini .icon { color: var(--qal-ink);
}
.qal-mini::after {
    /* Tiny corner orb dot — the only place orbs appear directly on a chip.
       Signposts "this category has more inside". */
    content: ''; position: absolute; top: 2px; right: 2px;
    width: 5px; height: 5px; border-radius: 9999px;
    background: var(--cbm-mint, #a7e5d3);
    opacity: 0.85;
}
.qal-mini.orb-peach::after    { background: var(--cbm-peach,    #f5d6a4);
}
.qal-mini.orb-mint::after     { background: var(--cbm-mint,     #a7e5d3);
}
.qal-mini.orb-sky::after      { background: var(--cbm-sky,      #a8c8e8);
}
.qal-mini.orb-lavender::after { background: var(--cbm-lavender, #c8b8e8);
}
.qal-mini.orb-rose::after     { background: var(--cbm-rose,     #e8b8c4);
}
.qal-mini.orb-sand::after     { background: var(--cbm-sand,     #ead9b8);
}
.qal-mini-empty { background: transparent; border-color: transparent;
}
.qal-mini-empty::after { display: none;
}

/* Category label BELOW each tile — EB Garamond display, editorial. */
.qal-label {
    color: var(--qal-ink);
    font-family: var(--qal-display);
    font-weight: 400;
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: 0.1px;
    text-align: center;
    max-width: 100%;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* iOS-style red notification badge — top-right of the chip, can overflow slightly.
   The red is universal — looks correct on both themes. */
.qal-badge {
    position: absolute; top: -4px; right: -4px;
    min-width: 18px; height: 18px; padding: 0 5px;
    border-radius: 9999px;
    background: var(--qal-badge);
    color: #fff;
    font: 700 10.5px/18px var(--qal-body);
    text-align: center;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
    border: 1.5px solid var(--qal-surface);
    z-index: 2;
}

/* ===== A–Z list view (search-focused) ===== */
.qal-az {
    position: relative; z-index: 1;
    padding: 8px 16px 32px;
}
.qal-az-group { margin-bottom: 18px;
}
.qal-az-letter {
    color: var(--qal-muted);
    font: 600 11px/1 var(--qal-body);
    letter-spacing: 1.2px; text-transform: uppercase;
    margin: 0 0 8px;
    padding-left: 4px;
}
.qal-az-row {
    display: flex; align-items: center; gap: 14px;
    padding: 12px 4px;
    border-bottom: 1px solid var(--qal-hairline);
    cursor: pointer;
    transition: background 140ms ease;
}
.qal-az-row:active { background: var(--qal-surface-strong);
}
.qal-az-chip {
    flex: 0 0 auto;
    width: 38px; height: 38px;
    border-radius: 10px;
    border: 1px solid var(--qal-hairline);
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--qal-ink);
    background: var(--qal-surface-strong);
    box-shadow: var(--qal-shadow-chip);
}
.qal-az-chip .icon { color: var(--qal-ink);
}
.qal-az-name {
    flex: 1 1 auto;
    color: var(--qal-ink);
    font: 500 15.5px/1.2 var(--qal-body);
}
.qal-az-cat {
    flex: 0 0 auto;
    color: var(--qal-muted);
    font: 400 12.5px/1 var(--qal-body);
}
.qal-az-empty {
    text-align: center; padding: 48px 20px;
    color: var(--qal-muted);
    font: 400 15px/1.4 var(--qal-body);
}

/* ===== Expanded category sheet — same restrained material =====
   F7 reparents an opened sheet to .framework7-root, OUTSIDE .quick-add-popup,
   so the --qal-* tokens defined on the popup are undefined here (the sheet went
   transparent + chips lost their surface). Redefine the token set on the sheet
   so every child style resolves no matter where F7 mounts it. */
.qal-cat-sheet {
    --qal-bg: var(--cbm-canvas, #f5f5f5);
    --qal-surface: var(--cbm-surface, #ffffff);
    --qal-surface-strong: var(--cbm-surface-strong, #f0efed);
    --qal-hairline: var(--cbm-hairline, #e7e5e4);
    --qal-ink: var(--cbm-ink, #0c0a09);
    --qal-on-ink: var(--cbm-on-primary, #ffffff);
    --qal-muted: var(--cbm-muted, #777169);
    --qal-muted-soft: var(--cbm-muted-soft, #a8a29e);
    --qal-badge: #FF3B30;
    --qal-radius-chip: 14px;
    --qal-display: var(--cbm-display-font, 'EB Garamond', Georgia, serif);
    --qal-body: var(--cbm-body-font, 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif);
    --qal-shadow-chip: 0 1px 2px rgba(12, 10, 9, 0.06);
    height: auto; max-height: 80vh;
    background: var(--qal-bg) !important;
    --f7-sheet-bg-color: var(--qal-bg);
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
    border-top: 1px solid var(--qal-hairline);
    box-shadow: 0 -10px 36px rgba(12, 10, 9, 0.10);
    color: var(--qal-ink) !important;
    display: flex; flex-direction: column;
}
.qal-cat-sheet * { color: inherit;
}
.qal-cat-sheet .qal-chip .icon { color: var(--qal-ink);
}
.qal-sheet-grip { width: 36px; height: 4px; border-radius: 9999px; background: var(--qal-hairline); margin: 10px auto 4px; flex: 0 0 auto;
}
.qal-sheet-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 6px 16px 14px;
    flex: 0 0 auto;
}
.qal-sheet-title {
    margin: 0;
    color: var(--qal-ink);
    font-family: var(--qal-display);
    font-weight: 300;
    font-size: 24px;
    line-height: 1.15;
    letter-spacing: -0.2px;
}
.qal-sheet-body {
    padding: 8px 16px calc(28px + env(safe-area-inset-bottom));
    overflow-y: auto;
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    /* hide the native scrollbar on the category sheet too (same fix as .qal) */
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.qal-sheet-body::-webkit-scrollbar { width: 0; height: 0; display: none;
}
@media (min-width: 700px) {
.qal-sheet-body { grid-template-columns: repeat(6, 1fr);
}
}
.qal-grid-item {
    display: flex; flex-direction: column; align-items: center; gap: 8px;
    cursor: pointer;
}
.qal-chip-md { width: 56px; height: 56px; border-radius: 14px;
}
.qal-grid-item-label {
    color: var(--qal-ink);
    font: 400 12px/1.25 var(--qal-body);
    text-align: center;
    max-width: 100%;
    overflow: hidden;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}

/* ===== Reduced motion / transparency ===== */
@media (prefers-reduced-motion: reduce) {
.qal-folder, .qal-slot-full:active .qal-chip,
    .qal-back, .qal-close, .qal-sheet-close { transition: none; transform: none;
}
}

.notif-popover {
    width: 320px;
    max-width: calc(100vw - 24px);
    background: var(--cbm-surface);
    border-radius: var(--cbm-radius-xl, 16px);
}
.ntfd {
    display: flex;
    flex-direction: column;
    max-height: 60vh;
    font-family: var(--cbm-body-font, sans-serif);
}
.ntfd-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 8px;
    border-bottom: 1px solid var(--cbm-hairline-soft);
}
.ntfd-title {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--cbm-muted);
}
.ntfd-readall {
    font-size: 12px;
    font-weight: 500;
    color: var(--cbm-ink);
}
.ntfd-list {
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 4px;
}
.ntfd-loading {
    display: flex;
    justify-content: center;
    padding: 28px 0;
}
.ntfd-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px;
    border-radius: 10px;
    position: relative;
}
.ntfd-row.unread {
    background: var(--cbm-surface-strong);
}
.ntfd-ic {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface);
    border: 1px solid var(--cbm-hairline);
    color: var(--cbm-ink);
}
.ntfd-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.ntfd-row-title {
    font-size: 14px;
    font-weight: 500;
    color: var(--cbm-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ntfd-row-sub {
    font-size: 12px;
    color: var(--cbm-body);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ntfd-row-time {
    font-size: 10px;
    color: var(--cbm-muted-soft);
    margin-top: 1px;
}
.ntfd-dot {
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 9999px;
    background: var(--cbm-error);
    margin-top: 5px;
}
.ntfd-empty {
    text-align: center;
    color: var(--cbm-muted-soft);
    font-size: 13px;
    padding: 32px 16px;
}
.ntfd-all {
    display: block;
    text-align: center;
    padding: 12px;
    font-size: 14px;
    font-weight: 500;
    color: var(--cbm-ink);
    border-top: 1px solid var(--cbm-hairline-soft);
}

.cbm-tour {
    position: fixed;
    inset: 0;
    z-index: 9500;
}
/* First-run language picker */
.cbm-tour-pick {
    position: fixed;
    inset: 0;
    background: rgba(12, 10, 9, 0.66);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.cbm-tour-pick-card {
    width: 100%;
    max-width: 320px;
    box-sizing: border-box;
    background: var(--cbm-surface, #ffffff);
    border-radius: var(--cbm-radius-xl, 16px);
    box-shadow: 0 18px 48px rgba(12, 10, 9, 0.3);
    padding: 22px 20px;
    text-align: center;
}
.cbm-tour-pick-title {
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 21px;
    line-height: 1.4;
    color: var(--cbm-ink, #0c0a09);
    margin: 8px 0 18px;
}
.cbm-tour-pick-btns {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.cbm-tour-pick-btn {
    -webkit-appearance: none;
            appearance: none;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-surface, #ffffff);
    color: var(--cbm-ink, #0c0a09);
    height: 48px;
    border-radius: 9999px;
    font-family: var(--cbm-body-font);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}
.cbm-tour-pick-btn:active { background: var(--cbm-surface-strong, #f0efed);
}
.cbm-tour-pick-skip {
    -webkit-appearance: none;
            appearance: none;
    border: 0;
    background: transparent;
    color: var(--cbm-muted, #777169);
    font-family: var(--cbm-body-font);
    font-size: 13px;
    font-weight: 600;
    padding: 14px 6px 2px;
    margin: 4px auto 0;
    cursor: pointer;
}
.cbm-tour-pick-skip:active { color: var(--cbm-ink, #0c0a09);
}
/* Spotlight — a transparent window with a huge shadow dimming everything else. */
.cbm-tour-hole {
    position: fixed;
    border-radius: 14px;
    box-shadow: 0 0 0 9999px rgba(12, 10, 9, 0.66);
    transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease;
    pointer-events: none;
}
.cbm-tour-card {
    position: fixed;
    box-sizing: border-box;
    background: var(--cbm-surface, #ffffff);
    border-radius: var(--cbm-radius-xl, 16px);
    box-shadow: 0 18px 48px rgba(12, 10, 9, 0.3);
    padding: 16px 16px 14px;
    transition: top 0.2s ease, left 0.2s ease;
}
.cbm-tour-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}
.cbm-tour-eyebrow {
    font-family: var(--cbm-body-font);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    color: var(--cbm-muted, #777169);
}
.cbm-tour-langs {
    display: inline-flex;
    gap: 2px;
    flex: 0 0 auto;
    background: var(--cbm-surface-strong, #f0efed);
    border-radius: 9999px;
    padding: 2px;
}
.cbm-tour-lang {
    -webkit-appearance: none;
            appearance: none;
    border: 0;
    background: transparent;
    padding: 3px 8px;
    border-radius: 9999px;
    font-family: var(--cbm-body-font);
    font-size: 11px;
    font-weight: 600;
    color: var(--cbm-muted, #777169);
    line-height: 1.3;
    cursor: pointer;
}
.cbm-tour-lang.on {
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #ffffff);
}
.cbm-tour-title {
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 21px;
    line-height: 1.15;
    letter-spacing: -0.2px;
    color: var(--cbm-ink, #0c0a09);
    margin: 0 0 6px;
}
.cbm-tour-text {
    font-family: var(--cbm-body-font);
    font-size: 14px;
    line-height: 1.45;
    color: var(--cbm-body, #44403c);
    margin: 0 0 14px;
}
.cbm-tour-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.cbm-tour-dots {
    display: inline-flex;
    gap: 5px;
}
.cbm-tour-dots span {
    width: 6px;
    height: 6px;
    border-radius: 9999px;
    background: var(--cbm-hairline-strong, #d6d3d1);
}
.cbm-tour-dots span.on {
    background: var(--cbm-ink-pill, #292524);
    width: 16px;
}
.cbm-tour-btns {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.cbm-tour-skip {
    -webkit-appearance: none;
            appearance: none;
    border: 0;
    background: transparent;
    color: var(--cbm-muted, #777169);
    font-family: var(--cbm-body-font);
    font-size: 13px;
    font-weight: 600;
    padding: 8px 6px;
    cursor: pointer;
}
.cbm-tour-next {
    -webkit-appearance: none;
            appearance: none;
    border: 0;
    border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #ffffff);
    font-family: var(--cbm-body-font);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.2px;
    padding: 9px 20px;
    cursor: pointer;
}
.cbm-tour-next:active {
    background: var(--cbm-ink-pill-active, #0c0a09);
}

.swz-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.swz {
    border-radius: 24px 24px 0 0;
    padding: 10px 18px calc(18px + env(safe-area-inset-bottom));
    background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.95));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-bottom: 0;
    box-shadow: 0 -8px 30px rgba(12, 10, 9, 0.12);
}
.swz-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 12px;
}
.swz-head { padding: 0 2px 2px;
}
.swz-eyebrow { font-family: var(--cbm-body-font); font-size: 11px; font-weight: 700; letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted-soft, #a8a29e);
}
.swz-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 26px; line-height: 1.12; letter-spacing: -0.4px; color: var(--cbm-ink, #0c0a09); margin: 4px 0 4px;
}
.swz-sub { font-family: var(--cbm-body-font); font-size: 13px; line-height: 1.45; color: var(--cbm-muted, #777169); margin: 0;
}

/* Progress dots */
.swz-dots { display: flex; gap: 6px; margin: 12px 2px 14px;
}
.swz-dots span { width: 7px; height: 7px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); transition: width 200ms cubic-bezier(.4, 0, .2, 1), background 200ms;
}
.swz-dots span.on { width: 20px; background: var(--cbm-ink-pill, #292524);
}
.swz-dots span.done { background: var(--cbm-muted, #777169);
}
.swz-body { min-height: 96px;
}

/* Welcome */
.swz-welcome { display: flex; align-items: center; gap: 14px; padding: 6px 2px 8px;
}
.swz-welcome-orb {
    flex: 0 0 auto; width: 56px; height: 56px; border-radius: 9999px;
    background: radial-gradient(circle at 30% 30%, var(--cbm-mint, #a7e5d3), var(--cbm-lavender, #c8b8e0));
    filter: blur(0.5px); opacity: 0.9;
}
.swz-welcome-text { font-family: var(--cbm-body-font); font-size: 14px; line-height: 1.5; color: var(--cbm-body, #4e4e4e); margin: 0;
}

/* Choice rows (language / mode / view) */
.swz-choices { display: flex; flex-direction: column; gap: 8px;
}
.swz-choice {
    width: 100%; min-height: 52px; padding: 10px 14px;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    border-radius: var(--cbm-radius-lg, 12px);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09);
    cursor: pointer; text-align: left;
    transition: border-color 140ms cubic-bezier(.4, 0, .2, 1);
}
.swz-choice.on { border-color: var(--cbm-ink-pill, #292524); border-width: 1.5px;
}
.swz-choice:active { background: var(--cbm-surface-strong, #f0efed);
}
.swz-choice .icon { color: var(--cbm-ink-pill, #292524); flex: 0 0 auto;
}
.swz-choice-stack { display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.swz-choice-main { display: inline-flex; align-items: center; gap: 8px; font-family: var(--cbm-body-font); font-size: 15px; font-weight: 600; color: var(--cbm-ink, #0c0a09);
}
.swz-choice-note { font-family: var(--cbm-body-font); font-size: 12.5px; color: var(--cbm-muted, #777169);
}
.swz-choice .dvw-dot { width: 9px; height: 9px; border-radius: 9999px; flex: 0 0 auto; background: var(--cbm-muted-soft, #a8a29e);
}
.swz-choice .dvw-dot.view-company { background: var(--cbm-sky, #a8c8e8);
}
.swz-choice .dvw-dot.view-personal { background: var(--cbm-peach, #f4c5a8);
}

/* Dashboard dropdowns (mirror the dash-wizard fields) */
.swz-qs { display: flex; flex-direction: column; gap: 13px;
}
.swz-q-label { display: block; font-family: var(--cbm-body-font); font-size: 13.5px; font-weight: 600; color: var(--cbm-body-strong, #292524); margin: 0 2px 7px;
}
.swz-field {
    width: 100%; height: 48px; padding: 0 14px;
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    border-radius: var(--cbm-radius-md, 8px);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09);
    cursor: pointer; text-align: left;
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500;
}
.swz-field.open { border-color: var(--cbm-ink-pill, #292524);
}
.swz-field-caret { color: var(--cbm-muted, #777169); flex: 0 0 auto; transition: transform 200ms cubic-bezier(.4, 0, .2, 1);
}
.swz-field.open .swz-field-caret { transform: rotate(180deg);
}
.swz-opts {
    margin-top: 6px; padding: 5px;
    border-radius: var(--cbm-radius-lg, 12px);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    background: var(--cbm-surface, #fff);
    box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.04));
}
.swz-opt-row {
    width: 100%; height: 42px; padding: 0 11px;
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    border: 0; border-radius: var(--cbm-radius-md, 8px); background: transparent; cursor: pointer; text-align: left;
    font-family: var(--cbm-body-font); font-size: 14.5px; font-weight: 500; color: var(--cbm-body, #4e4e4e);
}
.swz-opt-row:active { background: var(--cbm-surface-strong, #f0efed);
}
.swz-opt-row.on { color: var(--cbm-ink, #0c0a09); font-weight: 600; background: var(--cbm-surface-strong, #f0efed);
}
.swz-opt-row .icon { color: var(--cbm-ink-pill, #292524);
}
.swz-opt-label { display: inline-flex; align-items: center; gap: 8px; min-width: 0;
}

/* "Recommended" pill — the minimalist default choice in each setup step. */
.swz-rec {
    flex: 0 0 auto; display: inline-flex; align-items: center; height: 18px; padding: 0 8px;
    border-radius: 9999px; background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 10px; font-weight: 700; letter-spacing: 0.3px;
    text-transform: uppercase; white-space: nowrap;
}

/* Footer */
.swz-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px;
}
.swz-ghost {
    height: 44px; padding: 0 6px; border: 0; background: transparent; cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; color: var(--cbm-muted, #777169);
}
.swz-ghost:active { color: var(--cbm-ink, #0c0a09);
}
.swz-cta {
    height: 50px; padding: 0 22px;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    border-radius: 9999px; border: 0; cursor: pointer;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 600; letter-spacing: 0.1px;
    transition: transform 120ms cubic-bezier(.4, 0, .2, 1);
}
.swz-cta .icon { color: var(--cbm-on-primary, #fff);
}
.swz-cta:active { transform: scale(0.985); background: var(--cbm-ink-pill-active, #0c0a09);
}
@media (prefers-reduced-motion: reduce) {
.swz-cta, .swz-field-caret, .swz-dots span { transition: none;
}
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.swz { background: var(--cbm-glass-bg-strong);
}
}

.cbm-gate {
    position: fixed;
    inset: 0;
    z-index: 13000; /* above the views, header, sheets — blocks all interaction */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: var(--cbm-canvas, #f5f5f5);
    overflow: hidden;
}
/* Signature drifting gradient-orb atmosphere. */
.cbm-gate-orb {
    position: absolute;
    border-radius: 9999px;
    filter: blur(46px);
    opacity: 0.5;
    pointer-events: none;
}
.cbm-gate-orb-a { width: 320px; height: 320px; top: -80px; right: -60px; background: radial-gradient(circle at center, var(--cbm-sky, #a8c8e8), transparent 70%);
}
.cbm-gate-orb-b { width: 300px; height: 300px; bottom: -90px; left: -70px; background: radial-gradient(circle at center, var(--cbm-mint, #a7e5d3), transparent 70%);
}
.cbm-gate-orb-c { width: 240px; height: 240px; bottom: 80px; right: -40px; background: radial-gradient(circle at center, var(--cbm-lavender, #c8b8e0), transparent 70%); opacity: 0.4;
}
.cbm-gate-card {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 360px;
    text-align: center;
}
.cbm-gate-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--cbm-body-font);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.96px;
    text-transform: uppercase;
    color: var(--cbm-muted, #777169);
}
.cbm-gate-eyebrow .icon { color: var(--cbm-ink, #0c0a09);
}
.cbm-gate-eyebrow-err .icon { color: var(--cbm-error, #dc2626);
}
.cbm-gate-title {
    margin: 8px 0 6px;
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: clamp(24px, 7vw, 30px);
    line-height: 1.12;
    letter-spacing: -0.5px;
    color: var(--cbm-ink, #0c0a09);
}
.cbm-gate-sub {
    margin: 0 auto 22px;
    max-width: 30ch;
    font-family: var(--cbm-body-font);
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.1px;
    color: var(--cbm-muted, #777169);
}
.cbm-gate-steps {
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: left;
    margin: 0 auto 22px;
    max-width: 280px;
}
.cbm-gate-step {
    display: flex;
    align-items: center;
    gap: 12px;
    transition: opacity 240ms ease;
}
.cbm-gate-step.is-pending { opacity: 0.4;
}
.cbm-gate-ic {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-ink, #0c0a09);
}
.cbm-gate-step.is-done .cbm-gate-ic {
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
}
.cbm-gate-step.is-done .cbm-gate-ic .icon { color: var(--cbm-on-primary, #fff);
}
.cbm-gate-label {
    font-family: var(--cbm-body-font);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.1px;
    color: var(--cbm-ink, #0c0a09);
}
/* Active-step spinner + pending dot. */
.cbm-gate-spin {
    width: 14px;
    height: 14px;
    border-radius: 9999px;
    border: 2px solid var(--cbm-hairline-strong, #d6d3d1);
    border-top-color: var(--cbm-ink, #0c0a09);
    animation: cbmGateSpin 0.7s linear infinite;
}
.cbm-gate-pend {
    width: 7px;
    height: 7px;
    border-radius: 9999px;
    background: var(--cbm-muted-soft, #a8a29e);
}
@keyframes cbmGateSpin {
to { transform: rotate(360deg);
}
}
.cbm-gate-bar {
    width: 100%;
    max-width: 280px;
    height: 4px;
    margin: 0 auto 12px;
    border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    overflow: hidden;
}
.cbm-gate-bar-fill {
    display: block;
    height: 100%;
    border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524);
    transition: width 360ms cubic-bezier(0.4, 0, 0.2, 1);
}
.cbm-gate-foot {
    font-family: var(--cbm-body-font);
    font-size: 12px;
    letter-spacing: 0.2px;
    color: var(--cbm-muted-soft, #a8a29e);
}
.cbm-gate-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    margin-top: 6px;
}
.cbm-gate-btn {
    width: auto;
    min-width: 160px;
    height: 44px;
    padding: 0 22px;
    border-radius: 9999px;
    border: 0;
    cursor: pointer;
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font);
    font-size: 15px;
    font-weight: 500;
}
.cbm-gate-btn-ghost {
    background: transparent;
    color: var(--cbm-muted, #777169);
    height: 38px;
}

/* Floating orb — bottom-right, above the nav, the brand ink disc with a soft orb glow. */
.ifa-orb {
    position: fixed; right: 16px; bottom: calc(72px + env(safe-area-inset-bottom)); z-index: 5500;
    width: 52px; height: 52px; border-radius: 9999px; border: 0; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    box-shadow: 0 8px 24px rgba(12, 10, 9, 0.28);
}
.ifa-orb .icon { color: var(--cbm-on-primary, #fff); position: relative; z-index: 1;
}
.ifa-orb-glow {
    position: absolute; inset: -6px; border-radius: 9999px; z-index: 0; opacity: 0.6; filter: blur(10px);
    background: radial-gradient(circle at 30% 25%, var(--cbm-sky, #a8c8e8), transparent 70%);
    animation: ifaPulse 2.4s ease-out infinite;
}
@keyframes ifaPulse {
0%, 100% { transform: scale(1); opacity: 0.55;
}
50% { transform: scale(1.15); opacity: 0.3;
}
}
.ifa-tap {
    position: absolute; right: 60px; top: 50%; transform: translateY(-50%); white-space: nowrap;
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09);
    border: 1px solid var(--cbm-hairline, #e7e5e4); box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0, 0, 0, 0.06));
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 600; letter-spacing: 0.1px;
    padding: 7px 12px; border-radius: 9999px;
}

/* Floating chat window — bottom-anchored glass card. */
.ifa-sheet {
    position: fixed; inset: 0; z-index: 5600;
    display: flex; align-items: flex-end; justify-content: center;
    background: rgba(12, 10, 9, 0.18); padding: 0 12px calc(16px + env(safe-area-inset-bottom));
}
.ifa-card {
    position: relative; width: 100%; max-width: 440px; overflow: hidden;
    border-radius: var(--cbm-radius-xxl, 24px);
    padding: 16px 16px 14px;
    background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.92));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 -10px 40px rgba(12, 10, 9, 0.18);
}
.ifa-card-orb {
    position: absolute; top: -40px; right: -30px; width: 160px; height: 160px; border-radius: 9999px;
    opacity: 0.4; filter: blur(20px); pointer-events: none;
    background: radial-gradient(circle at center, var(--cbm-sky, #a8c8e8), transparent 70%);
}
.ifa-head { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px;
}
.ifa-eyebrow {
    display: inline-flex; align-items: center; gap: 5px;
    font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.96px;
    text-transform: uppercase; color: var(--cbm-muted, #777169);
}
.ifa-eyebrow .icon { color: var(--cbm-ink, #0c0a09);
}
.ifa-title { font-family: var(--cbm-display-font); font-weight: 300; font-size: 23px; letter-spacing: -0.3px; color: var(--cbm-ink, #0c0a09); margin-top: 3px; text-transform: capitalize;
}
.ifa-x {
    flex: 0 0 auto; width: 32px; height: 32px; border-radius: 9999px; border: 0; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted, #777169);
}
.ifa-greeting {
    position: relative; z-index: 1; margin: 10px 0 12px; max-width: 96%;
    font-family: var(--cbm-body-font); font-size: 14px; line-height: 1.5; letter-spacing: 0.1px;
    color: var(--cbm-body, #4e4e4e);
}
.ifa-examples { position: relative; z-index: 1; margin-bottom: 10px;
}
.ifa-eg {
    width: auto; text-align: left; cursor: pointer;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-lg, 12px); padding: 9px 12px;
    font-family: var(--cbm-body-font); font-size: 12.5px; line-height: 1.4; color: var(--cbm-muted, #777169);
}
.ifa-eg:active { background: var(--cbm-surface-strong, #f0efed);
}
.ifa-composer {
    position: relative; z-index: 1; display: flex; align-items: flex-end; gap: 8px;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-xl, 16px); padding: 8px 8px 8px 14px;
}
.ifa-input {
    flex: 1; border: 0; outline: 0; resize: none; background: transparent; max-height: 120px;
    font-family: var(--cbm-body-font); font-size: 15px; line-height: 1.4; color: var(--cbm-ink, #0c0a09);
}
.ifa-send {
    flex: 0 0 auto; width: 38px; height: 38px; border-radius: 9999px; border: 0; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-muted-soft, #a8a29e);
    transition: background 0.16s ease, color 0.16s ease;
}
.ifa-send.on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
}
.ifa-send.on .icon { color: var(--cbm-on-primary, #fff);
}

/* Reuses the global .cbm-tour / .cbm-tour-hole / .cbm-tour-card spotlight styles
   (from app-tour.vue) — only the guide-specific bits live here. */
.sgd-tour .sgd-card { max-width: calc(100vw - 24px);
}
.sgd-card-center { top: 50% !important; transform: translateY(-50%);
}
.sgd-card .cbm-tour-top { display: flex; align-items: center; justify-content: space-between; gap: 8px;
}
.sgd-card .cbm-tour-eyebrow { display: inline-flex; align-items: center; gap: 5px; min-width: 0;
}
.sgd-card-lang { flex: 0 0 auto; display: inline-flex; gap: 2px; padding: 2px; background: var(--cbm-surface-strong, #f0efed); border-radius: 9999px;
}
.sgd-card-lang button {
    -webkit-appearance: none;
            appearance: none; border: 0; background: transparent; width: auto; padding: 3px 8px; border-radius: 9999px;
    font-family: var(--cbm-body-font); font-size: 11px; font-weight: 700; letter-spacing: 0.2px; color: var(--cbm-muted, #777169); cursor: pointer;
}
.sgd-card-lang button.on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
}
.sgd-card-train {
    width: 100%; margin-top: 12px; padding-top: 11px; border: 0; border-top: 1px solid var(--cbm-hairline, #e7e5e4);
    background: transparent; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600; color: var(--cbm-ink, #0c0a09); cursor: pointer;
}
.sgd-card-train .icon { color: var(--cbm-success, #2fa37e);
}
.sgd-card-train:active { opacity: 0.6;
}
.sgd-card-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 14px;
}

/* Footer: a flexible progress bar + the button row, so it fits any step count
   (the old dot-per-step row overflowed and crushed the buttons on long guides). */
.sgd-card .sgd-foot { display: flex; align-items: center; gap: 12px;
}
.sgd-progress { flex: 1 1 auto; min-width: 0; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); overflow: hidden;
}
.sgd-progress-fill { display: block; height: 100%; border-radius: 9999px; background: var(--cbm-ink-pill, #292524); transition: width 220ms cubic-bezier(.4, 0, .2, 1);
}
.sgd-card .sgd-foot .cbm-tour-btns { flex: 0 0 auto;
}
.sgd-card .cbm-tour-skip, .sgd-card .cbm-tour-next { white-space: nowrap;
}
/* Skip — tertiary text button (no border/glass), the quiet way out of the walkthrough. */
.sgd-card .sgd-skip-all {
    flex: 0 0 auto;
    background: transparent;
    border: none;
    padding: 4px 2px;
    color: var(--cbm-muted, #777169);
    font-family: var(--cbm-body-font);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.1px;
    white-space: nowrap;
    cursor: pointer;
    width: auto;
}
.sgd-card .sgd-skip-all:active { color: var(--cbm-ink, #0c0a09);
}
@media (prefers-reduced-motion: reduce) {
.sgd-progress-fill { transition: none;
}
}

/* Scroll the popup itself so tall content (the follow-up section) stays reachable;
   the wrap fills it when short. */
.call-note-popup { background: var(--cbm-canvas, #f5f5f5); overflow-y: auto; -webkit-overflow-scrolling: touch;
}
@media (min-width: 630px) and (min-height: 630px) {
.call-note-popup.call-note-popup {
        width: 480px; max-width: calc(100vw - 32px);
        height: auto; max-height: 86vh;
        border-radius: 24px; box-shadow: 0 24px 64px rgba(12, 10, 9, 0.18); overflow-y: auto;
}
}
.cn-wrap { padding: 0 16px calc(20px + env(safe-area-inset-bottom)); background: var(--cbm-canvas, #f5f5f5); min-height: 100%; box-sizing: border-box;
}
.cn-head { position: relative; padding: 24px 4px 10px; overflow: visible;
}
.cn-orb {
    position: absolute; top: -48px; right: -34px; width: 160px; height: 160px;
    border-radius: 9999px; opacity: 0.5; pointer-events: none; filter: blur(8px); z-index: 0;
    background: radial-gradient(circle at center, var(--cbm-gradient-sky, #a8c8e8) 0%, transparent 70%);
}
.cn-eyebrow { position: relative; font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted, #777169); margin-bottom: 4px;
}
.cn-title { position: relative; font-family: var(--cbm-display-font); font-weight: 300; font-size: 26px; line-height: 1.13; color: var(--cbm-ink, #0c0a09); margin: 0;
}
.cn-auto {
    margin: 4px 0 8px; padding: 12px 14px;
    background: var(--cbm-surface-strong, #f0efed); border-radius: var(--cbm-radius-lg, 12px);
    font-family: var(--cbm-body-font); font-size: 14px; line-height: 1.5; letter-spacing: 0.15px;
    color: var(--cbm-body-strong, #292524);
}
.cn-field { padding: 8px 0 4px;
}
.cn-label { font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; letter-spacing: 0.4px; color: var(--cbm-muted, #777169); margin: 0 2px 6px;
}
.cn-seg { display: flex; gap: 8px;
}
.cn-seg-opt {
    flex: 1; height: 44px; border-radius: var(--cbm-radius-md, 8px);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: var(--cbm-surface, #fff);
    color: var(--cbm-ink, #0c0a09); font-family: var(--cbm-body-font); font-size: 14px; font-weight: 500; cursor: pointer;
    transition: border-color 160ms ease, background 160ms ease;
}
.cn-seg-opt:active { background: var(--cbm-surface-strong, #f0efed);
}
.cn-seg-opt.on { background: var(--cbm-ink-pill, #292524); border-color: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); font-weight: 600;
}
.cn-textarea {
    width: 100%; min-height: 104px; padding: 12px;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px); color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px; line-height: 1.5;
    resize: vertical; box-sizing: border-box;
}
.cn-textarea::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.cn-textarea:focus { outline: none; border-color: var(--cbm-ink, #0c0a09);
}
.cn-textarea-wrap { position: relative;
}
.cn-textarea-wrap .cn-textarea { padding-right: 48px;
}
.cn-mic {
    position: absolute; top: 8px; right: 8px;
    width: 36px; height: 36px; border-radius: 9999px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09);
    cursor: pointer;
}
.cn-mic:active { background: var(--cbm-surface-strong, #f0efed);
}
.cn-mic.on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border-color: var(--cbm-ink-pill, #292524);
}
.cn-mic.busy { animation: cnSpin 0.9s linear infinite;
}
@keyframes cnSpin {
to { transform: rotate(360deg);
}
}
@media (prefers-reduced-motion: reduce) {
.cn-mic.busy { animation: none;
}
}

/* "Translate to English" — a subtle inline text button under the details box. width:auto
   defeats F7's global button{width:100%} reset (§5). */
.cn-translate {
    display: inline-flex; align-items: center; gap: 5px; width: auto; margin: 8px 2px 0;
    padding: 0; background: transparent; border: 0; cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 12.5px; font-weight: 600; color: var(--cbm-muted, #777169);
}
.cn-translate .icon { color: var(--cbm-muted, #777169);
}
.cn-translate:active:not(:disabled) { color: var(--cbm-ink, #0c0a09);
}
.cn-translate:disabled { opacity: 0.5;
}
.cn-cta { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding: 0 2px;
}
/* width:auto defeats F7's global `button { width: 100% }` reset (see CLAUDE.md §5),
   which otherwise blows out the skip button and collapses Save. */
.cn-skip {
    flex: 0 0 auto; width: auto; height: 50px; padding: 0 22px; border-radius: 9999px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: transparent;
    color: var(--cbm-ink, #0c0a09); font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; cursor: pointer;
}
.cn-skip:active { background: var(--cbm-surface-strong, #f0efed);
}
.cn-save {
    flex: 1; width: auto; height: 50px; border: 0; border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px; cursor: pointer;
}
.cn-save:disabled { opacity: 0.5;
}
.cn-save:active:not(:disabled) { background: var(--cbm-ink-pill-active, #0c0a09);
}
@media (prefers-reduced-motion: reduce) {
.cn-seg-opt, .cn-textarea { transition: none;
}
}

.wa-note-popup { background: var(--cbm-canvas, #f5f5f5); overflow-y: auto; -webkit-overflow-scrolling: touch;
}
@media (min-width: 630px) and (min-height: 630px) {
.wa-note-popup.wa-note-popup {
        width: 480px; max-width: calc(100vw - 32px);
        height: auto; max-height: 86vh;
        border-radius: 24px; box-shadow: 0 24px 64px rgba(12, 10, 9, 0.18); overflow-y: auto;
}
}
.wa-wrap { padding: 0 16px calc(20px + env(safe-area-inset-bottom)); background: var(--cbm-canvas, #f5f5f5); min-height: 100%; box-sizing: border-box;
}
.wa-head { position: relative; padding: 24px 4px 10px; overflow: visible;
}
/* WhatsApp-green bloom (token-fallback hex so it survives dark too). */
.wa-orb {
    position: absolute; top: -48px; right: -34px; width: 160px; height: 160px;
    border-radius: 9999px; opacity: 0.42; pointer-events: none; filter: blur(8px); z-index: 0;
    background: radial-gradient(circle at center, var(--cbm-success, #25d366) 0%, transparent 70%);
}
.wa-badge {
    position: relative; z-index: 1; width: 44px; height: 44px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center; margin-bottom: 12px;
    background: var(--cbm-success, #25d366); color: #fff;
    box-shadow: 0 8px 20px rgba(37, 211, 102, 0.32);
}
.wa-eyebrow { position: relative; font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; letter-spacing: 0.96px; text-transform: uppercase; color: var(--cbm-muted, #777169); margin-bottom: 4px;
}
.wa-title { position: relative; font-family: var(--cbm-display-font); font-weight: 300; font-size: 26px; line-height: 1.13; color: var(--cbm-ink, #0c0a09); margin: 0;
}
.wa-auto {
    margin: 4px 0 8px; padding: 12px 14px;
    background: var(--cbm-surface-strong, #f0efed); border-radius: var(--cbm-radius-lg, 12px);
    font-family: var(--cbm-body-font); font-size: 14px; line-height: 1.5; letter-spacing: 0.15px;
    color: var(--cbm-body-strong, #292524);
}
.wa-field { padding: 8px 0 4px;
}
.wa-label { font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600; letter-spacing: 0.4px; color: var(--cbm-muted, #777169); margin: 0 2px 6px;
}
.wa-textarea {
    width: 100%; min-height: 84px; padding: 12px;
    background: var(--cbm-surface, #fff); border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px); color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px; line-height: 1.5;
    resize: vertical; box-sizing: border-box;
}
.wa-textarea::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.wa-textarea:focus { outline: none; border-color: var(--cbm-success, #16a34a);
}
.wa-cta { display: flex; align-items: center; gap: 12px; margin-top: 18px; padding: 0 2px;
}
.wa-skip {
    flex: 0 0 auto; width: auto; height: 50px; padding: 0 22px; border-radius: 9999px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: transparent;
    color: var(--cbm-ink, #0c0a09); font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; cursor: pointer;
}
.wa-skip:active { background: var(--cbm-surface-strong, #f0efed);
}
.wa-save {
    flex: 1; width: auto; height: 50px; border: 0; border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px; cursor: pointer;
}
.wa-save:disabled { opacity: 0.5;
}
.wa-save:active:not(:disabled) { background: var(--cbm-ink-pill-active, #0c0a09);
}

.mii[data-v-6a176fa3] {
    padding: 6px 20px 22px;
}
.mii-grip[data-v-6a176fa3] {
    width: 38px;
    height: 4px;
    border-radius: 9999px;
    background: var(--cbm-hairline-strong, #d8d4cc);
    margin: 6px auto 14px;
}
.mii-eyebrow[data-v-6a176fa3] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cbm-muted, #8a8378);
}
.mii-eyebrow .icon[data-v-6a176fa3] {
    color: var(--cbm-info, #2563eb);
}
.mii-title[data-v-6a176fa3] {
    font-family: var(--cbm-display-font, 'EB Garamond', serif);
    font-weight: 300;
    font-size: 26px;
    line-height: 1.15;
    color: var(--cbm-ink, #0c0a09);
    margin: 6px 0 14px;
}
.mii-langs[data-v-6a176fa3] {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}
.mii-lang[data-v-6a176fa3] {
    flex: 0 0 auto;
    width: auto;
    padding: 7px 14px;
    border-radius: 9999px;
    border: 1px solid var(--cbm-hairline, #e7e3da);
    background: var(--cbm-surface, #fff);
    color: var(--cbm-muted, #8a8378);
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 13px;
    font-weight: 500;
    -webkit-tap-highlight-color: transparent;
}
.mii-lang.on[data-v-6a176fa3] {
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
    border-color: var(--cbm-ink-pill, #292524);
}
.mii-what[data-v-6a176fa3] {
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 16px;
    line-height: 1.5;
    color: var(--cbm-ink, #0c0a09);
    margin-bottom: 16px;
}
.mii-eg[data-v-6a176fa3] {
    background: var(--cbm-surface-strong, #f5f3ef);
    border: 1px solid var(--cbm-hairline, #e7e3da);
    border-radius: 16px;
    padding: 14px 16px;
}
.mii-eg-tag[data-v-6a176fa3] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cbm-warning, #d97706);
    margin-bottom: 7px;
}
.mii-eg-body[data-v-6a176fa3] {
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 15px;
    line-height: 1.5;
    color: var(--cbm-ink, #0c0a09);
}
.mii-cta[data-v-6a176fa3] {
    display: block;
    width: 100%;
    margin-top: 20px;
    padding: 14px;
    border: 0;
    border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 15px;
    font-weight: 600;
    -webkit-tap-highlight-color: transparent;
}
.mii-cta[data-v-6a176fa3]:active {
    opacity: 0.85;
}

.mic[data-v-4f6e4f8b] {
    padding: 6px 20px 22px;
}
.mic-grip[data-v-4f6e4f8b] {
    width: 38px;
    height: 4px;
    border-radius: 9999px;
    background: var(--cbm-hairline-strong, #d8d4cc);
    margin: 6px auto 14px;
}
.mic-eyebrow[data-v-4f6e4f8b] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cbm-muted, #8a8378);
}
.mic-eyebrow .icon[data-v-4f6e4f8b] {
    color: var(--cbm-success, #16a34a);
}
.mic-title[data-v-4f6e4f8b] {
    font-family: var(--cbm-display-font, 'EB Garamond', serif);
    font-weight: 300;
    font-size: 26px;
    line-height: 1.15;
    color: var(--cbm-ink, #0c0a09);
    margin: 6px 0 14px;
}
.mic-langs[data-v-4f6e4f8b] {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}
.mic-lang[data-v-4f6e4f8b] {
    flex: 0 0 auto;
    width: auto;
    padding: 7px 14px;
    border-radius: 9999px;
    border: 1px solid var(--cbm-hairline, #e7e3da);
    background: var(--cbm-surface, #fff);
    color: var(--cbm-muted, #8a8378);
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 13px;
    font-weight: 500;
    -webkit-tap-highlight-color: transparent;
}
.mic-lang.on[data-v-4f6e4f8b] {
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
    border-color: var(--cbm-ink-pill, #292524);
}
.mic-how[data-v-4f6e4f8b] {
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 16px;
    line-height: 1.5;
    color: var(--cbm-ink, #0c0a09);
    margin-bottom: 16px;
}
.mic-row-tag[data-v-4f6e4f8b] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cbm-muted, #8a8378);
    margin-bottom: 7px;
}
/* the formula chip — accented as a "math" surface */
.mic-math[data-v-4f6e4f8b] {
    background: var(--cbm-success-soft, rgba(22, 163, 74, 0.1));
    border: 1px solid var(--cbm-success-soft, rgba(22, 163, 74, 0.2));
    border-radius: 14px;
    padding: 12px 14px;
    margin-bottom: 14px;
}
.mic-math .mic-row-tag[data-v-4f6e4f8b] {
    color: var(--cbm-success, #16a34a);
}
.mic-math-body[data-v-4f6e4f8b] {
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--cbm-ink, #0c0a09);
}
.mic-src[data-v-4f6e4f8b] {
    margin-bottom: 14px;
}
.mic-src-body[data-v-4f6e4f8b] {
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 15px;
    line-height: 1.5;
    color: var(--cbm-body, #4e4e4e);
}
.mic-eg[data-v-4f6e4f8b] {
    background: var(--cbm-surface-strong, #f5f3ef);
    border: 1px solid var(--cbm-hairline, #e7e3da);
    border-radius: 16px;
    padding: 14px 16px;
}
.mic-eg-tag[data-v-4f6e4f8b] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cbm-warning, #d97706);
    margin-bottom: 7px;
}
.mic-eg-body[data-v-4f6e4f8b] {
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 15px;
    line-height: 1.5;
    color: var(--cbm-ink, #0c0a09);
}
.mic-cta[data-v-4f6e4f8b] {
    display: block;
    width: 100%;
    margin-top: 20px;
    padding: 14px;
    border: 0;
    border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
    font-family: var(--cbm-body-font, 'Inter', sans-serif);
    font-size: 15px;
    font-weight: 600;
    -webkit-tap-highlight-color: transparent;
}
.mic-cta[data-v-4f6e4f8b]:active {
    opacity: 0.85;
}

/* ── Login canvas ─────────────────────────────────────────────────────────── */
.cbm-login-page .page-content { display: flex;
}
.cbm-login {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: 100%;
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    /* top padding clears the fixed top-right controls (lang toggle + theme) so the
       logo/headline never sit under them. */
    padding: calc(44px + env(safe-area-inset-top)) 22px calc(14px + env(safe-area-inset-bottom));
}
.cbm-login-inner {
    position: relative;
    width: 100%;
    max-width: 400px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-align: center;
}
/* Soft focal bloom behind the hero copy — the brand's "background bloom behind copy". */
.cbm-login-inner::before {
    content: '';
    position: absolute;
    top: -56px;
    left: 50%;
    width: 360px;
    height: 360px;
    transform: translateX(-50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(200, 184, 224, 0.30), rgba(168, 200, 232, 0.16) 45%, transparent 68%);
    filter: blur(34px);
    z-index: -1;
    pointer-events: none;
}

/* Richer atmospheric orbs on the login — the signature pastel "color", all five stops. */
.cbm-login-page .cbm-orbs {
    background:
        radial-gradient(circle at 12% 8%, rgba(167, 229, 211, 0.30), transparent 42%),
        radial-gradient(circle at 90% 12%, rgba(244, 197, 168, 0.28), transparent 42%),
        radial-gradient(circle at 86% 90%, rgba(200, 184, 224, 0.26), transparent 46%),
        radial-gradient(circle at 8% 88%, rgba(168, 200, 232, 0.24), transparent 44%),
        radial-gradient(circle at 50% 64%, rgba(232, 184, 196, 0.12), transparent 55%);
    filter: blur(46px);
}
/* Logo — size by HEIGHT only (width auto) so the wordmark keeps its aspect ratio and
   never stretches; clamp scales it down on narrow phones. max-width:100% only guards
   overflow, it doesn't co-constrain the height. */
.cbm-login-logo {
    display: block;
    /* the inner column is align-items:stretch — without align-self the img stretches to
       full width and the wordmark distorts. center lets it size to its true aspect. */
    align-self: center;
    width: auto;
    /* ~30% smaller than before — the hero was oversized on real devices. */
    height: clamp(18px, 4.6vw, 22px);
    max-width: 100%;
    object-fit: contain;
    margin: 0 auto 11px;
}
/* Original ships ONE dark-ink logo — render it white on the dark canvas so it stays legible.
   White-label (.wl) uses its OWN dark logo asset, so don't invert it (keeps brand colours). */
html[data-theme='dark'] .cbm-login-logo:not(.wl) { filter: brightness(0) invert(1);
}

/* Top-right controls (language + light/dark), pinned to the viewport (the
   login-screen-content is vertically centered, so `fixed` — not `absolute` — keeps it at
   the true top). Scoped under .cbm-login-page so it out-specifies the toggle's own position. */
.cbm-login-page .cbm-login-controls {
    position: fixed;
    top: calc(env(safe-area-inset-top) + 14px);
    right: 16px;
    z-index: 50;
    display: flex;
    align-items: center;
    gap: 8px;
}
/* Language toggle — a 3-way glass segmented control (all options visible, divided). The
   active segment fills with the ink pill; inactive segments are muted with hairline dividers. */
.cbm-lang-seg {
    display: inline-flex;
    align-items: stretch;
    height: 34px;
    padding: 3px;
    border-radius: 9999px;
    background: var(--cbm-glass-bg, rgba(255, 255, 255, 0.62));
    -webkit-backdrop-filter: var(--cbm-glass-blur, blur(20px) saturate(1.6));
    backdrop-filter: var(--cbm-glass-blur, blur(20px) saturate(1.6));
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}
.cbm-login-page .cbm-lang-seg-btn {
    position: relative;
    width: auto;
    min-width: 36px;
    padding: 0 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: 9999px;
    font-family: var(--cbm-body-font);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.3px;
    line-height: 1;
    color: var(--cbm-muted, #777169);
    cursor: pointer;
    transition: color 200ms ease, background 200ms ease;
}
/* hairline divider between adjacent segments (sits in the 3px inset gutter) */
.cbm-login-page .cbm-lang-seg-btn + .cbm-lang-seg-btn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 15px;
    background: var(--cbm-hairline-strong, #d6d3d1);
}
/* the active segment + the one after it lose the divider so the pill reads clean */
.cbm-login-page .cbm-lang-seg-btn.on::before,
.cbm-login-page .cbm-lang-seg-btn.on + .cbm-lang-seg-btn::before { display: none;
}
.cbm-login-page .cbm-lang-seg-btn.on {
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
    box-shadow: 0 2px 8px rgba(12, 10, 9, 0.18);
}
.cbm-login-page .cbm-lang-seg-btn:active { transform: scale(0.96);
}
.cbm-login-head { text-align: center; margin: 0 0 14px;
}
/* Brand line — highlighted as a badge-pill (surface-strong plate, ink text,
   caption-uppercase) with a small pastel gradient-orb dot for brand voltage. */
.cbm-login-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 12px 5px 10px;
    border-radius: var(--cbm-radius-pill, 9999px);
    background: var(--cbm-surface-strong, #f0efed);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    font-family: var(--cbm-body-font);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    color: var(--cbm-ink, #0c0a09);
}
.cbm-login-eyebrow::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    flex-shrink: 0;
    background: radial-gradient(circle at 30% 30%, #a7e5d3, #a8c8e8 70%);
    box-shadow: 0 0 0 3px rgba(167, 229, 211, 0.18);
}

/* ── Auth card — frosted glass panel (reference look) ───────────────────────── */
.cbm-auth-card {
    margin-top: 4px;
    padding: 22px 20px;
    border-radius: var(--cbm-radius-lg, 16px);
    background: var(--cbm-glass-bg, rgba(255, 255, 255, 0.6));
    -webkit-backdrop-filter: var(--cbm-glass-blur, blur(24px) saturate(1.6));
    backdrop-filter: var(--cbm-glass-blur, blur(24px) saturate(1.6));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 10px 34px rgba(12, 10, 9, 0.08);
}
/* Big left-aligned EB Garamond heading — the photo's "Log into your account". */
.cbm-auth-title {
    margin: 0 0 16px;
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: clamp(22px, 6.4vw, 26px);
    line-height: 1.1;
    letter-spacing: -0.4px;
    color: var(--cbm-ink, #0c0a09);
    text-align: center;
    text-wrap: balance;
}
.cbm-login-error {
    margin: 0 0 16px;
    padding: 11px 14px;
    border-radius: var(--cbm-radius-md, 8px);
    background: rgba(220, 38, 38, 0.08);
    border: 1px solid rgba(220, 38, 38, 0.28);
    color: var(--cbm-error, #dc2626);
    font-family: var(--cbm-body-font);
    font-size: 14px;
    text-align: center;
}

/* ── Fields — underline style (reference look): transparent, bottom hairline only ── */
.cbm-login-form { display: flex; flex-direction: column; gap: 16px;
}
.cbm-field { display: flex; flex-direction: column; gap: 4px; text-align: left;
}
.cbm-field-head { display: flex; align-items: baseline; justify-content: flex-start; gap: 10px;
}
.cbm-field-label {
    font-family: var(--cbm-body-font);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.3px;
    color: var(--cbm-muted, #777169);
    padding-left: 0;
}
/* Forgot? — tertiary text link (F7 button reset forces width:100% → reset to auto). */
.cbm-login .cbm-forgot {
    width: auto;
    height: auto;
    padding: 0;
    background: transparent;
    border: none;
    font-family: var(--cbm-body-font);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.2px;
    color: var(--cbm-muted, #777169);
    cursor: pointer;
}
.cbm-login .cbm-forgot:active { opacity: 0.6;
}
.cbm-field-wrap { position: relative; display: flex; align-items: center;
}
/* Boxed text-input per the crudoimage guideline ({component.text-input}): surface card,
   rounded.md, 1px hairline-strong, 44–46px; on focus the border highlights to 2px primary
   (the 2nd px is an inset shadow so there's no reflow) + a soft focus ring. */
.cbm-login .cbm-input {
    width: 100%;
    height: 46px;
    box-sizing: border-box;
    padding: 0 42px 0 14px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px);
    background: var(--cbm-surface, #fff);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font);
    font-size: 16px;
    letter-spacing: 0.16px;
    line-height: 1.2;
    text-align: left;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: 0 1px 2px rgba(12, 10, 9, 0.04);
    transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}
.cbm-login .cbm-input::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.cbm-login .cbm-input:focus {
    border-color: var(--cbm-ink-pill, #292524);
    background: var(--cbm-surface, #fff);
    box-shadow: 0 0 0 1px var(--cbm-ink-pill, #292524) inset, 0 0 0 4px rgba(41, 37, 36, 0.10);
}
.cbm-input-eye,
.cbm-input-clear {
    position: absolute;
    right: 6px;
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    background: transparent;
    border: none;
    color: var(--cbm-muted, #777169);
    cursor: pointer;
    padding: 0;
}
.cbm-input-clear { color: var(--cbm-muted-soft, #a8a29e);
}

/* Remember me — custom checkbox (matches the reference's checked tile). */
.cbm-remember { display: flex; align-items: center; justify-content: flex-start; gap: 10px; margin-top: 2px; cursor: pointer; -webkit-user-select: none; user-select: none;
}
.cbm-remember input { position: absolute; opacity: 0; width: 0; height: 0;
}
.cbm-remember-box {
    width: 20px; height: 20px;
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-surface, #fff);
    color: transparent;
    transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}
.cbm-remember input:checked + .cbm-remember-box {
    background: var(--cbm-ink-pill, #292524);
    border-color: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
}
.cbm-remember-text {
    font-family: var(--cbm-body-font);
    font-size: 14px;
    letter-spacing: 0.1px;
    color: var(--cbm-body, #4e4e4e);
}

/* ── Buttons ──────────────────────────────────────────────────────────────── */
.cbm-login .cbm-btn {
    width: 100%;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: none;
    border-radius: var(--cbm-radius-pill, 9999px);
    font-family: var(--cbm-body-font);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.1px;
    cursor: pointer;
    transition: background 200ms ease, box-shadow 200ms ease, transform 120ms ease, opacity 160ms ease;
}
.cbm-login .cbm-btn:active { transform: scale(0.985);
}
.cbm-login .cbm-btn:disabled { opacity: 0.45; pointer-events: none;
}
.cbm-btn-primary {
    position: relative;
    overflow: hidden;
    margin-top: 8px;
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
    box-shadow: 0 8px 22px rgba(12, 10, 9, 0.20);
}
/* subtle top sheen — a premium glossed pill */
.cbm-btn-primary::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.14), transparent 58%);
    pointer-events: none;
}
.cbm-btn-primary:active { background: var(--cbm-ink-pill-active, #0c0a09);
}
/* on the bone dark-mode pill a white sheen is invisible — use a faint dark top edge */
html[data-theme='dark'] .cbm-btn-primary::after {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.06), transparent 58%);
}

/* "or" divider */
.cbm-login-or {
    display: flex; align-items: center; gap: 12px;
    margin: 12px 2px 10px;
    color: var(--cbm-muted-soft, #a8a29e);
    font-family: var(--cbm-body-font);
    font-size: 12.5px;
    letter-spacing: 0.4px;
    text-transform: lowercase;
}
.cbm-login-or::before,
.cbm-login-or::after { content: ''; flex: 1; height: 1px; background: var(--cbm-hairline, #e7e5e4);
}

/* secondary CTA — solid white pill (the reference's white button below the ink one) */
.cbm-btn-demo {
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1) !important;
    color: var(--cbm-ink, #0c0a09);
    box-shadow: 0 4px 14px rgba(12, 10, 9, 0.06);
}
.cbm-btn-demo:active { background: var(--cbm-surface-strong, #f0efed);
}
.cbm-btn-demo-lead { color: var(--cbm-muted, #777169);
}
.cbm-btn-demo-text { font-weight: 500;
}
.cbm-btn-demo-caret { color: var(--cbm-muted-soft, #a8a29e); margin-left: 2px;
}

/* Sign-up — tertiary text link (button-tertiary-text: muted prompt + ink link, no glass) */
.cbm-login-signup {
    margin: 12px 0 0;
    display: flex;
    align-items: baseline;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    font-family: var(--cbm-body-font);
    font-size: 13.5px;
    letter-spacing: 0.1px;
    color: var(--cbm-muted, #777169);
}
.cbm-login .cbm-signup-link {
    width: auto;
    height: auto;
    padding: 2px 2px;
    background: transparent;
    border: none;
    font-family: var(--cbm-body-font);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.1px;
    color: var(--cbm-ink, #0c0a09);
    -webkit-text-decoration: underline;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--cbm-hairline-strong, #d6d3d1);
    cursor: pointer;
}
.cbm-login .cbm-signup-link:active { opacity: 0.6;
}
.cbm-login .cbm-signup-link:disabled { opacity: 0.45; pointer-events: none;
}

/* ── Sign-up gate popup — premium glass card per crudoimage guideline ────────────
   In-popup language toggle (top-left) + close button (top-right); EB Garamond title;
   proceed = ink pill, the other = outline pill. */
.cbm-su-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(12, 10, 9, 0.45);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}
.cbm-su-card {
    width: 100%;
    max-width: 360px;
    border-radius: var(--cbm-radius-lg, 16px);
    background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.92));
    -webkit-backdrop-filter: var(--cbm-glass-blur, blur(24px) saturate(1.6));
    backdrop-filter: var(--cbm-glass-blur, blur(24px) saturate(1.6));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
    overflow: hidden;
}
.cbm-su-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 12px 0;
}
.cbm-login-page .cbm-su-close {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    border: none;
    color: var(--cbm-muted, #777169);
    cursor: pointer;
    flex-shrink: 0;
    transition: background 200ms ease, transform 120ms ease;
}
.cbm-su-close:active { transform: scale(0.94);
}
.cbm-su-body { padding: 14px 22px calc(22px + env(safe-area-inset-bottom));
}
.cbm-su-title {
    margin: 0 0 9px;
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: -0.2px;
    color: var(--cbm-ink, #0c0a09);
}
.cbm-su-text {
    margin: 0 0 18px;
    font-family: var(--cbm-body-font);
    font-size: 14.5px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.12px;
    color: var(--cbm-muted, #777169);
}
.cbm-su-actions { display: flex; flex-direction: column; gap: 10px;
}
.cbm-login-page .cbm-su-btn {
    width: 100%;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-pill, 9999px);
    background: transparent;
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.1px;
    line-height: 1;
    cursor: pointer;
    transition: background 200ms ease, transform 120ms ease, box-shadow 200ms ease;
}
.cbm-su-btn:active { transform: scale(0.985);
}
.cbm-login-page .cbm-su-btn.primary {
    border-color: transparent;
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-on-primary, #fff);
    font-weight: 600;
    box-shadow: 0 8px 22px rgba(12, 10, 9, 0.20);
}
.cbm-su-btn.primary:active { background: var(--cbm-ink-pill-active, #0c0a09);
}
.cbm-su-input {
    width: 100%;
    height: 48px;
    box-sizing: border-box;
    margin: 0 0 16px;
    padding: 0 16px;
    border-radius: var(--cbm-radius-md, 8px);
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font);
    font-size: 16px;
    letter-spacing: 0.16px;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color 160ms ease;
}
.cbm-su-input::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}
.cbm-su-input:focus { border-color: var(--cbm-ink-pill, #292524);
}

/* ── Interactive world map (hero) ────────────────────────────────────────────── */
.cbm-login-page .cbm-map {
    position: relative;
    display: block;
    /* ~30% smaller footprint (was full-width) — the hero felt oversized on device. */
    width: 78%;
    max-width: 300px;
    margin: 2px auto 11px;
    padding: 10px 12px 9px;
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-radius: var(--cbm-radius-xl, 18px);
    /* Signature gradient-orb atmosphere — three soft pastel blooms (sky · mint · lavender)
       drifting under a near-white canvas, plus a top sheen for glass depth. */
    background:
        radial-gradient(120% 80% at 50% -10%, rgba(255, 255, 255, 0.7), transparent 60%),
        radial-gradient(circle at 70% 30%, rgba(200, 184, 224, 0.22), transparent 58%),
        radial-gradient(circle at 24% 64%, rgba(167, 229, 211, 0.18), transparent 55%),
        radial-gradient(circle at 20% 22%, rgba(168, 200, 232, 0.20), transparent 56%),
        var(--cbm-canvas-soft, #fafafa);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        0 6px 22px rgba(12, 10, 9, 0.05);
    overflow: hidden;
    cursor: pointer;
    transition: border-color 200ms ease, transform 140ms ease, box-shadow 240ms ease;
}
.cbm-login-page .cbm-map:active { transform: scale(0.99);
}
.cbm-login-page .cbm-map:hover {
    border-color: var(--cbm-hairline-strong, #d6d3d1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 10px 30px rgba(12, 10, 9, 0.09);
}
.cbm-map-svg { display: block; width: 100%; height: auto;
}
.cbm-map-dot { fill: var(--cbm-muted, #777169); opacity: 0.28;
}
.cbm-map-land path { fill: url(#cbmMapDots);
}
/* Thin, soft connection arcs — finer dash + lower opacity for an elegant, premium trace. */
.cbm-map-arc { fill: none; stroke: var(--cbm-ink, #0c0a09); stroke-width: 1.1; opacity: 0.18; stroke-dasharray: 2 6; stroke-linecap: round;
}
/* Beacon nodes — a crisp ink dot inside a soft glowing halo (a premium "presence" marker). */
.cbm-map-node { fill: var(--cbm-ink, #0c0a09);
}
.cbm-map-halo { fill: var(--cbm-ink, #0c0a09); opacity: 0.10;
}
.cbm-map-ripple {
    fill: none;
    stroke: var(--cbm-ink, #0c0a09);
    stroke-width: 2.5;
    r: 6px;
    animation: cbmMapRipple 2.4s ease-out infinite;
}
.cbm-map-ripple2 { animation-delay: 1.2s;
}
@keyframes cbmMapRipple {
0%   { r: 6px;  opacity: 0.6;
}
70%  { opacity: 0;
}
100% { r: 40px; opacity: 0;
}
}
.cbm-map-hint {
    position: absolute;
    right: 12px;
    bottom: 10px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 11px;
    border-radius: 9999px;
    background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.92));
    -webkit-backdrop-filter: var(--cbm-glass-blur, blur(20px) saturate(1.6));
    backdrop-filter: var(--cbm-glass-blur, blur(20px) saturate(1.6));
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
    font-family: var(--cbm-body-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.2px;
    color: var(--cbm-ink, #0c0a09);
}
.cbm-map-tap {
    width: 9px;
    height: 9px;
    border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524);
    animation: cbmTapPulse 2s ease-out infinite;
}
@keyframes cbmTapPulse {
0%   { box-shadow: 0 0 0 0 rgba(120, 113, 108, 0.45);
}
70%  { box-shadow: 0 0 0 8px rgba(120, 113, 108, 0);
}
100% { box-shadow: 0 0 0 0 rgba(120, 113, 108, 0);
}
}

/* ── Markets popup — density bars (colour intensity = share) + label beside ───── */
.cbm-mk-card { max-width: 380px;
}
.cbm-mk-top { align-items: flex-start;
}
.cbm-mk-head { padding-top: 2px;
}
.cbm-mk-sub {
    margin: 3px 0 0;
    font-family: var(--cbm-body-font);
    font-size: 13px;
    letter-spacing: 0.1px;
    color: var(--cbm-muted, #777169);
}
.cbm-mk-body { padding-top: 4px;
}

/* Donut chart — ink slices (length = share, opacity = density) + live centre figure. */
.cbm-dn-wrap { display: flex; justify-content: center; padding: 4px 0 14px;
}
.cbm-dn { position: relative; width: 184px; height: 184px;
}
.cbm-dn-svg {
    width: 100%;
    height: 100%;
    display: block;
    transform-origin: center;
    animation: cbmDonutIn 0.6s cubic-bezier(.2, .7, .2, 1);
}
.cbm-dn-track { stroke: var(--cbm-surface-strong, #f0efed); stroke-width: 15px;
}
.cbm-dn-seg {
    stroke: var(--cbm-ink, #0c0a09);
    stroke-width: 15px;
    stroke-linecap: round;
    cursor: pointer;
    transition: opacity 200ms ease, stroke-width 200ms ease;
}
.cbm-dn-seg.sel { stroke-width: 21px;
}
.cbm-dn-center {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    text-align: center;
    padding: 0 26px;
}
.cbm-dn-pct {
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 32px;
    line-height: 1;
    color: var(--cbm-ink, #0c0a09);
    font-variant-numeric: tabular-nums;
}
.cbm-dn-pct i { font-style: normal; font-size: 17px; color: var(--cbm-muted, #777169); margin-left: 1px;
}
.cbm-dn-name {
    margin-top: 5px;
    font-family: var(--cbm-body-font);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--cbm-muted, #777169);
}
@keyframes cbmDonutIn {
from { opacity: 0; transform: scale(0.85) rotate(-14deg);
}
to   { opacity: 1; transform: scale(1) rotate(0);
}
}

/* Interactive legend rows (buttons) */
.cbm-login-page .cbm-mk-row {
    width: 100%;
    display: block;
    text-align: left;
    background: transparent;
    border: none;
    border-radius: 10px;
    padding: 9px 8px;
    cursor: pointer;
    transition: background 180ms ease;
}
.cbm-mk-row + .cbm-mk-row { box-shadow: 0 -1px 0 var(--cbm-hairline, #e7e5e4);
}
.cbm-mk-row.sel { background: var(--cbm-surface-strong, #f0efed);
}
.cbm-mk-row.sel + .cbm-mk-row, .cbm-mk-row.sel { box-shadow: none;
}
.cbm-mk-rowhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px;
}
.cbm-mk-name {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--cbm-body-font);
    font-size: 14.5px;
    font-weight: 500;
    color: var(--cbm-ink, #0c0a09);
}
.cbm-mk-swatch {
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background: var(--cbm-ink, #0c0a09);
    flex-shrink: 0;
}
.cbm-mk-pct {
    font-family: var(--cbm-body-font);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--cbm-body, #4e4e4e);
    font-variant-numeric: tabular-nums;
}
.cbm-mk-track {
    width: 100%;
    height: 8px;
    border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    overflow: hidden;
}
.cbm-mk-fill {
    display: block;
    height: 100%;
    border-radius: 9999px;
    background: var(--cbm-ink, #0c0a09);
    transition: width 520ms cubic-bezier(.4, 0, .2, 1);
}
.cbm-su-card { animation: cbmPopIn 0.22s cubic-bezier(.4, 0, .2, 1);
}
@keyframes cbmPopIn {
from { opacity: 0; transform: translateY(8px) scale(0.985);
}
to   { opacity: 1; transform: translateY(0) scale(1);
}
}

/* reassurance footer micro-line */
.cbm-login-foot {
    margin: 10px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: var(--cbm-body-font);
    font-size: 12px;
    letter-spacing: 0.2px;
    color: var(--cbm-muted-soft, #a8a29e);
}
.cbm-login-foot i { color: var(--cbm-muted-soft, #a8a29e);
}

/* ── Demo picker sheet (glass; grip → title → options → search at BOTTOM) ────── */
.cbm-demo-sheet { height: auto; background: transparent; --f7-sheet-bg-color: transparent;
}
.cbm-demo-in {
    border-radius: 22px 22px 0 0;
    background: var(--cbm-glass-bg-strong, rgba(255, 255, 255, 0.92));
    -webkit-backdrop-filter: var(--cbm-glass-blur, blur(22px) saturate(1.5));
    backdrop-filter: var(--cbm-glass-blur, blur(22px) saturate(1.5));
    border-top: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.16);
    padding: 10px 18px calc(16px + env(safe-area-inset-bottom));
    display: flex;
    flex-direction: column;
}
.cbm-demo-grip {
    width: 38px; height: 4px; border-radius: 9999px;
    background: var(--cbm-hairline-strong, #d6d3d1);
    margin: 4px auto 12px;
}
.cbm-demo-title {
    font-family: var(--cbm-display-font);
    font-weight: 300;
    font-size: 24px;
    letter-spacing: 0;
    color: var(--cbm-ink, #0c0a09);
    padding: 0 2px;
}
.cbm-demo-subtitle {
    margin: 4px 2px 12px;
    font-family: var(--cbm-body-font);
    font-size: 13.5px;
    color: var(--cbm-muted, #777169);
    letter-spacing: 0.1px;
}
.cbm-demo-list { max-height: 46vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.cbm-demo-row {
    width: 100%;
    min-height: 60px;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 11px 4px;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--cbm-hairline, #e7e5e4);
    text-align: left;
    cursor: pointer;
}
.cbm-demo-row:last-child { border-bottom: none;
}
.cbm-demo-row.off { opacity: 0.55; cursor: default;
}

/* Workspace picker (multi-company) */
.cbm-ws-eyebrow { display: inline-flex; align-items: center; gap: 6px; font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.9px; text-transform: uppercase; color: var(--cbm-muted, #777169); margin-bottom: 6px;
}
.cbm-ws-eyebrow .icon { color: var(--cbm-ink, #0c0a09);
}
.cbm-ws-logo { flex-shrink: 0; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border-radius: 12px; overflow: hidden; background: var(--cbm-surface-strong, #f0efed); color: var(--cbm-ink, #0c0a09);
}
.cbm-ws-logo img { width: 100%; height: 100%; object-fit: cover;
}
.cbm-ws-initial { font-family: var(--cbm-display-font); font-weight: 400; font-size: 20px;
}
.cbm-ws-current { font-size: 10px; font-weight: 600; letter-spacing: 0.6px; text-transform: uppercase; padding: 2px 7px; border-radius: 9999px; background: var(--cbm-ink, #0c0a09); color: var(--cbm-on-primary, #fff);
}
.cbm-demo-ic {
    flex-shrink: 0;
    width: 42px; height: 42px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-ink, #0c0a09);
}
.cbm-demo-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
}
.cbm-demo-name {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--cbm-body-font);
    font-size: 16px; font-weight: 600;
    color: var(--cbm-ink, #0c0a09);
}
.cbm-demo-soon {
    font-size: 10px; font-weight: 600; letter-spacing: 0.6px; text-transform: uppercase;
    padding: 2px 7px; border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-muted, #777169);
}
.cbm-demo-tag {
    font-family: var(--cbm-body-font);
    font-size: 13px;
    color: var(--cbm-muted, #777169);
    letter-spacing: 0.1px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cbm-demo-go { color: var(--cbm-muted-soft, #a8a29e); flex-shrink: 0;
}
.cbm-demo-empty {
    padding: 22px 4px;
    text-align: center;
    color: var(--cbm-muted, #777169);
    font-family: var(--cbm-body-font);
    font-size: 14px;
}
.cbm-demo-search {
    margin-top: 12px;
    display: flex; align-items: center; gap: 9px;
    height: 46px;
    padding: 0 14px;
    border-radius: var(--cbm-radius-md, 8px);
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    color: var(--cbm-muted, #777169);
}
.cbm-demo-search input {
    flex: 1;
    border: none; outline: none; background: transparent;
    font-family: var(--cbm-body-font);
    font-size: 15px;
    color: var(--cbm-ink, #0c0a09);
}
.cbm-demo-search input::placeholder { color: var(--cbm-muted-soft, #a8a29e);
}

/* Glass fallbacks (brand requirement) */
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.cbm-demo-in { background: var(--cbm-surface, #fff);
}
.cbm-lang-seg, .cbm-su-card, .cbm-map-hint, .cbm-auth-card { background: var(--cbm-surface, #fff);
}
.cbm-su-overlay { background: rgba(12, 10, 9, 0.55);
}
}
@media (prefers-reduced-transparency: reduce) {
.cbm-demo-in,
    .cbm-lang-seg, .cbm-su-card, .cbm-map-hint, .cbm-auth-card { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--cbm-surface, #fff);
}
.cbm-su-overlay { backdrop-filter: none; -webkit-backdrop-filter: none;
}
}
@media (prefers-reduced-motion: reduce) {
.cbm-lang-seg-btn, .cbm-su-btn, .cbm-su-close, .cbm-mk-fill, .cbm-dn-seg, .cbm-mk-row, .cbm-map { transition: none;
}
.cbm-su-card, .cbm-dn-svg, .cbm-map-ripple, .cbm-map-tap { animation: none;
}
}

/* Hands-on training guidance banner — fixed just under the navbar, follows the
   user onto the real create screen. Below modals so dialogs/sheets cover it. */
.handson-coach {
    position: fixed;
    top: calc(var(--f7-safe-area-top, 0px) + 52px);
    left: 10px;
    right: 10px;
    z-index: 6500;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 12px 12px 14px;
    background: var(--cbm-surface, #ffffff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    border-left: 3px solid var(--cbm-mint, #a7e5d3);
    border-radius: var(--cbm-radius-lg, 12px);
    box-shadow: 0 8px 24px rgba(12, 10, 9, 0.12);
}
.handson-coach-orb {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    margin-top: 5px;
    border-radius: 9999px;
    background: var(--cbm-mint, #a7e5d3);
}
.handson-coach-body { flex: 1; min-width: 0;
}
.handson-coach-title {
    font-family: var(--cbm-body-font);
    font-weight: 600;
    font-size: 14px;
    color: var(--cbm-ink, #0c0a09);
    margin-bottom: 2px;
}
.handson-coach-text {
    font-family: var(--cbm-body-font);
    font-size: 13px;
    line-height: 1.45;
    color: var(--cbm-body, #44403c);
}
.handson-coach-close {
    flex: 0 0 auto;
    color: var(--cbm-muted, #777169);
    padding: 2px;
}

/* Global quick-access messaging button — present on every screen (bottom-right),
   lifted above the tab bar / bottom controls so it doesn't sit on page create-FABs.
   z-index below F7 modals so any open popup/sheet/dialog covers it. */
/* Primary Quick-Add button — ink pill, lowest thumb-reach (bottom of the right stack). */
.global-add-fab {
    position: fixed;
    right: 16px;
    bottom: calc(132px + var(--f7-safe-area-bottom, 0px));
    z-index: 6000;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-ink-pill, #292524);
    color: var(--cbm-surface, #ffffff);
    box-shadow: 0 8px 22px rgba(12, 10, 9, 0.28);
    cursor: pointer;
}
.global-add-fab i {
    font-size: 26px;
}
.global-add-fab:active {
    background: var(--cbm-ink-pill-active, #0c0a09);
    transform: scale(0.95);
}
.global-msg-fab {
    position: fixed;
    right: 19px;
    /* Stacks above the Quick-Add button */
    bottom: calc(200px + var(--f7-safe-area-bottom, 0px));
    /* Above the F7 views (z-index 5000) but below modals (popups/sheets ~11000+),
       so any open popup/sheet/dialog still covers it. */
    z-index: 6000;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: #00a884; /* messaging green */
    color: var(--cbm-surface, #ffffff);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
    cursor: pointer;
}
.global-msg-fab i {
    font-size: 23px;
}
.global-msg-fab:active {
    background: #019071;
    transform: scale(0.95);
}
/* Global thumb-reach back button — bottom-left, mirrors the message FAB. */
.global-back-fab {
    position: fixed;
    left: 16px;
    bottom: calc(132px + var(--f7-safe-area-bottom, 0px));
    z-index: 6000;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface, #ffffff);
    color: var(--cbm-ink, #0c0a09);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.16);
    cursor: pointer;
}
.global-back-fab i {
    font-size: 22px;
}
.global-back-fab:active {
    background: var(--cbm-surface-strong, #f0efed);
    transform: scale(0.95);
}
.global-msg-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-error, #dc2626); /* red */
    color: var(--cbm-surface, #ffffff);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    border: 2px solid var(--cbm-canvas, #f5f5f5); /* ring against the canvas */
}

/* Global notification bell — top-right header position on every screen. */
.global-notif-bell {
    position: fixed;
    top: calc(10px + var(--f7-safe-area-top, 0px));
    right: 14px;
    z-index: 6000;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-surface, #ffffff);
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    color: var(--cbm-ink, #0c0a09);
    box-shadow: 0 4px 14px rgba(12, 10, 9, 0.1);
    cursor: pointer;
}
.global-notif-bell i {
    font-size: 20px;
}
.global-notif-bell:active {
    background: var(--cbm-surface-strong, #f0efed);
    transform: scale(0.94);
}
.global-notif-badge {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--cbm-error, #dc2626);
    color: var(--cbm-surface, #ffffff);
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    border: 2px solid var(--cbm-canvas, #f5f5f5);
}

/* ── Shared brand field trigger (date + time) ─────────────────────────────── */
/* Used inside an <f7-list> wrapped in a raw <li class="cbm-li"> (f7-list only
   keeps <li>/f7-list-* children inside its <ul>), or standalone as a block. */
.cbm-li { list-style: none;
}
.cbm-li::before, .cbm-li::after { display: none;
} /* kill F7 list item dividers */
.cbm-field { display: block; padding: 8px 16px 4px;
}
.cbm-field-label {
    font-family: var(--cbm-body-font); font-size: 12px; font-weight: 600;
    letter-spacing: 0.4px; color: var(--cbm-muted, #777169); margin: 0 2px 6px;
}
.cbm-field-req .cbm-field-label::after { content: ' *'; color: var(--cbm-error, #dc2626);
}
.cbm-field-trigger {
    width: 100%; display: flex; align-items: center; gap: 10px;
    height: 46px; padding: 0 12px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px);
    color: var(--cbm-ink, #0c0a09); cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 15px; letter-spacing: 0.15px;
    transition: border-color 160ms cubic-bezier(.4, 0, .2, 1);
}
.cbm-field-trigger:active { border-color: var(--cbm-ink, #0c0a09);
}
.cbm-field-trigger.is-empty .cbm-field-val { color: var(--cbm-muted-soft, #a8a29e);
}
.cbm-field-ic { color: var(--cbm-muted, #777169); flex: 0 0 auto;
}
.cbm-field-val { flex: 1; min-width: 0; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cbm-field-caret { color: var(--cbm-muted-soft, #a8a29e); flex: 0 0 auto;
}

/* ── Glass picker sheet (shared) ──────────────────────────────────────────── */
.cbm-pick-sheet { --f7-sheet-bg-color: transparent; background: transparent; border-radius: 24px 24px 0 0; overflow: visible;
}
.cbm-pick {
    border-radius: 24px 24px 0 0;
    padding: 10px 16px calc(16px + env(safe-area-inset-bottom));
    background: var(--cbm-glass-bg-strong, rgba(245, 245, 245, 0.92));
    border: 1px solid var(--cbm-hairline, #e7e5e4); border-bottom: 0;
    box-shadow: 0 -8px 30px rgba(12, 10, 9, 0.10);
}
.cbm-pick-grip { display: block; width: 38px; height: 4px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); margin: 2px auto 12px;
}

/* Calendar header */
.cbm-cal-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px;
}
.cbm-cal-nav {
    flex: 0 0 auto; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1); border-radius: 9999px;
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); cursor: pointer;
}
.cbm-cal-nav:active { background: var(--cbm-surface-strong, #f0efed);
}
.cbm-cal-title {
    flex: 1; height: 40px; border: 0; background: transparent; cursor: pointer;
    font-family: var(--cbm-display-font); font-weight: 300; font-size: 19px; letter-spacing: -0.2px;
    color: var(--cbm-ink, #0c0a09);
}
.cbm-cal-title:active { opacity: 0.6;
}

/* Day grid */
.cbm-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
}
.cbm-cal-dow {
    text-align: center; font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600;
    letter-spacing: 0.4px; color: var(--cbm-muted-soft, #a8a29e); padding: 4px 0 8px;
}
.cbm-cal-day {
    aspect-ratio: 1 / 1; min-width: 0; display: flex; align-items: center; justify-content: center;
    border: 0; background: transparent; border-radius: 9999px; cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 14.5px; color: var(--cbm-ink, #0c0a09);
}
.cbm-cal-day.is-out { color: var(--cbm-muted-soft, #a8a29e); opacity: 0.5;
}
.cbm-cal-day.is-today { box-shadow: inset 0 0 0 1px var(--cbm-hairline-strong, #d6d3d1);
}
.cbm-cal-day.is-sel { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); font-weight: 600;
}
.cbm-cal-day:active:not(.is-sel) { background: var(--cbm-surface-strong, #f0efed);
}

/* Month / Year grids */
.cbm-cal-months, .cbm-cal-years { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
}
.cbm-cal-years { max-height: 46vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
}
.cbm-cal-cell {
    height: 52px; min-width: 0; display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: var(--cbm-radius-lg, 12px);
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 15px;
}
.cbm-cal-cell:active { background: var(--cbm-surface-strong, #f0efed);
}
.cbm-cal-cell.is-sel { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border-color: var(--cbm-ink-pill, #292524); font-weight: 600;
}

/* Shortcuts */
.cbm-pick-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px;
}
.cbm-pick-ghost {
    height: 40px; padding: 0 18px; border-radius: 9999px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1); background: transparent;
    color: var(--cbm-ink, #0c0a09); cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 500;
}
.cbm-pick-ghost:active { background: var(--cbm-surface-strong, #f0efed);
}

/* Glass fallbacks (brand-required). */
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.cbm-pick { background: var(--cbm-glass-bg-strong);
}
}
@media (prefers-reduced-transparency: reduce) {
.cbm-pick { background: var(--cbm-canvas-soft, #fafafa); backdrop-filter: none; -webkit-backdrop-filter: none;
}
}
@media (prefers-reduced-motion: reduce) {
.cbm-field-trigger, .cbm-cal-day { transition: none;
}
}

/* Field trigger + glass sheet shells are shared with cbm-date-field. */
.cbm-time-readout {
    text-align: center; font-family: var(--cbm-display-font); font-weight: 300;
    font-size: 40px; letter-spacing: -0.5px; color: var(--cbm-ink, #0c0a09);
    padding: 2px 0 12px;
}
.cbm-time-colon { padding: 0 2px; opacity: 0.5;
}
.cbm-time-ampm-lg { font-size: 18px; margin-left: 8px; color: var(--cbm-muted, #777169);
}
.cbm-time-seg {
    display: flex; gap: 6px; padding: 4px; margin-bottom: 12px;
    background: var(--cbm-surface-strong, #f0efed); border-radius: 9999px;
}
.cbm-time-seg button {
    flex: 1; height: 38px; border: 0; border-radius: 9999px; background: transparent; cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; letter-spacing: 0.4px;
    color: var(--cbm-muted, #777169);
}
.cbm-time-seg button.is-on { background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); box-shadow: var(--cbm-shadow-soft, 0 4px 16px rgba(0,0,0,0.04));
}
.cbm-time-cap {
    font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600; letter-spacing: 0.6px;
    text-transform: uppercase; color: var(--cbm-muted-soft, #a8a29e); margin: 6px 2px 8px;
}
.cbm-time-grid { display: grid; gap: 6px;
}
.cbm-time-hours { grid-template-columns: repeat(6, 1fr);
}
.cbm-time-mins { grid-template-columns: repeat(6, 1fr);
}
.cbm-time-cell {
    height: 44px; min-width: 0; display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--cbm-hairline, #e7e5e4); border-radius: var(--cbm-radius-md, 8px);
    background: var(--cbm-surface, #fff); color: var(--cbm-ink, #0c0a09); cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 15px;
}
.cbm-time-cell:active { background: var(--cbm-surface-strong, #f0efed);
}
.cbm-time-cell.is-sel { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); border-color: var(--cbm-ink-pill, #292524); font-weight: 600;
}
.cbm-pick-set {
    height: 40px; padding: 0 24px; border-radius: 9999px; border: 0;
    background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff); cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 500;
}
.cbm-pick-set:active { background: var(--cbm-ink-pill-active, #0c0a09);
}

.cbm-loader {
    position: absolute; inset: 0; z-index: 200;
    display: flex; align-items: center; justify-content: center;
    padding: 24px;
}
.cbm-loader:not(.cbm-loader-inline) { position: fixed; z-index: 14000;
}
.cbm-loader-card {
    display: flex; flex-direction: column; align-items: center; gap: 14px;
    min-width: 168px; max-width: 78%;
    padding: 26px 28px;
    border-radius: var(--cbm-radius-xl, 16px);
    background: var(--cbm-glass-bg-strong, rgba(245, 245, 245, 0.86));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    backdrop-filter: var(--cbm-glass-blur, saturate(180%) blur(22px));
    border: 1px solid var(--cbm-hairline, #e7e5e4);
    box-shadow: 0 12px 40px rgba(12, 10, 9, 0.14);
}
/* Signature drifting pastel orb (matches the AI presence orb). */
.cbm-loader-orb {
    width: 46px; height: 46px; border-radius: 9999px;
    background: conic-gradient(from 210deg, #bfe9db, #bcd6ef, #d6c7ea, #f1d0c4, #bfe9db);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55);
    -webkit-mask: radial-gradient(circle at center, transparent 38%, #000 41%);
            mask: radial-gradient(circle at center, transparent 38%, #000 41%);
    animation: cbmLoaderSpin 1.1s linear infinite;
}
@keyframes cbmLoaderSpin {
to { transform: rotate(360deg);
}
}
.cbm-loader-rows { display: flex; flex-direction: column; gap: 8px; width: 100%;
}
.cbm-loader-row {
    height: 10px; border-radius: 9999px; width: 100%;
    background: linear-gradient(100deg, var(--cbm-hairline, #e7e5e4) 30%, var(--cbm-hairline-soft, #f0efed) 50%, var(--cbm-hairline, #e7e5e4) 70%);
    background-size: 200% 100%;
    animation: cbmLoaderShimmer 1.3s ease-in-out infinite;
}
.cbm-loader-row.short { width: 60%;
}
@keyframes cbmLoaderShimmer {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
.cbm-loader-label {
    font-family: var(--cbm-body-font); font-size: 13px; font-weight: 500; letter-spacing: 0.2px;
    color: var(--cbm-muted, #777169);
}
.cbm-load-fade-enter-active, .cbm-load-fade-leave-active { transition: opacity 180ms ease;
}
.cbm-load-fade-enter-from, .cbm-load-fade-leave-to { opacity: 0;
}
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.cbm-loader-card { background: var(--cbm-glass-bg-strong);
}
}
@media (prefers-reduced-transparency: reduce) {
.cbm-loader-card { background: var(--cbm-canvas-soft, #fafafa); backdrop-filter: none; -webkit-backdrop-filter: none;
}
}
@media (prefers-reduced-motion: reduce) {
.cbm-loader-orb, .cbm-loader-row { animation: none;
}
}

.cof { margin: 10px 16px 4px;
}
.cof-header {
    width: 100%;
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    height: 48px; padding: 0 14px;
    border-radius: var(--cbm-radius-lg, 12px);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-glass-bg, rgba(255, 255, 255, 0.6));
    -webkit-backdrop-filter: var(--cbm-glass-blur, saturate(160%) blur(18px));
    backdrop-filter: var(--cbm-glass-blur, saturate(160%) blur(18px));
    color: var(--cbm-ink, #0c0a09);
    cursor: pointer;
    transition: border-color 160ms cubic-bezier(.4, 0, .2, 1);
}
.cof-header:active { background: var(--cbm-surface-strong, #f0efed);
}
.cof-header.open { border-color: var(--cbm-ink, #0c0a09);
}
.cof-lead { display: inline-flex; align-items: center; gap: 9px; min-width: 0;
}
.cof-ic { color: var(--cbm-muted, #777169); flex: 0 0 auto;
}
.cof-label {
    font-family: var(--cbm-body-font); font-size: 14px; font-weight: 600; letter-spacing: 0.2px;
    color: var(--cbm-ink, #0c0a09); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cof-count {
    flex: 0 0 auto; min-width: 18px; height: 18px; padding: 0 6px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 9999px; background: var(--cbm-surface-strong, #f0efed);
    color: var(--cbm-muted, #777169); font-family: var(--cbm-body-font); font-size: 11px; font-weight: 600;
}
.cof-caret { color: var(--cbm-muted, #777169); flex: 0 0 auto; transition: transform 0.2s ease;
}
.cof-header.open .cof-caret { transform: rotate(180deg);
}
.cof-body { padding-top: 4px;
}

/* Glass fallbacks (brand-required). */
@supports not (((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px))) {
.cof-header { background: var(--cbm-glass-bg-strong);
}
}
@media (prefers-reduced-transparency: reduce) {
.cof-header { background: var(--cbm-canvas-soft, #fafafa); backdrop-filter: none; -webkit-backdrop-filter: none;
}
}
@media (prefers-reduced-motion: reduce) {
.cof-header, .cof-caret { transition: none;
}
}

.cff {
    margin: 12px 0 4px;
    background: var(--cbm-surface, #fff);
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-lg, 12px);
    overflow: hidden;
}
.cff-switch-row {
    width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px;
    height: 50px; padding: 0 14px; background: transparent; border: 0; cursor: pointer; color: var(--cbm-ink, #0c0a09);
}
.cff-sub { height: 46px;
}
.cff-lead { display: inline-flex; align-items: center; gap: 9px; font-family: var(--cbm-body-font); font-size: 15px; font-weight: 500; letter-spacing: 0.15px;
}
.cff-lead .icon { color: var(--cbm-muted, #777169);
}
.cff-switch { flex: 0 0 auto; width: 44px; height: 26px; border-radius: 9999px; background: var(--cbm-hairline-strong, #d6d3d1); position: relative; transition: background 180ms ease;
}
.cff-switch.on { background: var(--cbm-ink-pill, #292524);
}
.cff-knob { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 9999px; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); transition: transform 180ms ease;
}
.cff-switch.on .cff-knob { transform: translateX(18px);
}
.cff-body { border-top: 1px solid var(--cbm-hairline, #e7e5e4); padding: 6px 0 8px;
}
.cff-body .cff-sub { border-top: 1px solid var(--cbm-hairline, #e7e5e4);
}
.cff-remind-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 8px 14px 12px;
}
.cff-word { font-family: var(--cbm-body-font); font-size: 15px; color: var(--cbm-body, #4e4e4e); letter-spacing: 0.15px;
}
.cff-num {
    width: 56px; height: 38px; text-align: center; box-sizing: border-box;
    background: var(--cbm-canvas-soft, #fafafa); border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    border-radius: var(--cbm-radius-md, 8px); color: var(--cbm-ink, #0c0a09);
    font-family: var(--cbm-body-font); font-size: 16px; font-weight: 600;
}
.cff-num:focus { outline: none; border-color: var(--cbm-ink, #0c0a09);
}
.cff-seg { display: inline-flex; gap: 4px; padding: 3px; background: var(--cbm-surface-strong, #f0efed); border-radius: 9999px;
}
.cff-seg button {
    width: auto; height: 32px; padding: 0 12px; border: 0; border-radius: 9999px; background: transparent; cursor: pointer;
    font-family: var(--cbm-body-font); font-size: 13px; font-weight: 600; color: var(--cbm-muted, #777169);
}
.cff-seg button.on { background: var(--cbm-ink-pill, #292524); color: var(--cbm-on-primary, #fff);
}
@media (prefers-reduced-motion: reduce) {
.cff-switch, .cff-knob { transition: none;
}
}

.cbm-theme-toggle {
    position: relative;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    /* 44px tap target without growing the visual chip. */
    margin: 0;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    border: 1px solid var(--cbm-hairline-strong, #d6d3d1);
    background: var(--cbm-surface, #fff);
    color: var(--cbm-ink, #0c0a09);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 240ms cubic-bezier(0.4, 0, 0.2, 1),
        border-color 240ms cubic-bezier(0.4, 0, 0.2, 1),
        transform 240ms cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 240ms cubic-bezier(0.4, 0, 0.2, 1);
}
.cbm-theme-toggle::after {
    /* Invisible 44px hit area, centred — WCAG touch target. */
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 44px;
    height: 44px;
    transform: translate(-50%, -50%);
}
.cbm-theme-toggle:hover {
    border-color: var(--cbm-ink-pill, #292524);
    box-shadow: 0 0 0 4px rgba(168, 162, 158, 0.16);
}
.cbm-theme-toggle:active {
    transform: scale(0.92);
}
.cbm-theme-toggle:focus-visible {
    outline: 2px solid var(--cbm-focus-ring, var(--cbm-ink, #0c0a09));
    outline-offset: 2px;
}

/* Soft brand glow behind the glyph — warms on hover, brightens in dark. */
.ctt-glow {
    position: absolute;
    inset: 0;
    border-radius: 9999px;
    background: radial-gradient(circle at center, rgba(244, 197, 168, 0.35), transparent 68%);
    opacity: 0;
    transition: opacity 320ms ease;
    pointer-events: none;
}
.cbm-theme-toggle:hover .ctt-glow {
    opacity: 1;
}
.cbm-theme-toggle.is-dark .ctt-glow {
    background: radial-gradient(circle at center, rgba(168, 200, 232, 0.32), transparent 68%);
}
.ctt-svg {
    position: relative;
    width: 19px;
    height: 19px;
    overflow: visible;
}
.ctt-core {
    fill: currentColor;
    /* Sun is a full disc; dark shrinks it slightly so the crescent reads as a moon. */
    transform-origin: center;
    transition: transform 420ms cubic-bezier(0.4, 0, 0.2, 1);
}
.cbm-theme-toggle.is-dark .ctt-core {
    transform: scale(1.06);
}
/* The mask circle slides over the disc to carve the crescent. */
.ctt-cut {
    transform: translate(0, 0);
    transition: transform 420ms cubic-bezier(0.5, 0, 0.2, 1);
}
.cbm-theme-toggle.is-dark .ctt-cut {
    transform: translate(-8px, 5px);
}

/* Rays: present for the sun, retract + fade for the moon. */
.ctt-rays {
    stroke: currentColor;
    transform-origin: center;
    transition: transform 420ms cubic-bezier(0.4, 0, 0.2, 1), opacity 300ms ease;
}
.ctt-rays line {
    transform-origin: center;
    transition: transform 420ms cubic-bezier(0.4, 0, 0.2, 1);
}
.cbm-theme-toggle.is-dark .ctt-rays {
    opacity: 0;
    transform: rotate(40deg) scale(0.4);
}
@media (prefers-reduced-motion: reduce) {
.cbm-theme-toggle,
    .ctt-core,
    .ctt-cut,
    .ctt-rays,
    .ctt-rays line,
    .ctt-glow {
        transition: none !important;
}
}

/* A calm muted "explain" chip — matched to the calc sign so the pair reads as one quiet
   affordance, never a flashing beacon (crudoimage restraint; reduce simultaneous density). */
.mis-info-dot[data-v-4dd0b513] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    margin: 0 2px 0 8px;
    border: 0;
    border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    vertical-align: middle;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 160ms ease;
}
/* Corner mode sits this sign to the LEFT of the calculator sign so the two never overlap.
   Calc stays at right:10px; this sits one chip + gap further in (10 + 22 + 8 ≈ 40px). */
.mis-info-dot.corner[data-v-4dd0b513] {
    position: absolute;
    top: 9px;
    right: 40px;
    margin: 0;
    z-index: 2;
}
.mis-info-ar[data-v-4dd0b513] {
    display: block;
    color: var(--cbm-muted, #777169);
}
.mis-info-dot[data-v-4dd0b513]:active {
    background: var(--cbm-hairline-strong, #d6d3d1);
}
.mis-info-dot:active .mis-info-ar[data-v-4dd0b513] {
    transform: scale(0.9);
}

/* A calm muted calculator chip — decluttered (§MIS redesign): no pulsing ring, no loud green
   beacon. Matched to the info "explain" sign so the two read as one quiet pair; the calculator
   glyph still signifies "how it's worked out" without competing with the numbers. */
.mis-calc-dot[data-v-bc260802] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    margin: 0 2px 0 8px;
    border: 0;
    border-radius: 9999px;
    background: var(--cbm-surface-strong, #f0efed);
    vertical-align: middle;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 160ms ease;
}
.mis-calc-dot.corner[data-v-bc260802] {
    position: absolute;
    top: 10px;
    right: 10px;
    margin: 0;
    z-index: 2;
}
.mis-calc-ic[data-v-bc260802] {
    display: block;
    color: var(--cbm-muted, #777169);
}
.mis-calc-dot[data-v-bc260802]:active {
    background: var(--cbm-hairline-strong, #d6d3d1);
}
.mis-calc-dot:active .mis-calc-ic[data-v-bc260802] {
    transform: scale(0.85);
}
