:root {
  --primary-color: #90ADD0;
  --primary-color-rgb: 144, 173, 208;
  --primary: #90ADD0;
  --primary-foreground: #ffffff;
  --primary-border: #7a9bc4;
  --destructive: #fce8ec;
  --destructive-foreground: #9b2330;
  --destructive-border: #f3b8c1;
  --success: #e8f5ec;
  --success-foreground: #2d6a3e;
  --success-border: #b9dfc8;
  --warning: #fff3e0;
  --warning-foreground: #b45309;
  --warning-border: #ffd7a1;
  --secondary: #f8f9fa;
  --secondary-foreground: #212529;
  --secondary-border: #dee2e6;
  --button-outline: #dee2e6;
  --ring: #90ADD0;
  --card: #ffffff;
  --card-foreground: #212529;
  --card-border: #dee2e6;
  --background: #ffffff;
  --muted-foreground: #6c757d;
  --font-family-body: "Open Sans", sans-serif;
  --font-family-heading: "Plus Jakarta Sans", sans-serif;
  --font-family-display: "Montserrat", sans-serif;
}
html {
  font-size: 10px;
}
body {
  font-family: "Open Sans", sans-serif;
  font-size: 1.4rem;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Plus Jakarta Sans", sans-serif;
}
h1:focus {
  outline: none;
}
h1 {
  font-size: 3.5rem;
  color: #90ADD0;
  padding-bottom: 10px;
  font-weight: bold;
}
h2 {
  font-size: 2.5rem;
  color: #90ADD0;
  font-weight: bold;
}
h3 {
  color: #90ADD0;
  font-weight: bold;
  font-size: 2rem;
  display: inline-block;
  margin-bottom: 20px;
}
h4 {
  font-size: 1.75rem;
  color: #90ADD0;
  font-weight: bold;
}
h5 {
  font-size: 1.65rem;
  color: #90ADD0;
}
h6 {
  font-size: 1.5rem;
  color: #90ADD0;
}
p {
  line-height: 2.4rem;
  padding-bottom: 10px;
}
.rte p {
  padding-bottom: 0;
}
code {
  font-size: 1.2rem;
}
label {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  color: #6c757d;
}
small {
  font-size: 1.15rem;
}
.text-purple {
  color: #90ADD0;
}
.text-dark-blue {
  color: #272B3B;
}
.smaller-text {
  font-size: 60%;
}
.valid.modified:not([type=checkbox]) {
  outline: 1px solid #26b050;
}
.invalid {
  outline: 1px solid #e50000;
}
.validation-message {
  color: #e50000;
}
.blazor-error-boundary {
  background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
  padding: 1rem 1rem 1rem 3.7rem;
  color: white;
}
.blazor-error-boundary::after {
  content: "An error has occurred.";
}
.fa-duotone {
  position: relative;
  display: inline-block;
  overflow: hidden;
}
.fa-duotone::before {
  display: inline-block;
}
.fa-duotone::after {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  display: inline-block;
}
#main {
  padding: 0;
  background: #fff;
  min-height: 100vh;
}
.main-content {
  margin-left: 200px;
  position: relative;
}
.page-actions-bar {
  position: relative;
  z-index: 2;
}
.flat-details-page {
  background: #ffffff;
}
.flat-details-page .project-tabs-container .card-shadow {
  box-shadow: none;
  background: #fafafa;
  border: 1px solid #edf2f7;
  border-radius: 0;
  padding-left: 0;
  padding-right: 0;
}
.main-content:has(.flat-details-page),
.main-content:has(.client-details),
.main-content:has(.supplier-details),
.main-content:has(.client-details.flat-details-page),
.main-content:has(.supplier-details.flat-details-page) {
  background: #ffffff;
}
#main:has(.client-details),
#main:has(.supplier-details) {
  background: #ffffff;
}
.main-content:has(.pipeline-page) {
  background: #ffffff;
}
.dashboard .main-content {
  margin-left: 50px;
}
@media (max-width: 992px) {
  .main-content {
    margin-left: 250px;
  }
}
#pageHeader {
  background: #90ADD0;
}
#pageHeader h1 {
  font-size: 2.5rem;
  font-weight: 600;
  color: #ffffff;
}
#pageHeader .page-heading-info {
  font-size: 1.4rem;
  color: #fff;
  margin-top: 0.25rem;
}
#pageHeader .page-heading-info .info-item {
  margin-right: 1.5rem;
}
#pageHeader .page-heading-info .info-item:last-child {
  margin-right: 0;
}
.page-header-actions button.ui-switch[data-unchecked] {
  background-color: rgba(255, 255, 255, 0.38);
}
.page-header-actions button.ui-switch[data-checked] {
  background-color: #ffffff;
}
.page-header-actions button.ui-switch .ui-switch-thumb {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}
.page-header-actions button.ui-switch[data-unchecked] .ui-switch-thumb {
  background-color: #ffffff;
}
.page-header-actions button.ui-switch[data-checked] .ui-switch-thumb {
  background-color: var(--primary-border, #7a9bc4);
}
.header-section {
  padding: 20px;
}
.header-section .inner {
  padding: 1.2rem 1.5rem;
  width: 100%;
  border-radius: 20px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
#pagebreadcrumb,
.page-breadcrumb {
  background: #90ADD0;
}
#blazor-error-ui {
  background: lightyellow;
  bottom: 0;
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
  display: none;
  left: 0;
  padding: 0.6rem 1.25rem 0.7rem 1.25rem;
  position: fixed;
  width: 100%;
  z-index: 1000;
}
#blazor-error-ui .dismiss {
  cursor: pointer;
  position: absolute;
  right: 0.75rem;
  top: 0.5rem;
}
.components-reconnect-modal {
  transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}
.components-reconnect-modal.components-reconnect-hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.components-reconnect-show {
  animation: fadeInReconnect 0.5s ease-in;
}
@keyframes fadeInReconnect {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
main.account {
  max-width: 400px;
  margin: 0 auto;
}
main.account.wide {
  max-width: 750px;
}
.auth-layout {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #272B3B 0%, #1a1e2e 100%);
  padding: 2rem 1rem;
}
.auth-content {
  width: 100%;
  max-width: 450px;
}
.login-card {
  background: #ffffff;
  border: none;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  overflow: hidden;
}
.login-card .login-header {
  background: linear-gradient(135deg, #90ADD0 0%, rgba(144, 173, 208, 0.8) 100%);
  padding: 3rem 2rem 2rem;
  color: #ffffff;
  text-align: center;
}
.login-card .login-header h2 {
  color: #ffffff;
  font-size: 2rem;
  margin-bottom: 0.5rem;
}
.login-card .login-header p {
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
  font-size: 1.1rem;
}
.login-card .login-logo {
  height: 80px;
  width: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.login-card .login-body {
  padding: 2rem;
}
.title-xs {
  font-size: 1.6rem;
  font-weight: 600;
}
.title-sm {
  font-size: 1.8rem;
  font-weight: 600;
}
.title-md {
  font-size: 2rem;
  font-weight: 600;
}
.title-lg {
  font-size: 2.4rem;
  font-weight: 600;
}
.title-xl {
  font-size: 3.2rem;
  font-weight: 600;
}
.title-sm-bold {
  font-size: 1.8rem;
  font-weight: 700;
}
.title-lg-bold {
  font-size: 2.4rem;
  font-weight: 700;
}
.text-body {
  font-size: 1.4rem;
}
.text-body-sm {
  font-size: 1.3rem;
}
.text-subtitle {
  font-size: 1.3rem;
}
.text-caption {
  font-size: 1.4rem;
}
.text-label {
  font-size: 1.2rem;
  font-weight: 600;
}
.text-small {
  font-size: 1.3rem;
}
.text-tiny {
  font-size: 1.1rem;
}
.text-micro {
  font-size: 1rem;
}
.text-badge {
  font-size: 1.2rem;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.tracking-wide {
  letter-spacing: 0.5px;
}
.tracking-wider {
  letter-spacing: 1px;
}
.tc-dark {
  color: #212529;
}
.tc-light {
  color: #ffffff;
}
.tc-alt {
  color: #272B3B;
}
.tc-muted {
  color: #6c757d;
}
.tc-success {
  color: #2d6a3e;
}
.tc-warning {
  color: #b45309;
}
.tc-danger {
  color: #9b2330;
}
.tc-info {
  color: #0dcaf0;
}
.tc-white {
  color: #ffffff;
}
.tc-black {
  color: #000000;
}
.tc-gray {
  color: #8d8f91;
}
.tc-grey-dark {
  color: #212529;
}
.tc-primary {
  color: #90ADD0;
}
.fw-medium {
  font-weight: 500;
}
.fw-bold {
  font-weight: 700;
}
.fw-normal {
  font-weight: 400;
}
.fw-light {
  font-weight: 300;
}
.fw-thin {
  font-weight: 100;
}
.fw-black {
  font-weight: 900;
}
.fw-semibold {
  font-weight: 600;
}
.fw-extrabold {
  font-weight: 800;
}
.fw-heavy {
  font-weight: 900;
}
.mw800 {
  max-width: 800px;
}
.mw-100 {
  max-width: 100%;
}
.container-1400 {
  width: 100%;
  max-width: 1400px;
  margin-inline: auto;
}
.mw35 {
  min-width: 35px;
}
.card-shadow {
  box-shadow: rgba(0, 0, 0, 0.04) 14px 17px 40px 40px;
  background: #fff;
}
.mt-0 {
  margin-top: 0;
}
.mt-0125 {
  margin-top: 0.125rem;
}
.mt-025 {
  margin-top: 0.25rem;
}
.mt-05 {
  margin-top: 0.5rem;
}
.mt-075 {
  margin-top: 0.75rem;
}
.mt-1 {
  margin-top: 1rem;
}
.mt-15 {
  margin-top: 1.5rem;
}
.mt-2 {
  margin-top: 2rem !important;
}
.mt-3 {
  margin-top: 3rem !important;
}
.mt-4 {
  margin-top: 4rem;
}
.mt-6 {
  margin-top: 6rem;
}
.mt-8 {
  margin-top: 8rem;
}
.mt-10 {
  margin-top: 10rem;
}
.mt-15r {
  margin-top: 15rem;
}
.mt-20 {
  margin-top: 20rem;
}
.mt24 {
  margin-top: 24px;
}
.mb-0 {
  margin-bottom: 0;
}
.mb-0125 {
  margin-bottom: 0.125rem;
}
.mb-025 {
  margin-bottom: 0.25rem;
}
.mb-05 {
  margin-bottom: 0.5rem;
}
.mb-075 {
  margin-bottom: 0.75rem;
}
.mb-1 {
  margin-bottom: 1rem;
}
.mb-15 {
  margin-bottom: 1.5rem;
}
.mb-2 {
  margin-bottom: 2rem !important;
}
.mb-3 {
  margin-bottom: 3rem !important;
}
.mb-4 {
  margin-bottom: 4rem;
}
.mb-0375 {
  margin-bottom: 0.375rem;
}
.mb-6 {
  margin-bottom: 6rem;
}
.mb-8 {
  margin-bottom: 8rem;
}
.mb-10 {
  margin-bottom: 10rem;
}
.mb-15r {
  margin-bottom: 15rem;
}
.mb-20 {
  margin-bottom: 20rem;
}
.ml-0 {
  margin-left: 0;
}
.ml-0125 {
  margin-left: 0.125rem;
}
.ml-025 {
  margin-left: 0.25rem;
}
.ml-05 {
  margin-left: 0.5rem;
}
.ml-075 {
  margin-left: 0.75rem;
}
.ml-1 {
  margin-left: 1rem;
}
.ml-15 {
  margin-left: 1.5rem;
}
.ml-2 {
  margin-left: 2rem;
}
.ml-4 {
  margin-left: 4rem;
}
.ml-6 {
  margin-left: 6rem;
}
.ml-8 {
  margin-left: 8rem;
}
.ml-10 {
  margin-left: 10rem;
}
.mr-0 {
  margin-right: 0;
}
.mr-0125 {
  margin-right: 0.125rem;
}
.mr-025 {
  margin-right: 0.25rem;
}
.mr-05 {
  margin-right: 0.5rem;
}
.mr-075 {
  margin-right: 0.75rem;
}
.mr-1 {
  margin-right: 1rem;
}
.mr-15 {
  margin-right: 1.5rem;
}
.mr-2 {
  margin-right: 2rem;
}
.mr-4 {
  margin-right: 4rem;
}
.mr-6 {
  margin-right: 6rem;
}
.mr-8 {
  margin-right: 8rem;
}
.mr-10 {
  margin-right: 10rem;
}
.m-0 {
  margin: 0;
}
.m-0125 {
  margin: 0.125rem;
}
.m-025 {
  margin: 0.25rem;
}
.m-0375 {
  margin: 0.375rem;
}
.m-05 {
  margin: 0.5rem;
}
.m-075 {
  margin: 0.75rem;
}
.m-1 {
  margin: 1rem;
}
.m-15 {
  margin: 1.5rem;
}
.m-2 {
  margin: 2rem;
}
.m-3 {
  margin: 3rem;
}
.m-4 {
  margin: 4rem;
}
.m-6 {
  margin: 6rem;
}
.m-8 {
  margin: 8rem;
}
.m-10 {
  margin: 10rem;
}
.m-15r {
  margin: 15rem;
}
.m-20 {
  margin: 20rem;
}
.mx-0 {
  margin-left: 0;
  margin-right: 0;
}
.mx-0125 {
  margin-left: 0.125rem;
  margin-right: 0.125rem;
}
.mx-025 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-05 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mx-075 {
  margin-left: 0.75rem;
  margin-right: 0.75rem;
}
.mx-1 {
  margin-left: 1rem;
  margin-right: 1rem;
}
.mx-15 {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.mx-2 {
  margin-left: 2rem;
  margin-right: 2rem;
}
.mx-4 {
  margin-left: 4rem;
  margin-right: 4rem;
}
.mx-6 {
  margin-left: 6rem;
  margin-right: 6rem;
}
.mx-8 {
  margin-left: 8rem;
  margin-right: 8rem;
}
.mx-10 {
  margin-left: 10rem;
  margin-right: 10rem;
}
.my-0 {
  margin-top: 0;
  margin-bottom: 0;
}
.my-0125 {
  margin-top: 0.125rem;
  margin-bottom: 0.125rem;
}
.my-025 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.my-05 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.my-075 {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}
.my-1 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.my-15 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.my-2 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.my-3 {
  margin-top: 3rem;
  margin-bottom: 3rem;
}
.my-4 {
  margin-top: 4rem;
  margin-bottom: 4rem;
}
.my-6 {
  margin-top: 6rem;
  margin-bottom: 6rem;
}
.my-8 {
  margin-top: 8rem;
  margin-bottom: 8rem;
}
.my-10 {
  margin-top: 10rem;
  margin-bottom: 10rem;
}
.my-15r {
  margin-top: 15rem;
  margin-bottom: 15rem;
}
.my-20 {
  margin-top: 20rem;
  margin-bottom: 20rem;
}
.gap-025 {
  gap: 0.25rem;
}
.gap-05 {
  gap: 0.5rem;
}
.gap-075 {
  gap: 0.75rem;
}
.gap-1 {
  gap: 1rem;
}
.gap-15 {
  gap: 1.5rem;
}
.pt-0 {
  padding-top: 0;
}
.pt-0125 {
  padding-top: 0.125rem;
}
.pt-025 {
  padding-top: 0.25rem;
}
.pt-05 {
  padding-top: 0.5rem;
}
.pt-075 {
  padding-top: 0.75rem;
}
.pt-1 {
  padding-top: 1rem;
}
.pt-125 {
  padding-top: 1.25rem;
}
.pt-15 {
  padding-top: 1.5rem;
}
.pt-2 {
  padding-top: 2rem;
}
.pt-4 {
  padding-top: 4rem;
}
.pt-6 {
  padding-top: 6rem;
}
.pt-8 {
  padding-top: 8rem;
}
.pt-10 {
  padding-top: 10rem;
}
.pb-0 {
  padding-bottom: 0;
}
.pb-0125 {
  padding-bottom: 0.125rem;
}
.pb-025 {
  padding-bottom: 0.25rem;
}
.pb-05 {
  padding-bottom: 0.5rem;
}
.pb-075 {
  padding-bottom: 0.75rem;
}
.pb-1 {
  padding-bottom: 1rem;
}
.pb-125 {
  padding-bottom: 1.25rem;
}
.pb-15 {
  padding-bottom: 1.5rem;
}
.pb-2 {
  padding-bottom: 2rem;
}
.pb-4 {
  padding-bottom: 4rem;
}
.pb-6 {
  padding-bottom: 6rem;
}
.pb-8 {
  padding-bottom: 8rem;
}
.pb-10 {
  padding-bottom: 10rem;
}
.pl-0 {
  padding-left: 0;
}
.pl-0125 {
  padding-left: 0.125rem;
}
.pl-025 {
  padding-left: 0.25rem;
}
.pl-05 {
  padding-left: 0.5rem;
}
.pl-075 {
  padding-left: 0.75rem;
}
.pl-1 {
  padding-left: 1rem;
}
.pl-125 {
  padding-left: 1.25rem;
}
.pl-15 {
  padding-left: 1.5rem;
}
.pl-2 {
  padding-left: 2rem;
}
.pl-4 {
  padding-left: 4rem;
}
.pl-6 {
  padding-left: 6rem;
}
.pl-8 {
  padding-left: 8rem;
}
.pl-10 {
  padding-left: 10rem;
}
.pr-0 {
  padding-right: 0;
}
.pr-0125 {
  padding-right: 0.125rem;
}
.pr-025 {
  padding-right: 0.25rem;
}
.pr-05 {
  padding-right: 0.5rem;
}
.pr-075 {
  padding-right: 0.75rem;
}
.pr-1 {
  padding-right: 1rem;
}
.pr-125 {
  padding-right: 1.25rem;
}
.pr-15 {
  padding-right: 1.5rem;
}
.pr-2 {
  padding-right: 2rem;
}
.pr-4 {
  padding-right: 4rem;
}
.pr-6 {
  padding-right: 6rem;
}
.pr-8 {
  padding-right: 8rem;
}
.pr-10 {
  padding-right: 10rem;
}
.px-0 {
  padding-left: 0;
  padding-right: 0;
}
.px-0125 {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
.px-025 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-05 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-075 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-1 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-125 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-15 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-2 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.px-4 {
  padding-left: 4rem;
  padding-right: 4rem;
}
.px-6 {
  padding-left: 6rem;
  padding-right: 6rem;
}
.px-8 {
  padding-left: 8rem;
  padding-right: 8rem;
}
.px-10 {
  padding-left: 10rem;
  padding-right: 10rem;
}
.py-0 {
  padding-top: 0;
  padding-bottom: 0;
}
.py-0125 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-025 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-05 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-075 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-1 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-125 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-15 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-2 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-4 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-6 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.py-8 {
  padding-top: 8rem;
  padding-bottom: 8rem;
}
.py-10 {
  padding-top: 10rem;
  padding-bottom: 10rem;
}
.p-0 {
  padding: 0;
}
.p-0125 {
  padding: 0.125rem;
}
.p-025 {
  padding: 0.25rem;
}
.p-0375 {
  padding: 0.375rem;
}
.p-05 {
  padding: 0.5rem;
}
.p-075 {
  padding: 0.75rem;
}
.p-1 {
  padding: 1rem;
}
.p-15 {
  padding: 1.5rem;
}
.p-2 {
  padding: 2rem;
}
.p-3 {
  padding: 3rem;
}
.p-4 {
  padding: 4rem;
}
.p-6 {
  padding: 6rem;
}
.p-8 {
  padding: 8rem;
}
.p-10 {
  padding: 10rem;
}
.p-15r {
  padding: 15rem;
}
.p-20 {
  padding: 20rem;
}
.cursor-pointer {
  cursor: pointer;
}
.cursor-default {
  cursor: default;
}
.select-none {
  user-select: none;
}
.select-text {
  user-select: text;
}
.select-all {
  user-select: all;
}
.transition-fast {
  transition: all 0.15s ease;
}
.transition-none {
  transition: none;
}
.wspl {
  white-space: pre-line;
}
.clearfix::after {
  display: block;
  content: "";
  clear: both;
}
.hide-controls-until-hover .controls {
  display: none;
}
.hide-controls-until-hover:hover .controls {
  display: block;
}
.booking-indicator {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}
.booking-indicator-positive {
  background-color: var(--action-positive) !important;
}
.booking-indicator-neutral {
  background-color: var(--action-neutral) !important;
}
.booking-indicator-negative {
  background-color: var(--action-negative) !important;
}
.booking-indicator-info {
  background-color: #0dcaf0 !important;
}
.status-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}
.status-indicator.active {
  background-color: #2d6a3e;
  box-shadow: 0 0 0 2px rgba(45, 106, 62, 0.2);
}
.status-indicator.inactive {
  background-color: #6c757d;
  box-shadow: 0 0 0 2px rgba(108, 117, 125, 0.2);
}
.status-indicator.pending {
  background-color: #b45309;
  box-shadow: 0 0 0 2px rgba(180, 83, 9, 0.2);
}
.status-indicator.expired {
  background-color: #9b2330;
  box-shadow: 0 0 0 2px rgba(155, 35, 48, 0.2);
}
.badge {
  font-size: 1.4rem;
}
.blue-table-badge {
  background-color: white;
  color: #0d6efd;
  border: 1px solid #0d6efd;
}
.orange-table-badge {
  background-color: #fff3e0;
  color: #b45309;
  border: 1px solid #ffd7a1;
}
.red-table-badge {
  background-color: #fce8ec;
  color: #9b2330;
  border: 1px solid #f3b8c1;
}
.teal-table-badge {
  background-color: white;
  color: #20c997;
  border: 1px solid #20c997;
}
.grey-table-badge {
  background-color: white;
  color: #6c757d;
  border: 1px solid #6c757d;
}
.modal-show {
  display: block !important;
}
.modal-backdrop-show {
  z-index: 1040;
}
.modal-content-show {
  z-index: 1050;
}
.modal-fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}
.modal-dialog-centered {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  margin: 0 auto;
  max-width: 90%;
}
.z-index-1000 {
  z-index: 1000;
}
.z-index-1001 {
  z-index: 1001;
}
.z-index-1040 {
  z-index: 1040;
}
.z-index-1050 {
  z-index: 1050;
}
.z-index-1055 {
  z-index: 1055;
}
.display-block {
  display: block;
}
.display-block-important {
  display: block !important;
}
.font-size-3rem {
  font-size: 3rem;
}
.font-size-1-3rem {
  font-size: 1.3rem;
}
.table-no-shadow {
  box-shadow: none;
}
.list-scrollable {
  max-height: 300px;
  overflow-y: auto;
}
.max-width-500 {
  max-width: 500px;
}
.width-40 {
  width: 40px;
}
.width-100 {
  width: 100px;
}
.width-150 {
  width: 150px;
}
.w-100 {
  width: 100%;
}
.max-w-90 {
  max-width: 90%;
}
.h-100 {
  height: 100%;
}
.max-height-200 {
  max-height: 200px;
}
.margin-auto {
  margin: 0 auto;
}
.p-0 {
  padding: 0;
}
.p-025 {
  padding: 0.25rem;
}
.p-05 {
  padding: 0.5rem;
}
.p-075 {
  padding: 0.75rem;
}
.p-1 {
  padding: 1rem;
}
.p-125 {
  padding: 1.25rem;
}
.p-15 {
  padding: 1.5rem;
}
.p-2 {
  padding: 2rem;
}
.border-0 {
  border: 0;
}
.rounded-sm {
  border-radius: 6px;
}
.rounded-md {
  border-radius: 8px;
}
.rounded-lg {
  border-radius: 12px;
}
.position-relative {
  position: relative;
}
.flex-grow-1 {
  flex: 1;
}
.text-start {
  text-align: start;
}
.bg-modal-overlay {
  background-color: rgba(0, 0, 0, 0.5);
}
.overflow-y-auto {
  overflow-y: auto;
}
.transition-smooth {
  transition: all 0.3s ease-out;
}
.font-weight-normal {
  font-weight: normal;
}
.badge-font-small {
  font-size: 0.6rem;
}
.tooltip .tooltip-inner {
  font-size: 1.4rem;
  padding: 0.5rem 0.75rem;
}
.input {
  border-radius: 10px;
  font-size: 1.4rem;
}
.form-control {
  border-radius: 10px;
  font-size: 1.4rem;
}
.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}
.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
  text-align: start;
}
.form-floating > .form-control-plaintext ~ label,
.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
  color: rgba(var(--bs-body-color-rgb), 0.65);
  transform: scale(0.85) translateY(-2rem) translateX(0.15rem);
}
.darker-border-checkbox.form-check-input {
  border-color: #929292;
}
.form-select {
  color: #212529;
}
.form-select option {
  color: #212529;
  background-color: #ffffff;
}
.form-check-input {
  width: 20px;
  height: 20px;
  margin-right: 10px;
  z-index: 10;
}
.form-check-input:checked {
  background-color: #66bb6a;
  border: 0;
}
.form-control:focus,
.form-check-input:focus {
  box-shadow: 0 0 0 0.1rem #ffffff, 0 0 0 0.25rem #258cfb;
}
.radio-group {
  border: none;
  padding: 0;
  margin: 0;
}
.radio-group legend {
  border: none;
  width: auto;
  padding: 0;
  margin-bottom: 1rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--bs-dark);
}
.radio-group .form-check {
  margin-bottom: 0.75rem;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(0, 0, 0, 0.125);
  border-radius: 8px;
  transition: all 0.2s ease-in-out;
  background-color: var(--bs-light);
}
.radio-group .form-check:hover {
  border-color: #90ADD0;
  background-color: rgba(var(--bs-primary-rgb), 0.05);
}
.radio-group .form-check:has(.form-check-input:checked) {
  border-color: #90ADD0;
  background-color: rgba(var(--bs-primary-rgb), 0.1);
  box-shadow: 0 0 0 0.125rem rgba(var(--bs-primary-rgb), 0.25);
}
.radio-group .form-check:last-child {
  margin-bottom: 0;
}
.radio-group .form-check-input {
  margin-top: 0.25em;
  margin-right: 0.75rem;
}
.radio-group .form-check-input:checked {
  background-color: #90ADD0;
  border-color: #90ADD0;
}
.radio-group .form-check-input:focus {
  border-color: #90ADD0;
  box-shadow: 0 0 0 0.125rem rgba(var(--bs-primary-rgb), 0.25);
}
.radio-group .form-check-label {
  font-weight: 500;
  color: var(--bs-dark);
  cursor: pointer;
  margin-bottom: 0;
  line-height: 1.4;
}
.alert-danger {
  border-radius: 5px;
}
.list-group-item.active {
  background-color: #90ADD0;
  border-color: #90ADD0;
}
.list-group-item.active .text-muted {
  color: #ffffff !important;
}
.list-group-item.active .nav-icon-wrapper {
  background-color: #ffffff !important;
}
.dropdown-menu {
  min-width: 300px;
}
.dropdown-item {
  transition: all 0.2s ease-in-out;
}
.dropdown-item:hover {
  background-color: var(--bs-light);
}
a,
.btn-link {
  color: #90ADD0;
  transition: 0.3s all ease-in-out;
}
.btn-primary {
  color: #ffffff;
  background-color: #272B3B;
  border-color: #272B3B;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-primary:hover {
  color: #ffffff;
  border-color: #272B3B;
  background-color: #90ADD0;
}
.btn-reverse-primary {
  color: #ffffff;
  background-color: #90ADD0;
  border-color: #90ADD0;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-reverse-primary:hover {
  color: #ffffff;
  border-color: #90ADD0;
  background-color: #272B3B;
}
.btn-outline-primary {
  border-color: #90ADD0;
  color: #90ADD0;
  border-radius: 25px;
}
.btn-outline-primary:hover {
  color: #ffffff;
  background-color: #90ADD0;
  border-color: #90ADD0;
}
.btn-outline-secondary {
  border-color: #6c757d;
  color: #6c757d;
  border-radius: 25px;
}
.btn-outline-secondary:hover {
  color: #ffffff;
  background-color: #6c757d;
  border-color: #6c757d;
}
.btn-red {
  color: #ffffff;
  background-color: #e5737a;
  border-color: #e5737a;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-red:hover {
  color: #e5737a;
  background-color: #ffffff;
  border-color: #e5737a;
}
.btn-outline-red {
  border-color: #e5737a;
  color: #e5737a;
  border-radius: 25px;
}
.btn-outline-red:hover {
  color: #ffffff;
  background-color: #e5737a;
  border-color: #e5737a;
}
.btn-success {
  color: #ffffff;
  background-color: #66bb6a;
  border-color: #66bb6a;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-success:hover {
  color: #66bb6a;
  background-color: #ffffff;
  border-color: #66bb6a;
}
.btn-small-green {
  color: #ffffff;
  background-color: #66bb6a;
  border-color: #66bb6a;
  border-width: 2px;
  padding: 5px 10px;
  border-radius: 6px;
  font-size: 1rem;
}
.btn-small-green:hover {
  color: #66bb6a;
  background-color: #ffffff;
  border-color: #66bb6a;
}
.btn-secondary {
  color: #90ADD0;
  background-color: #ffffff;
  border-color: #90ADD0;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-secondary:hover {
  color: #ffffff;
  background-color: #90ADD0;
  border-color: #90ADD0;
}
.btn:disabled {
  background: #8d8f91;
  border-color: #6c757d;
}
.btn-danger {
  color: #ffffff;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-light {
  color: #90ADD0;
  background-color: #fafafa;
  border-color: #fafafa;
}
.btn-light:hover {
  color: #ffffff;
  background-color: #90ADD0;
  border-color: #90ADD0;
}
.btn:focus,
.btn:active,
.btn:hover,
.btn:active:focus {
  outline: none !important;
  box-shadow: none !important;
}
.btn-link.nav-link:focus {
  box-shadow: 0 0 0 0.1rem #ffffff, 0 0 0 0.25rem #258cfb;
}
.btn-sm {
  font-size: 1rem !important;
  padding: 0.375rem 0.75rem !important;
}
.btn-sm.btn-primary,
.btn-sm.btn-reverse-primary,
.btn-sm.btn-danger,
.btn-sm.btn-secondary,
.btn-sm.btn-success {
  font-size: 1rem !important;
  padding: 0.375rem 0.75rem !important;
}
.btn-action-positive {
  color: #ffffff;
  background-color: #66bb6a;
  border-color: #66bb6a;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-action-positive:hover {
  color: #ffffff;
  background-color: #49a54e;
  border-color: #49a54e;
}
.btn-outline-action-positive {
  color: #66bb6a;
  background-color: #ffffff;
  border-color: #66bb6a;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-outline-action-positive:hover {
  color: #ffffff;
  background-color: #66bb6a;
  border-color: #66bb6a;
}
.btn-action-negative {
  color: #ffffff;
  background-color: #e5737a;
  border-color: #e5737a;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-action-negative:hover {
  color: #ffffff;
  background-color: #dd4851;
  border-color: #dd4851;
}
.btn-outline-action-negative {
  color: #e5737a;
  background-color: #ffffff;
  border-color: #e5737a;
  border-width: 2px;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 1.2rem;
}
.btn-outline-action-negative:hover {
  color: #ffffff;
  background-color: #e5737a;
  border-color: #e5737a;
}
.nav-pills .nav-link {
  color: #6c757d;
  background-color: transparent;
  border: none;
  transition: all 0.2s ease;
}
.nav-pills .nav-link:hover {
  color: var(--primary-color, #6c757d);
  background-color: rgba(var(--primary-color-rgb, 144, 173, 208), 0.1);
}
.nav-pills .nav-link.active {
  color: #fff;
  background-color: var(--primary-color, #90ADD0);
}
.nav-pills .nav-link.active:hover {
  color: #fff !important;
  background-color: var(--primary-color, #90ADD0);
}
.logo {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--primary-color);
  padding-top: 1.5rem;
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  text-align: left;
  margin-left: 20px;
  max-width: 300px;
}
.logo.center {
  margin-left: auto;
  margin-right: auto;
}
.logo img {
  width: 120px;
  height: auto;
}
.sidebar {
  background-color: #fafafa;
  border-right: 1px solid #edf2f7;
  padding-top: 0;
  min-height: 100vh;
  position: fixed;
  height: 100vh;
  max-height: 700px;
  overflow-y: auto;
  width: 200px;
}
.sidebar nav.nav {
  display: flex;
  flex-direction: column;
  height: calc(100% - 100px);
}
.sidebar .nav-item:nth-last-child(2) {
  border-top: 1px solid #edf2f7;
  padding-top: 1rem;
  margin-top: auto;
}
.sidebar .nav-link {
  color: #212529;
  padding: 1.2rem 2rem;
  font-size: 1.4rem;
  display: flex;
  align-items: center;
  margin: 0;
  transition: all 0.2s ease;
}
.sidebar .nav-link i {
  width: 2.4rem;
  font-size: 1.6rem;
  margin-right: 1rem;
}
.sidebar .nav-link:hover {
  background-color: var(--primary-light);
  color: var(--secondary-color);
}
.sidebar .nav-link.active {
  color: #90ADD0;
  background-color: #F1F0EA;
  font-weight: 500;
}
.sidebar .nav-link.active:hover {
  background-color: #F1F0EA;
  color: var(--primary-color);
}
.sidebar .nav-link--skeleton {
  display: block;
  height: 1.6rem;
  margin: 0.8rem 2rem;
  border-radius: 0.25rem;
  background: linear-gradient(90deg, #e8ecf1 25%, #f4f6f8 50%, #e8ecf1 75%);
  background-size: 200% 100%;
  animation: nav-skeleton-shimmer 1.2s ease-in-out infinite;
  pointer-events: none;
}
@keyframes nav-skeleton-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
.settings-nav .list-group-item {
  transition: all 0.2s ease-in-out;
  background-color: var(--bs-light);
}
.settings-nav .list-group-item:hover {
  background-color: var(--bs-light);
}
.settings-nav .list-group-item.active {
  background-color: #272B3B;
  border-color: #272B3B;
  color: white;
}
.settings-nav .list-group-item.active .nav-icon-wrapper {
  background-color: rgba(255, 255, 255, 0.2) !important;
}
.settings-nav .list-group-item.active .nav-icon-wrapper i {
  color: white;
}
.settings-nav .list-group-item.active .text-muted {
  color: rgba(255, 255, 255, 0.8) !important;
}
.settings-nav .nav-icon-wrapper {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 50%;
  background-color: rgba(var(--purple-rgb), 0.1);
}
.settings-nav .nav-icon-wrapper i {
  color: #90ADD0;
}
.editable-field {
  border-bottom: 1px solid #efefef;
  margin-bottom: 10px;
}
.editable-field label {
  color: #8d8f91;
  font-size: 1.4rem;
}
.editable-field:last-child {
  border-bottom: none;
}
.editable-field:last-of-type {
  border-bottom: none;
}
.editable-display {
  cursor: pointer;
  padding: 0.375rem 0.75rem;
  min-height: 1.5rem;
  box-sizing: border-box;
  border-radius: 0.25rem;
  transition: background-color 0.15s ease-in-out;
}
.editable-display .text-muted {
  color: #90ADD0 !important;
  opacity: 0.7;
}
.editable-display:hover:not(.disabled) {
  background-color: rgba(0, 0, 0, 0.05);
}
.editable-display.disabled {
  cursor: not-allowed;
  opacity: 0.65;
}
.user-select.editable-field .editable-field {
  margin-bottom: 1rem;
}
.multi-relations.editable-field .dropdown-item {
  max-width: 90%;
}
.multi-relations.editable-field .multiselect-label {
  padding: 5px;
}
.multi-relations.editable-field .multiselect-check {
  margin: 5px;
}
.multi-relations.editable-field .dropdown-menu {
  padding: 0;
}
.multi-relations.editable-field .dropdown-item:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.multi-relations.editable-field .dropdown-item label {
  color: #333;
}
.multi-relations.editable-field .dropdown-menu-content {
  padding: 0.5rem 0;
}
.multi-relations.editable-field .selected-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 90%;
}
.multi-relations.editable-field .dropdown-menu.show {
  display: block;
  width: 100%;
  position: absolute;
  inset: 0px auto auto 0px;
  margin: 0px;
  transform: translate(0px, 40px);
}
.multi-relations.editable-field .dropdown-toggle {
  white-space: normal;
  min-height: 38px;
}
.multi-select.editable-field {
  cursor: pointer;
  min-height: 1.5rem;
  border-radius: 0.25rem;
  transition: background-color 0.15s ease-in-out;
}
.multi-select.editable-field .dropdown-item {
  max-width: 90%;
}
.multi-select.editable-field .editable-display:hover:not(.disabled) {
  background-color: rgba(0, 0, 0, 0.05);
}
.multi-select.editable-field .editable-display.disabled {
  cursor: not-allowed;
  opacity: 0.65;
}
.multi-select.editable-field .multiselect-label {
  padding: 5px;
}
.multi-select.editable-field .multiselect-check {
  margin: 5px;
}
.multi-select.editable-field .dropdown-menu {
  padding: 0;
}
.multi-select.editable-field .dropdown-item:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.multi-select.editable-field .dropdown-item label {
  color: #333;
}
.multi-select.editable-field .dropdown-menu-content {
  padding: 0.5rem 0;
}
.multi-select.editable-field .selected-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 90%;
}
.multi-select.editable-field .dropdown-menu.show {
  display: block;
  width: 100%;
  position: absolute;
  inset: 0px auto auto 0px;
  margin: 0px;
  transform: translate(0px, 40px);
}
.multi-select.editable-field .dropdown-toggle {
  white-space: normal;
  min-height: 38px;
}
.text-area.editable-field .editable-display pre {
  white-space: pre-wrap;
  word-wrap: break-word;
}
.text-area.editable-field .editable-display p {
  white-space: pre-line;
  word-wrap: break-word;
}
.text-area.editable-field .input-group textarea {
  min-height: 100px;
  resize: vertical;
}
.text-area.editable-field .char-counter {
  margin-top: 0.25rem;
  text-align: right;
  font-size: 1.1rem;
  color: #6c757d;
  line-height: 1;
}
.tutor-select.editable-field {
  cursor: pointer;
  min-height: 1.5rem;
  border-radius: 0.25rem;
  transition: background-color 0.15s ease-in-out;
}
.tutor-select.editable-field .dropdown-item {
  max-width: 90%;
}
.tutor-select.editable-field .editable-display:hover:not(.disabled) {
  background-color: rgba(0, 0, 0, 0.05);
}
.tutor-select.editable-field .editable-display.disabled {
  cursor: not-allowed;
  opacity: 0.65;
}
.tutor-select.editable-field .multiselect-label {
  padding: 5px;
}
.tutor-select.editable-field .multiselect-check {
  margin: 5px;
}
.tutor-select.editable-field .dropdown-menu {
  padding: 0;
}
.tutor-select.editable-field .dropdown-item:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.tutor-select.editable-field .dropdown-item label {
  color: #333;
}
.tutor-select.editable-field .dropdown-menu-content {
  padding: 0.5rem 0;
}
.tutor-select.editable-field .selected-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 90%;
}
.tutor-select.editable-field .dropdown-menu.show {
  display: block;
  width: 100%;
  position: absolute;
  inset: 0px auto auto 0px;
  margin: 0px;
  transform: translate(0px, 40px);
}
.tutor-select.editable-field .dropdown-toggle {
  white-space: normal;
  min-height: 38px;
}
.int-slider.editable-field .badge {
  font-size: 1rem;
  font-weight: 600;
  padding: 0.5rem 0.75rem;
}
.editable-field .rte {
  cursor: pointer;
  padding: 0.375rem 0.75rem;
  min-height: 1.5rem;
  max-width: 100%;
  overflow: hidden;
  border-radius: 0.25rem;
  transition: background-color 0.15s ease-in-out;
}
.editable-field .rte:hover:not(.disabled) {
  background-color: rgba(0, 0, 0, 0.05);
}
.editable-field .rte.disabled {
  cursor: not-allowed;
  opacity: 0.65;
}
.editable-field .rte .ql-indent-1 {
  padding-left: 3em;
}
.editable-field .rte .ql-indent-2 {
  padding-left: 6em;
}
.editable-field .rte .ql-indent-3 {
  padding-left: 9em;
}
.editable-field .rte .ql-indent-4 {
  padding-left: 12em;
}
.editable-field .rte .ql-indent-5 {
  padding-left: 15em;
}
.editable-field .quill-editor-container {
  background-color: #fefefe !important;
  min-height: 200px !important;
}
.editable-field .quill-editor-container .ql-editor {
  background-color: #fefefe !important;
  min-height: 200px !important;
}
.dynamic-select-save {
  border-radius: 0;
  text-align: center;
  font-weight: bold;
  margin: 0;
  color: #fff;
  height: 31px;
  background: #66bb6a;
}
.dynamic-select-save.list {
  border-radius: 3px;
}
.dynamic-select-save:hover {
  background: #49a54e;
  color: #fff;
}
.dynamic-select-cancel {
  border-radius: 0 10px 10px 0;
  text-align: center;
  margin: 0;
  font-weight: bold;
  color: #fff;
  height: 31px;
  background: #e5737a;
}
.dynamic-select-cancel:hover {
  background: #dd4851;
  color: #fff;
}
.dynamic-select-cancel.list {
  margin-right: 20px;
  border-radius: 3px;
}
.floating-save {
  position: absolute;
  bottom: 10px;
  right: 10px;
}
.floating-save .dynamic-select-save {
  border-radius: 10px 0 0 10px;
}
.editable-inline-number {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 100%;
}
.editable-inline-number-display {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  cursor: pointer;
  border-radius: 6px;
  transition: background-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.editable-inline-number-display:hover:not(.editable-inline-number-display-disabled) {
  background-color: rgba(144, 173, 208, 0.06);
}
.editable-inline-number-display-disabled {
  cursor: default;
  opacity: 0.75;
}
.editable-inline-number-value {
  font-weight: 600;
}
.editable-inline-number-icon {
  font-size: 0.72rem;
  color: #6c757d;
  opacity: 0;
  transition: opacity 0.15s ease-in-out;
}
.editable-inline-number-display:hover .editable-inline-number-icon,
.editable-inline-number-display:focus-within .editable-inline-number-icon {
  opacity: 1;
}
.editable-inline-number-editor {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.editable-inline-number-input {
  width: 5.5rem;
  min-height: 2.2rem;
}
.editable-inline-number-error {
  margin-top: 0.25rem;
  font-size: 1.4rem;
}
.editable-inline-number--badge .editable-inline-number-display {
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: rgba(108, 117, 125, 0.12);
}
.editable-inline-number--badge .editable-inline-number-value {
  font-size: 1.4rem;
  color: #6c757d;
}
.editable-inline-number--badge .editable-inline-number-display:hover:not(.editable-inline-number-display-disabled) {
  background: rgba(144, 173, 208, 0.1);
}
.editable-inline-number--heading .editable-inline-number-display {
  padding: 0.1rem 0.35rem;
  margin: -0.1rem -0.35rem;
}
.editable-inline-number--heading .editable-inline-number-value {
  font-size: 1.8rem;
  color: #212529;
  line-height: 1.2;
}
.editable-inline-number--meta .editable-inline-number-display {
  padding: 0.15rem 0.25rem;
  margin: -0.15rem -0.25rem;
}
.editable-inline-number--meta .editable-inline-number-value {
  line-height: 1.2;
}
.detail-split-badges .editable-inline-number--badge {
  vertical-align: middle;
}
.di-stepper-meta .editable-inline-number--meta {
  min-width: 4.5rem;
}
.status-display {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  width: fit-content;
}
.status-display .status-indicator {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  flex-shrink: 0;
}
.status-display .status-text {
  font-size: 1rem;
  color: #212529;
  white-space: nowrap;
  font-weight: 500;
}
.status-display .status-indicator.status-overdue {
  background-color: #9b2330 !important;
}
.status-display .status-indicator.status-in-progress {
  background-color: #0d6efd !important;
}
.status-display .status-indicator.status-overdue-in-progress {
  background: linear-gradient(135deg, rgba(155, 35, 48, 0.85) 50%, #0d6efd 50%) !important;
}
.status-display .status-indicator.status-complete {
  background-color: #2d6a3e !important;
}
.status-display .status-indicator.status-to-do {
  background-color: #b45309 !important;
}
.status-display .status-indicator.status-inactive {
  background-color: #6c757d !important;
}
.status-display .status-indicator.status-upcoming {
  background-color: #17a2b8 !important;
}
.status-display .status-indicator.status-private {
  background-color: #8B1538 !important;
}
.toast-container {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1000;
}
.toast-message {
  padding: 1rem 1.5rem;
  margin: 0.5rem;
  border-radius: 10px;
  color: white;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease-in-out;
}
.toast.show {
  transform: translateX(0);
  opacity: 1;
  background-color: #ccc;
}
.toast-success {
  background-color: #48bb78;
}
.toast-error {
  background-color: #f56565;
}
.toast-info {
  background-color: #4299e1;
}
.toast-warning {
  background-color: #f59e0b;
}
@keyframes slideIn {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
.list-filter {
  height: 80px;
  background: #ffffff;
}
.list-filter::after {
  content: "";
  display: table;
  clear: both;
}
.list-filter ul {
  list-style-type: none;
  position: relative;
  z-index: 10;
}
.list-filter ul > li {
  position: relative;
  height: 80px;
  float: left;
  width: 200px;
}
.list-filter ul > li label {
  position: absolute;
  left: 30px;
  top: 14px;
  font-size: 1.2rem;
  color: #6c757d;
  z-index: 11;
  font-weight: bold;
}
.list-filter ul > li label span {
  display: block;
  padding: 5px 0;
  color: #90ADD0;
  max-height: 45px;
  overflow: hidden;
  position: relative;
  padding-right: 20px;
}
.list-filter ul > li label span.overflowing::after {
  content: " +";
  position: absolute;
  right: 0;
  color: #66bb6a;
  pointer-events: none;
}
.list-filter ul > li label span.summary {
  display: inline;
  padding: 0;
  max-height: none;
}
.list-filter ul > li:not(.textinput) > label {
  top: 60%;
  transform: translateY(-50%);
}
.list-filter ul > li.textinput > label {
  top: 14px;
  transform: none;
}
.list-filter ul > li.textinput input {
  margin-top: 35px;
  position: relative;
  left: 25px;
  width: 140px;
  font-size: 1.2rem;
  color: #90ADD0;
}
.list-filter ul > li ul {
  position: absolute;
  margin-top: 10px;
  width: 200px;
  border-radius: 25px;
  background: #ffffff;
  max-height: 500px;
  overflow-y: auto;
}
.list-filter ul > li ul li {
  display: none;
  width: 100%;
  height: auto;
  padding: 5px 0;
}
.list-filter ul > li ul li label {
  text-decoration: none;
  color: #90ADD0;
  font-size: 1.4rem;
  padding: 5px 10px 5px 10px;
  display: block;
  position: relative;
  font-weight: 400;
  left: 0;
  top: 0;
  cursor: pointer;
}
.list-filter ul > li ul li input {
  display: none;
}
.list-filter ul > li ul li input[type="checkbox"]:checked + label {
  font-weight: bold;
  position: relative;
}
.list-filter ul > li ul li input[type="checkbox"]:checked + label:before {
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #66bb6a;
  position: absolute;
  left: -10px;
  top: 10px;
}
.list-filter ul > li:hover:not(.textinput) label {
  display: none;
}
.list-filter ul > li:hover:not(.textinput) ul li {
  display: block;
}
.list-filter ul > li:hover:not(.textinput) ul li label {
  display: block;
}
.list-filter ul > li.small-filter {
  width: 150px;
}
.list-filter ul > li.small-filter button {
  margin-top: 15px;
}
.list-filter ul > li.reset-button-container button {
  margin-top: 15px;
}
.list-filter .summary {
  display: inline-block;
  margin-left: 0.5rem;
}
.list-container {
  position: relative;
  overflow: auto;
}
.list-container table {
  width: 100%;
  border-collapse: collapse;
}
.list-container table thead tr th {
  padding: 0.75rem 1rem;
  text-align: left;
  font-weight: bold;
  border-bottom: 2px solid #e9ecef;
  box-shadow: none !important;
  background: none;
}
.list-container table tbody .list-row {
  background-color: #ffffff;
  border-bottom: 1px solid #e9ecef;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.list-container table tbody .list-row:hover {
  background-color: #f8f9fa;
}
.list-container table tbody .list-row td {
  padding: 0.75rem 1rem;
  vertical-align: middle;
  border-bottom: none;
  box-shadow: none !important;
  font-size: 1.4rem;
  background: none;
}
.list-container table tbody .list-row .avatar {
  width: 48px;
  height: 48px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-color: #e9ecef;
}
.list-container table tbody .list-row .avatar-initials {
  width: 100%;
  height: 100%;
  font-weight: bold;
  color: #ffffff;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
}
.list-container table tbody .list-row .avatar-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.list-container table tbody .list-row .list-name {
  font-size: 1.4rem;
  font-weight: bold;
  margin: 0;
}
.list-container table tbody .list-row .list-id {
  font-size: 0.85rem;
  color: #6c757d;
}
.list-container table tbody .list-row .badge {
  font-size: 1.4rem;
  border-radius: 4px;
  padding: 0.5rem 0.75rem;
  display: inline-block;
  text-align: center;
}
.list-container table tbody .list-row .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 4px;
}
.list-container table tbody .list-row .additional-field {
  font-size: 0.9rem;
  color: #6c757d;
}
.icon-wrapper {
  width: 40px;
  height: 40px;
  min-width: 40px;
}
.card-shadow {
  box-shadow: rgba(0, 0, 0, 0.04) 14px 17px 40px 40px;
  background: #fff;
}
.modal-backdrop {
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1040;
}
.modal {
  z-index: 1050;
}
.modal-dialog {
  z-index: 1055;
}
.person-name-edit-section {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out, opacity 0.3s ease-out, padding 0.3s ease-out;
  opacity: 0;
  padding: 0;
  margin: 0;
}
.person-name-edit-section.show {
  max-height: 500px;
  opacity: 1;
  padding-top: 0.5rem;
}
.search-box {
  position: relative;
  margin-right: 1.5rem;
}
.search-box input {
  background-color: #ffffff;
  border: 1px solid #edf2f7;
  border-radius: 3rem;
  padding: 1rem 1rem 1rem 4rem;
  font-size: 1.4rem;
  width: 30rem;
}
.search-box input:focus {
  border-color: var(--secondary-color);
  box-shadow: 0 0 0 2px var(--secondary-light);
}
.search-box i {
  position: absolute;
  left: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
  color: #A3AED0;
  font-size: 1.6rem;
}
.profile-image {
  width: 4.8rem;
  height: 4.8rem;
  border-radius: 1rem;
}
.pdf-progress-overlay {
  position: fixed;
  inset: 0;
  z-index: 10050;
  background: rgba(0, 0, 0, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2.4rem;
}
.pdf-progress-panel {
  width: 100%;
  max-width: 52rem;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.35);
  padding: 2.4rem;
}
.pdf-progress-panel .pdf-progress-caption {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.3;
  color: #212529;
  margin-bottom: 1.6rem;
}
.pdf-progress-panel .pdf-progress-track {
  height: 1.6rem;
  border-radius: 0.8rem;
  overflow: hidden;
}
.pdf-progress-panel .pdf-progress-msg {
  font-size: 1.4rem;
  line-height: 1.4;
  min-height: 2em;
}
.pdf-progress-panel .pdf-progress-percent {
  font-size: 1.4rem;
  font-weight: 600;
}
.pdf-progress-panel .pdf-progress-meta {
  margin-top: 1.2rem;
  gap: 1.2rem;
}
.finish-image-container {
  width: 100%;
  aspect-ratio: 1 / 1;
  min-height: 200px;
  position: relative;
  overflow: hidden;
}
.finish-image-placeholder {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.finish-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.finish-image-actions {
  opacity: 0;
  transition: opacity 0.2s;
}
.finish-image-container:hover .finish-image-actions {
  opacity: 1;
}
.finish-color-block {
  width: 100%;
  height: 100%;
  border-radius: 4px;
  border: 1px solid #dee2e6;
  position: absolute;
  top: 0;
  left: 0;
}
.supplier-details.flat-details-page {
  background: #ffffff;
  min-height: 100%;
}
.supplier-details > .px-3,
.supplier-details > .px-md-4 {
  background: #ffffff;
}
.supplier-details .setup-grid {
  gap: 1.25rem 1.75rem;
}
@media (min-width: 992px) {
  .supplier-details .setup-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.supplier-details .entity-details {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  width: 100%;
  max-width: 100%;
  padding: 0 0 2.5rem;
  background: #ffffff;
}
.supplier-details .entity-details .ui-card {
  background: #ffffff;
  --card: #ffffff;
}
.supplier-details .entity-details .ui-card-header {
  padding: 1.25rem 1.5rem 0;
}
.supplier-details .entity-details .ui-card-content {
  padding: 1.25rem 1.5rem 1.5rem;
}
.supplier-details .entity-details .ui-card-title {
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.supplier-details .entity-details .editable-field {
  margin-bottom: 0;
  border-bottom: none;
}
.supplier-details .entity-details .setup-grid-full {
  grid-column: 1 / -1;
}
.supplier-details .entity-details .attachment-hub-folder-card {
  min-height: 10.5rem;
}
.supplier-details .entity-details .attachment-hub-folder-art {
  min-height: 6.5rem;
}
.supplier-details .entity-details .attachment-hub-folder-art i {
  font-size: 2.5rem;
}
.supplier-details .entity-details-grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  align-items: stretch;
}
@media (min-width: 992px) {
  .supplier-details .entity-details-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .supplier-details .entity-details-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.supplier-details .entity-details-grid > .ui-card {
  height: 100%;
}
.supplier-details .entity-details-basic {
  display: grid;
  gap: 2rem 2.5rem;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}
@media (min-width: 768px) {
  .supplier-details .entity-details-basic {
    grid-template-columns: auto minmax(0, 1fr);
  }
}
.supplier-details .entity-details-logo-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  min-width: 10.5rem;
}
.supplier-details .entity-details-logo {
  width: 6.875rem;
  height: 6.875rem;
  border-radius: 15%;
  overflow: hidden;
  flex-shrink: 0;
}
.supplier-details .entity-details-logo--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-size: 1.8rem;
  font-weight: 700;
  background-color: var(--entity-logo-bg, #90ADD0);
}
.supplier-details .entity-details-logo-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.supplier-details .entity-details-logo-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem;
  width: max-content;
  max-width: none;
}
.supplier-details .entity-details-logo-actions label.ui-btn,
.supplier-details .entity-details-logo-actions .ui-btn {
  flex-shrink: 0;
  margin: 0;
}
.supplier-details .contact-list,
.supplier-details .address-list {
  display: flex;
  flex-direction: column;
}
.supplier-details .contact-list-item,
.supplier-details .address-list-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid #dee2e6;
}
.supplier-details .contact-list-item:last-child,
.supplier-details .address-list-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.supplier-details .contact-list-item:first-child,
.supplier-details .address-list-item:first-child {
  padding-top: 0;
}
.supplier-details .contact-list-body,
.supplier-details .address-list-body {
  flex: 1;
  min-width: 0;
}
.supplier-details .contact-list-actions,
.supplier-details .address-list-actions {
  display: flex;
  flex-shrink: 0;
  gap: 0.25rem;
  padding-top: 0.125rem;
}
.supplier-details .contact-list-header {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  margin-bottom: 0.5rem;
}
.supplier-details .contact-list-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.625rem;
  flex: 1;
  min-width: 0;
}
.supplier-details .contact-list-title {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.35;
  color: #212529;
}
.supplier-details .contact-list-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  flex-shrink: 0;
  border-radius: 50%;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  overflow: hidden;
  box-shadow: 0 2px 4px rgba(144, 173, 208, 0.2);
}
.supplier-details .contact-list-fields {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding-left: 3.625rem;
}
.supplier-details .contact-list-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.3rem;
  line-height: 1.45;
  color: #6c757d;
}
.supplier-details .contact-list-field i {
  width: 1rem;
  flex-shrink: 0;
  text-align: center;
  font-size: 0.8rem;
}
.supplier-details .contact-list-field a {
  color: inherit;
  text-decoration: none;
}
.supplier-details .contact-list-field a:hover {
  color: #90ADD0;
  text-decoration: underline;
}
.supplier-details .address-list-content {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  min-width: 0;
}
.supplier-details .address-list-icon {
  flex-shrink: 0;
  margin-top: 0.2rem;
  color: #90ADD0;
  font-size: 1rem;
}
.supplier-details .address-list-text-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0;
}
.supplier-details .address-list-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
}
.supplier-details .address-list-text {
  font-size: 1.4rem;
  line-height: 1.5;
  color: #212529;
}
.client-details.flat-details-page {
  background: #ffffff;
  min-height: 100%;
}
.client-details > .px-3,
.client-details > .px-md-4 {
  background: #ffffff;
}
.client-details .setup-grid {
  gap: 1.25rem 1.75rem;
}
@media (min-width: 992px) {
  .client-details .setup-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.client-details .entity-details {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  width: 100%;
  max-width: 100%;
  padding: 0 0 2.5rem;
  background: #ffffff;
}
.client-details .entity-details .ui-card {
  background: #ffffff;
  --card: #ffffff;
}
.client-details .entity-details .ui-card-header {
  padding: 1.25rem 1.5rem 0;
}
.client-details .entity-details .ui-card-content {
  padding: 1.25rem 1.5rem 1.5rem;
}
.client-details .entity-details .ui-card-title {
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.client-details .entity-details .editable-field {
  margin-bottom: 0;
  border-bottom: none;
}
.client-details .entity-details .setup-grid-full {
  grid-column: 1 / -1;
}
.client-details .entity-details-grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  align-items: stretch;
}
@media (min-width: 992px) {
  .client-details .entity-details-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .client-details .entity-details-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.client-details .entity-details-grid > .ui-card {
  height: 100%;
}
.client-details .entity-details-basic {
  display: grid;
  gap: 2rem 2.5rem;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}
@media (min-width: 768px) {
  .client-details .entity-details-basic {
    grid-template-columns: auto minmax(0, 1fr);
  }
}
.client-details .entity-details-logo-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  min-width: 10.5rem;
}
.client-details .entity-details-logo {
  width: 6.875rem;
  height: 6.875rem;
  border-radius: 15%;
  overflow: hidden;
  flex-shrink: 0;
}
.client-details .entity-details-logo--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-size: 1.8rem;
  font-weight: 700;
  background-color: var(--entity-logo-bg, #90ADD0);
}
.client-details .entity-details-logo-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.client-details .entity-details-logo-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem;
  width: max-content;
  max-width: none;
}
.client-details .entity-details-logo-actions label.ui-btn,
.client-details .entity-details-logo-actions .ui-btn {
  flex-shrink: 0;
  margin: 0;
}
.client-details .contact-list,
.client-details .address-list {
  display: flex;
  flex-direction: column;
}
.client-details .contact-list-item,
.client-details .address-list-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid #dee2e6;
}
.client-details .contact-list-item:last-child,
.client-details .address-list-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.client-details .contact-list-item:first-child,
.client-details .address-list-item:first-child {
  padding-top: 0;
}
.client-details .contact-list-body,
.client-details .address-list-body {
  flex: 1;
  min-width: 0;
}
.client-details .contact-list-actions,
.client-details .address-list-actions {
  display: flex;
  flex-shrink: 0;
  gap: 0.25rem;
  padding-top: 0.125rem;
}
.client-details .contact-list-header {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  margin-bottom: 0.5rem;
}
.client-details .contact-list-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.625rem;
  flex: 1;
  min-width: 0;
}
.client-details .contact-list-title {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.35;
  color: #212529;
}
.client-details .contact-list-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  flex-shrink: 0;
  border-radius: 50%;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  overflow: hidden;
  box-shadow: 0 2px 4px rgba(144, 173, 208, 0.2);
}
.client-details .contact-list-fields {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding-left: 3.625rem;
}
.client-details .contact-list-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.3rem;
  line-height: 1.45;
  color: #6c757d;
}
.client-details .contact-list-field i {
  width: 1rem;
  flex-shrink: 0;
  text-align: center;
  font-size: 0.8rem;
}
.client-details .contact-list-field a {
  color: inherit;
  text-decoration: none;
}
.client-details .contact-list-field a:hover {
  color: #90ADD0;
  text-decoration: underline;
}
.client-details .address-list-content {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  min-width: 0;
}
.client-details .address-list-icon {
  flex-shrink: 0;
  margin-top: 0.2rem;
  color: #90ADD0;
  font-size: 1rem;
}
.client-details .address-list-text-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0;
}
.client-details .address-list-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
}
.client-details .address-list-text {
  font-size: 1.4rem;
  line-height: 1.5;
  color: #212529;
}
.ise-certificate-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.9rem;
  padding: 1rem;
  border: 1px solid rgba(144, 173, 208, 0.2);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.08), #ffffff 52%);
}
.ise-certificate-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.7rem;
  height: 2.7rem;
  border-radius: 14px;
  background: rgba(144, 173, 208, 0.13);
  color: #5783b8;
  font-size: 1.1rem;
}
.ise-certificate-card-body {
  min-width: 0;
}
.ise-certificate-card-eyebrow {
  margin: 0 0 0.15rem;
  color: #6c757d;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
}
.ise-certificate-card-title {
  margin: 0;
  color: #212529;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.25;
}
.ise-certificate-card-status {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.2;
}
.ise-certificate-card-status--missing {
  background: rgba(229, 115, 122, 0.09);
  color: #db3f49;
}
.ise-certificate-card-status--ready {
  background: rgba(102, 187, 106, 0.1);
  color: #3d8940;
}
.ise-certificate-card-copy {
  margin: 0.75rem 0 0;
  color: #6c757d;
  font-size: 1.4rem;
  line-height: 1.45;
}
.ise-certificate-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.9rem;
}
.ise-certificate-upload {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.1rem;
  padding: 0.42rem 0.8rem;
  overflow: hidden;
  border: 1px dashed rgba(144, 173, 208, 0.42);
  border-radius: 999px;
  background: #ffffff;
  color: #5380b6;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.25;
  cursor: pointer;
}
.ise-certificate-upload input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.ise-certificate-upload.is-disabled {
  opacity: 0.65;
  pointer-events: none;
}
.ise-certificate-file {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  margin-top: 0.8rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
}
.ise-certificate-file > i {
  color: #507db5;
  font-size: 1.25rem;
}
.ise-certificate-file-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ise-certificate-file-meta a {
  overflow: hidden;
  color: #4773a8;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ise-certificate-file-meta a:hover {
  text-decoration: underline;
}
.ise-certificate-file-meta span {
  color: #6c757d;
  font-size: 1.4rem;
  line-height: 1.35;
}
.hover-elevate:hover:not(:disabled):not([aria-disabled="true"]) {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.active-elevate-2:active:not(:disabled):not([aria-disabled="true"]) {
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08);
}
.ui-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  border-radius: 6px;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.25;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.ui-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 1px var(--ring);
}
.ui-btn:disabled,
.ui-btn[aria-disabled="true"] {
  pointer-events: none;
  opacity: 0.5;
  cursor: not-allowed;
}
.ui-btn svg,
.ui-btn .fa,
.ui-btn .fas,
.ui-btn .far,
.ui-btn .fab {
  pointer-events: none;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  font-size: 1rem;
}
.ui-btn--size-default {
  min-height: 2.25rem;
  padding: 0.5rem 1rem;
}
.ui-btn--size-sm {
  min-height: 2rem;
  padding: 0.5rem 0.75rem;
  font-size: 1.2rem;
  border-radius: 6px;
}
.ui-btn--size-lg {
  min-height: 2.5rem;
  padding: 0.5rem 2rem;
  border-radius: 6px;
}
.ui-btn--size-icon {
  height: 2.25rem;
  width: 2.25rem;
  padding: 0;
}
.ui-btn--default {
  background-color: var(--primary);
  color: var(--primary-foreground);
  border-color: var(--primary-border);
}
.ui-btn--default:hover:not(:disabled):not([aria-disabled="true"]) {
  filter: brightness(0.97);
}
.ui-btn--destructive {
  background-color: var(--destructive);
  color: var(--destructive-foreground);
  border-color: var(--destructive-border);
}
.ui-btn--destructive:hover:not(:disabled):not([aria-disabled="true"]) {
  filter: brightness(0.97);
}
.ui-btn--outline {
  background-color: transparent;
  color: inherit;
  border-color: var(--button-outline);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.ui-btn--outline:active:not(:disabled):not([aria-disabled="true"]) {
  box-shadow: none;
}
.ui-btn--outline:hover:not(:disabled):not([aria-disabled="true"]) {
  background-color: rgba(0, 0, 0, 0.02);
}
.ui-btn--secondary {
  background-color: var(--secondary);
  color: var(--secondary-foreground);
  border-color: var(--secondary-border);
}
.ui-btn--secondary:hover:not(:disabled):not([aria-disabled="true"]) {
  filter: brightness(0.98);
}
.ui-btn--success {
  background-color: var(--success);
  color: var(--success-foreground);
  border-color: var(--success-border);
}
.ui-btn--success:hover:not(:disabled):not([aria-disabled="true"]) {
  filter: brightness(0.97);
}
.ui-btn--warning {
  background-color: var(--warning);
  color: var(--warning-foreground);
  border-color: var(--warning-border);
}
.ui-btn--warning:hover:not(:disabled):not([aria-disabled="true"]) {
  filter: brightness(0.97);
}
.ui-btn--status:disabled,
.ui-btn--status[aria-disabled="true"] {
  opacity: 1;
  cursor: default;
}
.ui-btn--ghost {
  background-color: transparent;
  color: inherit;
  border-color: transparent;
}
.ui-btn--ghost:hover:not(:disabled):not([aria-disabled="true"]) {
  background-color: rgba(0, 0, 0, 0.04);
}
.ui-card {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  border: 1px solid var(--card-border, #dee2e6);
  background: var(--card, #ffffff);
  color: var(--card-foreground, #212529);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.ui-card-header {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 1.5rem 1.5rem 0;
}
.ui-card-header:last-child {
  padding-bottom: 1.5rem;
}
.ui-card-title {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #212529;
}
.ui-card-description {
  font-size: 1.3rem;
  line-height: 1.5;
  color: #6c757d;
}
.ui-card-content {
  padding: 1.5rem;
}
.ui-card-footer {
  display: flex;
  align-items: center;
  padding: 0 1.5rem 1.5rem;
}
.ui-checkbox {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  padding: 0;
  border: 1px solid var(--primary);
  border-radius: 6px;
  background: transparent;
  color: var(--primary-foreground);
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.ui-checkbox:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--background, #ffffff), 0 0 0 4px var(--ring);
}
.ui-checkbox:disabled,
.ui-checkbox[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.5;
  pointer-events: none;
}
.ui-checkbox[data-state="checked"] {
  background-color: var(--primary);
  border-color: var(--primary);
  color: var(--primary-foreground);
}
.ui-checkbox-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  color: currentColor;
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.ui-checkbox-indicator .fa,
.ui-checkbox-indicator .fas,
.ui-checkbox-indicator .far,
.ui-checkbox-indicator .fab {
  width: 1rem;
  height: 1rem;
  font-size: 0.75rem;
  pointer-events: none;
}
.ui-checkbox[data-state="checked"] .ui-checkbox-indicator {
  opacity: 1;
  transform: scale(1);
}
button.ui-switch {
  --switch-padding: 2px;
  --switch-width: 32px;
  --switch-height: 18.4px;
  --switch-thumb-size: calc(var(--switch-height) - 2 * var(--switch-padding));
  --switch-thumb-travel: calc(var(--switch-width) - 2 * var(--switch-padding) - var(--switch-thumb-size));
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  width: var(--switch-width);
  height: var(--switch-height);
  min-width: var(--switch-width);
  min-height: var(--switch-height);
  margin: 0;
  padding: var(--switch-padding);
  border: none;
  border-radius: 9999px;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  outline: none;
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
}
button.ui-switch::after {
  content: "";
  position: absolute;
  inset: -8px -12px;
}
button.ui-switch[data-size="sm"] {
  --switch-width: 24px;
  --switch-height: 14px;
  --switch-padding: 1px;
}
button.ui-switch[data-unchecked] {
  background-color: var(--input, #cbd5e1);
}
button.ui-switch[data-checked] {
  background-color: var(--primary);
}
button.ui-switch:focus-visible {
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.5);
}
button.ui-switch[aria-invalid="true"] {
  box-shadow: 0 0 0 3px rgba(229, 115, 122, 0.2);
}
button.ui-switch:disabled,
button.ui-switch[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.5;
  pointer-events: none;
}
button.ui-switch .ui-switch-thumb {
  pointer-events: none;
  display: block;
  width: var(--switch-thumb-size);
  height: var(--switch-thumb-size);
  border-radius: 9999px;
  background-color: var(--background, #ffffff);
  box-shadow: none;
  transition: transform 0.15s ease;
}
button.ui-switch[data-unchecked] .ui-switch-thumb {
  transform: translateX(0);
}
button.ui-switch[data-checked] .ui-switch-thumb {
  transform: translateX(var(--switch-thumb-travel));
}
.dark button.ui-switch[data-unchecked] {
  background-color: rgba(226, 232, 240, 0.8);
}
.dark button.ui-switch[aria-invalid="true"] {
  box-shadow: 0 0 0 3px rgba(229, 115, 122, 0.4);
}
.dark button.ui-switch[data-checked] .ui-switch-thumb {
  background-color: var(--primary-foreground);
}
.dark button.ui-switch[data-unchecked] .ui-switch-thumb {
  background-color: var(--foreground, #212529);
}
.ui-field-set {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.ui-field-set:has(> [data-slot="checkbox-group"]) {
  gap: 0.75rem;
}
.ui-field-set:has(> [data-slot="radio-group"]) {
  gap: 0.75rem;
}
.ui-field-legend {
  margin-bottom: 0.375rem;
  padding: 0;
  font-weight: 500;
}
.ui-field-legend[data-variant="label"] {
  font-size: 1.3rem;
}
.ui-field-legend[data-variant="legend"] {
  font-size: 1.4rem;
}
.ui-field-group {
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: 1.25rem;
  container-type: inline-size;
  container-name: field-group;
}
.ui-field-group[data-slot="checkbox-group"],
.ui-field-group[data-slot="radio-group"] {
  gap: 0.75rem;
}
.ui-field-group > [data-slot="field-group"] {
  gap: 1rem;
}
.ui-field {
  display: flex;
  width: 100%;
  gap: 0.5rem;
}
.ui-field[data-invalid="true"] {
  color: var(--destructive);
}
.ui-field[data-orientation="vertical"] {
  flex-direction: column;
}
.ui-field[data-orientation="vertical"] > * {
  width: 100%;
}
.ui-field[data-orientation="vertical"] > .sr-only {
  width: auto;
}
.ui-field[data-orientation="horizontal"] {
  flex-direction: row;
  align-items: center;
}
.ui-field[data-orientation="horizontal"] > [data-slot="field-label"] {
  flex: 1 1 auto;
}
.ui-field[data-orientation="horizontal"]:has(> [data-slot="field-content"]) {
  align-items: flex-start;
}
.ui-field[data-orientation="horizontal"]:has(> [data-slot="field-content"]) > [role="checkbox"],
.ui-field[data-orientation="horizontal"]:has(> [data-slot="field-content"]) > [role="radio"] {
  margin-top: 1px;
}
.ui-field[data-orientation="responsive"] {
  flex-direction: column;
}
.ui-field[data-orientation="responsive"] > * {
  width: 100%;
}
.ui-field[data-orientation="responsive"] > .sr-only {
  width: auto;
}
@container field-group (min-width: 28rem) {
  .ui-field[data-orientation="responsive"] {
    flex-direction: row;
    align-items: center;
  }
  .ui-field[data-orientation="responsive"] > * {
    width: auto;
  }
  .ui-field[data-orientation="responsive"] > [data-slot="field-label"] {
    flex: 1 1 auto;
  }
  .ui-field[data-orientation="responsive"]:has(> [data-slot="field-content"]) {
    align-items: flex-start;
  }
  .ui-field[data-orientation="responsive"]:has(> [data-slot="field-content"]) > [role="checkbox"],
  .ui-field[data-orientation="responsive"]:has(> [data-slot="field-content"]) > [role="radio"] {
    margin-top: 1px;
  }
}
.ui-field-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 0.125rem;
  line-height: 1.375;
}
.ui-field-label {
  display: flex;
  width: fit-content;
  gap: 0.5rem;
  line-height: 1.375;
  cursor: pointer;
}
.ui-field[data-disabled="true"] .ui-field-label {
  opacity: 0.5;
  cursor: not-allowed;
}
.ui-field-label:has(> [data-slot="field"]) {
  width: 100%;
  flex-direction: column;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 12px;
  padding: 0.625rem;
}
.ui-field-label:has([data-checked="true"]) {
  border-color: rgba(144, 173, 208, 0.3);
  background: rgba(144, 173, 208, 0.05);
}
.ui-field-title {
  display: flex;
  width: fit-content;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.3rem;
  font-weight: 500;
}
.ui-field[data-disabled="true"] .ui-field-title {
  opacity: 0.5;
}
.ui-field-description {
  margin: 0;
  text-align: left;
  font-size: 1.3rem;
  line-height: 1.5;
  font-weight: 400;
  color: var(--muted-foreground, #6c757d);
}
.ui-field[data-orientation="horizontal"] .ui-field-description {
  text-wrap: balance;
}
.ui-field-description a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.ui-field-description a:hover {
  color: var(--primary);
}
.ui-field-separator {
  position: relative;
  height: 1.25rem;
  margin: -0.5rem 0;
  font-size: 1.3rem;
}
.ui-field-separator-line {
  position: absolute;
  inset: 0;
  top: 50%;
  height: 1px;
  border: 0;
  margin: 0;
  background: var(--card-border, #dee2e6);
}
.ui-field-separator-content {
  position: relative;
  display: block;
  width: fit-content;
  margin: 0 auto;
  padding: 0 0.5rem;
  background: var(--background, #ffffff);
  color: var(--muted-foreground, #6c757d);
}
.ui-field-error {
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--destructive);
}
.ui-field-error-list {
  margin: 0 0 0 1rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  list-style: disc;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.ui-table-wrapper {
  position: relative;
  width: 100%;
  overflow-x: auto;
}
.ui-table {
  width: 100%;
  caption-side: bottom;
  border-collapse: collapse;
  font-size: 1.4rem;
  color: var(--card-foreground, #212529);
}
.ui-table thead tr {
  border-bottom: 1px solid var(--card-border, #dee2e6);
}
.ui-table tbody tr {
  border-bottom: 1px solid var(--card-border, #dee2e6);
  transition: background-color 0.15s ease, color 0.15s ease;
}
.ui-table tbody tr:last-child {
  border-bottom: 0;
}
.ui-table tbody tr:hover {
  background: rgba(108, 117, 125, 0.06);
}
.ui-table tbody tr:has([aria-expanded="true"]) {
  background: rgba(108, 117, 125, 0.06);
}
.ui-table tbody tr[data-state="selected"] {
  background: var(--secondary, #f8f9fa);
}
.ui-table tfoot {
  border-top: 1px solid var(--card-border, #dee2e6);
  background: rgba(108, 117, 125, 0.04);
  font-weight: 500;
}
.ui-table tfoot tr:last-child {
  border-bottom: 0;
}
.ui-table th {
  height: 4rem;
  padding: 0 0.8rem;
  text-align: left;
  vertical-align: middle;
  font-weight: 500;
  color: var(--card-foreground, #212529);
  white-space: nowrap;
}
.ui-table th:has([role="checkbox"]) {
  padding-right: 0;
}
.ui-table td {
  padding: 0.8rem;
  vertical-align: middle;
  white-space: nowrap;
}
.ui-table td:has([role="checkbox"]) {
  padding-right: 0;
}
.ui-table-caption {
  margin-top: 1.6rem;
  font-size: 1.4rem;
  color: var(--muted-foreground, #6c757d);
}
.ui-kanban[data-dragging="true"] {
  cursor: grabbing;
}
.ui-kanban[data-dragging="true"] .ui-kanban-item {
  cursor: grabbing;
}
.ui-kanban-board {
  display: grid;
  grid-auto-rows: 1fr;
  gap: 1rem;
  align-items: start;
}
@media (min-width: 640px) {
  .ui-kanban-board {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.ui-kanban-column {
  display: flex;
  flex-direction: column;
  background: #fafafa;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.ui-kanban-column[data-over="true"] {
  border-color: var(--primary, #90ADD0);
  background: rgba(144, 173, 208, 0.12);
}
.ui-kanban-column-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.875rem 1rem;
  background: var(--card, #ffffff);
  border-bottom: 1px solid var(--card-border, #dee2e6);
}
.ui-kanban-column-title {
  font-size: 1.6rem;
  font-weight: 600;
  color: #212529;
}
.ui-kanban-column-count {
  min-width: 2.2rem;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  background: var(--primary, #90ADD0);
  color: var(--primary-foreground, #ffffff);
  font-size: 1.2rem;
  font-weight: 600;
  text-align: center;
}
.ui-kanban-column-content {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
  padding: 0.75rem;
  min-height: 6rem;
  overflow-y: auto;
}
.ui-kanban-item {
  border-radius: 8px;
  background: var(--card, #ffffff);
  border: 1px solid var(--card-border, #dee2e6);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  cursor: grab;
  transition: box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}
.ui-kanban-item:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.ui-kanban-item[data-dragging="true"] {
  opacity: 0.4;
}
.ui-kanban-item[data-over="true"] {
  box-shadow: inset 0 2px 0 0 var(--primary, #90ADD0);
}
.ui-kanban-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 0.75rem;
  border: 1px dashed var(--card-border, #dee2e6);
  border-radius: 8px;
  color: #6c757d;
  font-size: 1.3rem;
  text-align: center;
}
.setup-grid {
  display: grid;
  gap: 1rem 1.5rem;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
}
@media (min-width: 768px) {
  .setup-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .setup-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.setup-client-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.setup-grid-full-row {
  grid-column: 1 / -1;
}
.entity-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  background: rgba(33, 37, 41, 0.08);
  color: #212529;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.3;
}
.entity-chip-icon {
  font-size: 0.7rem;
  opacity: 0.7;
}
.entity-chip-label {
  white-space: nowrap;
}
.entity-chip-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.375rem;
}
.setup-header {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
  padding-bottom: 0.25rem;
}
.setup-header-title {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #212529;
}
.setup-header-description {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.5;
  color: #6c757d;
}
.setup-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
}
.setup-header-intro {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0;
}
.setup-progress-label {
  font-size: 1.2rem;
  font-weight: 600;
  color: #212529;
  white-space: nowrap;
  flex-shrink: 0;
}
.setup-progress-label span {
  font-weight: 400;
  color: #6c757d;
}
.setup-progress-bar {
  width: 100%;
  height: 4px;
  background: #dee2e6;
  border-radius: 2px;
  overflow: hidden;
}
.setup-progress-bar-fill {
  height: 100%;
  background: #90ADD0;
  border-radius: 2px;
  transition: width 0.3s ease;
}
.setup-required-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.setup-required-list-item {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 1.4rem;
  color: #6c757d;
}
.setup-required-list-item i {
  font-size: 0.85em;
}
.setup-required-list-item-complete {
  color: #212529;
}
.setup-required-list-item-complete i {
  color: #2d6a3e;
}
.setup-required-list-item-pending {
  font-weight: 600;
  color: #212529;
}
.setup-progress-remaining {
  margin: 0;
  font-size: 1.4rem;
  color: #6c757d;
}
.setup-progress-remaining--complete {
  color: #2d6a3e;
  font-weight: 600;
}
.setup-required-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.4;
  color: #90ADD0;
  background: rgba(144, 173, 208, 0.12);
}
.ui-stepper {
  --ui-stepper-count: 1;
}
.ui-stepper-header {
  display: grid;
  grid-template-columns: repeat(var(--ui-stepper-count), 1fr);
  margin-bottom: 0.75rem;
}
.ui-stepper-title {
  grid-column: 1;
  justify-self: center;
  text-align: center;
  width: 100%;
}
.ui-stepper-steps {
  display: grid;
  grid-template-columns: repeat(var(--ui-stepper-count), 1fr);
  position: relative;
  padding: 0.5rem 0 0.5rem;
  overflow-x: auto;
  gap: 0;
}
.ui-stepper-step-wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ui-stepper-step-wrapper:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 16px;
  left: calc(50% + 16px);
  right: calc(-50% + 16px);
  height: 3px;
  z-index: 0;
  transition: all 0.3s ease;
}
.ui-stepper-step-wrapper.ui-stepper-connector-completed::after {
  background: #66bb6a;
}
.ui-stepper-step-wrapper.ui-stepper-connector-pending::after {
  background: #dee2e6;
  border-top: 1px dashed #adb5bd;
  border-bottom: 1px dashed #adb5bd;
}
.ui-stepper-step {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 1.2rem;
  position: relative;
  transition: all 0.3s ease;
  border: 2px solid;
  background: #ffffff;
  z-index: 2;
  flex-shrink: 0;
}
.ui-stepper-step i {
  font-size: 1.2rem;
}
.ui-stepper-step-completed {
  background: #66bb6a;
  border-color: #66bb6a;
  color: #ffffff;
  box-shadow: 0 0 0 3px rgba(102, 187, 106, 0.2);
}
.ui-stepper-step-completed i {
  color: #ffffff;
}
.ui-stepper-step-current {
  background: #90ADD0;
  border-color: #90ADD0;
  color: #ffffff;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.25);
  animation: ui-stepper-pulse 2s infinite;
}
.ui-stepper-step-pending {
  background: #ffffff;
  border-color: #dee2e6;
  color: #6c757d;
  border-style: dashed;
}
.ui-stepper-label {
  margin-top: 0.5rem;
  font-size: 1.2rem;
  text-align: center;
  line-height: 1.2;
  max-width: 100%;
  word-break: break-word;
  white-space: normal;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}
@media (max-width: 991px) {
  .ui-stepper-label {
    font-size: 1rem;
  }
}
.ui-stepper-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ui-stepper-sublabel {
  margin-top: 0.25rem;
  font-size: 1rem;
  text-align: center;
  white-space: nowrap;
}
.ui-stepper-footer {
  padding-top: 1rem;
  border-top: 1px solid #dee2e6;
  margin-top: 0.5rem;
}
@keyframes ui-stepper-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.25);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(144, 173, 208, 0.15);
  }
}
.project-quotes-tab {
  width: 100%;
  background: #ffffff;
}
.project-quotes-tab-header {
  margin-bottom: 1rem;
}
.project-quotes-tab-select {
  min-width: 26rem;
  height: 3.6rem;
  padding: 0.6rem 2.6rem 0.6rem 1rem;
  font-size: 1.4rem;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 6px;
  background-color: #ffffff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.project-quotes-tab-select:focus {
  border-color: #90ADD0;
  outline: none;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.15);
}
.project-quotes-tab-select:hover:not(:focus) {
  border-color: #868e96;
}
.quote-section-card {
  overflow: hidden;
  border-color: rgba(108, 117, 125, 0.22);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
.quote-section-card + .quote-section-card {
  margin-top: 2rem;
}
.quote-section-card-header {
  padding: 1.75rem 2rem 1.5rem;
}
.quote-section-card-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  width: 100%;
}
.quote-section-card-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  flex-wrap: wrap;
}
.quote-section-card-content .ui-table-wrapper {
  border: 0;
  border-radius: 0;
  border-top: 1px solid rgba(108, 117, 125, 0.18);
}
.quote-section-card-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  padding: 1.5rem 2rem;
  background: rgba(144, 173, 208, 0.08);
  border-top: 1px solid rgba(144, 173, 208, 0.18);
}
.quote-table .ui-table-wrapper {
  background: transparent;
  border: 0;
  border-radius: 0;
}
.quote-table-empty {
  padding: 4rem 0;
  text-align: center;
  border-top: 1px solid var(--card-border, #dee2e6);
  background: transparent;
}
.quote-table-sortable {
  cursor: pointer;
  user-select: none;
}
.quote-table-version-cell {
  min-width: 7rem;
}
.quote-table-current-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: rgba(144, 173, 208, 0.12);
  border: 1px solid rgba(144, 173, 208, 0.18);
}
.quote-table-final-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: rgba(108, 117, 125, 0.1);
  border: 1px solid rgba(108, 117, 125, 0.18);
}
.quote-table-status {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.quote-table-status-active {
  color: #90ADD0;
  background: rgba(144, 173, 208, 0.1);
  border-color: rgba(144, 173, 208, 0.18);
}
.quote-table-status-approved {
  color: #2d6a3e;
  background: rgba(45, 106, 62, 0.1);
  border-color: rgba(45, 106, 62, 0.18);
}
.quote-table-status-draft,
.quote-table-status-expired {
  color: #212529;
  background: rgba(108, 117, 125, 0.12);
  border-color: rgba(108, 117, 125, 0.2);
}
.quote-table-actions {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}
.quote-table-menu-wrap {
  position: relative;
  display: inline-flex;
  justify-content: flex-end;
}
.quote-table-menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.2rem;
  height: 3.2rem;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: #6c757d;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.quote-table-menu-btn:hover {
  background: rgba(108, 117, 125, 0.1);
  border-color: rgba(108, 117, 125, 0.15);
  color: #212529;
}
.quote-table-menu-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(144, 173, 208, 0.25);
  border-color: #90ADD0;
}
.quote-table-menu {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 20;
  min-width: 14rem;
  margin-top: 0.35rem;
  padding: 0.35rem 0;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
}
.quote-table-menu-item {
  display: block;
  width: 100%;
  padding: 0.6rem 1rem;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.1s ease, color 0.1s ease;
}
.quote-table-menu-item:hover {
  background: rgba(144, 173, 208, 0.08);
  color: #90ADD0;
}
.quote-table-menu-item:active {
  background: rgba(144, 173, 208, 0.12);
}
.quote-table-open-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.2rem;
  height: 3.2rem;
  padding: 0;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 6px;
  background: #ffffff;
  color: #6c757d;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.quote-table-open-btn:hover {
  border-color: #90ADD0;
  background: rgba(144, 173, 208, 0.06);
  color: #90ADD0;
  box-shadow: 0 2px 4px rgba(144, 173, 208, 0.12);
}
.quote-table-open-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(144, 173, 208, 0.25);
  border-color: #90ADD0;
}
.quote-table-row {
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.quote-table-row:hover {
  background: rgba(144, 173, 208, 0.05) !important;
}
.detail-split-card .solution-quote-workflow > .row,
.detail-split-card .final-quote-workflow > .row {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-right: 0;
  margin-left: 0;
}
.detail-split-card .solution-quote-workflow > .row > [class*="col-"],
.detail-split-card .final-quote-workflow > .row > [class*="col-"] {
  width: 100%;
  max-width: 100%;
  padding-right: 0;
  padding-left: 0;
}
.detail-split-card .solution-quote-workflow .form-label,
.detail-split-card .final-quote-workflow .form-label {
  margin-bottom: 0.5rem;
  color: #6c757d;
}
.detail-split-card .solution-quote-workflow .input-group,
.detail-split-card .final-quote-workflow .input-group {
  max-width: 100%;
}
.detail-split-card .quote-value-editable {
  margin-bottom: 0;
  border-bottom: 0;
}
.detail-split-card .quote-value-editable label {
  display: block;
  margin-bottom: 0.5rem;
  color: #6c757d;
  font-size: 1.2rem;
  font-weight: 600;
}
.detail-split-card .quote-value-editable .editable-display {
  display: flex;
  align-items: center;
  min-height: 3.6rem;
  padding: 0.65rem 0.9rem;
  border: 1px solid rgba(108, 117, 125, 0.24);
  border-radius: 6px;
  background: #ffffff;
  font-weight: 600;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}
.detail-split-card .quote-value-editable .editable-display:hover:not(.disabled) {
  border-color: #90ADD0;
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.1);
}
.detail-split-card .quote-value-editable .input-group .form-control,
.detail-split-card .quote-value-editable .input-group .input-group-text,
.detail-split-card .quote-value-editable .input-group .btn {
  min-height: 3.6rem;
}
.quote-preview-frame {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 46rem;
  height: min(68vh, 64rem);
  border: 1px solid rgba(108, 117, 125, 0.18);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(108, 117, 125, 0.04) 25%, transparent 25%) -8px 0 / 16px 16px, linear-gradient(225deg, rgba(108, 117, 125, 0.04) 25%, transparent 25%) -8px 0 / 16px 16px, linear-gradient(315deg, rgba(108, 117, 125, 0.04) 25%, transparent 25%) 0 0 / 16px 16px, linear-gradient(45deg, rgba(108, 117, 125, 0.04) 25%, #ffffff 25%) 0 0 / 16px 16px;
  overflow: hidden;
}
.quote-preview-frame object,
.quote-preview-frame iframe,
.quote-preview-frame img {
  width: 100%;
  height: 100%;
  border: 0;
}
.quote-preview-frame img {
  object-fit: contain;
  background: #ffffff;
}
.quote-preview-empty {
  display: flex;
  align-items: center;
  gap: 1rem;
  max-width: 42rem;
  padding: 2rem;
  border: 1px solid rgba(108, 117, 125, 0.18);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.94);
  color: #6c757d;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}
.quote-preview-empty > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 999px;
  background: rgba(144, 173, 208, 0.1);
  color: #90ADD0;
}
.quote-stage-mini {
  display: inline-flex;
  flex-direction: column;
  gap: 0.45rem;
  min-width: 15rem;
}
.quote-stage-mini-label {
  color: #212529;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.2;
}
.quote-stage-mini-track {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.quote-stage-mini-dot {
  position: relative;
  display: inline-flex;
  width: 0.75rem;
  height: 0.75rem;
  border: 1px solid rgba(108, 117, 125, 0.26);
  border-radius: 999px;
  background: #ffffff;
}
.quote-stage-mini-dot:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 100%;
  width: 0.35rem;
  height: 1px;
  background: rgba(108, 117, 125, 0.2);
  transform: translateY(-50%);
}
.quote-stage-mini-dot-completed {
  border-color: rgba(144, 173, 208, 0.4);
  background: rgba(144, 173, 208, 0.24);
}
.quote-stage-mini-dot-completed:not(:last-child)::after {
  background: rgba(144, 173, 208, 0.35);
}
.quote-stage-mini-dot-current {
  border-color: #90ADD0;
  background: #90ADD0;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.14);
}
.quote-stage-mini-dot-approved {
  border-color: #2d6a3e;
  background: #2d6a3e;
  box-shadow: 0 0 0 3px rgba(45, 106, 62, 0.14);
}
.quote-stage-mini-dot-rejected {
  border-color: #9b2330;
  background: rgba(155, 35, 48, 0.18);
}
.quote-stage-mini--rejected .quote-stage-mini-label {
  color: #9b2330;
}
@media (max-width: 768px) {
  .quote-section-card-header-row {
    flex-direction: column;
    align-items: stretch;
  }
  .quote-section-card-actions {
    justify-content: flex-start;
  }
  .project-quotes-tab-select {
    width: 100%;
    min-width: 0;
  }
}
@media (max-width: 1200px) {
  .quote-preview-frame {
    height: min(62vh, 54rem);
    min-height: 34rem;
  }
}
@media (max-width: 768px) {
  .quote-preview-frame {
    min-height: 28rem;
  }
}
.quote-version-details,
.final-quote-details {
  min-height: 100vh;
  background: #ffffff;
}
.quote-version-details .project-tabs-container .card-shadow,
.final-quote-details .project-tabs-container .card-shadow {
  box-shadow: none;
  background: #ffffff;
  border-radius: 0;
  padding-left: 0;
  padding-right: 0;
}
.quote-version-details .project-tabs,
.final-quote-details .project-tabs {
  margin-bottom: 1.5rem;
}
.main-content:has(.quote-version-details),
.main-content:has(.final-quote-details) {
  background: #ffffff;
}
.solution-quote-workflow .final-quote-gst-toggle,
.final-quote-workflow .final-quote-gst-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0 0 0.25rem;
  cursor: pointer;
  font-size: 1.3rem;
  font-weight: 500;
  color: #212529;
}
.solution-quote-workflow .quote-workflow-actions,
.final-quote-workflow .quote-workflow-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.solution-quote-workflow .quote-workflow-actions .btn,
.final-quote-workflow .quote-workflow-actions .btn {
  min-width: 200px;
}
.solution-quote-workflow .quote-workflow-actions .d-flex,
.final-quote-workflow .quote-workflow-actions .d-flex {
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
}
.solution-quote-workflow .quote-workflow-actions .d-flex .btn,
.final-quote-workflow .quote-workflow-actions .d-flex .btn {
  min-width: 150px;
}
.solution-quote-workflow .quote-workflow-actions .quote-sent-date-picker,
.final-quote-workflow .quote-workflow-actions .quote-sent-date-picker {
  gap: 0.75rem;
}
.solution-quote-workflow .quote-workflow-actions .quote-sent-date-picker .form-control,
.final-quote-workflow .quote-workflow-actions .quote-sent-date-picker .form-control {
  width: auto;
  min-width: 12rem;
}
.quote-attachment-panel .form-label {
  display: block;
  margin-bottom: 0.75rem;
  font-size: 1.4rem;
  font-weight: 600;
  color: #6c757d;
}
.quote-attachment-panel .form-control[type="file"] {
  min-height: 4.8rem;
  padding: 1rem;
  border-radius: 12px;
  border-color: rgba(108, 117, 125, 0.24);
  background: #ffffff;
  font-size: 1.4rem;
}
.quote-attachment-panel .list-group {
  margin-top: 1rem;
}
.quote-attachment-panel .list-group-item {
  padding: 0.75rem 0;
  border-color: rgba(108, 117, 125, 0.12);
  background: transparent;
}
.quote-attachment-panel .list-group-item .fas.fa-file {
  color: #90ADD0;
}
.quote-attachment-panel .list-group-item .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.2rem;
  height: 3.2rem;
  padding: 0;
  border-radius: 999px;
}
.ui-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1060;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: rgba(33, 37, 41, 0.45);
}
.ui-modal-dialog {
  width: min(100%, 64rem);
  max-height: calc(100vh - 4rem);
}
.ui-modal-sm {
  width: min(100%, 52rem);
}
.ui-modal-lg {
  width: min(100%, 72rem);
}
.ui-modal-content {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 4rem);
  overflow: hidden;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 24px 60px rgba(33, 37, 41, 0.28);
}
.ui-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem 1.75rem;
  border-bottom: 1px solid rgba(108, 117, 125, 0.18);
}
.ui-modal-body {
  overflow-y: auto;
  padding: 1.75rem;
}
.ui-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1.25rem 1.75rem;
  border-top: 1px solid rgba(108, 117, 125, 0.18);
}
.activity-feed-timeline {
  position: relative;
  padding-left: 2.5rem;
}
.activity-feed-timeline::before {
  content: '';
  position: absolute;
  left: 0.75rem;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, #90ADD0 0%, rgba(144, 173, 208, 0.3) 50%, transparent 100%);
  border-radius: 2px;
}
.activity-feed-item {
  position: relative;
  padding-left: 1.5rem;
}
.activity-feed-item:last-child {
  margin-bottom: 0;
}
.activity-feed-icon {
  position: absolute;
  left: -0.8rem;
  top: 0.25rem;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background-color: #ffffff;
  border: 2px solid #dee2e6;
  z-index: 2;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
}
.activity-feed-icon i {
  font-size: 0.875rem;
  color: #6c757d;
}
.activity-feed-icon.activity-feed-icon--quote {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.1) 0%, rgba(13, 110, 253, 0.05) 100%);
  border-color: #0d6efd;
}
.activity-feed-icon.activity-feed-icon--quote i {
  color: #0d6efd;
}
.activity-feed-icon.activity-feed-icon--purchase-order {
  background: linear-gradient(135deg, rgba(147, 51, 234, 0.1) 0%, rgba(147, 51, 234, 0.05) 100%);
  border-color: #9333ea;
}
.activity-feed-icon.activity-feed-icon--purchase-order i {
  color: #9333ea;
}
.activity-feed-icon.activity-feed-icon--settings {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.1) 0%, rgba(144, 173, 208, 0.05) 100%);
  border-color: #90ADD0;
}
.activity-feed-icon.activity-feed-icon--settings i {
  color: #90ADD0;
}
.activity-feed-icon.activity-feed-icon--lifecycle {
  background: linear-gradient(135deg, rgba(102, 187, 106, 0.1) 0%, rgba(102, 187, 106, 0.05) 100%);
  border-color: #66bb6a;
}
.activity-feed-icon.activity-feed-icon--lifecycle i {
  color: #66bb6a;
}
.activity-feed-icon.activity-feed-icon--delivery {
  background: linear-gradient(135deg, rgba(40, 167, 69, 0.1) 0%, rgba(40, 167, 69, 0.05) 100%);
  border-color: #28a745;
}
.activity-feed-icon.activity-feed-icon--delivery i {
  color: #28a745;
}
.activity-feed-icon.activity-feed-icon--di-action {
  background: linear-gradient(135deg, rgba(255, 179, 71, 0.1) 0%, rgba(255, 179, 71, 0.05) 100%);
  border-color: #ffb347;
}
.activity-feed-icon.activity-feed-icon--di-action i {
  color: #ffb347;
}
.activity-feed-icon.activity-feed-icon--installation {
  background: linear-gradient(135deg, rgba(255, 179, 71, 0.1) 0%, rgba(255, 179, 71, 0.05) 100%);
  border-color: #ffb347;
}
.activity-feed-icon.activity-feed-icon--installation i {
  color: #ffb347;
}
.activity-feed-icon.activity-feed-icon--invoice {
  background: linear-gradient(135deg, rgba(13, 148, 136, 0.1) 0%, rgba(13, 148, 136, 0.05) 100%);
  border-color: #0d9488;
}
.activity-feed-icon.activity-feed-icon--invoice i {
  color: #0d9488;
}
.activity-feed-icon.activity-feed-icon--snag {
  background: linear-gradient(135deg, rgba(155, 35, 48, 0.1) 0%, rgba(155, 35, 48, 0.05) 100%);
  border-color: #9b2330;
}
.activity-feed-icon.activity-feed-icon--snag i {
  color: #9b2330;
}
.activity-feed-icon.activity-feed-icon--comment,
.activity-feed-icon.activity-feed-icon--default {
  background: linear-gradient(135deg, rgba(108, 117, 125, 0.1) 0%, rgba(108, 117, 125, 0.05) 100%);
  border-color: #6c757d;
}
.activity-feed-icon.activity-feed-icon--comment i,
.activity-feed-icon.activity-feed-icon--default i {
  color: #6c757d;
}
.activity-feed-content {
  background-color: #ffffff;
  border-radius: 0.75rem;
  padding: 1rem;
  border: 2px solid #e9ecef;
  position: relative;
  transition: all 0.3s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}
.activity-feed-content::before {
  content: '';
  position: absolute;
  left: -2px;
  top: 0;
  bottom: 0;
  width: 4px;
  background: transparent;
  border-radius: 1rem 0 0 1rem;
  transition: all 0.3s ease;
  opacity: 0;
}
.activity-feed-content:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  border-color: #dee2e6;
}
.activity-feed-content:hover::before {
  opacity: 1;
}
.activity-feed-item--quote .activity-feed-content::before {
  background: linear-gradient(180deg, #0d6efd 0%, rgba(13, 110, 253, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--purchase-order .activity-feed-content::before {
  background: linear-gradient(180deg, #9333ea 0%, rgba(147, 51, 234, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--settings .activity-feed-content::before {
  background: linear-gradient(180deg, #90ADD0 0%, rgba(144, 173, 208, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--lifecycle .activity-feed-content::before {
  background: linear-gradient(180deg, #66bb6a 0%, rgba(102, 187, 106, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--delivery .activity-feed-content::before {
  background: linear-gradient(180deg, #28a745 0%, rgba(40, 167, 69, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--di-action .activity-feed-content::before {
  background: linear-gradient(180deg, #ffb347 0%, rgba(255, 179, 71, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--installation .activity-feed-content::before {
  background: linear-gradient(180deg, #ffb347 0%, rgba(255, 179, 71, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--invoice .activity-feed-content::before {
  background: linear-gradient(180deg, #0d9488 0%, rgba(13, 148, 136, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--snag .activity-feed-content::before {
  background: linear-gradient(180deg, #9b2330 0%, rgba(155, 35, 48, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--comment .activity-feed-content::before {
  background: linear-gradient(180deg, #6c757d 0%, rgba(108, 117, 125, 0.5) 100%);
  opacity: 1;
}
.activity-feed-item--default .activity-feed-content::before {
  background: linear-gradient(180deg, #6c757d 0%, rgba(108, 117, 125, 0.5) 100%);
  opacity: 1;
}
.activity-feed-header {
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #f1f3f5;
}
.activity-feed-header-left {
  flex: 1;
  min-width: 0;
}
.activity-feed-header-right {
  flex-shrink: 0;
}
.activity-feed-title-row {
  gap: 0.5rem;
}
.activity-feed-title {
  line-height: 1.3;
  letter-spacing: -0.01em;
}
.activity-feed-type-badge {
  border-radius: 0.4rem;
  align-self: flex-start;
}
.activity-feed-type-badge.activity-feed-type-badge--quote {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.15) 0%, rgba(13, 110, 253, 0.08) 100%);
  color: #0d6efd;
  border: 1px solid rgba(13, 110, 253, 0.2);
}
.activity-feed-type-badge.activity-feed-type-badge--purchase-order {
  background: linear-gradient(135deg, rgba(147, 51, 234, 0.15) 0%, rgba(147, 51, 234, 0.08) 100%);
  color: #9333ea;
  border: 1px solid rgba(147, 51, 234, 0.2);
}
.activity-feed-type-badge.activity-feed-type-badge--settings {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.15) 0%, rgba(144, 173, 208, 0.08) 100%);
  color: #90ADD0;
  border: 1px solid rgba(144, 173, 208, 0.2);
}
.activity-feed-type-badge.activity-feed-type-badge--lifecycle {
  background: linear-gradient(135deg, rgba(102, 187, 106, 0.15) 0%, rgba(102, 187, 106, 0.08) 100%);
  color: #66bb6a;
  border: 1px solid rgba(102, 187, 106, 0.2);
}
.activity-feed-type-badge.activity-feed-type-badge--delivery {
  background: linear-gradient(135deg, rgba(40, 167, 69, 0.15) 0%, rgba(40, 167, 69, 0.08) 100%);
  color: #28a745;
  border: 1px solid rgba(40, 167, 69, 0.2);
}
.activity-feed-type-badge.activity-feed-type-badge--di-action {
  background: linear-gradient(135deg, rgba(255, 179, 71, 0.15) 0%, rgba(255, 179, 71, 0.08) 100%);
  color: #ffb347;
  border: 1px solid rgba(255, 179, 71, 0.2);
  color: #ff9f1c;
}
.activity-feed-type-badge.activity-feed-type-badge--installation {
  background: linear-gradient(135deg, rgba(255, 179, 71, 0.15) 0%, rgba(255, 179, 71, 0.08) 100%);
  color: #ffb347;
  border: 1px solid rgba(255, 179, 71, 0.2);
  color: #ff9f1c;
}
.activity-feed-type-badge.activity-feed-type-badge--invoice {
  background: linear-gradient(135deg, rgba(13, 148, 136, 0.15) 0%, rgba(13, 148, 136, 0.08) 100%);
  color: #0d9488;
  border: 1px solid rgba(13, 148, 136, 0.2);
  color: #0f766e;
}
.activity-feed-type-badge.activity-feed-type-badge--snag {
  background: linear-gradient(135deg, rgba(155, 35, 48, 0.15) 0%, rgba(155, 35, 48, 0.08) 100%);
  color: #9b2330;
  border: 1px solid #f3b8c1;
}
.activity-feed-type-badge.activity-feed-type-badge--comment,
.activity-feed-type-badge.activity-feed-type-badge--default {
  background: linear-gradient(135deg, rgba(108, 117, 125, 0.15) 0%, rgba(108, 117, 125, 0.08) 100%);
  color: #6c757d;
  border: 1px solid rgba(108, 117, 125, 0.2);
}
.activity-feed-time i {
  font-size: 1rem;
  color: #adb5bd;
}
.activity-feed-body {
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: break-word;
  line-height: 1.5;
  padding: 0.75rem;
  background: #fafafa;
  border-radius: 0.5rem;
  border-left: 2px solid #dee2e6;
  max-height: 12rem;
  overflow-y: auto;
}
.activity-feed-attachment-card {
  background: #fafafa;
  border: 1px solid #e9ecef;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
}
.activity-feed-attachment-card:hover {
  background: #ffffff;
  border-color: #90ADD0;
  box-shadow: 0 2px 6px rgba(144, 173, 208, 0.15);
  transform: translateX(4px);
  text-decoration: none;
}
.activity-feed-attachment-icon {
  width: 2.4rem;
  height: 2.4rem;
  background: linear-gradient(135deg, #e5737a 0%, #9b2330 100%);
  border-radius: 0.4rem;
  flex-shrink: 0;
  box-shadow: 0 2px 4px rgba(220, 53, 69, 0.2);
}
.activity-feed-attachment-icon i {
  font-size: 1.2rem;
  color: #ffffff;
}
.activity-feed-attachment-info {
  flex: 1;
  min-width: 0;
}
.activity-feed-attachment-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.activity-feed-attachment-action {
  flex-shrink: 0;
  opacity: 0.6;
  transition: opacity 0.2s ease;
}
.activity-feed-attachment-card:hover .activity-feed-attachment-action {
  opacity: 1;
}
.activity-feed-meta {
  padding-top: 0.75rem;
  margin-top: 0.75rem;
  border-top: 1px solid #f1f3f5;
}
.activity-feed-user-avatar {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #90ADD0 0%, rgba(144, 173, 208, 0.8) 100%);
  flex-shrink: 0;
  box-shadow: 0 2px 4px rgba(144, 173, 208, 0.25);
}
.activity-feed-user-info {
  flex: 1;
}
.detail-split-layout {
  display: grid;
  grid-template-columns: minmax(34rem, 42rem) minmax(58rem, 1fr);
  gap: 2rem;
  align-items: start;
  margin-top: 1.5rem;
  margin-bottom: 2rem;
}
.detail-split-sidebar {
  min-width: 0;
}
.detail-split-card {
  overflow: hidden;
}
.detail-split-card .ui-card-header {
  padding: 1.75rem 2rem 1.25rem;
}
.detail-split-card .ui-card-content {
  padding: 0 2rem 2rem;
}
.detail-split-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
}
.detail-split-heading > .ui-btn,
.detail-split-heading > a.btn {
  flex-shrink: 0;
  white-space: nowrap;
}
.detail-split-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.detail-split-preview {
  min-width: 0;
  overflow: hidden;
}
.detail-split-preview-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.75rem 2rem 1.25rem;
}
.detail-split-preview-content {
  padding: 0 2rem 2rem;
}
@media (max-width: 1200px) {
  .detail-split-layout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .detail-split-heading,
  .detail-split-preview-header {
    flex-direction: column;
    align-items: stretch;
  }
  .detail-split-card .ui-card-header {
    padding: 1.5rem 1.5rem 1rem;
  }
  .detail-split-card .ui-card-content {
    padding: 0 1.5rem 1.5rem;
  }
  .detail-split-preview-content {
    padding: 0 1.5rem 1.5rem;
  }
}
.entity-table {
  background: #fafafa;
}
.entity-table thead th {
  background: #fafafa;
}
.entity-table tbody tr {
  cursor: pointer;
  background: #fafafa;
}
.entity-table--card {
  background: transparent;
}
.entity-table--card thead th {
  background: rgba(108, 117, 125, 0.03);
}
.entity-table--card tbody tr {
  background: transparent;
  border-bottom-color: rgba(108, 117, 125, 0.16);
}
.entity-table--card thead tr {
  background: rgba(108, 117, 125, 0.03);
}
.entity-table--card th {
  height: auto;
  padding: 1rem 2rem;
  color: #6c757d;
}
.entity-table--card td {
  padding: 1.25rem 2rem;
}
.entity-table-project-cell {
  white-space: normal;
}
.entity-table-project {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}
.entity-table-project-text {
  min-width: 0;
}
.entity-table-id {
  font-variant-numeric: tabular-nums;
  color: #6c757d;
}
.entity-table-name {
  font-weight: 600;
  color: #212529;
}
.entity-table-sub {
  font-size: 1.3rem;
  color: #6c757d;
}
.entity-table-num,
.entity-table-amount {
  font-variant-numeric: tabular-nums;
}
.entity-table-wrap {
  white-space: normal;
  word-break: break-word;
}
.entity-list-table {
  table-layout: fixed;
  width: 100%;
}
.entity-list-table col.entity-col-name {
  width: 20%;
}
.entity-list-table col.entity-col-status {
  width: 9%;
}
.entity-list-table col.entity-col-location {
  width: 12%;
}
.entity-list-table col.entity-col-contact {
  width: 17%;
}
.entity-list-table col.entity-col-website {
  width: 12%;
}
.entity-list-table col.entity-col-count {
  width: 7%;
}
.entity-list-table col.entity-col-date {
  width: 11%;
}
.entity-list-table col.entity-col-invoice {
  width: 11%;
}
.entity-list-table col.entity-col-project {
  width: 13%;
}
.entity-list-table col.entity-col-customer {
  width: 14%;
}
.entity-list-table col.entity-col-po {
  width: 10%;
}
.entity-list-table col.entity-col-amount {
  width: 10%;
}
.entity-list-table col.entity-col-status-wide {
  width: 15%;
}
.entity-list-table col.entity-col-invoice-wide {
  width: 14%;
}
.entity-list-table th,
.entity-list-table td {
  padding-left: 1rem;
  padding-right: 1rem;
}
.entity-list-table th.entity-table-wrap,
.entity-list-table td.entity-table-wrap {
  white-space: normal;
  word-break: break-word;
}
.entity-list-table .entity-table-project-cell {
  white-space: normal;
}
.entity-list-table--supplier col.entity-col-name {
  width: 22%;
}
.entity-list-table--supplier col.entity-col-status {
  width: 10%;
}
.entity-list-table--supplier col.entity-col-location {
  width: 14%;
}
.entity-list-table--supplier col.entity-col-contact {
  width: 20%;
}
.entity-list-table--supplier col.entity-col-website {
  width: 14%;
}
.entity-list-table--supplier col.entity-col-date {
  width: 10%;
}
.entity-table-row {
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.entity-table-row:hover {
  background: rgba(144, 173, 208, 0.05) !important;
}
.entity-table-actions {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}
.entity-table-sortable {
  cursor: pointer;
  user-select: none;
}
.entity-table-empty {
  padding: 4rem 0;
  text-align: center;
  border-top: 1px solid var(--card-border, #dee2e6);
  background: transparent;
}
.entity-table-open-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.2rem;
  height: 3.2rem;
  padding: 0;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 6px;
  background: #ffffff;
  color: #6c757d;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.entity-table-open-btn:hover {
  border-color: #90ADD0;
  background: rgba(144, 173, 208, 0.06);
  color: #90ADD0;
  box-shadow: 0 2px 4px rgba(144, 173, 208, 0.12);
}
.entity-table-open-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(144, 173, 208, 0.25);
  border-color: #90ADD0;
}
.attachment-hub-card {
  overflow: hidden;
}
.attachment-hub-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.attachment-hub-card-content {
  padding-top: 0.75rem;
}
.attachment-hub {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.attachment-hub-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.8rem;
  height: 1.8rem;
  padding: 0 0.45rem;
  border-radius: 999px;
  background: rgba(33, 37, 41, 0.07);
  color: #6c757d;
  font-size: 1.4rem;
  font-weight: 600;
}
.attachment-hub-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.9rem;
  max-width: 100%;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid #dee2e6;
}
.attachment-hub-path {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 0.5rem;
}
.attachment-hub-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 2.15rem;
  padding: 0 0.75rem;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  background: #ffffff;
  color: #212529;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1;
}
.attachment-hub-back:focus-visible {
  outline: 2px solid rgba(144, 173, 208, 0.45);
  outline-offset: 2px;
}
.attachment-hub-location {
  min-width: 0;
  padding-left: 0.15rem;
  overflow: hidden;
  color: #212529;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.attachment-hub-folder-grid,
.attachment-hub-file-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 1rem;
}
.attachment-hub-folder-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 220px;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  background: #ffffff;
  color: #212529;
  text-align: left;
  box-shadow: none;
}
.attachment-hub-folder-card:focus-visible {
  outline: 2px solid rgba(144, 173, 208, 0.45);
  outline-offset: 2px;
}
.attachment-hub-folder-art {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 150px;
  background: rgba(250, 250, 250, 0.28);
}
.attachment-hub-folder-art i {
  color: rgba(33, 37, 41, 0.85);
  font-size: 3.75rem;
}
.attachment-hub-folder-label {
  display: block;
  flex-shrink: 0;
  min-width: 0;
  padding: 0.8rem 0.85rem;
  border-top: 1px solid #dee2e6;
  background: #ffffff;
  color: #4773a8;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.attachment-hub-folder-meta {
  display: block;
  min-width: 0;
  padding: 0.1rem 0.85rem 0.75rem;
  overflow: hidden;
  color: #6c757d;
  font-size: 1.4rem;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.attachment-hub-folder-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  padding: 0.3rem 0.65rem;
  border: 1px solid rgba(144, 173, 208, 0.28);
  border-radius: 999px;
  background: rgba(144, 173, 208, 0.09);
  color: #507db5;
  font-size: 1.4rem;
  font-weight: 600;
}
.attachment-hub-folder-card .attachment-hub-folder-count {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
}
.attachment-hub-open-folder {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.attachment-hub-open-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.attachment-hub-upload {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem;
}
.attachment-hub-upload .form-control {
  max-width: 280px;
}
.attachment-hub-upload-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0.45rem 0.85rem;
  overflow: hidden;
  border: 1px dashed rgba(144, 173, 208, 0.42);
  border-radius: 8px;
  background: #ffffff;
  color: #5783b8;
  font-size: 1.3rem;
  font-weight: 600;
  cursor: pointer;
}
.attachment-hub-upload-button input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.attachment-hub-dropzone {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 13rem;
  padding: 2rem 1.5rem;
  border: 2px dashed rgba(144, 173, 208, 0.32);
  border-radius: 16px;
  background: rgba(250, 250, 250, 0.22);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.attachment-hub-dropzone:hover,
.attachment-hub-dropzone:focus-within {
  border-color: rgba(144, 173, 208, 0.52);
  background: rgba(144, 173, 208, 0.06);
}
.attachment-hub-dropzone input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.attachment-hub-dropzone-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  max-width: 26rem;
  text-align: center;
  pointer-events: none;
}
.attachment-hub-dropzone-content > i {
  margin-bottom: 0.35rem;
  color: rgba(144, 173, 208, 0.72);
  font-size: 2.5rem;
  line-height: 1;
}
.attachment-hub-dropzone-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.65rem;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  background: #90ADD0;
  color: #ffffff;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1;
}
.attachment-hub-file-copy {
  min-width: 0;
}
.attachment-hub-file-card {
  display: flex;
  flex-direction: column;
  min-height: 200px;
  overflow: hidden;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: none;
}
.attachment-hub-file-card--important {
  border-color: rgba(144, 173, 208, 0.42);
}
.attachment-hub-file-open,
.attachment-hub-file-copy {
  color: inherit;
  text-decoration: none;
}
.attachment-hub-file-open {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
}
.attachment-hub-file-preview {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 150px;
  overflow: hidden;
  background: rgba(250, 250, 250, 0.26);
}
.attachment-hub-file-preview i {
  color: #507db5;
  font-size: 2.75rem;
}
.attachment-hub-file-preview img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 150px;
  border: 0;
  padding: 0.55rem;
  background: #ffffff;
  object-fit: contain;
  object-position: center;
}
.attachment-hub-file-copy {
  min-width: 0;
}
.attachment-hub-pdf-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.4rem;
  color: #507db5;
}
.attachment-hub-pdf-preview i {
  font-size: 2.75rem;
}
.attachment-hub-pdf-preview span {
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.attachment-hub-file-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.625rem;
  padding: 0.75rem 0.875rem;
  border-top: 1px solid #dee2e6;
  background: #ffffff;
}
.attachment-hub-file-title {
  overflow: hidden;
  color: #4773a8;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.attachment-hub-file-meta {
  overflow: hidden;
  color: #6c757d;
  font-size: 1.4rem;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.attachment-hub-file-actions {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.attachment-hub-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-height: 10rem;
  padding: 1.5rem;
  border: 1px dashed #dee2e6;
  border-radius: 16px;
  color: #6c757d;
  text-align: center;
}
.attachment-hub-empty > i {
  color: rgba(33, 37, 41, 0.32);
  font-size: 2rem;
  line-height: 1;
}
.attachment-hub-empty--inline {
  flex-direction: row;
  align-items: center;
  gap: 0.85rem;
  text-align: left;
}
.attachment-hub-empty--compact {
  min-height: 6rem;
}
.attachment-hub-loading {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.attachment-hub-skeleton {
  min-height: 5rem;
  border-radius: 16px;
  background: linear-gradient(90deg, rgba(250, 250, 250, 0.55) 0%, rgba(144, 173, 208, 0.09) 50%, rgba(250, 250, 250, 0.55) 100%);
  background-size: 220% 100%;
  animation: attachmentHubPulse 1.1s ease-in-out infinite;
}
@keyframes attachmentHubPulse {
  from {
    background-position: 100% 0;
  }
  to {
    background-position: -100% 0;
  }
}
@media (max-width: 1199px) {
  .attachment-hub-folder-grid,
  .attachment-hub-file-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  }
}
@media (max-width: 767px) {
  .attachment-hub-card-header,
  .attachment-hub-open-header {
    align-items: stretch;
    flex-direction: column;
  }
  .attachment-hub-toolbar {
    width: 100%;
  }
  .attachment-hub-location {
    overflow: hidden;
  }
  .attachment-hub-folder-grid,
  .attachment-hub-file-grid,
  .attachment-hub-loading {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  }
  .attachment-hub-folder-card,
  .attachment-hub-file-card {
    min-height: 180px;
  }
  .attachment-hub-folder-art,
  .attachment-hub-file-preview {
    min-height: 120px;
  }
}
.client-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
  background: #fafafa;
}
.client-logo-initials {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 600;
  text-transform: uppercase;
}
.client-logo-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.client-logo--card {
  width: 2.5rem;
  height: 2.5rem;
}
.ui-breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 1.3rem;
  line-height: 1.5;
  word-break: break-word;
  color: var(--ui-breadcrumb-color, var(--muted-foreground, #6c757d));
}
@media (min-width: 576px) {
  .ui-breadcrumb-list {
    gap: 0.625rem;
  }
}
.ui-breadcrumb-item {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.ui-breadcrumb-link {
  color: inherit;
  text-decoration: none;
  transition: color 0.15s ease, opacity 0.15s ease;
}
.ui-breadcrumb-link:hover {
  color: var(--ui-breadcrumb-page-color, var(--card-foreground, #212529));
}
.ui-breadcrumb--custom-color .ui-breadcrumb-link:hover {
  opacity: 0.85;
}
.ui-breadcrumb-page {
  font-weight: 400;
  color: var(--ui-breadcrumb-page-color, var(--card-foreground, #212529));
}
.ui-breadcrumb-page--bold {
  font-weight: 700;
}
.ui-breadcrumb-separator {
  display: inline-flex;
  align-items: center;
  color: inherit;
}
.ui-breadcrumb-separator > svg,
.ui-breadcrumb-separator > i {
  width: 0.875rem;
  height: 0.875rem;
  font-size: 0.875rem;
  line-height: 1;
}
.ui-breadcrumb-ellipsis {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  color: inherit;
}
.ui-breadcrumb-ellipsis > svg,
.ui-breadcrumb-ellipsis > i {
  width: 1rem;
  height: 1rem;
  font-size: 1rem;
  line-height: 1;
}
.project-details .client-detail-link {
  text-decoration: none;
  transition: color 0.2s ease;
}
.project-details .client-detail-link:hover {
  color: #6B8DB0;
  text-decoration: underline;
}
.project-details .client-logo {
  width: 120px !important;
  height: 120px !important;
  max-width: 120px !important;
  max-height: 120px !important;
  border-radius: 20px;
  margin-right: 1rem;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.project-details .client-logo:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}
.project-details .client-logo--fallback {
  background-color: var(--client-bg-color);
}
.project-details .client-logo--image {
  object-fit: cover;
  background-color: transparent;
}
.project-tabs-container .project-tabs-header {
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #edf2f7;
}
.project-tabs-container .project-tabs-bso {
  font-size: 1.1rem;
  letter-spacing: 0.02em;
}
.project-tabs-container .card-shadow {
  overflow: visible;
  background: #fafafa;
  border: 1px solid #edf2f7;
}
.project-tabs-container .project-tabs-below {
  margin-top: 1.25rem !important;
  padding-top: 0.25rem;
  overflow: visible;
}
.project-tabs-container .client-logo {
  width: 60px !important;
  height: 60px !important;
  max-width: 60px !important;
  max-height: 60px !important;
  border-radius: 15%;
  flex-shrink: 0;
}
.project-tabs-container .client-logo--fallback {
  background-color: var(--client-bg-color);
}
.project-tabs-container .client-logo--image {
  object-fit: cover;
  background-color: transparent;
}
.project-tabs-container .project-tab-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.project-overview {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  width: 100%;
  max-width: 100%;
  padding: 0;
  background: #ffffff;
}
.project-overview .ui-card {
  background: #ffffff;
  --card: #ffffff;
}
.project-overview-cta {
  border: 1px solid #d1e7dd;
  border-radius: 1rem;
  background: linear-gradient(180deg, #f6fff9 0%, #ffffff 100%);
  padding: 1rem 1.15rem;
}
.project-overview-next-steps {
  width: 100%;
}
.project-overview-next-steps .needs-action-section-loading {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 8rem;
  padding: 1.5rem;
}
.project-overview-next-steps .needs-action-section-content-refreshing {
  opacity: 0.55;
  pointer-events: none;
  transition: opacity 0.15s ease;
}
.project-overview-profit {
  width: 100%;
}
.project-overview-profit .needs-action-section-loading {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 4rem;
  padding: 1rem;
}
.project-profit-empty {
  padding: 0.25rem 0;
}
.project-profit-alert {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.875rem 1rem;
  border-radius: 8px;
  margin-bottom: 1rem;
  font-size: 1.3rem;
}
.project-profit-alert i {
  margin-top: 0.125rem;
  flex-shrink: 0;
}
.project-profit-alert strong {
  display: block;
  margin-bottom: 0.125rem;
}
.project-profit-alert--warning {
  background: rgba(245, 166, 35, 0.12);
  border: 1px solid rgba(245, 166, 35, 0.35);
  color: #835406;
}
.project-profit-alert--critical {
  background: #fde8ea;
  border: 1px solid #f1aeb5;
  border-left: 4px solid #dc3545;
  color: #842029;
}
.project-profit-alert--critical i {
  color: #dc3545;
}
.project-profit-stats {
  margin-bottom: 0;
}
.project-overview-board {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: 2.5rem;
  padding: 0 0 2rem;
  box-sizing: border-box;
  background: #ffffff;
}
.project-overview-board-title {
  padding-top: 0.5rem;
}
.project-overview-board .project-kanban-board {
  margin-top: 1.25rem;
  padding: 0;
  max-width: 100%;
  min-width: 0;
}
.overview-header {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0;
  background: transparent;
}
.overview-header-hero {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem 1.25rem;
  padding-bottom: 1.5rem;
}
.overview-header-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1.5rem 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #dee2e6;
}
.overview-header-empty {
  margin: 0;
  padding: 0;
  font-size: 1.4rem;
  line-height: 1.5;
  color: #6c757d;
}
.overview-header .client-logo {
  width: 56px !important;
  height: 56px !important;
  max-width: 56px !important;
  max-height: 56px !important;
  border-radius: 12px;
  margin-right: 0;
  box-shadow: none;
  flex-shrink: 0;
}
.overview-header .client-logo:hover {
  transform: none;
  box-shadow: none;
}
.overview-client {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
}
.overview-client-meta {
  min-width: 0;
}
.overview-client-name {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #212529;
}
.overview-client-contact {
  margin-top: 0.25rem;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.4;
  color: #6c757d;
}
.overview-details {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.overview-field {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.375rem;
  min-width: 0;
}
.overview-field-label {
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6c757d;
}
.overview-field-value {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.5;
  color: #212529;
}
.overview-field-value-link {
  color: #507db5;
  font-weight: 400;
  text-decoration: none;
}
.overview-field-value-link:hover {
  text-decoration: underline;
}
.overview-field-value-money {
  color: #507db5;
  font-weight: 500;
}
.overview-stage-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  width: fit-content;
  max-width: 100%;
  padding: 0.5rem 1rem;
  border: 1px solid rgba(144, 173, 208, 0.35);
  border-radius: 999px;
  background: rgba(144, 173, 208, 0.12);
  color: #507db5;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}
.overview-stage-badge i {
  font-size: 0.9em;
  opacity: 0.9;
}
.project-tab-shell,
.project-setup-shell {
  background: #ffffff;
  box-shadow: none;
  padding: 0;
}
.project-setup {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
  max-width: 100%;
  padding: 0;
  background: #ffffff;
}
.project-setup .ui-card {
  background: #ffffff;
  --card: #ffffff;
}
.project-setup .setup-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
}
.project-setup .editable-field {
  width: 100%;
}
.project-setup .editable-field {
  margin-bottom: 0;
  border-bottom: none;
}
.project-setup .editable-field label {
  display: block;
  margin-bottom: 0.375rem;
  color: #212529;
  font-size: 1.2rem;
  font-weight: 600;
}
.project-setup .editable-display {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #dee2e6;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.project-setup .editable-display:hover:not(.disabled) {
  border-color: #bbc3cc;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.project-setup .editable-display .text-muted {
  color: #6c757d !important;
  opacity: 1;
  font-weight: 400;
}
.project-setup .text-area .editable-display {
  align-items: flex-start;
  min-height: 5.5rem;
}
.project-setup .text-area .editable-display p {
  margin: 0;
  width: 100%;
}
.project-setup .input-group {
  width: 100%;
}
.project-setup .input-group input.form-control,
.project-setup .input-group select.form-control,
.project-setup .input-group textarea.form-control {
  border-radius: 6px;
}
.project-setup .editable-display-wrapper {
  width: 100%;
}
.project-setup .editable-display-wrapper .editable-display {
  flex: 1;
  min-width: 0;
}
.project-setup .setup-helper {
  font-size: 1.1rem;
  color: #6c757d;
  margin-top: 0.375rem;
}
.project-setup .project-manager.editable-field > label {
  margin-bottom: 0;
}
.project-setup .project-manager.editable-field .details-label {
  font-size: 1.1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6c757d;
  margin-bottom: 0.375rem;
}
.project-setup .project-manager.editable-field .mb-3 {
  margin-bottom: 0.75rem !important;
}
.project-setup .project-manager.editable-field .editable-field.text {
  margin-top: 0.5rem;
}
.project-setup .project-manager.editable-field .editable-field.text label {
  font-size: 1.3rem;
  font-weight: 600;
  color: #6c757d;
}
.pipeline-section {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.pipeline-section-title {
  padding-top: 0;
}
.pipeline-section .pipeline-kanban {
  margin-top: 0;
}
.pipeline-page {
  padding: 1rem 1.5rem 2rem;
  background: #ffffff;
  min-height: calc(100vh - 120px);
}
.pipeline-stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 768px) {
  .pipeline-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 992px) {
  .pipeline-stats--extended {
    grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
  }
}
.pipeline-stat-card {
  height: 100%;
  --card: #fafafa;
  background: #fafafa;
}
.pipeline-stat-card-content {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1.25rem 1.5rem;
}
.pipeline-stat-card--tight-profit {
  --card: rgba(245, 166, 35, 0.12);
  background: rgba(245, 166, 35, 0.12);
  border: 1px solid rgba(245, 166, 35, 0.4);
}
.pipeline-stat-card--tight-profit .pipeline-stat-value {
  color: #835406;
}
.pipeline-stat-card--critical-profit {
  --card: #fde8ea;
  background: #fde8ea;
  border: 1px solid #f1aeb5;
}
.pipeline-stat-card--critical-profit .pipeline-stat-value {
  color: #842029;
}
.pipeline-stat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.pipeline-stat-label {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #6c757d;
}
.pipeline-stat-icon {
  font-size: 1.6rem;
  color: #adb5bd;
}
.pipeline-stat-icon-success {
  color: #2d6a3e;
}
.pipeline-stat-value {
  font-size: 2.4rem;
  font-weight: 700;
  color: #212529;
  line-height: 1.1;
}
.pipeline-stat-sub {
  margin-top: 0.35rem;
  font-size: 1.3rem;
  color: #6c757d;
}
.pipeline-toolbar {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.pipeline-toolbar-filters {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}
.pipeline-search {
  position: relative;
  flex: 0 0 auto;
  width: 16rem;
}
.pipeline-search i {
  position: absolute;
  top: 50%;
  left: 0.85rem;
  transform: translateY(-50%);
  color: #adb5bd;
  font-size: 1.3rem;
  pointer-events: none;
}
.pipeline-search-input {
  width: 100%;
  padding: 0.55rem 0.85rem 0.55rem 2.4rem;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 8px;
  background: var(--card, #ffffff);
  font-size: 1.4rem;
  color: #212529;
}
.pipeline-search-input:focus {
  outline: none;
  border-color: var(--primary, #90ADD0);
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.25);
}
.pipeline-stream-select {
  flex: 0 0 auto;
  width: 11rem;
  padding: 0.55rem 2rem 0.55rem 0.85rem;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 8px;
  background: var(--card, #ffffff);
  font-size: 1.4rem;
  color: #212529;
  cursor: pointer;
}
.pipeline-stream-select:focus {
  outline: none;
  border-color: var(--primary, #90ADD0);
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.25);
}
.pipeline-view-toggle {
  display: inline-flex;
  margin-left: auto;
  padding: 0.2rem;
  gap: 0.2rem;
  background: #fafafa;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 8px;
}
.pipeline-view-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.85rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #6c757d;
  font-size: 1.3rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.pipeline-view-toggle-btn:hover {
  color: #212529;
}
.pipeline-view-toggle-btn.is-active {
  background: var(--card, #ffffff);
  color: #212529;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}
.pipeline-pill {
  display: inline-block;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  background: rgba(144, 173, 208, 0.12);
  border: 1px solid rgba(144, 173, 208, 0.25);
  color: #495057;
  font-size: 1.1rem;
  font-weight: 500;
  white-space: nowrap;
}
.pipeline-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  color: #ffffff;
  font-size: 1.1rem;
  font-weight: 600;
  flex-shrink: 0;
}
.pipeline-avatar--sm {
  width: 2rem;
  height: 2rem;
  font-size: 1rem;
}
.pipeline-owner {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.pipeline-kanban .ui-kanban-board {
  display: flex;
  grid-template-columns: none;
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: 0.5rem;
  align-items: stretch;
}
.pipeline-kanban .ui-kanban-column {
  flex: 0 0 300px;
  width: 300px;
  background: #fafbfc;
}
.pipeline-kanban .ui-kanban-column-header {
  padding: 0;
  background: transparent;
  border-bottom: 0;
}
.pipeline-kanban .ui-kanban-column-content {
  max-height: 70vh;
}
.pipeline-kanban .ui-kanban-item {
  background: transparent;
  border: 0;
  box-shadow: none;
}
.pipeline-kanban .ui-kanban-item:hover {
  box-shadow: none;
}
.pipeline-col-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  padding: 0.875rem 1rem;
}
.pipeline-col-header-title {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}
.pipeline-col-header-dot {
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 999px;
  flex-shrink: 0;
}
.pipeline-col-header-name {
  font-size: 1.3rem;
  font-weight: 600;
  color: #212529;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pipeline-col-header-count {
  font-size: 1.1rem;
  font-weight: 600;
  color: #6c757d;
}
.pipeline-col-header-value {
  font-size: 1.1rem;
  font-weight: 500;
  color: #6c757d;
  white-space: nowrap;
}
.pipeline-card {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 0.85rem 0.95rem;
  border-radius: 8px;
  background: var(--card, #ffffff);
  border: 1px solid var(--card-border, #dee2e6);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  cursor: pointer;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.pipeline-card:hover {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  border-color: var(--primary, #90ADD0);
}
.pipeline-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.pipeline-card-lead {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  min-width: 0;
  flex: 1;
}
.pipeline-card-heading {
  min-width: 0;
}
.pipeline-card-name {
  font-size: 1.4rem;
  font-weight: 600;
  color: #212529;
  line-height: 1.25;
}
.pipeline-card-client {
  margin-top: 0.1rem;
  font-size: 1.3rem;
  color: #6c757d;
}
.pipeline-card-id {
  font-size: 1rem;
  color: #adb5bd;
  white-space: nowrap;
  flex-shrink: 0;
}
.pipeline-card-mid {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.pipeline-card-value {
  font-size: 1.8rem;
  font-weight: 700;
  color: #212529;
}
.pipeline-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid #eee;
}
.pipeline-card-close {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 1.3rem;
  color: #6c757d;
}
.pipeline-section .ui-table-wrapper,
.pipeline-page .ui-table-wrapper {
  background: #fafafa;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 12px;
}
.pipeline-section .entity-table,
.pipeline-page .entity-table {
  min-width: 72rem;
}
.editable-field.project-appetite-slider .appetite-slider-container {
  position: relative;
  padding: 40px 20px 60px;
}
.editable-field.project-appetite-slider .appetite-percentages {
  position: relative;
  height: 24px;
  margin-bottom: 12px;
}
.editable-field.project-appetite-slider .appetite-percentage {
  position: absolute;
  white-space: nowrap;
}
.editable-field.project-appetite-slider .appetite-percentage.appetite-percentage-start {
  transform: translateX(0);
}
.editable-field.project-appetite-slider .appetite-percentage.appetite-percentage-end {
  transform: translateX(-100%);
}
.editable-field.project-appetite-slider .appetite-bar-container {
  position: relative;
  height: 40px;
  margin: 12px 0;
}
.editable-field.project-appetite-slider .appetite-gradient-bar {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 20px;
  border-radius: 10px;
  transform: translateY(-50%);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
  z-index: 1;
  pointer-events: none;
}
.editable-field.project-appetite-slider .appetite-range-input {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
  pointer-events: auto;
}
.editable-field.project-appetite-slider .appetite-range-input::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  position: relative;
  margin-top: -13px;
}
.editable-field.project-appetite-slider .appetite-range-input::-moz-range-thumb {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: transparent;
  border: none;
  cursor: pointer;
  box-sizing: border-box;
}
.editable-field.project-appetite-slider .appetite-range-input::-ms-thumb {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: transparent;
  border: none;
  cursor: pointer;
}
.editable-field.project-appetite-slider .appetite-range-input::-webkit-slider-runnable-track {
  width: 100%;
  height: 40px;
  cursor: pointer;
  background: transparent;
  margin-top: 0;
  margin-bottom: 0;
}
.editable-field.project-appetite-slider .appetite-range-input::-moz-range-track {
  width: 100%;
  height: 40px;
  cursor: pointer;
  background: transparent;
}
.editable-field.project-appetite-slider .appetite-range-input::-ms-track {
  width: 100%;
  height: 40px;
  cursor: pointer;
  background: transparent;
  border: none;
  color: transparent;
}
.editable-field.project-appetite-slider .appetite-range-input::-ms-fill-lower,
.editable-field.project-appetite-slider .appetite-range-input::-ms-fill-upper {
  background: transparent;
}
.editable-field.project-appetite-slider .appetite-range-input::-webkit-slider-thumb {
  margin-top: -13px;
}
.editable-field.project-appetite-slider .appetite-indicator {
  position: absolute;
  top: 50%;
  width: 20px;
  height: 20px;
  background: #000;
  border: 3px solid #ffffff;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
  z-index: 3;
  pointer-events: none;
}
.editable-field.project-appetite-slider .appetite-categories {
  position: relative;
  height: 32px;
  margin-top: 12px;
}
.editable-field.project-appetite-slider .appetite-category {
  position: absolute;
  text-align: left;
  transform: translateX(0);
}
.project-activity-feed-timeline {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
  max-width: 100%;
  padding: 0;
  background: #ffffff;
}
.project-activity-feed-timeline .activity-filters-panel {
  padding: 0;
  background: #ffffff;
  border: 1px solid #e9ecef;
  border-radius: 0.75rem;
  padding: 1.25rem;
}
.project-activity-feed-timeline .activity-feed-timeline {
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.project-activity-feed-timeline .activity-feed-timeline::before {
  display: none;
}
.project-activity-feed-timeline .activity-feed-card {
  background: #fafafa;
  --card: #fafafa;
  box-shadow: none;
}
.project-activity-feed-timeline .activity-feed-card-header {
  padding-bottom: 1rem;
  border-bottom: 1px solid #f1f3f5;
}
.project-activity-feed-timeline .activity-feed-card-content {
  padding-top: 1rem;
  padding-bottom: 0;
}
.project-activity-feed-timeline .activity-feed-card-content--empty {
  display: none;
  padding: 0;
}
.project-activity-feed-timeline .activity-feed-card-footer {
  padding-top: 1rem;
  margin-top: 0;
  border-top: 1px solid #f1f3f5;
}
.project-activity-feed-timeline .activity-feed-body {
  background: transparent;
  border-left: none;
  padding: 0;
  max-height: none;
  margin: 0;
}
.project-activity-feed-timeline .activity-feed-attachment-card {
  background: #ffffff;
}
.project-activity-feed-timeline .activity-feed-attachment-card:hover {
  box-shadow: none;
  transform: none;
}
.project-activity-feed-timeline .activity-feed-user-avatar {
  box-shadow: none;
}
.add-comment-section {
  padding-top: 0.5rem;
  border-top: 1px solid #e9ecef;
}
.add-comment-section textarea {
  resize: vertical;
  min-height: 100px;
}
.activity-filters .filter-option-item {
  flex: 0 1 auto;
  align-self: flex-start;
  border-radius: 0.5rem;
  background: #ffffff;
  border: 1px solid #e9ecef;
  transition: border-color 0.2s ease;
  cursor: pointer;
}
.activity-filters .filter-option-item:hover {
  background: #ffffff;
  border-color: #90ADD0;
  box-shadow: none;
}
.activity-filters .filter-option-item .form-check-input {
  margin: 0 0.5rem 0 0;
  cursor: pointer;
  flex-shrink: 0;
}
.activity-filters .filter-option-item .form-check-label {
  cursor: pointer;
  margin: 0;
}
.activity-filters .user-avatar-small {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #90ADD0 0%, rgba(144, 173, 208, 0.8) 100%);
  flex-shrink: 0;
  box-shadow: none;
}
.activity-filters .filter-type-badge {
  border-radius: 0.4rem;
  border: 1px solid transparent;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.activity-filters .filter-type-badge.filter-type-badge--quote {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.15) 0%, rgba(13, 110, 253, 0.08) 100%);
  color: #0d6efd;
  border: 1px solid rgba(13, 110, 253, 0.2);
}
.activity-filters .filter-type-badge.filter-type-badge--purchase-order {
  background: linear-gradient(135deg, rgba(147, 51, 234, 0.15) 0%, rgba(147, 51, 234, 0.08) 100%);
  color: #9333ea;
  border: 1px solid rgba(147, 51, 234, 0.2);
}
.activity-filters .filter-type-badge.filter-type-badge--settings {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.15) 0%, rgba(144, 173, 208, 0.08) 100%);
  color: #90ADD0;
  border: 1px solid rgba(144, 173, 208, 0.2);
}
.activity-filters .filter-type-badge.filter-type-badge--lifecycle {
  background: linear-gradient(135deg, rgba(102, 187, 106, 0.15) 0%, rgba(102, 187, 106, 0.08) 100%);
  color: #66bb6a;
  border: 1px solid rgba(102, 187, 106, 0.2);
}
.activity-filters .filter-type-badge.filter-type-badge--delivery {
  background: linear-gradient(135deg, rgba(40, 167, 69, 0.15) 0%, rgba(40, 167, 69, 0.08) 100%);
  color: #28a745;
  border: 1px solid rgba(40, 167, 69, 0.2);
}
.activity-filters .filter-type-badge.filter-type-badge--di-action {
  background: linear-gradient(135deg, rgba(255, 179, 71, 0.15) 0%, rgba(255, 179, 71, 0.08) 100%);
  color: #ffb347;
  border: 1px solid rgba(255, 179, 71, 0.2);
  color: #ff9f1c;
}
.activity-filters .filter-type-badge.filter-type-badge--installation {
  background: linear-gradient(135deg, rgba(255, 179, 71, 0.15) 0%, rgba(255, 179, 71, 0.08) 100%);
  color: #ffb347;
  border: 1px solid rgba(255, 179, 71, 0.2);
  color: #ff9f1c;
}
.activity-filters .filter-type-badge.filter-type-badge--invoice {
  background: linear-gradient(135deg, rgba(13, 148, 136, 0.15) 0%, rgba(13, 148, 136, 0.08) 100%);
  color: #0d9488;
  border: 1px solid rgba(13, 148, 136, 0.2);
  color: #0f766e;
}
.activity-filters .filter-type-badge.filter-type-badge--comment,
.activity-filters .filter-type-badge.filter-type-badge--default {
  background: linear-gradient(135deg, rgba(108, 117, 125, 0.15) 0%, rgba(108, 117, 125, 0.08) 100%);
  color: #6c757d;
  border: 1px solid rgba(108, 117, 125, 0.2);
}
.activity-filters .filter-type-badge .btn-close {
  margin-left: 0.25rem;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.activity-filters .filter-type-badge .btn-close:hover {
  opacity: 1;
}
.project-kanban-board {
  margin-top: 2rem;
  padding: 1.5rem 0;
  max-width: 100%;
  min-width: 0;
}
.kanban-board-container {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  padding-bottom: 1rem;
  min-height: 400px;
  max-width: 100%;
}
.kanban-column {
  flex: 1 1 350px;
  min-width: 300px;
  background: #fafafa;
  border-radius: 12px;
  border: 2px solid #e9ecef;
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 300px);
  overflow: hidden;
}
.kanban-column .kanban-column-header {
  padding: 1rem 1.25rem;
  background: #ffffff;
  border-bottom: 2px solid #e9ecef;
  border-radius: 12px 12px 0 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}
.kanban-column .kanban-column-header h4 {
  margin: 0;
  font-size: 16px;
}
.kanban-column .kanban-column-header .kanban-column-count {
  background: #90ADD0;
  padding: 0.25rem 0.75rem;
  border-radius: 12px;
  font-size: 12px;
  min-width: 24px;
  text-align: center;
}
.kanban-column .kanban-column-content {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.kanban-card {
  background: #ffffff;
  border: 2px solid #e9ecef;
  border-radius: 8px;
  padding: 1rem;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.kanban-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  border-color: #90ADD0;
  transform: translateY(-2px);
}
.kanban-card.kanban-card--quote {
  border-left: 4px solid #0d6efd;
}
.kanban-card.kanban-card--quote:hover {
  border-left-color: #0a58ca;
}
.kanban-card.kanban-card--po {
  border-left: 4px solid #9333ea;
}
.kanban-card.kanban-card--po:hover {
  border-left-color: #7e22ce;
}
.kanban-card.kanban-card--delivery {
  border-left: 4px solid #28a745;
}
.kanban-card.kanban-card--delivery:hover {
  border-left-color: #218838;
}
.kanban-card.kanban-card--di {
  border-left: 4px solid #ffb347;
}
.kanban-card.kanban-card--di:hover {
  border-left-color: #ff9f1c;
}
.kanban-card .kanban-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.kanban-card .kanban-card-header .kanban-card-header-left {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1;
  min-width: 0;
}
.kanban-card .kanban-card-header i {
  font-size: 16px;
  flex-shrink: 0;
}
.kanban-card .kanban-card-header .kanban-card-supplier-logo {
  width: 24px;
  height: 24px;
  object-fit: contain;
  border-radius: 4px;
  flex-shrink: 0;
  background-color: #ffffff;
  border: 1px solid #e9ecef;
  padding: 2px;
}
.kanban-card .kanban-card-header .kanban-card-title {
  font-size: 14px;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.kanban-card .kanban-card-header .kanban-card-badge {
  flex-shrink: 0;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  font-size: 11px;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--locked {
  background-color: #6c757d;
  color: #ffffff;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--draft {
  background-color: rgba(108, 117, 125, 0.15);
  color: #212529;
  font-weight: 600;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--final {
  background-color: rgba(102, 187, 106, 0.15);
  color: #49a54e;
  font-weight: 600;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--status.kanban-card-badge--not-started {
  background-color: #6c757d;
  color: #ffffff;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--status.kanban-card-badge--in-progress {
  background-color: #0d6efd;
  color: #ffffff;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--status.kanban-card-badge--completed {
  background-color: #66bb6a;
  color: #ffffff;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--priority.kanban-card-badge--low {
  background-color: #6c757d;
  color: #ffffff;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--priority.kanban-card-badge--medium {
  background-color: #f5a623;
  color: #212529;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--priority.kanban-card-badge--high {
  background-color: #e5737a;
  color: #ffffff;
}
.kanban-card .kanban-card-header .kanban-card-badge.kanban-card-badge--delivery-stage {
  background-color: #28a745;
  color: #ffffff;
  font-weight: 600;
}
.kanban-card .kanban-card-header .kanban-card-header-right {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.kanban-card .kanban-card-header .kanban-card-header-right .btn-sm i {
  font-size: 0.75rem;
}
.kanban-card .kanban-card-body .kanban-card-meta {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  font-size: 12px;
  color: #6c757d;
  margin-bottom: 0.75rem;
}
.kanban-card .kanban-card-body .kanban-card-meta .kanban-card-version,
.kanban-card .kanban-card-body .kanban-card-meta .kanban-card-ref {
  font-weight: 500;
}
.kanban-card .kanban-card-body .kanban-card-meta .kanban-card-date {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 11px;
  color: #868e96;
}
.kanban-card .kanban-card-body .kanban-card-meta .kanban-card-date i {
  font-size: 10px;
}
.kanban-card .kanban-card-body .kanban-card-supplier,
.kanban-card .kanban-card-body .kanban-card-supplier-inline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 12px;
  color: #495057;
}
.kanban-card .kanban-card-body .kanban-card-supplier i,
.kanban-card .kanban-card-body .kanban-card-supplier-inline i {
  font-size: 12px;
  color: #17a2b8;
}
.kanban-card .kanban-card-body .kanban-card-supplier-inline {
  gap: 0.375rem;
  font-size: 11px;
}
.kanban-card .kanban-card-body .kanban-card-supplier-inline i {
  font-size: 10px;
}
.kanban-card .kanban-card-body .kanban-card-amount {
  font-size: 16px;
  font-weight: 700;
  color: #66bb6a;
  margin-top: 0.5rem;
}
.kanban-card .kanban-card-body .kanban-card-margin {
  font-size: 12px;
  color: #6c757d;
  margin-top: 0.375rem;
  font-weight: 500;
}
.kanban-empty-state {
  text-align: center;
  padding: 2rem 1rem;
  font-size: 13px;
}
.kanban-card-stepper {
  margin: 0.75rem 0;
  padding: 0.5rem 0.5rem;
}
.kanban-stepper-steps {
  display: flex;
  align-items: flex-start;
  gap: 0.25rem;
  position: relative;
  width: 100%;
  overflow: visible;
}
.kanban-stepper-step-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  min-width: 0;
  position: relative;
}
.kanban-stepper-lock {
  position: absolute;
  top: 5px;
  right: -2px;
  font-size: 7px;
  background-color: #ffffff;
  border-radius: 50%;
  padding: 2px;
  border: 1px solid #dee2e6;
  width: 12px;
  height: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  color: #6c757d;
  transform: translateY(-50%);
}
.kanban-stepper-connector {
  position: absolute;
  top: 8px;
  left: -50%;
  right: 50%;
  height: 2px;
  background-color: #dee2e6;
  z-index: 0;
}
.kanban-stepper-connector.kanban-stepper-connector--completed {
  background-color: #66bb6a;
}
.kanban-stepper-connector.kanban-stepper-connector--pending {
  background-color: #dee2e6;
}
.kanban-stepper-step {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #ffffff;
  border: 2px solid #dee2e6;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
  font-size: 8px;
  color: #6c757d;
  flex-shrink: 0;
}
.kanban-stepper-step i {
  font-size: 8px;
}
.kanban-stepper-step.kanban-stepper-step--completed {
  background-color: #66bb6a;
  border-color: #66bb6a;
  color: #ffffff;
}
.kanban-stepper-step.kanban-stepper-step--current {
  background-color: #ffffff;
  border-color: #0d6efd;
  color: #0d6efd;
}
.kanban-stepper-step.kanban-stepper-step--pending {
  background-color: #ffffff;
  border-color: #dee2e6;
  color: #6c757d;
}
.kanban-stepper-label {
  font-size: 9px;
  font-weight: 600;
  color: #495057;
  text-align: center;
  margin-top: 0.25rem;
  line-height: 1.2;
  min-height: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.125rem;
}
.kanban-stepper-label .kanban-stepper-date {
  font-size: 8px;
  font-weight: 400;
  color: #868e96;
}
.kanban-card-description {
  font-size: 12px;
  color: #6c757d;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
.kanban-card-expand {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid #e9ecef;
}
.kanban-card-expand button {
  font-size: 12px;
  color: #0d6efd;
  text-decoration: none;
}
.kanban-card-expand button:hover {
  text-decoration: underline;
}
.kanban-card-subactions {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #e9ecef;
  padding-left: 1rem;
}
.kanban-subaction {
  margin-bottom: 0.5rem;
  padding-left: 1rem;
}
.kanban-subaction:last-child {
  margin-bottom: 0;
}
.kanban-subaction .form-check {
  margin: 0;
  padding: 0.25rem 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.kanban-subaction .form-check-label {
  font-size: 13px;
  color: #212529;
  cursor: pointer;
  margin: 0;
}
.kanban-subaction.kanban-subaction--completed .form-check-label {
  text-decoration: line-through;
  color: #6c757d;
  opacity: 0.7;
}
@media (max-width: 768px) {
  .kanban-column {
    flex: 0 0 280px;
    min-width: 280px;
  }
  .kanban-board-container {
    min-height: 300px;
  }
}
.projects-kanban {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  align-items: stretch;
  padding-bottom: 0.5rem;
  max-width: 100%;
}
.projects-kanban-lane {
  flex: 1 1 0;
  min-width: 240px;
  display: flex;
  flex-direction: column;
  align-self: stretch;
}
.projects-kanban-lane .ui-kanban-board {
  display: flex;
  flex: 1;
  grid-template-columns: none;
  min-width: 0;
  min-height: 0;
  align-items: stretch;
}
.projects-kanban-lane .ui-kanban-column {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 100%;
  max-height: none;
}
.projects-kanban-lane .ui-kanban-column-content {
  flex: 1;
  min-height: 0;
  max-height: 70vh;
}
.projects-board-col-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  padding: 0.875rem 1rem;
}
.projects-board-col-header-title {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}
.projects-board-col-header-name {
  font-size: 1.3rem;
  font-weight: 600;
  color: #212529;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.projects-board-col-header-count {
  font-size: 1.1rem;
  font-weight: 600;
  color: #6c757d;
}
.projects-board-col-header--stacked {
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
}
.projects-board-col-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
}
.projects-board-col-header-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}
.all-projects-kanban .projects-kanban,
.project-kanban-board .projects-kanban {
  margin-top: 0;
}
.all-projects-kanban .projects-kanban .kanban-card,
.project-kanban-board .projects-kanban .kanban-card {
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.all-projects-kanban .projects-kanban .kanban-card:hover,
.project-kanban-board .projects-kanban .kanban-card:hover {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  border-color: var(--primary, #90ADD0);
  transform: none;
}
.all-projects-kanban .projects-kanban .kanban-card.kanban-card--quote,
.project-kanban-board .projects-kanban .kanban-card.kanban-card--quote {
  border-left: 3px solid #0d6efd;
}
.all-projects-kanban .projects-kanban .kanban-card.kanban-card--quote:hover,
.project-kanban-board .projects-kanban .kanban-card.kanban-card--quote:hover {
  border-left-color: #0a58ca;
  border-color: var(--primary, #90ADD0);
}
.all-projects-kanban .projects-kanban .kanban-card.kanban-card--po,
.project-kanban-board .projects-kanban .kanban-card.kanban-card--po {
  border-left: 3px solid #9333ea;
}
.all-projects-kanban .projects-kanban .kanban-card.kanban-card--po:hover,
.project-kanban-board .projects-kanban .kanban-card.kanban-card--po:hover {
  border-left-color: #7e22ce;
  border-color: var(--primary, #90ADD0);
}
.all-projects-kanban .projects-kanban .kanban-card.kanban-card--delivery,
.project-kanban-board .projects-kanban .kanban-card.kanban-card--delivery {
  border-left: 3px solid #28a745;
}
.all-projects-kanban .projects-kanban .kanban-card.kanban-card--delivery:hover,
.project-kanban-board .projects-kanban .kanban-card.kanban-card--delivery:hover {
  border-left-color: #218838;
  border-color: var(--primary, #90ADD0);
}
.all-projects-kanban .projects-kanban .kanban-card.kanban-card--di,
.project-kanban-board .projects-kanban .kanban-card.kanban-card--di {
  border-left: 3px solid #ffb347;
}
.all-projects-kanban .projects-kanban .kanban-card.kanban-card--di:hover,
.project-kanban-board .projects-kanban .kanban-card.kanban-card--di:hover {
  border-left-color: #ff9f1c;
  border-color: var(--primary, #90ADD0);
}
.project-invoices-tab {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
  max-width: 100%;
  padding: 0;
  background: #ffffff;
}
.project-invoices-tab-content {
  background: #ffffff;
}
.invoice-summary-item {
  background: #fafafa;
  border-radius: 0.6rem;
  min-width: 0;
  padding: 0.875rem 1.35rem;
}
.finance-subnav--pipeline {
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.finance-subnav .nav-link {
  font-size: 1.4rem;
  font-weight: 500;
  color: #6c757d;
}
.finance-subnav .nav-link.active {
  color: #212529;
  background: #fafafa;
}
.invoice-list--pipeline .pipeline-toolbar + .ui-table-wrapper {
  margin-top: 0;
}
.invoice-list-row--void {
  opacity: 0.72;
}
.invoice-list-table th,
.invoice-list-table td {
  vertical-align: middle;
}
.invoice-list-table .text-end {
  white-space: nowrap;
}
.finance-doc-list-table {
  table-layout: fixed;
  width: 100%;
}
.finance-doc-list-table .finance-col-project {
  width: 13%;
}
.finance-doc-list-table .finance-col-doc {
  width: 13%;
}
.finance-doc-list-table .finance-col-date {
  width: 10%;
}
.finance-doc-list-table .finance-col-sent {
  width: 10%;
}
.finance-doc-list-table .finance-col-ref {
  width: 14%;
}
.finance-doc-list-table .finance-col-po {
  width: 12%;
}
.finance-doc-list-table .finance-col-amt {
  width: 12%;
}
.finance-doc-list-table .finance-col-status {
  width: 16%;
}
.finance-doc-list-table.finance-doc-list-table--with-customer .finance-col-project {
  width: 11%;
}
.finance-doc-list-table.finance-doc-list-table--with-customer .finance-col-doc {
  width: 11%;
}
.finance-doc-list-table.finance-doc-list-table--with-customer .finance-col-customer {
  width: 14%;
}
.finance-doc-list-table.finance-doc-list-table--with-customer .finance-col-date {
  width: 9%;
}
.finance-doc-list-table.finance-doc-list-table--with-customer .finance-col-sent {
  width: 9%;
}
.finance-doc-list-table.finance-doc-list-table--with-customer .finance-col-ref {
  width: 11%;
}
.finance-doc-list-table.finance-doc-list-table--with-customer .finance-col-po {
  width: 10%;
}
.finance-doc-list-table.finance-doc-list-table--with-customer .finance-col-amt {
  width: 10%;
}
.finance-doc-list-table.finance-doc-list-table--with-customer .finance-col-status {
  width: 15%;
}
.invoice-list-th-sortable {
  cursor: pointer;
  user-select: none;
}
.invoice-list-sort-icon {
  opacity: 0.7;
}
.invoice-list-link {
  text-decoration: none;
}
.invoice-list-link:hover {
  text-decoration: underline;
}
.invoice-status--paid {
  background-color: #198754;
}
.invoice-status--overdue {
  background-color: #dc3545;
}
.invoice-status--void {
  background-color: #7f1d1d;
}
.invoice-status--sent {
  background-color: #0d6efd;
}
.invoice-status--draft {
  background-color: #6c757d;
}
.invoice-back-link {
  text-decoration: none;
  transition: color 0.2s ease;
}
.invoice-back-link:hover {
  color: #90ADD0;
}
.invoice-back-link i {
  transition: transform 0.2s ease;
}
.invoice-back-link:hover i {
  transform: translateX(-3px);
}
.invoice-hero {
  overflow: hidden;
}
.invoice-hero .invoice-hero-header {
  background: linear-gradient(135deg, #90ADD0 0%, #7398c4 100%);
  border-radius: 20px 20px 0 0;
  padding: 1.5rem 2rem;
  color: #ffffff;
}
@media (min-width: 768px) {
  .invoice-hero .invoice-hero-header-content {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}
@media (max-width: 767px) {
  .invoice-hero .invoice-hero-meta {
    gap: 1.25rem;
  }
}
.invoice-hero .invoice-hero-meta-item {
  text-align: left;
}
.invoice-hero .invoice-hero-meta-label {
  opacity: 0.85;
  color: #ffffff !important;
}
.invoice-hero .invoice-hero-meta-value .invoice-hero-meta-link {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.invoice-hero .invoice-hero-meta-value .invoice-hero-meta-link:hover {
  color: #ffffff;
  opacity: 0.9;
}
.invoice-hero .invoice-hero-body {
  background: #ffffff;
  border-radius: 0 0 20px 20px;
}
.invoice-hero .invoice-hero-steps {
  position: relative;
  padding: 0 0 1rem;
  overflow-x: auto;
  gap: 0;
}
.invoice-hero .invoice-step-wrapper {
  flex: 1;
  position: relative;
  z-index: 1;
}
.invoice-hero .invoice-step-wrapper:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 16px;
  left: calc(50% + 16px);
  right: calc(-50% + 16px);
  height: 3px;
  z-index: 0;
  transition: all 0.3s ease;
}
.invoice-hero .invoice-step-wrapper.workflow-connector--completed::after {
  background: #66bb6a;
}
.invoice-hero .invoice-step-wrapper.workflow-connector--pending::after {
  background: #dee2e6;
  border-top: 1px dashed #adb5bd;
  border-bottom: 1px dashed #adb5bd;
}
.invoice-hero .invoice-step {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  position: relative;
  transition: all 0.3s ease;
  border: 2px solid;
  background: #ffffff;
  z-index: 2;
  flex-shrink: 0;
}
.invoice-hero .invoice-step.workflow-step--completed {
  background: #66bb6a;
  border-color: #66bb6a;
  color: #ffffff;
  box-shadow: 0 0 0 3px rgba(102, 187, 106, 0.2);
}
.invoice-hero .invoice-step.workflow-step--completed i {
  color: #ffffff;
}
.invoice-hero .invoice-step.workflow-step--current {
  background: #90ADD0;
  border-color: #90ADD0;
  color: #ffffff;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.25);
}
.invoice-hero .invoice-step.workflow-step--current.workflow-step--overdue {
  background: #e5737a;
  border-color: #e5737a;
  box-shadow: 0 0 0 3px rgba(229, 115, 122, 0.25);
}
.invoice-hero .invoice-step.workflow-step--pending {
  background: #ffffff;
  border-color: #dee2e6;
  color: #6c757d;
  border-style: dashed;
}
.invoice-hero .invoice-step-label {
  line-height: 1.2;
  max-width: 100%;
  word-break: break-word;
  white-space: normal;
}
.invoice-hero .invoice-hero-actions {
  border-top: 1px solid #dee2e6;
}
.invoice-overdue-banner {
  background: rgba(220, 53, 69, 0.06);
  border: 1px solid rgba(220, 53, 69, 0.15);
  border-radius: 8px;
}
.invoice-amount-card .invoice-amount-value {
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.invoice-date-field .editable-field {
  margin-bottom: 0;
  border-bottom: none;
}
.invoice-date-field .editable-field label {
  display: none;
}
.invoice-date-field .editable-field .editable-display {
  font-size: 1.4rem;
  font-weight: 600;
  color: #272B3B;
  padding: 0;
}
.invoice-date-field .editable-field .editable-display .text-muted {
  font-size: 1.2rem;
  font-weight: 500;
  color: #6c757d;
}
.invoice-party-card {
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid #dee2e6;
  transition: box-shadow 0.2s ease;
}
.invoice-party-card:hover {
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}
.invoice-party-col {
  flex: 1;
  min-width: 0;
}
.invoice-party-col.invoice-party-col--to {
  padding: 0 0 0 1rem;
}
.invoice-party-col:not(.invoice-party-col--to) {
  padding: 0 1rem 0 0;
}
.invoice-party-divider-vertical {
  width: 1px;
  min-height: 4rem;
  background: #dee2e6;
  flex-shrink: 0;
}
@media (max-width: 767px) {
  .invoice-party-divider-vertical {
    width: 100%;
    min-height: 1px;
    margin: 0.75rem 0;
  }
}
.invoice-party-name {
  line-height: 1.3;
  margin-bottom: 0.5rem;
}
.invoice-party-address {
  line-height: 1.7;
}
.invoice-payment-details-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 575px) {
  .invoice-payment-details-grid {
    grid-template-columns: 1fr;
  }
}
.invoice-payment-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.75rem 1rem;
  background: #fafafa;
  border-radius: 10px;
  border: 1px solid #dee2e6;
}
.invoice-payment-field-value {
  padding: 0.25rem 0.5rem;
}
.invoice-items-table {
  margin-bottom: 0;
}
.invoice-items-table thead th {
  background: #fafafa;
  border-bottom: 1px solid #dee2e6;
  padding: 0.75rem 1rem;
  white-space: nowrap;
}
.invoice-items-table thead th:first-child {
  text-align: left;
}
.invoice-items-table thead th:not(:first-child) {
  text-align: right;
}
.invoice-items-table .invoice-items-table-num {
  min-width: 11rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.invoice-items-table thead th.invoice-items-table-num {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.invoice-items-table tbody td {
  padding: 0.85rem 1rem;
  vertical-align: middle;
  border-bottom: 1px solid #dee2e6;
}
.invoice-items-table tbody td.invoice-items-table-num {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.invoice-items-table tbody tr:last-child td {
  border-bottom: none;
}
.invoice-items-table .invoice-item-desc {
  text-align: left;
}
.invoice-items-table .invoice-item-desc-primary {
  display: block;
}
.invoice-items-table .invoice-item-desc-secondary {
  display: block;
}
.invoice-items-table .editable-field {
  margin-bottom: 0;
  border-bottom: none;
}
.invoice-items-table .editable-field label {
  display: none;
}
.invoice-items-table .editable-field .editable-display {
  padding: 0;
}
.invoice-items-table td.text-end .editable-display {
  text-align: right;
}
.invoice-items-table td.invoice-items-table-num .editable-field {
  width: 14rem;
  min-width: 14rem;
  display: inline-block;
}
.invoice-items-table td.invoice-items-table-num .editable-field .editable-display {
  display: block;
  width: 100%;
}
.invoice-items-table td.invoice-items-table-num .editable-field .input-group {
  width: 100%;
}
.invoice-items-table td.invoice-items-table-num .editable-field .input-group input {
  min-width: 0;
}
.invoice-totals {
  border-top: 2px solid #fafafa;
}
.invoice-totals-row {
  gap: 3rem;
  min-width: 18rem;
}
.invoice-totals-row--grand {
  border-top: 2px solid #fafafa;
}
.invoice-totals-row--grand span:last-child {
  color: #90ADD0;
}
.invoice-notes-section {
  border-top: 1px solid #edf2f7;
}
.invoice-notes-text {
  line-height: 1.7;
}
.invoice-activity-timeline-scroll {
  max-height: 480px;
  overflow-y: auto;
  overflow-x: hidden;
}
.invoice-sidebar {
  position: sticky;
  top: 2rem;
}
.invoice-activity-icon--overdue {
  background: linear-gradient(135deg, rgba(229, 115, 122, 0.1) 0%, rgba(229, 115, 122, 0.05) 100%) !important;
  border-color: #e5737a !important;
}
.invoice-activity-icon--overdue i {
  color: #e5737a !important;
}
.invoice-activity-content--overdue {
  border-color: rgba(229, 115, 122, 0.15);
  background: rgba(229, 115, 122, 0.03);
}
.invoice-activity-content--overdue::before {
  background: linear-gradient(180deg, #e5737a 0%, rgba(229, 115, 122, 0.5) 100%);
  opacity: 1;
}
.invoice-activity-item--overdue .activity-feed-title {
  color: #e5737a;
}
.invoice-party-name .editable-field {
  margin-bottom: 0;
  border-bottom: none;
}
.invoice-party-name .editable-field label {
  display: none;
}
.invoice-party-name .editable-field .editable-display {
  font-size: 1.6rem;
  font-weight: 700;
  color: #272B3B;
  line-height: 1.3;
  padding: 0;
  margin: 0;
}
.invoice-party-name .editable-field .editable-display .text-muted {
  font-size: 1.35rem;
  font-weight: 400;
  color: #6c757d;
}
.invoice-party-address .editable-field {
  margin-bottom: 0.25rem;
  border-bottom: none;
}
.invoice-party-address .editable-field:last-child {
  margin-bottom: 0;
}
.invoice-party-address .editable-field label {
  display: none;
}
.invoice-party-address .editable-field .editable-display {
  font-size: 1.35rem;
  color: #6c757d;
  line-height: 1.7;
  padding: 0;
}
.invoice-party-address .editable-field .editable-display .text-muted,
.invoice-party-address .editable-field .editable-display p {
  font-size: 1.35rem;
  color: #6c757d;
  margin: 0;
}
.invoice-payment-details-grid .invoice-payment-field .editable-field {
  margin-bottom: 0;
  border-bottom: none;
}
.invoice-payment-details-grid .invoice-payment-field .editable-field label {
  display: none;
}
.invoice-payment-details-grid .invoice-payment-field .editable-field .editable-display {
  font-size: 1.35rem;
  font-weight: 600;
  color: #272B3B;
  padding: 0;
}
.invoice-payment-details-grid .invoice-payment-field .editable-field .editable-display .text-muted {
  font-size: 1.2rem;
  font-weight: 500;
  color: #6c757d;
}
.invoice-details .invoice-section-heading {
  margin-bottom: 1rem;
}
.invoice-details .table-responsive {
  margin-bottom: 1.5rem;
}
.invoice-details .invoice-draft-fields .editable-field {
  margin-bottom: 0.5rem;
  border-bottom: none;
}
.invoice-details .invoice-draft-fields .editable-field label {
  display: none;
}
.invoice-details .invoice-draft-fields .editable-field .editable-display {
  font-size: 1.35rem;
  color: #6c757d;
  padding: 0;
  line-height: 1.5;
}
.invoice-details .invoice-draft-fields .editable-field .editable-display .text-muted {
  font-size: 1.2rem;
  color: #6c757d;
}
.invoice-terms-section .invoice-terms-content {
  padding-top: 0.75rem;
  border-top: 2px solid #fafafa;
  margin-top: 0;
}
.invoice-terms-text {
  line-height: 1.6;
}
.project-costs-tab {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  width: 100%;
  max-width: 100%;
  padding: 0;
  background: #ffffff;
}
.project-costs-tab .pipeline-stat-card {
  --card: #fafafa;
  background: #fafafa;
}
.project-costs-tab-header h2 {
  margin: 0 0 0.25rem;
  color: #212529;
}
.project-costs-tab-header p {
  margin: 0;
  line-height: 1.5;
}
.project-costs-tab-content {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  background: #ffffff;
}
.project-costs-section {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.project-costs-section-header h2 {
  margin: 0 0 0.25rem;
  color: #212529;
}
.project-costs-section-header p {
  margin: 0;
  line-height: 1.5;
}
.project-costs-section-header-actions {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.project-cost-po-breakdown-po-link {
  color: inherit;
  text-decoration: none;
}
.project-cost-po-breakdown-po-link:hover {
  text-decoration: underline;
  color: #90ADD0;
}
.project-cost-po-breakdown-adjustment {
  color: #d1860a;
  font-weight: 600;
  line-height: 1.35;
}
.project-cost-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.project-cost-list-filters {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.project-cost-list-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.invoice-type--po {
  background: #90ADD0;
  color: #ffffff;
}
.invoice-type--other {
  background: #6c757d;
  color: #ffffff;
}
.invoice-match--none {
  background: #6c757d;
}
.invoice-match--under {
  background: #f39c0b;
}
.invoice-match--full {
  background: #2d6a3e;
}
.invoice-match--over {
  background: #9b2330;
}
.project-cost-preview-modal .ui-modal-body {
  padding: 1.25rem 1.75rem 1.75rem;
}
.project-cost-preview-modal .quote-preview-frame {
  min-height: 24rem;
  height: min(70vh, 48rem);
}
.project-delivery-tab,
.project-installation-tab,
.project-snagging-tab {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
  max-width: 100%;
  padding: 0;
  background: #ffffff;
}
.project-installation-tab .installation-deliveries-table,
.project-installation-tab .upcoming-installations-table {
  width: 100%;
}
.project-installation-tab .installation-deliveries-schedule,
.project-installation-tab .upcoming-installations-schedule {
  flex-wrap: wrap;
}
.project-installation-tab .installation-deliveries-date,
.project-installation-tab .upcoming-installations-date,
.project-installation-tab .installation-deliveries input[type="date"],
.project-installation-tab .upcoming-installations input[type="date"] {
  width: 10rem;
  max-width: 100%;
  min-width: 8rem;
}
.project-follow-up-orders-shell {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.project-follow-up-orders-tab {
  width: 100%;
  max-width: none;
  padding: 0.5rem 0.5rem 1rem;
}
.follow-up-orders-hub {
  gap: 2.4rem;
  margin-top: 0;
  margin-bottom: 0;
}
.follow-up-orders-sidebar {
  position: sticky;
  top: 1.5rem;
}
@media (max-width: 1200px) {
  .follow-up-orders-sidebar {
    position: static;
  }
}
.follow-up-orders-sidebar-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.4rem;
  height: 2.4rem;
  padding: 0 0.6rem;
  border-radius: 999px;
  font-size: 1.2rem;
  font-weight: 600;
  color: #90ADD0;
  background: rgba(144, 173, 208, 0.12);
}
.follow-up-orders-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
}
.follow-up-order-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex-shrink: 0;
  gap: 0.75rem;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  background: #ffffff;
  padding: 1.5rem 1.5rem 1.5rem 1.75rem;
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
  cursor: pointer;
}
.follow-up-order-card:focus-visible {
  outline: 2px solid #90ADD0;
  outline-offset: 2px;
}
.follow-up-order-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-top-left-radius: 8px;
  border-bottom-left-radius: 8px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  background: transparent;
  transition: background 0.15s ease;
}
.follow-up-order-card:hover {
  border-color: rgba(144, 173, 208, 0.35);
  background: rgba(144, 173, 208, 0.03);
}
.follow-up-order-card.is-selected {
  border-color: rgba(144, 173, 208, 0.35);
  background: rgba(144, 173, 208, 0.12);
  box-shadow: 0 0 0 1px rgba(144, 173, 208, 0.25);
}
.follow-up-order-card.is-selected::before {
  background: #90ADD0;
}
.follow-up-order-card-ref {
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6c757d;
  line-height: 1.2;
}
.follow-up-order-card-title {
  font-size: 1.3rem;
  font-weight: 600;
  color: #212529;
  line-height: 1.35;
  word-break: break-word;
}
.follow-up-order-card-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  width: 100%;
}
.follow-up-order-card-step {
  font-size: 1.2rem;
  color: #6c757d;
  line-height: 1.35;
}
.follow-up-order-status-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.25rem 0.75rem;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.2;
  background: rgba(144, 173, 208, 0.12);
  color: #212529;
  border: 1px solid rgba(144, 173, 208, 0.25);
}
.follow-up-order-status-chip.is-complete {
  background: #e8f5ec;
  color: #2d6a3e;
  border-color: #b9dfc8;
}
.follow-up-order-status-chip.is-in-progress {
  background: rgba(13, 202, 240, 0.14);
  color: #90ADD0;
  border-color: rgba(13, 202, 240, 0.2);
}
.follow-up-order-card-progress {
  margin-top: 0.25rem;
}
.follow-up-orders-workflow {
  min-width: 0;
}
.follow-up-orders-workflow-card {
  overflow: hidden;
}
.follow-up-orders-workflow-card-header {
  padding: 2.4rem 2.8rem 0 !important;
}
.follow-up-orders-workflow-card-content {
  padding: 2rem 2.8rem 2.8rem !important;
}
.follow-up-orders-workflow-progress {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 2.4rem;
  padding: 1.5rem 0 0;
  border-top: 1px solid #eee;
}
.follow-up-orders-workflow-progress .setup-progress-label {
  line-height: 1.4;
}
.follow-up-orders-workflow-progress .setup-progress-bar {
  margin-top: 0.15rem;
}
.follow-up-orders-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0 0.25rem 0.5rem;
  list-style: none;
}
.follow-up-orders-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 3.2rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
  padding-bottom: 0.75rem;
}
.follow-up-orders-timeline-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 1.55rem;
  top: 3.2rem;
  bottom: 0;
  width: 2px;
  background: #dee2e6;
  transform: translateX(-50%);
}
.follow-up-orders-timeline-item.is-complete:not(:last-child)::after {
  background: #66bb6a;
}
.follow-up-orders-timeline-item.is-current:not(:last-child)::after {
  background: linear-gradient(180deg, #90ADD0 0%, #dee2e6 100%);
}
.follow-up-orders-timeline-item.is-locked {
  opacity: 0.55;
}
.follow-up-orders-timeline-marker {
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 700;
  background: #ffffff;
  border: 2px solid #dee2e6;
  color: #6c757d;
  flex-shrink: 0;
  z-index: 1;
}
.follow-up-orders-timeline-item.is-complete .follow-up-orders-timeline-marker {
  background: #66bb6a;
  border-color: #66bb6a;
  color: #ffffff;
}
.follow-up-orders-timeline-item.is-current .follow-up-orders-timeline-marker {
  background: #90ADD0;
  border-color: #90ADD0;
  color: #ffffff;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.18);
}
.follow-up-orders-timeline-content {
  min-width: 0;
  padding-top: 0.35rem;
  padding-bottom: 1rem;
}
.follow-up-orders-timeline-item.is-current .follow-up-orders-timeline-content {
  padding-top: 0;
  padding-bottom: 1.5rem;
}
.follow-up-orders-timeline-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.2rem;
}
.follow-up-orders-timeline-item.is-complete .follow-up-orders-timeline-row .tc-dark {
  color: #6c757d;
}
.follow-up-orders-step-body {
  margin-top: 1.25rem;
  padding: 1.5rem;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.follow-up-orders-step-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #eee;
}
.follow-up-orders-embed {
  padding: 0;
}
.follow-up-orders-embed .solution-quote-workflow,
.follow-up-orders-embed .final-quote-workflow {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.follow-up-orders-embed .entity-workflow-snag-row {
  order: 0;
  margin-bottom: 0 !important;
}
.follow-up-orders-embed .ui-stepper {
  order: 1;
  margin-bottom: 0;
  --ui-stepper-min-col: 10rem;
}
.follow-up-orders-embed .ui-stepper-steps {
  overflow-x: auto;
  padding-bottom: 0.5rem;
  gap: 0.5rem;
  grid-template-columns: repeat(var(--ui-stepper-count), minmax(var(--ui-stepper-min-col), 1fr));
}
.follow-up-orders-embed .ui-stepper-step-wrapper {
  min-width: var(--ui-stepper-min-col);
}
.follow-up-orders-embed .ui-stepper-label {
  font-size: 1.2rem;
  line-height: 1.35;
  padding: 0 0.25rem;
}
.follow-up-orders-embed .solution-quote-workflow > .row,
.follow-up-orders-embed .final-quote-workflow > .row {
  order: 2;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin: 0 !important;
  padding-top: 0 !important;
  border-top: none !important;
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
}
.follow-up-orders-embed .solution-quote-workflow > .row > [class*="col-"],
.follow-up-orders-embed .po-embed-content .row > [class*="col-"] {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  padding: 0;
}
.follow-up-orders-embed .solution-quote-workflow > .row > .col-md-4 {
  max-width: 18rem;
}
.follow-up-orders-embed .final-quote-workflow > .row > [class*="col-"] {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  padding: 0;
}
.follow-up-orders-embed .final-quote-workflow > .row > [class*="col-"]:first-child {
  max-width: 24rem;
}
.follow-up-orders-embed .final-quote-workflow > .row > [class*="col-"]:first-child > .row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 0.75rem;
  margin: 0;
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
}
.follow-up-orders-embed .final-quote-workflow > .row > [class*="col-"]:first-child > .row > .col-12 {
  grid-column: 1 / -1;
}
.follow-up-orders-embed .final-quote-workflow > .row > [class*="col-"]:first-child > .row > [class*="col-"] {
  width: auto;
  max-width: none;
  flex: none;
  padding: 0;
}
.follow-up-orders-embed .final-quote-workflow .form-label {
  margin-bottom: 0.15rem;
}
.follow-up-orders-embed .quote-workflow-actions,
.follow-up-orders-embed .workflow-actions,
.follow-up-orders-embed .di-workflow-actions {
  order: 3;
  margin-top: 0 !important;
  padding-top: 1rem;
  border-top: 1px solid #eee;
  align-items: flex-start;
}
.follow-up-orders-embed .quote-workflow-actions .d-flex,
.follow-up-orders-embed .workflow-actions .d-flex,
.follow-up-orders-embed .di-workflow-actions .d-flex {
  justify-content: flex-start;
}
.follow-up-orders-embed .quote-workflow-actions .btn,
.follow-up-orders-embed .workflow-actions .btn,
.follow-up-orders-embed .di-workflow-actions .btn,
.follow-up-orders-embed .quote-workflow-actions .ui-btn,
.follow-up-orders-embed .workflow-actions .ui-btn,
.follow-up-orders-embed .di-workflow-actions .ui-btn {
  min-width: 0;
  width: auto;
}
.follow-up-orders-embed .quote-workflow-actions .di-schedule-installation,
.follow-up-orders-embed .workflow-actions .di-schedule-installation,
.follow-up-orders-embed .di-workflow-actions .di-schedule-installation {
  margin: 0;
  align-items: flex-start;
}
.follow-up-orders-embed .quote-workflow-actions small.text-muted,
.follow-up-orders-embed .workflow-actions small.text-muted,
.follow-up-orders-embed .di-workflow-actions small.text-muted {
  text-align: left !important;
}
.follow-up-orders-embed .di-workflow-stepper {
  order: 2;
  width: 100%;
}
.follow-up-orders-embed .workflow-stepper .card-shadow,
.follow-up-orders-embed .di-workflow-stepper .card-shadow {
  box-shadow: none;
  border: 0;
  padding: 0;
  background: transparent;
}
.follow-up-orders-embed .di-stepper-header {
  display: none;
}
.follow-up-orders-embed .di-stepper-steps {
  margin-bottom: 0;
  overflow-x: auto;
  padding-bottom: 0.75rem;
  flex-wrap: nowrap;
  gap: 1rem;
}
.follow-up-orders-embed .di-step-wrapper {
  min-width: 8rem;
  flex-shrink: 0;
}
.follow-up-orders-embed .workflow-stepper,
.follow-up-orders-embed .di-workflow-stepper {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin-bottom: 0 !important;
}
.follow-up-orders-embed .workflow-stepper > div,
.follow-up-orders-embed .di-workflow-stepper > div {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.follow-up-orders-embed .po-embed-content {
  order: 2;
  padding-bottom: 0;
  border-bottom: none;
}
.follow-up-orders-embed .workflow-stepper .workflow-actions {
  order: 3;
}
.follow-up-orders-empty {
  border: 1px dashed #dee2e6;
  border-radius: 12px;
  padding: 3rem 2rem;
  text-align: center;
  color: #6c757d;
  background: rgba(250, 250, 250, 0.4);
}
.follow-up-order-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.2rem 0.6rem;
  font-size: 1.2rem;
  font-weight: 600;
  background: #fff3e0;
  color: #b45309;
  border: 1px solid #ffd7a1;
}
.follow-up-orders-overview-cta {
  border: 1px solid rgba(144, 173, 208, 0.25);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(144, 173, 208, 0.05) 0%, #ffffff 100%);
  padding: 1.5rem 1.75rem;
}
.invoice-create-modal .modal-title {
  font-size: 1.8rem;
  font-weight: 600;
}
.invoice-create-modal .modal-header {
  padding: 1.2rem 1.5rem;
  border-bottom: 1px solid #dee2e6;
}
.invoice-create-modal .modal-body {
  padding: 1.5rem 1.75rem;
  font-size: 1.4rem;
}
.invoice-create-modal .modal-footer {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  padding: 1.2rem 1.5rem;
  border-top: 1px solid #dee2e6;
}
.invoice-create-modal .modal-footer .btn {
  font-size: 1.4rem;
  padding: 0.6rem 1.25rem;
}
.invoice-create-modal .form-label {
  font-size: 1.3rem;
  font-weight: 500;
  margin-bottom: 0.35rem;
}
.invoice-create-modal .form-control,
.invoice-create-modal .form-select,
.invoice-create-modal .form-control-plaintext {
  font-size: 1.4rem;
  min-height: 2.2rem;
}
.invoice-create-modal .form-control-plaintext {
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}
.invoice-create-modal textarea.form-control {
  font-size: 1.4rem;
  padding: 0.5rem 0.75rem;
}
.invoice-create-modal .invoice-create-modal-section {
  margin-bottom: 1.75rem;
}
.invoice-create-modal .invoice-create-modal-section-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: #272B3B;
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #fafafa;
  display: flex;
  align-items: center;
}
.invoice-create-modal .invoice-create-modal-section-title i {
  color: #90ADD0;
  margin-right: 0.5rem;
  font-size: 1.4rem;
}
.invoice-create-modal .table {
  font-size: 1.4rem;
}
.invoice-create-modal .table th {
  font-size: 1.3rem;
  font-weight: 600;
}
.invoice-create-modal .table td .form-control-sm {
  font-size: 1.4rem;
  min-height: 2.2rem;
}
.invoice-create-modal .table .form-control-plaintext {
  font-size: 1.4rem;
}
.invoice-create-modal .btn-sm.btn-outline-primary {
  font-size: 1.3rem;
  padding: 0.4rem 0.75rem;
}
.invoice-create-modal .invoice-create-totals {
  background: #fafafa;
  border-radius: 0.6rem;
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 2rem;
  margin-bottom: 1.5rem;
}
.invoice-create-modal .invoice-create-totals-item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
.invoice-create-modal .invoice-create-totals-item .invoice-create-totals-label {
  font-size: 1.2rem;
  color: #6c757d;
  font-weight: 500;
}
.invoice-create-modal .invoice-create-totals-item .invoice-create-totals-value {
  font-size: 1.5rem;
  font-weight: 600;
  color: #212529;
}
.invoice-create-modal .invoice-create-totals-item .form-control {
  font-size: 1.4rem;
  min-height: 2.2rem;
}
.invoice-create-modal .invoice-create-totals-item--gst-toggle {
  flex: 1 1 100%;
  justify-content: center;
}
.invoice-create-modal .invoice-create-gst-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0;
  cursor: pointer;
  font-size: 1.3rem;
  font-weight: 500;
  color: #212529;
}
.snag-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  background-color: #fce8ec;
  color: #9b2330;
  border: 1px solid #f3b8c1;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}
.snag-badge--sm {
  min-height: 1.8rem;
  padding: 0.35rem 0.65rem;
  font-size: 1.2rem;
}
.snag-badge--inline {
  padding: 0.5rem 1rem;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.3;
  gap: 0.5rem;
  box-shadow: none;
}
.snag-badge--inline i {
  font-size: 0.95em;
}
.snag-badge--tab {
  min-height: 1.8rem;
  padding: 0.3rem 0.7rem 0.3rem 0.55rem;
  gap: 0.45rem;
  font-size: 1.2rem;
  font-weight: 700;
  box-shadow: none;
}
.snag-badge--tab i {
  font-size: 1.1rem;
}
.snag-badge i {
  font-size: 0.95em;
  line-height: 1;
}
.overview-header-hero .snag-badge--inline {
  flex-shrink: 0;
}
.project-tabs-container .project-tab-snagging {
  gap: 0.75rem;
}
.project-snagging-tab {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: 100%;
  max-width: 100%;
  padding: 0;
  background: #ffffff;
}
.project-snagging-tab .project-snagging-tab-header {
  max-width: 48rem;
}
.snag-list-container .snag-list-filters {
  flex-wrap: wrap;
  gap: 2rem;
}
.snag-list-container .snag-list-filter {
  gap: 0.8rem;
  font-size: 1.3rem;
  font-weight: 500;
  color: #212529;
  cursor: pointer;
  user-select: none;
}
.snag-list .snag-list-item[data-status="Open"] {
  border-left-color: #9b2330;
}
.snag-list .snag-list-item[data-status="In Progress"] {
  border-left-color: #b45309;
}
.snag-list .snag-list-item[data-status="Resolved"] {
  border-left-color: #2d6a3e;
}
.snag-list .snag-list-item .snag-list-item-icon {
  background: #fce8ec;
}
.snag-list .snag-list-item .snag-list-item-icon i {
  color: #9b2330;
}
.snag-list .snag-action-start-btn,
.snag-list .snag-action-resolve-btn {
  border-radius: 0.6rem;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.snag-list .snag-action-resolve-btn {
  background-color: #e8f5ec;
  border-color: #b9dfc8;
  color: #2d6a3e;
}
.snag-list .snag-action-resolve-btn:hover {
  background-color: #ddf0e3;
  border-color: #a8d7ba;
  color: #2d6a3e;
}
.snag-linked-entity-link {
  color: #90ADD0;
  text-decoration: none;
  transition: color 0.15s ease;
}
.snag-linked-entity-link:hover {
  color: #6c93c1;
  text-decoration: underline;
}
.entity-workflow-snag-row {
  min-height: 0;
}
.entity-stage-with-snag {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}
.snag-entity-indicator {
  display: inline-flex;
  text-decoration: none;
  line-height: 1;
}
.snag-entity-indicator:hover {
  text-decoration: none;
  filter: brightness(0.98);
}
.snag-stage-badge {
  padding: 0.35rem 0.75rem;
  font-size: 1.2rem;
  font-weight: 600;
  border-radius: 0.5rem;
  text-transform: none;
  letter-spacing: 0;
  white-space: nowrap;
  line-height: 1.2;
}
.snag-stage-badge--open {
  background-color: #fce8ec;
  color: #9b2330;
  border: 1px solid #f3b8c1;
}
.snag-stage-badge--in-progress {
  background-color: #fff3e0;
  color: #b45309;
  border: 1px solid #ffd7a1;
}
.snag-stage-badge--resolved {
  background-color: #e8f5ec;
  color: #2d6a3e;
  border: 1px solid #b9dfc8;
}
.snag-form-modal .ui-modal-header h5 {
  font-size: 1.8rem;
  font-weight: 600;
  color: #272B3B;
}
.snag-form-modal .form-label {
  font-size: 1.3rem;
  font-weight: 500;
  color: #212529;
  margin-bottom: 0.35rem;
}
.snag-form-modal .form-control,
.snag-form-modal .form-select {
  font-size: 1.4rem;
  min-height: 2.2rem;
}
.snag-form-modal textarea.form-control {
  padding: 0.5rem 0.75rem;
}
.snag-form-modal .ui-modal-body {
  font-size: 1.4rem;
}
.snag-form-modal-switch {
  font-size: 1.3rem;
  font-weight: 500;
  color: #212529;
  cursor: pointer;
  user-select: none;
}
.snag-form-modal-summary {
  font-size: 1.4rem;
  font-weight: 500;
  color: #6c757d;
}
.snag-form-modal-alert {
  font-size: 1.3rem;
}
.snag-damage-photos {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.snag-damage-photos--compact .snag-damage-photo-thumb,
.snag-damage-photos--compact .snag-damage-photo-add {
  width: 80px;
  height: 60px;
}
.snag-damage-photos-label {
  margin-bottom: 0.35rem;
}
.snag-damage-photos-hint {
  margin-top: 0.25rem;
}
.snag-damage-photos-gallery {
  min-height: 0;
}
.snag-damage-photo-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  max-width: 120px;
}
.snag-damage-photo-item--pending {
  max-width: 100px;
}
.snag-damage-photo-thumb {
  width: 96px;
  height: 72px;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #fafafa;
  border: 1px solid #dee2e6;
  cursor: zoom-in;
  display: block;
}
.snag-damage-photo-thumb--pending {
  cursor: default;
}
.snag-damage-photo-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.snag-damage-photo-name {
  font-size: 1.2rem;
  color: #6c757d;
  max-width: 100%;
}
.snag-damage-photo-remove {
  position: absolute;
  top: -0.35rem;
  right: -0.35rem;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  line-height: 1;
  z-index: 1;
}
.snag-damage-photo-add {
  width: 96px;
  height: 72px;
  border: 1px dashed #dee2e6;
  border-radius: 0.5rem;
  background: #ffffff;
  color: #6c757d;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
  user-select: none;
}
.snag-damage-photo-add:hover:not(.disabled) {
  border-color: #90ADD0;
  color: #90ADD0;
}
.snag-damage-photo-add.disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.snag-damage-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  box-sizing: border-box;
  background: rgba(0, 0, 0, 0.92);
  outline: none;
}
.snag-damage-lightbox-img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 6px;
  cursor: default;
}
.snag-damage-lightbox-close {
  position: fixed;
  top: 1.6rem;
  right: 1.6rem;
  z-index: 1;
  opacity: 0.9;
}
.snag-damage-lightbox-close:hover {
  opacity: 1;
}
.snag-damage-lightbox-download {
  position: fixed;
  bottom: 1.6rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}
.snag-damage-photos-section {
  border-top: 1px solid #dee2e6;
  padding-top: 0.75rem;
}
.delivery-po-card,
.delivery-po-card-compact {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 1rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  transition: all 0.2s ease;
  cursor: pointer;
}
.delivery-po-card:hover,
.delivery-po-card-compact:hover {
  border-color: #90ADD0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.delivery-po-card .delivery-po-compact-ref,
.delivery-po-card-compact .delivery-po-compact-ref,
.delivery-po-card small,
.delivery-po-card-compact small {
  color: #6c757d;
}
.delivery-po-card .delivery-po-compact-progress-bar,
.delivery-po-card-compact .delivery-po-compact-progress-bar {
  height: 0.5rem;
  background: #dee2e6;
  border-radius: 0.5rem;
  overflow: hidden;
}
.delivery-po-card .delivery-po-compact-progress-fill,
.delivery-po-card-compact .delivery-po-compact-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #66bb6a 0%, #20c997 100%);
  transition: width 0.3s ease;
  border-radius: 0.5rem;
}
.delivery-line-item,
.delivery-line-item-compact {
  background: #fafafa;
  border: 1px solid #dee2e6;
  border-radius: 1rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.delivery-line-item:hover,
.delivery-line-item-compact:hover {
  background: #fafbfc;
}
.delivery-quantity-input,
.delivery-quantity-input-compact,
.delivery-comment-field,
.delivery-comment-input-compact {
  border: 1px solid #ced4da;
  border-radius: 0.5rem;
}
.delivery-quantity-input:focus,
.delivery-quantity-input-compact:focus,
.delivery-comment-field:focus,
.delivery-comment-input-compact:focus {
  border-color: #90ADD0;
  box-shadow: 0 0 0 0.2rem rgba(144, 173, 208, 0.15);
  outline: none;
}
.delivery-progress-bar-compact,
.delivery-progress-bar {
  height: 0.5rem;
  background: #dee2e6;
  border-radius: 0.5rem;
  overflow: hidden;
}
.delivery-progress-fill,
.delivery-progress-fill-compact {
  height: 100%;
  background: linear-gradient(90deg, #66bb6a 0%, #20c997 100%);
  transition: width 0.3s ease;
  border-radius: 0.5rem;
}
.delivery-status-card {
  background: #fafafa;
  border: 1px solid #dee2e6;
  border-radius: 1rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.delivery-status-card .delivery-status-header {
  border-top: 2px solid #dee2e6;
}
.delivery-status-card .delivery-status-badge {
  background: rgba(144, 173, 208, 0.12);
  border-radius: 0.75rem;
}
.delivery-status-card .delivery-progress-bar {
  height: 0.75rem;
  background: #dee2e6;
  border-radius: 0.5rem;
  overflow: hidden;
}
.delivery-status-card .delivery-progress-bar .delivery-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #66bb6a 0%, #20c997 100%);
  transition: width 0.3s ease;
  border-radius: 0.5rem;
}
.delivery-log-form > * + *:not(.delivery-comment-section) {
  margin-top: 2rem;
}
.delivery-log-form .delivery-product-item {
  background: #ffffff;
  border: 2px solid #dee2e6;
  border-radius: 0.75rem;
  transition: all 0.2s;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.delivery-log-form .delivery-product-item.selected {
  background: #fafbfc;
  border-color: #90ADD0;
  box-shadow: 0 2px 8px rgba(144, 173, 208, 0.2);
}
.delivery-log-form .delivery-product-item.fully-delivered {
  background: #ffffff;
  border-color: #66bb6a;
  opacity: 0.95;
}
.delivery-log-form .delivery-product-item .delivery-product-check .form-check-label {
  width: 100%;
  cursor: pointer;
}
.delivery-log-form .delivery-product-item .delivery-product-name .delivery-product-code {
  background: rgba(144, 173, 208, 0.12);
  padding: 0.25rem 0.75rem;
  border-radius: 0.4rem;
}
.delivery-log-form .delivery-product-item .delivery-product-name .delivery-badge-fully-delivered {
  background: #e8f5ec;
  padding: 0.25rem 0.75rem;
  border-radius: 0.4rem;
}
.delivery-log-form .delivery-product-item .delivery-product-quantities .delivery-qty-info.delivery-qty-remaining strong {
  color: #90ADD0;
}
.delivery-log-form .delivery-product-item .delivery-product-quantity-input {
  border-top: 1px solid #dee2e6;
}
.delivery-log-form .delivery-product-item .delivery-product-quantity-input .input-group .input-group-text {
  background: #fafafa;
}
.delivery-log-form .delivery-extras-section {
  padding-top: 2rem;
  border-top: 2px dashed #dee2e6;
  background: #fafafa;
  padding: 1.5rem;
  border-radius: 0.75rem;
}
.delivery-log-form .delivery-extras-section .delivery-product-item--extra {
  border-left: 4px solid #6c757d;
  border-radius: 0.5rem;
}
.delivery-log-form .delivery-extras-section .delivery-product-item--extra.selected {
  border-left-color: #212529;
}
.delivery-log-form .delivery-extras-section .delivery-product-item--extra.fully-delivered {
  border-left-color: #66bb6a;
  background: #ffffff;
}
.delivery-log-form .delivery-extras-section .delivery-product-item--extra .delivery-product-code--extra {
  background: rgba(108, 117, 125, 0.15);
}
.delivery-log-form .delivery-comment-section {
  padding-top: 2rem;
  border-top: 2px solid #dee2e6;
}
.delivery-log-form .delivery-comment-section .delivery-comment-field {
  padding: 0.9rem 1.1rem;
  border: 1px solid #ced4da;
  border-radius: 0.5rem;
  resize: vertical;
  min-height: 120px;
}
.delivery-log-form .delivery-comment-section .delivery-comment-field:focus {
  border-color: #90ADD0;
  box-shadow: 0 0 0 0.2rem rgba(144, 173, 208, 0.15);
  outline: none;
}
.delivery-log-form .delivery-attachments-section {
  padding-top: 2rem;
  border-top: 2px solid #dee2e6;
}
.delivery-log-form .delivery-attachments-section .delivery-file-input {
  padding: 0.6rem;
  border: 1px solid #ced4da;
  border-radius: 0.5rem;
}
.delivery-log-form .delivery-attachments-section .delivery-file-input:focus {
  border-color: #90ADD0;
  box-shadow: 0 0 0 0.2rem rgba(144, 173, 208, 0.15);
  outline: none;
}
.delivery-log-form .delivery-attachments-section .delivery-file-item {
  padding: 0.85rem 1rem;
  background: #fafafa;
  border: 1px solid #dee2e6;
  border-radius: 0.5rem;
}
.delivery-log-form .delivery-attachments-section .delivery-file-item .delivery-file-info {
  flex: 1;
  min-width: 0;
}
.delivery-log-form .delivery-attachments-section .delivery-file-item .delivery-file-info i {
  color: #90ADD0;
}
.delivery-log-form .delivery-attachments-section .delivery-file-item .delivery-file-info .delivery-file-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.delivery-log-form .delivery-attachments-section .delivery-file-item .delivery-file-remove {
  color: #e5737a;
}
.delivery-log-form .delivery-attachments-section .delivery-file-item .delivery-file-remove:hover {
  color: #df5159;
}
.delivery-history-timeline {
  position: relative;
}
.delivery-history-event {
  position: relative;
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 0.75rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transition: all 0.2s ease;
}
.delivery-history-event:hover {
  border-color: #dee2e6;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transform: translateY(-1px);
}
.delivery-history-event .delivery-history-event-header {
  padding-bottom: 0.9rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #eee;
}
.delivery-history-event .delivery-history-event-products {
  margin: 0;
}
.delivery-history-event .delivery-history-product {
  padding: 0.75rem 1rem;
  background: #fafafa;
  border: 1px solid #dee2e6;
  border-left: 4px solid #90ADD0;
  border-radius: 0.6rem;
}
.delivery-history-event .delivery-history-product-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.delivery-history-event .delivery-history-product-code {
  flex: 0 0 auto;
  background: rgba(144, 173, 208, 0.12);
  border: 1px solid rgba(144, 173, 208, 0.25);
  padding: 0.2rem 0.6rem;
  border-radius: 0.4rem;
  white-space: nowrap;
}
.delivery-history-event .delivery-history-product-quantity {
  flex: 0 0 auto;
}
.delivery-history-event .delivery-history-product-quantity .badge {
  border-radius: 0.55rem;
}
.delivery-history-event .delivery-history-event-comment {
  padding: 0.75rem 1rem;
  background: #fafafa;
  border: 1px solid #dee2e6;
  border-left: 4px solid #6c757d;
  border-radius: 0.6rem;
}
.delivery-history-event .delivery-history-event-comment i {
  color: #6c757d;
  margin-top: 0.15rem;
}
.delivery-history-event .delivery-history-attachment-card {
  padding: 0;
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 0.75rem;
  overflow: hidden;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s ease;
}
.delivery-history-event .delivery-history-attachment-card:hover {
  text-decoration: none;
  border-color: #90ADD0;
  box-shadow: 0 4px 12px rgba(144, 173, 208, 0.15);
  transform: translateY(-2px);
}
.delivery-history-event .delivery-history-attachment-thumbnail {
  width: 120px;
  height: 90px;
  flex: 0 0 auto;
  background: #fafafa;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
  border-right: 1px solid #dee2e6;
}
.delivery-history-event .delivery-history-attachment-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: #fafafa;
}
.delivery-history-event .delivery-history-attachment-thumbnail i {
  position: absolute;
  font-size: 1.5rem;
  color: #6c757d;
  z-index: 1;
}
.delivery-history-event .delivery-history-attachment-left {
  min-width: 0;
  flex: 1;
  padding: 0.75rem 1rem;
}
.delivery-history-event .delivery-history-attachment-info {
  min-width: 0;
  flex: 1;
}
.delivery-history-event .delivery-history-attachment-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.delivery-history-event .delivery-history-attachment-action {
  flex: 0 0 auto;
  color: #90ADD0;
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.delivery-history-attachment-card:hover .delivery-history-event .delivery-history-attachment-action {
  opacity: 1;
}
.delivery-history-empty i {
  color: #adb5bd;
}
.di-section-container {
  height: 100%;
}
.di-section-header {
  padding-bottom: 1rem;
}
.di-section-header .di-section-icon {
  width: 4rem;
  height: 4rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.15) 0%, rgba(144, 173, 208, 0.08) 100%);
  transition: transform 0.2s ease;
}
.di-section-header .di-section-title {
  line-height: 1.3;
}
.di-section-header .di-section-description {
  line-height: 1.6;
}
.di-empty-state {
  min-height: 30rem;
}
.di-empty-state--loading .spinner-border {
  width: 2.5rem;
  height: 2.5rem;
  border-width: 0.25em;
}
.di-empty-state .di-empty-state-icon {
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.12) 0%, rgba(144, 173, 208, 0.06) 100%);
  transition: transform 0.3s ease;
}
.di-empty-state .di-empty-state-icon i {
  opacity: 0.7;
}
.di-empty-state .di-empty-state-title {
  line-height: 1.3;
}
.di-empty-state .di-empty-state-description {
  max-width: 40rem;
  line-height: 1.6;
}
.di-empty-state .btn {
  border-radius: 0.8rem;
}
.di-empty-state:hover .di-empty-state-icon {
  transform: scale(1.05);
}
@media (max-width: 768px) {
  .di-section-header .di-section-icon {
    width: 3.2rem;
    height: 3.2rem;
  }
  .di-section-header .di-section-icon i {
    font-size: 1.6rem;
  }
  .di-empty-state {
    min-height: 25rem;
  }
  .di-empty-state .di-empty-state-icon {
    width: 6.4rem;
    height: 6.4rem;
  }
  .di-empty-state .di-empty-state-icon i {
    font-size: 2.4rem;
  }
}
.upcoming-installations .upcoming-installations-content {
  padding-top: 0;
}
.upcoming-installations .upcoming-installations-table thead tr,
.upcoming-installations .upcoming-installations-table tbody tr {
  border-bottom: none;
}
.upcoming-installations .upcoming-installations-table tbody tr:hover {
  background: transparent;
}
.di-action-list-container {
  height: 100%;
}
.di-action-list-container .di-action-list {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: calc(100vh - 35rem);
}
.di-action-list-container .di-action-list::-webkit-scrollbar {
  width: 0.6rem;
}
.di-action-list-container .di-action-list::-webkit-scrollbar-track {
  background: #fafafa;
  border-radius: 0.3rem;
}
.di-action-list-container .di-action-list::-webkit-scrollbar-thumb {
  background: #6c757d;
  border-radius: 0.3rem;
}
.di-action-list-container .di-action-list::-webkit-scrollbar-thumb:hover {
  background: #494f54;
}
.di-action-list-header .di-action-list-hint {
  padding: 1rem 1.2rem;
  background: rgba(13, 202, 240, 0.08);
  border: 1px solid rgba(13, 202, 240, 0.2);
  border-radius: 0.8rem;
  line-height: 1.5;
}
.di-action-list-header .di-action-list-hint i {
  color: #0dcaf0;
  flex-shrink: 0;
}
.di-action-installation-group:not(:last-child) {
  margin-bottom: 1.5rem;
}
.di-action-installation-group-title {
  margin-top: 0;
}
.di-action-list-item {
  background: #ffffff;
  border: 1px solid #edf2f7;
  border-left: 4px solid #6c757d;
  border-radius: 1rem;
  transition: all 0.2s ease;
  position: relative;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.di-action-list-item:hover {
  border-color: #90ADD0;
  border-left-color: #90ADD0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.di-action-list-item[data-status="Not Started"] {
  border-left-color: #6c757d;
}
.di-action-list-item[data-status="In Progress"] {
  border-left-color: #f5a623;
}
.di-action-list-item[data-status="Completed"] {
  border-left-color: #66bb6a;
}
.di-action-header-left {
  flex: 1;
  min-width: 0;
}
.di-action-header-left .di-action-icon {
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 0.8rem;
  background: rgba(245, 166, 35, 0.1);
  flex-shrink: 0;
}
.di-action-header-left .di-action-icon i {
  color: #f5a623;
}
.di-action-header-left .di-action-content {
  flex: 1;
  min-width: 0;
}
.di-action-header-right {
  flex-shrink: 0;
}
.di-action-header-right .di-action-start-btn {
  border-radius: 0.6rem;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.di-action-meta {
  padding-left: 4.6rem;
}
.di-action-meta .di-action-meta-item i {
  color: #90ADD0;
  width: 1.6rem;
  text-align: center;
  flex-shrink: 0;
}
.di-action-meta .di-action-avatar {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #90ADD0 0%, #b4c7df 100%);
  color: #ffffff;
  flex-shrink: 0;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.di-action-expand {
  border-top: 1px solid #edf2f7;
  padding-left: 4.6rem;
}
.di-action-expand .btn-link {
  color: #90ADD0;
  text-decoration: none;
  transition: all 0.2s ease;
  border: none;
  background: none;
}
.di-action-expand .btn-link:hover {
  color: #6c93c1;
}
.di-action-expand .btn-link:hover i {
  transform: translateY(1px);
}
.di-action-expand .btn-link i {
  transition: transform 0.2s ease;
}
.di-action-subactions {
  padding-left: 4.6rem;
  margin-top: 1rem;
  animation: slideDown 0.2s ease-out;
}
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-0.5rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.di-subaction {
  border-radius: 0.6rem;
  background: #fafafa;
  border: 1px solid transparent;
  transition: all 0.2s ease;
  position: relative;
}
.di-subaction:hover {
  background: rgba(144, 173, 208, 0.08);
  border-color: rgba(144, 173, 208, 0.2);
}
.di-subaction.di-subaction--completed {
  background: rgba(102, 187, 106, 0.1);
  border-color: rgba(102, 187, 106, 0.25);
}
.di-subaction.di-subaction--completed .form-check-label {
  text-decoration: line-through;
  color: #6c757d;
}
.di-subaction.di-subaction--completed .form-check-input:checked {
  background-color: #66bb6a;
  border-color: #66bb6a;
}
.di-subaction .form-check {
  margin: 0;
}
.di-subaction .form-check .form-check-input {
  width: 1.8rem;
  height: 1.8rem;
  margin: 0;
  cursor: pointer;
  border: 2px solid #6c757d;
  border-radius: 0.3rem;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.di-subaction .form-check .form-check-input:checked {
  background-color: #66bb6a;
  border-color: #66bb6a;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}
.di-subaction .form-check .form-check-input:focus {
  border-color: #90ADD0;
  box-shadow: 0 0 0 0.2rem rgba(144, 173, 208, 0.25);
}
.di-subaction .form-check .form-check-input:hover:not(:checked) {
  border-color: #90ADD0;
}
.di-subaction .form-check .form-check-label {
  cursor: pointer;
  line-height: 1.5;
  flex: 1;
  transition: all 0.2s ease;
  user-select: none;
}
.di-subaction + .btn {
  margin-top: 0.8rem;
  margin-left: 0;
}
.di-action-subactions .btn,
.di-action-subactions > .btn {
  margin-top: 0.8rem;
  font-size: 1.2rem;
  padding: 0.7rem 1.2rem;
  border-radius: 0.6rem;
  border: 1px dashed #90ADD0;
  color: #90ADD0;
  background: transparent;
  transition: all 0.2s ease;
  font-weight: 600;
}
.di-action-subactions .btn:hover,
.di-action-subactions > .btn:hover {
  background: rgba(144, 173, 208, 0.1);
  border-color: #90ADD0;
  border-style: solid;
  transform: translateY(-1px);
}
.di-action-subactions .btn i,
.di-action-subactions > .btn i {
  margin-right: 0.6rem;
  font-size: 1.1rem;
}
.di-status-badge,
.di-priority-badge {
  border-radius: 0.5rem;
  text-transform: capitalize;
  white-space: nowrap;
  line-height: 1.2;
}
.di-status-badge.di-status-badge--secondary {
  background-color: #6c757d !important;
  color: #ffffff;
}
.di-status-badge.di-status-badge--primary {
  background-color: #f5a623 !important;
  color: #212529;
}
.di-status-badge.di-status-badge--success {
  background-color: #66bb6a !important;
  color: #ffffff;
}
.di-priority-badge.di-priority-badge--info {
  background-color: #3cd5f4 !important;
  color: #212529;
}
.di-priority-badge.di-priority-badge--warning {
  background-color: #f5a623 !important;
  color: #212529;
}
.di-priority-badge.di-priority-badge--danger {
  background-color: #e5737a !important;
  color: #ffffff;
}
.di-create-action-btn {
  background: #90ADD0;
  border-color: #90ADD0;
  border-radius: 0.8rem;
  transition: all 0.2s ease;
  box-shadow: 0 2px 6px rgba(144, 173, 208, 0.25);
}
.di-create-action-btn:hover:not(:disabled) {
  background: #7398c4;
  border-color: #7398c4;
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(144, 173, 208, 0.35);
}
.di-create-action-btn:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(144, 173, 208, 0.25);
}
.di-create-action-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.di-create-action-btn i {
  font-size: 1.3rem;
}
.di-action-list-container .spinner-border-sm {
  width: 1.5rem;
  height: 1.5rem;
  border-width: 0.2em;
  color: #90ADD0;
}
@media (max-width: 768px) {
  .di-action-list-container .di-action-list {
    max-height: calc(100vh - 40rem);
    gap: 1rem;
  }
  .di-action-list-header .di-create-action-btn {
    width: 100%;
    justify-content: center;
    padding: 1rem 1.5rem;
    font-size: 1.3rem;
  }
  .di-action-list-header .di-action-list-hint {
    font-size: 1.1rem;
    padding: 0.8rem 1rem;
  }
  .di-action-list-item {
    padding: 1.2rem;
    border-radius: 0.8rem;
  }
  .di-action-list-item::before {
    width: 0.3rem;
    top: 1.2rem;
  }
  .di-action-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
  .di-action-header-left {
    width: 100%;
  }
  .di-action-header-left .di-action-icon {
    width: 3.2rem;
    height: 3.2rem;
  }
  .di-action-header-left .di-action-icon i {
    font-size: 1.4rem;
  }
  .di-action-header-left .di-action-content {
    padding-left: 0;
  }
  .di-action-header-left .di-action-title {
    font-size: 1.5rem;
  }
  .di-action-header-left .di-action-description {
    font-size: 1.2rem;
  }
  .di-action-header-right {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
    padding-top: 0;
  }
  .di-action-header-right .di-action-start-btn {
    width: 100%;
    justify-content: center;
  }
  .di-action-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
    padding-left: 0;
  }
  .di-action-meta .di-action-meta-item {
    width: 100%;
    font-size: 1.2rem;
  }
  .di-action-meta .di-action-meta-item--assignee {
    width: 100%;
  }
  .di-action-expand {
    padding-left: 0;
  }
  .di-action-subactions {
    padding-left: 0;
  }
  .di-subaction::before {
    display: none;
  }
  .di-empty-state {
    padding: 2rem 1rem;
    min-height: 25rem;
  }
  .di-empty-state .di-empty-state-icon {
    width: 6.4rem;
    height: 6.4rem;
    margin-bottom: 1rem;
  }
  .di-empty-state .di-empty-state-icon i {
    font-size: 2.4rem;
  }
  .di-empty-state .di-empty-state-title {
    font-size: 1.6rem;
  }
  .di-empty-state .di-empty-state-description {
    font-size: 1.2rem;
  }
}
.di-purchase-order-list-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.di-purchase-order-list-container .purchase-order-list {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  min-height: 0;
  padding: 0.2rem 0.5rem 0.2rem 0;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.di-purchase-order-list-container .purchase-order-list::-webkit-scrollbar {
  width: 0.6rem;
}
.di-purchase-order-list-container .purchase-order-list::-webkit-scrollbar-track {
  background: #fafafa;
  border-radius: 0.3rem;
}
.di-purchase-order-list-container .purchase-order-list::-webkit-scrollbar-thumb {
  background: #6c757d;
  border-radius: 0.3rem;
}
.di-purchase-order-list-container .purchase-order-list::-webkit-scrollbar-thumb:hover {
  background: #494f54;
}
.di-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 2rem;
  text-align: center;
}
.di-empty-state--loading {
  padding: 4rem 2rem;
}
.di-empty-state .di-empty-state-icon {
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.1) 0%, rgba(144, 173, 208, 0.05) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
}
.di-empty-state .di-empty-state-icon i {
  font-size: 3rem;
  color: #90ADD0;
  opacity: 0.6;
}
.di-empty-state .di-empty-state-title {
  font-size: 1.8rem;
  font-weight: 600;
  color: #212529;
  margin-bottom: 0.8rem;
}
.di-empty-state .di-empty-state-description {
  font-size: 1.3rem;
  color: #6c757d;
  max-width: 40rem;
  line-height: 1.6;
  margin-bottom: 0;
}
.di-purchase-order-list-container .purchase-order-card {
  padding: 1rem 1.25rem;
}
.di-purchase-order-list-container .purchase-order-card-header {
  display: flex;
  margin-bottom: 0.75rem;
  padding-bottom: 0;
  border-bottom: none;
}
.di-purchase-order-list-container .purchase-order-card-title {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 0.5rem;
  width: 100%;
}
.di-purchase-order-list-container .purchase-order-card-id {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.di-purchase-order-list-container .purchase-order-card-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-end;
  flex-shrink: 0;
}
.di-purchase-order-list-container .purchase-order-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
  padding-top: 0;
  padding-bottom: 1rem;
}
.di-purchase-order-list-container .purchase-order-card-meta {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.di-purchase-order-list-container .purchase-order-card-meta-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.2rem;
}
.di-purchase-order-list-container .purchase-order-card-meta-label {
  color: #6c757d;
  font-weight: 500;
}
.di-purchase-order-list-container .purchase-order-card-meta-value {
  color: #212529;
  font-weight: 600;
}
.di-purchase-order-list-container .purchase-order-card-notes {
  align-items: flex-start;
}
.di-purchase-order-list-container .purchase-order-card-notes .purchase-order-card-meta-value {
  flex: 1;
  min-width: 0;
  white-space: pre-wrap;
  line-height: 1.4;
  font-weight: 500;
}
.di-progress-wrapper {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.di-progress-wrapper .di-progress-indicator {
  flex: 1;
  height: 1rem;
  min-height: 8px;
  background: #fafafa;
  border-radius: 0.5rem;
  overflow: hidden;
  position: relative;
}
.di-progress-wrapper .di-progress-indicator .di-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, #90ADD0 0%, #b4c7df 100%);
  border-radius: 0.5rem;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}
.di-progress-wrapper .di-progress-indicator .di-progress-bar::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%);
  animation: shimmer 2s infinite;
}
.di-progress-wrapper .di-progress-text {
  font-size: 1.2rem;
  font-weight: 600;
  color: #6c757d;
  min-width: 3.5rem;
  text-align: right;
}
@keyframes shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
.di-stage-badge {
  padding: 0.4rem 0.8rem;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  white-space: nowrap;
  line-height: 1.2;
  background-color: #90ADD0;
  color: #ffffff;
}
.di-stage-badge--ordered {
  background-color: rgba(108, 117, 125, 0.18);
  color: #60686f;
  border: 1px solid rgba(108, 117, 125, 0.25);
}
.di-stage-badge--dispatched {
  background-color: rgba(13, 110, 253, 0.15);
  color: #0257d5;
  border: 1px solid rgba(13, 110, 253, 0.25);
}
.di-stage-badge--arrived-portsmouth {
  background-color: rgba(13, 202, 240, 0.18);
  color: #066477;
  border: 1px solid rgba(13, 202, 240, 0.3);
}
.di-stage-badge--departed-portsmouth {
  background-color: rgba(32, 201, 151, 0.18);
  color: #127155;
  border: 1px solid rgba(32, 201, 151, 0.28);
}
.di-stage-badge--on-island {
  background-color: rgba(25, 135, 84, 0.16);
  color: #115c39;
  border: 1px solid rgba(25, 135, 84, 0.28);
}
.di-stage-badge--warehouse-received,
.di-stage-badge--delivered {
  background-color: rgba(111, 66, 193, 0.15);
  color: #643ab0;
  border: 1px solid rgba(111, 66, 193, 0.25);
}
.di-stage-badge--partially-delivered {
  background-color: #fff3e0;
  color: #aa6d08;
  border: 1px solid #ffd7a1;
}
.di-stage-badge--checked-in {
  background-color: rgba(253, 126, 20, 0.18);
  color: #c35a02;
  border: 1px solid rgba(253, 126, 20, 0.28);
}
.di-stage-badge--stored {
  background-color: rgba(232, 62, 140, 0.15);
  color: #d0196d;
  border: 1px solid rgba(232, 62, 140, 0.28);
}
.di-stage-badge--client-notified {
  background-color: rgba(23, 162, 184, 0.16);
  color: #107282;
  border: 1px solid rgba(23, 162, 184, 0.28);
}
.di-stage-badge--installation-scheduled {
  background-color: rgba(102, 16, 242, 0.14);
  color: #5b0cdd;
  border: 1px solid rgba(102, 16, 242, 0.25);
}
.di-stage-badge--checked-out {
  background-color: rgba(40, 167, 69, 0.16);
  color: #1c7631;
  border: 1px solid rgba(40, 167, 69, 0.28);
}
.di-stage-badge--installed {
  background-color: rgba(25, 135, 84, 0.18);
  color: #13653f;
  border: 1px solid rgba(25, 135, 84, 0.3);
}
@media (max-width: 768px) {
  .di-purchase-order-list-container .purchase-order-list {
    max-height: calc(100vh - 400px);
    gap: 1rem;
  }
  .di-progress-wrapper {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .di-progress-wrapper .di-progress-text {
    text-align: left;
  }
  .di-empty-state {
    padding: 2rem 1rem;
    min-height: 250px;
  }
  .di-empty-state .di-empty-state-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 1rem;
  }
  .di-empty-state .di-empty-state-icon i {
    font-size: 2rem;
  }
  .di-empty-state .di-empty-state-title {
    font-size: 1.125rem;
  }
  .di-empty-state .di-empty-state-description {
    font-size: 0.875rem;
  }
}
.di-product-code {
  font-family: 'Courier New', Courier, monospace;
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.1) 0%, rgba(144, 173, 208, 0.15) 100%);
  border-radius: 6px;
  border: 1px solid rgba(144, 173, 208, 0.2);
  transition: all 0.2s ease;
}
.di-product-code:hover {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.15) 0%, rgba(144, 173, 208, 0.2) 100%);
  border-color: rgba(144, 173, 208, 0.3);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.di-description-cell {
  max-width: 450px;
  min-width: 250px;
  position: relative;
}
.di-description-text {
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: all 0.2s ease;
}
.di-description-text:hover {
  color: #90ADD0;
  cursor: help;
}
.di-description-text[title]:hover::after {
  content: attr(title);
  position: absolute;
  left: 0;
  top: 100%;
  background: #212529;
  color: #ffffff;
  padding: 0.5rem 0.75rem;
  border-radius: 4px;
  font-size: 1.2rem;
  white-space: normal;
  z-index: 1000;
  max-width: 300px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  margin-top: 0.5rem;
}
.di-quantity {
  font-variant-numeric: tabular-nums;
}
.di-quantity.di-quantity--received,
.di-quantity.di-quantity--delivered {
  color: #66bb6a;
  font-weight: 700;
}
.di-quantity.di-quantity--remaining {
  color: #6c757d;
  font-weight: 500;
}
.di-quantity.di-quantity--ordered {
  color: #212529;
  font-weight: 600;
}
.di-status-badge {
  border-radius: 8px;
  white-space: nowrap;
  transition: all 0.2s ease;
  border: 1px solid transparent;
  min-width: fit-content;
  overflow: visible;
  position: relative;
  z-index: 1;
}
.di-status-badge.bg-success,
.di-status-badge--ready,
.di-status-badge--complete {
  background: linear-gradient(135deg, rgba(102, 187, 106, 0.2) 0%, rgba(102, 187, 106, 0.25) 100%);
  color: #2a5e2c;
  border-color: rgba(102, 187, 106, 0.35);
  font-weight: 700;
}
.di-status-badge.bg-success:hover,
.di-status-badge--ready:hover,
.di-status-badge--complete:hover {
  background: linear-gradient(135deg, rgba(102, 187, 106, 0.25) 0%, rgba(102, 187, 106, 0.3) 100%);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.di-status-badge.bg-warning,
.di-status-badge--partial {
  background: linear-gradient(135deg, rgba(245, 166, 35, 0.25) 0%, rgba(245, 166, 35, 0.3) 100%);
  color: #613e04;
  border-color: rgba(245, 166, 35, 0.4);
  font-weight: 700;
}
.di-status-badge.bg-warning:hover,
.di-status-badge--partial:hover {
  background: linear-gradient(135deg, rgba(245, 166, 35, 0.3) 0%, rgba(245, 166, 35, 0.35) 100%);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.di-status-badge.bg-secondary,
.di-status-badge--pending {
  background: #6c757d;
  color: #ffffff;
  border-color: #545b62;
  font-weight: 700;
}
.di-status-badge.bg-secondary:hover,
.di-status-badge--pending:hover {
  background: #596167;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.di-status-badge--delivery-ready,
.di-status-badge--delivery-complete {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.15) 0%, rgba(23, 162, 184, 0.15) 100%);
  color: #012e70;
  border-color: rgba(13, 110, 253, 0.35);
  font-weight: 700;
}
.di-status-badge--delivery-ready:hover,
.di-status-badge--delivery-complete:hover {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.2) 0%, rgba(23, 162, 184, 0.2) 100%);
  box-shadow: 0 2px 4px rgba(13, 110, 253, 0.15);
}
.di-status-badge--delivery-partial {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.2) 0%, rgba(13, 110, 253, 0.25) 100%);
  color: #012457;
  border-color: rgba(13, 110, 253, 0.4);
  font-weight: 700;
}
.di-status-badge--delivery-partial:hover {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.25) 0%, rgba(13, 110, 253, 0.3) 100%);
  box-shadow: 0 2px 4px rgba(13, 110, 253, 0.15);
}
.di-status-badge--delivery-pending {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.1) 0%, rgba(108, 117, 125, 0.15) 100%);
  color: #01193d;
  border-color: rgba(13, 110, 253, 0.3);
  font-weight: 700;
}
.di-status-badge--delivery-pending:hover {
  background: linear-gradient(135deg, rgba(13, 110, 253, 0.15) 0%, rgba(108, 117, 125, 0.2) 100%);
  box-shadow: 0 2px 4px rgba(13, 110, 253, 0.1);
}
.di-status-badge--install-ready,
.di-status-badge--install-complete {
  background: linear-gradient(135deg, rgba(102, 187, 106, 0.2) 0%, rgba(102, 187, 106, 0.25) 100%);
  color: #2a5e2c;
  border-color: rgba(102, 187, 106, 0.35);
  font-weight: 700;
}
.di-status-badge--install-ready:hover,
.di-status-badge--install-complete:hover {
  background: linear-gradient(135deg, rgba(102, 187, 106, 0.25) 0%, rgba(102, 187, 106, 0.3) 100%);
  box-shadow: 0 2px 4px rgba(40, 167, 69, 0.15);
}
.di-status-badge--install-partial {
  background: linear-gradient(135deg, rgba(245, 166, 35, 0.25) 0%, rgba(245, 166, 35, 0.3) 100%);
  color: #613e04;
  border-color: rgba(245, 166, 35, 0.4);
  font-weight: 700;
}
.di-status-badge--install-partial:hover {
  background: linear-gradient(135deg, rgba(245, 166, 35, 0.3) 0%, rgba(245, 166, 35, 0.35) 100%);
  box-shadow: 0 2px 4px rgba(255, 193, 7, 0.15);
}
.di-status-badge--install-pending {
  background: linear-gradient(135deg, rgba(245, 166, 35, 0.15) 0%, rgba(108, 117, 125, 0.1) 100%);
  color: #492f03;
  border-color: rgba(245, 166, 35, 0.3);
  font-weight: 700;
}
.di-status-badge--install-pending:hover {
  background: linear-gradient(135deg, rgba(245, 166, 35, 0.2) 0%, rgba(108, 117, 125, 0.15) 100%);
  box-shadow: 0 2px 4px rgba(255, 193, 7, 0.1);
}
.di-progress-bar {
  width: 70px;
  height: 6px;
  background: rgba(222, 226, 230, 0.6);
  border-radius: 3px;
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  transition: none;
}
.di-progress-bar::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%);
  pointer-events: none;
}
.di-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #90ADD0 0%, #adc2dc 50%, #90ADD0 100%);
  border-radius: 3px;
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.di-progress-fill::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.4) 50%, transparent 100%);
  animation: shimmer 2s infinite;
}
@keyframes shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
.di-progress-bar-container {
  width: 100%;
  height: 10px;
  background: rgba(222, 226, 230, 0.5);
  border-radius: 5px;
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}
.di-progress-bar-full {
  height: 100%;
  background: linear-gradient(90deg, #90ADD0 0%, #b4c7df 50%, #90ADD0 100%);
  border-radius: 5px;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.di-progress-bar-full--complete {
  background: linear-gradient(90deg, #66bb6a 0%, #89cb8c 50%, #66bb6a 100%);
}
.di-progress-bar-full::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%);
  animation: shimmer 2s infinite;
}
.di-table-wrapper,
.di-warehouse-table-wrapper,
.di-installation-table-wrapper {
  overflow-y: visible;
  margin-top: 1.5rem;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  overflow-x: overlay;
  scrollbar-width: thin;
  scrollbar-color: rgba(108, 117, 125, 0.5) #fafafa;
}
@supports not (overflow-x: overlay) {
  .di-table-wrapper,
  .di-warehouse-table-wrapper,
  .di-installation-table-wrapper {
    overflow-x: auto;
  }
}
.di-table-wrapper::-webkit-scrollbar,
.di-warehouse-table-wrapper::-webkit-scrollbar,
.di-installation-table-wrapper::-webkit-scrollbar {
  height: 8px;
}
.di-table-wrapper::-webkit-scrollbar-track,
.di-warehouse-table-wrapper::-webkit-scrollbar-track,
.di-installation-table-wrapper::-webkit-scrollbar-track {
  background: #fafafa;
  border-radius: 4px;
  margin: 0 8px;
}
.di-table-wrapper::-webkit-scrollbar-thumb,
.di-warehouse-table-wrapper::-webkit-scrollbar-thumb,
.di-installation-table-wrapper::-webkit-scrollbar-thumb {
  background: rgba(108, 117, 125, 0.5);
  border-radius: 4px;
  transition: background 0.2s ease;
}
.di-table-wrapper::-webkit-scrollbar-thumb:hover,
.di-warehouse-table-wrapper::-webkit-scrollbar-thumb:hover,
.di-installation-table-wrapper::-webkit-scrollbar-thumb:hover {
  background: rgba(108, 117, 125, 0.7);
}
.di-table-wrapper::-webkit-scrollbar-thumb:active,
.di-warehouse-table-wrapper::-webkit-scrollbar-thumb:active,
.di-installation-table-wrapper::-webkit-scrollbar-thumb:active {
  background: rgba(108, 117, 125, 0.8);
}
.di-table-wrapper:not(:hover)::-webkit-scrollbar-thumb,
.di-warehouse-table-wrapper:not(:hover)::-webkit-scrollbar-thumb,
.di-installation-table-wrapper:not(:hover)::-webkit-scrollbar-thumb {
  background: rgba(108, 117, 125, 0.3);
}
.di-section-card {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
}
.di-section-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}
.di-section-title {
  padding-bottom: 1rem;
  border-bottom: 2px solid #dee2e6;
  position: relative;
}
@media (max-width: 991px) {
  .di-table-base thead th {
    padding: 1rem 1rem;
  }
  .di-table-base tbody td {
    padding: 1rem 1rem;
  }
  .di-description-cell {
    max-width: 300px;
    min-width: 180px;
  }
}
@media (max-width: 767px) {
  .di-table-wrapper,
  .di-warehouse-table-wrapper,
  .di-installation-table-wrapper {
    margin-left: -1rem;
    margin-right: -1rem;
    padding: 0 1rem;
    border-radius: 0;
  }
  .di-description-cell {
    max-width: 200px;
    min-width: 150px;
  }
  .di-section-card {
    padding: 1.5rem;
  }
}
.di-workflow-stepper .di-stepper-header {
  background: linear-gradient(135deg, #90ADD0 0%, #7398c4 100%);
  border-radius: 20px 20px 0 0;
  padding: 1.5rem 2rem;
  color: #ffffff;
}
.di-workflow-stepper .di-stepper-header-content {
  gap: 1rem;
}
.di-workflow-stepper .di-stepper-title h3 {
  color: #ffffff;
  font-size: 2rem;
}
.di-workflow-stepper .di-stepper-meta {
  gap: 1.5rem;
}
@media (max-width: 767px) {
  .di-workflow-stepper .di-stepper-meta {
    gap: 1rem;
  }
}
.di-workflow-stepper .di-meta-item {
  gap: 0.25rem;
}
.di-workflow-stepper .di-meta-item .editable-inline-number--meta {
  gap: 0.25rem;
}
.di-workflow-stepper .editable-inline-number--meta .di-meta-label {
  font-size: 1rem;
  letter-spacing: 0.5px;
  opacity: 0.8;
  color: #ffffff;
  margin-bottom: 0;
}
.di-workflow-stepper .editable-inline-number--meta .di-meta-value,
.di-workflow-stepper .editable-inline-number--meta .editable-inline-number-value {
  font-size: 1.6rem;
  color: #ffffff;
  line-height: 1.2;
}
.di-workflow-stepper .editable-inline-number--meta .editable-inline-number-display {
  padding: 0;
  margin: 0;
  min-height: 0;
}
.di-workflow-stepper .editable-inline-number--meta .editable-inline-number-display:hover:not(.editable-inline-number-display-disabled) {
  background-color: rgba(255, 255, 255, 0.12);
}
.di-workflow-stepper .editable-inline-number--meta .editable-inline-number-icon {
  color: rgba(255, 255, 255, 0.75);
}
.di-workflow-stepper .di-meta-label {
  font-size: 1rem;
  letter-spacing: 0.5px;
  opacity: 0.8;
}
.di-workflow-stepper .di-meta-value {
  font-size: 1.6rem;
}
.di-workflow-stepper .di-stepper-body {
  background: #ffffff;
  border-radius: 0 0 20px 20px;
}
.di-workflow-stepper .di-stepper-steps {
  position: relative;
  padding: 1.5rem 0 1rem;
  overflow-x: auto;
  gap: 0;
}
@media (max-width: 991px) {
  .di-workflow-stepper .di-stepper-steps {
    padding: 1.5rem 0.5rem 1rem;
  }
}
.di-workflow-stepper .di-step-wrapper {
  flex: 1;
  position: relative;
  z-index: 1;
}
.di-workflow-stepper .di-step-wrapper:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 16px;
  left: calc(50% + 16px);
  right: calc(-50% + 16px);
  height: 3px;
  z-index: 0;
  transition: all 0.3s ease;
}
.di-workflow-stepper .di-step-wrapper.workflow-connector--completed::after {
  background: #66bb6a;
}
.di-workflow-stepper .di-step-wrapper.workflow-connector--pending::after {
  background: #dee2e6;
  border-top: 1px dashed #adb5bd;
  border-bottom: 1px dashed #adb5bd;
}
.di-workflow-stepper .di-step {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 1.2rem;
  position: relative;
  transition: all 0.3s ease;
  border: 2px solid;
  background: #ffffff;
  z-index: 2;
  flex-shrink: 0;
}
.di-workflow-stepper .di-step i {
  font-size: 1.2rem;
}
.di-workflow-stepper .di-step.workflow-step--completed {
  background: #66bb6a;
  border-color: #66bb6a;
  color: #ffffff;
  box-shadow: 0 0 0 3px rgba(102, 187, 106, 0.2);
}
.di-workflow-stepper .di-step.workflow-step--completed i {
  color: #ffffff;
}
.di-workflow-stepper .di-step.workflow-step--current {
  background: #90ADD0;
  border-color: #90ADD0;
  color: #ffffff;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.25);
  animation: di-pulse 2s infinite;
}
.di-workflow-stepper .di-step.workflow-step--pending {
  background: #ffffff;
  border-color: #dee2e6;
  color: #6c757d;
  border-style: dashed;
}
.di-workflow-stepper .di-step-label {
  margin-top: 0.5rem;
  font-size: 1.2rem;
  text-align: center;
  line-height: 1.2;
  max-width: 100%;
  word-break: break-word;
  white-space: normal;
}
@media (max-width: 991px) {
  .di-workflow-stepper .di-step-label {
    font-size: 1rem;
  }
}
.di-workflow-stepper .di-step-date {
  margin-top: 0.25rem;
  font-size: 1rem;
  text-align: center;
  white-space: nowrap;
}
.di-workflow-stepper .di-workflow-actions {
  padding: 1rem 0;
  border-top: 1px solid #dee2e6;
}
.di-workflow-stepper .di-workflow-actions .btn,
.di-workflow-stepper .di-workflow-actions .ui-btn {
  min-width: 200px;
}
.di-workflow-stepper .di-workflow-actions > div:not(.di-schedule-installation):not(.di-workflow-actions-choices) {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.di-workflow-stepper .di-workflow-actions .di-workflow-actions-choices {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  width: 100%;
  max-width: 42rem;
}
@media (min-width: 576px) {
  .di-workflow-stepper .di-workflow-actions .di-workflow-actions-choices {
    flex-direction: row;
    justify-content: center;
  }
}
.di-workflow-stepper .di-workflow-actions .di-workflow-actions-choices .ui-btn {
  min-width: 12rem;
  flex: 1 1 12rem;
}
.di-workflow-stepper .di-workflow-actions .di-schedule-installation {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
}
.di-workflow-stepper .di-workflow-actions .di-schedule-installation-date,
.di-workflow-stepper .di-workflow-actions .di-schedule-installation input[type="date"] {
  width: 14rem;
  max-width: 100%;
}
.di-workflow-stepper .di-workflow-actions .d-flex {
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
}
.di-workflow-stepper .di-workflow-actions .d-flex .btn,
.di-workflow-stepper .di-workflow-actions .d-flex .ui-btn {
  min-width: 150px;
}
@keyframes di-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.25);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(144, 173, 208, 0.15);
  }
}
.di-tab-nav {
  background: #fafafa;
  border-radius: 20px 20px 0 0;
  overflow: hidden;
}
.di-tab-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
}
.di-tab-btn:hover:not(.active) {
  background: rgba(144, 173, 208, 0.05);
  color: #212529;
}
.di-tab-btn.active {
  background: #90ADD0;
  color: #ffffff;
}
@media (max-width: 767px) {
  .di-tab-btn {
    padding: 0.875rem 0.75rem;
    font-size: 1.2rem;
  }
  .di-tab-btn span {
    display: none;
  }
  .di-tab-btn i {
    font-size: 1.6rem;
  }
}
.di-tab-content {
  background: #ffffff;
  border-radius: 0 0 20px 20px;
}
.di-overview-container .di-metric-card {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  padding: 1.25rem;
  transition: all 0.2s ease;
  height: 100%;
}
.di-overview-container .di-metric-card:hover {
  border-color: #90ADD0;
  box-shadow: 0 2px 8px rgba(144, 173, 208, 0.1);
}
.di-overview-container .di-metric-card.di-metric-card--highlight {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.05) 0%, rgba(144, 173, 208, 0.1) 100%);
  border-color: rgba(144, 173, 208, 0.3);
}
.di-overview-container .di-metric-label {
  font-size: 1rem;
  letter-spacing: 0.5px;
}
.di-overview-container .di-metric-value {
  font-size: 1.6rem;
}
@media (min-width: 768px) {
  .di-overview-container .di-metric-value {
    font-size: 1.8rem;
  }
}
.di-overview-container .di-metric-card .editable-inline-number--meta {
  align-items: center;
  width: 100%;
}
.di-overview-container .di-metric-card .editable-inline-number--meta .di-meta-label {
  font-size: 1rem;
  letter-spacing: 0.5px;
  color: #6c757d;
  font-weight: 700;
  margin-bottom: 0.5rem;
  opacity: 1;
}
.di-overview-container .di-metric-card .editable-inline-number--meta .di-meta-value,
.di-overview-container .di-metric-card .editable-inline-number--meta .editable-inline-number-value {
  font-size: 1.6rem;
  color: #212529;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .di-overview-container .di-metric-card .editable-inline-number--meta .di-meta-value,
  .di-overview-container .di-metric-card .editable-inline-number--meta .editable-inline-number-value {
    font-size: 1.8rem;
  }
}
.di-overview-container .di-metric-card .editable-inline-number--meta .editable-inline-number-display {
  justify-content: center;
  padding: 0;
  margin: 0;
}
.di-overview-container .di-section-card {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  padding: 1.5rem;
  height: 100%;
}
.di-overview-container .di-section-title {
  font-size: 1.8rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #dee2e6;
}
.di-overview-container .di-section-title i {
  font-size: 1.6rem;
}
.di-overview-container .di-activity-list {
  max-height: 400px;
  overflow-y: auto;
  overflow-x: hidden;
}
.di-overview-container .recent-activity-feed {
  max-height: 400px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-left: 0;
  padding-right: 0.25rem;
}
.di-overview-container .recent-activity-feed::before {
  display: none;
}
.di-overview-container .recent-activity-feed .activity-feed-item {
  margin-bottom: 0.875rem;
  min-width: 0;
  padding-left: 0;
}
.di-overview-container .recent-activity-feed .activity-feed-item:hover {
  transform: none;
}
.di-overview-container .recent-activity-feed .activity-feed-item:last-child {
  margin-bottom: 0;
}
.di-overview-container .recent-activity-feed .activity-feed-icon {
  display: none !important;
}
.di-overview-container .recent-activity-feed .activity-feed-content {
  min-width: 0;
  overflow: hidden;
  overflow-wrap: break-word;
  word-break: break-word;
}
.di-overview-container .recent-activity-feed .activity-feed-content:hover {
  transform: none;
}
.di-overview-container .recent-activity-feed .activity-feed-content::before {
  left: 0;
  opacity: 1;
  border-top-left-radius: 12px;
  border-bottom-left-radius: 12px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.di-overview-container .recent-activity-feed .activity-feed-body {
  word-break: break-word;
  overflow-wrap: break-word;
  max-height: 14rem;
  overflow-y: auto;
}
.di-overview-container .di-activity-feed-item {
  gap: 1rem;
  padding: 0.875rem 0;
  border-bottom: 1px solid #dee2e6;
}
.di-overview-container .di-activity-feed-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.di-overview-container .di-activity-feed-item:first-child {
  padding-top: 0;
}
.di-overview-container .di-activity-feed-content {
  flex: 1;
  min-width: 0;
}
.di-overview-container .di-activity-feed-title {
  font-size: 1.6rem;
  margin-bottom: 0.25rem;
}
.di-overview-container .di-activity-feed-body {
  font-size: 1.4rem;
  line-height: 1.4;
}
.di-overview-container .di-activity-feed-meta {
  text-align: right;
  flex-shrink: 0;
}
.di-overview-container .di-activity-feed-meta time {
  display: block;
  font-size: 1.2rem;
  white-space: nowrap;
}
.di-overview-container .di-activity-user {
  display: block;
  font-size: 1.2rem;
  opacity: 0.8;
}
.di-line-items-container .di-metric-card {
  background: #ffffff;
  border: 2px solid #dee2e6;
  border-radius: 12px;
  transition: all 0.3s ease;
  height: 100%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
}
.di-line-items-container .di-metric-card:hover {
  border-color: #90ADD0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}
.di-line-items-container .di-metric-card.di-metric-card--highlight {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.08) 0%, rgba(144, 173, 208, 0.12) 100%);
  border-color: rgba(144, 173, 208, 0.4);
}
.di-line-items-container .di-metric-card.di-metric-card--highlight .di-metric-value {
  color: #90ADD0;
}
.di-line-items-container .di-metric-label {
  letter-spacing: 0.8px;
}
.di-line-items-container .di-metric-value {
  font-size: 2rem;
  line-height: 1.2;
}
@media (min-width: 768px) {
  .di-line-items-container .di-metric-value {
    font-size: 2.4rem;
  }
}
.di-line-items-container .di-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #ffffff;
}
.di-line-items-container .di-table thead {
  background: linear-gradient(180deg, #fafafa 0%, #f5f5f5 100%);
  position: sticky;
  top: 0;
  z-index: 10;
}
.di-line-items-container .di-table thead th {
  padding: 1.25rem 1.5rem;
  text-align: left;
  border-bottom: 2px solid #dee2e6;
  position: relative;
}
.di-line-items-container .di-table thead th.text-end {
  text-align: right;
}
.di-line-items-container .di-table thead th.text-center {
  text-align: center;
}
.di-line-items-container .di-table tbody tr {
  transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  border-bottom: 1px solid rgba(222, 226, 230, 0.5);
}
.di-line-items-container .di-table tbody tr:hover {
  background: linear-gradient(90deg, rgba(144, 173, 208, 0.04) 0%, rgba(144, 173, 208, 0.06) 100%);
  box-shadow: -2px 0 0 #90ADD0;
}
.di-line-items-container .di-table tbody tr:last-child {
  border-bottom: none;
}
.di-line-items-container .di-table tbody tr:nth-child(even) {
  background: rgba(250, 250, 250, 0.3);
}
.di-line-items-container .di-table tbody tr:nth-child(even):hover {
  background: linear-gradient(90deg, rgba(144, 173, 208, 0.06) 0%, rgba(144, 173, 208, 0.08) 100%);
}
.di-line-items-container .di-table tbody td {
  padding: 1.25rem 1.5rem;
  vertical-align: middle;
  line-height: 1.5;
  overflow: visible;
}
.di-line-items-container .di-table tbody td.text-center {
  overflow: visible;
}
.di-line-items-container .di-table tbody td.text-center .di-status-badge {
  position: relative;
  z-index: 2;
}
.di-line-items-container .di-table tbody tr:hover .di-product-code {
  transform: scale(1.05);
}
@media (max-width: 991px) {
  .di-line-items-container .di-metric-value {
    font-size: 1.8rem;
  }
  .di-line-items-container .di-metric-card {
    padding: 1.25rem;
  }
}
@media (max-width: 767px) {
  .di-line-items-container .di-metric-value {
    font-size: 1.6rem;
  }
}
.di-warehouse-items-section .di-zone-filter-badge {
  background: linear-gradient(135deg, #90ADD0 0%, #7ea0c8 100%);
  color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: all 0.2s ease;
}
.di-warehouse-items-section .di-zone-filter-badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.di-warehouse-items-section .di-items-count {
  background: rgba(250, 250, 250, 0.5);
  border-radius: 6px;
}
.di-warehouse-items-section .di-warehouse-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #ffffff;
}
.di-warehouse-items-section .di-warehouse-table thead {
  background: linear-gradient(180deg, #fafafa 0%, #f5f5f5 100%);
  position: sticky;
  top: 0;
  z-index: 10;
}
.di-warehouse-items-section .di-warehouse-table thead th {
  padding: 1.25rem 1.5rem;
  text-align: left;
  border-bottom: 2px solid #dee2e6;
  position: relative;
}
.di-warehouse-items-section .di-warehouse-table thead th.text-end {
  text-align: right;
}
.di-warehouse-items-section .di-warehouse-table thead th.text-center {
  text-align: center;
}
.di-warehouse-items-section .di-warehouse-table tbody tr {
  transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  border-bottom: 1px solid rgba(222, 226, 230, 0.5);
}
.di-warehouse-items-section .di-warehouse-table tbody tr:hover {
  background: linear-gradient(90deg, rgba(144, 173, 208, 0.04) 0%, rgba(144, 173, 208, 0.06) 100%);
  box-shadow: -2px 0 0 #90ADD0;
}
.di-warehouse-items-section .di-warehouse-table tbody tr:last-child {
  border-bottom: none;
}
.di-warehouse-items-section .di-warehouse-table tbody tr:nth-child(even) {
  background: rgba(250, 250, 250, 0.3);
}
.di-warehouse-items-section .di-warehouse-table tbody tr:nth-child(even):hover {
  background: linear-gradient(90deg, rgba(144, 173, 208, 0.06) 0%, rgba(144, 173, 208, 0.08) 100%);
}
.di-warehouse-items-section .di-warehouse-table tbody td {
  padding: 1.25rem 1.5rem;
  vertical-align: middle;
  line-height: 1.5;
  overflow: visible;
}
.di-warehouse-items-section .di-warehouse-table tbody td.text-center {
  overflow: visible;
}
.di-warehouse-items-section .di-warehouse-table tbody td.text-center .di-status-badge {
  position: relative;
  z-index: 2;
}
.di-warehouse-items-section .di-date {
  white-space: nowrap;
}
.di-warehouse-items-section .di-zone-badge {
  background: linear-gradient(135deg, #90ADD0 0%, #7ea0c8 100%);
  color: #ffffff;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: all 0.2s ease;
}
.di-warehouse-items-section .di-zone-badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.di-warehouse-items-section .di-zone-unassigned {
  font-style: italic;
}
.di-warehouse-items-section .di-zone-select {
  padding: 0.6rem 1rem;
  border: 2px solid #dee2e6;
  border-radius: 8px;
  background: #ffffff;
  cursor: pointer;
  transition: all 0.2s ease;
  min-width: 140px;
}
.di-warehouse-items-section .di-zone-select:focus {
  outline: none;
  border-color: #90ADD0;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.15);
}
.di-warehouse-items-section .di-zone-select:hover {
  border-color: rgba(144, 173, 208, 0.5);
}
.di-warehouse-items-section .di-btn-icon {
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.di-warehouse-items-section .di-btn-icon:hover {
  transform: scale(1.1);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}
.di-warehouse-items-section .di-btn-icon:active {
  transform: scale(0.95);
}
.di-warehouse-items-section .di-btn-icon--success {
  background: linear-gradient(135deg, #66bb6a 0%, #54b359 100%);
  color: #ffffff;
}
.di-warehouse-items-section .di-btn-icon--success:hover {
  background: linear-gradient(135deg, #54b359 0%, #49a54e 100%);
}
.di-warehouse-items-section .di-btn-icon--secondary {
  background: linear-gradient(135deg, #6c757d 0%, #60686f 100%);
  color: #ffffff;
}
.di-warehouse-items-section .di-btn-icon--secondary:hover {
  background: linear-gradient(135deg, #60686f 0%, #545b62 100%);
}
.di-warehouse-items-section .di-btn-icon--edit {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.12) 0%, rgba(144, 173, 208, 0.18) 100%);
  color: #90ADD0;
  border: 1px solid rgba(144, 173, 208, 0.3);
}
.di-warehouse-items-section .di-btn-icon--edit:hover {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.18) 0%, rgba(144, 173, 208, 0.24) 100%);
  border-color: rgba(144, 173, 208, 0.4);
}
.di-warehouse-items-section .di-btn-filter {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.12) 0%, rgba(144, 173, 208, 0.18) 100%);
  color: #90ADD0;
  border: 1px solid rgba(144, 173, 208, 0.3);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.di-warehouse-items-section .di-btn-filter:hover {
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.18) 0%, rgba(144, 173, 208, 0.24) 100%);
  border-color: rgba(144, 173, 208, 0.4);
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.di-warehouse-items-section .di-btn-filter:active {
  transform: translateY(0);
}
@media (max-width: 991px) {
  .di-warehouse-items-section .di-zone-display {
    flex-direction: column;
    align-items: flex-start;
  }
  .di-warehouse-items-section .di-zone-edit-group {
    width: 100%;
  }
  .di-warehouse-items-section .di-zone-edit-group .di-zone-select {
    flex: 1;
    min-width: 0;
  }
}
@media (max-width: 767px) {
  .di-warehouse-items-section .di-section-title {
    flex-direction: column;
    align-items: flex-start;
  }
  .di-warehouse-items-section .di-zone-filter-badge {
    margin-left: 0 !important;
    margin-top: 0.5rem;
  }
  .di-warehouse-items-section .di-zone-display {
    width: 100%;
  }
}
.di-installation-items-section .di-installation-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #ffffff;
}
.di-installation-items-section .di-installation-table thead {
  background: linear-gradient(180deg, #fafafa 0%, #f5f5f5 100%);
  position: sticky;
  top: 0;
  z-index: 10;
}
.di-installation-items-section .di-installation-table thead th {
  padding: 1.25rem 1.5rem;
  text-align: left;
  border-bottom: 2px solid #dee2e6;
  position: relative;
}
.di-installation-items-section .di-installation-table thead th.text-end {
  text-align: right;
}
.di-installation-items-section .di-installation-table thead th.text-center {
  text-align: center;
}
.di-installation-items-section .di-installation-table tbody tr {
  transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  border-bottom: 1px solid rgba(222, 226, 230, 0.5);
}
.di-installation-items-section .di-installation-table tbody tr:hover {
  background: linear-gradient(90deg, rgba(144, 173, 208, 0.04) 0%, rgba(144, 173, 208, 0.06) 100%);
  box-shadow: -2px 0 0 #90ADD0;
}
.di-installation-items-section .di-installation-table tbody tr:last-child {
  border-bottom: none;
}
.di-installation-items-section .di-installation-table tbody tr:nth-child(even) {
  background: rgba(250, 250, 250, 0.3);
}
.di-installation-items-section .di-installation-table tbody tr:nth-child(even):hover {
  background: linear-gradient(90deg, rgba(144, 173, 208, 0.06) 0%, rgba(144, 173, 208, 0.08) 100%);
}
.di-installation-items-section .di-installation-table tbody td {
  padding: 1.25rem 1.5rem;
  vertical-align: middle;
  line-height: 1.5;
  overflow: visible;
}
.di-installation-items-section .di-installation-table tbody td.text-center {
  overflow: visible;
}
.di-installation-items-section .di-installation-table tbody td.text-center .di-status-badge {
  position: relative;
  z-index: 2;
}
.di-installation-items-section .di-installation-table tbody .di-installation-table-row:hover .di-status-badge {
  transform: scale(1.05);
}
.di-installation-items-section .di-quantity.di-quantity--delivered {
  color: #66bb6a;
}
.di-installation-items-section .di-status-badge--install-ready,
.di-installation-items-section .di-status-badge--ready {
  background: linear-gradient(135deg, rgba(102, 187, 106, 0.2) 0%, rgba(102, 187, 106, 0.25) 100%);
  color: #2a5e2c;
  border-color: rgba(102, 187, 106, 0.35);
}
.di-installation-items-section .di-status-badge--install-ready:hover,
.di-installation-items-section .di-status-badge--ready:hover {
  background: linear-gradient(135deg, rgba(102, 187, 106, 0.25) 0%, rgba(102, 187, 106, 0.3) 100%);
  transform: translateY(-1px);
}
.di-installation-items-section .di-status-badge--install-partial,
.di-installation-items-section .di-status-badge--partial {
  background: linear-gradient(135deg, rgba(245, 166, 35, 0.25) 0%, rgba(245, 166, 35, 0.3) 100%);
  color: #613e04;
  border-color: rgba(245, 166, 35, 0.4);
}
.di-installation-items-section .di-status-badge--install-partial:hover,
.di-installation-items-section .di-status-badge--partial:hover {
  background: linear-gradient(135deg, rgba(245, 166, 35, 0.3) 0%, rgba(245, 166, 35, 0.35) 100%);
  transform: translateY(-1px);
}
.di-installation-items-section .di-status-badge--install-pending,
.di-installation-items-section .di-status-badge--pending {
  background: #6c757d;
  color: #ffffff;
  border-color: #545b62;
}
.di-installation-items-section .di-status-badge--install-pending:hover,
.di-installation-items-section .di-status-badge--pending:hover {
  background: #596167;
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.di-installation-items-section .di-installation-progress-summary {
  margin-top: 2rem;
  background: linear-gradient(135deg, rgba(250, 250, 250, 0.8) 0%, #fafafa 100%);
  border-radius: 12px;
  border: 1px solid #dee2e6;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.di-installation-items-section .di-progress-header {
  margin-bottom: 1rem;
}
.di-installation-items-section .di-progress-label::before {
  content: "";
  width: 4px;
  height: 1.5rem;
  background: #90ADD0;
  border-radius: 2px;
}
.di-installation-items-section .di-progress-count {
  background: #ffffff;
  border-radius: 6px;
  border: 1px solid #dee2e6;
}
.di-installation-items-section .di-progress-bar-container {
  margin-top: 0.5rem;
}
.di-installation-items-section .di-empty-state i {
  font-size: 4.8rem;
  opacity: 0.4;
  transition: all 0.3s ease;
}
.di-installation-items-section .di-empty-state:hover i {
  opacity: 0.6;
  transform: scale(1.1);
}
@media (max-width: 991px) {
  .di-installation-items-section .di-installation-progress-summary {
    padding: 1.5rem;
  }
}
@media (max-width: 767px) {
  .di-installation-items-section .di-section-title {
    flex-direction: column;
    align-items: flex-start;
  }
  .di-installation-items-section .di-progress-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .di-installation-items-section .di-installation-progress-summary {
    padding: 1.25rem;
  }
  .di-installation-items-section .di-empty-state i {
    font-size: 3.6rem;
  }
}
.di-checkin-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(33, 37, 41, 0.6);
  z-index: 1050;
  overflow-y: auto;
  animation: fadeIn 0.2s ease;
}
@media (max-width: 767px) {
  .di-checkin-modal-overlay {
    padding: 1rem !important;
  }
}
.di-checkin-modal {
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(33, 37, 41, 0.3);
  max-width: 900px;
  width: 100%;
  max-height: 90vh;
  animation: slideUp 0.3s ease;
  overflow: hidden;
}
.di-checkin-modal-header {
  border-bottom: 1px solid #dee2e6;
  background: linear-gradient(135deg, #90ADD0 0%, #7ea0c8 100%);
  padding: 1.25rem 1.5rem;
}
@media (max-width: 767px) {
  .di-checkin-modal-header {
    padding: 1.5rem !important;
  }
}
.di-checkin-modal-close {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  border-radius: 6px;
  width: 3.6rem;
  height: 3.6rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.di-checkin-modal-close:hover {
  background: rgba(255, 255, 255, 0.3);
  transform: scale(1.05);
}
.di-checkin-modal-body {
  overflow-y: auto;
  flex: 1;
  padding: 1.5rem;
}
@media (max-width: 767px) {
  .di-checkin-modal-body {
    padding: 1.5rem !important;
  }
}
.di-checkin-modal-footer {
  border-top: 1px solid #dee2e6;
  background: #fafafa;
  padding: 1.25rem 1.5rem;
}
@media (max-width: 767px) {
  .di-checkin-modal-footer {
    padding: 1rem 1.5rem !important;
    flex-direction: column-reverse;
  }
  .di-checkin-modal-footer .di-btn {
    width: 100%;
  }
}
.di-btn {
  border-radius: 6px;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
}
.di-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.di-btn--primary {
  background: #90ADD0;
  color: #ffffff;
}
.di-btn--primary:hover:not(:disabled) {
  background: #7ea0c8;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(144, 173, 208, 0.4);
}
.di-btn--secondary {
  background: #ffffff;
  color: #212529;
  border: 2px solid #dee2e6;
}
.di-btn--secondary:hover:not(:disabled) {
  background: #fafafa;
  border-color: #6c757d;
}
.di-checkin-form .di-checkin-section {
  margin-bottom: 1.75rem;
}
.di-checkin-form .di-checkin-section:last-child {
  margin-bottom: 0;
}
.di-checkin-form .di-checkin-section-title {
  margin-bottom: 1rem;
  margin-top: 0;
}
.di-checkin-form .di-checkin-product-item {
  background: #ffffff;
  border: 2px solid #dee2e6;
  border-radius: 8px;
  padding: 1rem 1.25rem;
  transition: all 0.2s ease;
}
.di-checkin-form .di-checkin-product-item:hover {
  border-color: rgba(144, 173, 208, 0.5);
  box-shadow: 0 2px 8px rgba(144, 173, 208, 0.1);
}
.di-checkin-form .di-checkin-product-item.di-checkin-product-item--selected {
  border-color: #90ADD0;
  background: rgba(144, 173, 208, 0.05);
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.1);
}
.di-checkin-form .di-checkin-product-item.di-checkin-product-item--delivered {
  opacity: 0.7;
  background: rgba(102, 187, 106, 0.05);
  border-color: rgba(102, 187, 106, 0.3);
}
.di-checkin-form .di-checkin-product-item.di-checkin-product-item--extra {
  margin-left: 2rem;
  border-left: 4px solid #90ADD0;
}
.di-checkin-form .di-checkin-product-header.di-checkin-product-header--delivered i {
  color: #66bb6a;
  font-size: 2rem;
  margin-top: 0.2rem;
}
.di-checkin-form .di-checkin-checkbox {
  width: 2rem;
  height: 2rem;
  margin-top: 0.2rem;
  cursor: pointer;
  accent-color: #90ADD0;
  flex-shrink: 0;
}
.di-checkin-form .di-checkin-product-label {
  cursor: pointer;
}
.di-checkin-form .di-checkin-product-info {
  flex: 1;
  min-width: 0;
}
.di-checkin-form .di-checkin-product-name {
  line-height: 1.4;
}
.di-checkin-form .di-checkin-product-code {
  background: rgba(144, 173, 208, 0.1);
  border-radius: 4px;
  font-family: monospace;
  padding: 0.2rem 0.5rem;
}
.di-checkin-form .di-checkin-product-code.di-checkin-product-code--extra {
  background: rgba(144, 173, 208, 0.15);
}
.di-checkin-form .di-checkin-badge {
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.di-checkin-form .di-checkin-badge--success {
  background: rgba(102, 187, 106, 0.15);
  color: #49a54e;
}
.di-checkin-form .di-checkin-product-quantities span {
  white-space: nowrap;
}
.di-checkin-form .di-checkin-products-list,
.di-checkin-form .di-checkin-extras-list {
  gap: 0.75rem;
}
.di-checkin-form .di-checkin-extras-group {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: rgba(250, 250, 250, 0.8);
  border: 1px solid #dee2e6;
  border-radius: 8px;
  margin-bottom: 1rem;
}
.di-checkin-form .di-checkin-extras-group-label {
  padding: 0.25rem 0;
  margin-bottom: 0.25rem;
  border-bottom: 1px solid #dee2e6;
}
.di-checkin-form .di-checkin-product-inputs {
  border-top: 1px solid #dee2e6;
  padding-top: 1rem;
  margin-top: 1rem;
}
.di-checkin-form .di-checkin-inputs-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
@media (max-width: 767px) {
  .di-checkin-form .di-checkin-inputs-row {
    grid-template-columns: 1fr;
  }
}
.di-checkin-form .di-checkin-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}
.di-checkin-form .di-checkin-input {
  flex: 1;
  padding: 1rem 1.2rem;
  border: 2px solid #dee2e6;
  border-radius: 6px;
  transition: all 0.2s ease;
}
.di-checkin-form .di-checkin-input:focus {
  outline: none;
  border-color: #90ADD0;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.1);
}
.di-checkin-form .di-checkin-input:disabled {
  background: #fafafa;
  cursor: not-allowed;
}
.di-checkin-form .di-checkin-input-suffix {
  white-space: nowrap;
}
.di-checkin-form .di-checkin-select {
  padding: 1rem 1.2rem;
  border: 2px solid #dee2e6;
  border-radius: 6px;
  background: #ffffff;
  cursor: pointer;
  transition: all 0.2s ease;
}
.di-checkin-form .di-checkin-select:focus {
  outline: none;
  border-color: #90ADD0;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.1);
}
.di-checkin-form .di-checkin-select:disabled {
  background: #fafafa;
  cursor: not-allowed;
}
.di-checkin-form .di-checkin-error {
  color: #e5737a;
}
.di-checkin-form .di-checkin-textarea {
  width: 100%;
  padding: 1.2rem;
  border: 2px solid #dee2e6;
  border-radius: 6px;
  font-family: inherit;
  resize: vertical;
  min-height: 10rem;
  transition: all 0.2s ease;
}
.di-checkin-form .di-checkin-textarea:focus {
  outline: none;
  border-color: #90ADD0;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.1);
}
.di-checkin-form .di-checkin-textarea:disabled {
  background: #fafafa;
  cursor: not-allowed;
}
.di-checkin-form .di-checkin-file-upload {
  margin-top: 0.25rem;
}
.di-checkin-form .di-checkin-file-label {
  cursor: pointer;
}
.di-checkin-form .di-checkin-file-label input[type="file"] {
  display: none;
}
.di-checkin-form .di-checkin-file-hint {
  margin-top: 0.5rem;
}
.di-checkin-form .di-checkin-file-button {
  background: #90ADD0;
  color: #ffffff;
  border-radius: 6px;
  transition: all 0.2s ease;
}
.di-checkin-form .di-checkin-file-button:hover {
  background: #7ea0c8;
  transform: translateY(-1px);
}
.di-checkin-form .di-checkin-file-item {
  padding: 1rem 1.2rem;
  background: #fafafa;
  border: 1px solid #dee2e6;
  border-radius: 6px;
  transition: all 0.2s ease;
}
.di-checkin-form .di-checkin-file-item:hover {
  background: rgba(144, 173, 208, 0.05);
  border-color: rgba(144, 173, 208, 0.3);
}
.di-checkin-form .di-checkin-file-info i {
  color: #90ADD0;
  font-size: 1.8rem;
}
.di-checkin-form .di-checkin-file-remove {
  background: transparent;
  border: none;
  color: #e5737a;
  cursor: pointer;
  border-radius: 6px;
  transition: all 0.2s ease;
  width: 3.2rem;
  height: 3.2rem;
}
.di-checkin-form .di-checkin-file-remove:hover:not(:disabled) {
  background: rgba(229, 115, 122, 0.1);
  transform: scale(1.1);
}
.di-checkin-form .di-checkin-empty-state i {
  font-size: 4rem;
  opacity: 0.5;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.voyage-map-placeholder {
  background: #fafafa;
  border: 2px dashed #dee2e6;
  border-radius: 12px;
  padding: 2.5rem 2rem;
  text-align: center;
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.voyage-map-placeholder .voyage-map-placeholder-content {
  color: #6c757d;
}
.voyage-map-placeholder .voyage-map-placeholder-content i {
  font-size: 2.5rem;
  opacity: 0.5;
  margin-bottom: 1rem;
  display: block;
}
.voyage-map-placeholder .voyage-map-placeholder-content .voyage-map-title {
  font-weight: 600;
  color: #90ADD0;
  margin-bottom: 0.5rem;
  font-size: 1.8rem;
}
.voyage-map-placeholder .voyage-map-placeholder-content .voyage-map-location {
  font-size: 1.6rem;
  margin-bottom: 0.25rem;
}
.voyage-map-placeholder .voyage-map-placeholder-content .voyage-map-note {
  font-size: 1.2rem;
  opacity: 0.7;
}
.voyage-map-container {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.voyage-map-container .voyage-map-no-coordinates {
  padding: 1.5rem 2rem;
  margin: 0;
  border-radius: 0;
  border: none;
  display: flex;
  align-items: center;
}
.voyage-map-container .voyage-map-header {
  padding: 1.5rem 2rem;
  border-bottom: 1px solid #dee2e6;
  background: #fafafa;
}
.voyage-map-container .voyage-map-header .voyage-map-title {
  font-weight: 600;
  color: #90ADD0;
  font-size: 1.8rem;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
}
.voyage-map-container .voyage-map-header .voyage-map-title i {
  font-size: 1.6rem;
}
.voyage-map-container .voyage-map-header .voyage-map-location {
  font-size: 1.4rem;
  color: #6c757d;
}
.voyage-map-container .voyage-map-header .voyage-map-location strong {
  color: #212529;
  font-weight: 600;
}
.voyage-map-container .voyage-map-wrapper {
  height: 400px;
  width: 100%;
  position: relative;
}
.voyage-map-container .voyage-map-wrapper :deep(.leaflet-container) {
  height: 100%;
  width: 100%;
  border-radius: 0;
  overscroll-behavior: none;
}
.leaflet-overlay-pane .leaflet-interactive.en-route,
.voyage-map-wrapper .leaflet-interactive.en-route {
  stroke-dasharray: 10 5 !important;
  animation: dash-animation 2s linear infinite !important;
}
.leaflet-overlay-pane .leaflet-interactive[stroke-opacity="0.4"]:not(.en-route),
.leaflet-overlay-pane .leaflet-interactive[opacity="0.4"]:not(.en-route),
.leaflet-overlay-pane .leaflet-interactive[style*="stroke-opacity: 0.4"]:not(.en-route),
.leaflet-overlay-pane .leaflet-interactive[style*="stroke-opacity:0.4"]:not(.en-route),
.leaflet-overlay-pane .leaflet-interactive[style*="opacity: 0.4"]:not(.en-route),
.leaflet-overlay-pane .leaflet-interactive[style*="opacity:0.4"]:not(.en-route) {
  stroke-dasharray: 10 5 !important;
  animation: dash-animation 2s linear infinite !important;
}
@keyframes dash-animation {
  0% {
    stroke-dashoffset: 15;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.info-card {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  padding: 1rem;
}
.info-card .info-label {
  font-size: 1rem;
  font-weight: 700;
  color: #6c757d;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.5rem;
  display: block;
}
.info-card .info-value {
  font-size: 1.6rem;
  font-weight: 600;
  color: #212529;
}
.info-card .info-value.info-value--highlight {
  color: #90ADD0;
  font-size: 1.8rem;
}
.warehouse-zone-card {
  background: #ffffff;
  border: 2px solid #edf2f7;
  border-radius: 8px;
  padding: 1.5rem;
  text-align: center;
  transition: all 0.2s ease;
}
.warehouse-zone-card:hover {
  border-color: #90ADD0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.warehouse-zone-card.warehouse-zone-card--active {
  border-color: #90ADD0;
  background: rgba(144, 173, 208, 0.05);
}
.warehouse-zone-card.warehouse-zone-card--empty {
  opacity: 0.5;
}
.warehouse-zone-card.warehouse-zone-card--empty:hover {
  opacity: 0.7;
}
.warehouse-zone-card.warehouse-zone-card--selected {
  border-color: #90ADD0;
  background: rgba(144, 173, 208, 0.1);
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.2);
}
.warehouse-zone-card .warehouse-zone-header {
  margin-bottom: 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}
.warehouse-zone-card .warehouse-zone-header h6 {
  margin: 0;
  font-weight: 600;
  color: #212529;
  font-size: 1.6rem;
}
.warehouse-zone-card .warehouse-zone-count .count-number {
  font-size: 2.5rem;
  font-weight: 700;
  color: #90ADD0;
  display: block;
  line-height: 1;
}
.warehouse-zone-card .warehouse-zone-count .count-label {
  font-size: 1.4rem;
  color: #6c757d;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.recent-activity-feed .activity-feed-item:last-child {
  border-bottom: none !important;
}
.installation-tab-container .installation-status-section h5,
.installation-tab-container .installation-items-section h5,
.installation-tab-container .installation-notes-section h5 {
  font-weight: 600;
  color: #212529;
  margin-bottom: 1rem;
  font-size: 1.8rem;
}
.installation-tab-container .installation-progress-summary {
  background: #fafafa;
  border-radius: 8px;
  padding: 1rem;
}
.installation-tab-container .installation-progress-summary .progress {
  background: #edf2f7;
  border-radius: 4px;
  height: 8px;
}
.installation-tab-container .installation-notes-list .installation-note-item {
  background: #ffffff;
  border: 1px solid #edf2f7;
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 0.75rem;
  transition: all 0.2s ease;
}
.installation-tab-container .installation-notes-list .installation-note-item:hover {
  border-color: #90ADD0;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.warehouse-tab-container .warehouse-zones-section h5,
.warehouse-tab-container .warehouse-items-section h5,
.warehouse-tab-container .warehouse-dates-section h5 {
  font-weight: 600;
  color: #212529;
  margin-bottom: 1rem;
  font-size: 1.8rem;
}
.warehouse-tab-container .warehouse-items-section .table th {
  border-bottom: 2px solid #edf2f7;
}
.timeline-container {
  position: relative;
  padding-left: 2rem;
}
.timeline-container::before {
  content: '';
  position: absolute;
  left: 0.75rem;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #edf2f7;
}
.timeline-item {
  position: relative;
  padding-bottom: 1.5rem;
}
.timeline-item:last-child {
  padding-bottom: 0;
}
.timeline-marker {
  position: absolute;
  left: -2rem;
  top: 0;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: #ffffff;
  border: 2px solid #edf2f7;
  z-index: 1;
}
.timeline-marker i {
  font-size: 0.75rem;
  color: #6c757d;
}
.timeline-marker.timeline-marker--completed {
  background: #66bb6a;
  border-color: #66bb6a;
}
.timeline-marker.timeline-marker--completed i {
  color: #ffffff;
}
.timeline-marker.timeline-marker--current {
  background: #90ADD0;
  border-color: #90ADD0;
}
.timeline-marker.timeline-marker--current i {
  color: #ffffff;
}
.timeline-content .timeline-title {
  margin-bottom: 0.25rem;
  font-size: 1.6rem;
}
.timeline-content .timeline-date {
  font-size: 1.4rem;
}
.warehouse-checkin-status .alert {
  border-radius: 8px;
  padding: 1rem 1.25rem;
  border-left: 4px solid;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.warehouse-checkin-status .alert.alert-success {
  border-left-color: #66bb6a;
  background-color: rgba(102, 187, 106, 0.1);
}
.warehouse-checkin-status .alert.alert-warning {
  border-left-color: #f5a623;
  background-color: rgba(245, 166, 35, 0.1);
}
.warehouse-checkin-status .alert.alert-info {
  border-left-color: #0dcaf0;
  background-color: rgba(13, 202, 240, 0.1);
}
.warehouse-checkin-status .alert i {
  font-size: 1.8rem;
  flex-shrink: 0;
}
.warehouse-checkin-status .alert strong {
  font-size: 1.6rem;
}
.warehouse-checkin-status .alert .small {
  font-size: 1.4rem;
  line-height: 1.5;
}
.warehouse-checkin-status .alert .btn {
  flex-shrink: 0;
  white-space: nowrap;
  font-weight: 600;
}
.installation-status-section .alert {
  border-radius: 8px;
  padding: 1rem 1.25rem;
  border-left: 4px solid;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.installation-status-section .alert.alert-success {
  border-left-color: #66bb6a;
  background-color: rgba(102, 187, 106, 0.1);
}
.installation-status-section .alert.alert-info {
  border-left-color: #0dcaf0;
  background-color: rgba(13, 202, 240, 0.1);
}
.installation-status-section .alert.alert-warning {
  border-left-color: #f5a623;
  background-color: rgba(245, 166, 35, 0.1);
}
.installation-status-section .alert.alert-secondary {
  border-left-color: #6c757d;
  background-color: rgba(108, 117, 125, 0.05);
}
.installation-status-section .alert i {
  font-size: 1.8rem;
  flex-shrink: 0;
}
.installation-status-section .alert strong {
  font-size: 1.6rem;
}
.installation-status-section .alert .small {
  font-size: 1.4rem;
  line-height: 1.5;
}
.table td.description-cell {
  max-width: 400px;
}
.table td.description-cell .text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: block;
}
.table td.description-cell:hover .text-truncate {
  white-space: normal;
  word-break: break-word;
  position: relative;
  z-index: 10;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  padding: 0.5rem;
  border-radius: 4px;
  max-height: 200px;
  overflow-y: auto;
}
.table th {
  font-weight: 600;
  color: #212529;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 0.75rem;
}
.table td {
  padding: 0.75rem;
  vertical-align: middle;
  font-size: 1.6rem;
}
.warehouse-checkin-form .warehouse-checkin-product-item {
  background: #ffffff;
  border: 2px solid #edf2f7;
  border-radius: 8px;
  transition: all 0.2s ease;
}
.warehouse-checkin-form .warehouse-checkin-product-item.selected {
  border-color: #90ADD0;
  background: rgba(144, 173, 208, 0.05);
}
.warehouse-checkin-form .warehouse-checkin-product-item.fully-delivered {
  opacity: 0.7;
  background: rgba(102, 187, 106, 0.05);
  border-color: rgba(102, 187, 106, 0.3);
}
.warehouse-checkin-form .warehouse-checkin-product-item.warehouse-checkin-product-item--extra {
  margin-left: 1.5rem;
  border-left: 3px solid #90ADD0;
}
.warehouse-checkin-form .warehouse-checkin-product-item .warehouse-checkin-product-check.warehouse-checkin-product-check--fully-delivered i {
  font-size: 1.8rem;
}
.warehouse-checkin-form .warehouse-checkin-product-item .warehouse-checkin-product-info {
  flex: 1;
}
.warehouse-checkin-form .warehouse-checkin-product-item .warehouse-checkin-product-info .warehouse-checkin-product-code {
  background: #fafafa;
  border-radius: 4px;
  font-family: monospace;
}
.warehouse-checkin-form .warehouse-checkin-product-item .warehouse-checkin-product-info .warehouse-checkin-product-code.warehouse-checkin-product-code--extra {
  background: rgba(144, 173, 208, 0.15);
}
.warehouse-checkin-form .warehouse-checkin-product-item .warehouse-checkin-product-info .warehouse-checkin-product-quantities span {
  white-space: nowrap;
}
.warehouse-checkin-form .warehouse-checkin-product-item .warehouse-checkin-product-inputs {
  border-top: 1px solid #edf2f7;
}
.warehouse-checkin-form .warehouse-checkin-comment-section .form-control,
.warehouse-checkin-form .warehouse-checkin-attachments-section .form-control {
  border-radius: 8px;
}
.warehouse-checkin-form .warehouse-checkin-files-list .warehouse-checkin-file-item {
  background: #fafafa;
  transition: all 0.2s ease;
}
.warehouse-checkin-form .warehouse-checkin-files-list .warehouse-checkin-file-item:hover {
  background: rgba(144, 173, 208, 0.05);
}
.warehouse-checkin-form .warehouse-checkin-files-list .warehouse-checkin-file-item .btn-link {
  color: #e5737a;
}
.warehouse-checkin-form .warehouse-checkin-files-list .warehouse-checkin-file-item .btn-link:hover {
  color: #dd4851;
}
.purchase-order-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
  gap: 1.25rem;
}
@media (max-width: 768px) {
  .purchase-order-list {
    grid-template-columns: 1fr;
  }
}
.purchase-order-card {
  background: #ffffff;
  border: 2px solid #edf2f7;
  border-radius: 12px;
  transition: all 0.2s ease;
  overflow: hidden;
}
.purchase-order-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  border-color: #90ADD0;
}
.purchase-order-card-header {
  border-bottom: 1px solid #edf2f7;
  background: #fafafa;
}
.purchase-order-card-title {
  min-width: 0;
}
.badge-stage {
  padding: 0.375rem 0.75rem;
  border-radius: 6px;
  background-color: #edf2f7;
}
.badge-stage.badge-stage--draft {
  background-color: #6c757d;
  color: #ffffff;
}
.badge-stage.badge-stage--approved {
  background-color: #0dcaf0;
  color: #ffffff;
}
.badge-stage.badge-stage--sent {
  background-color: #f5a623;
  color: #212529;
}
.badge-stage.badge-stage--confirmed {
  background-color: #66bb6a;
  color: #ffffff;
}
.badge-stage.badge-stage--ordered {
  background-color: #419345;
  color: #ffffff;
}
.purchase-order-card-financials {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-bottom: 1px solid #edf2f7;
}
.purchase-order-card-financial-value--highlight {
  font-size: 20px;
}
.purchase-order-card-meta-item i {
  width: 16px;
  color: #90ADD0;
}
.po-confirmation-summary {
  max-width: 72rem;
  margin-inline: auto;
  padding: 1.5rem;
  border: 1px solid rgba(108, 117, 125, 0.18);
  border-radius: 12px;
  background: rgba(144, 173, 208, 0.05);
}
.po-confirmation-summary-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(108, 117, 125, 0.16);
}
@media (max-width: 640px) {
  .po-confirmation-summary-header {
    align-items: stretch;
    flex-direction: column;
  }
  .po-confirmation-summary-header .btn {
    justify-content: center;
  }
}
.po-confirmation-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 1rem;
}
.po-confirmation-summary-item {
  padding: 1rem;
  border: 1px solid rgba(108, 117, 125, 0.12);
  border-radius: 8px;
  background: #ffffff;
}
.po-confirmation-summary-item-notes {
  grid-column: 1 / -1;
}
.po-confirmation-summary-label,
.po-confirmation-summary-value {
  display: block;
}
.po-confirmation-summary-label {
  margin-bottom: 0.35rem;
  color: #6c757d;
  font-size: 1.3rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.po-confirmation-summary-value {
  color: #212529;
  font-size: 1.4rem;
  font-weight: 600;
}
.po-table .ui-table-wrapper {
  background: transparent;
  border: 0;
  border-radius: 0;
}
.po-table-empty {
  padding: 4rem 0;
  text-align: center;
  border-top: 1px solid var(--card-border, #dee2e6);
  background: transparent;
}
.po-table-sortable {
  cursor: pointer;
  user-select: none;
}
.po-table-row {
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.po-table-row:hover {
  background: rgba(144, 173, 208, 0.05) !important;
}
.po-table-status {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  border: 1px solid transparent;
}
.po-table-status-draft {
  color: #212529;
  background: rgba(108, 117, 125, 0.12);
  border-color: rgba(108, 117, 125, 0.2);
}
.po-table-actions {
  width: 1%;
  white-space: nowrap;
  text-align: right;
}
.po-table-open-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.2rem;
  height: 3.2rem;
  padding: 0;
  border: 1px solid var(--card-border, #dee2e6);
  border-radius: 6px;
  background: #ffffff;
  color: #6c757d;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.po-table-open-btn:hover {
  border-color: #90ADD0;
  background: rgba(144, 173, 208, 0.06);
  color: #90ADD0;
  box-shadow: 0 2px 4px rgba(144, 173, 208, 0.12);
}
.project-po-tab {
  width: 100%;
  background: #ffffff;
}
.project-po-tab-header {
  margin-bottom: 1rem;
}
.po-section-card {
  overflow: hidden;
  border-color: rgba(108, 117, 125, 0.22);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}
.po-section-card + .po-section-card {
  margin-top: 2rem;
}
.po-section-card-header {
  padding: 1.75rem 2rem 1.5rem;
}
.po-section-card-content .ui-table-wrapper {
  border: 0;
  border-radius: 0;
  border-top: 1px solid rgba(108, 117, 125, 0.18);
}
.po-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  border: 1px solid transparent;
}
.po-status-badge--ref {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: rgba(108, 117, 125, 0.1);
  border: 1px solid rgba(108, 117, 125, 0.18);
}
.po-status-badge--approved {
  color: #2d6a3e;
  background: rgba(45, 106, 62, 0.1);
  border-color: rgba(45, 106, 62, 0.18);
}
.po-status-badge--draft,
.po-status-badge--expired {
  color: #212529;
  background: rgba(108, 117, 125, 0.12);
  border-color: rgba(108, 117, 125, 0.2);
}
.po-status-badge--active {
  color: #90ADD0;
  background: rgba(144, 173, 208, 0.1);
  border-color: rgba(144, 173, 208, 0.18);
}
.po-stage-mini {
  display: inline-flex;
  flex-direction: column;
  gap: 0.45rem;
  min-width: 15rem;
}
.po-stage-mini-label {
  color: #212529;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.2;
}
.po-stage-mini-track {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.po-stage-mini-dot {
  position: relative;
  display: inline-flex;
  width: 0.75rem;
  height: 0.75rem;
  border: 1px solid rgba(108, 117, 125, 0.26);
  border-radius: 999px;
  background: #ffffff;
}
.po-stage-mini-dot:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 100%;
  width: 0.35rem;
  height: 1px;
  background: rgba(108, 117, 125, 0.2);
  transform: translateY(-50%);
}
.po-stage-mini-dot-completed {
  border-color: rgba(144, 173, 208, 0.4);
  background: rgba(144, 173, 208, 0.24);
}
.po-stage-mini-dot-current {
  border-color: #90ADD0;
  background: #90ADD0;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.14);
}
.po-stage-mini-dot-approved {
  border-color: #2d6a3e;
  background: #2d6a3e;
  box-shadow: 0 0 0 3px rgba(45, 106, 62, 0.14);
}
.po-stage-mini-dot-rejected {
  border-color: #9b2330;
  background: rgba(155, 35, 48, 0.18);
}
.po-stage-mini--rejected .po-stage-mini-label {
  color: #9b2330;
}
.main-content:has(.dashboard-page) {
  background: #ffffff;
}
.dashboard-page {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  width: 100%;
  max-width: 100%;
  padding-top: 1rem;
  padding-bottom: 2rem;
  background: #ffffff;
}
.dashboard-page .pipeline-stat-card {
  --card: #fafafa;
  background: #fafafa;
}
.dashboard-hero {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.dashboard-hero .pipeline-section {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.dashboard-header-controls {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.dashboard-panel {
  padding: 1.25rem 1.5rem;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  background: #fafafa;
  height: 100%;
}
.dashboard-pipelines-row > [class*="col"] {
  display: flex;
}
.dashboard-pipelines-row .dashboard-section {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
}
.dashboard-pipelines-row .dashboard-section .dashboard-panel {
  flex: 1;
}
.dashboard-section {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.dashboard-section-title {
  padding-top: 0;
}
.dashboard-section-subtitle {
  padding-top: 0;
  margin-top: 0.5rem;
}
.dashboard-section-description {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.5;
  color: #6c757d;
  margin-bottom: 0.75rem;
  padding-bottom: 0;
}
.dashboard-section .pipeline-kanban {
  margin-top: 0;
}
.dashboard-section--projects-board .all-projects-kanban {
  margin-top: 0;
}
.dashboard-section--pipeline-analytics .pipeline-analytics-grid {
  align-items: stretch;
}
.dashboard-section--pipeline-analytics .pipeline-analytics-grid > [class*="col"] {
  display: flex;
}
.pipeline-analytics-mixed {
  width: 100%;
}
.pipeline-chart-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: 1.5rem 1.75rem;
  background: #fafafa;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.pipeline-chart-card-header {
  flex-shrink: 0;
  margin-bottom: 1.5rem;
}
.pipeline-chart-card-title {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.25;
  color: #212529;
  margin: 0;
}
.pipeline-chart-card-desc {
  margin: 0.5rem 0 0;
  padding: 0 !important;
  font-size: 0.9375rem;
  line-height: 1.5 !important;
  color: #6c757d;
}
.pipeline-chart-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.pipeline-chart-card-body-total {
  gap: 1.25rem;
}
.pipeline-chart-card-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  padding: 2rem 1rem;
  color: #6c757d;
  text-align: center;
}
.pipeline-chart-card-empty p {
  line-height: 1.5 !important;
  padding-bottom: 0 !important;
  font-size: 0.9375rem;
}
.pipeline-chart-kpi {
  text-align: center;
  padding: 0.5rem 0;
}
.pipeline-chart-kpi-value {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.1;
  color: #212529;
}
.pipeline-chart-kpi-sub {
  margin-top: 0.5rem;
  font-size: 1rem;
  line-height: 1.4;
  color: #6c757d;
}
.pipeline-chart-canvas {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  height: 320px;
  min-height: 320px;
}
.pipeline-chart-canvas--doughnut {
  height: 300px;
  min-height: 300px;
}
.pipeline-chart-canvas--stage {
  height: 360px;
  min-height: 360px;
}
.pipeline-chart-canvas--horizontal {
  height: 240px;
  min-height: 240px;
}
.pipeline-chart-canvas--mixed {
  height: 380px;
  min-height: 380px;
}
.dashboard-pipeline-section {
  padding: 0;
  margin: 0;
}
.quote-pipeline-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.quote-pipeline-dot.quote-pipeline-dot--uploaded,
.quote-pipeline-dot.quote-pipeline-dot--draft {
  background-color: #6c757d;
}
.quote-pipeline-dot.quote-pipeline-dot--internal {
  background-color: #6c757d;
}
.quote-pipeline-dot.quote-pipeline-dot--approved-internal {
  background-color: #0d6efd;
}
.quote-pipeline-dot.quote-pipeline-dot--sent-client,
.quote-pipeline-dot.quote-pipeline-dot--sent {
  background-color: #0dcaf0;
}
.quote-pipeline-dot.quote-pipeline-dot--approved-client,
.quote-pipeline-dot.quote-pipeline-dot--accepted {
  background-color: #28a745;
}
.quote-pipeline-dot.quote-pipeline-dot--final-uploaded {
  background-color: #6c757d;
}
.quote-pipeline-dot.quote-pipeline-dot--final-sent {
  background-color: #0dcaf0;
}
.quote-pipeline-dot.quote-pipeline-dot--final-received {
  background-color: #20c997;
}
.quote-pipeline-dot.quote-pipeline-dot--final-signed,
.quote-pipeline-dot.quote-pipeline-dot--finalized {
  background-color: #28a745;
}
.quote-pipeline-group-title {
  margin: 0;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.quote-pipeline-divider {
  border-color: #dee2e6;
  opacity: 1;
}
.quote-pipeline-bar {
  height: 8px;
  background-color: #e9ecef;
  border-radius: 4px;
  overflow: hidden;
}
.quote-pipeline-bar-fill {
  background-color: #0d6efd;
  height: 100%;
  transition: width 0.3s ease;
  border-radius: 4px;
}
.po-pipeline-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.po-pipeline-dot.po-pipeline-dot--draft {
  background-color: #6c757d;
}
.po-pipeline-dot.po-pipeline-dot--approved {
  background-color: #0d6efd;
}
.po-pipeline-dot.po-pipeline-dot--sent {
  background-color: #0dcaf0;
}
.po-pipeline-dot.po-pipeline-dot--confirmed {
  background-color: #28a745;
}
.po-pipeline-dot.po-pipeline-dot--ordered {
  background-color: #28a745;
}
.po-pipeline-bar {
  height: 8px;
  background-color: #e9ecef;
  border-radius: 4px;
  overflow: hidden;
}
.po-pipeline-bar-fill {
  background-color: #0d6efd;
  height: 100%;
  transition: width 0.3s ease;
  border-radius: 4px;
}
.delivery-pipeline-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.delivery-pipeline-dot.delivery-pipeline-dot--ordered {
  background-color: #6c757d;
}
.delivery-pipeline-dot.delivery-pipeline-dot--dispatched {
  background-color: #0d6efd;
}
.delivery-pipeline-dot.delivery-pipeline-dot--portsmouth {
  background-color: #0dcaf0;
}
.delivery-pipeline-dot.delivery-pipeline-dot--enroute {
  background-color: #20c997;
}
.delivery-pipeline-dot.delivery-pipeline-dot--on-island {
  background-color: #198754;
}
.delivery-pipeline-dot.delivery-pipeline-dot--warehouse-received,
.delivery-pipeline-dot.delivery-pipeline-dot--delivered {
  background-color: #6f42c1;
}
.delivery-pipeline-dot.delivery-pipeline-dot--partial {
  background-color: #ffc107;
}
.delivery-pipeline-dot.delivery-pipeline-dot--checkedin {
  background-color: #fd7e14;
}
.delivery-pipeline-dot.delivery-pipeline-dot--stored {
  background-color: #e83e8c;
}
.delivery-pipeline-dot.delivery-pipeline-dot--clientnotified {
  background-color: #17a2b8;
}
.delivery-pipeline-dot.delivery-pipeline-dot--installationscheduled {
  background-color: #6610f2;
}
.delivery-pipeline-dot.delivery-pipeline-dot--checkedout {
  background-color: #28a745;
}
.delivery-pipeline-dot.delivery-pipeline-dot--installed {
  background-color: #198754;
}
.delivery-pipeline-bar {
  height: 8px;
  background-color: #e9ecef;
  border-radius: 4px;
  overflow: hidden;
}
.delivery-pipeline-bar-fill {
  background-color: #0d6efd;
  height: 100%;
  transition: width 0.3s ease;
  border-radius: 4px;
}
.installation-pipeline-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.installation-pipeline-dot.installation-pipeline-dot--notstarted {
  background-color: #6c757d;
}
.installation-pipeline-dot.installation-pipeline-dot--inprogress {
  background-color: #0d6efd;
}
.installation-pipeline-dot.installation-pipeline-dot--complete {
  background-color: #28a745;
}
.installation-pipeline-bar {
  height: 8px;
  background-color: #e9ecef;
  border-radius: 4px;
  overflow: hidden;
}
.installation-pipeline-bar-fill {
  background-color: #0d6efd;
  height: 100%;
  transition: width 0.3s ease;
  border-radius: 4px;
}
.card-shadow .activity-feed-timeline::before {
  display: none;
}
.recent-activity-card {
  overflow: hidden;
}
.recent-activity-card .activity-feed-timeline {
  padding-left: 0;
}
.recent-activity-card .activity-feed-item {
  padding-left: 0;
}
.recent-activity-card .activity-feed-item:hover {
  transform: none;
}
.recent-activity-card .activity-feed-icon {
  display: none !important;
}
.recent-activity-card .activity-feed-content {
  overflow: hidden;
}
.recent-activity-card .activity-feed-content:hover {
  transform: none;
}
.recent-activity-card .activity-feed-content::before {
  left: 0;
  opacity: 1;
  border-top-left-radius: 12px;
  border-bottom-left-radius: 12px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.pending-approvals-scroll {
  max-height: 28rem;
  overflow-y: auto;
  padding-right: 0.25rem;
}
.pending-approvals-scroll .activity-feed-item {
  padding-left: 0;
}
.pending-approvals-scroll .pending-approval-card {
  border-radius: 12px;
  overflow: hidden;
}
.pending-approvals-scroll .activity-feed-item--quote .pending-approval-card::before,
.pending-approvals-scroll .activity-feed-item--purchase-order .pending-approval-card::before {
  left: 0;
  border-top-left-radius: 12px;
  border-bottom-left-radius: 12px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.pending-approvals-scroll .activity-feed-item:hover {
  transform: none;
}
.pending-approvals-scroll .pending-approval-card.activity-feed-content:hover {
  transform: none;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
  border-color: #e9ecef;
}
.needs-action-section-toolbar {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 1rem;
}
.needs-action-section-loading {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 16rem;
  padding: 1.5rem;
}
.needs-action-section-content {
  transition: opacity 0.15s ease;
}
.needs-action-section-content-refreshing {
  opacity: 0.55;
  pointer-events: none;
}
.needs-action-scope-toggle {
  margin-left: 0;
}
.needs-action-scope-toggle .pipeline-view-toggle-btn {
  min-width: 7.25rem;
  justify-content: center;
}
.needs-action-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: stretch;
}
@media (max-width: 1050px) {
  .needs-action-row {
    grid-template-columns: 1fr;
  }
}
.needs-action-row--two-up {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 1050px) {
  .needs-action-row--two-up {
    grid-template-columns: 1fr;
  }
}
.needs-action-panel {
  background: #fafafa;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(20, 24, 40, 0.05), 0 1px 1px rgba(20, 24, 40, 0.03);
  padding: 1.5rem 1.625rem 1.25rem;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.needs-action-panel-head {
  margin-bottom: 1.125rem;
}
.needs-action-panel-title {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.25;
  margin: 0;
  color: #212529;
}
.needs-action-panel-sub {
  font-size: 1.3rem;
  line-height: 1.4;
  color: #6c757d;
  margin: 0.4rem 0 0;
}
.needs-action-panel-empty {
  font-size: 1.3rem;
  color: #6c757d;
  margin: 0;
  padding: 0.5rem 0;
}
.needs-action-list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  min-height: 0;
}
.needs-action-list--scrollable {
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 0.125rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(108, 117, 125, 0.45) transparent;
}
.needs-action-list--scrollable::-webkit-scrollbar {
  width: 6px;
}
.needs-action-list--scrollable::-webkit-scrollbar-thumb {
  background: rgba(108, 117, 125, 0.45);
  border-radius: 3px;
}
.needs-action-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.875rem 1rem;
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(20, 24, 40, 0.04);
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.needs-action-item:hover {
  border-color: rgba(144, 173, 208, 0.2);
  box-shadow: 0 2px 6px rgba(20, 24, 40, 0.07);
}
.needs-action-item:hover .needs-action-item-title {
  color: #272B3B;
}
.needs-action-item-content {
  flex: 1;
  min-width: 0;
}
.needs-action-item-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
.needs-action-item-title {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.4;
  color: #212529;
  margin: 0;
}
.needs-action-item-meta {
  font-size: 1.3rem;
  line-height: 1.45;
  color: #6c757d;
  margin: 0.35rem 0 0;
}
.needs-action-panel-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #dee2e6;
}
.needs-action-panel-count {
  font-size: 1.3rem;
  color: #6c757d;
}
.needs-action-panel-view-all {
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 1.3rem;
  font-weight: 600;
  color: #3b62c7;
  cursor: pointer;
}
.needs-action-panel-view-all:hover {
  text-decoration: underline;
}
.needs-action-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 0.45rem;
}
.needs-action-dot--red {
  background: #c0473f;
}
.needs-action-dot--amber {
  background: #c98a2c;
}
.needs-action-dot--blue {
  background: #90ADD0;
}
.needs-action-dot--gray {
  background: #9aa2ae;
}
.needs-action-reminder {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.875rem 1rem;
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(20, 24, 40, 0.04);
}
.needs-action-reminder-dot {
  margin-top: 0.45rem;
}
.needs-action-reminder-content {
  flex: 1;
  min-width: 0;
}
.needs-action-reminder-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.625rem;
}
.needs-action-reminder-text {
  flex: 1;
  min-width: 0;
  font-size: 1.4rem;
  line-height: 1.5;
  color: #212529;
  margin: 0;
}
.needs-action-reminder-text strong {
  font-weight: 600;
}
.needs-action-reminder-text-wrap {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.needs-action-reminder-link {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: 1.3rem;
  font-weight: 600;
  color: #3b62c7;
  text-decoration: none;
}
.needs-action-reminder-link:hover {
  text-decoration: underline;
}
.needs-action-reminder-snooze {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
  padding: 0.2rem 0.45rem;
  border: 1px solid #d7dde6;
  border-radius: 6px;
  background: #fafafa;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  color: #6c757d;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.needs-action-reminder-snooze i {
  font-size: 0.65rem;
}
.needs-action-reminder-snooze:hover:not(:disabled) {
  background: #ffffff;
  border-color: rgba(108, 117, 125, 0.55);
  color: #212529;
  text-decoration: none;
}
.needs-action-reminder-snooze:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.needs-action-approval {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  padding: 1rem;
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(20, 24, 40, 0.04);
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.needs-action-approval:hover {
  border-color: rgba(144, 173, 208, 0.2);
  box-shadow: 0 2px 6px rgba(20, 24, 40, 0.07);
}
.needs-action-approval:hover .needs-action-approval-name,
.needs-action-approval:hover .needs-action-approval-review {
  color: #272B3B;
}
.needs-action-approval-logo.client-logo {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 8px;
  flex-shrink: 0;
}
.needs-action-approval-logo.client-logo .client-logo-initials {
  font-size: 1rem;
  font-weight: 700;
}
.needs-action-approval-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.needs-action-approval-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.needs-action-approval-title-wrap {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-width: 0;
}
.needs-action-approval-name {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.4;
  color: #212529;
  min-width: 0;
}
.needs-action-approval-amt {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.4;
  color: #212529;
  white-space: nowrap;
  flex-shrink: 0;
}
.needs-action-approval-detail {
  font-size: 1.3rem;
  line-height: 1.45;
  color: #6c757d;
  margin: 0;
}
.needs-action-approval-review {
  font-size: 1.3rem;
  font-weight: 600;
  color: #3b62c7;
  margin-top: 0.15rem;
}
.needs-action-bso {
  font-size: 1.3rem;
  line-height: 1.3;
  white-space: nowrap;
  flex-shrink: 0;
}
.warehouse-card {
  display: block;
  cursor: pointer;
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
}
.warehouse-card:hover {
  border-color: #90ADD0;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(144, 173, 208, 0.1);
}
.warehouse-card.warehouse-selector-card {
  min-height: 260px;
}
.warehouse-card-header {
  border-bottom: 1px solid #dee2e6;
  padding: 1.25rem 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.warehouse-card-header .warehouse-card-header-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.15) 0%, rgba(144, 173, 208, 0.08) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.warehouse-card-header .warehouse-card-header-icon i {
  color: #90ADD0;
}
.warehouse-card-body {
  padding: 1.5rem;
}
.warehouse-summary-stat {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  padding: 1.25rem;
  transition: all 0.2s ease;
  height: 100%;
}
.warehouse-summary-stat:hover {
  border-color: #90ADD0;
  box-shadow: 0 2px 8px rgba(144, 173, 208, 0.1);
}
.warehouse-page-header {
  padding-bottom: 1rem;
}
.warehouse-page-header .warehouse-page-header-icon {
  width: 4rem;
  height: 4rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, rgba(144, 173, 208, 0.15) 0%, rgba(144, 173, 208, 0.08) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.warehouse-page-header .warehouse-page-header-icon i {
  color: #90ADD0;
}
.warehouse-section-card {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
}
.warehouse-section-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}
.warehouse-product-list .product-list-item-card {
  padding: 1.25rem 1.5rem;
}
.warehouse-product-list .product-list-item-card .product-details-row {
  margin-top: 1rem;
  margin-bottom: 1rem;
  gap: 1.5rem;
}
.warehouse-product-list .product-list-item-card .detail-section {
  margin-bottom: 0.75rem;
}
.warehouse-product-list .product-list-item-card .detail-section:last-child {
  margin-bottom: 0;
}
.warehouse-product-list .product-list-item-card .detail-label {
  margin-bottom: 0.25rem;
}
.warehouse-product-list .product-list-item-card .quantity-section,
.warehouse-product-list .product-list-item-card .price-section {
  margin-top: 0.5rem;
}
.warehouse-product-list .product-list-item-card .extras-section {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
}
.roadmap-page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.roadmap-page-inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 2rem 3.2rem 3.2rem;
  box-sizing: border-box;
}
.roadmap-page-loading {
  padding: 4rem 2rem;
}
.roadmap-page-spinner {
  width: 3.2rem;
  height: 3.2rem;
  border-width: 0.3rem;
}
.roadmap-empty-state {
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.06);
  padding: 4rem 2.4rem;
}
.roadmap-empty-state-icon {
  width: 8rem;
  height: 8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  background: rgba(144, 173, 208, 0.1);
  border-radius: 50%;
}
.roadmap-empty-state-icon i {
  font-size: 3.2rem;
}
.roadmap-header-action-btn {
  font-weight: 600;
  background: #272B3B;
  color: #ffffff;
  border: none;
  border-radius: 2rem;
  padding: 0.8rem 1.6rem;
  box-shadow: 0 2px 8px rgba(39, 43, 59, 0.25);
  transition: all 0.2s ease;
}
.roadmap-header-action-btn:hover {
  background: #373d54;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(39, 43, 59, 0.3);
}
.roadmap-header-action-btn i {
  margin-right: 0.5rem;
}
.roadmap-toolbar {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  box-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.04);
  padding: 1.6rem 2rem;
  margin-bottom: 2rem;
}
.roadmap-toolbar-summary {
  gap: 0.8rem;
}
.roadmap-toolbar-switch {
  gap: 0.4rem;
  font-size: 1.3rem;
}
.roadmap-summary-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 1rem;
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 2rem;
  font-size: 1.2rem;
  color: #212529;
  transition: all 0.15s ease;
}
.roadmap-summary-pill strong {
  font-weight: 700;
  color: #272B3B;
}
.roadmap-summary-pill--muted {
  color: #6c757d;
  background: #fafafa;
}
.roadmap-summary-pill--active {
  background: rgba(144, 173, 208, 0.12);
  border-color: rgba(144, 173, 208, 0.25);
}
.roadmap-summary-pill--done {
  background: #e8f5ec;
  border-color: #b9dfc8;
}
.roadmap-summary-pill--done strong {
  color: #2d6a3e;
}
.roadmap-lane {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.2s ease;
  margin-bottom: 2rem;
}
.roadmap-lane:last-child {
  margin-bottom: 0;
}
.roadmap-lane:hover {
  box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.08);
}
.roadmap-lane--urgent {
  border-color: rgba(229, 115, 122, 0.35);
  box-shadow: 0 1px 4px rgba(229, 115, 122, 0.12);
}
.roadmap-lane--urgent .roadmap-lane-header {
  background: rgba(229, 115, 122, 0.06);
  border-bottom-color: rgba(229, 115, 122, 0.15);
}
.roadmap-lane--urgent .roadmap-lane-count {
  background: #e5737a;
}
.roadmap-lane--messages {
  border-color: rgba(144, 173, 208, 0.35);
  box-shadow: 0 1px 4px rgba(144, 173, 208, 0.12);
}
.roadmap-lane--messages .roadmap-lane-header {
  background: rgba(144, 173, 208, 0.06);
  border-bottom-color: rgba(144, 173, 208, 0.15);
}
.roadmap-lane--messages .roadmap-lane-count {
  background: #90ADD0;
}
.roadmap-lane--in-progress {
  border-color: rgba(144, 173, 208, 0.35);
}
.roadmap-lane--in-progress .roadmap-lane-count {
  background: #90ADD0;
}
.roadmap-lane--done .roadmap-lane-header {
  background: rgba(45, 106, 62, 0.05);
}
.roadmap-lane--done .roadmap-lane-count {
  background: #2d6a3e;
}
.roadmap-lane-header {
  background: #fafbfc;
  border-bottom: 1px solid #dee2e6;
  padding: 1rem 1.2rem;
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.roadmap-lane-header-icon {
  width: 2.4rem;
  height: 2.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: #fafafa;
  color: #6c757d;
}
.roadmap-lane--urgent .roadmap-lane-header-icon {
  background: rgba(229, 115, 122, 0.1);
  color: #e5737a;
}
.roadmap-lane--messages .roadmap-lane-header-icon {
  background: rgba(144, 173, 208, 0.15);
  color: #90ADD0;
}
.roadmap-lane--in-progress .roadmap-lane-header-icon {
  background: rgba(144, 173, 208, 0.15);
  color: #90ADD0;
}
.roadmap-lane--done .roadmap-lane-header-icon {
  background: rgba(45, 106, 62, 0.12);
  color: #2d6a3e;
}
.roadmap-lane-title {
  font-size: 1.2rem;
  font-weight: 600;
  color: #212529;
  flex: 1;
}
.roadmap-lane-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.6rem;
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
  background: #6c757d;
  border-radius: 2rem;
}
.roadmap-lane-body {
  min-height: 6rem;
}
.roadmap-lane-body .list-container {
  margin: 0;
  border: none;
}
.roadmap-lane-empty {
  text-align: center;
  padding: 2rem 1.5rem;
  background: #fafbfc;
}
.roadmap-lane-empty-icon {
  display: block;
  margin: 0 auto 0.8rem;
  opacity: 0.4;
  font-size: 2.4rem;
}
.roadmap-list.list-container {
  width: 100%;
  max-width: none;
}
.roadmap-list.list-container table {
  width: 100%;
  table-layout: fixed;
}
.roadmap-list.list-container thead tr th {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #6c757d;
  background: #fafbfc;
  border-bottom: 1px solid #dee2e6;
  padding: 1rem 1.2rem;
  vertical-align: middle;
}
.roadmap-list.list-container tbody .list-row td {
  padding: 1.2rem 1.2rem;
  vertical-align: middle;
  font-size: 1.4rem;
  line-height: 1.4;
}
.roadmap-list.list-container th.roadmap-col--priority {
  width: 12%;
  min-width: 10rem;
}
.roadmap-list.list-container th.roadmap-col--due {
  width: 11%;
  min-width: 10rem;
}
.roadmap-list.list-container th.roadmap-col--title {
  width: auto;
}
.roadmap-list.list-container th.roadmap-col--owner {
  width: 18%;
  min-width: 14rem;
}
.roadmap-list.list-container td.roadmap-td--title,
.roadmap-list.list-container td.roadmap-td--owner {
  overflow: hidden;
  vertical-align: middle;
}
.roadmap-list.list-container .roadmap-title-cell,
.roadmap-list.list-container .roadmap-owner-cell {
  min-width: 0;
  max-width: 100%;
  gap: 0.8rem;
}
.roadmap-list .list-row {
  cursor: pointer;
  transition: background-color 0.15s ease;
  border-bottom: 1px solid #eee;
}
.roadmap-list .list-row:hover {
  background: rgba(144, 173, 208, 0.04) !important;
}
.roadmap-list .list-row:last-child {
  border-bottom: none;
}
.roadmap-table--muted tbody .list-row {
  background: #fafbfc;
}
.roadmap-table--muted tbody .list-row:hover {
  background: #fafafa !important;
}
.roadmap-priority-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 2rem;
  font-size: 1.3rem;
  font-weight: 500;
  color: #6c757d;
  cursor: pointer;
  transition: all 0.15s ease;
}
.roadmap-priority-btn:hover {
  border-color: #6c757d;
}
.roadmap-priority-btn--active {
  font-weight: 600;
}
.roadmap-priority-btn--urgent.roadmap-priority-btn--active {
  background: rgba(229, 115, 122, 0.1);
  border-color: rgba(229, 115, 122, 0.3);
  color: #e5737a;
}
.roadmap-priority-btn--high.roadmap-priority-btn--active {
  background: rgba(245, 166, 35, 0.12);
  border-color: rgba(245, 166, 35, 0.35);
  color: #aa6d08;
}
.roadmap-priority-btn--mid.roadmap-priority-btn--active {
  background: rgba(144, 173, 208, 0.12);
  border-color: rgba(144, 173, 208, 0.35);
  color: #5a85b9;
}
.roadmap-priority-btn--low.roadmap-priority-btn--active {
  background: #fafafa;
  border-color: #dee2e6;
  color: #6c757d;
}
.roadmap-priority-dot {
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: #6c757d;
}
.roadmap-priority-dot--urgent {
  background: #e5737a;
}
.roadmap-priority-dot--high {
  background: #f5a623;
}
.roadmap-priority-dot--mid {
  background: #90ADD0;
}
.roadmap-priority-dot--low {
  background: #6c757d;
}
.roadmap-priority-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0.6rem;
  border-radius: 2rem;
  font-size: 1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.roadmap-priority-badge::before {
  content: '';
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
}
.roadmap-priority-badge--urgent {
  background: rgba(229, 115, 122, 0.1);
  color: #e5737a;
}
.roadmap-priority-badge--urgent::before {
  background: #e5737a;
}
.roadmap-priority-badge--high {
  background: rgba(245, 166, 35, 0.15);
  color: #925d07;
}
.roadmap-priority-badge--high::before {
  background: #f5a623;
}
.roadmap-priority-badge--mid {
  background: rgba(144, 173, 208, 0.12);
  color: #4a78b0;
}
.roadmap-priority-badge--mid::before {
  background: #90ADD0;
}
.roadmap-priority-badge--low {
  background: #fafafa;
  color: #6c757d;
}
.roadmap-priority-badge--low::before {
  background: #6c757d;
}
.roadmap-owner-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: #90ADD0;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  flex-shrink: 0;
}
.roadmap-owner-avatar--dexm {
  background: #272B3B;
}
.roadmap-owner-avatar--client {
  background: #0d6efd;
}
.roadmap-owner-avatar--sm {
  width: 2rem;
  height: 2rem;
  font-size: 0.9rem;
}
.roadmap-owner-avatar--lg {
  width: 3.2rem;
  height: 3.2rem;
  font-size: 1.2rem;
}
.roadmap-owner-name {
  font-size: 1.3rem;
  color: #212529;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  max-width: 100%;
}
.roadmap-status-stepper {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.roadmap-status-step {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1rem;
  border-radius: 2rem;
  border: 1px solid #dee2e6;
  background: #ffffff;
  font-size: 1.3rem;
  font-weight: 500;
  color: #6c757d;
  cursor: pointer;
  transition: all 0.15s ease;
}
.roadmap-status-step:hover {
  border-color: #6c757d;
}
.roadmap-status-step--active {
  background: #90ADD0;
  border-color: #90ADD0;
  color: #ffffff;
  font-weight: 600;
}
.roadmap-status-step--complete {
  background: #2d6a3e;
  border-color: #2d6a3e;
  color: #ffffff;
  font-weight: 600;
}
.roadmap-status-step i {
  font-size: 1rem;
}
.roadmap-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.6rem;
  border-radius: 2rem;
  font-size: 1rem;
  font-weight: 600;
}
.roadmap-status-badge--complete {
  background: rgba(45, 106, 62, 0.12);
  color: #2d6a3e;
}
.roadmap-status-badge--archived {
  background: #fafafa;
  color: #6c757d;
}
.roadmap-status-badge i {
  font-size: 0.9rem;
}
.roadmap-item-title {
  display: block;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.roadmap-due-date {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 1.3rem;
}
.roadmap-due-date--overdue {
  color: #e5737a;
  font-weight: 600;
}
.roadmap-due-date--soon {
  color: #c37d09;
}
.roadmap-due-date--normal {
  color: #6c757d;
}
.roadmap-detail-modal.modal {
  z-index: 2000;
}
.roadmap-detail-modal.modal + .modal-backdrop {
  z-index: 1990;
}
.roadmap-detail-modal .modal-content {
  border: none;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.roadmap-detail-modal .modal-header {
  padding: 1.5rem 1.5rem 0.5rem;
}
.roadmap-detail-modal .modal-body {
  padding: 1rem 1.5rem 1.5rem;
}
.roadmap-detail-modal .modal-footer {
  padding: 1rem 1.5rem 1.5rem;
}
.roadmap-modal-section {
  background: #fafbfc;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  padding: 1.2rem;
}
.roadmap-modal-section-heading {
  font-size: 1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #6c757d;
  margin-bottom: 0.8rem;
}
.roadmap-modal-header-title.editable-title {
  cursor: pointer;
  width: 100%;
  padding: 0.4rem;
  margin: -0.4rem;
  border-radius: 6px;
  transition: background-color 0.15s ease;
}
.roadmap-modal-header-title.editable-title:hover {
  background: rgba(144, 173, 208, 0.08);
}
.roadmap-modal-header-title.editable-title:hover span:first-child {
  text-decoration: none;
}
.roadmap-modal-header-title.editable-title .text-muted {
  opacity: 0;
  transition: opacity 0.15s ease;
}
.roadmap-modal-header-title.editable-title:hover .text-muted {
  opacity: 1;
}
.min-h-desc {
  min-height: 6rem;
  cursor: text;
  background: #ffffff;
  transition: all 0.15s ease;
}
.min-h-desc:hover {
  border-color: #90ADD0 !important;
  background: rgba(144, 173, 208, 0.03);
}
.roadmap-comments-panel {
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  max-height: 400px;
  overflow-y: auto;
}
.roadmap-detail-modal .form-select,
.roadmap-detail-modal .form-control {
  border-radius: 6px;
  border-color: #dee2e6;
}
.roadmap-detail-modal .form-select:focus,
.roadmap-detail-modal .form-control:focus {
  border-color: #90ADD0;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.15);
}
.roadmap-detail-modal .form-label {
  font-size: 1.3rem;
  font-weight: 500;
  color: #6c757d;
  margin-bottom: 0.4rem;
}
.roadmap-detail-modal .form-check-input:checked {
  background-color: #90ADD0;
  border-color: #90ADD0;
}
.roadmap-block {
  background: #ffffff;
  border: 1px solid transparent;
  border-radius: 6px;
  transition: all 0.15s ease;
}
.roadmap-block:hover {
  background-color: #fafbfc;
  border-color: #dee2e6;
}
.roadmap-block:hover .roadmap-block-actions {
  opacity: 1;
}
.roadmap-block--editing {
  background: #ffffff;
  border-color: #90ADD0;
  box-shadow: 0 0 0 3px rgba(144, 173, 208, 0.15);
}
.roadmap-block-actions {
  opacity: 0;
  transition: opacity 0.15s ease;
  display: flex;
  gap: 0.2rem;
}
.roadmap-block-actions .btn {
  opacity: 0.6;
}
.roadmap-block-actions .btn:hover {
  opacity: 1;
}
.roadmap-block-editable {
  cursor: text;
  padding: 0.4rem;
  margin: -0.4rem;
  border-radius: 6px;
  min-height: 2rem;
  transition: background-color 0.15s ease;
}
.roadmap-block-editable:hover {
  background: rgba(144, 173, 208, 0.06);
}
.roadmap-block-editable:empty::before,
.roadmap-block-editable:has(> :only-child:empty)::before {
  content: attr(data-placeholder);
  color: #6c757d;
}
.roadmap-block-content.text-pre-wrap {
  white-space: pre-wrap;
}
.roadmap-todo-block {
  padding: 0.4rem 0;
}
.roadmap-todo-item {
  padding: 0.4rem;
  margin: -0.4rem 0;
  border-radius: 6px;
  transition: background-color 0.15s ease;
}
.roadmap-todo-item:hover {
  background: rgba(144, 173, 208, 0.04);
}
.roadmap-todo-item:hover .roadmap-todo-delete {
  opacity: 1;
}
.roadmap-todo-text {
  cursor: text;
  padding: 0.2rem 0.4rem;
  border-radius: 6px;
  flex: 1;
  min-width: 0;
  word-break: break-word;
}
.roadmap-todo-text:hover {
  background: rgba(144, 173, 208, 0.08);
}
.roadmap-todo-delete {
  opacity: 0;
  transition: opacity 0.15s ease;
  font-size: 1rem;
}
.roadmap-image-block {
  min-height: 100px;
}
.roadmap-image-upload-placeholder {
  min-height: 120px;
  background: #fafbfc;
  border: 2px dashed #dee2e6;
  border-radius: 8px;
  transition: all 0.2s ease;
  cursor: pointer;
}
.roadmap-image-upload-placeholder:hover {
  border-color: #90ADD0;
  background: rgba(144, 173, 208, 0.05);
}
.roadmap-image-upload-placeholder i {
  transition: transform 0.2s ease;
}
.roadmap-image-upload-placeholder:hover i {
  transform: translateY(-2px);
}
.roadmap-image-container img {
  display: block;
  border-radius: 8px;
}
.roadmap-image-container img.roadmap-image-thumb {
  cursor: zoom-in;
}
.roadmap-image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 2100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  box-sizing: border-box;
  background: rgba(0, 0, 0, 0.92);
  outline: none;
}
.roadmap-image-lightbox-img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 6px;
  cursor: default;
}
.roadmap-image-lightbox-close {
  position: fixed;
  top: 1.6rem;
  right: 1.6rem;
  z-index: 1;
  opacity: 0.9;
}
.roadmap-image-lightbox-close:hover {
  opacity: 1;
}
.roadmap-image-lightbox-download {
  position: fixed;
  bottom: 1.6rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}
.roadmap-image-overlay {
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.5));
  border-radius: 0 0 8px 8px;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.roadmap-image-container:hover .roadmap-image-overlay {
  opacity: 1;
}
.roadmap-add-block-accordion .accordion-button {
  padding: 0.8rem 1rem;
  font-size: 1.3rem;
  font-weight: 500;
  background: #fafbfc;
  border-radius: 6px;
}
.roadmap-add-block-accordion .accordion-button:not(.collapsed) {
  background: #ffffff;
  box-shadow: none;
}
.roadmap-add-block-accordion .accordion-button:focus {
  box-shadow: none;
  border-color: #90ADD0;
}
.roadmap-add-block-accordion .accordion-body {
  padding: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.roadmap-add-block-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1rem;
  background: #ffffff;
  border: 1px solid #dee2e6;
  border-radius: 2rem;
  font-size: 1.3rem;
  font-weight: 500;
  color: #212529;
  transition: all 0.15s ease;
}
.roadmap-add-block-btn:hover {
  background: #90ADD0;
  border-color: #90ADD0;
  color: #ffffff;
}
.roadmap-add-block-btn i {
  font-size: 1rem;
  opacity: 0.7;
}
.roadmap-add-block-btn:hover i {
  opacity: 1;
}
.roadmap-client-attention-alert {
  background: rgba(245, 166, 35, 0.18);
  border: 1px solid rgba(245, 166, 35, 0.45);
  color: #835406;
  border-radius: 6px;
}
.roadmap-attention-badge {
  background: #f5a623;
  color: #613e04;
  font-weight: 600;
  font-size: 1rem;
  padding: 0.25em 0.55em;
  vertical-align: middle;
  border-radius: 0.4rem;
}
.roadmap-row--needs-client-attention {
  box-shadow: inset 0.35rem 0 0 0 #f5a623;
  background: rgba(245, 166, 35, 0.06);
}
.roadmap-comment--dexm-attention {
  border: 1px solid rgba(245, 166, 35, 0.55) !important;
  border-radius: 6px;
  padding: 0.75rem 0.85rem !important;
  background: rgba(245, 166, 35, 0.1);
}
.roadmap-awaiting-client-badge {
  background: rgba(245, 166, 35, 0.22);
  color: #704805;
  border: 1px solid rgba(245, 166, 35, 0.5);
  font-weight: 600;
  font-size: 1rem;
  padding: 0.25em 0.55em;
  vertical-align: middle;
  border-radius: 0.4rem;
}
.roadmap-row--awaiting-client {
  box-shadow: inset 0.35rem 0 0 0 rgba(245, 166, 35, 0.85);
  background: rgba(245, 166, 35, 0.05);
}
.roadmap-dexm-attention-alert {
  background: rgba(144, 173, 208, 0.12);
  border: 1px solid rgba(144, 173, 208, 0.38);
  color: #507db5;
  border-radius: 6px;
}
.roadmap-client-message-badge {
  background: #90ADD0;
  color: #fff;
  font-weight: 600;
  font-size: 1rem;
  padding: 0.25em 0.55em;
  vertical-align: middle;
  border-radius: 0.4rem;
}
.roadmap-row--needs-dexm-attention {
  box-shadow: inset 0.35rem 0 0 0 #90ADD0;
  background: rgba(144, 173, 208, 0.06);
}
.roadmap-comment--client-attention {
  border: 1px solid rgba(144, 173, 208, 0.45) !important;
  border-radius: 6px;
  padding: 0.75rem 0.85rem !important;
  background: rgba(144, 173, 208, 0.08);
}
