@charset "UTF-8";

/* node_modules/@angular/material/prebuilt-themes/azure-blue.css */
html {
  --mat-sys-background: #faf9fd;
  --mat-sys-error: #ba1a1a;
  --mat-sys-error-container: #ffdad6;
  --mat-sys-inverse-on-surface: #f2f0f4;
  --mat-sys-inverse-primary: #abc7ff;
  --mat-sys-inverse-surface: #2f3033;
  --mat-sys-on-background: #1a1b1f;
  --mat-sys-on-error: #ffffff;
  --mat-sys-on-error-container: #93000a;
  --mat-sys-on-primary: #ffffff;
  --mat-sys-on-primary-container: #00458f;
  --mat-sys-on-primary-fixed: #001b3f;
  --mat-sys-on-primary-fixed-variant: #00458f;
  --mat-sys-on-secondary: #ffffff;
  --mat-sys-on-secondary-container: #3e4759;
  --mat-sys-on-secondary-fixed: #131c2b;
  --mat-sys-on-secondary-fixed-variant: #3e4759;
  --mat-sys-on-surface: #1a1b1f;
  --mat-sys-on-surface-variant: #44474e;
  --mat-sys-on-tertiary: #ffffff;
  --mat-sys-on-tertiary-container: #0000ef;
  --mat-sys-on-tertiary-fixed: #00006e;
  --mat-sys-on-tertiary-fixed-variant: #0000ef;
  --mat-sys-outline: #74777f;
  --mat-sys-outline-variant: #c4c6d0;
  --mat-sys-primary: #005cbb;
  --mat-sys-primary-container: #d7e3ff;
  --mat-sys-primary-fixed: #d7e3ff;
  --mat-sys-primary-fixed-dim: #abc7ff;
  --mat-sys-scrim: #000000;
  --mat-sys-secondary: #565e71;
  --mat-sys-secondary-container: #dae2f9;
  --mat-sys-secondary-fixed: #dae2f9;
  --mat-sys-secondary-fixed-dim: #bec6dc;
  --mat-sys-shadow: #000000;
  --mat-sys-surface: #faf9fd;
  --mat-sys-surface-bright: #faf9fd;
  --mat-sys-surface-container: #efedf0;
  --mat-sys-surface-container-high: #e9e7eb;
  --mat-sys-surface-container-highest: #e3e2e6;
  --mat-sys-surface-container-low: #f4f3f6;
  --mat-sys-surface-container-lowest: #ffffff;
  --mat-sys-surface-dim: #dbd9dd;
  --mat-sys-surface-tint: #005cbb;
  --mat-sys-surface-variant: #e0e2ec;
  --mat-sys-tertiary: #343dff;
  --mat-sys-tertiary-container: #e0e0ff;
  --mat-sys-tertiary-fixed: #e0e0ff;
  --mat-sys-tertiary-fixed-dim: #bec2ff;
  --mat-sys-neutral-variant20: #2d3038;
  --mat-sys-neutral10: #1a1b1f;
}
html {
  --mat-sys-level0:
    0px 0px 0px 0px rgba(0, 0, 0, 0.2),
    0px 0px 0px 0px rgba(0, 0, 0, 0.14),
    0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
html {
  --mat-sys-level1:
    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);
}
html {
  --mat-sys-level2:
    0px 3px 3px -2px rgba(0, 0, 0, 0.2),
    0px 3px 4px 0px rgba(0, 0, 0, 0.14),
    0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
html {
  --mat-sys-level3:
    0px 3px 5px -1px rgba(0, 0, 0, 0.2),
    0px 6px 10px 0px rgba(0, 0, 0, 0.14),
    0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
html {
  --mat-sys-level4:
    0px 5px 5px -3px rgba(0, 0, 0, 0.2),
    0px 8px 10px 1px rgba(0, 0, 0, 0.14),
    0px 3px 14px 2px rgba(0, 0, 0, 0.12);
}
html {
  --mat-sys-level5:
    0px 7px 8px -4px rgba(0, 0, 0, 0.2),
    0px 12px 17px 2px rgba(0, 0, 0, 0.14),
    0px 5px 22px 4px rgba(0, 0, 0, 0.12);
}
html {
  --mat-sys-body-large: 400 1rem / 1.5rem Roboto;
  --mat-sys-body-large-font: Roboto;
  --mat-sys-body-large-line-height: 1.5rem;
  --mat-sys-body-large-size: 1rem;
  --mat-sys-body-large-tracking: 0.031rem;
  --mat-sys-body-large-weight: 400;
  --mat-sys-body-medium: 400 0.875rem / 1.25rem Roboto;
  --mat-sys-body-medium-font: Roboto;
  --mat-sys-body-medium-line-height: 1.25rem;
  --mat-sys-body-medium-size: 0.875rem;
  --mat-sys-body-medium-tracking: 0.016rem;
  --mat-sys-body-medium-weight: 400;
  --mat-sys-body-small: 400 0.75rem / 1rem Roboto;
  --mat-sys-body-small-font: Roboto;
  --mat-sys-body-small-line-height: 1rem;
  --mat-sys-body-small-size: 0.75rem;
  --mat-sys-body-small-tracking: 0.025rem;
  --mat-sys-body-small-weight: 400;
  --mat-sys-display-large: 400 3.562rem / 4rem Roboto;
  --mat-sys-display-large-font: Roboto;
  --mat-sys-display-large-line-height: 4rem;
  --mat-sys-display-large-size: 3.562rem;
  --mat-sys-display-large-tracking: -0.016rem;
  --mat-sys-display-large-weight: 400;
  --mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;
  --mat-sys-display-medium-font: Roboto;
  --mat-sys-display-medium-line-height: 3.25rem;
  --mat-sys-display-medium-size: 2.812rem;
  --mat-sys-display-medium-tracking: 0;
  --mat-sys-display-medium-weight: 400;
  --mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;
  --mat-sys-display-small-font: Roboto;
  --mat-sys-display-small-line-height: 2.75rem;
  --mat-sys-display-small-size: 2.25rem;
  --mat-sys-display-small-tracking: 0;
  --mat-sys-display-small-weight: 400;
  --mat-sys-headline-large: 400 2rem / 2.5rem Roboto;
  --mat-sys-headline-large-font: Roboto;
  --mat-sys-headline-large-line-height: 2.5rem;
  --mat-sys-headline-large-size: 2rem;
  --mat-sys-headline-large-tracking: 0;
  --mat-sys-headline-large-weight: 400;
  --mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;
  --mat-sys-headline-medium-font: Roboto;
  --mat-sys-headline-medium-line-height: 2.25rem;
  --mat-sys-headline-medium-size: 1.75rem;
  --mat-sys-headline-medium-tracking: 0;
  --mat-sys-headline-medium-weight: 400;
  --mat-sys-headline-small: 400 1.5rem / 2rem Roboto;
  --mat-sys-headline-small-font: Roboto;
  --mat-sys-headline-small-line-height: 2rem;
  --mat-sys-headline-small-size: 1.5rem;
  --mat-sys-headline-small-tracking: 0;
  --mat-sys-headline-small-weight: 400;
  --mat-sys-label-large: 500 0.875rem / 1.25rem Roboto;
  --mat-sys-label-large-font: Roboto;
  --mat-sys-label-large-line-height: 1.25rem;
  --mat-sys-label-large-size: 0.875rem;
  --mat-sys-label-large-tracking: 0.006rem;
  --mat-sys-label-large-weight: 500;
  --mat-sys-label-large-weight-prominent: 700;
  --mat-sys-label-medium: 500 0.75rem / 1rem Roboto;
  --mat-sys-label-medium-font: Roboto;
  --mat-sys-label-medium-line-height: 1rem;
  --mat-sys-label-medium-size: 0.75rem;
  --mat-sys-label-medium-tracking: 0.031rem;
  --mat-sys-label-medium-weight: 500;
  --mat-sys-label-medium-weight-prominent: 700;
  --mat-sys-label-small: 500 0.688rem / 1rem Roboto;
  --mat-sys-label-small-font: Roboto;
  --mat-sys-label-small-line-height: 1rem;
  --mat-sys-label-small-size: 0.688rem;
  --mat-sys-label-small-tracking: 0.031rem;
  --mat-sys-label-small-weight: 500;
  --mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;
  --mat-sys-title-large-font: Roboto;
  --mat-sys-title-large-line-height: 1.75rem;
  --mat-sys-title-large-size: 1.375rem;
  --mat-sys-title-large-tracking: 0;
  --mat-sys-title-large-weight: 400;
  --mat-sys-title-medium: 500 1rem / 1.5rem Roboto;
  --mat-sys-title-medium-font: Roboto;
  --mat-sys-title-medium-line-height: 1.5rem;
  --mat-sys-title-medium-size: 1rem;
  --mat-sys-title-medium-tracking: 0.009rem;
  --mat-sys-title-medium-weight: 500;
  --mat-sys-title-small: 500 0.875rem / 1.25rem Roboto;
  --mat-sys-title-small-font: Roboto;
  --mat-sys-title-small-line-height: 1.25rem;
  --mat-sys-title-small-size: 0.875rem;
  --mat-sys-title-small-tracking: 0.006rem;
  --mat-sys-title-small-weight: 500;
}
html {
  --mat-sys-corner-extra-large: 28px;
  --mat-sys-corner-extra-large-top: 28px 28px 0 0;
  --mat-sys-corner-extra-small: 4px;
  --mat-sys-corner-extra-small-top: 4px 4px 0 0;
  --mat-sys-corner-full: 9999px;
  --mat-sys-corner-large: 16px;
  --mat-sys-corner-large-end: 0 16px 16px 0;
  --mat-sys-corner-large-start: 16px 0 0 16px;
  --mat-sys-corner-large-top: 16px 16px 0 0;
  --mat-sys-corner-medium: 12px;
  --mat-sys-corner-none: 0;
  --mat-sys-corner-small: 8px;
}
html {
  --mat-sys-dragged-state-layer-opacity: 0.16;
  --mat-sys-focus-state-layer-opacity: 0.12;
  --mat-sys-hover-state-layer-opacity: 0.08;
  --mat-sys-pressed-state-layer-opacity: 0.12;
}

/* node_modules/primeicons/primeicons.css */
@font-face {
  font-family: "primeicons";
  font-display: block;
  src: url("./media/primeicons.eot");
  src:
    url("./media/primeicons.eot?#iefix") format("embedded-opentype"),
    url("./media/primeicons.woff2") format("woff2"),
    url("./media/primeicons.woff") format("woff"),
    url("./media/primeicons.ttf") format("truetype"),
    url("./media/primeicons.svg?#primeicons") format("svg");
  font-weight: normal;
  font-style: normal;
}
.pi {
  font-family: "primeicons";
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.pi:before {
  --webkit-backface-visibility:hidden;
  backface-visibility: hidden;
}
.pi-fw {
  width: 1.28571429em;
  text-align: center;
}
.pi-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@media (prefers-reduced-motion: reduce) {
  .pi-spin {
    -webkit-animation-delay: -1ms;
    animation-delay: -1ms;
    -webkit-animation-duration: 1ms;
    animation-duration: 1ms;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transition-duration: 0s;
    transition-duration: 0s;
  }
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.pi-folder-plus:before {
  content: "\ea05";
}
.pi-receipt:before {
  content: "\ea06";
}
.pi-asterisk:before {
  content: "\ea07";
}
.pi-face-smile:before {
  content: "\ea08";
}
.pi-pinterest:before {
  content: "\ea09";
}
.pi-expand:before {
  content: "\ea0a";
}
.pi-pen-to-square:before {
  content: "\ea0b";
}
.pi-wave-pulse:before {
  content: "\ea0c";
}
.pi-turkish-lira:before {
  content: "\ea0d";
}
.pi-spinner-dotted:before {
  content: "\ea0e";
}
.pi-crown:before {
  content: "\ea0f";
}
.pi-pause-circle:before {
  content: "\ea10";
}
.pi-warehouse:before {
  content: "\ea11";
}
.pi-objects-column:before {
  content: "\ea12";
}
.pi-clipboard:before {
  content: "\ea13";
}
.pi-play-circle:before {
  content: "\ea14";
}
.pi-venus:before {
  content: "\ea15";
}
.pi-cart-minus:before {
  content: "\ea16";
}
.pi-file-plus:before {
  content: "\ea17";
}
.pi-microchip:before {
  content: "\ea18";
}
.pi-twitch:before {
  content: "\ea19";
}
.pi-building-columns:before {
  content: "\ea1a";
}
.pi-file-check:before {
  content: "\ea1b";
}
.pi-microchip-ai:before {
  content: "\ea1c";
}
.pi-trophy:before {
  content: "\ea1d";
}
.pi-barcode:before {
  content: "\ea1e";
}
.pi-file-arrow-up:before {
  content: "\ea1f";
}
.pi-mars:before {
  content: "\ea20";
}
.pi-tiktok:before {
  content: "\ea21";
}
.pi-arrow-up-right-and-arrow-down-left-from-center:before {
  content: "\ea22";
}
.pi-ethereum:before {
  content: "\ea23";
}
.pi-list-check:before {
  content: "\ea24";
}
.pi-thumbtack:before {
  content: "\ea25";
}
.pi-arrow-down-left-and-arrow-up-right-to-center:before {
  content: "\ea26";
}
.pi-equals:before {
  content: "\ea27";
}
.pi-lightbulb:before {
  content: "\ea28";
}
.pi-star-half:before {
  content: "\ea29";
}
.pi-address-book:before {
  content: "\ea2a";
}
.pi-chart-scatter:before {
  content: "\ea2b";
}
.pi-indian-rupee:before {
  content: "\ea2c";
}
.pi-star-half-fill:before {
  content: "\ea2d";
}
.pi-cart-arrow-down:before {
  content: "\ea2e";
}
.pi-calendar-clock:before {
  content: "\ea2f";
}
.pi-sort-up-fill:before {
  content: "\ea30";
}
.pi-sparkles:before {
  content: "\ea31";
}
.pi-bullseye:before {
  content: "\ea32";
}
.pi-sort-down-fill:before {
  content: "\ea33";
}
.pi-graduation-cap:before {
  content: "\ea34";
}
.pi-hammer:before {
  content: "\ea35";
}
.pi-bell-slash:before {
  content: "\ea36";
}
.pi-gauge:before {
  content: "\ea37";
}
.pi-shop:before {
  content: "\ea38";
}
.pi-headphones:before {
  content: "\ea39";
}
.pi-eraser:before {
  content: "\ea04";
}
.pi-stopwatch:before {
  content: "\ea01";
}
.pi-verified:before {
  content: "\ea02";
}
.pi-delete-left:before {
  content: "\ea03";
}
.pi-hourglass:before {
  content: "\e9fe";
}
.pi-truck:before {
  content: "\ea00";
}
.pi-wrench:before {
  content: "\e9ff";
}
.pi-microphone:before {
  content: "\e9fa";
}
.pi-megaphone:before {
  content: "\e9fb";
}
.pi-arrow-right-arrow-left:before {
  content: "\e9fc";
}
.pi-bitcoin:before {
  content: "\e9fd";
}
.pi-file-edit:before {
  content: "\e9f6";
}
.pi-language:before {
  content: "\e9f7";
}
.pi-file-export:before {
  content: "\e9f8";
}
.pi-file-import:before {
  content: "\e9f9";
}
.pi-file-word:before {
  content: "\e9f1";
}
.pi-gift:before {
  content: "\e9f2";
}
.pi-cart-plus:before {
  content: "\e9f3";
}
.pi-thumbs-down-fill:before {
  content: "\e9f4";
}
.pi-thumbs-up-fill:before {
  content: "\e9f5";
}
.pi-arrows-alt:before {
  content: "\e9f0";
}
.pi-calculator:before {
  content: "\e9ef";
}
.pi-sort-alt-slash:before {
  content: "\e9ee";
}
.pi-arrows-h:before {
  content: "\e9ec";
}
.pi-arrows-v:before {
  content: "\e9ed";
}
.pi-pound:before {
  content: "\e9eb";
}
.pi-prime:before {
  content: "\e9ea";
}
.pi-chart-pie:before {
  content: "\e9e9";
}
.pi-reddit:before {
  content: "\e9e8";
}
.pi-code:before {
  content: "\e9e7";
}
.pi-sync:before {
  content: "\e9e6";
}
.pi-shopping-bag:before {
  content: "\e9e5";
}
.pi-server:before {
  content: "\e9e4";
}
.pi-database:before {
  content: "\e9e3";
}
.pi-hashtag:before {
  content: "\e9e2";
}
.pi-bookmark-fill:before {
  content: "\e9df";
}
.pi-filter-fill:before {
  content: "\e9e0";
}
.pi-heart-fill:before {
  content: "\e9e1";
}
.pi-flag-fill:before {
  content: "\e9de";
}
.pi-circle:before {
  content: "\e9dc";
}
.pi-circle-fill:before {
  content: "\e9dd";
}
.pi-bolt:before {
  content: "\e9db";
}
.pi-history:before {
  content: "\e9da";
}
.pi-box:before {
  content: "\e9d9";
}
.pi-at:before {
  content: "\e9d8";
}
.pi-arrow-up-right:before {
  content: "\e9d4";
}
.pi-arrow-up-left:before {
  content: "\e9d5";
}
.pi-arrow-down-left:before {
  content: "\e9d6";
}
.pi-arrow-down-right:before {
  content: "\e9d7";
}
.pi-telegram:before {
  content: "\e9d3";
}
.pi-stop-circle:before {
  content: "\e9d2";
}
.pi-stop:before {
  content: "\e9d1";
}
.pi-whatsapp:before {
  content: "\e9d0";
}
.pi-building:before {
  content: "\e9cf";
}
.pi-qrcode:before {
  content: "\e9ce";
}
.pi-car:before {
  content: "\e9cd";
}
.pi-instagram:before {
  content: "\e9cc";
}
.pi-linkedin:before {
  content: "\e9cb";
}
.pi-send:before {
  content: "\e9ca";
}
.pi-slack:before {
  content: "\e9c9";
}
.pi-sun:before {
  content: "\e9c8";
}
.pi-moon:before {
  content: "\e9c7";
}
.pi-vimeo:before {
  content: "\e9c6";
}
.pi-youtube:before {
  content: "\e9c5";
}
.pi-flag:before {
  content: "\e9c4";
}
.pi-wallet:before {
  content: "\e9c3";
}
.pi-map:before {
  content: "\e9c2";
}
.pi-link:before {
  content: "\e9c1";
}
.pi-credit-card:before {
  content: "\e9bf";
}
.pi-discord:before {
  content: "\e9c0";
}
.pi-percentage:before {
  content: "\e9be";
}
.pi-euro:before {
  content: "\e9bd";
}
.pi-book:before {
  content: "\e9ba";
}
.pi-shield:before {
  content: "\e9b9";
}
.pi-paypal:before {
  content: "\e9bb";
}
.pi-amazon:before {
  content: "\e9bc";
}
.pi-phone:before {
  content: "\e9b8";
}
.pi-filter-slash:before {
  content: "\e9b7";
}
.pi-facebook:before {
  content: "\e9b4";
}
.pi-github:before {
  content: "\e9b5";
}
.pi-twitter:before {
  content: "\e9b6";
}
.pi-step-backward-alt:before {
  content: "\e9ac";
}
.pi-step-forward-alt:before {
  content: "\e9ad";
}
.pi-forward:before {
  content: "\e9ae";
}
.pi-backward:before {
  content: "\e9af";
}
.pi-fast-backward:before {
  content: "\e9b0";
}
.pi-fast-forward:before {
  content: "\e9b1";
}
.pi-pause:before {
  content: "\e9b2";
}
.pi-play:before {
  content: "\e9b3";
}
.pi-compass:before {
  content: "\e9ab";
}
.pi-id-card:before {
  content: "\e9aa";
}
.pi-ticket:before {
  content: "\e9a9";
}
.pi-file-o:before {
  content: "\e9a8";
}
.pi-reply:before {
  content: "\e9a7";
}
.pi-directions-alt:before {
  content: "\e9a5";
}
.pi-directions:before {
  content: "\e9a6";
}
.pi-thumbs-up:before {
  content: "\e9a3";
}
.pi-thumbs-down:before {
  content: "\e9a4";
}
.pi-sort-numeric-down-alt:before {
  content: "\e996";
}
.pi-sort-numeric-up-alt:before {
  content: "\e997";
}
.pi-sort-alpha-down-alt:before {
  content: "\e998";
}
.pi-sort-alpha-up-alt:before {
  content: "\e999";
}
.pi-sort-numeric-down:before {
  content: "\e99a";
}
.pi-sort-numeric-up:before {
  content: "\e99b";
}
.pi-sort-alpha-down:before {
  content: "\e99c";
}
.pi-sort-alpha-up:before {
  content: "\e99d";
}
.pi-sort-alt:before {
  content: "\e99e";
}
.pi-sort-amount-up:before {
  content: "\e99f";
}
.pi-sort-amount-down:before {
  content: "\e9a0";
}
.pi-sort-amount-down-alt:before {
  content: "\e9a1";
}
.pi-sort-amount-up-alt:before {
  content: "\e9a2";
}
.pi-palette:before {
  content: "\e995";
}
.pi-undo:before {
  content: "\e994";
}
.pi-desktop:before {
  content: "\e993";
}
.pi-sliders-v:before {
  content: "\e991";
}
.pi-sliders-h:before {
  content: "\e992";
}
.pi-search-plus:before {
  content: "\e98f";
}
.pi-search-minus:before {
  content: "\e990";
}
.pi-file-excel:before {
  content: "\e98e";
}
.pi-file-pdf:before {
  content: "\e98d";
}
.pi-check-square:before {
  content: "\e98c";
}
.pi-chart-line:before {
  content: "\e98b";
}
.pi-user-edit:before {
  content: "\e98a";
}
.pi-exclamation-circle:before {
  content: "\e989";
}
.pi-android:before {
  content: "\e985";
}
.pi-google:before {
  content: "\e986";
}
.pi-apple:before {
  content: "\e987";
}
.pi-microsoft:before {
  content: "\e988";
}
.pi-heart:before {
  content: "\e984";
}
.pi-mobile:before {
  content: "\e982";
}
.pi-tablet:before {
  content: "\e983";
}
.pi-key:before {
  content: "\e981";
}
.pi-shopping-cart:before {
  content: "\e980";
}
.pi-comments:before {
  content: "\e97e";
}
.pi-comment:before {
  content: "\e97f";
}
.pi-briefcase:before {
  content: "\e97d";
}
.pi-bell:before {
  content: "\e97c";
}
.pi-paperclip:before {
  content: "\e97b";
}
.pi-share-alt:before {
  content: "\e97a";
}
.pi-envelope:before {
  content: "\e979";
}
.pi-volume-down:before {
  content: "\e976";
}
.pi-volume-up:before {
  content: "\e977";
}
.pi-volume-off:before {
  content: "\e978";
}
.pi-eject:before {
  content: "\e975";
}
.pi-money-bill:before {
  content: "\e974";
}
.pi-images:before {
  content: "\e973";
}
.pi-image:before {
  content: "\e972";
}
.pi-sign-in:before {
  content: "\e970";
}
.pi-sign-out:before {
  content: "\e971";
}
.pi-wifi:before {
  content: "\e96f";
}
.pi-sitemap:before {
  content: "\e96e";
}
.pi-chart-bar:before {
  content: "\e96d";
}
.pi-camera:before {
  content: "\e96c";
}
.pi-dollar:before {
  content: "\e96b";
}
.pi-lock-open:before {
  content: "\e96a";
}
.pi-table:before {
  content: "\e969";
}
.pi-map-marker:before {
  content: "\e968";
}
.pi-list:before {
  content: "\e967";
}
.pi-eye-slash:before {
  content: "\e965";
}
.pi-eye:before {
  content: "\e966";
}
.pi-folder-open:before {
  content: "\e964";
}
.pi-folder:before {
  content: "\e963";
}
.pi-video:before {
  content: "\e962";
}
.pi-inbox:before {
  content: "\e961";
}
.pi-lock:before {
  content: "\e95f";
}
.pi-unlock:before {
  content: "\e960";
}
.pi-tags:before {
  content: "\e95d";
}
.pi-tag:before {
  content: "\e95e";
}
.pi-power-off:before {
  content: "\e95c";
}
.pi-save:before {
  content: "\e95b";
}
.pi-question-circle:before {
  content: "\e959";
}
.pi-question:before {
  content: "\e95a";
}
.pi-copy:before {
  content: "\e957";
}
.pi-file:before {
  content: "\e958";
}
.pi-clone:before {
  content: "\e955";
}
.pi-calendar-times:before {
  content: "\e952";
}
.pi-calendar-minus:before {
  content: "\e953";
}
.pi-calendar-plus:before {
  content: "\e954";
}
.pi-ellipsis-v:before {
  content: "\e950";
}
.pi-ellipsis-h:before {
  content: "\e951";
}
.pi-bookmark:before {
  content: "\e94e";
}
.pi-globe:before {
  content: "\e94f";
}
.pi-replay:before {
  content: "\e94d";
}
.pi-filter:before {
  content: "\e94c";
}
.pi-print:before {
  content: "\e94b";
}
.pi-align-right:before {
  content: "\e946";
}
.pi-align-left:before {
  content: "\e947";
}
.pi-align-center:before {
  content: "\e948";
}
.pi-align-justify:before {
  content: "\e949";
}
.pi-cog:before {
  content: "\e94a";
}
.pi-cloud-download:before {
  content: "\e943";
}
.pi-cloud-upload:before {
  content: "\e944";
}
.pi-cloud:before {
  content: "\e945";
}
.pi-pencil:before {
  content: "\e942";
}
.pi-users:before {
  content: "\e941";
}
.pi-clock:before {
  content: "\e940";
}
.pi-user-minus:before {
  content: "\e93e";
}
.pi-user-plus:before {
  content: "\e93f";
}
.pi-trash:before {
  content: "\e93d";
}
.pi-external-link:before {
  content: "\e93c";
}
.pi-window-maximize:before {
  content: "\e93b";
}
.pi-window-minimize:before {
  content: "\e93a";
}
.pi-refresh:before {
  content: "\e938";
}
.pi-user:before {
  content: "\e939";
}
.pi-exclamation-triangle:before {
  content: "\e922";
}
.pi-calendar:before {
  content: "\e927";
}
.pi-chevron-circle-left:before {
  content: "\e928";
}
.pi-chevron-circle-down:before {
  content: "\e929";
}
.pi-chevron-circle-right:before {
  content: "\e92a";
}
.pi-chevron-circle-up:before {
  content: "\e92b";
}
.pi-angle-double-down:before {
  content: "\e92c";
}
.pi-angle-double-left:before {
  content: "\e92d";
}
.pi-angle-double-right:before {
  content: "\e92e";
}
.pi-angle-double-up:before {
  content: "\e92f";
}
.pi-angle-down:before {
  content: "\e930";
}
.pi-angle-left:before {
  content: "\e931";
}
.pi-angle-right:before {
  content: "\e932";
}
.pi-angle-up:before {
  content: "\e933";
}
.pi-upload:before {
  content: "\e934";
}
.pi-download:before {
  content: "\e956";
}
.pi-ban:before {
  content: "\e935";
}
.pi-star-fill:before {
  content: "\e936";
}
.pi-star:before {
  content: "\e937";
}
.pi-chevron-left:before {
  content: "\e900";
}
.pi-chevron-right:before {
  content: "\e901";
}
.pi-chevron-down:before {
  content: "\e902";
}
.pi-chevron-up:before {
  content: "\e903";
}
.pi-caret-left:before {
  content: "\e904";
}
.pi-caret-right:before {
  content: "\e905";
}
.pi-caret-down:before {
  content: "\e906";
}
.pi-caret-up:before {
  content: "\e907";
}
.pi-search:before {
  content: "\e908";
}
.pi-check:before {
  content: "\e909";
}
.pi-check-circle:before {
  content: "\e90a";
}
.pi-times:before {
  content: "\e90b";
}
.pi-times-circle:before {
  content: "\e90c";
}
.pi-plus:before {
  content: "\e90d";
}
.pi-plus-circle:before {
  content: "\e90e";
}
.pi-minus:before {
  content: "\e90f";
}
.pi-minus-circle:before {
  content: "\e910";
}
.pi-circle-on:before {
  content: "\e911";
}
.pi-circle-off:before {
  content: "\e912";
}
.pi-sort-down:before {
  content: "\e913";
}
.pi-sort-up:before {
  content: "\e914";
}
.pi-sort:before {
  content: "\e915";
}
.pi-step-backward:before {
  content: "\e916";
}
.pi-step-forward:before {
  content: "\e917";
}
.pi-th-large:before {
  content: "\e918";
}
.pi-arrow-down:before {
  content: "\e919";
}
.pi-arrow-left:before {
  content: "\e91a";
}
.pi-arrow-right:before {
  content: "\e91b";
}
.pi-arrow-up:before {
  content: "\e91c";
}
.pi-bars:before {
  content: "\e91d";
}
.pi-arrow-circle-down:before {
  content: "\e91e";
}
.pi-arrow-circle-left:before {
  content: "\e91f";
}
.pi-arrow-circle-right:before {
  content: "\e920";
}
.pi-arrow-circle-up:before {
  content: "\e921";
}
.pi-info:before {
  content: "\e923";
}
.pi-info-circle:before {
  content: "\e924";
}
.pi-home:before {
  content: "\e925";
}
.pi-spinner:before {
  content: "\e926";
}

/* node_modules/@ng-select/ng-select/themes/default.theme.css */
.ng-select.ng-select-opened > .ng-select-container {
  background: #fff;
  border-color: hsl(0, 0%, 70%) #ccc hsl(0, 0%, 85%);
}
.ng-select.ng-select-opened > .ng-select-container:hover {
  box-shadow: none;
}
.ng-select.ng-select-opened > .ng-select-container .ng-arrow {
  top: -2px;
  border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #999;
  border-width: 0 5px 5px;
}
.ng-select.ng-select-opened > .ng-select-container .ng-arrow:hover {
  border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #333;
}
.ng-select.ng-select-opened.ng-select-top > .ng-select-container {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.ng-select.ng-select-opened.ng-select-right > .ng-select-container {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.ng-select.ng-select-opened.ng-select-bottom > .ng-select-container {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.ng-select.ng-select-opened.ng-select-left > .ng-select-container {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.ng-select.ng-select-focused:not(.ng-select-opened) > .ng-select-container {
  border-color: #007eff;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 0 3px rgba(0, 126, 255, .1);
}
.ng-select.ng-select-disabled > .ng-select-container {
  background-color: #f9f9f9;
}
.ng-select .ng-has-value .ng-placeholder {
  display: none;
}
.ng-select .ng-select-container {
  color: #333;
  background-color: #fff;
  border-radius: 4px;
  border: 1px solid #ccc;
  min-height: 36px;
  align-items: center;
}
.ng-select .ng-select-container:hover {
  box-shadow: 0 1px 0 rgba(0, 0, 0, .06);
}
.ng-select .ng-select-container .ng-value-container {
  align-items: center;
  padding-left: 10px;
}
[dir=rtl] .ng-select .ng-select-container .ng-value-container {
  padding-right: 10px;
  padding-left: 0;
}
.ng-select .ng-select-container .ng-value-container .ng-placeholder {
  color: #999;
}
.ng-select.ng-select-single .ng-select-container {
  height: 36px;
}
.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input {
  top: 5px;
  left: 0;
  padding-left: 10px;
  padding-right: 50px;
}
[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input {
  padding-right: 10px;
  padding-left: 50px;
}
.ng-select.ng-select-multiple.ng-select-disabled > .ng-select-container .ng-value-container .ng-value {
  background-color: #f9f9f9;
  border: 1px solid hsl(0, 0%, 90%);
}
.ng-select.ng-select-multiple.ng-select-disabled > .ng-select-container .ng-value-container .ng-value .ng-value-label {
  padding: 0 5px;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container {
  padding-top: 5px;
  padding-left: 7px;
}
[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container {
  padding-right: 7px;
  padding-left: 0;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value {
  font-size: .9em;
  margin-bottom: 5px;
  color: #333;
  background-color: rgb(234.6, 244.68, 255);
  border-radius: 2px;
  margin-right: 5px;
}
[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value {
  margin-right: 0;
  margin-left: 5px;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled {
  background-color: #f9f9f9;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label {
  padding-left: 5px;
}
[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label {
  padding-left: 0;
  padding-right: 5px;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label {
  display: inline-block;
  padding: 1px 5px;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon {
  display: inline-block;
  padding: 1px 5px;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover {
  background-color: rgb(209.1, 231.78, 255);
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left {
  border-right: 1px solid rgb(183.6, 218.88, 255);
}
[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left {
  border-left: 1px solid rgb(183.6, 218.88, 255);
  border-right: none;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right {
  border-left: 1px solid rgb(183.6, 218.88, 255);
}
[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right {
  border-left: 0;
  border-right: 1px solid rgb(183.6, 218.88, 255);
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input {
  padding: 0 0 3px 3px;
}
[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input {
  padding: 0 3px 3px 0;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input > input {
  color: #000;
}
.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder {
  top: 5px;
  padding-bottom: 5px;
  padding-left: 3px;
}
[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder {
  padding-right: 3px;
  padding-left: 0;
}
.ng-select .ng-clear-wrapper {
  color: #999;
}
.ng-select .ng-clear-wrapper:hover .ng-clear {
  color: #d0021b;
}
.ng-select .ng-clear-wrapper:focus .ng-clear {
  color: #d0021b;
}
.ng-select .ng-clear-wrapper:focus {
  outline: none;
}
.ng-select .ng-spinner-zone {
  padding: 5px 5px 0 0;
}
[dir=rtl] .ng-select .ng-spinner-zone {
  padding: 5px 0 0 5px;
}
.ng-select .ng-arrow-wrapper {
  width: 25px;
  padding-right: 5px;
}
[dir=rtl] .ng-select .ng-arrow-wrapper {
  padding-left: 5px;
  padding-right: 0;
}
.ng-select .ng-arrow-wrapper:hover .ng-arrow {
  border-top-color: #666;
}
.ng-select .ng-arrow-wrapper .ng-arrow {
  border-color: #999 rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
  border-style: solid;
  border-width: 5px 5px 2.5px;
}
.ng-dropdown-panel {
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: 0 1px 0 rgba(0, 0, 0, .06);
  left: 0;
}
.ng-dropdown-panel.ng-select-top {
  bottom: 100%;
  border-top-right-radius: 4px;
  border-top-left-radius: 4px;
  border-bottom-color: hsl(0, 0%, 90%);
  margin-bottom: -1px;
}
.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child {
  border-top-right-radius: 4px;
  border-top-left-radius: 4px;
}
.ng-dropdown-panel.ng-select-right {
  left: 100%;
  top: 0;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
  border-bottom-color: hsl(0, 0%, 90%);
  margin-bottom: -1px;
}
.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child {
  border-top-right-radius: 4px;
}
.ng-dropdown-panel.ng-select-bottom {
  top: 100%;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
  border-top-color: hsl(0, 0%, 90%);
  margin-top: -1px;
}
.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child {
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
}
.ng-dropdown-panel.ng-select-left {
  left: -100%;
  top: 0;
  border-top-left-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
  border-bottom-color: hsl(0, 0%, 90%);
  margin-bottom: -1px;
}
.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child {
  border-top-left-radius: 4px;
}
.ng-dropdown-panel .ng-dropdown-header {
  border-bottom: 1px solid #ccc;
  padding: 5px 7px;
}
.ng-dropdown-panel .ng-dropdown-footer {
  border-top: 1px solid #ccc;
  padding: 5px 7px;
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup {
  -webkit-user-select: none;
  user-select: none;
  padding: 8px 10px;
  font-weight: 500;
  color: rgba(0, 0, 0, .54);
  cursor: pointer;
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled {
  cursor: default;
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked {
  background-color: rgb(244.8, 249.84, 255);
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,
.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked {
  color: rgba(0, 0, 0, .54);
  background-color: rgb(234.6, 244.68, 255);
  font-weight: 600;
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option {
  background-color: #fff;
  color: rgba(0, 0, 0, .87);
  padding: 8px 10px;
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked {
  color: #333;
  background-color: rgb(234.6, 244.68, 255);
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label {
  font-weight: 600;
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked {
  background-color: rgb(244.8, 249.84, 255);
  color: #333;
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled {
  color: #ccc;
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child {
  padding-left: 22px;
}
[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child {
  padding-right: 22px;
  padding-left: 0;
}
.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label {
  font-size: 80%;
  font-weight: 400;
  padding-right: 5px;
}
[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label {
  padding-left: 5px;
  padding-right: 0;
}
[dir=rtl] .ng-dropdown-panel {
  direction: rtl;
  text-align: right;
}

/* node_modules/leaflet/dist/leaflet.css */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
  position: absolute;
  left: 0;
  top: 0;
}
.leaflet-container {
  overflow: hidden;
}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}
.leaflet-tile::selection {
  background: transparent;
}
.leaflet-safari .leaflet-tile {
  image-rendering: -webkit-optimize-contrast;
}
.leaflet-safari .leaflet-tile-container {
  width: 1600px;
  height: 1600px;
  -webkit-transform-origin: 0 0;
}
.leaflet-marker-icon,
.leaflet-marker-shadow {
  display: block;
}
.leaflet-container .leaflet-overlay-pane svg {
  max-width: none !important;
  max-height: none !important;
}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
  max-width: none !important;
  max-height: none !important;
  width: auto;
  padding: 0;
}
.leaflet-container img.leaflet-tile {
  mix-blend-mode: plus-lighter;
}
.leaflet-container.leaflet-touch-zoom {
  -ms-touch-action: pan-x pan-y;
  touch-action: pan-x pan-y;
}
.leaflet-container.leaflet-touch-drag {
  -ms-touch-action: pinch-zoom;
  touch-action: none;
  touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
  -ms-touch-action: none;
  touch-action: none;
}
.leaflet-container {
  -webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
  -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
  filter: inherit;
  visibility: hidden;
}
.leaflet-tile-loaded {
  visibility: inherit;
}
.leaflet-zoom-box {
  width: 0;
  height: 0;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 800;
}
.leaflet-overlay-pane svg {
  -moz-user-select: none;
}
.leaflet-pane {
  z-index: 400;
}
.leaflet-tile-pane {
  z-index: 200;
}
.leaflet-overlay-pane {
  z-index: 400;
}
.leaflet-shadow-pane {
  z-index: 500;
}
.leaflet-marker-pane {
  z-index: 600;
}
.leaflet-tooltip-pane {
  z-index: 650;
}
.leaflet-popup-pane {
  z-index: 700;
}
.leaflet-map-pane canvas {
  z-index: 100;
}
.leaflet-map-pane svg {
  z-index: 200;
}
.leaflet-vml-shape {
  width: 1px;
  height: 1px;
}
.lvml {
  behavior: url(#default#VML);
  display: inline-block;
  position: absolute;
}
.leaflet-control {
  position: relative;
  z-index: 800;
  pointer-events: visiblePainted;
  pointer-events: auto;
}
.leaflet-top,
.leaflet-bottom {
  position: absolute;
  z-index: 1000;
  pointer-events: none;
}
.leaflet-top {
  top: 0;
}
.leaflet-right {
  right: 0;
}
.leaflet-bottom {
  bottom: 0;
}
.leaflet-left {
  left: 0;
}
.leaflet-control {
  float: left;
  clear: both;
}
.leaflet-right .leaflet-control {
  float: right;
}
.leaflet-top .leaflet-control {
  margin-top: 10px;
}
.leaflet-bottom .leaflet-control {
  margin-bottom: 10px;
}
.leaflet-left .leaflet-control {
  margin-left: 10px;
}
.leaflet-right .leaflet-control {
  margin-right: 10px;
}
.leaflet-fade-anim .leaflet-popup {
  opacity: 0;
  -webkit-transition: opacity 0.2s linear;
  -moz-transition: opacity 0.2s linear;
  transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
  opacity: 1;
}
.leaflet-zoom-animated {
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
svg.leaflet-zoom-animated {
  will-change: transform;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
  -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
  -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
  transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1);
}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
  -webkit-transition: none;
  -moz-transition: none;
  transition: none;
}
.leaflet-zoom-anim .leaflet-zoom-hide {
  visibility: hidden;
}
.leaflet-interactive {
  cursor: pointer;
}
.leaflet-grab {
  cursor: -webkit-grab;
  cursor: -moz-grab;
  cursor: grab;
}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
  cursor: crosshair;
}
.leaflet-popup-pane,
.leaflet-control {
  cursor: auto;
}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
  cursor: move;
  cursor: -webkit-grabbing;
  cursor: -moz-grabbing;
  cursor: grabbing;
}
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
  pointer-events: none;
}
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
  pointer-events: visiblePainted;
  pointer-events: auto;
}
.leaflet-container {
  background: #ddd;
  outline-offset: 1px;
}
.leaflet-container a {
  color: #0078A8;
}
.leaflet-zoom-box {
  border: 2px dotted #38f;
  background: rgba(255, 255, 255, 0.5);
}
.leaflet-container {
  font-family:
    "Helvetica Neue",
    Arial,
    Helvetica,
    sans-serif;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.5;
}
.leaflet-bar {
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65);
  border-radius: 4px;
}
.leaflet-bar a {
  background-color: #fff;
  border-bottom: 1px solid #ccc;
  width: 26px;
  height: 26px;
  line-height: 26px;
  display: block;
  text-align: center;
  text-decoration: none;
  color: black;
}
.leaflet-bar a,
.leaflet-control-layers-toggle {
  background-position: 50% 50%;
  background-repeat: no-repeat;
  display: block;
}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
  background-color: #f4f4f4;
}
.leaflet-bar a:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.leaflet-bar a:last-child {
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  border-bottom: none;
}
.leaflet-bar a.leaflet-disabled {
  cursor: default;
  background-color: #f4f4f4;
  color: #bbb;
}
.leaflet-touch .leaflet-bar a {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.leaflet-touch .leaflet-bar a:first-child {
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
}
.leaflet-touch .leaflet-bar a:last-child {
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
}
.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
  font:
    bold 18px "Lucida Console",
    Monaco,
    monospace;
  text-indent: 1px;
}
.leaflet-touch .leaflet-control-zoom-in,
.leaflet-touch .leaflet-control-zoom-out {
  font-size: 22px;
}
.leaflet-control-layers {
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
  background: #fff;
  border-radius: 5px;
}
.leaflet-control-layers-toggle {
  background-image: url("./media/layers.png");
  width: 36px;
  height: 36px;
}
.leaflet-retina .leaflet-control-layers-toggle {
  background-image: url("./media/layers-2x.png");
  background-size: 26px 26px;
}
.leaflet-touch .leaflet-control-layers-toggle {
  width: 44px;
  height: 44px;
}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
  display: none;
}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
  display: block;
  position: relative;
}
.leaflet-control-layers-expanded {
  padding: 6px 10px 6px 6px;
  color: #333;
  background: #fff;
}
.leaflet-control-layers-scrollbar {
  overflow-y: scroll;
  overflow-x: hidden;
  padding-right: 5px;
}
.leaflet-control-layers-selector {
  margin-top: 2px;
  position: relative;
  top: 1px;
}
.leaflet-control-layers label {
  display: block;
  font-size: 13px;
  font-size: 1.08333em;
}
.leaflet-control-layers-separator {
  height: 0;
  border-top: 1px solid #ddd;
  margin: 5px -10px 5px -6px;
}
.leaflet-default-icon-path {
  background-image: url("./media/marker-icon.png");
}
.leaflet-container .leaflet-control-attribution {
  background: #fff;
  background: rgba(255, 255, 255, 0.8);
  margin: 0;
}
.leaflet-control-attribution,
.leaflet-control-scale-line {
  padding: 0 5px;
  color: #333;
  line-height: 1.4;
}
.leaflet-control-attribution a {
  text-decoration: none;
}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
  text-decoration: underline;
}
.leaflet-attribution-flag {
  display: inline !important;
  vertical-align: baseline !important;
  width: 1em;
  height: 0.6669em;
}
.leaflet-left .leaflet-control-scale {
  margin-left: 5px;
}
.leaflet-bottom .leaflet-control-scale {
  margin-bottom: 5px;
}
.leaflet-control-scale-line {
  border: 2px solid #777;
  border-top: none;
  line-height: 1.1;
  padding: 2px 5px 1px;
  white-space: nowrap;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.8);
  text-shadow: 1px 1px #fff;
}
.leaflet-control-scale-line:not(:first-child) {
  border-top: 2px solid #777;
  border-bottom: none;
  margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
  border-bottom: 2px solid #777;
}
.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
  box-shadow: none;
}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
  border: 2px solid rgba(0, 0, 0, 0.2);
  background-clip: padding-box;
}
.leaflet-popup {
  position: absolute;
  text-align: center;
  margin-bottom: 20px;
}
.leaflet-popup-content-wrapper {
  padding: 1px;
  text-align: left;
  border-radius: 12px;
}
.leaflet-popup-content {
  margin: 13px 24px 13px 20px;
  line-height: 1.3;
  font-size: 13px;
  font-size: 1.08333em;
  min-height: 1px;
}
.leaflet-popup-content p {
  margin: 17px 0;
  margin: 1.3em 0;
}
.leaflet-popup-tip-container {
  width: 40px;
  height: 20px;
  position: absolute;
  left: 50%;
  margin-top: -1px;
  margin-left: -20px;
  overflow: hidden;
  pointer-events: none;
}
.leaflet-popup-tip {
  width: 17px;
  height: 17px;
  padding: 1px;
  margin: -10px auto 0;
  pointer-events: auto;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  background: white;
  color: #333;
  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
}
.leaflet-container a.leaflet-popup-close-button {
  position: absolute;
  top: 0;
  right: 0;
  border: none;
  text-align: center;
  width: 24px;
  height: 24px;
  font:
    16px/24px Tahoma,
    Verdana,
    sans-serif;
  color: #757575;
  text-decoration: none;
  background: transparent;
}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
  color: #585858;
}
.leaflet-popup-scrolled {
  overflow: auto;
}
.leaflet-oldie .leaflet-popup-content-wrapper {
  -ms-zoom: 1;
}
.leaflet-oldie .leaflet-popup-tip {
  width: 24px;
  margin: 0 auto;
  -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
  filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
}
.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
  border: 1px solid #999;
}
.leaflet-div-icon {
  background: #fff;
  border: 1px solid #666;
}
.leaflet-tooltip {
  position: absolute;
  padding: 6px;
  background-color: #fff;
  border: 1px solid #fff;
  border-radius: 3px;
  color: #222;
  white-space: nowrap;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  pointer-events: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
.leaflet-tooltip.leaflet-interactive {
  cursor: pointer;
  pointer-events: auto;
}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
  position: absolute;
  pointer-events: none;
  border: 6px solid transparent;
  background: transparent;
  content: "";
}
.leaflet-tooltip-bottom {
  margin-top: 6px;
}
.leaflet-tooltip-top {
  margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
  left: 50%;
  margin-left: -6px;
}
.leaflet-tooltip-top:before {
  bottom: 0;
  margin-bottom: -12px;
  border-top-color: #fff;
}
.leaflet-tooltip-bottom:before {
  top: 0;
  margin-top: -12px;
  margin-left: -6px;
  border-bottom-color: #fff;
}
.leaflet-tooltip-left {
  margin-left: -6px;
}
.leaflet-tooltip-right {
  margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
  top: 50%;
  margin-top: -6px;
}
.leaflet-tooltip-left:before {
  right: 0;
  margin-right: -12px;
  border-left-color: #fff;
}
.leaflet-tooltip-right:before {
  left: 0;
  margin-left: -12px;
  border-right-color: #fff;
}
@media print {
  .leaflet-control {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* src/styles.scss */
:root {
  --bg: #F4F2EC;
  --bg-2: #EEEBE2;
  --surface: #FFFFFF;
  --surface-2: #FAF8F2;
  --sidebar-bg: #0E1320;
  --sidebar-fg: #C5CAD7;
  --sidebar-fg-muted: #6C7488;
  --sidebar-active: #1A2236;
  --border: #E4E0D4;
  --border-strong: #D2CCBA;
  --hairline: #ECE8DD;
  --text: #0E1320;
  --text-muted: #5D6478;
  --text-soft: #8B91A2;
  --accent: #DD5A2E;
  --accent-2: #C44A22;
  --accent-soft: #FCE6DA;
  --accent-ink: #6B2410;
  --success: #137A56;
  --success-soft: #DEF1E6;
  --warning: #B57A14;
  --warning-soft: #F6E8C8;
  --danger: #B33A3A;
  --danger-soft: #F5DCDC;
  --info: #2C5DAA;
  --info-soft: #DDE6F4;
  --offline: #6B4DE6;
  --offline-soft: #ECE8FC;
  --chip: #EDEADF;
  --shadow-sm: 0 1px 0 rgba(20,18,12,0.04), 0 1px 2px rgba(20,18,12,0.04);
  --shadow-md: 0 1px 0 rgba(20,18,12,0.04), 0 4px 14px rgba(20,18,12,0.06);
  --shadow-lg: 0 8px 32px rgba(20,18,12,0.10);
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --font:
    "Manrope",
    ui-sans-serif,
    system-ui,
    "Vazirmatn",
    sans-serif;
  --font-persian:
    "Vazirmatn",
    ui-sans-serif,
    system-ui,
    sans-serif;
  --mono:
    "JetBrains Mono",
    ui-monospace,
    "SFMono-Regular",
    monospace;
  --header-h: 60px;
  --sidebar-w: 240px;
}
[data-theme=dark] {
  --bg: #0A0D14;
  --bg-2: #0F131C;
  --surface: #141925;
  --surface-2: #181E2C;
  --sidebar-bg: #07090F;
  --sidebar-fg: #B9BEC9;
  --sidebar-fg-muted: #636A7B;
  --sidebar-active: #161B27;
  --border: #1F2533;
  --border-strong: #2B3242;
  --hairline: #1B2030;
  --text: #ECE9E0;
  --text-muted: #98A0B0;
  --text-soft: #6C7488;
  --accent: #F2724A;
  --accent-2: #E25A30;
  --accent-soft: rgba(242,114,74,0.16);
  --accent-ink: #FFC7AE;
  --success: #34C091;
  --success-soft: rgba(52,192,145,0.14);
  --warning: #E8B765;
  --warning-soft: rgba(232,183,101,0.14);
  --danger: #E37070;
  --danger-soft: rgba(227,112,112,0.14);
  --info: #6FA0E9;
  --info-soft: rgba(111,160,233,0.14);
  --offline: #6B4DE6;
  --offline-soft: rgba(107,77,230,0.20);
  --chip: #1B2030;
  --shadow-sm: 0 1px 0 rgba(0,0,0,0.4);
  --shadow-md: 0 4px 14px rgba(0,0,0,0.32);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.55);
}
[data-palette=ocean] {
  --accent: #2C5DAA;
  --accent-2: #244C8C;
  --accent-soft: #DEE7F5;
  --accent-ink: #17325C;
  --sidebar-bg: #0B1526;
  --sidebar-active: #16233C;
}
[data-theme=dark][data-palette=ocean] {
  --accent: #5E8FD6;
  --accent-2: #4374BE;
  --accent-soft: rgba(94,143,214,0.16);
  --accent-ink: #C2D6F2;
}
[data-palette=forest] {
  --accent: #137A56;
  --accent-2: #0F6244;
  --accent-soft: #DCF0E6;
  --accent-ink: #0A3D2C;
  --sidebar-bg: #0A1A14;
  --sidebar-active: #142A20;
}
[data-theme=dark][data-palette=forest] {
  --accent: #37B189;
  --accent-2: #22936B;
  --accent-soft: rgba(55,177,137,0.16);
  --accent-ink: #B8ECD8;
}
[data-palette=plum] {
  --accent: #6A34A6;
  --accent-2: #57298A;
  --accent-soft: #EBE1F6;
  --accent-ink: #34195A;
  --sidebar-bg: #150F20;
  --sidebar-active: #241834;
}
[data-theme=dark][data-palette=plum] {
  --accent: #A277D8;
  --accent-2: #8B5CC6;
  --accent-soft: rgba(162,119,216,0.16);
  --accent-ink: #DCC9F2;
}
[data-palette=rust] {
  --accent: #9A3B18;
  --accent-2: #7E2E10;
  --accent-soft: #F3E0D6;
  --accent-ink: #4A1808;
  --sidebar-bg: #1A0F0A;
  --sidebar-active: #2C1A12;
}
[data-theme=dark][data-palette=rust] {
  --accent: #D87A4E;
  --accent-2: #C15F30;
  --accent-soft: rgba(216,122,78,0.16);
  --accent-ink: #F2CBB4;
}
[data-palette=ink] {
  --accent: #334155;
  --accent-2: #1E293B;
  --accent-soft: #E2E8F0;
  --accent-ink: #0F172A;
  --sidebar-bg: #0B0F19;
  --sidebar-active: #1A2236;
}
[data-theme=dark][data-palette=ink] {
  --accent: #94A3B8;
  --accent-2: #64748B;
  --accent-soft: rgba(148,163,184,0.16);
  --accent-ink: #E2E8F0;
}
[data-palette=crimson] {
  --accent: #C0332F;
  --accent-2: #9E2622;
  --accent-soft: #F6DEDD;
  --accent-ink: #5A1210;
  --sidebar-bg: #1E0C0B;
  --sidebar-active: #301513;
}
[data-theme=dark][data-palette=crimson] {
  --accent: #E4726E;
  --accent-2: #CE514C;
  --accent-soft: rgba(228,114,110,0.16);
  --accent-ink: #F4CCCB;
}
[data-palette=rose] {
  --accent: #C0397E;
  --accent-2: #9E2C66;
  --accent-soft: #F7DEEC;
  --accent-ink: #5A1740;
  --sidebar-bg: #1E0C16;
  --sidebar-active: #30161F;
}
[data-theme=dark][data-palette=rose] {
  --accent: #E67AB0;
  --accent-2: #D0578F;
  --accent-soft: rgba(230,122,176,0.16);
  --accent-ink: #F5CCE2;
}
[data-palette=amber] {
  --accent: #B7791F;
  --accent-2: #965F12;
  --accent-soft: #F5E9CF;
  --accent-ink: #4A2F08;
  --sidebar-bg: #1A140A;
  --sidebar-active: #2C2212;
}
[data-theme=dark][data-palette=amber] {
  --accent: #E0A94E;
  --accent-2: #C98E30;
  --accent-soft: rgba(224,169,78,0.16);
  --accent-ink: #F2E0B8;
}
[data-palette=teal] {
  --accent: #0F766E;
  --accent-2: #0C5F58;
  --accent-soft: #D6EFED;
  --accent-ink: #07403B;
  --sidebar-bg: #0A1A19;
  --sidebar-active: #142B29;
}
[data-theme=dark][data-palette=teal] {
  --accent: #3CB4AA;
  --accent-2: #22968C;
  --accent-soft: rgba(60,180,170,0.16);
  --accent-ink: #B8ECE7;
}
[data-palette=cyan] {
  --accent: #0E7490;
  --accent-2: #0B5D74;
  --accent-soft: #D4EDF3;
  --accent-ink: #073E4E;
  --sidebar-bg: #0A181C;
  --sidebar-active: #142A30;
}
[data-theme=dark][data-palette=cyan] {
  --accent: #38B2CE;
  --accent-2: #2293AF;
  --accent-soft: rgba(56,178,206,0.16);
  --accent-ink: #B4E4EE;
}
[data-palette=sky] {
  --accent: #1D74B8;
  --accent-2: #175D95;
  --accent-soft: #DCEBF7;
  --accent-ink: #0C3355;
  --sidebar-bg: #0A1622;
  --sidebar-active: #142838;
}
[data-theme=dark][data-palette=sky] {
  --accent: #5AA6E0;
  --accent-2: #3E86C4;
  --accent-soft: rgba(90,166,224,0.16);
  --accent-ink: #C2DEF4;
}
[data-palette=indigo] {
  --accent: #4048B5;
  --accent-2: #333A94;
  --accent-soft: #E0E2F6;
  --accent-ink: #1C2060;
  --sidebar-bg: #0E0F22;
  --sidebar-active: #1B1D3A;
}
[data-theme=dark][data-palette=indigo] {
  --accent: #7C84DC;
  --accent-2: #5E67C6;
  --accent-soft: rgba(124,132,220,0.16);
  --accent-ink: #CDD0F2;
}
[data-palette=violet] {
  --accent: #7C3AED;
  --accent-2: #6528C4;
  --accent-soft: #E9DEFB;
  --accent-ink: #3A1178;
  --sidebar-bg: #140E22;
  --sidebar-active: #221836;
}
[data-theme=dark][data-palette=violet] {
  --accent: #A785F0;
  --accent-2: #8B60DE;
  --accent-soft: rgba(167,133,240,0.16);
  --accent-ink: #DDCCF9;
}
[data-palette=emerald] {
  --accent: #059669;
  --accent-2: #047855;
  --accent-soft: #D3F1E5;
  --accent-ink: #024B34;
  --sidebar-bg: #081A13;
  --sidebar-active: #122C21;
}
[data-theme=dark][data-palette=emerald] {
  --accent: #34D399;
  --accent-2: #1FA877;
  --accent-soft: rgba(52,211,153,0.16);
  --accent-ink: #B4F1DA;
}
[data-palette=lime] {
  --accent: #5B8A16;
  --accent-2: #486E10;
  --accent-soft: #E7F1CF;
  --accent-ink: #2C4408;
  --sidebar-bg: #141A0A;
  --sidebar-active: #212C12;
}
[data-theme=dark][data-palette=lime] {
  --accent: #97C64C;
  --accent-2: #7BA830;
  --accent-soft: rgba(151,198,76,0.16);
  --accent-ink: #DCECB8;
}
[data-palette=copper] {
  --accent: #A15A2B;
  --accent-2: #834722;
  --accent-soft: #F1E4D7;
  --accent-ink: #4C2810;
  --sidebar-bg: #1A1109;
  --sidebar-active: #2C1E12;
}
[data-theme=dark][data-palette=copper] {
  --accent: #D69463;
  --accent-2: #C0773F;
  --accent-soft: rgba(214,148,99,0.16);
  --accent-ink: #F2DAC4;
}
[data-palette=wine] {
  --accent: #8E2C4A;
  --accent-2: #74223C;
  --accent-soft: #F2DCE3;
  --accent-ink: #451324;
  --sidebar-bg: #1C0C12;
  --sidebar-active: #2E151D;
}
[data-theme=dark][data-palette=wine] {
  --accent: #D06E8C;
  --accent-2: #B94E6E;
  --accent-soft: rgba(208,110,140,0.16);
  --accent-ink: #F2CBD8;
}
[data-palette=sand] {
  --accent: #8A7B3C;
  --accent-2: #6E6130;
  --accent-soft: #EFEBD5;
  --accent-ink: #423A16;
  --sidebar-bg: #17150C;
  --sidebar-active: #262212;
}
[data-theme=dark][data-palette=sand] {
  --accent: #C8B96E;
  --accent-2: #AA9B50;
  --accent-soft: rgba(200,185,110,0.16);
  --accent-ink: #ECE6C4;
}
[data-palette=steel] {
  --accent: #4E6A86;
  --accent-2: #3D556C;
  --accent-soft: #E1E7EE;
  --accent-ink: #22303F;
  --sidebar-bg: #0C121A;
  --sidebar-active: #1A2430;
}
[data-theme=dark][data-palette=steel] {
  --accent: #86A2C0;
  --accent-2: #6584A6;
  --accent-soft: rgba(134,162,192,0.16);
  --accent-ink: #D2DEEC;
}
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  padding: 0;
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  font-size: 13.5px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
app-root,
app-shell,
app-auth-hero,
app-signin,
app-signup,
app-dashboard,
app-quick-search,
app-flight-search,
app-flight-results,
app-flight-passengers,
app-flight-payment,
app-flight-ticket,
app-flight-manual,
app-train-search,
app-train-results,
app-train-passengers,
app-train-payment,
app-train-ticket,
app-train-manual,
app-bus-search,
app-bus-results,
app-bus-passengers,
app-bus-payment,
app-bus-ticket,
app-bus-manual,
app-hotels,
app-tours,
app-ground-transport,
app-travel-sim,
app-insurance,
app-queue,
app-bookings,
app-booking-detail,
app-refunds,
app-supply-overview,
app-supply-charters,
app-supply-properties,
app-supply-property-detail,
app-supply-rooms-all,
app-supply-trains,
app-supply-buses,
app-agents,
app-markup,
app-wallet,
app-invoices,
app-reports,
app-settings {
  display: block;
}
app-root,
app-shell,
app-signin,
app-signup {
  min-height: 100vh;
}
button,
input,
select,
textarea {
  font-family: inherit;
  color: inherit;
}
.persian,
[lang=fa] {
  font-family: var(--font-persian);
  font-feature-settings: normal;
}
button {
  cursor: pointer;
  border: none;
  background: none;
}
input,
select,
textarea {
  outline: none;
}
a {
  color: inherit;
  text-decoration: none;
}
.mono {
  font-family: var(--mono);
  font-feature-settings: "ss01" on, "cv11" on;
}
.app {
  display: grid;
  grid-template-columns: var(--sidebar-w) 1fr;
  min-height: 100vh;
  background: var(--bg);
  transition: grid-template-columns 200ms ease;
}
.app.no-sidebar {
  grid-template-columns: 1fr;
}
.app.sidebar-collapsed {
  grid-template-columns: 0 1fr;
}
.app.sidebar-collapsed .sidebar {
  overflow: hidden;
  border-right-color: transparent;
}
.mat-mdc-menu-panel {
  background: var(--surface) !important;
  min-width: 320px !important;
  max-width: 520px !important;
  border-radius: 10px !important;
  border: 1px solid var(--border) !important;
}
.icon-btn.step {
  display: grid;
  place-items: center;
}
.pax-menu {
  top: calc(100% + 6px);
  right: 0px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow-lg);
  z-index: 50;
  padding: 16px;
  min-width: 320px;
}
.sidebar {
  background: var(--sidebar-bg);
  color: var(--sidebar-fg);
  display: flex;
  flex-direction: column;
  border-right: 1px solid rgba(255, 255, 255, 0.04);
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}
.sidebar-brand {
  padding: 16px 18px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  height: var(--header-h);
}
.brand-mark {
  width: 28px;
  height: 28px;
  background: #0E1320;
  border-radius: 8px;
  display: grid;
  place-items: center;
  color: white;
  font-weight: 800;
  font-size: 14px;
  flex-shrink: 0;
}
.brand-name {
  color: #fff;
  font-weight: 700;
  letter-spacing: -0.01em;
  font-size: 14px;
}
.brand-sub {
  color: var(--sidebar-fg-muted);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: 1px;
}
.nav-section {
  padding: 14px 0 6px 0;
}
.nav-section-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--sidebar-fg-muted);
  padding: 0 18px 6px;
}
[lang=fa] .nav-section-title {
  font-size: 12.5px;
  letter-spacing: 0;
  text-transform: none;
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 8px 18px;
  color: var(--sidebar-fg);
  font-size: 13px;
  font-weight: 500;
  border-left: 2px solid transparent;
  cursor: pointer;
  position: relative;
  transition: background 100ms, color 100ms;
}
.nav-item:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.025);
}
.nav-item.active {
  color: #fff;
  background: var(--sidebar-active);
  border-left-color: var(--accent);
}
.vg-range {
  width: 100%;
  accent-color: var(--accent);
  cursor: pointer;
}
.nav-item.stolen {
  border-left-color: transparent;
  pointer-events: none;
}
.nav-item.stolen > span {
  opacity: 0;
  transition: opacity 0.18s;
}
.nav-item.stolen::after {
  content: "";
  position: absolute;
  left: 18px;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  height: 16px;
  border: 1.5px dashed rgba(255, 255, 255, 0.14);
  border-radius: 5px;
}
.nav-item .nav-icon {
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  color: currentColor;
  opacity: 0.85;
}
.nav-badge {
  margin-left: auto;
  background: var(--accent);
  color: white;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 10px;
  min-width: 18px;
  text-align: center;
}
.nav-badge.muted {
  background: rgba(255, 255, 255, 0.08);
  color: var(--sidebar-fg);
}
.sidebar-footer {
  margin-top: auto;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background:
    linear-gradient(
      135deg,
      #DD5A2E,
      #6B2410);
  color: white;
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 12px;
  flex-shrink: 0;
}
.avatar.lg {
  width: 40px;
  height: 40px;
  font-size: 14px;
}
.user-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.user-meta .name {
  color: #fff;
  font-size: 12.5px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-meta .role {
  color: var(--sidebar-fg-muted);
  font-size: 10.5px;
}
.main {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.topbar {
  height: var(--header-h);
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  padding: 0 22px;
  gap: 16px;
  position: sticky;
  top: 0;
  z-index: 10;
}
.crumbs {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--text-muted);
  font-size: 12.5px;
  font-weight: 500;
}
.crumbs .sep {
  color: var(--text-soft);
}
.crumbs .current {
  color: var(--text);
  font-weight: 600;
}
.topbar-spacer {
  flex: 1;
}
.search-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg);
  border: 1px solid var(--border);
  padding: 6px 12px;
  border-radius: 8px;
  width: 260px;
  color: var(--text-muted);
  font-size: 12.5px;
}
.search-pill:focus-within {
  border-color: var(--accent);
}
.search-pill.busy {
  opacity: 0.85;
}
.search-pill .search-input {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  outline: none;
  padding: 0;
  margin: 0;
  color: var(--text);
  font: inherit;
  font-size: 12.5px;
}
.search-pill .search-input::placeholder {
  color: var(--text-muted);
}
.search-pill .search-input::-webkit-search-decoration,
.search-pill .search-input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
}
.search-pill .spin {
  animation: spin 0.8s linear infinite;
  color: var(--text-soft);
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.search-pill kbd {
  margin-left: auto;
  font-family: var(--mono);
  font-size: 10px;
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 1px 5px;
  border-radius: 3px;
  color: var(--text-soft);
}
.role-toggle {
  display: inline-flex;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2px;
  font-size: 12px;
  font-weight: 600;
}
.role-toggle button {
  padding: 5px 12px;
  border-radius: 6px;
  color: var(--text-muted);
}
.role-toggle button.active {
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-sm);
}
.icon-btn {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: var(--text-muted);
  position: relative;
}
.icon-btn:hover {
  background: var(--bg);
  color: var(--text);
}
.icon-btn .dot {
  position: absolute;
  top: 7px;
  right: 7px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid var(--surface);
}
.page {
  padding: 22px 28px 60px;
}
.page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}
.page-title {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0;
}
.page-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin-top: 4px;
}
.page-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}
.card-pad {
  padding: 18px;
}
.card-pad-lg {
  padding: 22px 24px;
}
.card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid var(--hairline);
}
.card-title {
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -0.005em;
  margin: 0;
}
.card-sub {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 2px;
}
.divider {
  height: 1px;
  background: var(--hairline);
  margin: 12px 0;
}
.vdivider {
  width: 1px;
  background: var(--hairline);
  align-self: stretch;
}
[hidden] {
  display: none !important;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 13px;
  border-radius: 8px;
  font-size: 12.5px;
  font-weight: 600;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  transition: background 100ms, transform 60ms;
  white-space: nowrap;
}
.btn:hover {
  background: var(--bg);
}
.btn:active {
  transform: translateY(0.5px);
}
.btn.primary {
  background: var(--accent);
  color: white;
  border-color: var(--accent);
}
.btn.primary:hover {
  background: var(--accent-2);
}
.btn.ghost {
  background: transparent;
  border-color: transparent;
  color: var(--text-muted);
}
.btn.ghost:hover {
  background: var(--bg);
  color: var(--text);
}
.btn.danger {
  color: var(--danger);
  border-color: var(--border);
}
.btn.danger:hover {
  background: var(--danger-soft);
}
.btn.sm {
  padding: 5px 10px;
  font-size: 11.5px;
}
.btn.lg {
  padding: 11px 18px;
  font-size: 13.5px;
}
.btn:disabled,
.btn[disabled] {
  background: var(--surface-2);
  color: var(--text-soft);
  border-color: var(--hairline);
  cursor: not-allowed;
  opacity: 0.85;
  transform: none;
}
.btn:disabled:hover,
.btn[disabled]:hover {
  background: var(--surface-2);
}
.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.field-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
}
.input,
.select,
.textarea {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 9px 11px;
  font-size: 13px;
  color: var(--text);
  transition: border-color 120ms, box-shadow 120ms;
  width: 100%;
}
.input:focus,
.select:focus,
.textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.input.invalid {
  border-color: var(--danger);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 14%, transparent);
}
.input.invalid:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.input.lg {
  padding: 12px 13px;
  font-size: 14px;
}
.input-with-icon {
  position: relative;
}
.input-with-icon .icon-l {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-soft);
  pointer-events: none;
}
.input-with-icon .input {
  padding-left: 34px;
}
.input.err,
.select.err,
.textarea.err,
.input-with-icon.err .input {
  border-color: var(--danger);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 14%, transparent);
}
.input-with-icon.err .icon-l {
  color: var(--danger);
}
.field-error {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--danger);
}
.validation-banner {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  border-radius: 8px;
  border: 1px solid var(--danger);
  background: color-mix(in srgb, var(--danger) 10%, transparent);
  color: var(--danger);
  font-size: 12.5px;
  font-weight: 600;
}
.switch {
  position: relative;
  display: inline-block;
  width: 30px;
  height: 18px;
  border-radius: 999px;
  background: var(--chip);
  border: 1px solid var(--border);
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
  transition: background 120ms, border-color 120ms;
}
.switch i {
  position: absolute;
  top: 1px;
  left: 1px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
  transition: left 140ms, background 120ms;
  display: block;
}
.switch.on {
  background: var(--accent);
  border-color: var(--accent);
}
.switch.on i {
  left: 13px;
  background: #fff;
}
.switch:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--chip);
  color: var(--text-muted);
}
.tag.success {
  background: var(--success-soft);
  color: var(--success);
}
.tag.warning {
  background: var(--warning-soft);
  color: var(--warning);
}
.tag.danger {
  background: var(--danger-soft);
  color: var(--danger);
}
.tag.info {
  background: var(--info-soft);
  color: var(--info);
}
.tag.accent {
  background: var(--accent-soft);
  color: var(--accent-ink);
}
.tag.offline {
  background: var(--offline-soft);
  color: var(--offline);
}
.dot-status {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--text-soft);
  display: inline-block;
}
.dot-status.success {
  background: var(--success);
}
.dot-status.warning {
  background: var(--warning);
}
.dot-status.danger {
  background: var(--danger);
}
.dot-status.info {
  background: var(--info);
}
.dot-status.accent {
  background: var(--accent);
}
.dot-status.pulse {
  box-shadow: 0 0 0 0 currentColor;
  animation: pulse 1.6s infinite;
}
@keyframes pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(221, 90, 46, 0.6);
  }
  50% {
    box-shadow: 0 0 0 5px rgba(221, 90, 46, 0);
  }
}
.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
}
.table th {
  text-align: left;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  padding: 10px 14px;
  border-bottom: 1px solid var(--hairline);
  background: var(--surface-2);
}
.table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--hairline);
  vertical-align: middle;
}
.table tr:last-child td {
  border-bottom: none;
}
.table tr:hover td {
  background: var(--bg);
}
.table-compact td {
  padding: 8px 14px;
}
.table .num {
  font-family: var(--mono);
  font-feature-settings: "tnum";
}
.table .right {
  text-align: right;
}
.kpi-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.kpi {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  box-shadow: var(--shadow-sm);
}
.kpi-label {
  font-size: 11.5px;
  color: var(--text-muted);
  font-weight: 600;
}
.kpi-value {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  font-family: var(--font);
}
.kpi-value .currency {
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 500;
  margin-right: 4px;
}
.kpi-delta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
}
.kpi-delta.up {
  background: var(--success-soft);
  color: var(--success);
}
.kpi-delta.down {
  background: var(--danger-soft);
  color: var(--danger);
}
.spark {
  width: 100%;
  height: 38px;
}
.toast-stack {
  position: fixed;
  bottom: 20px;
  right: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  z-index: 200;
  pointer-events: none;
}
.toast {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: 8px;
  padding: 10px 14px;
  box-shadow: var(--shadow-lg);
  font-size: 12.5px;
  font-weight: 500;
  pointer-events: all;
  min-width: 240px;
  animation: slide-in 220ms;
}
@keyframes slide-in {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
}
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-thumb {
  background: var(--border-strong);
  border-radius: 999px;
  border: 2px solid var(--bg);
}
::-webkit-scrollbar-track {
  background: transparent;
}
.skeleton-bg {
  background:
    linear-gradient(
      135deg,
      var(--chip),
      var(--bg-2));
}
.leg {
  display: grid;
  grid-template-columns: 60px 1fr 120px 1fr 60px;
  align-items: center;
  gap: 10px;
}
.leg .time {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.leg .iata {
  font-size: 11.5px;
  color: var(--text-muted);
  font-weight: 600;
}
.leg .duration {
  text-align: center;
  font-size: 11px;
  color: var(--text-muted);
  font-weight: 600;
}
.leg .path {
  height: 1px;
  background: var(--border-strong);
  margin: 6px 0;
  position: relative;
}
.leg .path::before,
.leg .path::after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--text-soft);
  position: absolute;
  top: -2.5px;
}
.leg .path::before {
  left: 0;
}
.leg .path::after {
  right: 0;
}
.leg .stops {
  font-size: 11px;
  color: var(--text-soft);
  text-align: center;
}
.row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.between {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.stack-sm {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.muted {
  color: var(--text-muted);
}
.soft {
  color: var(--text-soft);
}
.text-tiny {
  font-size: 11px;
}
.text-sm {
  font-size: 12px;
}
.text-md {
  font-size: 13.5px;
}
.text-lg {
  font-size: 16px;
  font-weight: 600;
}
.text-xl {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.text-2xl {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.bold {
  font-weight: 700;
}
.semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.center {
  text-align: center;
}
.right {
  text-align: right;
}
.nowrap {
  white-space: nowrap;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pointer {
  cursor: pointer;
}
.flex1 {
  flex: 1;
}
.grid {
  display: grid;
}
.gap-4 {
  gap: 4px;
}
.gap-6 {
  gap: 6px;
}
.gap-8 {
  gap: 8px;
}
.gap-10 {
  gap: 10px;
}
.gap-12 {
  gap: 12px;
}
.gap-14 {
  gap: 14px;
}
.gap-16 {
  gap: 16px;
}
.gap-20 {
  gap: 20px;
}
.gap-24 {
  gap: 24px;
}
.mt-4 {
  margin-top: 4px;
}
.mt-8 {
  margin-top: 8px;
}
.mt-12 {
  margin-top: 12px;
}
.mt-16 {
  margin-top: 16px;
}
.mt-20 {
  margin-top: 20px;
}
.mt-24 {
  margin-top: 24px;
}
.mb-4 {
  margin-bottom: 4px;
}
.mb-8 {
  margin-bottom: 8px;
}
.mb-12 {
  margin-bottom: 12px;
}
.mb-16 {
  margin-bottom: 16px;
}
.mb-20 {
  margin-bottom: 20px;
}
.p-12 {
  padding: 12px;
}
.p-16 {
  padding: 16px;
}
.p-20 {
  padding: 20px;
}
.p-24 {
  padding: 24px;
}
.full-w {
  width: 100%;
}
.auth-page {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--bg);
}
.auth-hero {
  height: 100%;
  background:
    radial-gradient(
      ellipse at top right,
      rgba(221, 90, 46, 0.18),
      transparent 55%),
    radial-gradient(
      ellipse at bottom left,
      rgba(20, 30, 60, 0.12),
      transparent 55%),
    linear-gradient(
      155deg,
      #0E1320 0%,
      #1A2236 50%,
      #2A1E14 100%);
  color: white;
  padding: 56px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}
.auth-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 22px 22px;
  opacity: 0.4;
}
.auth-hero > * {
  position: relative;
  z-index: 1;
}
.auth-form-wrap {
  display: grid;
  place-items: center;
  padding: 40px;
}
.auth-form {
  width: 100%;
  max-width: 380px;
}
.auth-title {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 4px;
}
.auth-sub {
  color: var(--text-muted);
  font-size: 13.5px;
  margin: 0 0 28px;
}
.codeblock {
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 8px;
  padding: 10px 12px;
  font-family: var(--mono);
  font-size: 11.5px;
  color: var(--text-muted);
  white-space: pre;
  overflow-x: auto;
}
.trip-path {
  position: relative;
  height: 22px;
  display: flex;
  align-items: center;
  margin: 6px 0;
  width: 100%;
}
.trip-path .line {
  position: absolute;
  left: 4px;
  right: 4px;
  top: 50%;
  height: 1px;
  background: var(--border-strong);
  z-index: 0;
}
.trip-path .line.dashed {
  background: none;
  border-top: 1px dashed var(--border-strong);
  height: 0;
}
.trip-path .start-dot,
.trip-path .end-dot {
  position: absolute;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  background: var(--text-muted);
  border: 1.5px solid var(--surface);
  box-sizing: content-box;
}
.trip-path .start-dot {
  left: 0;
}
.trip-path .end-dot {
  right: 0;
  background: var(--accent);
}
.trip-path .vehicle {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: var(--surface);
  color: var(--accent);
  display: grid;
  place-items: center;
  z-index: 3;
  padding: 1px 6px;
  border-radius: 12px;
}
.trip-path .vehicle.train {
  color: #2C5DAA;
}
.trip-path .vehicle.bus {
  color: #137A56;
}
.trip-path .stop {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
}
.trip-path .stop-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--surface);
  border: 1.5px solid var(--text-soft);
  box-sizing: content-box;
}
.trip-path .stop-label {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 4px;
  font-family: var(--mono);
  font-size: 9px;
  color: var(--text-muted);
  white-space: nowrap;
  background: var(--surface);
  padding: 0 4px;
  font-weight: 600;
}
.trip-roundtrip-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}
.trip-mini {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-weight: 600;
}
.trip-mini .vehicle-icon {
  color: var(--accent);
}
.trip-mini.train .vehicle-icon {
  color: #2C5DAA;
}
.trip-mini.bus .vehicle-icon {
  color: #137A56;
}
.trip-mini .arrow {
  color: var(--text-soft);
  margin: 0 1px;
}
.trip-mini .stop-iata {
  font-size: 0.86em;
  color: var(--text-soft);
}
.leg .path {
  background: var(--border-strong);
}
.seg-row {
  display: grid;
  grid-template-columns: minmax(72px, auto) 1fr minmax(72px, auto);
  gap: 20px;
  align-items: center;
}
.seg-row .seg-end {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.seg-row .seg-end.right {
  align-items: flex-end;
  text-align: right;
}
.seg-row .time {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -0.012em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.seg-row .iata {
  font-size: 11.5px;
  color: var(--text-muted);
  font-weight: 600;
  margin-top: 2px;
}
.seg-row .city {
  font-size: 11px;
  color: var(--text-soft);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 110px;
}
.seg-row .day-offset {
  font-size: 10px;
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-top: 2px;
}
.seg-row .seg-middle {
  display: flex;
  flex-direction: column;
  text-align: center;
  min-width: 0;
}
.seg-row .seg-middle .duration {
  font-size: 11px;
  color: var(--text-muted);
  font-weight: 600;
}
.seg-row .seg-middle .stops-info {
  font-size: 10.5px;
  color: var(--text-soft);
  margin-top: 6px;
  font-weight: 600;
}
.seg-row .seg-middle .stops-info.multi {
  color: var(--warning);
}
.seg-row.lg .time {
  font-size: 24px;
}
.seg-row.lg .iata {
  font-size: 12.5px;
}
.seg-row.sm .time {
  font-size: 15px;
}
.seg-row.sm .iata {
  font-size: 10.5px;
}
.seg-row.sm .seg-middle .duration {
  font-size: 10px;
}
.seg-row.sm .seg-middle .stops-info {
  font-size: 10px;
  margin-top: 4px;
}
.seg-direction {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  background: var(--surface-2);
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid var(--hairline);
}
.seg-direction.outbound {
  color: var(--accent-ink);
  background: var(--accent-soft);
  border-color: var(--accent-soft);
}
.seg-direction.return {
  color: var(--info);
  background: var(--info-soft);
  border-color: var(--info-soft);
}
.seg-direction.leg {
  color: var(--success);
  background: var(--success-soft);
  border-color: var(--success-soft);
}
.seg-divider {
  height: 1px;
  background:
    linear-gradient(
      to right,
      transparent,
      var(--hairline),
      transparent);
  margin: 14px 0;
}
.progress {
  height: 4px;
  background: var(--chip);
  border-radius: 999px;
  overflow: hidden;
}
.progress > .fill {
  height: 100%;
  background: var(--accent);
  border-radius: 999px;
}
.stepper {
  display: flex;
  align-items: center;
  gap: 0;
}
.step {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 600;
}
.step .n {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--chip);
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 700;
}
.step.active {
  color: var(--text);
}
.step.active .n {
  background: var(--accent);
  color: white;
}
.step.done .n {
  background: var(--success);
  color: white;
}
.step.error {
  color: var(--danger);
}
.step.error .n {
  background: var(--danger);
  color: white;
}
.step .sep {
  width: 28px;
  height: 1px;
  background: var(--border);
  margin: 0 12px;
}
.step .sep.done {
  background: var(--success);
}
.filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-muted);
  background: var(--surface);
  cursor: pointer;
}
.filter-chip.active {
  border-color: var(--accent);
  color: var(--accent-ink);
  background: var(--accent-soft);
}
.filter-chip:hover:not(.active) {
  background: var(--bg);
}
.legend-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
}
.legend-swatch {
  width: 8px;
  height: 8px;
  border-radius: 2px;
}
.activity-item {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 10px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--hairline);
  align-items: flex-start;
}
.activity-item:last-child {
  border-bottom: none;
}
.activity-icon {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: var(--chip);
  display: grid;
  place-items: center;
  color: var(--text-muted);
}
.activity-icon.success {
  background: var(--success-soft);
  color: var(--success);
}
.activity-icon.danger {
  background: var(--danger-soft);
  color: var(--danger);
}
.activity-icon.warning {
  background: var(--warning-soft);
  color: var(--warning);
}
.activity-icon.accent {
  background: var(--accent-soft);
  color: var(--accent);
}
.activity-time {
  color: var(--text-soft);
  font-size: 11px;
  font-family: var(--mono);
}
.ticket {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.ticket-band {
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 8px,
      var(--border) 8px,
      var(--border) 9px),
    var(--surface-2);
  border-bottom: 1px dashed var(--border-strong);
  border-top: 1px dashed var(--border-strong);
  padding: 14px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.tabs {
  display: flex;
  gap: 22px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 18px;
}
.tab {
  padding: 10px 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  cursor: pointer;
}
.tab.active {
  color: var(--text);
  border-bottom-color: var(--accent);
}
.tab .count {
  margin-left: 5px;
  background: var(--chip);
  color: var(--text-muted);
  font-size: 10.5px;
  padding: 1px 6px;
  border-radius: 999px;
  font-weight: 700;
}
.tab.active .count {
  background: var(--accent-soft);
  color: var(--accent-ink);
}
.table th.sortable {
  cursor: pointer;
}
.table th.sortable:hover {
  color: var(--text);
}
.drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(10, 12, 20, 0.4);
  z-index: 100;
  backdrop-filter: blur(2px);
}
.drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  width: 520px;
  max-width: 100vw;
  background: var(--surface);
  border-left: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
  z-index: 101;
  display: flex;
  flex-direction: column;
  animation: drawer-in 220ms ease;
}
@keyframes drawer-in {
  from {
    transform: translateX(20px);
    opacity: 0;
  }
}
.drawer-head {
  padding: 16px 22px;
  border-bottom: 1px solid var(--hairline);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 18px 22px;
}
.drawer-foot {
  padding: 14px 22px;
  border-top: 1px solid var(--hairline);
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.placeholder-img {
  background:
    linear-gradient(
      135deg,
      var(--chip),
      var(--bg-2));
  border-radius: var(--radius);
  display: grid;
  place-items: center;
  color: var(--text-soft);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.bar {
  background: var(--accent);
  border-radius: 2px 2px 0 0;
}
.bar.dim {
  background: var(--chip);
}
.flag {
  width: 16px;
  height: 12px;
  border-radius: 1px;
  background: var(--chip);
  display: inline-block;
  vertical-align: middle;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--border);
}
.timer-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  background: var(--warning-soft);
  color: var(--warning);
}
.timer-pill.urgent {
  background: var(--danger-soft);
  color: var(--danger);
}
.timer-pill.ok {
  background: var(--success-soft);
  color: var(--success);
}
.loader-orbit {
  position: relative;
  width: 56px;
  height: 56px;
}
.loader-orbit .ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid transparent;
  border-top-color: var(--accent);
  animation: orbit-spin 0.9s linear infinite;
}
.loader-orbit .ring:nth-child(2) {
  inset: 6px;
  border-top-color: transparent;
  border-right-color: var(--accent-2);
  animation-duration: 1.4s;
  animation-direction: reverse;
}
.loader-orbit .ring:nth-child(3) {
  inset: 14px;
  border-top-color: transparent;
  border-bottom-color: var(--info);
  animation-duration: 2s;
}
.loader-orbit .core {
  position: absolute;
  inset: 22px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 14px rgba(221, 90, 46, 0.45);
}
@keyframes orbit-spin {
  to {
    transform: rotate(360deg);
  }
}
.loader-dots {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.loader-dots span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  animation: dot-bounce 1s ease-in-out infinite;
}
.loader-dots span:nth-child(2) {
  animation-delay: 0.15s;
}
.loader-dots span:nth-child(3) {
  animation-delay: 0.3s;
}
@keyframes dot-bounce {
  0%, 80%, 100% {
    transform: scale(0.6);
    opacity: 0.5;
  }
  40% {
    transform: scale(1.1);
    opacity: 1;
  }
}
.loader-skyline {
  position: relative;
  width: 280px;
  height: 4px;
  border-radius: 999px;
  background: var(--chip);
  overflow: hidden;
}
.loader-skyline::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      transparent 0%,
      var(--accent) 30%,
      var(--accent-2) 60%,
      transparent 100%);
  width: 40%;
  border-radius: 999px;
  animation: skyline-sweep 1.6s ease-in-out infinite;
}
@keyframes skyline-sweep {
  0% {
    left: -40%;
  }
  100% {
    left: 100%;
  }
}
.loader-overlay {
  position: fixed;
  inset: 0;
  background: rgba(14, 19, 32, 0.55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  color: white;
  animation: overlay-in 220ms ease;
}
@keyframes overlay-in {
  from {
    opacity: 0;
  }
}
.loader-overlay .brand-pulse {
  display: flex;
  align-items: center;
  gap: 16px;
}
.loader-overlay .brand-pulse .logo-block {
  width: 56px;
  height: 56px;
  background: #0E1320;
  border-radius: 14px;
  display: grid;
  place-items: center;
  position: relative;
  animation: pulse-soft 1.5s ease-in-out infinite;
}
@keyframes pulse-soft {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(221, 90, 46, 0.55);
  }
  50% {
    box-shadow: 0 0 0 16px rgba(221, 90, 46, 0);
  }
}
.loader-overlay .copy {
  text-align: center;
}
.loader-overlay .copy .title {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
}
.loader-overlay .copy .sub {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 6px;
}
.loader-overlay .stages {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 6px;
  min-width: 320px;
}
.loader-overlay .stage {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
  transition: color 200ms;
}
.loader-overlay .stage .icon {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.loader-overlay .stage.active {
  color: white;
}
.loader-overlay .stage.done {
  color: rgba(255, 255, 255, 0.85);
}
.otp-grid {
  display: flex;
  justify-content: center;
  gap: 10px;
}
.otp-cell {
  width: 48px;
  height: 56px;
  text-align: center;
  font-size: 22px;
  font-family: var(--mono);
  font-weight: 700;
  letter-spacing: 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  transition:
    border-color 120ms,
    box-shadow 120ms,
    transform 100ms;
}
.otp-cell:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 4px var(--accent-soft);
}
.otp-cell.filled {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent-ink);
}
.otp-cell.error {
  border-color: var(--danger);
  box-shadow: 0 0 0 4px var(--danger-soft);
  animation: shake 0.4s;
}
@keyframes shake {
  0%, 100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-4px);
  }
  75% {
    transform: translateX(4px);
  }
}
.ng-dropdown-panel.airport-picker-panel {
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow-lg);
  margin-top: 6px;
  background: var(--surface);
  overflow: hidden;
}
.ng-dropdown-panel.airport-picker-panel .ng-dropdown-panel-items {
  padding: 6px;
  max-height: 380px;
}
.ng-dropdown-panel.airport-picker-panel .ng-option {
  padding: 8px 10px;
  border-radius: 6px;
  color: var(--text);
}
.ng-dropdown-panel.airport-picker-panel .ng-option.ng-option-marked,
.ng-dropdown-panel.airport-picker-panel .ng-option:hover {
  background: var(--bg);
  color: var(--text);
}
.ng-dropdown-panel.airport-picker-panel .ng-option.ng-option-selected {
  background: var(--accent-soft);
  color: inherit;
  font-weight: 600;
}
.ng-dropdown-panel.airport-picker-panel .ng-optgroup {
  padding: 8px 10px 6px;
  background: transparent;
  color: var(--text-muted);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: default;
  pointer-events: none;
  border-radius: 0;
}
.ng-dropdown-panel.airport-picker-panel .ng-optgroup:hover {
  background: transparent;
}
:where(.cdk-overlay-container) .cdk-global-overlay-wrapper:has(> .app-drawer-panel) {
  direction: ltr !important;
  justify-content: flex-end !important;
  align-items: stretch !important;
  padding: 0 !important;
}
html[dir=rtl] :where(.cdk-overlay-container) .cdk-global-overlay-wrapper:has(> .app-drawer-panel) {
  direction: rtl !important;
}
:where(.cdk-overlay-container) .cdk-overlay-pane.app-drawer-panel {
  height: 100vh !important;
  max-height: 100vh !important;
  max-width: 100vw !important;
  min-width: 0 !important;
}
.app-drawer-panel {
  animation: app-drawer-slide-in 300ms cubic-bezier(0, 0, 0.2, 1);
  will-change: transform;
}
.app-drawer-panel .mat-mdc-dialog-container {
  padding: 0 !important;
  display: block !important;
  height: 100vh !important;
  --mdc-dialog-container-shape: 0;
  animation: none !important;
}
.app-drawer-panel .mat-mdc-dialog-surface {
  border-radius: 0 !important;
  background: var(--surface) !important;
  border-left: 1px solid var(--border) !important;
  box-shadow: var(--shadow-lg) !important;
  padding: 0 !important;
  overflow: hidden;
  height: 100% !important;
  opacity: 1 !important;
  transform: none !important;
}
.app-drawer-panel .mat-mdc-dialog-surface > * {
  display: block;
  height: 100%;
}
.app-drawer-panel app-drawer {
  display: block;
  height: 100%;
}
.app-drawer-panel .drawer-shell {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-width: 0;
}
.app-drawer-panel .drawer-body {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}
@keyframes app-drawer-slide-in {
  from {
    transform: translate3d(100%, 0, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
.app-drawer-panel.app-drawer-closing {
  animation: app-drawer-slide-out 280ms cubic-bezier(0.4, 0, 1, 1) forwards;
}
@keyframes app-drawer-slide-out {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(100%, 0, 0);
  }
}
html[dir=rtl] .app-drawer-panel {
  animation-name: app-drawer-slide-in-left;
}
html[dir=rtl] .app-drawer-panel.app-drawer-closing {
  animation-name: app-drawer-slide-out-left;
}
html[dir=rtl] .app-drawer-panel .mat-mdc-dialog-surface {
  border-left: 0 !important;
  border-right: 1px solid var(--border) !important;
}
@keyframes app-drawer-slide-in-left {
  from {
    transform: translate3d(-100%, 0, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes app-drawer-slide-out-left {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-100%, 0, 0);
  }
}
.cdk-overlay-dark-backdrop {
  background: rgba(10, 12, 20, 0.4);
  backdrop-filter: blur(2px);
  transition: opacity 300ms cubic-bezier(0, 0, 0.2, 1) !important;
}
.cust-tier {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.cust-head {
  display: flex;
  gap: 14px;
  align-items: center;
  padding-bottom: 10px;
}
.cust-pax {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 10px;
}
.cust-pax-av {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--chip);
  color: var(--text-muted);
  display: grid;
  place-items: center;
  font-size: 15px;
}
.cust-loyalty {
  border-radius: 14px;
  padding: 16px 18px;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cl-tier {
  font-size: 12px;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.12em;
  opacity: 0.85;
}
.cl-points {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
}
.cl-points span {
  font-size: 13px;
  font-weight: 600;
  opacity: 0.85;
  margin-left: 4px;
}
.cl-name {
  font-size: 11.5px;
  opacity: 0.85;
  font-family: var(--mono, ui-monospace, monospace);
}
.cust-tiercard {
  padding: 16px 18px;
}
.cust-tiercard .text-2xl {
  font-size: 26px;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.callout-soft {
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 12.5px;
  color: var(--text-muted);
  line-height: 1.55;
}
.visa-kv {
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 10px;
  padding: 10px 12px;
}
.visa-req {
  display: flex;
  gap: 6px;
  align-items: center;
  font-size: 12.5px;
  color: var(--text);
}
.drawer-sec {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-soft);
  margin-bottom: 6px;
}
.newcust-steps {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ncs {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-soft);
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--surface-2);
  border: 1px solid var(--hairline);
}
.ncs.on {
  color: var(--accent);
  background: var(--accent-soft);
  border-color: transparent;
}
.ncs-bar {
  flex: 1;
  height: 1px;
  background: var(--hairline);
}
.anc-toggle {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 12.5px;
  color: var(--text);
  cursor: pointer;
}
.anc-toggle.big {
  font-size: 13px;
}
.set-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 8px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  position: sticky;
  top: 76px;
  align-self: flex-start;
}
.ref-navgroup {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-soft);
  padding: 10px 10px 4px;
}
.set-navitem {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border-radius: 8px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text);
  font-family: inherit;
  font-size: 13px;
  text-align: left;
  transition: background 100ms, color 100ms;
}
.set-navitem:hover {
  background: var(--surface-2);
}
.set-navitem.active {
  background: var(--accent-soft);
  color: var(--accent-ink, var(--accent));
  font-weight: 600;
}
.set-navitem .ni-ic {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: var(--surface-2);
  color: var(--text-muted);
}
.set-navitem.active .ni-ic {
  background: rgba(255, 255, 255, 0.6);
  color: var(--accent);
}
.ref-count {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-muted);
  background: var(--surface-2);
  padding: 1px 7px;
  border-radius: 999px;
  font-family: var(--mono, ui-monospace, monospace);
}
.set-navitem.active .ref-count {
  background: rgba(255, 255, 255, 0.6);
  color: var(--accent-ink, var(--accent));
}
.set-help {
  display: flex;
  gap: 8px;
  padding: 10px 12px;
  margin-top: 10px;
  background: var(--accent-soft);
  border-radius: 10px;
  color: var(--accent-ink, var(--accent));
}
.ref-entity-ic {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: var(--surface-2);
  color: var(--text);
}
.ref-code {
  display: inline-block;
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 11px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 6px;
  background: var(--surface-2);
  color: var(--text);
  letter-spacing: 0.02em;
}
.ref-usage {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 12px;
  color: var(--text);
}
.ref-usage.zero {
  color: var(--text-soft);
  font-style: italic;
}
.ref-impact {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 12px;
  background: var(--warning-soft, color-mix(in srgb, var(--warning) 14%, transparent));
  border: 1px solid color-mix(in srgb, var(--warning) 30%, transparent);
  border-radius: 10px;
  color: var(--text);
}
.ref-impact + .ref-impact {
  margin-top: 8px;
}
.ref-audit {
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 12px;
  color: var(--text);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.link-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  color: var(--accent);
  font-weight: 600;
  font-size: 12.5px;
  cursor: pointer;
  padding: 4px 0;
  align-self: flex-start;
}
.link-btn:hover {
  text-decoration: underline;
}
.brand-drop {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 22px 18px;
  background: var(--surface-2);
  border: 2px dashed var(--border-strong);
  border-radius: 10px;
  text-align: center;
}
.visa-doc {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: 999px;
  color: var(--text);
  font-family: var(--mono, ui-monospace, monospace);
}
@media print {
  body.printing-ticket * {
    visibility: hidden !important;
  }
  body.printing-ticket .ticket,
  body.printing-ticket .ticket * {
    visibility: visible !important;
  }
  body.printing-ticket .ticket {
    position: absolute !important;
    left: 0;
    top: 0;
    width: 100%;
    box-shadow: none !important;
    border: 1px solid var(--border) !important;
  }
  body.printing-ticket {
    background: white !important;
  }
  body.printing-ticket .ticket,
  body.printing-ticket .ticket * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  ::ng-deep .mat-mdc-menu-content,
  ::ng-deep .mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text {
    font-family: var(--font) !important;
  }
  @page {
    size: A4 portrait;
    margin: 12mm;
  }
}
.chg-ic {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: var(--surface-2);
  color: var(--text-muted);
  flex: 0 0 auto;
}
.chg-ic.lg {
  width: 38px;
  height: 38px;
  border-radius: 9px;
}
.chg-pick {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  transition: border-color 100ms, background 100ms;
}
.chg-pick:hover {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.rbac-role {
  padding: 14px 16px;
  transition: border-color 120ms;
}
.rbac-role:hover {
  border-color: var(--accent);
}
.rbac-roledot {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.rbac-roledot.sm {
  width: 22px;
  height: 22px;
  border-radius: 6px;
}
.rbac-roletag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.rbac-privbar {
  flex: 0 0 110px;
  height: 6px;
  background: var(--surface-2);
  border-radius: 999px;
  overflow: hidden;
}
.rbac-privbar .fill {
  height: 100%;
  border-radius: inherit;
  transition: width 160ms ease;
}
.rbac-modic {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: var(--surface-2);
  color: var(--text-muted);
  display: grid;
  place-items: center;
}
.rbac-matrix {
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: 10px;
  padding: 4px;
  overflow-x: auto;
}
.rbac-mrow {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) repeat(6, 56px);
  align-items: center;
  gap: 4px;
  min-width: max-content;
}
.rbac-mhead {
  padding: 8px 4px;
  border-bottom: 1px solid var(--hairline);
}
.rbac-mhead .rbac-mname {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-soft);
  padding: 0 8px;
}
.rbac-mact {
  background: none;
  border: none;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  cursor: pointer;
  padding: 4px 0;
  border-radius: 6px;
  text-align: center;
}
.rbac-mact:hover:not(:disabled) {
  background: var(--surface-2);
  color: var(--accent);
}
.rbac-mact:disabled {
  cursor: default;
}
.rbac-mgroup {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-soft);
  padding: 12px 12px 6px;
}
.rbac-mname-btn {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 6px 8px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  width: 100%;
  border-radius: 7px;
  color: var(--text);
}
.rbac-mname-btn:hover:not(:disabled) {
  background: var(--surface-2);
}
.rbac-mname-btn:disabled {
  cursor: default;
}
.rbac-modcheck {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  border: 1.5px solid var(--border-strong);
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--text-muted);
  flex: 0 0 auto;
}
.rbac-modcheck.all {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.rbac-modcheck.some {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent);
}
.rbac-modlabel {
  font-size: 13px;
  font-weight: 600;
  flex: 1;
}
.rbac-cell {
  display: grid;
  place-items: center;
  padding: 5px 0;
}
.rbac-tick {
  width: 22px;
  height: 22px;
  border-radius: 5px;
  border: 1.5px solid var(--border-strong);
  display: grid;
  place-items: center;
  background: var(--surface);
  cursor: pointer;
  color: transparent;
  padding: 0;
  transition:
    background 100ms,
    border-color 100ms,
    color 100ms;
}
.rbac-tick:hover:not(:disabled) {
  border-color: var(--accent);
}
.rbac-tick.on {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.rbac-tick:disabled {
  cursor: default;
  opacity: 0.55;
}
.rbac-na {
  font-size: 18px;
  color: var(--border-strong);
  line-height: 1;
}
.rbac-rolepick {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  cursor: pointer;
  transition: border-color 120ms, background 120ms;
}
.rbac-rolepick:hover {
  border-color: var(--accent);
}
.rbac-rolepick.on {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.rbac-rolepick input {
  accent-color: var(--accent);
}
.flt-toolbar {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}
.flt-toolbar-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}
.flt-toolbar .flt-clear {
  margin-left: auto;
}
.flt-toolbar .flt-count {
  background: var(--accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.flt-clear {
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--accent);
  background: none;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 6px;
  border-radius: 6px;
}
.flt-clear:hover {
  background: var(--accent-soft);
}
.flt-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
  min-height: 22px;
}
.flt-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--accent-soft);
  color: var(--accent-ink, var(--accent));
  padding: 5px 7px 5px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  border: 1px solid color-mix(in srgb, var(--accent) 25%, transparent);
}
.flt-chip button {
  border: none;
  background: rgba(225, 92, 45, 0.16);
  color: var(--accent-ink, var(--accent));
  width: 16px;
  height: 16px;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  line-height: 1;
  padding: 0;
}
.flt-chips-empty {
  font-size: 12px;
  color: var(--text-soft);
  padding: 4px 0;
}
.flt-card {
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: 14px;
  padding: 16px 16px 14px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.flt-card + .flt-card {
  margin-top: 12px;
}
.flt-card.b2b {
  border-color: color-mix(in srgb, var(--accent) 30%, var(--hairline));
}
.flt-card.b2b .flt-card-ic {
  color: var(--accent);
}
.flt-card-head {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 10px;
}
.flt-card-ic {
  color: var(--text-soft);
  display: grid;
  place-items: center;
}
.flt-card-title {
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--text);
}
.flt-card-meta {
  margin-left: auto;
  font-family: var(--mono);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--accent);
}
.flt-card-b2b-tag {
  margin-left: auto;
  background: var(--accent-soft);
  color: var(--accent-ink, var(--accent));
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 3px 7px;
  border-radius: 6px;
  text-transform: uppercase;
}
.flt-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 7px 0;
  cursor: pointer;
  border: none;
  background: none;
  width: 100%;
  font-family: inherit;
  text-align: left;
  color: var(--text);
}
.flt-row:hover .flt-tickbox:not(.on) {
  border-color: var(--accent);
}
.flt-row .flt-label {
  flex: 1;
  font-size: 13.5px;
  color: var(--text);
  min-width: 0;
}
.flt-row .flt-meta {
  font-size: 12px;
  color: var(--text-soft);
  font-family: var(--mono);
}
.flt-tickbox {
  width: 19px;
  height: 19px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  border: 1.5px solid var(--border-strong);
  background: var(--surface);
  transition: background 120ms, border-color 120ms;
}
.flt-tickbox.on {
  background: var(--accent);
  border-color: var(--accent);
}
.flt-tickbox.on::after {
  content: "";
  width: 9px;
  height: 5px;
  border: 1.6px solid #fff;
  border-top: 0;
  border-right: 0;
  transform: rotate(-45deg) translate(1px, -1px);
}
.flt-sort-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 7px 0;
  cursor: pointer;
  color: var(--text);
  font-size: 13.5px;
}
.flt-radio {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid var(--border-strong);
  background: var(--surface);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  transition: border-color 120ms;
}
.flt-radio.on {
  border-color: var(--accent);
}
.flt-radio.on::after {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--accent);
}
.flt-histogram {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 38px;
  margin-bottom: 9px;
}
.flt-histobar {
  flex: 1;
  border-radius: 2px 2px 0 0;
  background: #E8EDEB;
  transition: background 100ms;
}
.flt-histobar.on {
  background: color-mix(in srgb, var(--accent) 55%, #fff);
}
.flt-range-track {
  position: relative;
  height: 4px;
  background: var(--surface-2);
  border-radius: 999px;
  margin-bottom: 14px;
}
.flt-range-track .fill {
  position: absolute;
  top: 0;
  height: 100%;
  background: var(--accent);
  border-radius: 999px;
}
.flt-slider-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
}
.flt-slider-row .lbl {
  font-size: 11px;
  color: var(--text-soft);
  width: 28px;
  flex: 0 0 auto;
}
.flt-slider {
  flex: 1;
  accent-color: var(--accent);
}
.flt-search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 9px;
  padding: 7px 10px;
  margin-bottom: 6px;
}
.flt-search input {
  font: inherit;
  font-size: 13px;
  border: none;
  background: none;
  outline: none;
  flex: 1;
  color: var(--text);
  min-width: 0;
}
.flt-airline-tile {
  width: 26px;
  height: 26px;
  border-radius: 7px;
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 9.5px;
  font-weight: 700;
  flex-shrink: 0;
}
.flt-panel {
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: 16px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05), 0 16px 34px -18px rgba(15, 23, 42, 0.16);
  overflow: hidden;
}
.flt-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px 14px;
}
.flt-panel-title {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}
.flt-panel-title app-icon {
  color: var(--accent);
}
.flt-panel-head .flt-clear {
  padding: 4px 6px;
}
.flt-panel-head .flt-count {
  background: var(--accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.flt-panel > .flt-chips {
  padding: 0 20px 4px;
  margin: 0;
  gap: 7px;
}
.flt-chip-x {
  border: none;
  background: rgba(225, 92, 45, 0.16);
  color: #C2410C;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  line-height: 1;
  padding: 0;
}
.flt-sections {
  padding: 8px 20px 6px;
}
.flt-section {
  border-top: 1px solid color-mix(in srgb, var(--hairline) 60%, transparent);
}
.flt-section:first-child {
  border-top: none;
}
.flt-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 14px 0;
  cursor: pointer;
  background: none;
  border: none;
  font: inherit;
  color: var(--text);
  text-align: left;
}
.flt-section-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  font-weight: 700;
  white-space: nowrap;
}
.flt-section-meta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.flt-chevron {
  color: var(--text-soft);
  transition: transform 150ms;
}
.flt-chevron.up {
  transform: rotate(-180deg);
}
.flt-section-body {
  padding-bottom: 12px;
}
.flt-b2b-tag {
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 2px 6px;
  border-radius: 5px;
}
.flt-price-range {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
}
.flt-section-body .flt-range-track,
.flt-price-track {
  position: relative;
  height: 4px;
  background: #E8EDEB;
  border-radius: 999px;
  margin-bottom: 0;
}
.flt-price-track .fill {
  position: absolute;
  top: 0;
  height: 100%;
  background: var(--accent);
  border-radius: 999px;
}
.flt-price-slider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}
.flt-price-slider:first-of-type {
  margin-top: 12px;
}
.flt-price-label {
  font-size: 11px;
  color: var(--text-soft);
  width: 28px;
  flex: 0 0 auto;
}
.flt-price-slider .flt-slider {
  flex: 1;
}
.flt-price-dual {
  position: relative;
  margin-top: 4px;
}
.flt-price-dual .flt-histogram {
  margin-bottom: 0;
}
.flt-price-dual .flt-price-track {
  margin-top: 2px;
}
.flt-price-dual .flt-slider {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  bottom: -6px;
  background: transparent;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
  height: 18px;
  margin: 0;
}
.flt-price-dual .flt-slider::-webkit-slider-runnable-track {
  background: transparent;
  height: 0;
  border: 0;
}
.flt-price-dual .flt-slider::-moz-range-track {
  background: transparent;
  height: 0;
  border: 0;
}
.flt-price-dual .flt-slider::-webkit-slider-thumb {
  pointer-events: auto;
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--accent);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
  cursor: pointer;
  margin-top: 0;
}
.flt-price-dual .flt-slider::-moz-range-thumb {
  pointer-events: auto;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--accent);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.18);
  cursor: pointer;
}
.flt-price-dual .flt-slider-hi {
  z-index: 2;
}
.flt-price-dual .flt-slider-lo {
  z-index: 1;
}
.flt-price-dual-labels {
  display: flex;
  justify-content: space-between;
  margin-top: 14px;
  font-size: 12px;
  color: var(--text-soft);
  font-variant-numeric: tabular-nums;
}
.flt-time-leg {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-soft);
  margin-bottom: 8px;
}
.flt-time-leg-arr {
  margin-top: 14px;
}
.flt-time-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.flt-time-chip {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 9px 8px;
  border-radius: 10px;
  border: 1.5px solid #E8EDEB;
  background: var(--surface);
  cursor: pointer;
  font: inherit;
  text-align: left;
  transition: border-color 120ms, background 120ms;
}
.flt-time-chip:hover:not(.on) {
  border-color: var(--text-muted);
}
.flt-time-chip.on {
  background: var(--accent-soft);
  border-color: var(--accent);
}
.flt-time-label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text);
}
.flt-time-chip.on .flt-time-label {
  color: #C2410C;
}
.flt-time-range {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text-muted);
}
.flt-time-ico {
  color: var(--text-muted);
  margin-bottom: 2px;
}
.flt-time-chip.on .flt-time-ico {
  color: #C2410C;
}
.flt-summary {
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: 16px;
  padding: 14px 18px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.flt-summary-badge {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--accent);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.flt-summary-route {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.flt-summary-code {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text);
}
.flt-summary-arrow {
  color: var(--accent);
}
.flt-summary-divider {
  display: inline-block;
  width: 1px;
  height: 28px;
  background: var(--hairline);
}
.flt-summary-meta {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  font-size: 13px;
  color: var(--text-soft);
}
.flt-summary-meta span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.flt-summary-meta app-icon {
  color: var(--text-muted);
}
.flt-summary-spacer {
  flex: 1;
}
.fare-strip {
  background: var(--surface);
  border-radius: 14px;
  padding: 9px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
  display: flex;
  align-items: stretch;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
}
.fare-strip-nav {
  width: 36px;
  flex-shrink: 0;
  border-radius: 10px;
  border: none;
  background: var(--surface-2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-soft);
  transition: background 120ms, color 120ms;
}
.fare-strip-nav:hover:not(:disabled) {
  background: var(--hairline);
  color: var(--text);
}
.fare-strip-nav:disabled {
  opacity: 0.35;
  cursor: default;
}
.fare-strip-grid {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.fare-strip-grid::-webkit-scrollbar {
  display: none;
}
.fare-strip-col {
  flex: 0 0 auto;
  min-width: 92px;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 10px;
  padding: 9px 12px;
  text-align: center;
  cursor: pointer;
  font: inherit;
  transition:
    background 120ms,
    border-color 120ms,
    transform 120ms;
  white-space: nowrap;
}
.fare-strip-col:hover:not(.selected) {
  background: var(--surface-2);
}
.fare-strip-day {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-muted);
}
.fare-strip-price {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--text-soft);
  margin-top: 3px;
}
.fare-strip-col.lowest {
  border-color: #B6EFD0;
  background: #ECFDF5;
}
.fare-strip-col.lowest .fare-strip-day {
  color: #15803D;
}
.fare-strip-col.lowest .fare-strip-price {
  color: #15A06B;
}
.fare-strip-col.above .fare-strip-price {
  color: #C2410C;
}
.fare-strip-col.selected {
  background: var(--accent);
  box-shadow: 0 8px 16px -8px color-mix(in srgb, var(--accent) 60%, transparent);
}
.fare-strip-col.selected .fare-strip-day {
  color: #FBD9C6;
}
.fare-strip-col.selected .fare-strip-price {
  color: #fff;
  font-weight: 700;
}
.ag-banner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 16px;
  border-radius: var(--radius);
  border: 1px solid;
  margin-bottom: 16px;
}
.ag-banner .ic {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #fff;
}
.ag-banner.warning {
  background: var(--warning-soft);
  border-color: color-mix(in srgb, var(--warning) 40%, transparent);
}
.ag-banner.warning .ic {
  background: var(--warning);
}
.ag-banner.danger {
  background: var(--danger-soft);
  border-color: color-mix(in srgb, var(--danger) 40%, transparent);
}
.ag-banner.danger .ic {
  background: var(--danger);
}
.ag-banner.info {
  background: var(--info-soft);
  border-color: color-mix(in srgb, var(--info) 40%, transparent);
}
.ag-banner.info .ic {
  background: var(--info);
}
.ag-tree {
  display: flex;
  flex-direction: column;
}
.ag-tree-node {
  border-bottom: 1px solid var(--hairline);
}
.ag-tree-node:last-child {
  border-bottom: none;
}
.ag-tree-row {
  display: grid;
  grid-template-columns: 1fr 120px 120px 130px 200px;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  cursor: pointer;
  transition: background 90ms;
}
.ag-tree-row:hover {
  background: var(--surface-2);
}
.ag-tree-lead {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.ag-tree-toggle {
  width: 20px;
  height: 20px;
  border-radius: 5px;
  display: grid;
  place-items: center;
  color: var(--text-soft);
  flex: 0 0 auto;
  transition: transform 140ms, background 90ms;
}
.ag-tree-toggle:hover {
  background: var(--chip);
  color: var(--text);
}
.ag-tree-toggle.open {
  transform: rotate(90deg);
}
.ag-tree-toggle.leaf {
  visibility: hidden;
}
.ag-subrow {
  display: grid;
  grid-template-columns: 1fr 120px 120px 130px 200px;
  align-items: center;
  gap: 12px;
  padding: 9px 16px 9px 20px;
  background: var(--surface-2);
  border-top: 1px solid var(--hairline);
}
.ag-sub-connector {
  position: relative;
  padding-left: 34px;
}
.ag-sub-connector::before {
  content: "";
  position: absolute;
  left: 16px;
  top: -9px;
  bottom: 50%;
  width: 1px;
  background: var(--border-strong);
}
.ag-sub-connector::after {
  content: "";
  position: absolute;
  left: 16px;
  top: 50%;
  width: 12px;
  height: 1px;
  background: var(--border-strong);
}
.ag-prod-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.ag-prod {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 13px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}
.ag-prod .pic {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: var(--chip);
  color: var(--text-soft);
  flex: 0 0 auto;
}
.ag-prod.on {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  background: var(--accent-soft);
}
.ag-prod.on .pic {
  background: var(--accent);
  color: #fff;
}
.ag-switch {
  position: relative;
  width: 38px;
  height: 22px;
  border-radius: 999px;
  background: var(--border-strong);
  cursor: pointer;
  transition: background 140ms;
  flex: 0 0 auto;
}
.ag-switch::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: left 140ms;
}
.ag-switch.on {
  background: var(--accent);
}
.ag-switch.on::after {
  left: 18px;
}
.ag-pnav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: sticky;
  top: 16px;
}
.ag-pnavitem {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text-muted);
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  width: 100%;
  transition: background 90ms, color 90ms;
}
.ag-pnavitem:hover {
  background: var(--surface-2);
  color: var(--text);
}
.ag-pnavitem.active {
  background: var(--accent-soft);
  color: var(--accent-ink);
}
.ag-pnavitem .ni-ic {
  display: grid;
  place-items: center;
  width: 18px;
  color: currentColor;
}
.ag-pnavitem .ni-count {
  margin-left: auto;
  font-size: 10.5px;
  font-weight: 700;
  background: var(--chip);
  color: var(--text-muted);
  padding: 1px 7px;
  border-radius: 999px;
}
.ag-pnavitem.active .ni-count {
  background: var(--surface);
  color: var(--accent-ink);
}
.ag-hero {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  margin-bottom: 16px;
}
.ag-hero-avatar {
  width: 60px;
  height: 60px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 800;
  font-size: 20px;
  flex: 0 0 auto;
}
.ag-dl {
  display: grid;
  grid-template-columns: 140px 1fr;
  row-gap: 10px;
  column-gap: 12px;
  font-size: 13px;
}
.ag-dl dt {
  color: var(--text-muted);
}
.ag-dl dd {
  margin: 0;
  color: var(--text);
  font-weight: 600;
}
.ag-wizard-rail {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ag-wstep {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border-radius: 10px;
  cursor: pointer;
}
.ag-wstep .n {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 700;
  background: var(--chip);
  color: var(--text-muted);
  flex: 0 0 auto;
}
.ag-wstep.active {
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--border);
}
.ag-wstep.active .n {
  background: var(--accent);
  color: #fff;
}
.ag-wstep.done .n {
  background: var(--success);
  color: #fff;
}
.ag-wstep .lbl {
  font-size: 13px;
  font-weight: 600;
}
.ag-wstep.active .lbl {
  color: var(--text);
}
.ag-wstep:not(.active) .lbl {
  color: var(--text-muted);
}
.ag-pipe {
  display: flex;
  align-items: center;
  gap: 0;
}
.ag-pipe .seg {
  flex: 1;
  text-align: center;
  padding: 7px 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-soft);
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-right: none;
  position: relative;
}
.ag-pipe .seg:first-child {
  border-radius: 8px 0 0 8px;
}
.ag-pipe .seg:last-child {
  border-radius: 0 8px 8px 0;
  border-right: 1px solid var(--border);
}
.ag-pipe .seg.done {
  background: var(--success-soft);
  color: var(--success);
  border-color: color-mix(in srgb, var(--success) 30%, var(--border));
}
.ag-pipe .seg.current {
  background: var(--accent-soft);
  color: var(--accent-ink);
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
}
.ag-dense .table td,
.ag-dense .table th {
  padding-top: 7px;
  padding-bottom: 7px;
}
.ag-dense .ag-tree-row {
  padding-top: 7px;
  padding-bottom: 7px;
}
.ag-dense .kpi {
  padding: 12px 14px;
}
.cx {
  height: calc(100vh - var(--header-h));
  display: grid;
  grid-template-columns: 340px 1fr;
  background: var(--surface);
  overflow: hidden;
}
.cx.compact-d .cx-conv {
  padding: 8px 12px;
}
.cx.compact-d .cx-msgs {
  gap: 3px;
  padding: 14px 22px;
}
.cx-av {
  position: relative;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.01em;
}
.cx-av .cx-dot {
  position: absolute;
  right: -1px;
  bottom: -1px;
  border-radius: 50%;
  border: 2px solid var(--surface);
}
.cx-thread .cx-av .cx-dot,
.cx-conv .cx-av .cx-dot {
  border-color: var(--surface);
}
.cx-dot.online {
  background: var(--success);
}
.cx-dot.away {
  background: var(--warning);
}
.cx-dot.offline {
  background: var(--text-soft);
}
.cx-av.grp {
  background: var(--chip);
  color: var(--text-muted);
}
.cx-av.supp {
  background:
    linear-gradient(
      140deg,
      var(--accent),
      var(--accent-2));
}
.cx-list {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-right: 1px solid var(--hairline);
  background: var(--surface);
}
.cx-list-head {
  padding: 16px 16px 12px;
  border-bottom: 1px solid var(--hairline);
}
.cx-list-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.cx-list-title h2 {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0;
}
.cx-seg {
  display: flex;
  gap: 2px;
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 8px;
  padding: 2px;
  margin-top: 10px;
}
.cx-seg button {
  flex: 1;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-muted);
  padding: 5px 8px;
  border-radius: 6px;
  cursor: pointer;
}
.cx-seg button.on {
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-sm);
}
.cx-convs {
  flex: 1;
  overflow-y: auto;
}
.cx-secfold {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 800;
  color: var(--text-soft);
  padding: 12px 16px 6px;
}
.cx-conv {
  display: flex;
  gap: 11px;
  align-items: center;
  padding: 11px 14px;
  cursor: pointer;
  border-left: 2.5px solid transparent;
  position: relative;
}
.cx-conv:hover {
  background: var(--surface-2);
}
.cx-conv.active {
  background: var(--surface-2);
  border-left-color: var(--accent);
}
.cx-conv-main {
  flex: 1;
  min-width: 0;
}
.cx-conv-top {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.cx-conv-name {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
}
.cx-conv.unread .cx-conv-name {
  font-weight: 800;
}
.cx-conv-time {
  font-size: 10.5px;
  color: var(--text-soft);
  flex: 0 0 auto;
  font-family: var(--mono);
}
.cx-conv-prev {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
}
.cx-conv-prev span {
  font-size: 12px;
  color: var(--text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
}
.cx-conv.unread .cx-conv-prev span {
  color: var(--text);
  font-weight: 600;
}
.cx-unread-badge {
  flex: 0 0 auto;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--accent);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  display: grid;
  place-items: center;
  font-family: var(--mono);
}
.cx-pin {
  color: var(--text-soft);
  flex: 0 0 auto;
}
.cx-conv-x {
  position: absolute;
  right: 8px;
  top: 8px;
  opacity: 0;
}
.cx-conv:hover .cx-conv-x {
  opacity: 1;
}
.cx-thread {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  background: var(--bg);
}
.cx-empty {
  flex: 1;
  display: grid;
  place-items: center;
  color: var(--text-soft);
}
.cx-thread-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--hairline);
  background: var(--surface);
  flex: 0 0 auto;
}
.cx-thread-title {
  font-size: 14.5px;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.cx-thread-sub {
  font-size: 11.5px;
  color: var(--text-muted);
  margin-top: 1px;
}
.cx-thread-sub .on {
  color: var(--success);
  font-weight: 600;
}
.cx-ticket {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 20px;
  background: var(--accent-soft);
  border-bottom: 1px solid var(--hairline);
  font-size: 12px;
  color: var(--accent-ink);
}
.cx-ticket b {
  font-family: var(--mono);
  font-weight: 700;
}
.cx-msgs {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 20px 26px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.cx-daysep {
  align-self: center;
  font-size: 10.5px;
  font-weight: 700;
  color: var(--text-soft);
  background: var(--surface);
  border: 1px solid var(--hairline);
  padding: 3px 12px;
  border-radius: 999px;
  margin: 8px 0;
}
.cx-sys {
  align-self: center;
  font-size: 11.5px;
  color: var(--text-soft);
  text-align: center;
  max-width: 70%;
  padding: 4px 0;
}
.cx-row {
  display: flex;
  gap: 9px;
  max-width: 74%;
  align-items: flex-end;
  position: relative;
}
.cx-row.me {
  align-self: flex-end;
  flex-direction: row-reverse;
}
.cx-row.them {
  align-self: flex-start;
}
.cx-row-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.cx-row.me .cx-row-body {
  align-items: flex-end;
}
.cx-sender {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--text);
  margin: 0 2px 3px;
}
.cx-bubble {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--hairline);
  padding: 8px 12px;
  border-radius: 4px 14px 14px 14px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--text);
  box-shadow: var(--shadow-sm);
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
.cx-row.me .cx-bubble {
  background: var(--accent);
  color: #fff;
  border-color: transparent;
  border-radius: 14px 4px 14px 14px;
}
.cx-bubble .cx-time {
  font-size: 9.5px;
  font-family: var(--mono);
  opacity: 0.6;
  margin-left: 8px;
}
.cx-row.me .cx-bubble .cx-time {
  color: rgba(255, 255, 255, 0.85);
}
.cx-ticks {
  display: inline-flex;
  margin-left: 3px;
  vertical-align: middle;
}
.cx-ticks.read {
  color: #BFE3FF;
}
.cx-avslot {
  width: 28px;
  flex: 0 0 auto;
}
.cx-quote {
  border-left: 2.5px solid currentColor;
  padding: 3px 8px;
  margin-bottom: 5px;
  opacity: 0.85;
  font-size: 12px;
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.04);
}
.cx-row.me .cx-quote {
  background: rgba(255, 255, 255, 0.14);
}
.cx-quote b {
  display: block;
  font-size: 11px;
  margin-bottom: 1px;
}
.cx-att-img {
  display: block;
  max-width: 220px;
  max-height: 200px;
  border-radius: 8px;
  margin-bottom: 4px;
  object-fit: cover;
}
.cx-att-file {
  display: flex;
  align-items: center;
  gap: 9px;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 8px;
  padding: 8px 10px;
  margin-bottom: 4px;
  min-width: 180px;
}
.cx-row.me .cx-att-file {
  background: rgba(255, 255, 255, 0.16);
}
.cx-att-file .ic {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: var(--surface);
  color: var(--accent);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.cx-row.me .cx-att-file .ic {
  background: rgba(255, 255, 255, 0.9);
}
.cx-att-meta {
  min-width: 0;
}
.cx-att-meta .n {
  font-size: 12px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cx-att-meta .s {
  font-size: 10.5px;
  opacity: 0.7;
  font-family: var(--mono);
}
.cx-bookcard {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 11px 12px;
  margin-bottom: 4px;
  min-width: 240px;
  box-shadow: var(--shadow-sm);
}
.cx-row.me .cx-bookcard {
  color: var(--text);
}
.cx-bookcard-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 7px;
}
.cx-bookcard-ref {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
}
.cx-bookcard-route {
  font-size: 12.5px;
  color: var(--text-muted);
  margin-bottom: 8px;
}
.cx-bookcard-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--hairline);
  padding-top: 8px;
}
.cx-reacts {
  display: flex;
  gap: 4px;
  margin-top: 4px;
  flex-wrap: wrap;
}
.cx-row.me .cx-reacts {
  justify-content: flex-end;
}
.cx-react {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 1px 7px 1px 5px;
  font-size: 12px;
  cursor: pointer;
  line-height: 1.5;
}
.cx-react.mine {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.cx-react .n {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--text-muted);
  font-family: var(--mono);
}
.cx-tools {
  position: absolute;
  top: -13px;
  display: flex;
  gap: 2px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2px;
  box-shadow: var(--shadow-md);
  opacity: 0;
  pointer-events: none;
  transition: opacity 100ms;
  z-index: 3;
}
.cx-row:hover .cx-tools {
  opacity: 1;
  pointer-events: auto;
}
.cx-row.me .cx-tools {
  left: -4px;
}
.cx-row.them .cx-tools {
  right: -4px;
}
.cx-tools button {
  border: none;
  background: transparent;
  color: var(--text-muted);
  padding: 4px;
  border-radius: 5px;
  cursor: pointer;
  display: grid;
  place-items: center;
}
.cx-tools button:hover {
  background: var(--surface-2);
  color: var(--text);
}
.cx-emojipop {
  position: absolute;
  top: -44px;
  display: flex;
  gap: 1px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 3px;
  box-shadow: var(--shadow-md);
  z-index: 5;
}
.cx-row.me .cx-emojipop {
  right: -4px;
}
.cx-row.them .cx-emojipop {
  left: -4px;
}
.cx-emojipop button {
  border: none;
  background: transparent;
  font-size: 17px;
  padding: 2px 4px;
  border-radius: 6px;
  cursor: pointer;
  line-height: 1;
}
.cx-emojipop button:hover {
  background: var(--surface-2);
  transform: scale(1.15);
}
.cx-typing {
  display: inline-flex;
  gap: 3px;
  align-items: center;
  padding: 10px 13px;
}
.cx-typing i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--text-soft);
  animation: cxbounce 1.2s infinite;
}
.cx-typing i:nth-child(2) {
  animation-delay: 0.15s;
}
.cx-typing i:nth-child(3) {
  animation-delay: 0.3s;
}
@keyframes cxbounce {
  0%, 60%, 100% {
    transform: translateY(0);
    opacity: 0.4;
  }
  30% {
    transform: translateY(-4px);
    opacity: 1;
  }
}
.cx-composer {
  flex: 0 0 auto;
  border-top: 1px solid var(--hairline);
  background: var(--surface);
  padding: 10px 16px 12px;
}
.cx-reply-strip {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--surface-2);
  border-left: 2.5px solid var(--accent);
  border-radius: 6px;
  padding: 6px 10px;
  margin-bottom: 8px;
}
.cx-reply-strip .t {
  flex: 1;
  min-width: 0;
}
.cx-reply-strip .t b {
  display: block;
  font-size: 11px;
  color: var(--accent-ink);
}
.cx-reply-strip .t span {
  font-size: 12px;
  color: var(--text-muted);
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cx-draft-atts {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.cx-draft-att {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 8px;
  padding: 6px 8px;
  font-size: 12px;
}
.cx-draft-att img {
  width: 34px;
  height: 34px;
  border-radius: 5px;
  object-fit: cover;
}
.cx-composer-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}
.cx-input {
  flex: 1;
  resize: none;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  padding: 10px 12px;
  font: inherit;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--text);
  max-height: 130px;
}
.cx-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.cx-cbtn {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  display: grid;
  place-items: center;
  cursor: pointer;
  flex: 0 0 auto;
}
.cx-cbtn:hover {
  background: var(--surface-2);
  color: var(--text);
}
.cx-cbtn.send {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.cx-cbtn.send:hover {
  background: var(--accent-2);
}
.cx-cbtn.send:disabled {
  opacity: 0.45;
  cursor: default;
}
.cx-attmenu {
  position: absolute;
  bottom: 48px;
  left: 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow-md);
  padding: 4px;
  z-index: 6;
  min-width: 180px;
}
.cx-attmenu button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 13px;
  color: var(--text);
  padding: 8px 10px;
  border-radius: 7px;
  cursor: pointer;
  text-align: left;
}
.cx-attmenu button:hover {
  background: var(--surface-2);
}
.cx-attmenu .ic {
  color: var(--accent);
  display: grid;
  place-items: center;
}
.cx--flat .cx-msgs {
  gap: 0;
}
.cx--flat .cx-row {
  max-width: 100%;
  align-self: stretch;
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  padding: 6px 8px;
  border-radius: 8px;
}
.cx--flat .cx-row:hover {
  background: var(--surface-2);
}
.cx--flat .cx-row.me {
  flex-direction: row;
}
.cx--flat .cx-row-body {
  align-items: flex-start !important;
  flex: 1;
}
.cx--flat .cx-avslot {
  display: none;
}
.cx--flat .cx-bubble {
  background: transparent !important;
  border: none;
  box-shadow: none;
  padding: 1px 0;
  color: var(--text) !important;
  border-radius: 0;
}
.cx--flat .cx-row.me .cx-bubble {
  background: transparent !important;
  color: var(--text) !important;
}
.cx--flat .cx-sender {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  margin: 0 0 1px;
}
.cx--flat .cx-bubble .cx-time,
.cx--flat .cx-row.me .cx-bubble .cx-time {
  color: var(--text-soft);
  opacity: 1;
}
.cx--flat .cx-quote {
  background: var(--surface-2) !important;
}
.cx--flat .cx-att-file {
  background: var(--surface-2) !important;
}
.cx--flat .cx-tools {
  top: 2px;
}
.cx--flat .cx-reacts {
  justify-content: flex-start !important;
}
.cx-launch {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 400;
}
.cx-launch-btn {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  border: none;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: var(--shadow-lg);
  position: relative;
  transition: transform 120ms;
}
.cx-launch-btn:hover {
  transform: scale(1.06);
  background: var(--accent-2);
}
.cx-launch-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 10px;
  background: var(--danger);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: grid;
  place-items: center;
  border: 2px solid var(--bg);
  font-family: var(--mono);
}
.cx-pop {
  position: fixed;
  right: 22px;
  bottom: 88px;
  z-index: 400;
  width: 380px;
  height: min(600px, 100vh - 130px);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: cxpop 160ms ease;
}
@keyframes cxpop {
  from {
    transform: translateY(12px) scale(0.98);
    opacity: 0;
  }
}
.cx-pop-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 15px;
  border-bottom: 1px solid var(--hairline);
  flex: 0 0 auto;
}
.cx-pop-head h3 {
  font-size: 15px;
  font-weight: 800;
  margin: 0;
  flex: 1;
}
.cx-pop .cx-thread {
  background: var(--surface);
}
.cx-pop .cx-msgs {
  padding: 14px;
}
.cx-pop .cx-row {
  max-width: 82%;
}
.cx-pop .cx-convs {
  background: var(--surface);
}
.tkt-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  position: relative;
  font-family: var(--font);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.01em;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  cursor: pointer;
  transition:
    background 120ms,
    border-color 120ms,
    color 120ms;
  line-height: 1.5;
}
.tkt-badge:hover {
  border-color: var(--border-strong);
}
.tkt-badge .n {
  font-family: var(--mono);
  font-weight: 700;
}
.tkt-badge .lbl {
  font-weight: 600;
  opacity: 0.85;
}
.tkt-badge.block {
  display: inline-flex;
}
.tkt-badge.ghost {
  color: var(--text-soft);
  border-style: dashed;
}
.tkt-badge.ghost:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: var(--accent-soft);
}
.tkt-badge.active {
  background: var(--info-soft);
  color: var(--info);
  border-color: color-mix(in srgb, var(--info) 26%, transparent);
}
.tkt-badge.attention {
  background: var(--warning-soft);
  color: var(--warning);
  border-color: color-mix(in srgb, var(--warning) 34%, transparent);
}
.tkt-badge.closed {
  background: var(--chip);
  color: var(--text-muted);
  border-color: var(--border);
}
.tkt-badge-open {
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: rgba(255, 255, 255, 0.55);
  padding: 1px 6px;
  border-radius: 999px;
  margin-left: 1px;
}
[data-theme=dark] .tkt-badge-open {
  background: rgba(255, 255, 255, 0.1);
}
.tkt-badge.compact {
  padding: 3px 7px;
  gap: 3px;
}
.tkt-ping {
  position: absolute;
  top: -3px;
  right: -3px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--danger);
  border: 1.5px solid var(--surface);
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--danger) 60%, transparent);
  animation: tktPing 1.8s infinite;
}
@keyframes tktPing {
  0% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--danger) 55%, transparent);
  }
  70% {
    box-shadow: 0 0 0 5px transparent;
  }
  100% {
    box-shadow: 0 0 0 0 transparent;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tkt-ping {
    animation: none;
  }
}
.tkt-state {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 3px 9px 3px 7px;
  border-radius: 999px;
  white-space: nowrap;
}
.tkt-state .d {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.tkt-state.sm {
  font-size: 9.5px;
  padding: 2px 7px 2px 6px;
}
.tkt-state.info {
  background: var(--info-soft);
  color: var(--info);
}
.tkt-state.warning {
  background: var(--warning-soft);
  color: var(--warning);
}
.tkt-state.accent {
  background: var(--accent-soft);
  color: var(--accent-ink);
}
.tkt-state.success {
  background: var(--success-soft);
  color: var(--success);
}
.tkt-state.muted {
  background: var(--chip);
  color: var(--text-soft);
}
.tkt-prio {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 6px;
  border: 1px solid var(--border);
  color: var(--text-muted);
  background: var(--surface-2);
  white-space: nowrap;
}
.tkt-prio.sm {
  font-size: 9.5px;
  padding: 1px 6px;
}
.tkt-prio.info {
  color: var(--info);
  border-color: color-mix(in srgb, var(--info) 30%, transparent);
  background: var(--info-soft);
}
.tkt-prio.warning {
  color: var(--warning);
  border-color: color-mix(in srgb, var(--warning) 34%, transparent);
  background: var(--warning-soft);
}
.tkt-prio.danger {
  color: var(--danger);
  border-color: color-mix(in srgb, var(--danger) 34%, transparent);
  background: var(--danger-soft);
}
.tkt-av {
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 700;
  font-family: var(--font);
  flex: 0 0 auto;
  letter-spacing: 0.01em;
}
.tkt-av.unassigned {
  background: var(--chip);
  color: var(--text-soft);
  border: 1px dashed var(--border-strong);
}
.tkt-sla {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.tkt-sla.sm {
  font-size: 9.5px;
  padding: 1px 6px;
}
.tkt-sla.ok {
  background: var(--success-soft);
  color: var(--success);
}
.tkt-sla.pending {
  background: var(--chip);
  color: var(--text-muted);
}
.tkt-sla.warn {
  background: var(--warning-soft);
  color: var(--warning);
}
.tkt-sla.breach {
  background: var(--danger-soft);
  color: var(--danger);
}
.tkt-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  color: var(--text-muted);
  font-family: var(--font);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 0 0 12px;
}
.tkt-back:hover {
  color: var(--accent);
}
.tkt-itemhead {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 13px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: var(--surface-2);
}
.tkt-itemhead-ic {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: var(--accent-soft);
  color: var(--accent);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.tkt-empty {
  text-align: center;
  padding: 26px 20px;
  color: var(--text-soft);
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius);
  background: var(--surface-2);
}
.tkt-listcard {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 13px;
  background: var(--surface);
  cursor: pointer;
  transition: border-color 120ms, box-shadow 120ms;
}
.tkt-listcard:hover {
  border-color: var(--border-strong);
  box-shadow: var(--shadow-sm);
}
.tkt-listcard-ic {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: var(--chip);
  color: var(--text-muted);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.tkt-listcard-ic.sm {
  width: 18px;
  height: 18px;
}
.tkt-catchip {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--text-muted);
  background: var(--chip);
  padding: 2px 8px;
  border-radius: 999px;
}
.tkt-unread {
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-size: 10.5px;
  font-weight: 800;
  font-family: var(--mono);
  display: inline-grid;
  place-items: center;
}
.tkt-catgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.tkt-catopt {
  display: flex;
  align-items: center;
  gap: 9px;
  text-align: left;
  padding: 10px 11px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  cursor: pointer;
  font-family: var(--font);
  transition: border-color 120ms, background 120ms;
}
.tkt-catopt:hover {
  border-color: var(--border-strong);
}
.tkt-catopt.on {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.tkt-catopt-ic {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: var(--chip);
  color: var(--text-muted);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}
.tkt-catopt.on .tkt-catopt-ic {
  background: var(--surface);
  color: var(--accent);
}
.tkt-catopt-lbl {
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.3;
}
.tkt-prio-seg {
  display: flex;
  gap: 6px;
}
.tkt-prio-seg button {
  flex: 1;
  padding: 8px 6px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface);
  font-family: var(--font);
  font-size: 12px;
  font-weight: 700;
  color: var(--text-muted);
  cursor: pointer;
  transition: all 120ms;
}
.tkt-prio-seg button:hover {
  border-color: var(--border-strong);
}
.tkt-prio-seg button.on {
  border-color: currentColor;
}
.tkt-prio-seg button.on.info {
  color: var(--info);
  background: var(--info-soft);
}
.tkt-prio-seg button.on.warning {
  color: var(--warning);
  background: var(--warning-soft);
}
.tkt-prio-seg button.on.danger {
  color: var(--danger);
  background: var(--danger-soft);
}
.tkt-prio-seg button.on:not(.info):not(.warning):not(.danger) {
  color: var(--text);
  background: var(--surface-2);
  border-color: var(--border-strong);
}
.tkt-att {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface-2);
}
.tkt-att-ic {
  width: 26px;
  height: 26px;
  border-radius: 7px;
  background: var(--surface);
  color: var(--accent);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid var(--hairline);
}
.tkt-thread {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.tkt-queue-detail > app-tkt-thread {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.tkt-thread.embedded {
  flex: 1 1 auto;
  min-height: 0;
}
.tkt-thread-head {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--hairline);
}
.tkt-thread.embedded .tkt-thread-head {
  padding: 16px 18px 12px;
}
.tkt-subject {
  font-size: 15.5px;
  font-weight: 800;
  letter-spacing: -0.01em;
  margin: 6px 0 0;
  line-height: 1.35;
}
.tkt-track {
  display: flex;
  align-items: flex-start;
  padding: 14px 2px;
  gap: 0;
}
.tkt-thread.embedded .tkt-track {
  padding: 14px 18px;
}
.tkt-track-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  flex: 0 0 auto;
  width: 62px;
  text-align: center;
}
.tkt-track-node .dot {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid var(--border-strong);
  background: var(--surface);
  display: grid;
  place-items: center;
  color: #fff;
}
.tkt-track-node .dot i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  display: block;
}
.tkt-track-node .lbl {
  font-size: 9px;
  font-weight: 700;
  color: var(--text-soft);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1.2;
}
.tkt-track-node.done .dot {
  background: var(--success);
  border-color: var(--success);
  color: #fff;
}
.tkt-track-node.done .lbl {
  color: var(--text-muted);
}
.tkt-track-node.cur .dot {
  border-width: 2px;
}
.tkt-track-node.cur.info .dot {
  border-color: var(--info);
  color: var(--info);
  box-shadow: 0 0 0 3px var(--info-soft);
}
.tkt-track-node.cur.warning .dot {
  border-color: var(--warning);
  color: var(--warning);
  box-shadow: 0 0 0 3px var(--warning-soft);
}
.tkt-track-node.cur.accent .dot {
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.tkt-track-node.cur.success .dot {
  border-color: var(--success);
  background: var(--success);
  color: #fff;
}
.tkt-track-node.cur.muted .dot {
  border-color: var(--text-soft);
  color: var(--text-soft);
}
.tkt-track-node.cur .lbl {
  color: var(--text);
}
.tkt-track-line {
  flex: 1;
  height: 2px;
  background: var(--border);
  margin-top: 9px;
  min-width: 8px;
}
.tkt-track-line.done {
  background: var(--success);
}
.tkt-assign {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid var(--hairline);
}
.tkt-thread.embedded .tkt-assign {
  padding: 11px 18px;
}
.tkt-tabs {
  display: flex;
  gap: 4px;
  padding: 10px 0 0;
}
.tkt-thread.embedded .tkt-tabs {
  padding: 10px 18px 0;
}
.tkt-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border: none;
  background: none;
  font-family: var(--font);
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text-soft);
  cursor: pointer;
  border-bottom: 2px solid transparent;
}
.tkt-tabs button:hover {
  color: var(--text);
}
.tkt-tabs button.on {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.tkt-tab-n {
  font-size: 10px;
  font-weight: 800;
  background: var(--chip);
  color: var(--text-muted);
  padding: 0 5px;
  border-radius: 999px;
}
.tkt-msgs {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 0;
  overflow-y: auto;
}
.tkt-thread.embedded .tkt-msgs {
  flex: 1;
  min-height: 0;
  padding: 16px 18px;
}
.tkt-thread.embedded .tkt-thread-head,
.tkt-thread.embedded .tkt-track,
.tkt-thread.embedded .tkt-assign,
.tkt-thread.embedded .tkt-tabs,
.tkt-thread.embedded .tkt-actionbar,
.tkt-thread.embedded .tkt-composer,
.tkt-thread.embedded .tkt-closed-note {
  flex: 0 0 auto;
}
.tkt-sys {
  text-align: center;
  font-size: 11px;
  color: var(--text-soft);
  padding: 2px 0;
}
.tkt-row {
  display: flex;
  gap: 9px;
  max-width: 92%;
}
.tkt-row.them {
  align-self: flex-start;
}
.tkt-row.me {
  align-self: flex-end;
  flex-direction: row-reverse;
}
.tkt-row-body {
  min-width: 0;
}
.tkt-row.me .tkt-row-body {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.tkt-msg-meta {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin-bottom: 3px;
}
.tkt-msg-meta .nm {
  font-size: 12px;
  font-weight: 700;
}
.tkt-msg-meta .tm {
  font-size: 10.5px;
  color: var(--text-soft);
  font-family: var(--mono);
}
.tkt-sidetag {
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 1px 6px;
  border-radius: 999px;
}
.tkt-sidetag.admin {
  background: var(--accent-soft);
  color: var(--accent-ink);
}
.tkt-sidetag.agent {
  background: var(--info-soft);
  color: var(--info);
}
.tkt-bubble {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--text);
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 4px 12px 12px 12px;
  padding: 9px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tkt-row.me .tkt-bubble {
  background: var(--accent-soft);
  border-color: color-mix(in srgb, var(--accent) 20%, transparent);
  color: var(--accent-ink);
  border-radius: 12px 4px 12px 12px;
}
[data-theme=dark] .tkt-row.me .tkt-bubble {
  color: var(--text);
}
.tkt-msg-att {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  border-radius: 8px;
  background: var(--surface);
  border: 1px solid var(--hairline);
  font-size: 12px;
  font-weight: 600;
  max-width: 260px;
  cursor: pointer;
  color: inherit;
  text-decoration: none;
  margin-top: 6px;
}
.tkt-msg-att:hover {
  border-color: var(--accent);
}
.tkt-msg-img {
  display: inline-block;
  margin-top: 6px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--hairline);
  max-width: 260px;
}
.tkt-msg-img img {
  display: block;
  max-width: 100%;
  max-height: 220px;
  object-fit: cover;
}
.tkt-row.me .tkt-msg-att {
  background: rgba(255, 255, 255, 0.5);
}
[data-theme=dark] .tkt-row.me .tkt-msg-att {
  background: rgba(0, 0, 0, 0.2);
}
.tkt-activity {
  padding: 18px 2px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tkt-thread.embedded .tkt-activity {
  padding: 18px;
  overflow-y: auto;
  flex: 1;
}
.tkt-event {
  display: flex;
  gap: 12px;
  padding: 8px 0;
  position: relative;
}
.tkt-event-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--surface);
  border: 2px solid var(--accent);
  margin-top: 3px;
  flex: 0 0 auto;
  position: relative;
}
.tkt-event:not(:last-child) .tkt-event-dot::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 11px;
  transform: translateX(-50%);
  width: 2px;
  height: calc(100% + 6px);
  background: var(--border);
}
.tkt-actionbar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 0 0;
  border-top: 1px solid var(--hairline);
}
.tkt-thread.embedded .tkt-actionbar {
  padding: 12px 18px 0;
}
.tkt-esc-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--danger, #c0392b);
  background: color-mix(in srgb, var(--danger, #c0392b) 12%, transparent);
  vertical-align: middle;
}
.tkt-closed-note {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 14px 0;
  font-size: 12.5px;
  color: var(--text-muted);
  border-top: 1px solid var(--hairline);
}
.tkt-thread.embedded .tkt-closed-note {
  padding: 14px 18px;
}
.tkt-composer {
  padding: 12px 0 0;
}
.tkt-thread.embedded .tkt-composer {
  padding: 12px 18px 16px;
}
.tkt-composer-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}
.tkt-input {
  flex: 1;
  resize: none;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface);
  padding: 9px 12px;
  font: inherit;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--text);
  font-family: var(--font);
  max-height: 40vh;
  overflow-y: auto;
}
.tkt-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.tkt-cbtn {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  display: grid;
  place-items: center;
  cursor: pointer;
  flex: 0 0 auto;
}
.tkt-cbtn:hover {
  background: var(--surface-2);
  color: var(--text);
}
.tkt-cbtn.send {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.tkt-cbtn.send:hover {
  background: var(--accent-2);
}
.tkt-cbtn.send:disabled {
  opacity: 0.5;
  cursor: default;
}
.tkt-draft-att {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 3px 4px 3px 9px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-muted);
}
.tkt-notes {
  padding: 14px 0;
}
.tkt-thread.embedded .tkt-notes {
  padding: 14px 18px;
  overflow-y: auto;
  flex: 1;
}
.tkt-notes-banner {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--warning);
  background: var(--warning-soft);
  padding: 5px 10px;
  border-radius: 8px;
}
.tkt-note {
  display: flex;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--warning) 6%, var(--surface-2));
}
.tkt-note-add {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end;
}
.tkt-note-add .input {
  width: 100%;
}
.tkt-queue {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 14px;
  align-items: stretch;
  height: calc(100vh - 250px);
  min-height: 520px;
}
.tkt-queue-list {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
}
.tkt-queue-head {
  padding: 14px;
  border-bottom: 1px solid var(--hairline);
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 0 0 auto;
}
.tkt-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.tkt-queue-rows {
  overflow-y: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.tkt-qrow {
  padding: 12px 14px;
  border-bottom: 1px solid var(--hairline);
  cursor: pointer;
  border-left: 3px solid transparent;
  transition: background 120ms;
}
.tkt-qrow:hover {
  background: var(--surface-2);
}
.tkt-qrow.active {
  background: var(--accent-soft);
  border-left-color: var(--accent);
}
.tkt-queue-detail {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
}
@media (max-width: 1100px) {
  .tkt-queue {
    grid-template-columns: 1fr;
    height: auto;
  }
  .tkt-queue-list {
    max-height: 420px;
  }
  .tkt-queue-detail {
    height: 80vh;
    min-height: 540px;
  }
}
.pkg-viewtoggle {
  display: inline-flex;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2px;
}
.pkg-viewtoggle button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
}
.pkg-viewtoggle button.active {
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-sm);
}
.pkg-viewtoggle button:not(.active):hover {
  color: var(--text);
}
.pkg-rows {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pkgrow {
  display: grid;
  grid-template-columns: 132px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 12px;
}
.pkgrow-thumb {
  position: relative;
  width: 132px;
  height: 84px;
  border-radius: 10px;
  overflow: hidden;
  flex: 0 0 auto;
}
.pkgrow-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pkgrow-thumb .pkgrow-dur {
  position: absolute;
  bottom: 6px;
  right: 6px;
  background: rgba(0, 0, 0, 0.72);
  color: #fff;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 10.5px;
  font-weight: 600;
}
.pkgrow-thumb .pkgrow-status {
  position: absolute;
  top: 6px;
  left: 6px;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.pkgrow-main {
  min-width: 0;
}
.pkgrow-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  min-width: 190px;
}
.pkgrow-actions {
  display: flex;
  gap: 6px;
}
@media (max-width: 900px) {
  .pkgrow {
    grid-template-columns: 100px 1fr;
  }
  .pkgrow-side {
    grid-column: 1/-1;
    align-items: stretch;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
  }
}
.pkgmap-wrap {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 14px;
  align-items: stretch;
}
@media (max-width: 1000px) {
  .pkgmap-wrap {
    grid-template-columns: 1fr;
  }
}
.pkgmap {
  position: relative;
  height: 500px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  background:
    radial-gradient(
      70% 55% at 22% 34%,
      color-mix(in srgb, var(--success) 20%, var(--surface-2)) 0%,
      transparent 60%),
    radial-gradient(
      60% 50% at 62% 62%,
      color-mix(in srgb, var(--warning) 16%, var(--surface-2)) 0%,
      transparent 58%),
    radial-gradient(
      45% 42% at 84% 30%,
      color-mix(in srgb, var(--info) 15%, var(--surface-2)) 0%,
      transparent 60%),
    var(--surface-2);
}
.pkgmap-grid {
  position: absolute;
  inset: 0;
  opacity: 0.5;
  background-image:
    linear-gradient(var(--hairline) 1px, transparent 1px),
    linear-gradient(
      90deg,
      var(--hairline) 1px,
      transparent 1px);
  background-size: 48px 48px;
}
.pkgmap-sea {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      120% 90% at 50% 40%,
      transparent 55%,
      color-mix(in srgb, var(--info) 8%, transparent) 100%);
  pointer-events: none;
}
.pkgmap-legend {
  position: absolute;
  left: 12px;
  bottom: 12px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  backdrop-filter: blur(3px);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 10.5px;
  font-weight: 600;
  color: var(--text-muted);
}
.pkgmap-legend .lg-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.pkgmap-legend .lg-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}
.pkgpin {
  position: absolute;
  transform: translate(-50%, -100%);
  cursor: pointer;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.pkgpin:hover,
.pkgpin.on {
  z-index: 5;
}
.pkgpin-head {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px 4px 5px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  box-shadow: var(--shadow-md);
  font-size: 11px;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  transition: transform 100ms;
}
.pkgpin:hover .pkgpin-head {
  transform: translateY(-2px);
}
.pkgpin.on .pkgpin-head {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft), var(--shadow-md);
}
.pkgpin-price {
  color: var(--text-muted);
  font-weight: 600;
  font-size: 10px;
}
.pkgpin-dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2.5px solid var(--surface);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  margin-top: -3px;
}
.pkgpin-cat {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
}
.pkgpin-inactive .pkgpin-head {
  opacity: 0.6;
}
.pkgmap-side {
  display: flex;
  flex-direction: column;
}
.pkgmap-empty {
  flex: 1;
  display: grid;
  place-items: center;
  text-align: center;
  color: var(--text-soft);
  padding: 24px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface-2);
}
app-pkg-map {
  display: block;
}
.pkgmap-host {
  position: relative;
  height: 500px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
}
.pkgmap-canvas {
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
  z-index: 1;
  background: var(--surface-2);
}
.pkgmap-host .pkgmap-legend {
  z-index: 2;
}
.pkgpin-leaflet .pkgpin {
  left: 0;
  top: 0;
}
.pkgpin-leaflet.on .pkgpin-head {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft), var(--shadow-md);
}
.pkgpin-leaflet.pkgpin-inactive .pkgpin-head {
  opacity: 0.65;
}
.leaflet-container {
  font: inherit;
  background: var(--surface-2);
}
.leaflet-bar a,
.leaflet-control-attribution {
  color: var(--text-muted);
}
.leaflet-container,
.leaflet-container *,
.leaflet-container *::before,
.leaflet-container *::after {
  box-sizing: content-box;
}
.leaflet-container img {
  max-width: none;
}
.leaflet-container .pkgpin,
.leaflet-container .pkgpin *,
.leaflet-container .pkgpin *::before,
.leaflet-container .pkgpin *::after {
  box-sizing: border-box;
}
.refmap-layers {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.refmap-layer {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
}
.refmap-layer.on {
  border-color: var(--accent);
  color: var(--accent-ink);
  background: var(--accent-soft);
}
.refmap-layer:not(.on):hover {
  border-color: var(--border-strong);
  color: var(--text);
}
.refmap-layer-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
}
.refpin {
  position: absolute;
  transform: translate(-50%, -50%);
  cursor: pointer;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.refpin.on,
.refpin:hover {
  z-index: 5;
}
.refpin-dot {
  display: grid;
  place-items: center;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.28);
  transition: transform 100ms;
}
.refpin:hover .refpin-dot {
  transform: scale(1.12);
}
.refpin.on .refpin-dot {
  box-shadow: 0 0 0 3px var(--accent-soft), 0 1px 4px rgba(0, 0, 0, 0.28);
}
.refpin-label {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--text);
  background: color-mix(in srgb, var(--surface) 82%, transparent);
  padding: 1px 6px;
  border-radius: 999px;
  white-space: nowrap;
}
.refpin.on .refpin-label {
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}
.vizmap-host {
  position: relative;
  height: 520px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
}
.vizmap-host .pkgmap-legend {
  z-index: 2;
}
.refpin-leaflet .refpin {
  left: 0;
  top: 0;
}
.leaflet-container .refpin,
.leaflet-container .refpin *,
.leaflet-container .refpin *::before,
.leaflet-container .refpin *::after {
  box-sizing: border-box;
}
.pa-idcard {
  display: flex;
  align-items: center;
  gap: 22px;
  background:
    linear-gradient(
      120deg,
      var(--surface),
      var(--surface-2));
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px 22px;
  box-shadow: var(--shadow-sm);
}
.pa-code {
  font-family: var(--mono);
  font-weight: 700;
  font-size: 26px;
  letter-spacing: 0.06em;
  color: var(--text);
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.pa-code-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 0 4px var(--success-soft);
}
.pa-copybtn {
  cursor: pointer;
}
.pa-offer {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}
.pa-offer:last-child {
  border-bottom: 0;
}
.pa-offer-ic {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: var(--chip);
  color: var(--text-soft);
  flex-shrink: 0;
}
.pa-offer-ic.sign {
  background: var(--info-soft);
  color: var(--info);
}
.pa-offer-ic.channel {
  background: var(--accent-soft);
  color: var(--accent-ink);
}
.pa-req {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px dashed var(--border);
  border-radius: 11px;
  background: var(--surface-2);
}
.pa-perm {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: var(--text-muted);
  font-weight: 600;
}
.pa-typecard {
  flex: 1;
  border: 1px solid var(--border);
  border-radius: 11px;
  padding: 14px;
  cursor: pointer;
  text-align: left;
  background: var(--surface);
  transition: 0.12s;
  font: inherit;
  color: inherit;
}
.pa-typecard.on {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.pa-typecard:hover:not(.on):not(:disabled) {
  background: var(--bg);
}
.pa-typecard:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.pa-asset {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 11px;
  border: 1px solid var(--border);
  border-radius: 9px;
  cursor: pointer;
  background: var(--surface);
}
.pa-asset.on {
  border-color: var(--accent);
  background: var(--accent-soft);
}
.pa-ctx {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  margin-bottom: 16px;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--info) 30%, transparent);
  background: var(--info-soft);
}
.pa-ctx-badge {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  flex-shrink: 0;
  gap: 6px;
  padding: 4px 9px;
  border-radius: 999px;
  background: var(--info);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.pa-ctx-label {
  font-size: 12px;
  color: var(--text-soft);
  white-space: nowrap;
}
.pa-ctx-picker {
  position: relative;
}
.pa-ctx-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 11px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  font-size: 12.5px;
  color: var(--text);
  cursor: pointer;
}
.pa-ctx-btn:hover,
.pa-ctx-btn.open {
  border-color: var(--accent);
}
.pa-ctx-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
}
.pa-ctx-menu {
  position: absolute;
  z-index: 40;
  top: calc(100% + 6px);
  inset-inline-start: 0;
  width: 340px;
  max-height: 380px;
  overflow: auto;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.18);
}
.pa-ctx-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  text-align: start;
  padding: 9px 12px;
  border: none;
  background: none;
  cursor: pointer;
  color: var(--text);
}
.pa-ctx-opt:hover {
  background: var(--chip);
}
.pa-ctx-opt.sel {
  background: var(--accent-soft);
}
.pa-ctx-opt .col {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.pa-ctx-sep {
  height: 1px;
  background: var(--hairline);
  margin: 4px 0;
}
:root {
  --nm1: oklch(0.58 0.16 25);
  --nm2: oklch(0.60 0.14 65);
  --nm3: oklch(0.56 0.13 108);
  --nm4: oklch(0.55 0.15 145);
  --nm5: oklch(0.56 0.10 195);
  --nm6: oklch(0.55 0.14 240);
  --nm7: oklch(0.52 0.16 275);
  --nm8: oklch(0.52 0.17 312);
  --nm9: oklch(0.56 0.17 350);
}
[data-theme=dark] {
  --nm1: oklch(0.74 0.15 30);
  --nm2: oklch(0.78 0.13 70);
  --nm3: oklch(0.76 0.13 110);
  --nm4: oklch(0.76 0.15 148);
  --nm5: oklch(0.76 0.10 198);
  --nm6: oklch(0.72 0.13 242);
  --nm7: oklch(0.70 0.16 278);
  --nm8: oklch(0.72 0.16 314);
  --nm9: oklch(0.74 0.17 352);
}
.nm-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.nm-stat {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
  padding: 10px 12px;
}
.nm-stat-l {
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-soft);
}
.nm-stat-v {
  font-size: 22px;
  font-weight: 700;
  margin-top: 2px;
}
.nm-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: var(--radius);
  font-size: 13px;
  font-weight: 600;
}
.nm-banner.win {
  background: var(--success-soft);
  color: var(--success);
}
.nm-banner.stuck {
  background: var(--warning-soft);
  color: var(--warning);
}
.nm-wrap {
  position: relative;
  align-self: center;
  width: 100%;
  max-width: 720px;
}
.nm-board {
  display: grid;
  gap: 6px;
}
.nm-cell {
  aspect-ratio: 1;
  border-radius: 9px;
  border: 1px solid var(--border);
  font-family: var(--mono);
  font-weight: 700;
  font-size: clamp(15px, 3.6vw, 21px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface);
  color: var(--text-soft);
  transition:
    transform 0.12s ease,
    box-shadow 0.12s ease,
    background 0.18s ease,
    opacity 0.2s ease;
  -webkit-user-select: none;
  user-select: none;
  cursor: pointer;
}
.nm-cell.empty {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  pointer-events: none;
}
.nm-cell.filled {
  color: var(--c);
  background: color-mix(in oklch, var(--c) 12%, var(--surface));
  border-color: color-mix(in oklch, var(--c) 26%, var(--border));
}
.nm-cell.filled:hover {
  transform: translateY(-1px);
  background: color-mix(in oklch, var(--c) 20%, var(--surface));
}
.nm-cell.sel {
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--c) 60%, transparent);
  transform: translateY(-1px);
  z-index: 2;
}
.nm-cell.hint {
  animation: nm-hint 0.5s ease-in-out infinite alternate;
}
.nm-cell.clearing {
  animation: nm-pop 0.24s ease forwards;
  z-index: 3;
}
.nm-cell.shake {
  animation: nm-shake 0.26s ease;
}
@keyframes nm-hint {
  from {
    box-shadow: 0 0 0 2px color-mix(in oklch, var(--c) 30%, transparent);
  }
  to {
    box-shadow: 0 0 0 4px color-mix(in oklch, var(--c) 70%, transparent);
  }
}
@keyframes nm-pop {
  0% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.14);
  }
  100% {
    transform: scale(0);
    opacity: 0;
  }
}
@keyframes nm-shake {
  0%, 100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-4px);
  }
  75% {
    transform: translateX(4px);
  }
}
.nm-flash {
  position: absolute;
  top: 4px;
  inset-inline-end: 8px;
  font-family: var(--mono);
  font-weight: 700;
  font-size: 20px;
  color: var(--success);
  pointer-events: none;
  animation: nm-float 0.7s ease forwards;
}
@keyframes nm-float {
  0% {
    opacity: 0;
    transform: translateY(6px);
  }
  25% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translateY(-22px);
  }
}
.nm-legend {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  margin-inline-start: auto;
}
.nm-chip {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-weight: 700;
  font-size: 12px;
  color: var(--c);
  background: color-mix(in oklch, var(--c) 14%, var(--surface));
  border: 1px solid color-mix(in oklch, var(--c) 26%, var(--border));
}
.nm-rules {
  line-height: 1.55;
}

/* angular:styles/global:styles */
/*# sourceMappingURL=styles.css.map */
