:root {
    --brand-primary: #1e3a5f;
    --brand-secondary: #2d5a87;
    --brand-accent: #e67e22;
    --brand-success: #27ae60;
    --brand-warning: #f39c12;
    --brand-danger: #c0392b;
    --surface: #f4f6f8;
    --border: #dee2e6;
    --sidebar-width: 220px;
    --dropdown-radius: 12px;
    --dropdown-shadow: 0 12px 32px rgba(30, 58, 95, 0.14);
}

body {
    background-color: var(--surface);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* Frontend */
.site-navbar {
    background-color: var(--brand-primary) !important;
    z-index: 1030;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
}

.frontend-body {
    scroll-padding-top: 4.5rem;
}

.site-navbar .nav-link,
.site-navbar .navbar-brand {
    color: #fff !important;
}

.site-navbar .navbar-nav > .nav-item > .nav-link {
    position: relative;
    font-weight: 500;
    padding-bottom: 0.45rem;
    border-bottom: 2px solid transparent;
    transition: color 0.18s ease, border-color 0.18s ease;
}

.site-navbar .navbar-nav > .nav-item > .nav-link:hover,
.site-navbar .navbar-nav > .nav-item > .nav-link:focus {
    color: #fff !important;
    border-bottom-color: rgba(230, 126, 34, 0.55);
}

.site-navbar .navbar-nav > .nav-item > .nav-link.active {
    color: #fff !important;
    font-weight: 700;
    border-bottom-color: var(--brand-accent);
}

.sitettrack-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    text-decoration: none !important;
    line-height: 1;
}

.sitettrack-brand__mark {
    display: block;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}

.sitettrack-brand__text {
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1;
}

.sitettrack-brand__site {
    color: #fff;
}

.sitettrack-brand__track {
    color: var(--brand-accent);
}

.site-navbar .navbar-brand.sitettrack-brand {
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
    margin-right: 1rem;
}

.sidebar-brand.sitettrack-brand,
.sidebar-brand--offcanvas.sitettrack-brand {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.9rem 1rem;
    text-decoration: none;
    color: inherit;
}

.sidebar-brand.sitettrack-brand .sitettrack-brand__mark,
.sidebar-brand--offcanvas.sitettrack-brand .sitettrack-brand__mark {
    width: 30px;
    height: 30px;
}

.sidebar-brand.sitettrack-brand .sitettrack-brand__text,
.sidebar-brand--offcanvas.sitettrack-brand .sitettrack-brand__text {
    font-size: 1rem;
}

.public-training-quiz__logo-img {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #1e3a5f;
    padding: 0.2rem;
    flex-shrink: 0;
}

.public-training-quiz__brand-name {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1.1;
}

.site-navbar .site-navbar-login {
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 8px;
    padding: 0.35rem 0.85rem !important;
    font-weight: 600;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}

.site-navbar .site-navbar-login:hover,
.site-navbar .site-navbar-login:focus {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.65);
}

.site-navbar .site-navbar-register {
    min-height: 44px;
    padding: 0.35rem 0.85rem !important;
    border-radius: 8px;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.2;
}

.site-navbar.navbar-dark .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.55);
}

.site-navbar.navbar-dark .navbar-toggler-icon {
    filter: none;
}

.site-navbar-offcanvas {
    background-color: var(--brand-primary);
    color: #fff;
    width: min(100vw - 2rem, 320px);
    z-index: 1075;
}

.site-navbar-offcanvas .offcanvas-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.site-navbar-offcanvas .offcanvas-title {
    color: #fff;
    font-weight: 700;
}

.site-navbar-offcanvas .nav-link {
    color: #fff !important;
    padding: 0.65rem 0;
    font-size: 1rem;
    border-bottom: 2px solid transparent;
}

.site-navbar-offcanvas .nav-link.active,
.site-navbar-offcanvas .nav-link.fw-semibold {
    color: #fff !important;
    font-weight: 700;
    border-bottom-color: var(--brand-accent);
}

.site-navbar-offcanvas .app-dropdown--navbar {
    width: 100%;
}

.site-navbar-offcanvas .app-dropdown--navbar .app-dropdown__toggle {
    width: 100%;
    justify-content: space-between;
    margin-top: 0.25rem;
    color: #fff !important;
}

.site-navbar-offcanvas .app-dropdown__menu {
    position: static !important;
    transform: none !important;
    width: 100%;
    margin-top: 0.35rem !important;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(0, 0, 0, 0.15);
    box-shadow: none;
}

.site-navbar-offcanvas .app-dropdown__header {
    color: rgba(255, 255, 255, 0.55);
}

.site-navbar-offcanvas .app-dropdown__item {
    color: #fff;
}

.site-navbar-offcanvas .app-dropdown__item:hover,
.site-navbar-offcanvas .app-dropdown__item:focus {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.site-navbar-offcanvas .app-dropdown__item.is-active {
    background: rgba(230, 126, 34, 0.28);
    color: #fff;
}

.site-navbar-offcanvas .app-dropdown__item-code {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

.site-navbar-offcanvas .app-dropdown__item.is-active .app-dropdown__item-code {
    background: rgba(230, 126, 34, 0.45);
    color: #fff;
}

.site-navbar-offcanvas-actions {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.site-navbar-offcanvas-actions__row {
    display: flex;
    align-items: stretch;
    gap: 0.45rem;
    width: 100%;
}

.site-navbar-offcanvas-actions__lang {
    position: relative;
    flex: 0 0 auto;
}

.site-navbar-offcanvas-actions .app-dropdown--navbar-compact {
    width: auto;
}

.site-navbar-offcanvas-actions .app-dropdown--navbar-compact .app-dropdown__toggle {
    width: auto;
    min-width: 0;
    min-height: 38px;
    padding: 0.35rem 0.55rem !important;
    margin-top: 0;
    justify-content: center;
    gap: 0.25rem;
    font-size: 0.82rem;
}

.site-navbar-offcanvas-actions .app-dropdown--navbar-compact .app-dropdown__toggle-icon {
    font-size: 0.85rem;
}

.site-navbar-offcanvas-actions .app-dropdown--navbar-compact .app-dropdown__toggle-label {
    max-width: none;
}

.site-navbar-offcanvas-actions .site-navbar-offcanvas-actions__lang-menu {
    position: absolute !important;
    transform: none !important;
    top: calc(100% + 0.35rem);
    left: 0;
    width: 12.5rem;
    margin-top: 0 !important;
    z-index: 2;
}

.site-navbar-offcanvas-actions__login {
    flex: 1 1 0;
    min-width: 0;
    min-height: 38px;
    padding: 0.4rem 0.55rem;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    color: #fff;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.site-navbar-offcanvas-actions__login:hover,
.site-navbar-offcanvas-actions__login:focus {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.65);
}

.site-navbar-offcanvas-actions__register {
    flex: 1 1 0;
    min-width: 0;
    min-height: 38px;
    padding: 0.4rem 0.55rem;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.site-navbar-offcanvas .app-dropdown--navbar-profile .app-dropdown__toggle--profile {
    max-width: none;
    color: #fff !important;
}

.site-navbar-offcanvas .app-dropdown__menu--profile {
    background: #fff;
    border-color: var(--border);
    box-shadow: var(--dropdown-shadow);
}

.site-navbar-offcanvas .app-dropdown__menu--profile .app-dropdown__item {
    color: var(--brand-primary);
}

.site-navbar-offcanvas .app-dropdown__menu--profile .app-dropdown__item:hover,
.site-navbar-offcanvas .app-dropdown__menu--profile .app-dropdown__item:focus {
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
}

.site-navbar-offcanvas .app-dropdown__menu--profile .app-dropdown__header {
    color: #64748b;
}

.btn-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--brand-accent);
    border-color: var(--brand-accent);
    color: #fff;
    min-height: unset;
    line-height: 1.25;
    padding: 0.45rem 0.9rem;
    font-size: 0.875rem;
}

.site-navbar .nav-item .btn-brand {
    margin-top: 0;
    align-self: center;
}

.btn-brand:hover {
    background-color: #d35400;
    border-color: #d35400;
    color: #fff;
}

.btn-outline-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-color: var(--brand-primary);
    color: var(--brand-primary);
    min-height: unset;
    line-height: 1.25;
    padding: 0.45rem 0.9rem;
    font-size: 0.875rem;
}

.auth-card {
    border: none;
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(30, 58, 95, 0.1);
    overflow: hidden;
}

.auth-page {
    background: linear-gradient(180deg, #f4f7fb 0%, #eef2f7 100%);
}

.auth-card__header {
    padding: 2rem 2rem 1.35rem;
    text-align: center;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
}

.auth-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1rem;
    border-radius: 14px;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 1.35rem;
}

.auth-card__title {
    color: var(--brand-primary);
    font-weight: 700;
}

.auth-card__subtitle {
    color: #64748b;
    font-size: 0.9375rem;
    line-height: 1.5;
    max-width: 26rem;
    margin-inline: auto;
}

.auth-card__body {
    padding: 1.75rem 2rem 2rem;
}

.auth-field {
    margin-bottom: 1rem;
}

.auth-field__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.auth-field .form-control {
    min-height: 44px;
    padding: 0.65rem 0.85rem;
    border: 1px solid #dce3ec;
    border-radius: 10px;
    font-size: 0.9375rem;
}

.auth-field .form-control:focus {
    border-color: var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.15);
}

.auth-field__hint {
    margin-top: 0.35rem;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: #64748b;
}

.auth-consent {
    margin-bottom: 1.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid #e4eaf2;
    border-radius: 12px;
    background: #f6f8fb;
}

.auth-consent__heading {
    margin-bottom: 0.75rem;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--brand-primary);
}

.auth-consent__check {
    margin-bottom: 0.65rem;
}

.auth-consent__check .form-check-label {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: #475569;
}

.auth-consent__check .form-check-input:checked {
    background-color: var(--brand-accent);
    border-color: var(--brand-accent);
}

.auth-card__submit {
    min-height: 48px;
    border-radius: 10px;
    font-weight: 600;
}

.auth-card__footer {
    margin-top: 1.25rem;
    font-size: 0.875rem;
    color: #64748b;
}

.auth-card__footer a {
    font-weight: 600;
    text-decoration: none;
}

.auth-card .google-btn {
    margin-bottom: 0;
    min-height: 48px;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.06);
}

@media (max-width: 575.98px) {
    .auth-card__header {
        padding: 1.5rem 1.25rem 1rem;
    }

    .auth-card__body {
        padding: 1.35rem 1.25rem 1.5rem;
    }

    .auth-consent {
        padding: 0.85rem 0.95rem;
    }
}

.auth-card .form-control::placeholder {
    color: #6c757d;
    opacity: 1;
}

.auth-divider {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: #6c757d;
    font-size: 0.875rem;
}

.auth-divider::before,
.auth-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--border);
}

.demo-login-btn {
    font-size: 0.75rem;
    padding: 0.45rem 0.5rem;
    min-height: 38px;
    line-height: 1.2;
    border-radius: 8px;
}

.auth-demo-accordion {
    --bs-accordion-border-color: #e4eaf2;
    --bs-accordion-btn-bg: #f6f8fb;
    --bs-accordion-active-bg: #f6f8fb;
    --bs-accordion-btn-focus-box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.15);
}

.auth-demo-accordion .accordion-item {
    overflow: hidden;
    border: 1px solid #e4eaf2;
    border-radius: 12px !important;
}

.auth-demo-accordion .accordion-button {
    padding: 0.85rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--brand-primary);
    border-radius: 12px;
}

.auth-demo-accordion .accordion-button:not(.collapsed) {
    color: var(--brand-primary);
    box-shadow: none;
}

.auth-demo-accordion .accordion-button::after {
    background-size: 1rem;
}

.auth-demo-accordion .accordion-body {
    padding: 0 1rem 1rem;
}

.auth-card .btn-outline-brand.auth-card__submit {
    min-height: 48px;
    border-radius: 10px;
    font-weight: 600;
}

.contact-page {
    margin-top: 0;
}

.contact-info {
    position: sticky;
    top: 5.5rem;
}

.contact-info__intro {
    margin-bottom: 1.25rem;
}

.contact-info__title {
    color: var(--brand-primary);
    font-weight: 700;
}

.contact-info__subtitle {
    color: #64748b;
    font-size: 0.9375rem;
    line-height: 1.5;
}

.contact-info__list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.contact-info__item {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.05rem;
    border: 1px solid #e4eaf2;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.contact-info__item:hover,
.contact-info__item:focus {
    color: inherit;
    border-color: rgba(52, 152, 219, 0.45);
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.1);
    transform: translateY(-1px);
}

.contact-info__item--static {
    cursor: default;
}

.contact-info__item--static:hover,
.contact-info__item--static:focus {
    transform: none;
    border-color: #e4eaf2;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
}

.contact-info__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 10px;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 1rem;
}

.contact-info__content {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.contact-info__label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #64748b;
}

.contact-info__value {
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.45;
    color: var(--brand-primary);
    word-break: break-word;
}

.contact-info__note {
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    background: rgba(52, 152, 219, 0.08);
    color: var(--brand-primary);
    font-size: 0.875rem;
    line-height: 1.45;
}

.auth-card__header--compact {
    padding: 1.75rem 2rem 1.25rem;
}

.auth-card__icon--contact {
    width: 3rem;
    height: 3rem;
    margin-bottom: 0.85rem;
    font-size: 1.15rem;
}

.contact-form__message {
    min-height: 140px;
    resize: vertical;
}

@media (max-width: 991.98px) {
    .contact-info {
        position: static;
    }
}

/* Site footer */
.site-footer {
    background-color: var(--brand-primary);
    color: rgba(255, 255, 255, 0.85);
    margin-top: auto;
}

.site-footer-brand {
    color: #fff;
    font-weight: 700;
    font-size: 1.25rem;
    text-decoration: none !important;
}

.site-footer-brand.sitettrack-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.site-footer-brand .sitettrack-brand__mark {
    width: 34px;
    height: 34px;
}

.site-footer-brand .sitettrack-brand__text {
    font-size: 1.2rem;
}

.site-footer-brand:hover .sitettrack-brand__site {
    color: #fff;
}

.site-footer-brand:hover .sitettrack-brand__track {
    color: #f39c12;
}

.site-footer-tagline {
    color: rgba(255, 255, 255, 0.65);
    max-width: 280px;
    font-size: 1rem;
    line-height: 1.5;
}

.site-footer-heading {
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.5rem;
}

.site-footer-links li + li {
    margin-top: 0;
}

.site-footer-links a {
    display: block;
    color: rgba(255, 255, 255, 0.75);
    text-decoration: none;
    padding: 0.15rem 0;
    line-height: 1.35;
    font-size: 0.875rem;
}

.site-footer-links a:hover {
    color: var(--brand-accent);
}

.site-footer-contact li + li {
    margin-top: 0.4rem;
}

.site-footer-contact a,
.site-footer-contact__static {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    color: rgba(255, 255, 255, 0.75);
    text-decoration: none;
    font-size: 0.9rem;
    line-height: 1.45;
}

.site-footer-contact a:hover {
    color: var(--brand-accent);
}

.site-footer-contact__icon {
    flex: 0 0 1rem;
    width: 1rem;
    color: var(--brand-accent);
    text-align: center;
}

.site-footer-contact__value {
    display: block;
    word-break: break-word;
}

.site-footer-divider {
    border-color: rgba(255, 255, 255, 0.15);
    opacity: 1;
}

.site-footer-copy {
    color: rgba(255, 255, 255, 0.55);
}

.site-footer-locale {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.site-footer-locale-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0 0.75rem;
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.75);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.site-footer-locale-link:hover,
.site-footer-locale-link.active {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    border-color: var(--brand-accent);
}

.frontend-body main > section:last-child {
    margin-bottom: 0;
}

.google-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
    min-height: 48px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    color: #333;
    font-weight: 500;
    text-decoration: none;
}

.google-btn:hover {
    background: #f8f9fa;
    color: #333;
}

.google-btn img {
    width: 20px;
    height: 20px;
}

.google-btn.disabled,
.google-btn[aria-disabled='true'] {
    opacity: 0.55;
    pointer-events: none;
    cursor: not-allowed;
}

/* OTP */
.otp-inputs {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
}

.otp-digit {
    width: 48px;
    height: 56px;
    font-size: 1.5rem;
    text-align: center;
    border: 2px solid var(--border);
    border-radius: 8px;
}

.otp-digit:focus {
    border-color: var(--brand-accent);
    outline: none;
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.25);
}

/* Dashboard layout */
.dashboard-wrapper {
    min-height: 100vh;
}

.dashboard-sidebar {
    background: var(--brand-primary);
    width: var(--sidebar-width);
    height: 100vh;
    height: 100dvh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1040;
    padding: 1rem 0 0;
    display: none;
    flex-direction: column;
    overflow: hidden;
}

.dashboard-sidebar > .sidebar-brand {
    flex-shrink: 0;
}

.dashboard-sidebar__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
    display: flex;
    flex-direction: column;
}

.dashboard-sidebar__body .sidebar-nav {
    flex: 0 0 auto;
}

.dashboard-sidebar__promo {
    margin-top: auto;
    padding: 0.5rem 0.75rem 0.85rem;
    flex-shrink: 0;
}

.chat-engineer-promo {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}

.chat-engineer-promo__title {
    line-height: 1.25;
}

.chat-engineer-promo--sidebar {
    width: 100%;
    margin: 0;
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
    background: transparent;
    border: 0;
    box-shadow: none;
    color: rgba(255, 255, 255, 0.85);
}

.chat-engineer-promo--sidebar:hover,
.chat-engineer-promo--sidebar:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    transform: none;
    box-shadow: none;
    outline: none;
}

.chat-engineer-promo--sidebar i {
    width: 1.25rem;
    text-align: center;
    opacity: 0.9;
}

.chat-engineer-promo--modal {
    width: 100%;
    padding: 0.75rem 0.9rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.06);
    border: 1px solid rgba(30, 58, 95, 0.12);
    color: var(--brand-primary);
    font-weight: 700;
}

.chat-engineer-promo--modal:hover,
.chat-engineer-promo--modal:focus-visible {
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.1);
    border-color: rgba(30, 58, 95, 0.18);
    transform: none;
    box-shadow: none;
    outline: none;
}

.chat-engineer-promo--modal i {
    color: var(--brand-accent);
}

.todo-to-backlog-modal__engineer {
    flex: 1 1 12rem;
    min-width: 10rem;
    max-width: 16rem;
}

.support-modal-engineer .chat-engineer-promo {
    width: 100%;
}

.dashboard-sidebar__body::-webkit-scrollbar {
    width: 6px;
}

.dashboard-sidebar__body::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.28);
    border-radius: 999px;
}

@media (min-width: 992px) {
    .dashboard-sidebar {
        display: flex !important;
    }
    .dashboard-main {
        margin-left: var(--sidebar-width);
    }
}

#sidebarOffcanvas .dashboard-sidebar__body {
    max-height: calc(100dvh - 3.5rem);
}

.sidebar-brand {
    color: #fff;
    font-weight: 700;
    font-size: 1.05rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 0.5rem;
}

.sidebar-brand.sitettrack-brand {
    text-decoration: none !important;
}

.sidebar-nav .nav-link {
    color: rgba(255, 255, 255, 0.85);
    padding: 0.7rem 1rem;
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    border-left: 3px solid transparent;
    font-size: 0.9375rem;
}

.sidebar-nav .nav-link:hover,
.sidebar-nav .nav-link.active {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
}

.sidebar-nav .nav-link.active {
    border-left-color: var(--brand-accent);
}

.sidebar-nav__section-divider {
    margin: 0.65rem 1rem 0.35rem;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.sidebar-nav__button {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.sidebar-nav-group {
    display: flex;
    flex-direction: column;
}

.sidebar-nav-group__toggle {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.sidebar-nav-group__toggle .sidebar-nav-group__label {
    flex: 1 1 auto;
    min-width: 0;
}

.sidebar-nav-group__chevron {
    margin-left: auto;
    font-size: 0.72rem;
    opacity: 0.75;
    transition: transform 0.2s ease;
}

.sidebar-nav-group.is-open > .sidebar-nav-group__toggle .sidebar-nav-group__chevron {
    transform: rotate(180deg);
}

.sidebar-nav-group__toggle.is-active {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    border-left-color: var(--brand-accent);
}

.sidebar-nav-group__submenu {
    display: flex;
    flex-direction: column;
    padding: 0.15rem 0 0.35rem;
}

.sidebar-nav-group__submenu[hidden] {
    display: none;
}

.sidebar-nav .nav-link.sidebar-nav-group__link {
    padding-left: 2.35rem;
    min-height: 40px;
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.78);
}

.sidebar-nav .nav-link.sidebar-nav-group__link:hover,
.sidebar-nav .nav-link.sidebar-nav-group__link.active {
    color: #fff;
}

.support-star-rating {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.support-star-rating__star {
    border: 0;
    background: transparent;
    color: #cbd5e1;
    padding: 0.15rem;
    line-height: 1;
    font-size: 1.35rem;
    transition: color 0.15s ease, transform 0.15s ease;
}

.support-star-rating__star:hover,
.support-star-rating__star.is-active {
    color: var(--brand-accent);
    transform: translateY(-1px);
}

.support-star-rating--readonly .fa-solid {
    color: var(--brand-accent);
}

.support-star-rating--readonly .fa-regular {
    color: #cbd5e1;
}

.support-topic-picker__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.support-topic-picker__quest {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #9a3412;
    background: #ffedd5;
}

.support-topic-picker {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.support-topic-picker.is-invalid {
    outline: 2px solid rgba(220, 38, 38, 0.35);
    outline-offset: 4px;
    border-radius: 16px;
}

.support-topic-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    min-height: 8.5rem;
    padding: 1rem 0.95rem 0.9rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 16px;
    background: linear-gradient(165deg, #fff 0%, #f8fafc 100%);
    text-align: left;
    color: inherit;
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.04);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.support-topic-card:hover {
    transform: translateY(-2px);
    border-color: rgba(30, 58, 95, 0.22);
    box-shadow: 0 10px 22px rgba(30, 58, 95, 0.08);
}

.support-topic-card:focus-visible {
    outline: 2px solid rgba(230, 126, 34, 0.55);
    outline-offset: 2px;
}

.support-topic-card__xp {
    position: absolute;
    top: 0.7rem;
    right: 0.7rem;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    color: #475569;
    background: rgba(148, 163, 184, 0.18);
}

.support-topic-card__check {
    position: absolute;
    top: 0.7rem;
    left: 0.7rem;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--brand-accent);
    color: #fff;
    font-size: 0.7rem;
    opacity: 0;
    transform: scale(0.7);
    transition: opacity 0.16s ease, transform 0.16s ease;
}

.support-topic-card__icon {
    width: 2.55rem;
    height: 2.55rem;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.15rem;
    font-size: 1.05rem;
    background: #eef2f7;
    color: var(--brand-primary);
}

.support-topic-card__title {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1.2;
}

.support-topic-card__help {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    line-height: 1.35;
}

.support-topic-card--feedback .support-topic-card__icon {
    background: #fff1e6;
    color: #d35400;
}

.support-topic-card--bug .support-topic-card__icon {
    background: #fde8e8;
    color: #c0392b;
}

.support-topic-card--module .support-topic-card__icon {
    background: #e8f1ff;
    color: #2563eb;
}

.support-topic-card--other .support-topic-card__icon {
    background: #f3e8ff;
    color: #7c3aed;
}

.support-topic-card.is-selected {
    border-color: rgba(230, 126, 34, 0.55);
    background: linear-gradient(165deg, #fff 0%, #fff7ed 100%);
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.14), 0 12px 24px rgba(30, 58, 95, 0.08);
}

.support-topic-card.is-selected .support-topic-card__check {
    opacity: 1;
    transform: scale(1);
}

.support-topic-card.is-selected .support-topic-card__xp {
    color: #9a3412;
    background: #ffedd5;
}

.support-topic-card.is-picked {
    animation: support-topic-pick 0.45s ease;
}

@keyframes support-topic-pick {
    0% { transform: scale(1); }
    40% { transform: scale(1.03); }
    100% { transform: scale(1); }
}

.support-topic-picker__hint {
    margin-top: 0.65rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #94a3b8;
}

.support-topic-picker__hint.is-ready {
    color: #16a34a;
}

.support-topic-picker__hint.is-ready::before {
    content: '\f058';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    margin-right: 0.35rem;
}

@media (max-width: 575.98px) {
    .support-topic-picker {
        grid-template-columns: 1fr;
    }
}

.support-request-meta dt {
    color: #64748b;
    font-weight: 600;
}

.support-request-response {
    white-space: pre-wrap;
}

.dashboard-topbar {
    background: #fff;
    border-bottom: 1px solid var(--border);
    padding: 0.65rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 56px;
    position: sticky;
    top: 0;
    z-index: 1030;
}

.dashboard-topbar__start,
.dashboard-topbar__end {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.dashboard-topbar__start {
    flex: 1 1 auto;
}

.dashboard-topbar__end {
    flex: 0 0 auto;
    flex-shrink: 0;
}

.dashboard-topbar__home-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 38px;
    padding: 0.35rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    color: var(--brand-primary);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.dashboard-topbar__home-link:hover,
.dashboard-topbar__home-link:focus {
    background: var(--surface);
    border-color: var(--brand-secondary);
    color: var(--brand-primary);
}

.dashboard-topbar__home-link-icon {
    font-size: 0.9rem;
    opacity: 0.9;
}

.dashboard-topbar__start .dashboard-topbar__title {
    min-width: 0;
}

/* Page header card */
.page-header-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.06);
    overflow: hidden;
}

/* Dropdowns in the header must escape the card clip and sit above the next panel. */
.page-header-card:has(.dropdown),
.page-header-card:has(.dropdown.show) {
    overflow: visible;
}

.page-header-card:has(.dropdown.show) {
    z-index: 1100;
}

.page-header-card__actions .dropdown {
    position: relative;
    z-index: 2;
}

.page-header-card__actions .dropdown-menu {
    z-index: 1200;
}

.admin-panel-card:has(.dropdown.show) {
    position: relative;
    overflow: visible;
    z-index: 1200;
}

.admin-panel-card:has(.worker-task-timeline-filters .dropdown.show),
.admin-panel-card:has(.dc-knowledge-filters .dropdown.show),
.admin-panel-card:has(.companies-directory-panel__filters .dropdown.show),
.admin-panel-card:has(.contracts-filters .dropdown.show) {
    z-index: 1200;
}

.companies-directory-panel__filters,
.companies-directory-panel__toolbar,
.companies-directory-panel .admin-panel-card__body {
    overflow: visible;
}

.companies-directory-panel__field--profession .app-dropdown__menu,
.companies-directory-panel__field--profession .app-dropdown__menu--portal {
    max-height: min(16rem, calc(100dvh - 8rem));
    overflow-y: auto;
}

.page-header-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
}

.page-header-card__nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    padding: 0.65rem 1.15rem 0.65rem 1.35rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(30, 58, 95, 0.02);
}

.page-header-card__back {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    color: var(--brand-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    line-height: 1.2;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.page-header-card__back:hover {
    background: rgba(30, 58, 95, 0.05);
    border-color: var(--brand-secondary);
    color: var(--brand-primary);
}

.page-header-card__back i {
    font-size: 0.75rem;
}

.page-header-card__breadcrumb {
    min-width: 0;
    flex: 1 1 auto;
}

.page-header-card__breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 0.8125rem;
    line-height: 1.3;
}

.page-header-card__breadcrumb-item {
    display: inline-flex;
    align-items: center;
    color: #64748b;
    min-width: 0;
}

.page-header-card__breadcrumb-item:not(:last-child)::after {
    content: "/";
    margin-left: 0.35rem;
    color: #94a3b8;
    font-weight: 400;
}

.page-header-card__breadcrumb-item a {
    color: var(--brand-secondary);
    font-weight: 600;
    text-decoration: none;
}

.page-header-card__breadcrumb-item a:hover {
    color: var(--brand-accent);
}

.page-header-card__breadcrumb-item span[aria-current="page"] {
    color: var(--brand-primary);
    font-weight: 600;
}

.page-header-card__body {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem 1.25rem;
    padding: 0.9rem 1.15rem 0.9rem 1.35rem;
}

.page-header-card__main {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    min-width: 0;
    flex: 1 1 auto;
}

.page-header-card__icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 1.05rem;
}

.page-header-card__avatar {
    flex-shrink: 0;
}

.page-header-card__avatar-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 2px solid rgba(30, 58, 95, 0.12);
    border-radius: 50%;
    background: var(--surface);
    color: var(--brand-primary);
    overflow: hidden;
}

.page-header-card__avatar-toggle::after {
    display: none;
}

.page-header-card__avatar-toggle:hover,
.page-header-card__avatar-toggle.show {
    border-color: var(--brand-secondary);
    background: var(--surface);
    color: var(--brand-primary);
}

.page-header-card__avatar-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.page-header-card__avatar-initials {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 0.85rem;
    font-weight: 700;
}

.page-header-card__avatar-badge {
    position: absolute;
    right: -2px;
    bottom: -2px;
    width: 1.1rem;
    height: 1.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--brand-accent);
    color: #fff;
    font-size: 0.55rem;
    border: 2px solid #fff;
}

.page-header-card__avatar-menu {
    z-index: 1100;
    min-width: 14rem;
    border-color: var(--border);
    box-shadow: var(--dropdown-shadow);
    max-height: min(16rem, calc(100vh - 6rem));
    overflow-y: auto;
}

.page-header-card__avatar-menu .dropdown-item {
    color: var(--brand-primary);
}

.page-header-card__avatar-menu .dropdown-item:hover,
.page-header-card__avatar-menu .dropdown-item:focus {
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
}

.page-header-card__avatar-upload {
    margin: 0;
    cursor: pointer;
}

.page-header-card__eyebrow {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand-accent);
    margin-bottom: 0.15rem;
    line-height: 1.2;
}

.page-header-card__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0;
    line-height: 1.3;
}

.page-header-card__subtitle {
    font-size: 0.8125rem;
    color: #64748b;
    margin: 0.2rem 0 0;
    line-height: 1.4;
    max-width: 42rem;
}

.page-header-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    flex: 0 0 auto;
}

@media (max-width: 575.98px) {
    .page-header-card__body {
        align-items: flex-start;
    }

    .page-header-card__actions {
        width: 100%;
        justify-content: flex-start;
    }
}

/* Apartment header card */
.apartment-header-card__trail {
    min-width: 0;
    flex: 1 1 auto;
}

.page-header-card__project-label {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    color: var(--brand-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
}

.apartment-building-switcher {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.apartment-building-switcher__label {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    white-space: nowrap;
}

.apartment-building-switcher__select.app-form-select {
    min-width: 10rem;
}

.apartment-building-switcher__select .app-dropdown--form .app-dropdown__toggle {
    min-height: 34px;
    padding: 0.3rem 0.65rem;
    font-size: 0.8125rem;
    border-radius: 8px;
}

.apartment-header-card__body {
    align-items: center;
}

.apartment-header-card__qr {
    flex-shrink: 0;
    margin-left: auto;
}

.apartment-header-card__progress {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5.75rem;
    height: 5.75rem;
    border-radius: 50%;
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.06) 0%, rgba(230, 126, 34, 0.08) 100%);
    box-shadow: inset 0 0 0 1px rgba(30, 58, 95, 0.08);
}

.apartment-header-card__main {
    align-items: flex-start;
}

.apartment-header-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.65rem;
}

.apartment-header-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
}

.apartment-header-chip i {
    color: var(--brand-secondary);
    font-size: 0.7rem;
}

.apartment-header-chip--progress {
    background: rgba(230, 126, 34, 0.12);
    color: #b35f12;
}

.apartment-header-chip--progress i {
    color: var(--brand-accent);
}

.apartment-header-chip--muted {
    background: #f1f5f9;
    color: #64748b;
    font-weight: 500;
}

.apartment-header-chip--muted i {
    color: #94a3b8;
}

@media (max-width: 575.98px) {
    .apartment-header-card__body {
        align-items: flex-start;
    }

    .apartment-header-card__qr {
        width: 100%;
        margin-left: 0;
        margin-top: 0.35rem;
    }

    .apartment-header-card__progress {
        width: 5rem;
        height: 5rem;
    }
}

.user-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--surface);
    border: 2px solid rgba(30, 58, 95, 0.12);
}

.user-avatar--sm {
    width: 32px;
    height: 32px;
}

.user-avatar--xs {
    width: 24px;
    height: 24px;
    font-size: 0.62rem;
    border-width: 1.5px;
}

.user-avatar--md {
    width: 40px;
    height: 40px;
}

.user-avatar--lg {
    width: 72px;
    height: 72px;
    font-size: 1.35rem;
}

.user-avatar--initials {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-weight: 700;
}

.dashboard-user-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-primary);
}

/* Profile dropdown (dashboard topbar) */
.app-dropdown--profile .app-dropdown__toggle--profile {
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 0.2rem 0.55rem 0.2rem 0.2rem;
    gap: 0.5rem;
    max-width: 220px;
    background: transparent;
}

.app-dropdown--profile .app-dropdown__toggle--profile:hover,
.app-dropdown--profile .app-dropdown__toggle--profile:focus,
.app-dropdown--profile .app-dropdown__toggle--profile.show {
    background: rgba(30, 58, 95, 0.05);
    border-color: var(--border);
}

.app-dropdown__profile-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-primary);
    max-width: 9rem;
}

.app-dropdown__menu--profile {
    --bs-dropdown-min-width: 16rem;
    min-width: 260px;
    padding: 0;
}

.app-dropdown__profile-meta {
    list-style: none;
    padding: 0.85rem 1rem;
    background: rgba(30, 58, 95, 0.03);
}

.app-dropdown__profile-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
}

.app-dropdown__profile-email {
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.35;
}

.app-dropdown__item-icon {
    width: 1.1rem;
    text-align: center;
    color: var(--brand-secondary);
    opacity: 0.9;
}

.app-dropdown__item--logout {
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
    appearance: none;
}

.app-dropdown__item--logout:hover,
.app-dropdown__item--logout:focus {
    background: rgba(220, 53, 69, 0.08);
    color: #b02a37;
}

.app-dropdown__item--logout:hover .app-dropdown__item-icon,
.app-dropdown__item--logout:focus .app-dropdown__item-icon {
    color: #b02a37;
}

.app-dropdown__menu--profile .app-dropdown__item {
    margin: 0 0.5rem;
    width: calc(100% - 1rem);
}

.app-dropdown__menu--profile > li:last-child {
    padding-bottom: 0.5rem;
}

/* Notification bell (subcontractor topbar) */
.app-dropdown--notifications .app-dropdown__toggle--notifications {
    position: relative;
    border: 1px solid transparent;
    border-radius: 999px;
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--brand-primary);
}

.app-dropdown--notifications .app-dropdown__toggle--notifications:hover,
.app-dropdown--notifications .app-dropdown__toggle--notifications:focus,
.app-dropdown--notifications .app-dropdown__toggle--notifications.show {
    background: rgba(30, 58, 95, 0.05);
    border-color: var(--border);
}

.app-dropdown--todos .app-dropdown__toggle--todos {
    position: relative;
}

.app-dropdown--todos .app-dropdown__toggle--todos.show {
    background: rgba(30, 58, 95, 0.05);
    border-color: var(--border);
}

.app-dropdown__menu--todos {
    --bs-dropdown-min-width: 26rem;
    min-width: min(26rem, calc(100vw - 1rem));
    max-width: min(26rem, calc(100vw - 1rem));
    width: min(26rem, calc(100vw - 1rem));
    padding: 0;
    overflow: hidden;
}

.subcontractor-todo-panel-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.65rem 0.75rem;
    align-items: start;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--border);
}

.subcontractor-todo-panel-item:last-child {
    border-bottom: none;
}

.subcontractor-todo-panel-item__check {
    padding-top: 0.1rem;
}

.subcontractor-todo-panel-item__main {
    min-width: 0;
}

.subcontractor-todo-panel-item__title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.35;
}

.subcontractor-todo-panel-item__meta {
    font-size: 0.75rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.subcontractor-todo-panel-item__task {
    display: inline-block;
    margin-top: 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--brand-secondary);
    text-decoration: none;
}

.subcontractor-todo-panel-item__task:hover {
    text-decoration: underline;
}

.apartment-todo-item__check {
    flex-shrink: 0;
    padding-top: 0.15rem;
}

.apartment-todo-item--completed .apartment-todo-item__title,
.apartment-todo-item--completed .subcontractor-todo-panel-item__title {
    text-decoration: line-through;
    opacity: 0.65;
}

/* Subcontractor floating todo chat */
.subcontractor-todo-chat {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 1060;
    pointer-events: none;
}

#todoToBacklogModal {
    z-index: 1085;
}

body:has(#todoToBacklogModal.show) .modal-backdrop {
    z-index: 1080;
}

.subcontractor-todo-chat__fab,
.subcontractor-todo-chat__panel {
    pointer-events: auto;
}

.subcontractor-todo-chat__fab {
    position: relative;
    width: 3.35rem;
    height: 3.35rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    background: linear-gradient(180deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.35);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.subcontractor-todo-chat__fab:hover,
.subcontractor-todo-chat__fab:focus {
    transform: translateY(-2px);
    background: linear-gradient(180deg, var(--brand-secondary) 0%, var(--brand-primary) 100%);
    border-color: rgba(255, 255, 255, 0.22);
    box-shadow: 0 14px 32px rgba(30, 58, 95, 0.45);
    color: #fff;
}

.subcontractor-todo-chat.is-open .subcontractor-todo-chat__fab {
    transform: scale(0.92);
}

.subcontractor-todo-chat__fab-badge {
    position: absolute;
    top: -0.15rem;
    right: -0.15rem;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: #dc3545;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.25rem;
    text-align: center;
    border: 2px solid #fff;
}

.subcontractor-todo-chat__panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 0.75rem);
    --todo-chat-base-width: 24rem;
    --todo-chat-base-height: 36rem;
    --todo-chat-zoom: 1;
    width: min(calc(var(--todo-chat-base-width) * var(--todo-chat-zoom)), calc(100vw - 1.5rem));
    height: min(calc(var(--todo-chat-base-height) * var(--todo-chat-zoom)), calc(100vh - 5rem));
    max-height: min(calc(var(--todo-chat-base-height) * var(--todo-chat-zoom)), calc(100vh - 5rem));
    font-size: calc(0.9375rem * var(--todo-chat-zoom));
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 18px 48px rgba(30, 58, 95, 0.18);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform-origin: right bottom;
    animation: subcontractorTodoChatIn 0.22s ease;
}

.subcontractor-todo-chat__panel[hidden] {
    display: none !important;
}

@keyframes subcontractorTodoChatIn {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.subcontractor-todo-chat__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.9rem 1rem;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.04), rgba(230, 126, 34, 0.08));
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.subcontractor-todo-chat__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--border);
    background: #fff;
    flex-shrink: 0;
}

.subcontractor-todo-chat__tabs {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.2rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
}

.subcontractor-todo-chat__tab {
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    line-height: 1.2;
}

.subcontractor-todo-chat__tab.is-active {
    background: #fff;
    color: var(--brand-primary);
    box-shadow: 0 1px 4px rgba(30, 58, 95, 0.1);
}

.subcontractor-todo-chat__period {
    flex: 0 1 auto;
    min-width: 0;
}

.subcontractor-todo-chat__period-select.app-form-select {
    min-width: 8.75rem;
    max-width: 11.5rem;
    margin: 0;
}

.subcontractor-todo-chat__period-select .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.subcontractor-todo-chat__period-select .app-dropdown--form .app-dropdown__toggle {
    min-height: 1.9rem;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
}

.subcontractor-todo-chat__period-select .app-dropdown--form .app-dropdown__menu {
    min-width: 11rem;
}

.subcontractor-todo-chat__composer[hidden] {
    display: none !important;
}

.subcontractor-todo-chat__bubble.is-completed {
    opacity: 0.82;
}

.subcontractor-todo-chat__bubble.is-completed .subcontractor-todo-chat__bubble-title {
    text-decoration: line-through;
    color: #64748b;
}

.subcontractor-todo-chat__bubble-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: rgba(39, 174, 96, 0.14);
    color: #1e7e34;
    font-size: 0.68rem;
    font-weight: 700;
}

.subcontractor-todo-chat__header-actions {
    display: flex;
    align-items: center;
    gap: 0.2rem;
    flex-shrink: 0;
}

.subcontractor-todo-chat__zoom-btn {
    width: 1.85rem;
    height: 1.85rem;
    padding: 0;
    flex-shrink: 0;
}

.subcontractor-todo-chat__zoom-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.subcontractor-todo-chat__zoom-label {
    font-size: 0.68rem;
    font-weight: 700;
    color: #64748b;
    min-width: 2.35rem;
    text-align: center;
    flex-shrink: 0;
    user-select: none;
}

.subcontractor-todo-chat__header-main {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.subcontractor-todo-chat__header-icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
    background: var(--brand-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.subcontractor-todo-chat__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.subcontractor-todo-chat__subtitle {
    font-size: 0.76rem;
    color: #64748b;
    margin-top: 0.1rem;
}

.subcontractor-todo-chat__messages {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 0.85rem;
    background: #f8fafc;
    min-height: calc(12rem * var(--todo-chat-zoom, 1));
}

.subcontractor-todo-chat__loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem 1rem;
    color: #64748b;
    font-size: 0.85rem;
}

.subcontractor-todo-chat__section {
    margin-bottom: 1rem;
}

.subcontractor-todo-chat__section:last-child {
    margin-bottom: 0;
}

.subcontractor-todo-chat__section-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.45rem;
}

.subcontractor-todo-chat__task-context {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem;
    margin-bottom: 0.65rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.06);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.subcontractor-todo-chat__task-context-main {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
    flex: 1 1 auto;
}

.subcontractor-todo-chat__task-context-project {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--brand-secondary);
    text-decoration: none;
    line-height: 1.3;
}

.subcontractor-todo-chat__task-context-project:hover {
    text-decoration: underline;
    color: var(--brand-primary);
}

.subcontractor-todo-chat__task-context-name {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary);
    line-height: 1.35;
    word-break: break-word;
}

.subcontractor-todo-chat__task-context-link {
    flex-shrink: 0;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--brand-secondary);
    text-decoration: none;
    white-space: nowrap;
    padding-top: 0.1rem;
}

.subcontractor-todo-chat__task-context-link:hover {
    text-decoration: underline;
}

.subcontractor-todo-chat__bubble {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.65rem;
    align-items: start;
    padding: 0.75rem 0.85rem;
    margin-bottom: 0.55rem;
    border-radius: 14px 14px 14px 4px;
    background: #fff;
    border: 1px solid var(--border);
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.05);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.subcontractor-todo-chat__bubble.is-completing {
    opacity: 0;
    transform: translateX(-8px);
}

.subcontractor-todo-chat__bubble-check {
    padding-top: 0.1rem;
}

.subcontractor-todo-chat__bubble-check .form-check-input {
    width: 1.1rem;
    height: 1.1rem;
    cursor: pointer;
}

.subcontractor-todo-chat__bubble-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.35;
    margin-bottom: 0.2rem;
}

.subcontractor-todo-chat__bubble-body {
    min-width: 0;
    flex: 1;
}

.subcontractor-todo-chat__bubble-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.45rem;
}

.subcontractor-todo-chat__bubble-top .subcontractor-todo-chat__bubble-title {
    flex: 1;
    min-width: 0;
}

.subcontractor-todo-chat__bubble-title.is-actionable {
    cursor: pointer;
}

.subcontractor-todo-chat__bubble-title.is-actionable:hover {
    color: var(--brand-secondary);
}

.subcontractor-todo-chat__bubble-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.subcontractor-todo-chat__to-activity,
.subcontractor-todo-chat__to-backlog {
    width: 1.85rem;
    height: 1.85rem;
    padding: 0;
    flex-shrink: 0;
    border-radius: 999px;
}

.subcontractor-todo-chat__to-activity.is-saved,
.subcontractor-todo-chat__to-backlog.is-saved {
    color: #1e7e34;
    border-color: rgba(39, 174, 96, 0.35);
    background: rgba(39, 174, 96, 0.12);
}

.subcontractor-todo-chat__to-activity.is-added,
.subcontractor-todo-chat__to-backlog.is-added {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    width: auto;
    min-height: 1.85rem;
    padding: 0.15rem 0.55rem;
    border: 1px solid rgba(39, 174, 96, 0.35);
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    pointer-events: none;
}

.subcontractor-todo-chat__to-activity-label,
.subcontractor-todo-chat__to-backlog-label {
    letter-spacing: 0.01em;
}

.subcontractor-todo-chat__bubble-description {
    font-size: 0.8rem;
    color: #475569;
    line-height: 1.4;
    margin-bottom: 0.35rem;
    white-space: pre-wrap;
}

.subcontractor-todo-chat__bubble-heading {
    min-width: 0;
    flex: 1 1 auto;
}

.subcontractor-todo-chat__bubble-subtitle {
    margin-top: 0.15rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #64748b;
    line-height: 1.3;
}

.subcontractor-todo-chat__bubble.is-case-note .subcontractor-todo-chat__bubble-description {
    margin-top: 0.15rem;
    padding: 0.55rem 0.65rem;
    border-radius: 0.7rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #334155;
}

.subcontractor-todo-chat__bubble-action {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #0e7490;
    text-decoration: none;
    background: #ecfeff;
    border: 1px solid #a5f3fc;
    border-radius: 999px;
    padding: 0.16rem 0.55rem;
}

.subcontractor-todo-chat__bubble-action:hover {
    background: #cffafe;
    color: #155e75;
    text-decoration: none;
}

.subcontractor-todo-chat__bubble-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.subcontractor-todo-chat__bubble-date {
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
    background: rgba(100, 116, 139, 0.1);
    border-radius: 999px;
    padding: 0.12rem 0.5rem;
}

.subcontractor-todo-chat__bubble-task {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--brand-secondary);
    text-decoration: none;
}

.subcontractor-todo-chat__bubble-task:hover {
    text-decoration: underline;
}

.subcontractor-todo-chat__empty {
    text-align: center;
    padding: 1.25rem 0.75rem;
    color: #64748b;
    font-size: 0.82rem;
    line-height: 1.45;
}

.subcontractor-todo-chat__composer {
    padding: 0.85rem 0.85rem 0.25rem;
    border-top: 1px solid var(--border);
    background: #fff;
    flex-shrink: 0;
}

.subcontractor-todo-chat__composer-main {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 0.45rem;
    align-items: center;
}

.subcontractor-todo-chat__title-input {
    border-radius: 999px;
    padding-left: 1rem;
    padding-right: 1rem;
    min-height: 42px;
}

.subcontractor-todo-chat__send {
    border-radius: 999px;
    min-width: 42px;
    min-height: 42px;
    padding-inline: 0.85rem;
}

.subcontractor-todo-chat__send.is-loading {
    min-width: 7.5rem;
    pointer-events: none;
}

.subcontractor-todo-chat__details-toggle {
    border-radius: 999px;
    width: 42px;
    height: 42px;
    padding: 0;
}

.subcontractor-todo-chat__details-toggle.is-active {
    background: rgba(230, 126, 34, 0.12);
    border-color: var(--brand-secondary);
    color: var(--brand-secondary);
}

.subcontractor-todo-chat__composer-details {
    margin-top: 0.75rem;
    display: grid;
    gap: 1rem;
}

.subcontractor-todo-chat__description-input {
    border-radius: 12px;
    font-size: 0.875rem;
    resize: vertical;
    min-height: 4.5rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid #cfd8e3;
    line-height: 1.45;
}

.subcontractor-todo-chat__description-input:focus {
    border-color: var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.14);
}

.subcontractor-todo-chat__dates {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.subcontractor-todo-chat__date-field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin: 0;
}

.subcontractor-todo-chat__date-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
}

.subcontractor-todo-chat__date-input {
    min-height: 44px;
    border-radius: 10px;
    padding: 0.55rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--brand-primary);
    border: 1px solid #cfd8e3;
    background: #fff;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.subcontractor-todo-chat__date-input:hover:not(:focus) {
    border-color: #b8c5d4;
}

.subcontractor-todo-chat__date-input:focus {
    border-color: var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.14);
    outline: none;
}

.subcontractor-todo-chat__composer-details.mb-5 {
    margin-bottom: 3rem !important;
}

@media (max-width: 575.98px) {
    .subcontractor-todo-chat {
        right: 1rem;
        bottom: calc(1rem + env(safe-area-inset-bottom));
        left: auto;
    }

    body:has(.bottom-nav-worker) .subcontractor-todo-chat {
        bottom: calc(4.75rem + env(safe-area-inset-bottom));
    }

    .subcontractor-todo-chat__panel {
        --todo-chat-base-height: 70vh;
        width: min(calc(var(--todo-chat-base-width, 24rem) * var(--todo-chat-zoom, 1)), calc(100vw - 1.5rem));
        height: min(calc(var(--todo-chat-base-height) * var(--todo-chat-zoom, 1)), calc(100vh - 5rem));
        max-height: min(calc(var(--todo-chat-base-height) * var(--todo-chat-zoom, 1)), calc(100vh - 5rem));
    }

    .subcontractor-todo-chat__dates {
        grid-template-columns: 1fr;
    }
}

.notification-bell__badge {
    position: absolute;
    top: 0.1rem;
    right: 0.1rem;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    background: #dc3545;
    color: #fff;
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1.1rem;
    text-align: center;
}

.app-dropdown__menu--notifications {
    --bs-dropdown-min-width: 22rem;
    min-width: min(22rem, calc(100vw - 2rem));
    max-width: 24rem;
    padding: 0;
    overflow: hidden;
}

.dropdown-menu.notification-panel {
    flex-direction: column;
    max-height: min(28rem, calc(100vh - 5rem));
}

.dropdown-menu.notification-panel.show {
    display: flex;
}

.notification-panel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--border);
    background: rgba(30, 58, 95, 0.03);
}

.notification-panel__title {
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--brand-primary);
}

.notification-panel__subtitle {
    font-size: 0.78rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.notification-panel__count-badge {
    flex-shrink: 0;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.45rem;
    border-radius: 999px;
    background: var(--brand-secondary);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.5rem;
    text-align: center;
}

.notification-panel__body {
    overflow-y: auto;
    flex: 1 1 auto;
}

.notification-panel__empty {
    padding: 1.35rem 1rem;
    text-align: center;
    color: #64748b;
    font-size: 0.85rem;
}

.notification-panel__empty-icon {
    display: block;
    font-size: 1.35rem;
    margin-bottom: 0.55rem;
    opacity: 0.65;
}

.notification-panel__footer {
    padding: 0.75rem;
    border-top: 1px solid var(--border);
    background: #fff;
}

.notification-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.65rem 0.75rem;
    align-items: start;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--border);
}

.notification-item:last-child {
    border-bottom: none;
}

.notification-item--complete {
    opacity: 0.72;
    background: rgba(30, 58, 95, 0.02);
}

.notification-item__icon {
    width: 2rem;
    height: 2rem;
    border-radius: 0.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 0.85rem;
}

.notification-item__body {
    min-width: 0;
}

.notification-item__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.45rem;
    margin-bottom: 0.15rem;
}

.notification-item__title {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
}

.notification-item__status {
    flex-shrink: 0;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.12rem 0.4rem;
    border-radius: 999px;
    background: rgba(255, 193, 7, 0.18);
    color: #946200;
}

.notification-item__status--complete {
    background: rgba(25, 135, 84, 0.12);
    color: #146c43;
}

.notification-item__meta {
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.4;
}

.notification-item__sub {
    font-size: 0.78rem;
    margin-top: 0.2rem;
}

.notification-item__actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.notification-item--page {
    grid-template-columns: auto 1fr;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    margin-bottom: 0.75rem;
}

.notification-item--page:last-child {
    margin-bottom: 0;
}

.notification-item--page .notification-item__icon {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1rem;
}

.notification-item--page .notification-item__actions {
    grid-column: 2;
    margin-top: 0.15rem;
}

.notification-page__section-head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.85rem;
}

.notification-page__section-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.notification-page__section-count {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.notification-page__empty-icon {
    font-size: 2rem;
    color: #94a3b8;
    margin-bottom: 0.75rem;
}

.notification-bell__item {
    list-style: none;
    padding: 0;
}

.notification-bell__empty {
    list-style: none;
    padding: 0;
}

.notification-bell__footer {
    list-style: none;
    padding: 0;
}

/* Project invitation cards */
.project-invite-card {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    height: 100%;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.project-invite-card__top {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

.project-invite-card__icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 1rem;
}

.project-invite-card__main {
    min-width: 0;
    flex: 1;
}

.project-invite-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.project-invite-card__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
}

.project-invite-card__badge {
    flex-shrink: 0;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: rgba(255, 193, 7, 0.18);
    color: #946200;
}

.project-invite-card__badge--active {
    background: rgba(39, 174, 96, 0.15);
    color: #1e7e45;
}

.project-invite-card__badge--member {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.project-invite-card__icon--member {
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-secondary);
}

.project-invite-card__address {
    font-size: 0.82rem;
    margin-top: 0.2rem;
}

.project-invite-card__details {
    display: grid;
    gap: 0.45rem;
}

.project-invite-card__detail {
    display: grid;
    gap: 0.1rem;
}

.project-invite-card__detail-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.project-invite-card__detail-value {
    font-size: 0.85rem;
    color: var(--brand-primary);
    line-height: 1.35;
}

.project-invite-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: auto;
}

.project-invite-card--compact {
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    gap: 0.65rem;
    height: auto;
}

.project-invite-card--compact .project-invite-card__icon {
    width: 2rem;
    height: 2rem;
    font-size: 0.85rem;
}

.project-invite-card--compact .project-invite-card__title {
    font-size: 0.88rem;
}

.project-invite-card--compact .project-invite-card__detail-label {
    display: none;
}

.project-invite-card--compact .project-invite-card__detail-value {
    font-size: 0.78rem;
    color: #64748b;
}

.project-invitations-panel .page-header-card {
    margin-bottom: 1rem;
}

/* Worker joined project cards */
.worker-joined-projects__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    gap: 1rem;
}

.worker-project-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    padding: 1.15rem 1.2rem 1.1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
    box-shadow: 0 4px 20px rgba(30, 58, 95, 0.06);
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.worker-project-card:hover {
    border-color: rgba(45, 90, 135, 0.22);
    box-shadow: 0 12px 32px rgba(30, 58, 95, 0.1);
    transform: translateY(-2px);
}

.worker-project-card--active {
    border-color: rgba(39, 174, 96, 0.28);
    background: linear-gradient(180deg, #fff 0%, rgba(39, 174, 96, 0.04) 100%);
}

.worker-project-card__accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-success) 0%, #2ecc71 100%);
}

.worker-project-card__header {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.worker-project-card__icon {
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.08) 0%, rgba(45, 90, 135, 0.12) 100%);
    color: var(--brand-secondary);
    font-size: 1.15rem;
}

.worker-project-card--active .worker-project-card__icon {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.18);
}

.worker-project-card__identity {
    flex: 1;
    min-width: 0;
}

.worker-project-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.worker-project-card__title {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.35;
    word-break: break-word;
}

.worker-project-card__status {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-secondary);
    background: rgba(45, 90, 135, 0.1);
}

.worker-project-card__status--active {
    color: #1e7e45;
    background: rgba(39, 174, 96, 0.14);
}

.worker-project-card__status--active i {
    font-size: 0.72rem;
}

.worker-project-card__address {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
    color: #64748b;
}

.worker-project-card__address i {
    margin-top: 0.15rem;
    color: var(--brand-accent);
    flex-shrink: 0;
}

.worker-project-card__employer {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    margin: 0.15rem 0 0;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #475569;
    font-weight: 600;
}

.worker-project-card__employer i {
    margin-top: 0.12rem;
    color: var(--brand-primary);
    flex-shrink: 0;
}

.worker-project-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.worker-project-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 500;
    color: #475569;
    background: rgba(30, 58, 95, 0.05);
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.worker-project-card__chip i {
    font-size: 0.7rem;
    color: var(--brand-secondary);
    opacity: 0.85;
}

.worker-project-card__chip--code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.worker-project-card__chip--code code {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--brand-primary);
    background: transparent;
    padding: 0;
}

.worker-project-card__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.worker-project-card__btn {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-width: 0;
    white-space: nowrap;
}

.worker-project-card__btn--full {
    width: 100%;
}

.worker-project-card__switch-form {
    flex: 1 1 100%;
    margin: 0;
}

@media (max-width: 575.98px) {
    .worker-joined-projects__grid {
        grid-template-columns: 1fr;
    }

    .worker-project-card__footer {
        flex-direction: column;
    }

    .worker-project-card__btn {
        width: 100%;
    }
}

.worker-profile-head {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 1.25rem;
}

.profile-settings-form__panel .form-control[readonly] {
    background-color: rgba(30, 58, 95, 0.04);
    cursor: not-allowed;
}

.profile-settings-form__footer {
    display: flex;
    justify-content: flex-end;
}

.profile-company-logo__row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.85rem;
}

.profile-company-logo__preview {
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: rgba(30, 58, 95, 0.05);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

.profile-company-logo__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-company-logo__initials {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--brand-secondary);
}

.profile-company-scopes-accordion .profile-company-professions__group + .profile-company-professions__group {
    margin-top: 1rem;
}

.profile-company-scopes__search-field {
    position: relative;
}

.profile-company-scopes__search-field > i {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(30, 58, 95, 0.45);
    pointer-events: none;
}

.profile-company-scopes__search-field .form-control {
    padding-left: 2.35rem;
}

.profile-company-scopes__builder {
    padding: 0.85rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.02);
}

.profile-company-scopes__icon-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(2.5rem, 1fr));
    gap: 0.4rem;
}

.profile-company-scopes__icon-choice {
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 10px;
    background: #fff;
    color: var(--brand-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.profile-company-scopes__icon-choice:hover {
    border-color: rgba(45, 90, 135, 0.28);
    background: rgba(30, 58, 95, 0.04);
}

.profile-company-scopes__icon-choice.is-selected {
    border-color: rgba(230, 126, 34, 0.42);
    background: rgba(230, 126, 34, 0.1);
    color: var(--brand-accent);
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.1);
}

.profile-company-scopes__locale-head {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    margin-bottom: 0.65rem;
}

.profile-company-scopes__locale-switch {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.35rem;
    padding: 0.3rem;
    border-radius: 14px;
    background: rgba(30, 58, 95, 0.06);
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.profile-company-scopes__locale-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    min-height: 3.1rem;
    padding: 0.45rem 0.35rem;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: rgba(30, 58, 95, 0.72);
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.profile-company-scopes__locale-btn:hover {
    background: rgba(255, 255, 255, 0.7);
    color: var(--brand-primary);
}

.profile-company-scopes__locale-btn.active {
    background: #fff;
    color: var(--brand-primary);
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.08), 0 4px 12px rgba(30, 58, 95, 0.08);
}

.profile-company-scopes__locale-btn:focus-visible {
    outline: 2px solid rgba(45, 90, 135, 0.35);
    outline-offset: 2px;
}

.profile-company-scopes__locale-code {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.1;
}

.profile-company-scopes__locale-name {
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.15;
    opacity: 0.72;
}

.profile-company-scopes__locale-btn.active .profile-company-scopes__locale-name {
    color: var(--brand-accent);
    opacity: 1;
}

.profile-company-scopes__locale-panels .form-label {
    margin-bottom: 0.4rem;
}

@media (max-width: 575.98px) {
    .profile-company-scopes__locale-switch {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.profile-company-scopes__custom-key {
    font-size: 0.68rem;
    font-weight: 600;
    color: rgba(30, 58, 95, 0.55);
}

.company-profile-completion-modal {
    border: 0;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
}

.company-profile-completion-modal__body {
    padding: 1.75rem 1.5rem 1.5rem;
    text-align: center;
}

.company-profile-completion-modal__icon {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 1.35rem;
}

.company-profile-completion-modal__title {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin-bottom: 0.55rem;
}

.company-profile-completion-modal__text {
    color: rgba(30, 58, 95, 0.72);
    margin-bottom: 1rem;
}

.company-profile-completion-modal__list {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
    display: grid;
    gap: 0.45rem;
    text-align: left;
}

.company-profile-completion-modal__list li {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.65rem 0.8rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.04);
    border: 1px solid rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-weight: 600;
    font-size: 0.9rem;
}

.company-profile-completion-modal__list i {
    color: var(--brand-accent);
}

.company-profile-completion-modal__cta {
    width: 100%;
}

.profile-addresses__list {
    display: grid;
    gap: 0.65rem;
}

.profile-addresses__item {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fbfcfd;
}

.profile-addresses__item--active {
    border-color: rgba(45, 90, 135, 0.28);
    background: rgba(45, 90, 135, 0.05);
}

.profile-addresses__badge {
    display: inline-block;
    margin-bottom: 0.35rem;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: var(--brand-secondary);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.profile-addresses__text {
    font-size: 0.875rem;
    color: #334155;
    white-space: pre-wrap;
}

.profile-addresses__meta {
    margin-top: 0.25rem;
    font-size: 0.72rem;
    color: #94a3b8;
}

.profile-addresses__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.profile-documents-list {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.profile-documents-panel .admin-panel-card__head {
    padding-bottom: 0.35rem;
}

.profile-documents-panel__head {
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.05) 0%, rgba(52, 152, 219, 0.05) 100%);
}

.profile-documents-panel__intro {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.profile-documents-panel__title-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.profile-documents-panel__icon {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--brand-primary) 0%, #3498db 100%);
    color: #fff;
    font-size: 0.95rem;
    box-shadow: 0 6px 14px rgba(30, 58, 95, 0.16);
}

.profile-documents-panel__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    padding-left: 3.1rem;
}

.profile-documents-panel__count {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: #475569;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.profile-documents-panel__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.profile-documents-panel__badge--expired {
    background: rgba(220, 53, 69, 0.12);
    color: #b42318;
}

.profile-documents-panel__badge--expiring {
    background: rgba(255, 193, 7, 0.18);
    color: #946200;
}

.profile-documents-panel__action {
    flex-shrink: 0;
    white-space: nowrap;
}

.profile-documents-panel__body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.profile-documents-panel__alert {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.75rem 0.9rem;
    border-radius: 12px;
    font-size: 0.84rem;
    line-height: 1.45;
}

.profile-documents-panel__alert i {
    margin-top: 0.1rem;
    flex-shrink: 0;
}

.profile-documents-panel__alert--expired {
    background: rgba(220, 53, 69, 0.08);
    border: 1px solid rgba(220, 53, 69, 0.16);
    color: #9f1239;
}

.profile-documents-panel__alert--expired i {
    color: #dc3545;
}

.profile-documents-panel__alert--expiring {
    background: rgba(255, 193, 7, 0.1);
    border: 1px solid rgba(255, 193, 7, 0.24);
    color: #854d0e;
}

.profile-documents-panel__alert--expiring i {
    color: #d97706;
}

.profile-documents-panel__table-shell {
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 14px;
    background: linear-gradient(180deg, #fff 0%, rgba(248, 250, 252, 0.92) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
    overflow: hidden;
}

.profile-documents-panel__table-shell .profile-documents__table-wrap {
    margin: 0;
}

.profile-documents-panel__table-shell .profile-documents__table thead th {
    background: rgba(30, 58, 95, 0.03);
    border-bottom-color: rgba(226, 232, 240, 0.95);
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}

.profile-documents-panel__table-shell .profile-documents__table tbody td {
    vertical-align: middle;
    border-bottom-color: rgba(226, 232, 240, 0.75);
}

.profile-documents-panel__table-shell .profile-documents__table tbody tr:last-child td {
    border-bottom: none;
}

@media (max-width: 991.98px) {
    .profile-documents-panel__summary {
        padding-left: 0;
    }
}

@media (max-width: 575.98px) {
    .profile-documents-panel__head {
        align-items: stretch;
    }

    .profile-documents-panel__action {
        width: 100%;
        justify-content: center;
    }
}

.profile-documents__written-link {
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
}

.profile-documents__written-link:hover {
    text-decoration: underline;
}

.profile-documents__category {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

.profile-documents__content-mode-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.profile-documents__content-mode-option {
    position: relative;
    min-width: 0;
}

.profile-documents__content-mode-input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    pointer-events: none;
}

.profile-documents__content-mode-card {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    width: 100%;
    min-height: 100%;
    margin: 0;
    padding: 1rem 1.05rem;
    border: 2px solid var(--border);
    border-radius: 0.8rem;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.profile-documents__content-mode-card:hover {
    border-color: rgba(30, 58, 95, 0.22);
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.08);
}

.profile-documents__content-mode-input:focus-visible + .profile-documents__content-mode-card {
    outline: 2px solid var(--brand-accent);
    outline-offset: 2px;
}

.profile-documents__content-mode-input:checked + .profile-documents__content-mode-card {
    border-color: var(--brand-accent);
    background: rgba(230, 126, 34, 0.07);
    box-shadow: 0 0 0 1px rgba(230, 126, 34, 0.18);
}

.profile-documents__content-mode-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.7rem;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 1.05rem;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.profile-documents__content-mode-input:checked + .profile-documents__content-mode-card .profile-documents__content-mode-icon {
    background: var(--brand-accent);
    color: #fff;
}

.profile-documents__content-mode-copy {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.profile-documents__content-mode-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
}

.profile-documents__content-mode-help {
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--text-muted);
}

@media (max-width: 575.98px) {
    .profile-documents__content-mode-grid {
        grid-template-columns: 1fr;
    }
}

.profile-documents__table-wrap {
    margin: 0 -0.25rem;
}

.profile-documents__table {
    font-size: 0.875rem;
}

.profile-documents__table thead th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    border-bottom-width: 1px;
    white-space: nowrap;
}

.profile-documents__row--expired {
    background: rgba(220, 53, 69, 0.04);
}

.profile-documents__row--expiring_soon {
    background: rgba(255, 193, 7, 0.06);
}

.profile-documents__doc-cell {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 12rem;
}

.profile-documents-panel__table-shell .profile-documents__doc-icon {
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.1);
    box-shadow: inset 0 0 0 1px rgba(30, 58, 95, 0.06);
}

.profile-documents__doc-icon {
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    flex-shrink: 0;
}

.profile-documents__doc-name {
    font-weight: 700;
    color: var(--brand-primary);
}

.profile-documents__days-left {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #946200;
}

.profile-documents__photos {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.profile-documents__photo {
    display: block;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(30, 58, 95, 0.12);
}

.profile-documents__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-documents__photo-more {
    font-size: 0.75rem;
    font-weight: 700;
    color: #64748b;
}

.profile-documents__actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
}

.profile-documents__action-btn {
    width: 2.1rem;
    height: 2.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.profile-documents__empty-icon {
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
    font-size: 1.5rem;
}

.profile-documents__empty-text {
    max-width: 28rem;
}

.profile-document-card {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 1rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 14px;
    background: #fff;
}

.profile-document-card--expired {
    border-color: rgba(220, 53, 69, 0.28);
    background: rgba(220, 53, 69, 0.04);
}

.profile-document-card--expiring_soon {
    border-color: rgba(255, 193, 7, 0.35);
    background: rgba(255, 193, 7, 0.08);
}

.profile-document-card__main {
    display: flex;
    gap: 0.85rem;
    min-width: 0;
    flex: 1 1 16rem;
}

.profile-document-card__icon {
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    flex-shrink: 0;
}

.profile-document-card__content {
    min-width: 0;
    flex: 1 1 auto;
}

.profile-document-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.profile-document-card__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.profile-document-card__status {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.profile-document-card__status--valid {
    background: rgba(25, 135, 84, 0.12);
    color: #157347;
}

.profile-document-card__status--expiring_soon {
    background: rgba(255, 193, 7, 0.18);
    color: #946200;
}

.profile-document-card__status--expired {
    background: rgba(220, 53, 69, 0.14);
    color: #b02a37;
}

.profile-document-card__status--no_expiry {
    background: rgba(30, 58, 95, 0.08);
    color: rgba(30, 58, 95, 0.72);
}

.profile-document-card__meta {
    display: grid;
    gap: 0.2rem;
    margin: 0;
}

.profile-document-card__meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    font-size: 0.82rem;
}

.profile-document-card__meta-row dt {
    margin: 0;
    font-weight: 600;
    color: rgba(30, 58, 95, 0.62);
}

.profile-document-card__meta-row dd {
    margin: 0;
    color: #334155;
}

.profile-document-card__meta-note {
    color: #946200;
    font-weight: 600;
}

.profile-document-card__photos {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.75rem;
}

.profile-document-card__photo {
    display: block;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(30, 58, 95, 0.12);
}

.profile-document-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-document-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.45rem;
}

.profile-document-edit-photos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
    gap: 0.85rem;
}

.profile-document-edit-photos__item {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.profile-document-edit-photos__thumb {
    display: block;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(30, 58, 95, 0.12);
}

.profile-document-edit-photos__thumb img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
}

.profile-task-categories__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.profile-task-categories__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    border: 1px solid rgba(30, 58, 95, 0.08);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.profile-task-categories__chip i {
    color: var(--brand-secondary);
    font-size: 0.75rem;
}

.profile-task-categories-modal__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
    gap: 0.65rem;
}

.profile-task-category-option {
    margin: 0;
    cursor: pointer;
}

.profile-task-category-option__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.profile-task-category-option__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 6.5rem;
    padding: 0.85rem 0.65rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 14px;
    background: #fff;
    text-align: center;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.profile-task-category-option__icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 0.95rem;
}

.profile-task-category-option__name {
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--brand-primary);
}

.profile-task-category-option__meta {
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.2;
    color: rgba(30, 58, 95, 0.55);
}

.profile-task-category-option:hover .profile-task-category-option__card {
    border-color: rgba(45, 90, 135, 0.24);
    background: rgba(30, 58, 95, 0.03);
}

.profile-task-category-option__input:checked + .profile-task-category-option__card {
    border-color: rgba(230, 126, 34, 0.42);
    background: rgba(230, 126, 34, 0.08);
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.1);
}

.profile-task-category-option__input:checked + .profile-task-category-option__card .profile-task-category-option__icon {
    background: rgba(230, 126, 34, 0.16);
    color: var(--brand-accent);
}

.profile-company-professions__group + .profile-company-professions__group {
    margin-top: 1rem;
}

.profile-company-professions__group-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
}

.profile-company-professions__group-head .profile-company-professions__group-title {
    margin-bottom: 0;
}

.profile-company-professions__group-add {
    flex-shrink: 0;
}

.profile-company-professions__custom-card {
    cursor: default;
}

.profile-company-professions__custom-card .profile-task-category-option__card.is-custom {
    position: relative;
    border-color: rgba(230, 126, 34, 0.42);
    background: rgba(230, 126, 34, 0.08);
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.1);
    padding-right: 1.75rem;
}

.profile-company-professions__custom-card .profile-company-professions__custom-remove {
    position: absolute;
    top: 0.35rem;
    right: 0.35rem;
    margin-left: 0;
}

.profile-company-professions__group-title {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(30, 58, 95, 0.62);
    margin-bottom: 0.55rem;
}

.profile-company-professions__custom-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.profile-company-professions__custom-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.15rem;
    height: 1.15rem;
    margin-left: 0.15rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: rgba(30, 58, 95, 0.72);
    line-height: 1;
}

.profile-company-professions__custom-remove:hover {
    background: rgba(220, 53, 69, 0.12);
    color: #b02a37;
}

.profile-company-professions-accordion .accordion-item,
.profile-company-scopes-accordion .accordion-item {
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 14px;
    overflow: hidden;
}

.profile-company-professions-accordion .accordion-button,
.profile-company-scopes-accordion .accordion-button {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.03);
    box-shadow: none;
    gap: 0.5rem;
}

.profile-company-professions-accordion .accordion-button:not(.collapsed),
.profile-company-scopes-accordion .accordion-button:not(.collapsed) {
    background: rgba(30, 58, 95, 0.05);
    color: var(--brand-primary);
}

.profile-company-professions-accordion .accordion-button:focus,
.profile-company-scopes-accordion .accordion-button:focus {
    box-shadow: none;
    border-color: rgba(30, 58, 95, 0.12);
}

.profile-company-professions-accordion .accordion-body,
.profile-company-scopes-accordion .accordion-body {
    padding-top: 0.85rem;
    max-height: min(28rem, 70vh);
    overflow-y: auto;
}

.profile-company-professions-accordion__title {
    flex: 1 1 auto;
    text-align: left;
}

.profile-company-professions-accordion__count {
    margin-left: auto;
    margin-right: 0.35rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.profile-task-category-option__input:focus-visible + .profile-task-category-option__card {
    outline: 2px solid rgba(45, 90, 135, 0.35);
    outline-offset: 2px;
}

@media (max-width: 575.98px) {
    .profile-settings-form__footer .btn {
        width: 100%;
    }
}

.project-code-card {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    border-radius: 14px;
    padding: 1.25rem 1.5rem;
}

.project-code-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.85;
}

.project-code-value {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    margin: 0.35rem 0 0.75rem;
}

.project-code-help {
    font-size: 0.85rem;
    opacity: 0.9;
}

.project-members-panel__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-bottom: 1rem;
}

.project-members-panel__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.2rem;
}

.project-members-panel__help {
    font-size: 0.85rem;
    color: #64748b;
}

.project-members-panel__count {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.project-members-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
    gap: 0.85rem;
}

.project-member-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 14px;
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
    box-shadow: 0 2px 12px rgba(30, 58, 95, 0.05);
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.project-member-card:hover {
    border-color: rgba(45, 90, 135, 0.22);
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.project-member-card__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1rem 0.85rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.project-member-card__avatar .project-member-avatar,
.project-member-card__avatar .user-avatar--xs {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 0.78rem;
}

.project-member-card__identity {
    min-width: 0;
    flex: 1;
}

.project-member-card__name {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.35;
    word-break: break-word;
}

.project-member-card__body {
    display: grid;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    flex: 1;
}

.project-member-card__detail {
    display: grid;
    gap: 0.2rem;
}

.project-member-card__detail-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.project-member-card__detail-value {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: 0.82rem;
    line-height: 1.45;
    color: #334155;
    word-break: break-word;
}

.project-member-card__detail-value i {
    margin-top: 0.12rem;
    flex-shrink: 0;
    color: var(--brand-secondary);
    font-size: 0.75rem;
}

.project-member-card__detail-value--muted {
    color: #94a3b8;
}

.project-member-card__link {
    color: var(--brand-primary);
    text-decoration: none;
}

.project-member-card__link:hover {
    color: var(--brand-secondary);
    text-decoration: underline;
}

.project-member-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
    background: rgba(248, 250, 252, 0.85);
}

.project-member-card__feedback {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.project-member-card__feedback .support-star-rating {
    gap: 0.1rem;
}

.project-member-card__feedback .support-star-rating i {
    font-size: 0.72rem;
}

.project-member-card__feedback-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
}

.project-member-card__feedback-btn {
    white-space: nowrap;
}

.project-contractor-feedback-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.project-contractor-feedback-panel__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0 0 0.25rem;
}

.project-contractor-feedback-panel__help {
    font-size: 0.875rem;
    color: #64748b;
}

.project-contractor-feedback-list {
    display: grid;
    gap: 1rem;
}

.project-contractor-feedback-card {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    padding: 1rem 1.1rem;
    box-shadow: 0 2px 10px rgba(30, 58, 95, 0.04);
}

.project-contractor-feedback-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.project-contractor-feedback-card__name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0 0 0.15rem;
}

.project-contractor-feedback-card__meta {
    font-size: 0.78rem;
    color: #64748b;
}

.project-contractor-feedback-card__message {
    margin: 0 0 0.85rem;
    color: #334155;
    font-size: 0.92rem;
    line-height: 1.55;
}

.project-contractor-feedback-card__actions {
    display: flex;
    justify-content: flex-end;
}

.company-user-feedback-panel__head {
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.05) 0%, rgba(230, 126, 34, 0.04) 100%);
}

.company-user-feedback-panel__intro {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-width: 0;
}

.company-user-feedback-panel__title-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.company-user-feedback-panel__icon {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 0.95rem;
    box-shadow: 0 6px 14px rgba(30, 58, 95, 0.16);
}

.company-user-feedback-panel__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    padding-left: 3.1rem;
}

.company-user-feedback-panel__summary .support-star-rating i {
    font-size: 0.82rem;
}

.company-user-feedback-panel__average {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.company-user-feedback-panel__count {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: #475569;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.company-user-feedback-panel__action {
    flex-shrink: 0;
    white-space: nowrap;
}

.company-user-feedback-panel__body {
    display: flex;
    flex-direction: column;
}

.company-user-feedback-panel__list {
    display: grid;
    gap: 0.85rem;
    max-height: 22rem;
    overflow-y: auto;
    padding-right: 0.15rem;
}

.company-user-feedback-item {
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 14px;
    background: linear-gradient(180deg, #fff 0%, rgba(248, 250, 252, 0.92) 100%);
    padding: 0.95rem 1rem;
    box-shadow: 0 2px 10px rgba(30, 58, 95, 0.04);
}

.company-user-feedback-item__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.7rem;
}

.company-user-feedback-item__author {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.company-user-feedback-item__avatar {
    flex-shrink: 0;
    width: 2.2rem;
    height: 2.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.company-user-feedback-item__meta {
    min-width: 0;
}

.company-user-feedback-item__name {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
}

.company-user-feedback-item__date {
    font-size: 0.74rem;
    color: #64748b;
    margin-top: 0.1rem;
}

.company-user-feedback-item__head .support-star-rating {
    flex-shrink: 0;
}

.company-user-feedback-item__head .support-star-rating i {
    font-size: 0.8rem;
}

.company-user-feedback-item__message {
    margin: 0;
    padding: 0.75rem 0.85rem;
    border-left: 3px solid rgba(230, 126, 34, 0.55);
    border-radius: 0 10px 10px 0;
    background: rgba(30, 58, 95, 0.03);
    color: #334155;
    font-size: 0.88rem;
    line-height: 1.55;
}

@media (max-width: 991.98px) {
    .company-user-feedback-panel__summary {
        padding-left: 0;
    }
}

@media (max-width: 575.98px) {
    .company-user-feedback-panel__head {
        align-items: stretch;
    }

    .company-user-feedback-panel__action {
        width: 100%;
        justify-content: center;
    }

    .company-user-feedback-item__head {
        flex-direction: column;
    }
}

.project-member-card__role {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

.project-member-card__role--contractor {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.project-member-card__role--subcontractor {
    background: rgba(230, 126, 34, 0.12);
    color: #c05621;
}

.project-member-card__role--worker {
    background: rgba(59, 130, 246, 0.12);
    color: #2563eb;
}

.project-member-card__role--building_owner {
    background: rgba(16, 185, 129, 0.12);
    color: #047857;
}

.project-recommendations-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.project-recommendations-panel__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 0.25rem;
}

.project-recommendations-panel__help {
    font-size: 0.875rem;
    color: #64748b;
}

.project-recommendations-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1rem;
}

.project-recommendation-card {
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 0.75rem;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.project-recommendation-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1rem 0.75rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.project-recommendation-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 0.15rem;
}

.project-recommendation-card__meta {
    font-size: 0.8rem;
    color: #64748b;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.project-recommendation-card__body {
    padding: 0.85rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.project-recommendation-card__section {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.project-recommendation-card__label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
}

.project-recommendation-card__text {
    font-size: 0.875rem;
    color: #334155;
    margin-bottom: 0;
    white-space: pre-wrap;
}

.project-recommendation-card .support-star-rating i {
    font-size: 0.85rem;
}

.project-sub-card__status--removed {
    background: rgba(100, 116, 139, 0.14);
    color: #475569;
}

.worker-invite-modal__code {
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.06) 0%, rgba(230, 126, 34, 0.08) 100%);
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.company-user-invite-modal__number {
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.06) 0%, rgba(230, 126, 34, 0.08) 100%);
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.company-user-invite-modal__number-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.company-user-invite-modal__number-value {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--brand);
}

.worker-invite-modal__projects-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.65rem;
}

.worker-invite-modal__projects-hint {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}

.worker-invite-project-cards {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 0.65rem;
}

.worker-invite-project-cards--multi {
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
}

.worker-invite-project-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    width: 100%;
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease, background 0.15s ease;
}

.worker-invite-project-card:hover {
    border-color: rgba(45, 90, 135, 0.35);
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.worker-invite-project-card.is-selected {
    border-color: var(--brand-secondary);
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.05) 0%, rgba(45, 90, 135, 0.08) 100%);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.12);
}

.worker-invite-project-card__select {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    width: 1.35rem;
    height: 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: transparent;
    font-size: 0.72rem;
    transition: background 0.15s ease, color 0.15s ease;
}

.worker-invite-project-card.is-selected .worker-invite-project-card__select {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    box-shadow: 0 4px 12px rgba(30, 58, 95, 0.2);
}

.worker-invite-project-card__name {
    padding-right: 1.75rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.35;
    word-break: break-word;
}

.worker-invite-project-card__code-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    width: 100%;
    margin-top: 0.15rem;
    padding-top: 0.55rem;
    border-top: 1px dashed rgba(226, 232, 240, 0.95);
}

.worker-invite-project-card__code-label {
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
}

.worker-invite-project-card__code {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: var(--brand-primary);
}

.worker-invite-project-card.is-selected .worker-invite-project-card__code {
    color: var(--brand-secondary);
}

.worker-invite-modal__code-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
}

.worker-invite-modal__code-value {
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: var(--brand-primary);
    margin: 0.2rem 0 0.35rem;
}

.worker-invite-modal__code-help {
    font-size: 0.78rem;
    color: #64748b;
}

/* Workers panel */
.workers-panel .admin-panel-card__body {
    padding: 1rem 1.15rem 1.15rem;
}

.workers-panel__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem 1rem;
}

.workers-panel__intro {
    flex: 1 1 14rem;
    min-width: 0;
}

.workers-panel__filters {
    display: grid;
    gap: 0.45rem;
    margin-bottom: 1rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.03);
}

.workers-panel__filters-label {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.workers-panel__filters-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.workers-panel__filters-select {
    flex: 1 1 12rem;
    min-width: 0;
    max-width: 22rem;
}

.workers-panel__filters-clear {
    padding-left: 0;
    padding-right: 0;
    text-decoration: none;
}

.worker-member-card__detail--project {
    padding-bottom: 0.15rem;
    margin-bottom: 0.1rem;
    border-bottom: 1px dashed rgba(226, 232, 240, 0.95);
}

.worker-member-card__project-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--brand-primary);
    word-break: break-word;
}

.worker-member-card__project-chip i {
    color: var(--brand-secondary);
    font-size: 0.72rem;
}

.workers-panel__stats {
    margin-bottom: 1.15rem;
}

.workers-panel__stats-card {
    padding: 1.1rem 1.15rem 1rem;
    border: 1px solid rgba(45, 90, 135, 0.14);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.04) 0%, rgba(45, 90, 135, 0.07) 55%, rgba(230, 126, 34, 0.05) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.workers-panel__stats-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.9rem;
}

.workers-panel__stats-head-main {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.workers-panel__stats-icon {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 1rem;
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.18);
}

.workers-panel__stats-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.25;
}

.workers-panel__stats-subtitle {
    margin-top: 0.15rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
}

.workers-panel__stats-total {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.05rem;
    padding: 0.45rem 0.7rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(226, 232, 240, 0.95);
}

.workers-panel__stats-total-value {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1;
}

.workers-panel__stats-total-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.workers-panel__stats-progress {
    display: flex;
    width: 100%;
    height: 0.45rem;
    margin-bottom: 0.95rem;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(30, 58, 95, 0.08);
}

.workers-panel__stats-progress-segment {
    display: block;
    height: 100%;
    min-width: 0;
    transition: width 0.25s ease;
}

.workers-panel__stats-progress-segment--active {
    background: linear-gradient(90deg, #27ae60 0%, #2ecc71 100%);
}

.workers-panel__stats-progress-segment--pending {
    background: linear-gradient(90deg, #f39c12 0%, #f1c40f 100%);
}

.workers-panel__stats-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.workers-panel__stats-metric {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.75rem 0.8rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(226, 232, 240, 0.95);
}

.workers-panel__stats-metric--active {
    border-left: 3px solid var(--brand-success);
}

.workers-panel__stats-metric--pending {
    border-left: 3px solid var(--brand-warning);
}

.workers-panel__stats-metric--total {
    border-left: 3px solid var(--brand-secondary);
}

.workers-panel__stats-metric-icon {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 0.82rem;
}

.workers-panel__stats-metric--total .workers-panel__stats-metric-icon {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.workers-panel__stats-metric--active .workers-panel__stats-metric-icon {
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
}

.workers-panel__stats-metric--pending .workers-panel__stats-metric-icon {
    background: rgba(243, 156, 18, 0.14);
    color: var(--brand-warning);
}

.workers-panel__stats-metric-body {
    min-width: 0;
}

.workers-panel__stats-metric-value {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1.05;
}

.workers-panel__stats-metric-label {
    margin-top: 0.12rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #334155;
}

.workers-panel__stats-metric-meta {
    margin-top: 0.18rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: #94a3b8;
    line-height: 1.35;
}

.workers-panel__stats-comms {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(148, 163, 184, 0.22);
}

.workers-panel__stats-comms-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: #1e293b;
}

.workers-panel__stats-comms-help {
    margin-top: 0.15rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
    line-height: 1.35;
}

.workers-panel__stats-comms-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    flex-shrink: 0;
}

.workers-panel__stats-comms-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    margin-left: 0.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.1);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
}

.worker-broadcast-history {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.worker-broadcast-history__item {
    padding: 0.95rem 1rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #f8fafc;
}

.worker-broadcast-history__subject {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
    color: #1e293b;
}

.worker-broadcast-history__meta {
    margin-top: 0.2rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
}

.worker-broadcast-history__body {
    margin-top: 0.65rem;
    font-size: 0.82rem;
    line-height: 1.55;
    color: #475569;
    white-space: pre-wrap;
}

.worker-broadcast-history__attachments {
    margin-top: 0.75rem;
}

.worker-broadcast-history__attachments-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.worker-broadcast-history__attachment-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.35rem;
}

.worker-broadcast-history__attachment {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.55rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--brand);
    text-decoration: none;
}

.worker-broadcast-history__attachment:hover {
    border-color: var(--brand);
    background: rgba(30, 58, 95, 0.04);
    color: var(--brand);
}

.worker-broadcast-history__recipients {
    margin-top: 0.75rem;
    font-size: 0.75rem;
}

.worker-broadcast-history__recipients summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--brand);
}

.worker-broadcast-history__recipient-list {
    margin-top: 0.4rem;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    background: #fff;
    font-size: 0.72rem;
    color: #64748b;
    word-break: break-word;
}

.workers-panel__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(21rem, 1fr));
    gap: 0.75rem;
}

.worker-member-card {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    height: 100%;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.worker-member-card:hover {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.worker-member-card--active {
    border-left: 3px solid var(--brand-success);
}

.worker-member-card--invited {
    border-left: 3px solid var(--brand-warning);
}

.worker-member-card__top {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.worker-member-card__avatar {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(230, 126, 34, 0.16) 0%, rgba(30, 58, 95, 0.1) 100%);
    color: var(--brand-primary);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.worker-member-card--active .worker-member-card__avatar {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.16);
}

.worker-member-card__identity {
    flex: 1;
    min-width: 0;
}

.worker-member-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.45rem;
}

.worker-member-card__name {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
    word-break: break-word;
}

.worker-member-card--available {
    border-style: dashed;
}

.worker-member-card__team-badge {
    display: inline-flex;
    align-items: center;
    margin-left: 0.35rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 700;
    color: #64748b;
    background: rgba(100, 116, 139, 0.12);
}

.worker-member-card__team-badge--mine {
    color: #1e7e45;
    background: rgba(39, 174, 96, 0.12);
}

.worker-member-card__claim-form {
    margin: 0;
}

.workers-panel__notice {
    font-size: 0.875rem;
    margin-bottom: 0;
}

.workers-panel__invite-footer {
    display: flex;
    justify-content: flex-end;
}

.worker-member-card__role {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.worker-member-card__role i {
    color: var(--brand-accent);
    font-size: 0.68rem;
}

.worker-member-card__document-alert {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    border: 1px solid transparent;
}

.worker-member-card__document-alert--expired {
    border-color: rgba(220, 53, 69, 0.28);
    background: rgba(220, 53, 69, 0.08);
    color: #842029;
}

.worker-member-card__document-alert--expiring {
    border-color: rgba(243, 156, 18, 0.32);
    background: rgba(243, 156, 18, 0.1);
    color: #8a5a00;
}

.worker-member-card__document-alert-icon {
    width: 1.65rem;
    height: 1.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    flex-shrink: 0;
    font-size: 0.72rem;
}

.worker-member-card__document-alert--expired .worker-member-card__document-alert-icon {
    background: rgba(220, 53, 69, 0.14);
    color: #b02a37;
}

.worker-member-card__document-alert--expiring .worker-member-card__document-alert-icon {
    background: rgba(243, 156, 18, 0.18);
    color: #b9770e;
}

.worker-member-card__document-alert-title {
    font-size: 0.74rem;
    font-weight: 700;
    line-height: 1.3;
}

.worker-member-card__document-alert-text {
    margin-top: 0.15rem;
    font-size: 0.72rem;
    line-height: 1.35;
}

.worker-member-card__document-alert--expired .worker-member-card__document-alert-text {
    color: #842029;
}

.worker-member-card__document-alert--expiring .worker-member-card__document-alert-text {
    color: #8a5a00;
}

.worker-member-card__details {
    display: grid;
    gap: 0.45rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
    border: 1px solid rgba(226, 232, 240, 0.9);
}

.worker-member-card__detail {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    min-width: 0;
}

.worker-member-card__detail--inline {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.worker-member-card__detail--inline .worker-member-card__detail-label {
    flex-shrink: 0;
}

.worker-member-card__detail--inline .worker-member-card__detail-value {
    flex-shrink: 0;
    white-space: nowrap;
    text-align: right;
}

.worker-member-card__detail-label {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.worker-member-card__detail-value {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #334155;
    word-break: break-word;
}

.worker-member-card__contact-link {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--brand-secondary);
    text-decoration: none;
    word-break: break-word;
    line-height: 1.35;
    transition: color 0.15s ease;
}

.worker-member-card__contact-link i {
    flex-shrink: 0;
    margin-top: 0.12rem;
    font-size: 0.72rem;
    opacity: 0.85;
}

.worker-member-card__contact-link:hover,
.worker-member-card__contact-link:focus {
    color: var(--brand-primary);
    text-decoration: underline;
    outline: none;
}

.worker-member-card__footer {
    margin-top: auto;
}

.worker-member-card__footer-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.worker-member-card__remove-form {
    margin: 0;
}

.worker-member-card__footer-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    margin-left: auto;
    flex-wrap: wrap;
}

.worker-member-card__details-btn {
    white-space: nowrap;
}

.worker-show-panel__hero {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: 1rem;
}

.worker-show-panel__avatar {
    flex-shrink: 0;
    width: 3.25rem;
    height: 3.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.16);
}

.worker-show-panel__identity {
    flex: 1;
    min-width: 0;
}

.worker-show-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.worker-show-panel__name {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
    word-break: break-word;
}

.worker-show-panel__role {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.35rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.worker-show-panel__role i {
    color: var(--brand-accent);
    font-size: 0.7rem;
}

.worker-show-panel__document-alert {
    margin-bottom: 1rem;
}

.worker-show-panel__details {
    margin-top: 0;
}

.worker-member-card__remove {
    white-space: nowrap;
}

.worker-member-card__foot-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
}

.worker-member-card__foot-chip--success {
    background: rgba(39, 174, 96, 0.12);
    color: #1f7a43;
}

.worker-member-card__foot-chip--pending {
    background: rgba(243, 156, 18, 0.14);
    color: #b9770e;
}

.people-directory-panel__search-row {
    display: flex;
    align-items: stretch;
    gap: 0.65rem;
    flex-wrap: wrap;
    max-width: 42rem;
}

.people-directory-panel__search-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.65rem;
    flex-shrink: 0;
}

.people-directory-panel__search-input {
    flex: 1 1 16rem;
    min-width: 0;
}

.people-directory-panel__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(21rem, 1fr));
    gap: 0.75rem;
}

.people-directory-panel__empty-icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.12);
    color: #64748b;
    font-size: 1.1rem;
}

.companies-directory-panel__toolbar {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: 0.75rem;
}

.companies-directory-panel__field {
    min-width: 0;
}

.companies-directory-panel__field--profession {
    flex: 0 1 16rem;
    min-width: 12rem;
}

.companies-directory-panel__field--search {
    flex: 1 1 18rem;
    max-width: 28rem;
}

.companies-directory-panel__field .form-label {
    margin-bottom: 0.35rem;
}

.companies-directory-panel__search-input {
    min-height: 38px;
}

.companies-directory-panel__actions {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    gap: 0.65rem;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .companies-directory-panel__toolbar {
        flex-wrap: wrap;
    }

    .companies-directory-panel__field--profession,
    .companies-directory-panel__field--search {
        flex: 1 1 100%;
        max-width: none;
    }

    .companies-directory-panel__actions {
        width: 100%;
    }
}

.companies-directory-panel__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(18.5rem, 1fr));
    gap: 0.85rem;
}

.companies-directory-panel__empty-icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.12);
    color: #64748b;
    font-size: 1.1rem;
}

.contractor-company-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    height: 100%;
    padding: 1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.95rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
    overflow: hidden;
}

.contractor-company-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-secondary), var(--brand-accent));
    opacity: 0.85;
}

.contractor-company-card:hover {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 10px 24px rgba(30, 58, 95, 0.1);
    transform: translateY(-2px);
}

.contractor-company-card--linked::before {
    background: linear-gradient(90deg, var(--brand-accent), #fbbf24);
}

.contractor-company-card__top {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    align-items: start;
}

.contractor-company-card__avatar {
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.85rem;
    background: linear-gradient(145deg, #dbeafe 0%, #fff7ed 100%);
    color: var(--brand-primary);
    font-size: 0.82rem;
    font-weight: 800;
    box-shadow: inset 0 0 0 1px rgba(30, 58, 95, 0.06);
}

.contractor-company-card__identity {
    min-width: 0;
}

.contractor-company-card__name {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1.3;
}

.contractor-company-card__name-link {
    color: inherit;
    text-decoration: none;
}

.contractor-company-card__name-link:hover {
    color: var(--brand-secondary);
}

.contractor-company-card__location {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.25rem;
    font-size: 0.78rem;
    color: #64748b;
    min-width: 0;
}

.contractor-company-card__location i {
    color: var(--brand-accent);
    font-size: 0.7rem;
    flex-shrink: 0;
}

.contractor-company-card__location span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contractor-company-card__location--empty {
    color: #94a3b8;
}

.contractor-company-card__professions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.contractor-company-card__profession {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: #fff;
    color: var(--brand-primary);
    font-size: 0.74rem;
    font-weight: 600;
}

.contractor-company-card__profession i {
    color: var(--brand-accent);
    font-size: 0.7rem;
}

.contractor-company-card__profession--more {
    background: #f1f5f9;
    color: #64748b;
    border-color: transparent;
}

.contractor-company-card__footer {
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.contractor-company-card__stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.contractor-company-card__stat {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
    font-size: 0.75rem;
    font-weight: 700;
}

.contractor-company-card__stat i {
    color: var(--brand-secondary);
    font-size: 0.72rem;
}

.contractor-company-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.12);
    color: #c2410c;
    font-size: 0.72rem;
    font-weight: 700;
}

.contractor-company-card__badge i {
    font-size: 0.68rem;
}

.contractor-company-card__profile-btn {
    width: 2.1rem;
    height: 2.1rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 0.55rem;
}

.contractor-person-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    height: 100%;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
    overflow: visible;
}

.contractor-person-card__top {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.contractor-person-card__avatar {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(45, 90, 135, 0.16) 0%, rgba(30, 58, 95, 0.1) 100%);
    color: var(--brand-primary);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    object-fit: cover;
}

.contractor-person-card__avatar--photo {
    padding: 0;
}

.contractor-person-card__identity {
    flex: 1;
    min-width: 0;
}

.contractor-person-card__name {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
    word-break: break-word;
}

.contractor-person-card__company {
    margin-top: 0.15rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
}

.contractor-person-card__roles {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.45rem;
}

.contractor-person-card__role {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #475569;
    background: rgba(100, 116, 139, 0.12);
}

.contractor-person-card__details {
    display: grid;
    gap: 0.45rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
    border: 1px solid rgba(226, 232, 240, 0.9);
}

.contractor-person-card__detail {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    min-width: 0;
}

.contractor-person-card__detail-label {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.contractor-person-card__detail-value {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #334155;
    word-break: break-word;
}

.contractor-person-card__detail-value--muted {
    color: #94a3b8;
    font-weight: 500;
}

.contractor-person-card__detail-link {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--brand-secondary);
    text-decoration: none;
    word-break: break-word;
}

.contractor-person-card__detail-link:hover,
.contractor-person-card__detail-link:focus {
    color: var(--brand-primary);
    text-decoration: underline;
}

.contractor-person-card__detail--companies {
    gap: 0.35rem;
}

.contractor-person-card__company-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.contractor-person-card__company-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--brand-primary);
    background: rgba(45, 90, 135, 0.1);
    word-break: break-word;
}

.contractor-person-card__footer {
    margin-top: auto;
    display: flex;
    justify-content: flex-end;
}

.contractor-person-card__footer-actions {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
}

.contractor-person-card__action-btn.btn-icon {
    position: relative;
    width: 2.15rem;
    height: 2.15rem;
    min-height: 2.15rem;
    flex: 0 0 auto;
}

.contractor-person-card__action-btn.btn-icon i {
    font-size: 0.85rem;
}

.contractor-person-card__action-btn[data-tooltip]::before,
.contractor-person-card__action-btn[data-tooltip]::after {
    position: absolute;
    left: 50%;
    z-index: 40;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition:
        opacity 0.18s ease,
        transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0.18s ease;
}

.contractor-person-card__action-btn[data-tooltip]::after {
    content: attr(data-tooltip);
    bottom: calc(100% + 0.7rem);
    transform: translate(-50%, 0.45rem) scale(0.92);
    min-width: max-content;
    max-width: 14rem;
    padding: 0.55rem 0.8rem;
    border-radius: 0.7rem;
    background: #0f172a;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.3;
    letter-spacing: 0.01em;
    text-align: center;
    white-space: nowrap;
    box-shadow:
        0 12px 28px rgba(15, 23, 42, 0.28),
        0 2px 6px rgba(15, 23, 42, 0.16);
}

.contractor-person-card__action-btn[data-tooltip]::before {
    content: '';
    bottom: calc(100% + 0.35rem);
    transform: translate(-50%, 0.45rem) rotate(45deg);
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 0.12rem;
    background: #0f172a;
    box-shadow: 2px 2px 4px rgba(15, 23, 42, 0.12);
}

.contractor-person-card__action-btn[data-tooltip]:hover::before,
.contractor-person-card__action-btn[data-tooltip]:hover::after,
.contractor-person-card__action-btn[data-tooltip]:focus-visible::before,
.contractor-person-card__action-btn[data-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0) scale(1);
}

.contractor-person-card__action-btn[data-tooltip]:hover::before,
.contractor-person-card__action-btn[data-tooltip]:focus-visible::before {
    transform: translate(-50%, 0) rotate(45deg) scale(1);
}

.contractor-person-card__footer-actions:has(.contractor-person-card__action-btn:hover),
.contractor-person-card__footer-actions:has(.contractor-person-card__action-btn:focus-visible) {
    z-index: 5;
    position: relative;
}

.contractor-person-card:has(.contractor-person-card__action-btn:hover),
.contractor-person-card:has(.contractor-person-card__action-btn:focus-visible) {
    z-index: 6;
}

.people-direct-email__section-title {
    margin: 0 0 0.65rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.people-direct-email__compose {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
}

.people-direct-email__history-body {
    max-height: 16rem;
    overflow-y: auto;
}

.people-show-panel__header-avatar {
    width: 3rem;
    height: 3rem;
    border-radius: 12px;
    object-fit: cover;
}

.people-show-panel__header-avatar--initials {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
}

.people-show-panel__roles {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 1rem;
}

.people-show-panel__section-label {
    margin-bottom: 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.people-show-panel__professions {
    margin-top: 1rem;
}

.people-show-panel__profession-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.people-show-panel__profession-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--brand-primary);
    background: rgba(45, 90, 135, 0.1);
}

.people-show-panel__bio {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
}

.people-show-panel__project-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.people-show-panel__project-row:last-child {
    border-bottom: 0;
}

.people-show-panel__project-name {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.people-show-panel__project-role {
    margin-top: 0.12rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}

.people-show-panel__project-meta {
    margin-top: 0.2rem;
    font-size: 0.72rem;
    color: #94a3b8;
}

.people-show-panel__projects {
    padding: 1rem !important;
}

.people-project-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.people-project-card {
    display: grid;
    gap: 0.9rem;
    padding: 1rem 1.05rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.04);
}

.people-project-card.is-card-locked {
    border-color: rgba(185, 28, 28, 0.18);
    background: linear-gradient(180deg, #fff 0%, #fff7f7 100%);
}

.people-project-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.people-project-card__identity {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    min-width: 0;
}

.people-project-card__icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.people-project-card__titles {
    min-width: 0;
}

.people-project-card__name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 750;
    color: var(--brand-primary);
    line-height: 1.25;
}

.people-project-card__role {
    margin-top: 0.15rem;
    font-size: 0.78rem;
    font-weight: 650;
    color: #64748b;
}

.people-project-card__meta {
    margin-top: 0.2rem;
    font-size: 0.74rem;
    color: #94a3b8;
}

.people-project-card__badges {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
    flex-shrink: 0;
}

.people-project-card__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 0;
}

.people-project-card__stat {
    display: grid;
    gap: 0.18rem;
    padding: 0.65rem 0.7rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.people-project-card__stat.is-blocked {
    border-color: rgba(185, 28, 28, 0.18);
    background: rgba(254, 242, 242, 0.7);
}

.people-project-card__stat dt {
    margin: 0;
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}

.people-project-card__stat dd {
    margin: 0;
    display: grid;
    gap: 0.1rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.25;
}

.people-project-card__stat-sub {
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
}

.people-project-card__ok {
    color: #1e7a45;
}

.people-project-card__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.people-project-card__footer--muted {
    justify-content: flex-start;
}

.people-project-card__access-label {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.people-project-card__access-title {
    font-size: 0.8rem;
    font-weight: 750;
    color: var(--brand-primary);
}

.people-project-card__access-help {
    font-size: 0.74rem;
    color: #64748b;
    line-height: 1.35;
}

.people-project-card__switch-form {
    flex-shrink: 0;
}

@media (max-width: 991.98px) {
    .people-project-card-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .people-project-card__stats {
        grid-template-columns: 1fr;
    }
}

.workers-panel__empty {
    padding: 2rem 1rem;
    text-align: center;
}

.workers-panel__empty-icon {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 1.25rem;
}

.workers-panel__empty-title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.workers-panel__empty-text {
    margin: 0 auto 1rem;
    max-width: 28rem;
    font-size: 0.875rem;
    color: #64748b;
}

.workers-panel__flow {
    max-width: 30rem;
    margin: 0 auto 1.15rem;
    text-align: left;
}

@media (max-width: 767.98px) {
    .workers-panel__stats-head {
        flex-direction: column;
        align-items: stretch;
    }

    .workers-panel__stats-total {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        width: 100%;
    }

    .workers-panel__stats-metrics {
        grid-template-columns: 1fr;
    }

    .workers-panel__stats-comms {
        flex-direction: column;
        align-items: stretch;
    }

    .workers-panel__stats-comms-actions {
        width: 100%;
    }

    .workers-panel__stats-comms-actions .btn {
        flex: 1 1 auto;
    }

    .workers-panel__head .btn {
        width: 100%;
    }

    .workers-panel__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .workers-panel__grid {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
        padding-bottom: 0.35rem;
        margin: 0 -0.15rem;
        padding-left: 0.15rem;
        padding-right: 0.15rem;
    }

    .workers-panel__grid > .worker-member-card {
        flex: 0 0 auto;
        width: min(86vw, 21rem);
        scroll-snap-align: start;
    }
}

.project-invite-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border);
}

.project-invite-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.project-switch-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 1rem 1.1rem;
    height: 100%;
}

.project-switch-card.is-active {
    border-color: rgba(39, 174, 96, 0.45);
    box-shadow: 0 0 0 3px rgba(39, 174, 96, 0.1);
}

.apartment-area-badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.08);
    border-radius: 999px;
    padding: 0.15rem 0.55rem;
    margin-right: 0.35rem;
}

.dashboard-content {
    padding: 1rem;
    padding-bottom: 5rem;
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
}

@media (min-width: 992px) {
    .dashboard-content {
        padding: 1.5rem;
        padding-bottom: 1.5rem;
    }
}

/* Dashboard form controls */
.dashboard-content .form-label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--brand-primary);
    margin-bottom: 0.35rem;
}

.dashboard-content .form-control,
.dashboard-content textarea.form-control {
    border: 1px solid #cfd8e3;
    border-radius: 8px;
    padding: 0.5rem 0.8rem;
    font-size: 0.9375rem;
    color: var(--brand-primary);
    background: #fff;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.dashboard-content .form-control::placeholder {
    color: #94a3b8;
    opacity: 1;
}

.dashboard-content .form-control:hover:not(:disabled):not(:focus) {
    border-color: #b8c5d4;
}

.dashboard-content .form-control:focus,
.dashboard-content textarea.form-control:focus {
    border-color: var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.14);
    outline: none;
    background: #fff;
}

.dashboard-content .form-control:disabled,
.dashboard-content .form-control[readonly] {
    background: #f1f5f9;
    color: #64748b;
    cursor: not-allowed;
}

.dashboard-content .form-control-sm {
    padding: 0.38rem 0.62rem;
    font-size: 0.875rem;
    border-radius: 7px;
}

.dashboard-content .form-control.is-invalid,
.dashboard-content .form-control:invalid:not(:placeholder-shown):not(:focus) {
    border-color: var(--brand-danger);
}

.dashboard-content .form-control.is-invalid:focus {
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.14);
}

.dashboard-content input[type="number"]::-webkit-inner-spin-button,
.dashboard-content input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.dashboard-content input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.dashboard-content input[type="checkbox"],
.dashboard-content input[type="radio"],
.dashboard-content .form-check-input {
    appearance: none;
    -webkit-appearance: none;
    margin: 0;
    cursor: pointer;
    flex-shrink: 0;
    border: 1.5px solid #c5d0dc;
    background: #fff;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease;
}

.dashboard-content input[type="checkbox"],
.dashboard-content .form-check-input[type="checkbox"] {
    position: relative;
    width: 1.125rem;
    height: 1.125rem;
    border-radius: 5px;
}

.dashboard-content input[type="radio"] {
    width: 1.125rem;
    height: 1.125rem;
    border-radius: 50%;
}

.dashboard-content input[type="checkbox"]:hover,
.dashboard-content input[type="radio"]:hover,
.dashboard-content .form-check-input:hover {
    border-color: var(--brand-secondary);
}

.dashboard-content input[type="checkbox"]:checked,
.dashboard-content .form-check-input[type="checkbox"]:checked {
    background: var(--brand-accent);
    border-color: var(--brand-accent);
}

.dashboard-content input[type="radio"]:checked {
    border-color: var(--brand-accent);
    background: #fff;
    box-shadow: inset 0 0 0 3px var(--brand-accent);
}

.dashboard-content input[type="checkbox"]:checked::after,
.dashboard-content .form-check-input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 48%;
    width: 0.3rem;
    height: 0.55rem;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: translate(-50%, -50%) rotate(45deg);
}

.dashboard-content input[type="checkbox"]:focus,
.dashboard-content input[type="radio"]:focus,
.dashboard-content .form-check-input:focus,
.dashboard-content input[type="checkbox"]:focus-visible,
.dashboard-content input[type="radio"]:focus-visible,
.dashboard-content .form-check-input:focus-visible {
    outline: none;
    border-color: var(--brand-accent);
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.22);
}

.dashboard-content input[type="checkbox"]:active,
.dashboard-content input[type="radio"]:active,
.dashboard-content .form-check-input:active {
    transform: scale(0.96);
}

.dashboard-content .form-check {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 1.5rem;
    padding-left: 0;
    margin-bottom: 0;
}

.dashboard-content .form-check-label {
    font-size: 0.9rem;
    color: #475569;
    cursor: pointer;
    user-select: none;
}

.app-table-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    min-height: 2.25rem;
    margin: 0;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.app-table-check:hover {
    background: rgba(30, 58, 95, 0.05);
}

.app-table-input {
    max-width: 6.5rem;
    margin-inline: auto;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.dashboard-content .form-control[readonly] {
    background: #f8fafc;
    color: #64748b;
    cursor: default;
}

.structure-floor-preview {
    padding: 0.9rem 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
}

.structure-floor-preview__title {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
    margin-bottom: 0.55rem;
}

.structure-floor-preview__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.55rem;
}

.structure-floor-preview__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.12);
    color: var(--brand-primary);
    font-size: 0.8125rem;
    font-weight: 700;
}

.structure-floor-preview__hint {
    font-size: 0.8125rem;
    color: #64748b;
}

.type-badge {
    font-size: 0.75rem;
    background: var(--brand-secondary);
    color: #fff;
}

/* Status badges */
.badge-status-not_started { background: #6c757d; }
.badge-status-in_progress { background: #3498db; }
.badge-status-completed { background: var(--brand-success); }

/* Task cards (mobile) */
.task-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1rem;
    margin-bottom: 0.75rem;
    min-height: 48px;
    text-decoration: none;
    color: inherit;
    display: block;
}

.task-card:hover {
    border-color: var(--brand-accent);
    color: inherit;
}

.task-card.locked {
    opacity: 0.6;
}

/* Progress ring */
.progress-ring-wrap {
    position: relative;
    width: 80px;
    height: 80px;
}

.progress-ring-wrap svg {
    transform: rotate(-90deg);
}

.progress-ring-wrap .ring-bg {
    fill: none;
    stroke: var(--border);
    stroke-width: 6;
}

.progress-ring-wrap .ring-fill {
    fill: none;
    stroke: var(--brand-accent);
    stroke-width: 6;
    stroke-linecap: round;
    transition: stroke-dashoffset 0.6s ease;
}

.progress-ring-label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--brand-primary);
}

/* Worker dashboard stats + project switcher */
.worker-dashboard-stats {
    margin-bottom: 1rem;
}

.worker-dashboard-stats__project {
    flex-shrink: 0;
}

.worker-project-switcher__toggle {
    min-height: 2.35rem;
    padding: 0.4rem 0.85rem;
    border: 1px solid rgba(30, 58, 95, 0.14);
    border-radius: 999px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    color: var(--brand-primary);
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.06);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.worker-project-switcher__toggle:hover,
.worker-project-switcher__toggle:focus,
.worker-project-switcher__toggle.show {
    border-color: rgba(45, 90, 135, 0.28);
    background: #fff;
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.worker-project-switcher__icon {
    color: var(--brand-secondary);
    font-size: 0.85rem;
}

.worker-project-switcher__menu {
    min-width: 16rem;
}

.worker-project-switcher .app-dropdown__toggle-label {
    max-width: 16rem;
}

.worker-project-switcher__form {
    margin: 0;
}

.worker-project-switcher__item {
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
}

.worker-project-switcher__meta {
    display: block;
    margin-top: 0.12rem;
    font-size: 0.72rem;
    font-weight: 500;
    color: #64748b;
    line-height: 1.35;
}

/* XP badge */
.xp-bar {
    height: 8px;
    background: var(--border);
    border-radius: 4px;
    overflow: hidden;
}

.xp-bar-fill {
    height: 100%;
    background: var(--brand-accent);
    border-radius: 4px;
    transition: width 0.5s ease;
}

/* Apartment map */
.apartment-map {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
    gap: 0.5rem;
}

.apartment-cell {
    aspect-ratio: 1;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.85rem;
    text-decoration: none;
    color: #fff;
    min-height: 48px;
}

.apartment-cell.not_started { background: #95a5a6; }
.apartment-cell.in_progress { background: #3498db; }
.apartment-cell.completed { background: var(--brand-success); }
.apartment-cell.fully_done { background: linear-gradient(135deg, #f39c12, #e67e22); }

.apartment-cell-short {
    display: block;
    font-weight: 700;
    font-size: 0.88rem;
    line-height: 1.2;
}

/* Badges grid */
.badge-item {
    text-align: center;
    padding: 1rem;
    background: #fff;
    border-radius: 10px;
    border: 1px solid var(--border);
}

.badge-item.locked {
    opacity: 0.45;
    filter: grayscale(1);
}

.badge-item i {
    font-size: 2rem;
    color: var(--brand-accent);
}

/* Location breadcrumb */
.location-breadcrumb {
    font-size: 0.85rem;
    word-break: break-word;
}

.location-breadcrumb--light {
    color: #64748b;
}

.location-breadcrumb--light strong {
    color: var(--brand-primary);
    font-weight: 600;
}

.location-breadcrumb--dark {
    color: rgba(255, 255, 255, 0.72);
}

.location-breadcrumb--dark strong {
    color: #fff;
    font-weight: 600;
}

.location-breadcrumb .sep {
    margin: 0 0.35rem;
    color: var(--brand-accent);
}

/* Charts */
.chart-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.chart-card canvas {
    max-height: 220px;
}

.gantt-scroll {
    overflow-x: auto;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1rem;
    min-height: 280px;
}

.gantt-panel {
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.gantt-panel__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.gantt-panel__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.gantt-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.gantt-panel__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border);
    background: #fff;
}

.gantt-panel__filter-group {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.2rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.05);
}

.gantt-panel__filter-btn {
    border: none;
    border-radius: 999px;
    background: transparent;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.42rem 0.85rem;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.gantt-panel__filter-btn:hover,
.gantt-panel__filter-btn:focus {
    color: var(--brand-primary);
    outline: none;
}

.gantt-panel__filter-btn.is-active {
    background: #fff;
    color: var(--brand-primary);
    box-shadow: 0 2px 10px rgba(30, 58, 95, 0.1);
}

.gantt-panel__filter-selects {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.gantt-panel__filter-field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 11rem;
}

.gantt-panel__filter-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.gantt-panel__form-select.app-form-select {
    width: 100%;
}

.gantt-panel__form-select .app-dropdown--form .app-dropdown__toggle {
    min-height: 31px;
    padding: 0.2rem 0.65rem;
    font-size: 0.8125rem;
    border-radius: 8px;
}

.gantt-panel__form-select .app-dropdown__toggle-label {
    font-weight: 500;
}

.gantt-panel__empty {
    padding: 2rem 1rem;
}

.gantt-panel .gantt-scroll {
    border: none;
    border-radius: 0;
}

.gantt-scroll--viewer {
    min-height: min(70vh, 640px);
    max-height: calc(100vh - 8rem);
}

.modal-gantt-wide {
    width: min(96vw, 1400px);
    max-width: none;
}

.modal-gantt-wide .modal-content {
    border-radius: 14px;
}

.modal-gantt-wide.modal-fullscreen {
    width: 100vw;
    max-width: none;
    margin: 0;
}

.modal-gantt-wide.modal-fullscreen .modal-content {
    border-radius: 0;
    min-height: 100vh;
}

.modal-gantt-wide.modal-fullscreen .gantt-scroll--viewer {
    min-height: calc(100vh - 7rem);
    max-height: none;
}

#ganttViewerModal .modal-body {
    padding: 0.75rem 1.15rem 1.15rem;
}

.btn-gantt-export-png.is-loading,
.btn-gantt-export-pdf.is-loading {
    pointer-events: none;
    opacity: 0.7;
}

/* Project detail tabs */
.project-tabs-panel {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 8px 28px rgba(30, 58, 95, 0.07);
    overflow: hidden;
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.project-tabs-scroll {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgba(30, 58, 95, 0.22) transparent;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}

.project-tabs-scroll::-webkit-scrollbar {
    height: 4px;
}

.project-tabs-scroll::-webkit-scrollbar-thumb {
    background: rgba(30, 58, 95, 0.22);
    border-radius: 999px;
}

.project-tabs-scroll::before,
.project-tabs-scroll::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1.5rem;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
    transition: opacity 0.18s ease;
}

.project-tabs-scroll::before {
    left: 0;
    background: linear-gradient(90deg, rgba(241, 245, 249, 0.98) 0%, rgba(241, 245, 249, 0) 100%);
}

.project-tabs-scroll::after {
    right: 0;
    background: linear-gradient(270deg, rgba(241, 245, 249, 0.98) 0%, rgba(241, 245, 249, 0) 100%);
}

.project-tabs-scroll.is-scrollable-left::before,
.project-tabs-scroll.is-scrollable-right::after {
    opacity: 1;
}

ul.project-tabs.nav-tabs {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
    padding: 0.65rem 1rem;
    margin: 0;
    border: none;
    background: transparent;
    width: max-content;
    min-width: min(100%, max-content);
}

.project-tabs.nav-tabs .nav-link {
    border-bottom: none;
}

.project-tabs.nav-tabs .nav-link.active,
.project-tabs.nav-tabs .nav-item.show .nav-link {
    border-bottom: none;
}

.project-tabs .nav-item {
    flex: 0 0 auto;
}

.project-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: auto;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 0.45rem 0.9rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
    line-height: 1.25;
    margin-bottom: 0;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.project-tabs .nav-link i {
    font-size: 0.78rem;
    opacity: 0.8;
    flex-shrink: 0;
    transition: color 0.15s ease, opacity 0.15s ease;
}

.project-tabs .nav-link:hover {
    color: var(--brand-primary);
    background: rgba(255, 255, 255, 0.72);
    border-color: rgba(30, 58, 95, 0.1);
}

.project-tabs .nav-link.active {
    color: var(--brand-primary);
    background: #fff;
    border-color: rgba(30, 58, 95, 0.12);
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.08);
}

.project-tabs .nav-link.active i {
    color: var(--brand-accent);
    opacity: 1;
}

.project-tabs__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.625rem;
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
}

.project-tabs .nav-link.active .project-tabs__count {
    background: rgba(230, 126, 34, 0.16);
    color: #c06512;
}

.project-tabs__content {
    padding: 1.25rem 1.35rem 1.35rem;
    background: #fff;
}

@media (max-width: 767.98px) {
    ul.project-tabs.nav-tabs {
        padding: 0.55rem 0.85rem;
        gap: 0.3rem;
    }

    .project-tabs .nav-link {
        padding: 0.42rem 0.75rem;
        font-size: 0.78rem;
    }
}

@media (max-width: 575.98px) {
    ul.project-tabs.nav-tabs {
        padding: 0.5rem 0.75rem;
    }

    .project-tabs .nav-link {
        padding: 0.4rem 0.65rem;
        font-size: 0.75rem;
    }
}

.project-overview-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.project-overview-actions__group {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem;
    border-radius: 12px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 4px 16px rgba(30, 58, 95, 0.05);
}

.project-overview-action {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.42rem 0.8rem;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    color: var(--brand-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

button.project-overview-action {
    cursor: pointer;
}

.project-overview-action__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 8px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.75rem;
    flex-shrink: 0;
}

.project-overview-action__label {
    white-space: nowrap;
}

.project-overview-action__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.45rem;
    height: 1.45rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
}

.project-overview-action:hover {
    background: rgba(30, 58, 95, 0.06);
    border-color: rgba(30, 58, 95, 0.12);
    color: var(--brand-primary);
    transform: translateY(-1px);
}

.project-overview-action--primary {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.project-overview-action--primary .project-overview-action__icon {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

.project-overview-action--primary:hover {
    background: var(--brand-secondary);
    border-color: var(--brand-secondary);
    color: #fff;
}

.project-overview-action--apartments {
    background: rgba(230, 126, 34, 0.08);
    border-color: rgba(230, 126, 34, 0.18);
}

.project-overview-action--apartments .project-overview-action__icon {
    background: rgba(230, 126, 34, 0.16);
    color: var(--brand-accent);
}

.project-overview-action--apartments .project-overview-action__count {
    background: var(--brand-accent);
    color: #fff;
}

.project-overview-action--apartments:hover {
    background: rgba(230, 126, 34, 0.14);
    border-color: rgba(230, 126, 34, 0.28);
    color: var(--brand-primary);
}

.project-overview-stats {
    --overview-stat-radius: 14px;
}

.project-overview-stat-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 8.5rem;
    padding: 1rem 1.05rem 1.05rem;
    border-radius: var(--overview-stat-radius);
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: linear-gradient(180deg, #fff 0%, #fbfcfd 100%);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
    overflow: hidden;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.project-overview-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--overview-stat-accent, var(--brand-primary));
}

.project-overview-stat-card:hover {
    transform: translateY(-2px);
    border-color: rgba(30, 58, 95, 0.14);
    box-shadow: 0 12px 28px rgba(30, 58, 95, 0.1);
}

.project-overview-stat-card--success {
    --overview-stat-accent: var(--brand-success);
}

.project-overview-stat-card--accent {
    --overview-stat-accent: var(--brand-accent);
}

.project-overview-stat-card--primary {
    --overview-stat-accent: var(--brand-primary);
}

.project-overview-stat-card--secondary {
    --overview-stat-accent: var(--brand-secondary);
}

.project-overview-stat-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.65rem;
}

.project-overview-stat-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 11px;
    font-size: 0.95rem;
    color: var(--overview-stat-accent, var(--brand-primary));
    background: rgba(30, 58, 95, 0.08);
}

.project-overview-stat-card--success .project-overview-stat-card__icon {
    background: rgba(39, 174, 96, 0.12);
}

.project-overview-stat-card--accent .project-overview-stat-card__icon {
    background: rgba(230, 126, 34, 0.12);
}

.project-overview-stat-card--primary .project-overview-stat-card__icon {
    background: rgba(30, 58, 95, 0.1);
}

.project-overview-stat-card--secondary .project-overview-stat-card__icon {
    background: rgba(45, 90, 135, 0.12);
}

.project-overview-stat-card__value {
    font-size: 1.85rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1;
    letter-spacing: -0.02em;
}

.project-overview-stat-card__label {
    margin-top: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #475569;
    line-height: 1.3;
}

.project-overview-stat-card__meta {
    margin-top: 0.3rem;
    font-size: 0.75rem;
    color: #94a3b8;
    line-height: 1.35;
}

.project-overview-stat-card__track {
    margin-top: auto;
    width: 100%;
    height: 0.35rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    overflow: hidden;
}

.project-overview-stat-card__track-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand-success), #2ecc71);
}

.project-overview-stat-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.55rem;
}

.project-overview-stat-card__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.07);
}

.project-overview-stat-card__chip--muted {
    color: #64748b;
    background: rgba(100, 116, 139, 0.1);
}

@media (max-width: 767.98px) {
    .project-overview-stat-card {
        min-height: 0;
        padding-top: 0.85rem;
        padding-bottom: 0.85rem;
    }

    .project-overview-stat-card__head {
        margin-bottom: 0;
        min-height: 2.35rem;
        padding-right: 3.25rem;
    }

    .project-overview-stat-card__value {
        position: absolute;
        top: 0.85rem;
        right: 1.05rem;
        font-size: 1.55rem;
        line-height: 2.35rem;
        text-align: right;
    }

    .project-overview-stat-card__label {
        margin-top: 0.45rem;
        padding-right: 0.25rem;
    }

    .project-overview-stat-card__meta {
        margin-top: 0.25rem;
    }

    .project-overview-stat-card__chips {
        margin-top: 0.45rem;
    }
}

.project-overview-stat {
    background: rgba(30, 58, 95, 0.03);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0.9rem 1rem;
    height: 100%;
}

.project-overview-stat__value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.2;
}

.project-overview-stat__label {
    font-size: 0.78rem;
    color: #64748b;
    margin-top: 0.2rem;
}

.project-tabs-empty {
    border: 1px dashed var(--border);
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.02);
}

.project-apartments-tab__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--border);
}

.project-apartments-tab__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.2rem;
}

.project-apartments-tab__meta {
    font-size: 0.8125rem;
}

.project-apartments-tab__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.project-apartments-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.project-apartments-grid .project-overview-apt-card {
    margin-bottom: 0;
    height: 100%;
    position: relative;
    z-index: 0;
}

.project-apartments-grid .project-overview-apt-card:has(.project-member-avatars__item.has-popover:hover),
.project-apartments-grid .project-overview-apt-card:has(.project-member-avatars__item.has-popover:focus-within),
.project-apartments-grid .project-overview-apt-card:has(.project-member-avatars__item.has-popover.is-open),
.project-overview-apt-list .project-overview-apt-card:has(.project-member-avatars__item.has-popover:hover),
.project-overview-apt-list .project-overview-apt-card:has(.project-member-avatars__item.has-popover:focus-within),
.project-overview-apt-list .project-overview-apt-card:has(.project-member-avatars__item.has-popover.is-open),
.work-overview-apartments .project-overview-apt-card:has(.project-member-avatars__item.has-popover:hover),
.work-overview-apartments .project-overview-apt-card:has(.project-member-avatars__item.has-popover:focus-within),
.work-overview-apartments .project-overview-apt-card:has(.project-member-avatars__item.has-popover.is-open) {
    z-index: 12;
}

@media (max-width: 991.98px) {
    .project-apartments-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .project-overview-apt-card {
        flex-wrap: wrap;
    }

    .project-overview-apt-card__aside {
        flex-direction: row;
        align-items: center;
        width: 100%;
        justify-content: space-between;
        padding-left: 0;
        padding-top: 0.35rem;
        margin-top: 0.15rem;
        border-top: 1px dashed rgba(226, 232, 240, 0.9);
    }
}

.project-overview-hero {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.15rem 1.25rem;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.04), rgba(45, 90, 135, 0.06));
    border: 1px solid var(--border);
    border-radius: 12px;
}

.project-overview-hero__progress {
    flex-shrink: 0;
}

.project-overview-hero__main {
    min-width: 0;
}

.project-overview-hero__eyebrow {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
}

.project-overview-hero__value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.1;
}

.project-overview-hero__meta {
    font-size: 0.85rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.project-overview-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.75rem;
}

.project-overview-sidebar {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.admin-panel-card__head--compact {
    padding: 0.75rem 1rem;
}

.admin-panel-card__body--compact {
    padding: 0.75rem 1rem;
}

.admin-panel-card__footer {
    padding: 0.65rem 1rem;
    border-top: 1px solid var(--border);
    background: rgba(30, 58, 95, 0.015);
}

.project-overview-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.project-overview-info-tile {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
    border: 1px solid rgba(226, 232, 240, 0.85);
    min-width: 0;
}

.project-overview-info-tile--wide {
    grid-column: 1 / -1;
}

.project-overview-info-tile__icon {
    flex-shrink: 0;
    width: 1.65rem;
    height: 1.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.72rem;
}

.project-overview-info-tile__content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.project-overview-info-tile__label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    line-height: 1.2;
}

.project-overview-info-tile__value {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #334155;
    line-height: 1.35;
    word-break: break-word;
}

.project-overview-code {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    border-radius: 6px;
    background: rgba(30, 58, 95, 0.06);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--brand-primary);
}

.project-overview-info-tile__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
}

.project-overview-info-tile__badge--active {
    background: rgba(39, 174, 96, 0.12);
    color: #1e8449;
}

.project-overview-info-tile__badge--muted {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.project-overview-sub-row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 1rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.project-overview-sub-row:last-child {
    border-bottom: none;
}

.project-overview-sub-row__avatar {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.1) 0%, rgba(230, 126, 34, 0.14) 100%);
    color: var(--brand-primary);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.project-overview-sub-row__main {
    min-width: 0;
    flex: 1;
}

.project-overview-sub-row__name {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.project-overview-sub-row__meta {
    font-size: 0.72rem;
    color: #64748b;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.project-overview-sub-row__meta span + span {
    margin-left: 0.25rem;
}

.project-overview-sub-row__status {
    flex-shrink: 0;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.2rem 0.4rem;
    border-radius: 999px;
}

.project-overview-sub-row__status--active {
    background: rgba(39, 174, 96, 0.12);
    color: #1e8449;
}

.project-overview-sub-row__status--invited {
    background: rgba(52, 152, 219, 0.12);
    color: #2471a3;
}

.project-overview-sub-row__status--suspended {
    background: rgba(231, 76, 60, 0.12);
    color: #c0392b;
}

.project-overview-sub-empty {
    padding: 1rem;
    text-align: center;
    font-size: 0.8125rem;
    color: #64748b;
}

.project-overview-sub-footer {
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
}

@media (max-width: 575.98px) {
    .project-overview-info-grid {
        grid-template-columns: 1fr;
    }

    .project-overview-info-tile--wide {
        grid-column: auto;
    }
}

.project-overview-details {
    margin: 0;
}

.project-overview-details__row {
    display: grid;
    grid-template-columns: minmax(7rem, 34%) 1fr;
    gap: 0.75rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.project-overview-details__row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.project-overview-details__row dt {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
}

.project-overview-details__row dd {
    margin: 0;
    font-size: 0.875rem;
    color: #334155;
    font-weight: 600;
}

.project-overview-apt-card {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem;
    margin-bottom: 0.75rem;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.project-overview-apt-card:last-child {
    margin-bottom: 0;
}

.project-overview-apt-card:hover {
    border-color: rgba(45, 90, 135, 0.35);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
    color: inherit;
}

.project-overview-apt-card--completed {
    border-left: 3px solid var(--brand-success);
}

.project-overview-apt-card--in_progress {
    border-left: 3px solid #3498db;
}

.project-overview-apt-card--not_started {
    border-left: 3px solid #cbd5e1;
}

.project-overview-apt-card__icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.project-overview-apt-card__main {
    flex: 1 1 auto;
    min-width: 0;
}

.project-overview-apt-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
    margin-bottom: 0.55rem;
}

.project-overview-apt-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.1rem;
}

.project-overview-apt-card__sub {
    font-size: 0.75rem;
}

.project-overview-apt-card__members {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    margin-top: 0.15rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
    border: 1px solid rgba(226, 232, 240, 0.95);
}

.project-overview-apt-card__members-label {
    flex-shrink: 0;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.project-member-avatars {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0;
    min-width: 0;
}

.project-member-avatars__item {
    display: inline-flex;
    margin-left: -0.35rem;
    position: relative;
}

.project-member-avatars__item.has-popover {
    cursor: help;
    z-index: 1;
}

.project-member-avatars__item.has-popover:hover,
.project-member-avatars__item.has-popover:focus,
.project-member-avatars__item.has-popover:focus-within,
.project-member-avatars__item.has-popover.is-open {
    z-index: 25;
}

.project-member-avatars__item.has-popover:hover .project-member-popover,
.project-member-avatars__item.has-popover:focus .project-member-popover,
.project-member-avatars__item.has-popover:focus-within .project-member-popover,
.project-member-avatars__item.has-popover.is-open .project-member-popover {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50%) translateX(0);
    pointer-events: auto;
}

.project-member-popover {
    position: absolute;
    top: 50%;
    right: calc(100% + 0.5rem);
    left: auto;
    bottom: auto;
    z-index: 40;
    min-width: 13rem;
    max-width: 18rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: #fff;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-50%) translateX(6px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
    pointer-events: none;
}

.project-member-popover__head {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 0.45rem;
    padding-bottom: 0.45rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.95);
}

.project-member-popover__name {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
    word-break: break-word;
}

.project-member-popover__role {
    align-self: flex-start;
    display: inline-flex;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.project-member-popover__role--contractor {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.project-member-popover__role--subcontractor {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.project-member-popover__role--worker {
    background: rgba(230, 126, 34, 0.14);
    color: #b9770e;
}

.project-member-popover__details {
    display: grid;
    gap: 0.4rem;
    margin: 0;
}

.project-member-popover__row {
    display: grid;
    gap: 0.08rem;
}

.project-member-popover__row dt {
    margin: 0;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.project-member-popover__row dd {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: #334155;
    word-break: break-word;
}

.project-member-avatars__item:first-child {
    margin-left: 0;
}

.project-member-avatar {
    box-shadow: 0 0 0 2px #fff;
}

.project-member-avatar--invited {
    opacity: 0.72;
}

.project-member-avatars__more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    margin-left: 0.15rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.62rem;
    font-weight: 700;
}

.project-overview-apt-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.65rem;
}

.project-overview-apt-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    color: #475569;
    background: rgba(30, 58, 95, 0.06);
}

.project-overview-apt-card__chip--muted {
    color: #64748b;
    background: rgba(148, 163, 184, 0.14);
}

.project-overview-apt-card__bar {
    height: 0.45rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
}

.project-overview-apt-card__bar .progress-bar {
    background: linear-gradient(90deg, var(--brand-secondary), var(--brand-accent));
}

.project-overview-apt-card__tasks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.65rem;
}

.project-overview-apt-card__stat {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.22rem 0.48rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
}

.project-overview-apt-card__stat.has-popover {
    cursor: help;
}

.project-overview-apt-card__stat.has-popover:hover .work-overview-task-popover,
.project-overview-apt-card__stat.has-popover:focus .work-overview-task-popover,
.project-overview-apt-card__stat.has-popover:focus-within .work-overview-task-popover,
.project-overview-apt-card__stat.has-popover.is-open .work-overview-task-popover {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.project-overview-apt-card__stat--done {
    color: #1e7e45;
    background: rgba(39, 174, 96, 0.12);
}

.project-overview-apt-card__stat--progress {
    color: #2471a3;
    background: rgba(52, 152, 219, 0.12);
}

.project-overview-apt-card__stat--pending {
    color: #64748b;
    background: rgba(148, 163, 184, 0.16);
}

.project-overview-apt-card__aside {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: space-between;
    align-self: stretch;
    gap: 0.5rem;
    padding-left: 0.25rem;
}

.project-overview-apt-card__percent {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1;
}

.project-overview-apt-card__chevron {
    font-size: 0.75rem;
    color: #94a3b8;
}

.project-overview-apt-card__interactive {
    position: relative;
    z-index: 2;
}

.project-overview-apt-card__link::after {
    z-index: 1;
}

.project-overview-apt-card__files {
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px dashed rgba(30, 58, 95, 0.12);
}

.project-overview-apt-card__files-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}

.project-overview-apt-card__files-label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--brand-accent);
    min-width: 0;
}

.project-overview-apt-card__files-add {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    flex-shrink: 0;
    padding: 0.18rem 0.45rem;
    border: 1px solid rgba(230, 126, 34, 0.35);
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.08);
    color: var(--brand-accent);
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.project-overview-apt-card__files-add:hover {
    background: rgba(230, 126, 34, 0.16);
    border-color: rgba(230, 126, 34, 0.55);
    color: var(--brand-accent);
}

.project-overview-apt-card__files-list {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.45rem;
    overflow-x: auto;
    padding-bottom: 0.15rem;
    scrollbar-width: thin;
}

.project-overview-apt-card__file {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex: 0 0 auto;
    max-width: 100%;
    padding: 0.28rem 0.35rem 0.28rem 0.45rem;
    border-radius: 8px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: rgba(30, 58, 95, 0.03);
}

.project-overview-apt-card__file-icon {
    flex-shrink: 0;
    font-size: 0.8rem;
    color: var(--brand-primary);
}

.project-overview-apt-card__file-title {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 9rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--brand-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.project-overview-apt-card__file-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    flex-shrink: 0;
}

.project-overview-apt-card__file-btn {
    padding: 0.15rem 0.35rem;
    line-height: 1;
    font-size: 0.72rem;
}

.project-overview-apt-list .project-overview-apt-card {
    margin-bottom: 0.75rem;
}

.project-overview-apt-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.5rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--border);
}

.project-overview-apt-pagination--compact {
    margin-top: 0.75rem;
}

.project-overview-apt-pagination__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.project-overview-apt-pagination__prev,
.project-overview-apt-pagination__next {
    min-width: 2.25rem;
}

@media (max-width: 767.98px) {
    .project-overview-hero {
        flex-direction: column;
        align-items: flex-start;
    }

    .project-overview-apt-card {
        flex-wrap: wrap;
        padding: 0.85rem;
    }

    .project-overview-apt-card:hover {
        transform: none;
    }

    .project-overview-apt-card__aside {
        flex-direction: row;
        align-items: center;
        width: 100%;
        padding-left: 0;
        padding-top: 0.35rem;
        border-top: 1px solid var(--border);
        margin-top: 0.15rem;
    }

    .project-overview-apt-card__tasks {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.25rem;
    }

    .project-overview-apt-card__stat {
        min-width: 0;
        justify-content: center;
        padding: 0.2rem 0.3rem;
        font-size: 0.62rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        border-radius: 999px;
    }

    .project-overview-apt-card__chip {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .project-overview-apt-pagination {
        flex-direction: column;
        align-items: stretch;
    }

    .project-overview-apt-pagination__actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.45rem;
    }

    .project-overview-apt-pagination__more {
        grid-column: 1 / -1;
    }
}

/* Project subcontractors tab */
.project-subs-panel__header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem 1.25rem;
    margin-bottom: 1.15rem;
}

.project-subs-panel__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0 0 0.25rem;
    line-height: 1.3;
}

.project-subs-panel__help {
    font-size: 0.8125rem;
    color: #64748b;
    max-width: 36rem;
    line-height: 1.45;
}

.project-subs-panel__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.project-subs-stat {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
}

.project-subs-stat__value {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.1;
}

.project-subs-stat__label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.project-subs-stat--active {
    background: rgba(39, 174, 96, 0.08);
    border-color: rgba(39, 174, 96, 0.22);
}

.project-subs-stat--active .project-subs-stat__value {
    color: var(--brand-success);
}

.project-subs-stat--pending {
    background: rgba(243, 156, 18, 0.08);
    border-color: rgba(243, 156, 18, 0.22);
}

.project-subs-stat--pending .project-subs-stat__value {
    color: var(--brand-warning);
}

.project-subs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: 0.75rem;
}

.project-sub-card {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.project-sub-card:hover {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.08);
}

.project-sub-card__avatar {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.1) 0%, rgba(230, 126, 34, 0.14) 100%);
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.project-subcontractors-avatars {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    min-width: 0;
}

.project-subcontractors-avatars__item {
    display: inline-flex;
    align-items: center;
    margin-left: -0.35rem;
    position: relative;
    vertical-align: middle;
    flex: 0 0 auto;
}

.project-subcontractors-avatars__item.js-company-avatar-tooltip,
.project-company-avatar.js-company-avatar-tooltip {
    cursor: help;
}

.project-subcontractor-tooltip {
    display: none;
    position: fixed;
    z-index: 1080;
    width: min(17rem, calc(100vw - 2rem));
    padding: 0.8rem 0.85rem 0.75rem;
    border-radius: 14px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    box-shadow:
        0 4px 12px rgba(15, 23, 42, 0.06),
        0 18px 36px rgba(30, 58, 95, 0.16);
    text-align: left;
    pointer-events: none;
}

.project-subcontractor-tooltip.is-visible {
    display: block;
    pointer-events: auto;
}

.project-subcontractor-tooltip__arrow {
    position: absolute;
    left: 50%;
    bottom: -6px;
    width: 12px;
    height: 12px;
    margin-left: -6px;
    transform: rotate(45deg);
    background: #f8fafc;
    border-right: 1px solid rgba(226, 232, 240, 0.95);
    border-bottom: 1px solid rgba(226, 232, 240, 0.95);
}

.project-subcontractor-tooltip__header {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0.65rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.project-subcontractor-tooltip__avatar {
    flex: 0 0 auto;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.12) 0%, rgba(230, 126, 34, 0.16) 100%);
    color: var(--brand-primary);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.project-subcontractor-tooltip__title-wrap {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.project-subcontractor-tooltip__company {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
    word-break: break-word;
}

.project-subcontractor-tooltip__trade {
    align-self: flex-start;
    display: inline-flex;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-secondary);
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.project-subcontractor-tooltip__location {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin-bottom: 0.65rem;
    font-size: 0.76rem;
    line-height: 1.4;
    color: #475569;
}

.project-subcontractor-tooltip__location i {
    margin-top: 0.1rem;
    color: var(--brand-accent);
    flex: 0 0 auto;
}

.project-subcontractor-tooltip__contact {
    display: grid;
    gap: 0.55rem;
    margin: 0;
}

.project-subcontractor-tooltip__row {
    display: grid;
    gap: 0.15rem;
}

.project-subcontractor-tooltip__row dt {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.project-subcontractor-tooltip__row dt i {
    width: 0.85rem;
    text-align: center;
    color: var(--brand-secondary);
}

.project-subcontractor-tooltip__row dd {
    margin: 0;
    padding-left: 1.2rem;
    font-size: 0.78rem;
    line-height: 1.35;
    color: #0f172a;
    word-break: break-word;
}

.project-subcontractor-tooltip__row dd a {
    color: var(--brand-primary);
    text-decoration: none;
}

.project-subcontractor-tooltip__row dd a:hover {
    color: var(--brand-secondary);
    text-decoration: underline;
}

.project-subcontractor-tooltip__empty {
    color: #94a3b8;
    font-style: italic;
}

.project-subcontractor-tooltip__footer {
    margin-top: 0.7rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
}

.project-subcontractor-tooltip__profile-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--brand-accent);
    text-decoration: none;
}

.project-subcontractor-tooltip__profile-link:hover {
    color: #d35400;
}

.project-subcontractors-avatars__item:first-child {
    margin-left: 0;
}

.project-subcontractors-avatars__item--link {
    text-decoration: none;
    color: inherit;
    transition: transform 0.15s ease;
}

.project-subcontractors-avatars__item--link:hover,
.project-subcontractors-avatars__item--link:focus-visible {
    transform: translateY(-2px);
    z-index: 2;
}

.project-subcontractors-avatars__item--link:hover .project-subcontractors-avatar,
.project-subcontractors-avatars__item--link:focus-visible .project-subcontractors-avatar {
    border-color: rgba(45, 90, 135, 0.45);
    box-shadow: 0 4px 10px rgba(30, 58, 95, 0.14);
}

.project-subcontractors-avatar {
    width: 1.85rem;
    height: 1.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 2px solid #fff;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.12) 0%, rgba(230, 126, 34, 0.16) 100%);
    color: var(--brand-primary);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.project-subcontractors-avatars__more {
    margin-left: 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
}

.project-sub-card__main {
    min-width: 0;
    flex: 1;
}

.project-sub-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.2rem;
}

.project-sub-card__title {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0;
    line-height: 1.3;
    word-break: break-word;
}

.project-sub-card__status {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.project-sub-card__status--active {
    background: rgba(39, 174, 96, 0.14);
    color: #1f7a43;
}

.project-sub-card__status--invited {
    background: rgba(243, 156, 18, 0.16);
    color: #b9770e;
}

.project-sub-card__status--suspended {
    background: rgba(220, 53, 69, 0.12);
    color: #b02a37;
}

.project-sub-card__status--ended {
    background: rgba(100, 116, 139, 0.12);
    color: #64748b;
}

.project-sub-card__email {
    font-size: 0.8125rem;
    color: #64748b;
    word-break: break-all;
    margin-bottom: 0.45rem;
}

.project-sub-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.project-sub-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
    font-size: 0.72rem;
    font-weight: 600;
}

.project-sub-card__chip i {
    color: var(--brand-secondary);
    font-size: 0.68rem;
}

.project-sub-card__chip--muted {
    background: #f1f5f9;
    color: #64748b;
    font-weight: 500;
}

.project-sub-card__chip--muted i {
    color: #94a3b8;
}

.project-sub-card__content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.project-sub-card__footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
}

.project-subs-empty {
    text-align: center;
    padding: 2rem 1.25rem;
    border: 1px dashed var(--border);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.02) 0%, #fff 100%);
}

.project-subs-empty__icon {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 0.85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 1.35rem;
}

.project-subs-empty__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0 0 0.35rem;
}

.project-subs-empty__text {
    font-size: 0.875rem;
    color: #64748b;
    max-width: 28rem;
    margin: 0 auto 1rem;
}

.project-subs-flow {
    list-style: none;
    margin: 0 auto 1.15rem;
    padding: 0;
    max-width: 32rem;
    text-align: left;
    counter-reset: subs-flow;
}

.project-subs-flow li {
    position: relative;
    padding: 0.45rem 0 0.45rem 2rem;
    font-size: 0.8125rem;
    color: #475569;
    line-height: 1.4;
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.project-subs-flow li:last-child {
    border-bottom: 0;
}

.project-subs-flow li::before {
    counter-increment: subs-flow;
    content: counter(subs-flow);
    position: absolute;
    left: 0;
    top: 0.45rem;
    width: 1.35rem;
    height: 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.68rem;
    font-weight: 700;
}

@media (max-width: 575.98px) {
    .project-subs-panel__stats {
        grid-template-columns: 1fr;
    }

    .project-subs-panel__header .btn {
        width: 100%;
    }
}

/* Installer layout */
.installer-body {
    background: var(--surface);
    min-height: 100vh;
    padding-bottom: 80px;
}

.installer-body--dashboard {
    padding-bottom: 0;
}

.installer-body--dashboard.installer-body--action-bar .installer-dashboard-content {
    padding-bottom: calc(5rem + 4.5rem);
}

@media (min-width: 992px) {
    .installer-body--dashboard.installer-body--action-bar .installer-dashboard-content {
        padding-bottom: calc(1.5rem + 4.5rem);
    }
}

.installer-shell-header {
    margin-bottom: 0.85rem;
}

.installer-steps-bar--in-dashboard {
    margin-bottom: 1rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    overflow: visible;
}

.installer-steps-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

.installer-steps-bar .installer-steps {
    flex: 1 1 auto;
    min-width: 0;
    border-bottom: none;
}

.installer-steps-toolbar {
    flex: 1 1 100%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0.65rem 1rem;
    border-top: 1px solid var(--border);
    background: #fff;
}

@media (min-width: 768px) {
    .installer-steps-bar {
        flex-wrap: nowrap;
        align-items: center;
    }

    .installer-steps-toolbar {
        flex: 0 0 auto;
        width: auto;
        border-top: none;
        border-left: 1px solid var(--border);
    }
}

.installer-task-category-filter.app-form-select {
    flex: 0 1 auto;
    width: min(100%, 16.5rem);
    max-width: 16.5rem;
    margin: 0;
}

.installer-task-category-filter .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.installer-task-category-filter .app-dropdown--form .app-dropdown__toggle {
    min-height: 31px;
    padding: 0.35rem 2rem 0.35rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 8px;
}

.installer-task-filter-empty {
    margin-top: 0.85rem;
}

.installer-dashboard-content .installer-change-entry {
    margin-bottom: 1rem;
}

.installer-body--dashboard .mobile-action-bar {
    left: 0;
    right: 0;
}

@media (min-width: 992px) {
    .installer-body--dashboard .mobile-action-bar {
        left: var(--sidebar-width);
    }
}

.installer-header {
    background: var(--brand-primary);
    color: #fff;
    padding: 1rem;
}

.installer-steps {
    display: flex;
    gap: 0.25rem;
    padding: 0.75rem 1rem;
    background: #fff;
    border-bottom: 1px solid var(--border);
    font-size: 0.75rem;
    overflow-x: auto;
}

.installer-step {
    white-space: nowrap;
    color: #6c757d;
}

.installer-step.active {
    color: var(--brand-accent);
    font-weight: 600;
}

.installer-public-shell {
    display: flex;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0.75rem clamp(0.75rem, 3vw, 1.25rem) 2rem;
    background: linear-gradient(180deg, #f1f5f9 0%, var(--surface) 28%);
}

.installer-public-content {
    width: 100%;
    min-width: 0;
    margin: 0 auto;
}

.installer-public-content--narrow {
    max-width: 24rem;
}

.installer-public-content--wide {
    max-width: min(100%, 72rem);
}

.installer-body--public {
    overflow-x: hidden;
    padding-bottom: 1.5rem;
}

.installer-public-header {
    background: var(--brand-primary);
    color: #fff;
    padding: 0.75rem clamp(0.75rem, 3vw, 1rem);
}

.installer-public-header__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    max-width: 72rem;
    margin: 0 auto;
}

.installer-public-header__main {
    min-width: 0;
    flex: 1;
}

.installer-public-header__breadcrumb {
    margin-bottom: 0.25rem;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
}

.installer-public-header__breadcrumb::-webkit-scrollbar {
    display: none;
}

.installer-public-header__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.installer-public-header--minimal .installer-public-header__title {
    font-size: 0.95rem;
}

.installer-public-header__tools {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    max-width: none;
}

.installer-public-header .installer-public-profile-dropdown .app-dropdown__toggle--profile {
    border-color: rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.08);
    min-height: 38px;
    padding: 0.2rem 0.55rem 0.2rem 0.2rem;
}

.installer-public-header .installer-public-profile-dropdown .app-dropdown__toggle--profile:hover,
.installer-public-header .installer-public-profile-dropdown .app-dropdown__toggle--profile:focus,
.installer-public-header .installer-public-profile-dropdown .app-dropdown__toggle--profile.show {
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.14);
}

.installer-public-header .installer-public-profile-dropdown .app-dropdown__profile-name {
    color: rgba(255, 255, 255, 0.92);
    max-width: 7.5rem;
}

.installer-public-profile-dropdown__status {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    line-height: 1.2;
    margin-bottom: 0.15rem;
}

.installer-public-header .app-dropdown--toolbar .app-dropdown__toggle {
    color: rgba(255, 255, 255, 0.92);
    border-color: rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.08);
}

.installer-public-header .app-dropdown--toolbar .app-dropdown__toggle:hover,
.installer-public-header .app-dropdown--toolbar .app-dropdown__toggle:focus {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.14);
}

.installer-steps-bar--public {
    border-bottom: 1px solid var(--border);
    background: #fff;
}

.installer-body--public .installer-steps-bar {
    border-left: none;
    border-right: none;
}

.installer-body--public .installer-steps {
    padding: 0.55rem clamp(0.75rem, 3vw, 1rem);
}

.installer-public-content--wide .page-header-card,
.installer-public-content--wide .admin-panel-card,
.installer-public-content--wide .apartment-page-section {
    max-width: 100%;
}

.installer-public-content--wide .apartment-header-card__body {
    flex-wrap: wrap;
    gap: 0.85rem;
}

.installer-public-content--wide .apartment-header-card__main {
    flex: 1 1 12rem;
    min-width: 0;
}

.installer-public-content--wide .apartment-header-card__attendance {
    flex: 0 1 168px;
    min-width: 148px;
    max-width: 180px;
    margin-left: auto;
}

.installer-public-content--wide .apartment-header-card__attendance .worker-attendance-card {
    height: auto;
}

.installer-public-content--wide .apartment-header-card__attendance .worker-attendance-card--summary {
    padding: 0.55rem 0.65rem;
}

.installer-public-content--wide .apartment-tasks-panel__context {
    flex-wrap: nowrap;
}

.installer-public-content--wide .apartment-tasks-panel__location {
    display: contents;
}

.installer-public-content--wide .apartment-tasks-panel__field,
.installer-public-content--wide .apartment-tasks-panel__form-select.app-form-select {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    max-width: none;
}

@media (max-width: 767.98px) {
    .installer-public-content--wide .apartment-header-card__progress {
        width: 4.5rem;
        height: 4.5rem;
    }

    .installer-public-content--wide .apartment-header-card__progress .progress-ring-wrap,
    .installer-public-content--wide .apartment-header-card__progress .progress-ring-wrap svg {
        width: 56px;
        height: 56px;
    }

    .installer-public-content--wide .page-header-card__title {
        font-size: 1.05rem;
    }

    .installer-public-content--wide .apartment-tasks-panel__head,
    .installer-public-content--wide .apartment-tasks-panel__toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .installer-public-content--wide .apartment-tasks-panel__context,
    .installer-public-content--wide .apartment-tasks-panel__stats {
        width: 100%;
    }

    .installer-public-content--wide .apartment-tasks-panel__context {
        flex-wrap: wrap;
    }

    .installer-public-content--wide .apartment-tasks-panel__location {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end;
        gap: 0.65rem;
        width: 100%;
    }

    .installer-public-content--wide .apartment-tasks-panel__field,
    .installer-public-content--wide .apartment-tasks-panel__form-select.app-form-select {
        flex: 1 1 calc(50% - 0.35rem);
        min-width: 9rem;
        width: auto;
    }

    .installer-public-content--wide .apartment-tasks-panel__field--period {
        flex: 1 1 100%;
    }

    .installer-public-content--wide .apartment-task-group__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
}

@media (max-width: 575.98px) {
    .installer-public-shell {
        padding-bottom: 1.25rem;
    }

    .installer-public-content--narrow {
        max-width: 100%;
    }

    .installer-public-header__title {
        font-size: 0.92rem;
    }

    .installer-public-header__inner {
        flex-wrap: wrap;
    }

    .installer-public-header__tools {
        width: 100%;
        max-width: none;
        justify-content: flex-end;
    }

    .installer-step {
        font-size: 0.68rem;
    }
}

.installer-hub {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.installer-hub__context {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
}

.installer-hub__progress {
    flex-shrink: 0;
}

.installer-hub__progress .progress-ring-wrap {
    width: 64px;
    height: 64px;
}

.installer-hub__progress .progress-ring-wrap svg {
    width: 64px;
    height: 64px;
}

.installer-hub__progress .progress-ring-label {
    font-size: 0.78rem;
}

.installer-hub__meta {
    min-width: 0;
    flex: 1;
}

.installer-hub__apt-label {
    margin: 0 0 0.1rem;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--brand-primary);
}

.installer-hub__stat {
    margin: 0;
    font-size: 0.76rem;
    color: #64748b;
}

.installer-hub__area {
    margin: 0.12rem 0 0;
    font-size: 0.72rem;
    color: #94a3b8;
}

.installer-hub__card {
    padding: 1rem 0.95rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 22px rgba(30, 58, 95, 0.06);
}

.installer-hub__card-title {
    margin: 0 0 0.3rem;
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.installer-hub__card-lead {
    margin: 0 0 0.85rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #64748b;
}

.installer-hub__label {
    margin-bottom: 0.35rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #475569;
}

.installer-hub__divider {
    margin: 0.85rem 0;
    font-size: 0.78rem;
}

.installer-hub__form {
    margin: 0;
}

.installer-hub__form .form-control {
    min-height: 2.5rem;
    font-size: 0.9rem;
    border-radius: 10px;
}

.installer-hub__form .btn {
    min-height: 2.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    border-radius: 10px;
}

.installer-hub__card .google-btn {
    margin-bottom: 0;
    min-height: 2.5rem;
    font-size: 0.88rem;
    border-radius: 10px;
}

.installer-hub__card .otp-inputs {
    gap: 0.45rem;
}

.installer-hub__card .otp-digit {
    width: 2.35rem;
    height: 2.65rem;
    font-size: 1rem;
    border-radius: 10px;
}

.installer-change-entry--compact {
    gap: 0.65rem;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    box-shadow: none;
}

.installer-change-entry--compact .installer-change-entry__icon {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 10px;
    font-size: 0.85rem;
    box-shadow: none;
}

.installer-change-entry--compact .installer-change-entry__title {
    font-size: 0.84rem;
}

.installer-change-entry--compact .installer-change-entry__desc {
    font-size: 0.74rem;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.installer-change-entry--compact .installer-change-entry__arrow {
    width: 1.65rem;
    height: 1.65rem;
    font-size: 0.72rem;
}

.installer-change-entry--compact:hover {
    transform: none;
}

.mobile-action-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    border-top: 1px solid var(--border);
    padding: 0.75rem 1rem;
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom));
    z-index: 1050;
}

.bottom-nav-worker {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #fff;
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: space-around;
    padding: 0.5rem 0;
    padding-bottom: calc(0.5rem + env(safe-area-inset-bottom));
    z-index: 1040;
}

@media (min-width: 992px) {
    .bottom-nav-worker {
        display: none;
    }
}

.bottom-nav-worker a {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 0.7rem;
    color: #6c757d;
    text-decoration: none;
    min-width: 48px;
    min-height: 48px;
    justify-content: center;
}

.bottom-nav-worker a.active,
.bottom-nav-worker a:hover {
    color: var(--brand-accent);
}

.bottom-nav-worker i {
    font-size: 1.25rem;
}

/* Scan CTA */
.scan-hero-btn {
    min-height: 120px;
    font-size: 1.25rem;
    border-radius: 16px;
}

/* Timestamp display */
.timestamp-display {
    background: #e8f8f0;
    border: 2px solid var(--brand-success);
    border-radius: 12px;
    padding: 1.25rem;
    text-align: center;
}

.timestamp-display .time {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--brand-success);
}

/* FilePond overrides */
.filepond--root {
    margin-bottom: 1rem;
}

/* Modern file upload zone */
.file-upload-zone {
    margin-top: 0.15rem;
}

.file-upload-zone__input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.file-upload-zone__drop {
    position: relative;
    border: 1.5px dashed #cfd8e3;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.02), rgba(45, 90, 135, 0.04));
    padding: 1.15rem 1rem;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
    cursor: pointer;
}

.file-upload-zone__drop:hover,
.file-upload-zone__drop:focus {
    border-color: rgba(45, 90, 135, 0.55);
    background: rgba(45, 90, 135, 0.05);
    outline: none;
}

.file-upload-zone.is-dragover .file-upload-zone__drop,
.file-upload-zone__drop.is-dragover {
    border-color: var(--brand-accent);
    background: rgba(230, 126, 34, 0.08);
    box-shadow: 0 0 0 4px rgba(230, 126, 34, 0.12);
}

.file-upload-zone--compact .file-upload-zone__drop {
    padding: 0.85rem 0.9rem;
    border-radius: 12px;
}

.file-upload-zone--compact .file-upload-zone__empty {
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.file-upload-zone--compact .file-upload-zone__icon {
    width: 2.4rem;
    height: 2.4rem;
    font-size: 1rem;
    flex-shrink: 0;
}

.file-upload-zone--compact .file-upload-zone__copy {
    flex: 1 1 10rem;
    min-width: 0;
}

.file-upload-zone--compact .file-upload-zone__title {
    font-size: 0.875rem;
}

.file-upload-zone--compact .file-upload-zone__hint {
    font-size: 0.75rem;
}

.file-upload-zone--compact .file-upload-zone__browse {
    margin-left: auto;
}

.file-upload-zone--compact .file-upload-zone__preview {
    gap: 0.65rem;
}

.file-upload-zone__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.65rem;
}

.file-upload-zone__icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 1.15rem;
}

.file-upload-zone__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.file-upload-zone__hint {
    font-size: 0.78rem;
    color: #64748b;
    max-width: 22rem;
    line-height: 1.45;
}

.file-upload-zone__preview {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.file-upload-zone__preview-thumb {
    flex-shrink: 0;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 10px;
    overflow: hidden;
    background: rgba(30, 58, 95, 0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.file-upload-zone__preview-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.file-upload-zone__preview-icon {
    width: 100%;
    height: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-secondary);
    font-size: 1.35rem;
}

.file-upload-zone__preview-icon--pdf { color: #c0392b; }
.file-upload-zone__preview-icon--doc { color: #2980b9; }
.file-upload-zone__preview-icon--sheet { color: #1e7e34; }

.file-upload-zone__preview-meta {
    flex: 1;
    min-width: 0;
}

.file-upload-zone__preview-name {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-upload-zone__preview-size {
    font-size: 0.75rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.file-upload-zone__preview-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.file-upload-zone__preview-actions .btn-sm {
    min-height: 2rem;
    padding: 0.35rem 0.65rem;
}

.multi-file-upload-zone {
    margin-top: 0.15rem;
}

.multi-file-upload-zone__input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.multi-file-upload-zone__drop {
    position: relative;
    border: 1.5px dashed #cfd8e3;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.02), rgba(45, 90, 135, 0.04));
    padding: 1.15rem 1rem;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
    cursor: pointer;
}

.multi-file-upload-zone.has-files .multi-file-upload-zone__drop {
    padding: 0.85rem 1rem;
}

.multi-file-upload-zone__drop:hover,
.multi-file-upload-zone__drop:focus {
    border-color: rgba(45, 90, 135, 0.55);
    background: rgba(45, 90, 135, 0.05);
    outline: none;
}

.multi-file-upload-zone.is-dragover .multi-file-upload-zone__drop,
.multi-file-upload-zone__drop.is-dragover {
    border-color: var(--brand-accent);
    background: rgba(230, 126, 34, 0.08);
    box-shadow: 0 0 0 4px rgba(230, 126, 34, 0.12);
}

.multi-file-upload-zone.is-full .multi-file-upload-zone__drop {
    cursor: default;
    opacity: 0.72;
}

.multi-file-upload-zone.is-invalid .multi-file-upload-zone__drop {
    border-color: rgba(220, 53, 69, 0.55);
    box-shadow: 0 0 0 4px rgba(220, 53, 69, 0.1);
}

.multi-file-upload-zone__required-feedback {
    margin-top: 0.45rem;
}

.multi-file-upload-zone__empty,
.multi-file-upload-zone__filled {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.65rem;
}

.multi-file-upload-zone__filled {
    width: 100%;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    text-align: left;
}

.multi-file-upload-zone__filled-main {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.multi-file-upload-zone__icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 1.15rem;
    flex-shrink: 0;
}

.multi-file-upload-zone__icon--compact {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1rem;
}

.multi-file-upload-zone__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.multi-file-upload-zone__hint {
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.4;
}

.multi-file-upload-zone__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.multi-file-upload-zone__filled .multi-file-upload-zone__actions {
    flex-shrink: 0;
}

@media (max-width: 575.98px) {
    .multi-file-upload-zone__actions {
        width: 100%;
    }

    .multi-file-upload-zone__actions .btn {
        flex: 1 1 auto;
    }
}

.multi-file-upload-zone__list {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.65rem;
}

.multi-file-upload-zone__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
}

.multi-file-upload-zone__item-thumb {
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(45, 90, 135, 0.08);
    overflow: hidden;
}

.multi-file-upload-zone__item-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.multi-file-upload-zone__item-icon {
    font-size: 1.1rem;
    color: var(--brand-secondary);
}

.multi-file-upload-zone__item-meta {
    flex: 1;
    min-width: 0;
}

.multi-file-upload-zone__item-name {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--brand-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.multi-file-upload-zone__item-size {
    margin-top: 0.12rem;
    font-size: 0.72rem;
    color: #64748b;
}

.multi-file-upload-zone__item-remove {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: #fff;
    color: #64748b;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.multi-file-upload-zone__item-remove:hover {
    border-color: #e74c3c;
    background: rgba(231, 76, 60, 0.08);
    color: #c0392b;
}

.multi-file-upload-zone__limit {
    margin-top: 0.45rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #b9770e;
}

.file-upload-existing {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-top: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.03);
}

.file-upload-existing__thumb {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
    font-size: 1.1rem;
}

.file-upload-existing__meta {
    flex: 1;
    min-width: 0;
}

.file-upload-existing__label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.file-upload-existing__name {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.file-upload-existing__remove {
    margin: 0;
    cursor: pointer;
}

.file-upload-existing__checkbox {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.file-upload-existing__remove-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #b02a37;
    background: rgba(220, 53, 69, 0.08);
    border: 1px solid rgba(220, 53, 69, 0.18);
    border-radius: 999px;
    padding: 0.35rem 0.7rem;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.file-upload-existing__checkbox:checked + .file-upload-existing__remove-btn,
.file-upload-existing__remove:hover .file-upload-existing__remove-btn {
    background: rgba(220, 53, 69, 0.16);
    border-color: rgba(220, 53, 69, 0.35);
}

@media (max-width: 575.98px) {
    .file-upload-zone__preview {
        flex-wrap: wrap;
    }

    .file-upload-zone__preview-actions {
        width: 100%;
        justify-content: flex-end;
    }

    .file-upload-existing {
        flex-wrap: wrap;
    }
}

/* XP toast */
.xp-toast {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--brand-primary);
    color: #fff;
    padding: 1.5rem 2rem;
    border-radius: 12px;
    font-size: 1.5rem;
    font-weight: 700;
    z-index: 9999;
    display: none;
}

/* Quest list (legacy) */
.quest-item {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1rem;
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    text-decoration: none;
    color: inherit;
    min-height: 64px;
}

.quest-item:hover {
    border-color: var(--brand-accent);
    color: inherit;
}

.quest-icon {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: var(--surface);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    color: var(--brand-primary);
}

.quest-item.done .quest-icon {
    background: #e8f8f0;
    color: var(--brand-success);
}

/* Installer task cards */
.installer-task-list {
    display: grid;
    gap: 0.85rem;
}

@media (min-width: 768px) {
    .installer-task-list {
        grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    }
}

.dashboard-content .installer-task-list {
    grid-template-columns: 1fr;
}

@media (min-width: 992px) {
    .dashboard-content .installer-task-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1400px) {
    .dashboard-content .installer-task-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.installer-task-card {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0.85rem;
    min-height: 5.5rem;
    padding: 1rem 1rem 1rem 1.1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.installer-task-card:hover {
    border-color: rgba(45, 90, 135, 0.24);
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.1);
    transform: translateY(-1px);
    color: inherit;
}

.installer-task-card__accent {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 3px;
    background: #cbd5e1;
}

.installer-task-card--not_started .installer-task-card__accent {
    background: linear-gradient(180deg, #94a3b8 0%, #cbd5e1 100%);
}

.installer-task-card--in_progress {
    border-color: rgba(243, 156, 18, 0.22);
    background: linear-gradient(180deg, #fff 0%, rgba(243, 156, 18, 0.04) 100%);
}

.installer-task-card--in_progress .installer-task-card__accent {
    background: linear-gradient(180deg, var(--brand-accent) 0%, #f39c12 100%);
}

.installer-task-card--completed {
    border-color: rgba(39, 174, 96, 0.2);
    background: linear-gradient(180deg, #fff 0%, rgba(39, 174, 96, 0.04) 100%);
}

.installer-task-card--completed .installer-task-card__accent {
    background: linear-gradient(180deg, var(--brand-success) 0%, #2ecc71 100%);
}

.installer-task-card--special {
    border-color: rgba(230, 126, 34, 0.28);
}

.installer-task-card__main-link {
    flex: 1;
    display: flex;
    align-items: stretch;
    gap: 0.85rem;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.installer-task-card__main-link:hover {
    color: inherit;
}

.installer-task-card--with-actions .installer-task-card__arrow {
    flex-shrink: 0;
    align-self: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
    font-size: 0.75rem;
    text-decoration: none;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.installer-task-card--with-actions a.installer-task-card__arrow:hover {
    background: var(--brand-primary);
    color: #fff;
    transform: translateX(2px);
}

.installer-task-card--with-actions.installer-task-card--locked {
    opacity: 0.62;
    filter: grayscale(0.15);
}

.installer-task-card--with-actions.installer-task-card--locked .installer-task-card__actions {
    pointer-events: none;
}

.installer-task-card-wrap {
    min-width: 0;
}

.installer-task-card__actions {
    flex-shrink: 0;
    align-self: center;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.installer-task-card__action-btn {
    white-space: nowrap;
    min-width: 6.5rem;
}

.installer-task-card--with-actions:hover {
    transform: none;
}

.installer-task-card--locked {
    opacity: 0.62;
    pointer-events: none;
    filter: grayscale(0.15);
}

.installer-task-card__icon {
    flex-shrink: 0;
    align-self: center;
    width: 2.85rem;
    height: 2.85rem;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.08) 0%, rgba(45, 90, 135, 0.12) 100%);
    color: var(--brand-secondary);
}

.installer-task-card--in_progress .installer-task-card__icon {
    background: linear-gradient(135deg, rgba(230, 126, 34, 0.18) 0%, rgba(243, 156, 18, 0.1) 100%);
    color: var(--brand-accent);
}

.installer-task-card--completed .installer-task-card__icon {
    background: linear-gradient(135deg, rgba(39, 174, 96, 0.16) 0%, rgba(46, 204, 113, 0.1) 100%);
    color: var(--brand-success);
}

.installer-task-card--special .installer-task-card__icon {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.14);
}

.installer-task-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.45rem;
    padding-right: 0.25rem;
}

.installer-task-card__head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}

.installer-task-card__title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--brand-primary);
    word-break: break-word;
    width: 100%;
}

.installer-task-card__status {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    background: rgba(100, 116, 139, 0.12);
}

.installer-task-card__status--in_progress {
    color: #946200;
    background: rgba(243, 156, 18, 0.16);
}

.installer-task-card__status--completed {
    color: #1e7e45;
    background: rgba(39, 174, 96, 0.14);
}

.installer-task-card__pulse {
    width: 0.4rem;
    height: 0.4rem;
    border-radius: 50%;
    background: var(--brand-warning);
    animation: worker-flow-pulse 1.8s ease-out infinite;
}

.installer-task-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.installer-task-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 500;
    color: #475569;
    background: rgba(30, 58, 95, 0.05);
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.installer-task-card__chip i {
    font-size: 0.65rem;
    color: var(--brand-secondary);
}

.installer-task-card__chip--date {
    color: #1e7e45;
    background: rgba(39, 174, 96, 0.1);
    border-color: rgba(39, 174, 96, 0.14);
}

.installer-task-card__chip--date i {
    color: var(--brand-success);
}

.worker-task-timeline-filters {
    padding: 1.15rem 1.25rem 1.25rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
}

.worker-task-timeline-filters__context {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-bottom: 1.1rem;
    align-items: center;
}

.worker-task-timeline-filters__select.app-form-select {
    flex: 0 1 auto;
    width: min(100%, 16.5rem);
    max-width: 16.5rem;
    margin: 0;
}

.worker-task-timeline-filters__select .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.worker-task-timeline-filters__select .app-dropdown--form .app-dropdown__toggle {
    min-height: 3rem;
    padding: 0.65rem 2rem 0.65rem 1rem;
    font-size: 0.95rem;
    font-weight: 600;
    border-radius: 14px;
}

.worker-task-timeline-filters__submit {
    min-height: 3rem;
    padding-inline: 1.25rem;
    border-radius: 14px;
    font-weight: 600;
}

.worker-task-timeline-filters__exports {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.worker-task-timeline-filters__export {
    min-height: 3rem;
    padding-inline: 1rem;
    border-radius: 14px;
    font-weight: 600;
    white-space: nowrap;
}

.worker-task-timeline-filters:has(.dropdown.show) {
    position: relative;
    z-index: 1200;
}

.worker-task-timeline-filters__timeline {
    position: relative;
    padding-top: 0.35rem;
}

.worker-task-timeline-filters__rail {
    position: absolute;
    top: 1.55rem;
    left: 0.75rem;
    right: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0;
    pointer-events: none;
    z-index: 0;
}

.worker-task-timeline-filters__rail-dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.12);
    flex-shrink: 0;
}

.worker-task-timeline-filters__rail-line {
    flex: 1;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(45, 90, 135, 0.18) 0%, rgba(39, 174, 96, 0.28) 100%);
}

.worker-task-timeline-filters__years,
.worker-task-timeline-filters__months {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: nowrap;
    gap: 0.55rem;
    overflow-x: auto;
    padding: 0.35rem 0.15rem 0.15rem;
    scrollbar-width: thin;
}

.worker-task-timeline-filters__months {
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px dashed rgba(30, 58, 95, 0.12);
}

.worker-task-timeline-filters__pill {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.65rem;
    padding: 0.55rem 1.1rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 999px;
    background: #fff;
    color: #475569;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.worker-task-timeline-filters__pill:hover {
    border-color: rgba(45, 90, 135, 0.28);
    color: var(--brand-primary);
    transform: translateY(-1px);
}

.worker-task-timeline-filters__pill.is-active {
    border-color: rgba(45, 90, 135, 0.35);
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.18);
}

.worker-task-timeline-filters__pill--month {
    min-height: 2.35rem;
    font-size: 0.84rem;
    font-weight: 600;
}

.worker-task-timeline-filters__pill--month.is-active {
    background: linear-gradient(135deg, rgba(39, 174, 96, 0.95) 0%, #2ecc71 100%);
    border-color: rgba(39, 174, 96, 0.45);
}

@media (max-width: 767.98px) {
    .worker-task-timeline-filters__context {
        flex-direction: column;
        align-items: stretch;
    }

    .worker-task-timeline-filters__select.app-form-select {
        width: 100%;
        max-width: none;
    }

    .worker-task-timeline-filters__exports {
        width: 100%;
    }

    .worker-task-timeline-filters__export {
        flex: 1 1 calc(50% - 0.25rem);
        justify-content: center;
    }

    .worker-task-timeline-filters__rail {
        display: none;
    }
}

/* Worker task timeline list */
.worker-task-timeline {
    position: relative;
}

.worker-task-timeline__track {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.worker-task-timeline__group {
    display: grid;
    grid-template-columns: 2.4rem minmax(0, 1fr);
    gap: 0 1rem;
    padding-bottom: 1.35rem;
}

.worker-task-timeline__group:last-child {
    padding-bottom: 0;
}

.worker-task-timeline__group:last-child .worker-task-timeline__stem {
    display: none;
}

.worker-task-timeline__marker {
    position: relative;
    display: flex;
    justify-content: center;
    padding-top: 0.35rem;
}

.worker-task-timeline__dot {
    position: relative;
    z-index: 2;
    width: 0.95rem;
    height: 0.95rem;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px rgba(45, 90, 135, 0.18);
}

.worker-task-timeline__dot--done {
    background: linear-gradient(135deg, var(--brand-success) 0%, #2ecc71 100%);
    box-shadow: 0 0 0 2px rgba(39, 174, 96, 0.22), 0 4px 12px rgba(39, 174, 96, 0.25);
}

.worker-task-timeline__dot--muted {
    background: linear-gradient(135deg, var(--brand-accent) 0%, #f39c12 100%);
    box-shadow: 0 0 0 2px rgba(243, 156, 18, 0.22);
}

.worker-task-timeline__stem {
    position: absolute;
    top: 1.15rem;
    bottom: -1.35rem;
    left: 50%;
    width: 3px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(45, 90, 135, 0.18) 0%, rgba(39, 174, 96, 0.22) 100%);
}

.worker-task-timeline__date {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.worker-task-timeline__date i {
    color: var(--brand-secondary);
    font-size: 0.85rem;
}

.worker-task-timeline__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    color: #64748b;
    background: rgba(100, 116, 139, 0.12);
}

.worker-task-timeline__items {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.worker-task-timeline-card {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.85rem;
    padding: 0.95rem 1rem 0.95rem 1.15rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(30, 58, 95, 0.05);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
    overflow: hidden;
}

.worker-task-timeline-card__branch {
    position: absolute;
    left: -1.15rem;
    top: 50%;
    width: 1rem;
    height: 3px;
    background: rgba(45, 90, 135, 0.14);
    transform: translateY(-50%);
}

.worker-task-timeline-card:hover {
    border-color: rgba(45, 90, 135, 0.22);
    box-shadow: 0 10px 24px rgba(30, 58, 95, 0.1);
    transform: translateY(-1px);
    color: inherit;
}

.worker-task-timeline-card--completed {
    border-color: rgba(39, 174, 96, 0.16);
}

.worker-task-timeline-card--in_progress {
    border-color: rgba(243, 156, 18, 0.2);
}

.worker-task-timeline-card--locked {
    opacity: 0.62;
    pointer-events: none;
}

.worker-task-timeline-card__icon {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.08) 0%, rgba(45, 90, 135, 0.12) 100%);
    color: var(--brand-secondary);
}

.worker-task-timeline-card--completed .worker-task-timeline-card__icon {
    background: linear-gradient(135deg, rgba(39, 174, 96, 0.16) 0%, rgba(46, 204, 113, 0.1) 100%);
    color: var(--brand-success);
}

.worker-task-timeline-card--in_progress .worker-task-timeline-card__icon {
    background: linear-gradient(135deg, rgba(243, 156, 18, 0.18) 0%, rgba(243, 156, 18, 0.08) 100%);
    color: var(--brand-accent);
}

.worker-task-timeline-card__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.worker-task-timeline-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
}

.worker-task-timeline-card__title {
    font-size: 0.96rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--brand-primary);
}

.worker-task-timeline-card__status {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.16rem 0.48rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    background: rgba(100, 116, 139, 0.12);
}

.worker-task-timeline-card__status--in_progress {
    color: #946200;
    background: rgba(243, 156, 18, 0.14);
}

.worker-task-timeline-card__status--completed {
    color: #1e7e45;
    background: rgba(39, 174, 96, 0.12);
}

.worker-task-timeline-card__pulse {
    width: 0.38rem;
    height: 0.38rem;
    border-radius: 50%;
    background: var(--brand-warning);
    animation: worker-flow-pulse 1.8s ease-out infinite;
}

.worker-task-timeline-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.worker-task-timeline-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 500;
    color: #475569;
    background: rgba(30, 58, 95, 0.05);
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.worker-task-timeline-card__chip i {
    font-size: 0.64rem;
    color: var(--brand-secondary);
}

.worker-task-timeline-card__xp {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.35rem 0.55rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #946200;
    background: rgba(243, 156, 18, 0.1);
    white-space: nowrap;
}

.worker-task-timeline-card__chevron {
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
    font-size: 0.72rem;
}

.worker-task-timeline-card:hover .worker-task-timeline-card__chevron {
    background: var(--brand-primary);
    color: #fff;
}

@media (max-width: 767.98px) {
    .worker-task-timeline__group {
        grid-template-columns: 1.5rem minmax(0, 1fr);
        gap: 0 0.75rem;
    }

    .worker-task-timeline-card {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-areas:
            "icon body"
            "xp xp";
    }

    .worker-task-timeline-card__branch {
        display: none;
    }

    .worker-task-timeline-card__chevron {
        display: none;
    }

    .worker-task-timeline-card__xp {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

.apartment-task-worker-actions__done {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.apartment-task-worker-actions__done-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
    font-size: 1.1rem;
}

.worker-task-list-filters .form-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.worker-task-list-filters .form-select {
    font-weight: 600;
    color: var(--brand-primary);
}

.installer-task-card__chip--xp {
    color: #946200;
    background: rgba(243, 156, 18, 0.1);
    border-color: rgba(243, 156, 18, 0.14);
}

.installer-task-card__chip--xp i {
    color: var(--brand-accent);
}

.installer-task-card__chip--special {
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.08);
}

.installer-task-card__chip--locked {
    color: #64748b;
    background: rgba(100, 116, 139, 0.1);
}

.installer-task-card__arrow {
    flex-shrink: 0;
    align-self: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
    font-size: 0.75rem;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.installer-task-card:hover .installer-task-card__arrow {
    background: var(--brand-primary);
    color: #fff;
    transform: translateX(2px);
}

.installer-task-card--completed:hover .installer-task-card__arrow {
    background: var(--brand-success);
}

.installer-task-card--in_progress:hover .installer-task-card__arrow {
    background: var(--brand-accent);
}

@media (max-width: 575.98px) {
    .installer-task-list {
        grid-template-columns: 1fr;
    }
}

/* Change report (installer) */
.installer-change-entry {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 1rem;
    padding: 1.1rem 1.15rem;
    border: 1px solid rgba(230, 126, 34, 0.22);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 1) 0%, rgba(230, 126, 34, 0.05) 100%);
    text-decoration: none;
    color: inherit;
    box-shadow: 0 4px 20px rgba(230, 126, 34, 0.08);
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.installer-change-entry:hover {
    border-color: rgba(230, 126, 34, 0.45);
    color: inherit;
    box-shadow: 0 12px 32px rgba(230, 126, 34, 0.14);
    transform: translateY(-2px);
}

.installer-change-entry__accent {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--brand-accent) 0%, #f39c12 100%);
}

.installer-change-entry__icon {
    flex-shrink: 0;
    align-self: center;
    width: 3rem;
    height: 3rem;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    background: linear-gradient(135deg, rgba(230, 126, 34, 0.2) 0%, rgba(243, 156, 18, 0.12) 100%);
    color: var(--brand-accent);
    box-shadow: 0 6px 16px rgba(230, 126, 34, 0.12);
    transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.installer-change-entry:hover .installer-change-entry__icon {
    background: linear-gradient(135deg, var(--brand-accent) 0%, #f39c12 100%);
    color: #fff;
    box-shadow: 0 8px 20px rgba(230, 126, 34, 0.22);
}

.installer-change-entry__body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
    flex: 1;
    padding-right: 0.25rem;
}

.installer-change-entry__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.installer-change-entry__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #946200;
    background: rgba(243, 156, 18, 0.16);
}

.installer-change-entry__badge i {
    font-size: 0.68rem;
}

.installer-change-entry__title {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--brand-primary);
}

.installer-change-entry__desc {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.45;
    color: #64748b;
}

.installer-change-entry__arrow {
    flex-shrink: 0;
    align-self: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 0.8rem;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.installer-change-entry:hover .installer-change-entry__arrow {
    background: var(--brand-accent);
    color: #fff;
    transform: translateX(3px);
}

@media (max-width: 575.98px) {
    .installer-change-entry {
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .installer-change-entry__arrow {
        margin-left: auto;
    }
}

.installer-change-reports-panel {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.installer-change-reports-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.installer-change-reports-panel__title {
    color: var(--brand-primary);
}

.installer-change-table__trade {
    display: inline-flex;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #946200;
    background: rgba(243, 156, 18, 0.14);
}

.installer-change-detail {
    display: grid;
    gap: 0.85rem;
    margin: 0;
}

.installer-change-detail__row {
    display: grid;
    gap: 0.25rem;
}

.installer-change-detail__row dt {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.installer-change-detail__row dd {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.5;
    color: var(--brand-primary);
}

.installer-change-detail__files {
    margin-top: 1.25rem;
    padding-top: 1.1rem;
    border-top: 1px solid rgba(30, 58, 95, 0.1);
}

.installer-change-detail__files-title {
    margin-bottom: 0.85rem;
    color: var(--brand-primary);
}

.installer-change-detail__files-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    gap: 0.85rem;
}

.installer-change-detail__file {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.65rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.02);
}

.installer-change-detail__file-preview {
    display: block;
    border-radius: 8px;
    overflow: hidden;
    background: #eef2f7;
}

.installer-change-detail__file-preview img {
    display: block;
    width: 100%;
    height: 8rem;
    object-fit: cover;
}

.installer-change-detail__file-icon {
    height: 8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
    font-size: 2rem;
}

.installer-change-detail__file-meta {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.installer-change-detail__file-name {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--brand-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.installer-change-detail__file-size {
    font-size: 0.72rem;
    color: #94a3b8;
}

.installer-change-reports-empty {
    text-align: center;
    padding: 2.5rem 1.5rem;
    border: 1px dashed rgba(30, 58, 95, 0.18);
    border-radius: 16px;
    background: rgba(30, 58, 95, 0.02);
}

.installer-change-reports-empty__icon {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 1rem;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 1.25rem;
}

.installer-change-reports-list {
    display: grid;
    gap: 1rem;
}

@media (min-width: 992px) {
    .installer-change-reports-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.installer-change-report-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1.1rem 1.15rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
    overflow: hidden;
}

.installer-change-report-card__accent {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, var(--brand-accent) 0%, #f39c12 100%);
}

.installer-change-report-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.installer-change-report-card__trade {
    display: inline-flex;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #946200;
    background: rgba(243, 156, 18, 0.14);
}

.installer-change-report-card__date {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.78rem;
    color: #64748b;
}

.installer-change-report-card__reporter {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: #64748b;
}

.installer-change-report-card__plans {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 0.65rem;
    align-items: start;
}

.installer-change-report-card__plan-arrow {
    align-self: center;
    color: var(--brand-accent);
    opacity: 0.8;
    padding-top: 1.1rem;
}

.installer-change-report-card__plan-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.2rem;
}

.installer-change-report-card__plan-value {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--brand-primary);
}

.installer-change-report-card__details {
    margin-top: 0.45rem;
    font-size: 0.82rem;
    line-height: 1.45;
}

.installer-change-report-card__file-list {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.35rem;
}

.installer-change-report-card__file {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.installer-change-report-card__file:hover {
    border-color: rgba(230, 126, 34, 0.35);
    background: rgba(230, 126, 34, 0.05);
    color: inherit;
}

.installer-change-report-card__file-name {
    flex: 1;
    min-width: 0;
    font-size: 0.82rem;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.installer-change-report-card__file-size {
    flex-shrink: 0;
    font-size: 0.72rem;
    color: #94a3b8;
}

@media (max-width: 767.98px) {
    .installer-change-report-card__plans {
        grid-template-columns: 1fr;
    }

    .installer-change-report-card__plan-arrow {
        display: none;
    }
}

.installer-change-notice {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.9rem 1rem;
    background: rgba(230, 126, 34, 0.1);
    border: 1px solid rgba(230, 126, 34, 0.25);
    border-radius: 12px;
    color: #7a4d12;
    font-size: 0.9rem;
}

.installer-change-notice i {
    color: var(--brand-accent);
    margin-top: 0.15rem;
}

.installer-change-success-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto;
    border-radius: 50%;
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
}

.installer-change-summary {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 1rem;
}

.installer-change-summary-row {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid var(--border);
}

.installer-change-summary-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.installer-change-summary-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c757d;
}

.installer-change-summary-value {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--brand-primary);
    line-height: 1.4;
}

/* Change reports landing section */
.landing-change-section {
    background: linear-gradient(180deg, #fff 0%, rgba(30, 58, 95, 0.04) 100%);
}

.landing-change-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 0.85rem;
    color: #495057;
    line-height: 1.45;
}

.landing-change-points li i {
    color: var(--brand-success);
    margin-top: 0.2rem;
}

.landing-change-demo-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(30, 58, 95, 0.12);
}

.landing-change-demo-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1.15rem;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
}

.landing-change-demo-unit {
    font-size: 0.78rem;
    opacity: 0.9;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 999px;
    padding: 0.2rem 0.65rem;
}

.landing-change-demo-body {
    padding: 1.15rem;
}

.landing-change-demo-field {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0.75rem 0.85rem;
}

.landing-change-demo-field--new {
    border-color: rgba(230, 126, 34, 0.35);
    background: rgba(230, 126, 34, 0.06);
}

.landing-change-demo-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c757d;
    margin-bottom: 0.25rem;
}

.landing-change-demo-value {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--brand-primary);
    line-height: 1.4;
}

.landing-change-demo-arrow {
    text-align: center;
    color: var(--brand-accent);
    padding: 0.35rem 0;
}

.landing-change-demo-photos {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.85rem;
}

.landing-change-demo-photo {
    width: 52px;
    height: 52px;
    border-radius: 10px;
    background: var(--surface);
    border: 1px dashed var(--border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #adb5bd;
}

.landing-change-demo-photo--add {
    border-style: solid;
    border-color: rgba(230, 126, 34, 0.35);
    color: var(--brand-accent);
    background: rgba(230, 126, 34, 0.08);
}

.landing-change-demo-photo-caption {
    font-size: 0.78rem;
    color: #6c757d;
}

.landing-change-demo-footer {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.15rem;
    background: rgba(39, 174, 96, 0.08);
    border-top: 1px solid rgba(39, 174, 96, 0.2);
    color: #1e7e34;
    font-size: 0.85rem;
    font-weight: 600;
}

/* Stat cards */
.stat-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1.25rem;
}

.stat-card .stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--brand-primary);
}

/* Super admin dashboard */
.ai-provider-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1rem;
}

@media (min-width: 768px) {
    .ai-provider-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .ai-provider-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.ai-provider-tile {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 100%;
    padding: 1.1rem 1.15rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, rgba(248, 250, 252, 0.94) 100%);
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.ai-provider-tile--enabled {
    border-color: rgba(34, 197, 94, 0.28);
    box-shadow: 0 8px 22px rgba(34, 197, 94, 0.08);
}

.ai-provider-tile--default {
    border-color: rgba(230, 126, 34, 0.35);
}

.ai-provider-tile__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.ai-provider-tile__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 1.05rem;
    box-shadow: 0 6px 14px rgba(30, 58, 95, 0.16);
}

.ai-provider-tile__badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.35rem;
}

.ai-provider-tile__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.14rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.ai-provider-tile__badge--default {
    background: rgba(230, 126, 34, 0.14);
    color: #b45309;
}

.ai-provider-tile__badge--enabled {
    background: rgba(34, 197, 94, 0.14);
    color: #15803d;
}

.ai-provider-tile__badge--disabled {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.ai-provider-tile__name {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.ai-provider-tile__description {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.5;
    color: #64748b;
    flex: 1;
}

.ai-provider-tile__capabilities {
    display: grid;
    gap: 0.45rem;
}

.ai-provider-tile__capabilities-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #94a3b8;
}

.ai-provider-tile__capability-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.ai-provider-tile__capability {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.07);
    color: #334155;
    font-size: 0.72rem;
    font-weight: 600;
}

.ai-provider-section__head {
    margin-bottom: 1rem;
}

.ai-provider-section__title {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.ai-provider-section__help {
    font-size: 0.84rem;
    color: #64748b;
    line-height: 1.45;
}

.ai-settings-recommended__list {
    display: grid;
    gap: 0.75rem;
    padding-left: 0;
    list-style: none;
}

.ai-settings-recommended__list li {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    font-size: 0.88rem;
    color: #334155;
    line-height: 1.5;
}

.ai-settings-recommended__list i {
    width: 1.35rem;
    margin-top: 0.15rem;
    color: var(--brand-accent);
    text-align: center;
}

.ai-provider-tile__switches {
    display: grid;
    gap: 0.55rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.03);
}

.ai-provider-tile__switch-form {
    margin: 0;
}

.ai-provider-tile__switch {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0;
    padding-left: 0;
}

.ai-provider-tile__switch .form-check-input {
    width: 2.5rem;
    height: 1.35rem;
    margin-left: 0;
    float: none;
}

.ai-provider-tile__switch .form-check-label {
    font-size: 0.84rem;
    font-weight: 600;
    color: #334155;
}

.ai-provider-tile__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
    margin-top: auto;
}

.ai-provider-key-help__steps {
    display: grid;
    gap: 0.65rem;
    padding-left: 1.15rem;
    color: #334155;
    font-size: 0.9rem;
    line-height: 1.55;
}

.ai-provider-tile__meta {
    display: grid;
    gap: 0.45rem;
    margin: 0;
}

.ai-provider-tile__meta div {
    display: grid;
    gap: 0.1rem;
}

.ai-provider-tile__meta dt {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #94a3b8;
}

.ai-provider-tile__meta dd {
    margin: 0;
    font-size: 0.84rem;
    color: #334155;
}

.ai-provider-tile__actions .btn {
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
    justify-content: center;
    font-size: 0.78rem;
    padding-left: 0.55rem;
    padding-right: 0.55rem;
}

.ai-provider-modal__toggle-row {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.03);
}

.ai-provider-modal__switch .form-check-input {
    width: 2.5rem;
    height: 1.35rem;
}

.ai-provider-modal__switch-title,
.ai-provider-modal__default-check .form-check-label {
    display: grid;
    gap: 0.15rem;
}

.ai-provider-modal__switch-title {
    font-weight: 700;
    color: var(--brand-primary);
}

.ai-provider-modal__switch-help {
    font-size: 0.82rem;
    color: #64748b;
    line-height: 1.45;
}

.materials-hub {
    display: grid;
    gap: 1rem;
}

.materials-hub__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.85rem 1rem;
    padding: 0.95rem 1.05rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.materials-hub__project-filter {
    min-width: min(100%, 18rem);
    flex: 1 1 16rem;
}

.materials-hub__project-select {
    max-width: 22rem;
}

.materials-hub__quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.materials-hub__quick-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.75rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: #fff;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--brand-primary);
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.materials-hub__quick-btn:hover {
    color: var(--brand-primary);
    border-color: rgba(30, 58, 95, 0.28);
    background: #f8fafc;
}

.materials-hub__quick-btn.is-disabled {
    opacity: 0.55;
    pointer-events: none;
}

.materials-hub__quick-icon {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
}

.materials-hub__quick-btn--orders {
    color: #c2410c;
    border-color: rgba(230, 126, 34, 0.35);
}

.materials-hub__quick-btn--orders .materials-hub__quick-icon {
    background: rgba(230, 126, 34, 0.14);
    color: #c2410c;
}

.materials-hub__quick-btn--catalog {
    color: #1d4ed8;
    border-color: rgba(37, 99, 235, 0.28);
}

.materials-hub__quick-btn--catalog .materials-hub__quick-icon {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}

.materials-hub__quick-btn--reports {
    color: #15803d;
    border-color: rgba(34, 197, 94, 0.28);
}

.materials-hub__quick-btn--reports .materials-hub__quick-icon {
    background: rgba(34, 197, 94, 0.12);
    color: #15803d;
}

.materials-hub__stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.materials-hub-stat {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.95rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    text-decoration: none;
    color: inherit;
    min-width: 0;
}

a.materials-hub-stat:hover {
    color: inherit;
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.08);
}

.materials-hub-stat__icon {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

.materials-hub-stat--projects .materials-hub-stat__icon {
    background: rgba(230, 126, 34, 0.14);
    color: #c2410c;
}

.materials-hub-stat--orders .materials-hub-stat__icon {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}

.materials-hub-stat--catalog .materials-hub-stat__icon {
    background: rgba(124, 58, 237, 0.12);
    color: #6d28d9;
}

.materials-hub-stat--pending .materials-hub-stat__icon {
    background: rgba(34, 197, 94, 0.12);
    color: #15803d;
}

.materials-hub-stat__body {
    min-width: 0;
    display: grid;
    gap: 0.08rem;
}

.materials-hub-stat__value {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1.1;
}

.materials-hub-stat__label {
    font-weight: 700;
    color: var(--brand-primary);
    font-size: 0.9rem;
}

.materials-hub-stat__meta {
    font-size: 0.75rem;
    color: #64748b;
}

.materials-hub-stat__chevron {
    color: #94a3b8;
    font-size: 0.75rem;
}

.materials-hub__split {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.85fr);
    gap: 0.85rem;
    align-items: start;
}

.materials-hub__projects {
    display: grid;
    gap: 0.85rem;
}

.materials-hub-project {
    padding: 1rem 1.05rem 1.05rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 1rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.materials-hub-project__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
}

.materials-hub-project__title-wrap {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    min-width: 0;
}

.materials-hub-project__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #dbeafe 0%, #fff7ed 100%);
    color: var(--brand-secondary);
    flex-shrink: 0;
}

.materials-hub-project__title {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1.3;
}

.materials-hub-project__code {
    font-weight: 700;
    color: #64748b;
}

.materials-hub-project__open {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: #64748b;
    text-decoration: none;
    flex-shrink: 0;
}

.materials-hub-project__open:hover {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.materials-hub-project__progress {
    margin-bottom: 0.85rem;
}

.materials-hub-project__progress-labels {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.materials-hub-project__track {
    height: 0.45rem;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.materials-hub-project__fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand-secondary), var(--brand-accent));
}

.materials-hub-project__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.85rem;
}

.materials-hub-project__metric {
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 0.7rem;
    padding: 0.55rem 0.65rem;
    background: #fff;
    display: grid;
    gap: 0.15rem;
}

.materials-hub-project__metric-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
}

.materials-hub-project__metric-value {
    font-size: 0.98rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.materials-hub-project__metric-value--ok { color: #15803d; }
.materials-hub-project__metric-value--warn { color: #b45309; }

.materials-hub-project__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.4rem;
    border-radius: 0.7rem;
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-secondary);
    font-weight: 700;
    text-decoration: none;
}

.materials-hub-project__cta:hover {
    background: rgba(45, 90, 135, 0.16);
    color: var(--brand-primary);
}

.materials-hub-activity {
    padding: 1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.materials-hub-activity__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.materials-hub-activity__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.materials-hub-activity__link {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--brand-secondary);
    text-decoration: none;
}

.materials-hub-activity__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}

.materials-hub-activity__item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.7rem;
    align-items: start;
    padding: 0.7rem 0.75rem;
    border-radius: 0.75rem;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.materials-hub-activity__icon {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 0.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
}

.materials-hub-activity__icon--orders {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}

.materials-hub-activity__icon--arrival {
    background: rgba(34, 197, 94, 0.12);
    color: #15803d;
}

.materials-hub-activity__icon--catalog {
    background: rgba(124, 58, 237, 0.12);
    color: #6d28d9;
}

.materials-hub-activity__icon--tip {
    background: rgba(230, 126, 34, 0.14);
    color: #c2410c;
}

.materials-hub-activity__copy {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
}

.materials-hub-activity__item-title {
    font-weight: 700;
    color: var(--brand-primary);
    font-size: 0.88rem;
}

.materials-hub-activity__item-help {
    font-size: 0.78rem;
    color: #64748b;
}

.materials-hub-banner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1rem 1.25rem;
    align-items: center;
    padding: 1.15rem 1.25rem;
    border-radius: 1rem;
    border: 1px solid rgba(45, 90, 135, 0.14);
    background:
        radial-gradient(circle at left top, rgba(45, 90, 135, 0.08), transparent 45%),
        linear-gradient(135deg, #eff6ff 0%, #fff7ed 100%);
}

.materials-hub-banner__art {
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 1rem;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #dbeafe 0%, #fff7ed 100%);
    color: var(--brand-secondary);
    font-size: 1.7rem;
    box-shadow: inset 0 0 0 1px rgba(30, 58, 95, 0.06);
}

.materials-hub-banner__title {
    margin: 0 0 0.35rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.materials-hub-banner__help {
    margin: 0 0 0.7rem;
    color: #64748b;
    font-size: 0.9rem;
}

.materials-hub-banner__features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.35rem 0.85rem;
}

.materials-hub-banner__features li {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.materials-hub-banner__features i {
    color: var(--brand-secondary);
}

.materials-hub-banner__btn {
    white-space: nowrap;
}

.materials-hub-empty {
    padding: 2rem 1rem;
    text-align: center;
    border: 1px dashed rgba(30, 58, 95, 0.14);
    border-radius: 1rem;
    color: #64748b;
    background: #fff;
}

@media (max-width: 1199.98px) {
    .materials-hub__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .materials-hub__split {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .materials-hub__stats {
        grid-template-columns: 1fr;
    }

    .materials-hub-banner {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .materials-hub-banner__features {
        grid-template-columns: 1fr;
    }

    .materials-hub__quick-btn span:last-child {
        display: none;
    }
}

.admin-stat-card {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    height: 100%;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 1rem 1.1rem;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
}

.admin-stat-card__icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 1rem;
}

.admin-stat-card__icon--users {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.admin-stat-card__icon--companies {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.admin-stat-card__icon--projects {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.admin-stat-card__icon--growth {
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
}

.admin-stat-card__value {
    font-size: 1.65rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.1;
}

.admin-stat-card__label {
    font-size: 0.8125rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.admin-stat-card__meta {
    font-size: 0.75rem;
    color: #94a3b8;
    margin-top: 0.25rem;
}

.admin-panel-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
    overflow: hidden;
}

.admin-panel-card__head {
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--border);
    background: rgba(30, 58, 95, 0.02);
}

.admin-panel-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.admin-panel-card__subtitle {
    font-size: 0.78rem;
    color: #64748b;
    margin-top: 0.2rem;
}

.admin-panel-card__body {
    padding: 1rem 1.15rem 1.15rem;
}

.admin-company-list {
    border-top: 1px solid var(--border);
}

.admin-company-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1.15rem;
    border-bottom: 1px solid var(--border);
}

.admin-company-item:last-child {
    border-bottom: none;
}

.admin-company-item__name {
    font-weight: 600;
    color: var(--brand-primary);
    font-size: 0.875rem;
}

.admin-company-empty {
    padding: 1.25rem 1.15rem;
    text-align: center;
}

/* Subcontractor company dashboard */
.company-table-link {
    color: var(--brand-primary);
    font-weight: 600;
    text-decoration: none;
}

.company-table-link:hover {
    color: var(--brand-accent);
    text-decoration: underline;
}

.company-header-card .page-header-card__body {
    align-items: center;
}

.company-header-card__avatar {
    flex-shrink: 0;
    width: 3.25rem;
    height: 3.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.04em;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.18);
}

.company-member-row {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.9rem 1.15rem;
    border-bottom: 1px solid var(--border);
}

.company-member-row:last-child {
    border-bottom: none;
}

.company-member-row__avatar {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.company-member-row__avatar--sub {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.company-member-row__avatar--worker {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.company-member-row__main {
    flex: 1;
    min-width: 0;
}

.company-member-row__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.company-member-row__name {
    font-weight: 700;
    color: var(--brand-primary);
    font-size: 0.9rem;
}

.company-member-row__role {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    background: rgba(100, 116, 139, 0.1);
    border-radius: 999px;
    padding: 0.15rem 0.45rem;
}

.company-member-row__email {
    font-size: 0.8rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.company-activity-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(226, 232, 240, 0.8);
}

.company-activity-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.company-activity-item__icon {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.75rem;
}

.company-activity-item--info .company-activity-item__icon {
    background: rgba(52, 152, 219, 0.12);
    color: #2980b9;
}

.company-activity-item--success .company-activity-item__icon {
    background: rgba(39, 174, 96, 0.12);
    color: #1e7e34;
}

.company-activity-item--warning .company-activity-item__icon {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.company-activity-item__label {
    font-size: 0.85rem;
    color: #334155;
    line-height: 1.45;
}

.company-activity-item__time {
    font-size: 0.75rem;
    color: #94a3b8;
    margin-top: 0.15rem;
}

.company-activity-item--current {
    margin-inline: -0.35rem;
    padding-inline: 0.35rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.04);
}

.apartment-activity-panel__count {
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
}

.apartment-activity-timeline {
    --activity-item-height: 4.85rem;
    --activity-visible-count: 5;
    max-height: calc(var(--activity-item-height) * var(--activity-visible-count));
    overflow-y: auto;
    overflow-x: hidden;
    padding: 1rem 1.15rem 0.35rem;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgba(30, 58, 95, 0.25) transparent;
}

.apartment-activity-timeline:focus {
    outline: none;
}

.apartment-activity-timeline:focus-visible {
    box-shadow: inset 0 0 0 2px rgba(45, 90, 135, 0.25);
    border-radius: 0 0 12px 12px;
}

.apartment-activity-timeline::-webkit-scrollbar {
    width: 6px;
}

.apartment-activity-timeline::-webkit-scrollbar-thumb {
    background: rgba(30, 58, 95, 0.22);
    border-radius: 999px;
}

.apartment-activity-timeline__track {
    position: relative;
}

.apartment-activity-timeline__item {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0.85rem;
    min-height: var(--activity-item-height);
    padding-bottom: 0.35rem;
}

.apartment-activity-timeline__item:last-child {
    min-height: calc(var(--activity-item-height) - 0.35rem);
    padding-bottom: 0;
}

.apartment-activity-timeline__marker {
    position: relative;
    display: flex;
    justify-content: center;
    padding-top: 0.15rem;
}

.apartment-activity-timeline__item:not(:last-child) .apartment-activity-timeline__marker::after {
    content: "";
    position: absolute;
    top: 1.85rem;
    bottom: -0.35rem;
    left: 50%;
    width: 2px;
    transform: translateX(-50%);
    background: linear-gradient(180deg, #dbe3ec 0%, #e8edf3 100%);
}

.apartment-activity-timeline__dot {
    position: relative;
    z-index: 1;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px rgba(226, 232, 240, 0.95);
}

.apartment-activity-timeline__item--info .apartment-activity-timeline__dot {
    background: rgba(52, 152, 219, 0.14);
    color: #2980b9;
}

.apartment-activity-timeline__item--success .apartment-activity-timeline__dot {
    background: rgba(39, 174, 96, 0.14);
    color: #1e7e34;
}

.apartment-activity-timeline__item--warning .apartment-activity-timeline__dot {
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
}

.apartment-activity-timeline__item--current .apartment-activity-timeline__content {
    background: rgba(30, 58, 95, 0.05);
    border-color: rgba(45, 90, 135, 0.12);
}

.apartment-activity-timeline__content {
    min-width: 0;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 12px;
    background: #fff;
}

.apartment-activity-timeline__label {
    font-size: 0.84rem;
    font-weight: 600;
    color: #334155;
    line-height: 1.4;
}

.apartment-activity-timeline__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
    margin-top: 0.25rem;
    font-size: 0.74rem;
    color: #94a3b8;
    line-height: 1.35;
}

.apartment-activity-timeline__meta time {
    color: #64748b;
}

.apartment-activity-timeline__actor {
    color: #94a3b8;
}

.apartment-activity-timeline__actor::before {
    content: "·";
    margin-right: 0.35rem;
}

.company-project-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1.15rem;
    border-bottom: 1px solid var(--border);
}

.company-project-row:last-child {
    border-bottom: none;
}

.company-project-row__main {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    min-width: 0;
}

.company-project-row__name {
    font-weight: 700;
    color: var(--brand-primary);
    text-decoration: none;
    font-size: 0.9rem;
}

.company-project-row__name:hover {
    color: var(--brand-accent);
}

.company-chart-card {
    display: flex;
    flex-direction: column;
}

.company-chart-card canvas {
    max-height: 220px;
    margin-top: 0.5rem;
}

.subcontractor-status-actions {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
    width: auto;
    max-width: none;
}

.subcontractor-status-actions__form {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
}

.subcontractor-status-actions__btn,
.subcontractor-status-actions__view,
.subcontractor-status-actions__email {
    position: relative;
    width: 2.1rem;
    height: 2.1rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    border-radius: 0.55rem;
    flex-shrink: 0;
}

.subcontractor-status-actions [data-tooltip]::before,
.subcontractor-status-actions [data-tooltip]::after {
    position: absolute;
    left: 50%;
    z-index: 40;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition:
        opacity 0.18s ease,
        transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0.18s ease;
}

.subcontractor-status-actions [data-tooltip]::after {
    content: attr(data-tooltip);
    bottom: calc(100% + 0.7rem);
    transform: translate(-50%, 0.45rem) scale(0.92);
    min-width: max-content;
    max-width: 14rem;
    padding: 0.55rem 0.8rem;
    border-radius: 0.7rem;
    background: #0f172a;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.3;
    letter-spacing: 0.01em;
    text-align: center;
    white-space: nowrap;
    box-shadow:
        0 12px 28px rgba(15, 23, 42, 0.28),
        0 2px 6px rgba(15, 23, 42, 0.16);
}

.subcontractor-status-actions [data-tooltip]::before {
    content: '';
    bottom: calc(100% + 0.35rem);
    transform: translate(-50%, 0.45rem) rotate(45deg);
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 0.12rem;
    background: #0f172a;
    box-shadow: 2px 2px 4px rgba(15, 23, 42, 0.12);
}

.subcontractor-status-actions [data-tooltip]:hover::before,
.subcontractor-status-actions [data-tooltip]:hover::after,
.subcontractor-status-actions [data-tooltip]:focus-visible::before,
.subcontractor-status-actions [data-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0) scale(1);
}

.subcontractor-status-actions [data-tooltip]:hover::before,
.subcontractor-status-actions [data-tooltip]:focus-visible::before {
    transform: translate(-50%, 0) rotate(45deg) scale(1);
}

.subcontractor-status-actions:has([data-tooltip]:hover),
.subcontractor-status-actions:has([data-tooltip]:focus-visible),
.subcontractors-data-table tr:has(.subcontractor-status-actions [data-tooltip]:hover),
.subcontractors-data-table tr:has(.subcontractor-status-actions [data-tooltip]:focus-visible),
.subcontractors-index-card:has(.subcontractor-status-actions [data-tooltip]:hover),
.subcontractors-index-card:has(.subcontractor-status-actions [data-tooltip]:focus-visible) {
    z-index: 6;
    position: relative;
}

.subcontractor-status-actions__btn.is-active {
    color: #fff;
    border-color: transparent;
    cursor: default;
}

.subcontractor-status-actions__btn--active.is-active,
.subcontractor-status-actions__btn--invited.is-active {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
}

.subcontractor-status-actions__btn--suspended.is-active {
    background: var(--brand-accent);
    border-color: var(--brand-accent);
}

.subcontractor-status-actions__btn:disabled {
    opacity: 1;
}

.apartment-page-section {
    margin-bottom: 1.5rem;
}

.apartment-tasks-panel .admin-panel-card__body {
    padding: 1rem 1.15rem 1.15rem;
}

.apartment-tasks-panel__head {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.apartment-tasks-panel__toolbar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
    width: 100%;
}

.apartment-tasks-panel__context {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: 0.65rem;
    width: 100%;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--border);
}

.apartment-tasks-panel__location {
    display: contents;
}

.apartment-tasks-panel__field {
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
}

.apartment-tasks-panel__field--period {
    flex: 1.15 1 0;
}

.apartment-tasks-panel__form-select.app-form-select {
    width: 100%;
}

.apartment-tasks-panel__form-select .app-dropdown--form .app-dropdown__toggle {
    min-height: 38px;
    padding: 0.35rem 0.75rem;
    font-size: 0.875rem;
    border-radius: 8px;
}

.apartment-tasks-panel__form-select .app-dropdown__toggle-label {
    font-weight: 500;
}

.apartment-tasks-panel__field-label {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.apartment-tasks-panel__select {
    font-size: 0.8125rem;
    border-radius: 8px;
}

.apartment-tasks-panel__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-start;
    width: 100%;
}

@media (max-width: 767.98px) {
    .apartment-tasks-panel__toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .apartment-tasks-panel__context {
        flex-wrap: wrap;
        width: 100%;
    }

    .apartment-tasks-panel__location {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end;
        gap: 0.65rem;
        width: 100%;
    }

    .apartment-tasks-panel__stats {
        width: 100%;
    }

    .apartment-tasks-panel__field {
        flex: 1 1 calc(50% - 0.35rem);
        min-width: 9rem;
    }

    .apartment-tasks-panel__field--period {
        flex: 1 1 100%;
    }

    .apartment-tasks-panel__stats {
        justify-content: flex-start;
    }
}

.apartment-tasks-panel__amenities {
    width: 100%;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border);
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(30, 58, 95, 0.25) transparent;
}

.apartment-tasks-panel__amenities::-webkit-scrollbar {
    height: 4px;
}

.apartment-tasks-panel__amenities::-webkit-scrollbar-thumb {
    background: rgba(30, 58, 95, 0.22);
    border-radius: 999px;
}

.apartment-tasks-panel__amenities-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
    width: max-content;
    min-width: 100%;
    padding-bottom: 0.15rem;
}

.apartment-tasks-panel__amenities-label {
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    flex-shrink: 0;
    white-space: nowrap;
    line-height: 1.2;
}

.apartment-tasks-panel__amenities-options {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.25rem;
    flex-shrink: 0;
}

.apartment-tasks-panel__amenities-area-field {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    flex-shrink: 0;
    white-space: nowrap;
}

.apartment-tasks-panel__amenities-area-input {
    width: 4.25rem;
    min-height: 1.75rem;
    padding: 0.2rem 0.4rem;
    text-align: right;
    font-size: 0.75rem;
}

.apartment-tasks-panel__amenities-save {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.55rem;
    font-size: 0.75rem;
    white-space: nowrap;
}

.apartment-tasks-panel__amenities-save-text {
    margin-left: 0;
}

.apartment-amenity-chip {
    position: relative;
    margin: 0;
    cursor: pointer;
    flex-shrink: 0;
}

.apartment-tasks-panel__amenities.is-saving {
    opacity: 0.72;
    pointer-events: none;
}

.apartment-tasks-panel__amenities.is-saving .apartment-tasks-panel__amenities-save::after {
    content: '…';
    margin-left: 0.15rem;
}

.apartment-amenity-chip__input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.apartment-amenity-chip__content {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: #fff;
    font-size: 0.6875rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
    line-height: 1.2;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.apartment-amenity-chip:hover .apartment-amenity-chip__content {
    border-color: rgba(45, 90, 135, 0.28);
    color: var(--brand-primary);
}

.apartment-amenity-chip__input:checked + .apartment-amenity-chip__content {
    border-color: rgba(230, 126, 34, 0.5);
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    box-shadow: 0 0 0 2px rgba(230, 126, 34, 0.14);
}

.apartment-amenity-chip__input:checked + .apartment-amenity-chip__content i {
    opacity: 1;
    color: var(--brand-accent);
}

.apartment-amenity-chip__content i {
    font-size: 0.68rem;
    opacity: 0.85;
}

.apartment-amenity-chip__input:focus-visible + .apartment-amenity-chip__content {
    outline: 2px solid var(--brand-secondary);
    outline-offset: 2px;
}

.apartment-amenity-chip--readonly.is-enabled .apartment-amenity-chip__content {
    border-color: rgba(230, 126, 34, 0.35);
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-primary);
}

.apartment-tasks-panel__amenities--readonly .apartment-tasks-panel__amenities-row {
    align-items: center;
}

.apartment-tasks-panel__amenities-area-readonly {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-left: auto;
}

.apartment-tasks-panel__amenities-area-value {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.apartment-files-section {
    width: 100%;
    padding-top: 0.55rem;
    margin-top: 0.35rem;
    border-top: 1px solid var(--border);
}

.apartment-custom-categories-section {
    width: 100%;
    padding-top: 0.55rem;
    margin-top: 0.35rem;
    border-top: 1px solid var(--border);
}

.apartment-files-section__shell {
    border-radius: 10px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.03) 0%, rgba(255, 255, 255, 0.98) 55%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
    overflow: hidden;
}

.apartment-files-section__shell--has-files {
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.04) 0%, #fff 42%);
}

.apartment-files-section__head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.5rem 0.65rem;
}

.apartment-files-section__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 9px;
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
    font-size: 0.85rem;
    flex-shrink: 0;
}

.apartment-files-section__intro {
    flex: 1 1 auto;
    min-width: 0;
}

.apartment-files-section__title {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-primary);
    line-height: 1.2;
}

.apartment-files-section__help {
    font-size: 0.68rem;
    color: #64748b;
    margin-top: 0.08rem;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.apartment-files-section__add {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
    padding: 0.32rem 0.65rem;
    border-radius: 999px;
    border: 1px dashed rgba(230, 126, 34, 0.45);
    background: rgba(230, 126, 34, 0.08);
    color: var(--brand-accent);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.apartment-files-section__add:hover {
    background: rgba(230, 126, 34, 0.14);
    border-color: rgba(230, 126, 34, 0.65);
    color: #d35400;
    transform: translateY(-1px);
}

.apartment-files-section__shell--has-files .apartment-files-grid {
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    padding-top: 0.45rem;
}

.apartment-files-grid {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.35rem;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(30, 58, 95, 0.25) transparent;
    padding: 0 0.65rem 0.55rem;
}

.apartment-files-grid::-webkit-scrollbar {
    height: 4px;
}

.apartment-files-grid::-webkit-scrollbar-thumb {
    background: rgba(30, 58, 95, 0.22);
    border-radius: 999px;
}

.apartment-file-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
    flex: 0 0 auto;
    width: 14.5rem;
    max-width: 82vw;
    min-height: 0;
    padding: 0.42rem 0.5rem;
    border-radius: 8px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    box-shadow: 0 1px 3px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.apartment-file-card:hover {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.apartment-file-card__icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 7px;
    background: rgba(30, 58, 95, 0.06);
    font-size: 0.84rem;
    flex-shrink: 0;
}

.apartment-file-card__icon--pdf { color: #c0392b; }
.apartment-file-card__icon--image { color: #8e44ad; }
.apartment-file-card__icon--doc { color: #2980b9; }
.apartment-file-card__icon--sheet { color: #1e7e34; }
.apartment-file-card__icon--text { color: #64748b; }
.apartment-file-card__icon--cad { color: var(--brand-accent); }
.apartment-file-card__icon--file { color: var(--brand-primary); }

.apartment-file-card__body {
    flex: 1 1 auto;
    min-width: 0;
}

.apartment-file-card__title {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.apartment-file-card__meta {
    margin: 0.05rem 0 0;
    font-size: 0.62rem;
    color: #94a3b8;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.apartment-file-card__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    flex-shrink: 0;
    margin-left: auto;
}

.apartment-file-card__actions .btn-sm {
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
}

.apartment-file-card__download {
    min-width: 1.65rem;
}

@media (max-width: 575.98px) {
    .apartment-files-section__help {
        white-space: normal;
    }

    .apartment-files-section__add span {
        display: none;
    }

    .apartment-files-section__add {
        width: 1.85rem;
        height: 1.85rem;
        padding: 0;
        justify-content: center;
        border-radius: 999px;
    }
}

.apartment-file-detail-modal__head {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
}

.apartment-file-detail-modal__icon {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 1.1rem;
}

.apartment-file-detail-modal__preview-image {
    display: block;
    width: 100%;
    max-height: 16rem;
    object-fit: contain;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: #f8fafc;
}

.apartment-file-detail-modal__dl {
    margin: 0;
}

.apartment-file-detail-modal__row {
    display: flex;
    gap: 0.75rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.apartment-file-detail-modal__row:last-child {
    border-bottom: none;
}

.apartment-file-detail-modal__row dt {
    flex: 0 0 7rem;
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
}

.apartment-file-detail-modal__row dd {
    margin: 0;
    font-size: 0.8125rem;
    color: #334155;
    word-break: break-word;
}

.apartment-file-detail-modal__description {
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
    border: 1px solid var(--border);
}

.apartment-tasks-filter {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    min-width: 4.5rem;
    padding: 0.45rem 0.65rem;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.apartment-tasks-filter:hover {
    border-color: rgba(45, 90, 135, 0.35);
    background: rgba(45, 90, 135, 0.04);
}

.apartment-tasks-filter.is-active {
    border-color: var(--brand-secondary);
    background: rgba(45, 90, 135, 0.08);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.12);
}

.apartment-tasks-filter--all.is-active {
    border-color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.08);
    box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.1);
}

.apartment-tasks-filter--completed.is-active {
    border-color: var(--brand-success);
    background: rgba(39, 174, 96, 0.1);
    box-shadow: 0 0 0 3px rgba(39, 174, 96, 0.12);
}

.apartment-tasks-filter--progress.is-active {
    border-color: #3498db;
    background: rgba(52, 152, 219, 0.1);
    box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.12);
}

.apartment-tasks-filter--pending.is-active {
    border-color: #94a3b8;
    background: rgba(148, 163, 184, 0.14);
    box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.16);
}

.apartment-tasks-stat {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    min-width: 4.5rem;
    padding: 0.45rem 0.65rem;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: #fff;
}

.apartment-tasks-stat__value {
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.1;
}

.apartment-tasks-stat__label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    margin-top: 0.15rem;
    text-align: center;
}

.apartment-tasks-stat--completed .apartment-tasks-stat__value {
    color: var(--brand-success);
}

.apartment-tasks-stat--progress .apartment-tasks-stat__value {
    color: #2980b9;
}

.apartment-tasks-stat--pending .apartment-tasks-stat__value {
    color: #64748b;
}

.apartment-tasks-filter--all .apartment-tasks-stat__value {
    color: var(--brand-primary);
}

.apartment-tasks-filter--completed .apartment-tasks-stat__value {
    color: var(--brand-success);
}

.apartment-tasks-filter--progress .apartment-tasks-stat__value {
    color: #2980b9;
}

.apartment-tasks-filter--pending .apartment-tasks-stat__value {
    color: #64748b;
}

.apartment-task-item.is-filtered-out {
    display: none !important;
}

.apartment-task-group.is-filtered-out {
    display: none;
}

.apartment-task-group.is-flow-filtered-out {
    display: none;
}

.apartment-tasks-filter-empty {
    border: 1px dashed var(--border);
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.02);
}

.apartment-task-group + .apartment-task-group {
    margin-top: 1.35rem;
    padding-top: 1.35rem;
    border-top: 1px solid var(--border);
}

.apartment-task-group__head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.apartment-task-group__main {
    flex: 1 1 auto;
    min-width: 0;
}

.apartment-special-task-add-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: 100%;
    height: 100%;
    min-height: 4.5rem;
    padding: 0.85rem 0.75rem;
    border: 1px dashed rgba(30, 58, 95, 0.22);
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.02);
    color: #64748b;
    text-align: center;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.apartment-special-task-add-card:hover {
    border-color: rgba(230, 126, 34, 0.45);
    background: rgba(230, 126, 34, 0.05);
    color: var(--brand-primary);
    transform: translateY(-1px);
}

.apartment-special-task-add-card__icon {
    width: 1.85rem;
    height: 1.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 0.75rem;
}

.apartment-special-task-add-card__title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: inherit;
}

.apartment-special-task-add-card__meta {
    font-size: 0.68rem;
    line-height: 1.3;
    color: #94a3b8;
}

.apartment-special-task-add-card:hover .apartment-special-task-add-card__meta {
    color: #64748b;
}

.apartment-task-card-wrap--special {
    border-left-color: var(--brand-accent);
}

.apartment-task-card-wrap--special .apartment-task-card__icon {
    background: rgba(230, 126, 34, 0.14);
    color: #b35f12;
}

.apartment-task-card__badges {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    flex-shrink: 0;
}

.apartment-task-card__special-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.38rem;
    border-radius: 999px;
    font-size: 0.58rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #b35f12;
    background: rgba(230, 126, 34, 0.14);
}

.apartment-task-card__unit-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.38rem;
    border-radius: 999px;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #1e3a5f;
    background: rgba(30, 58, 95, 0.08);
}

.apartment-task-item--add {
    display: flex;
}

.apartment-task-item--add .apartment-special-task-add-card {
    flex: 1 1 auto;
}

.apartment-task-group__icon {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 1rem;
}

.apartment-task-group__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.apartment-task-group__meta {
    margin: 0.15rem 0 0;
    font-size: 0.78rem;
    color: #64748b;
}

@media (max-width: 575.98px) {
    .apartment-task-group__grid {
        display: flex;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 0.75rem;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
        scrollbar-color: rgba(30, 58, 95, 0.25) transparent;
        margin-left: 0;
        margin-right: 0;
        padding-bottom: 0.35rem;
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }

    .apartment-task-group__grid::-webkit-scrollbar {
        height: 4px;
    }

    .apartment-task-group__grid::-webkit-scrollbar-thumb {
        background: rgba(30, 58, 95, 0.22);
        border-radius: 999px;
    }

    .apartment-task-group__grid > .apartment-task-item {
        flex: 0 0 auto;
        width: min(82vw, 17.5rem);
        max-width: 82vw;
        padding-left: 0;
        padding-right: 0;
        scroll-snap-align: start;
    }

    .apartment-task-group__grid > .apartment-task-item .apartment-task-card-wrap {
        height: 100%;
    }
}

.apartment-task-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    height: 100%;
    min-height: 0;
    padding: 0.65rem 0.75rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 10px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.apartment-task-card:hover {
    border-color: rgba(230, 126, 34, 0.45);
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.08);
    color: inherit;
    transform: translateY(-1px);
}

.apartment-task-card--completed {
    border-left: 3px solid var(--brand-success);
}

.apartment-task-card--in_progress {
    border-left: 3px solid #3498db;
}

.apartment-task-card--not_started {
    border-left: 3px solid #cbd5e1;
}

.apartment-task-card--locked {
    opacity: 0.72;
}

.apartment-task-card__icon {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-secondary);
    font-size: 0.78rem;
}

.apartment-task-card__main {
    flex: 1 1 auto;
    min-width: 0;
}

.apartment-task-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.45rem;
    margin-bottom: 0.35rem;
}

.apartment-task-card__title {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.apartment-task-card__head .badge {
    flex-shrink: 0;
    font-size: 0.6rem;
    font-weight: 700;
    padding: 0.18rem 0.42rem;
    line-height: 1.2;
}

.apartment-task-card__meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.28rem;
}

.apartment-task-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
    background: rgba(100, 116, 139, 0.08);
    border-radius: 999px;
    padding: 0.12rem 0.4rem;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.apartment-task-card__chip i {
    font-size: 0.6rem;
    opacity: 0.85;
    flex-shrink: 0;
}

.apartment-task-card__chip--xp {
    color: #b35f12;
    background: rgba(230, 126, 34, 0.12);
}

.apartment-task-card__chip--info {
    color: var(--brand-secondary);
    background: rgba(45, 90, 135, 0.1);
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.apartment-task-card__chip--locked {
    color: #64748b;
    background: rgba(100, 116, 139, 0.12);
    padding-left: 0.35rem;
    padding-right: 0.35rem;
}

.apartment-task-card__chip--reading {
    font-weight: 600;
}

.apartment-task-card__chip--reading.is-ready {
    color: #15803d;
    background: rgba(34, 197, 94, 0.14);
}

.apartment-task-card__chip--reading.is-not-ready {
    color: #b45309;
    background: rgba(245, 158, 11, 0.14);
}

.apartment-task-group__custom-badge {
    display: inline-flex;
    align-items: center;
    margin-left: 0.35rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #2563eb;
    background: rgba(59, 130, 246, 0.12);
    vertical-align: middle;
}

.apartment-task-group--custom .apartment-task-group__head {
    border-color: rgba(59, 130, 246, 0.18);
}

.apartment-task-group__actions {
    margin-left: auto;
}

.apartment-task-card__chevron {
    flex-shrink: 0;
    color: #94a3b8;
    font-size: 0.68rem;
    line-height: 1;
}

.apartment-task-card:hover .apartment-task-card__chevron {
    color: var(--brand-accent);
}

button.apartment-task-card {
    width: 100%;
    text-align: left;
    font: inherit;
    color: inherit;
}

.apartment-task-card-wrap {
    display: flex;
    flex-direction: column;
    height: 100%;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: #fff;
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.apartment-task-card-wrap:hover {
    border-color: rgba(45, 90, 135, 0.35);
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.08);
}

.apartment-task-card-wrap--completed {
    border-left: 3px solid var(--brand-success);
}

.apartment-task-card-wrap--in_progress {
    border-left: 3px solid #3498db;
}

.apartment-task-card-wrap--not_started {
    border-left: 3px solid #cbd5e1;
}

.apartment-task-card-wrap--locked {
    opacity: 0.72;
}

.apartment-task-card-wrap .apartment-task-card {
    border: none;
    border-radius: 0;
    box-shadow: none;
    flex: 1 1 auto;
}

.apartment-task-card-wrap .apartment-task-card:hover {
    transform: none;
    box-shadow: none;
    border-color: transparent;
}

.apartment-task-card-wrap .apartment-task-card--completed,
.apartment-task-card-wrap .apartment-task-card--in_progress,
.apartment-task-card-wrap .apartment-task-card--not_started {
    border-left: none;
}

.apartment-task-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.4rem 0.65rem;
    border-top: 1px solid var(--border);
    background: rgba(30, 58, 95, 0.02);
}

.apartment-task-card__actions .btn-sm {
    font-size: 0.72rem;
    padding: 0.22rem 0.5rem;
}

.apartment-task-reading-status__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 700;
}

.apartment-task-reading-status__badge.is-ready {
    color: #15803d;
    background: rgba(34, 197, 94, 0.14);
}

.apartment-task-reading-status__badge.is-not-ready {
    color: #b45309;
    background: rgba(245, 158, 11, 0.14);
}

.apartment-task-reading-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
}

.apartment-task-reading-pill.is-ready {
    color: #15803d;
    background: rgba(34, 197, 94, 0.14);
}

.apartment-task-reading-pill.is-not-ready {
    color: #b45309;
    background: rgba(245, 158, 11, 0.14);
}

.apartment-task-complete-switch {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 1.75rem;
    padding-right: 0.25rem;
    cursor: pointer;
    user-select: none;
}

.apartment-task-complete-switch .form-check-input {
    width: 2rem;
    height: 1.1rem;
    margin-top: 0;
    cursor: pointer;
}

.apartment-task-complete-switch .form-check-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
}

.apartment-task-complete-switch .form-check-input:checked + .form-check-label {
    color: var(--brand-primary);
}

.apartment-task-complete-toggle:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.apartment-task-header__body {
    align-items: flex-start;
}

.apartment-task-header__intro {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    min-width: 0;
    flex: 1 1 auto;
}

.apartment-task-header__content {
    min-width: 0;
}

.apartment-task-header__actions {
    align-self: center;
    flex-direction: row;
    flex-wrap: nowrap;
}

.apartment-task-header__action-btn {
    flex: 0 0 auto;
}

@media (max-width: 991.98px) {
    .apartment-task-header__actions {
        width: 100%;
        align-self: stretch;
    }

    .apartment-task-header__action-btn {
        flex: 1 1 0;
        min-width: 0;
        justify-content: center;
    }
}

@media (max-width: 767.98px) {
    .apartment-task-header__actions .btn {
        flex: 1 1 0;
    }
}

.apartment-task-detail-page__icon {
    width: 3rem;
    height: 3rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    flex-shrink: 0;
    font-size: 1.2rem;
}

.apartment-task-detail-dl__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--border);
}

.apartment-task-detail-dl__row:last-child {
    border-bottom: none;
}

.apartment-task-detail-dl__row dt {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin: 0;
}

.apartment-task-detail-dl__row dd {
    margin: 0;
    font-weight: 600;
    color: var(--brand-primary);
    text-align: right;
}

.apartment-task-summary-card__body {
    display: grid;
    gap: 1rem;
    padding: 1rem 1.15rem 1.15rem;
}

.apartment-task-summary-card__status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.05), rgba(45, 90, 135, 0.08));
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.apartment-task-summary-card__status-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748b;
}

.apartment-task-summary-card__status-value .badge {
    font-size: 0.78rem;
    padding: 0.4rem 0.75rem;
}

.apartment-task-summary-card__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
}

.apartment-task-summary-card__stat {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.85rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    min-width: 0;
}

.apartment-task-summary-card__stat-icon {
    flex-shrink: 0;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
}

.apartment-task-summary-card__stat-icon--xp {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.apartment-task-summary-card__stat-icon--company {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.apartment-task-summary-card__stat-main {
    min-width: 0;
}

.apartment-task-summary-card__stat-value {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.25;
}

.apartment-task-summary-card__stat-value--text {
    font-size: 0.88rem;
    font-weight: 600;
    word-break: break-word;
}

.apartment-task-summary-card__stat-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-top: 0.15rem;
}

.apartment-task-summary-card__timeline {
    display: grid;
    gap: 0.55rem;
    padding-top: 0.15rem;
    border-top: 1px solid var(--border);
}

.apartment-task-summary-card__timeline-item {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.apartment-task-summary-card__timeline-icon {
    flex-shrink: 0;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
    font-size: 0.72rem;
}

.apartment-task-summary-card__timeline-icon--done {
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
}

.apartment-task-summary-card__timeline-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.apartment-task-summary-card__timeline-value {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary);
    line-height: 1.35;
    margin-top: 0.1rem;
}

@media (max-width: 575.98px) {
    .apartment-task-summary-card__grid {
        grid-template-columns: 1fr;
    }
}

.apartment-task-notes-card .admin-panel-card__head .admin-panel-card__subtitle {
    margin-top: 0.2rem;
}

.apartment-task-notes-form {
    display: grid;
    gap: 0.75rem;
}

.apartment-task-notes-form--empty {
    margin-top: -0.35rem;
}

.apartment-task-notes-form__input {
    border-radius: 12px;
    min-height: 7rem;
    line-height: 1.45;
    resize: vertical;
}

.apartment-task-notes-form__actions {
    display: flex;
    justify-content: flex-end;
}

.apartment-task-notes-content {
    font-size: 0.9rem;
    color: #475569;
    line-height: 1.55;
    white-space: pre-wrap;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.03);
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.apartment-task-detail-page {
    min-width: 0;
}

.apartment-task-detail-page__grid > [class*="col-"] {
    min-width: 0;
}

.apartment-task-photos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0.85rem;
}

.apartment-task-photos-gallery {
    display: grid;
    gap: 0.65rem;
}

.apartment-task-photos-gallery__hint {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}

.apartment-task-photos-gallery__track {
    display: flex;
    gap: 0.75rem;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0.15rem 0.15rem 0.65rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(30, 58, 95, 0.25) transparent;
}

.apartment-task-photos-gallery__track:focus {
    outline: none;
}

.apartment-task-photos-gallery__track:focus-visible {
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.14);
    border-radius: 12px;
}

.apartment-task-photos-gallery__track::-webkit-scrollbar {
    height: 6px;
}

.apartment-task-photos-gallery__track::-webkit-scrollbar-thumb {
    background: rgba(30, 58, 95, 0.22);
    border-radius: 999px;
}

.apartment-task-photos-gallery__thumb {
    position: relative;
    flex: 0 0 auto;
    width: 9.5rem;
    height: 7.5rem;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    background: #f1f5f9;
    cursor: pointer;
    scroll-snap-align: start;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.apartment-task-photos-gallery__thumb:hover,
.apartment-task-photos-gallery__thumb:focus {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
    border-color: var(--brand-secondary);
    outline: none;
}

.apartment-task-photos-gallery__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.apartment-task-photos-gallery__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.42);
    color: #fff;
    font-size: 1.15rem;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.apartment-task-photos-gallery__thumb:hover .apartment-task-photos-gallery__overlay,
.apartment-task-photos-gallery__thumb:focus .apartment-task-photos-gallery__overlay {
    opacity: 1;
}

.apartment-task-photo-viewer__head {
    min-width: 0;
    padding-right: 0.5rem;
}

.apartment-task-photo-viewer__title {
    word-break: break-word;
}

.apartment-task-photo-viewer__meta {
    font-size: 0.8rem;
    margin-top: 0.15rem;
    color: rgba(255, 255, 255, 0.82) !important;
}

.apartment-task-photo-viewer__body {
    padding: 0.75rem;
    background: #0f172a;
    text-align: center;
}

.apartment-task-photo-viewer__image {
    display: block;
    max-width: 100%;
    max-height: min(70vh, 36rem);
    width: auto;
    height: auto;
    margin: 0 auto;
    border-radius: 8px;
    object-fit: contain;
}

.apartment-task-photo-viewer__footer {
    justify-content: center;
}

.apartment-task-photo-viewer__footer.app-modal-footer--between {
    justify-content: center;
}

.apartment-task-photo-viewer__nav {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.apartment-task-photo-viewer__counter {
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
    min-width: 3.5rem;
    text-align: center;
}

@media (max-width: 575.98px) {
    .apartment-task-photos-gallery__thumb {
        width: 8.5rem;
        height: 6.75rem;
    }

    .apartment-task-photo-viewer__footer {
        flex-direction: column;
        align-items: stretch;
    }

    .apartment-task-photo-viewer__nav {
        width: 100%;
        justify-content: space-between;
    }
}

.apartment-task-photo-card {
    display: block;
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.apartment-task-photo-card:hover {
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
    transform: translateY(-1px);
}

.apartment-task-photo-card__image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: #f1f5f9;
}

.apartment-task-photo-card__meta {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.55rem 0.65rem 0.65rem;
}

.apartment-task-photo-card__name {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--brand-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.apartment-task-photo-card__uploader,
.apartment-task-photo-card__date {
    font-size: 0.72rem;
    color: #64748b;
}

@media (max-width: 991.98px) {
    .apartment-task-header__body {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
    }

    .apartment-task-header__actions {
        width: 100%;
        align-self: stretch;
        flex-direction: row;
        flex-wrap: nowrap;
    }

    .apartment-task-detail-page .page-header-card__nav {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }

    .apartment-task-detail-page .apartment-header-card__trail {
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    .apartment-task-detail-page .admin-panel-card {
        border-radius: 10px;
    }

    .apartment-task-detail-page .admin-panel-card__head {
        padding: 0.85rem 0.9rem;
    }

    .apartment-task-detail-page .admin-panel-card__body {
        padding: 0.85rem 0.9rem 0.95rem;
    }

    .apartment-task-detail-page .admin-panel-card__head.d-flex {
        flex-direction: column;
        align-items: stretch;
    }

    .apartment-task-detail-page .admin-panel-card__head.d-flex .btn {
        width: 100%;
        justify-content: center;
    }

    .apartment-task-detail-page .admin-panel-card__title {
        font-size: 0.9rem;
        line-height: 1.35;
    }

    .apartment-task-detail-page .admin-panel-card__subtitle {
        font-size: 0.76rem;
        line-height: 1.4;
    }

    .apartment-task-header__intro {
        gap: 0.75rem;
    }

    .apartment-task-header .page-header-card__title {
        font-size: 1rem;
        word-break: break-word;
    }

    .apartment-task-header .page-header-card__subtitle {
        font-size: 0.82rem;
    }

    .apartment-task-detail-page__icon {
        width: 2.5rem;
        height: 2.5rem;
        font-size: 1rem;
    }

    .apartment-task-photos-grid {
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
        gap: 0.65rem;
    }

    .apartment-task-detail-page .apartment-todo-item {
        flex-direction: column;
        gap: 0.75rem;
        padding: 0.9rem;
    }

    .apartment-task-detail-page .apartment-todo-item__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.35rem;
    }

    .apartment-task-detail-page .apartment-todo-item .data-table-actions {
        width: 100%;
        justify-content: flex-end;
    }

    .apartment-task-detail-page .location-breadcrumb {
        font-size: 0.78rem;
        line-height: 1.45;
    }

    .apartment-activity-panel__count {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .apartment-task-detail-page {
        padding-bottom: 5.5rem;
    }

    .apartment-task-header .page-header-card__body,
    .apartment-task-header .page-header-card__nav {
        padding-left: 0.9rem;
        padding-right: 0.9rem;
    }

    .apartment-task-header__actions .btn {
        min-height: 44px;
        font-size: 0.78rem;
        padding: 0.45rem 0.55rem;
        line-height: 1.25;
        white-space: normal;
        text-align: center;
    }

    .apartment-task-header__actions .btn i {
        font-size: 0.85em;
    }

    .apartment-task-photos-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .apartment-task-detail-dl__row {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.2rem;
        padding: 0.65rem 0;
    }

    .apartment-task-detail-dl__row dd {
        text-align: left;
        font-size: 0.9rem;
        word-break: break-word;
    }

    .apartment-task-detail-dl__row dt {
        font-size: 0.72rem;
    }

    .apartment-task-detail-page .apartment-header-card__chips {
        gap: 0.35rem;
    }

    .apartment-task-detail-page .apartment-header-chip {
        font-size: 0.72rem;
        max-width: 100%;
    }

    .apartment-task-detail-page textarea.form-control {
        min-height: 7rem;
    }

    .apartment-activity-timeline__label {
        font-size: 0.84rem;
    }

    .apartment-activity-timeline__meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.15rem;
    }
}

@media (max-width: 399.98px) {
    .apartment-task-photos-grid {
        grid-template-columns: 1fr;
    }
}

.apartment-task-complete-preview__item {
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}

.apartment-task-complete-preview__image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: #f1f5f9;
}

.apartment-task-complete-preview__name {
    display: block;
    padding: 0.4rem 0.5rem;
    font-size: 0.72rem;
    color: #64748b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.task-photo-upload__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.task-photo-upload__count {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.task-photo-upload__count.is-ready {
    color: #15803d;
}

.task-photo-upload__drop {
    border: 1.5px dashed #cfd8e3;
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.02), rgba(45, 90, 135, 0.05));
    padding: 1.25rem 1rem;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
    cursor: pointer;
    margin-bottom: 1rem;
}

.task-photo-upload__drop:hover,
.task-photo-upload__drop:focus {
    border-color: rgba(45, 90, 135, 0.55);
    background: rgba(45, 90, 135, 0.06);
    outline: none;
}

.task-photo-upload.is-dragover .task-photo-upload__drop {
    border-color: var(--brand-accent);
    background: rgba(230, 126, 34, 0.08);
    box-shadow: 0 0 0 4px rgba(230, 126, 34, 0.12);
}

.task-photo-upload__drop-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
}

.task-photo-upload__icon {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 1.2rem;
}

.task-photo-upload__title {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.task-photo-upload__hint {
    font-size: 0.78rem;
    color: #64748b;
    max-width: 24rem;
    line-height: 1.45;
}

.task-photo-upload__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.task-photo-upload__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.75rem;
}

.task-photo-upload__grid:empty {
    display: none;
}

.task-photo-upload__card {
    position: relative;
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    aspect-ratio: 1;
}

.task-photo-upload__image-wrap {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    overflow: hidden;
}

.task-photo-upload__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.2s ease;
}

.task-photo-upload__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0.45rem;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.45) 0%, transparent 35%, transparent 65%, rgba(15, 23, 42, 0.55) 100%);
    opacity: 0;
    transition: opacity 0.15s ease;
}

.task-photo-upload__card:hover .task-photo-upload__overlay,
.task-photo-upload__card:focus-within .task-photo-upload__overlay {
    opacity: 1;
}

.task-photo-upload__top-actions,
.task-photo-upload__bottom-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
}

.task-photo-upload__bottom-meta {
    font-size: 0.68rem;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.task-photo-upload__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.task-photo-upload__card-actions {
    display: inline-flex;
    gap: 0.35rem;
}

.task-photo-upload__action {
    width: 2rem;
    height: 2rem;
    border: none;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.92);
    color: var(--brand-primary);
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
}

.task-photo-upload__action:hover {
    background: #fff;
    transform: scale(1.05);
}

.task-photo-upload__action--danger {
    color: #b91c1c;
}

@media (max-width: 575.98px) {
    .task-photo-upload__actions {
        width: 100%;
    }

    .task-photo-upload__actions .btn {
        flex: 1 1 auto;
    }

    .task-photo-upload__overlay {
        opacity: 1;
    }
}

.task-complete-problem__panel {
    padding: 1rem;
    border-radius: 14px;
    background: rgba(234, 179, 8, 0.06);
    border: 1px solid rgba(234, 179, 8, 0.25);
}

.task-complete-problem__upload-empty {
    padding: 0.85rem;
    border: 1.5px dashed #e2c76b;
    border-radius: 12px;
    background: #fff;
}

.task-complete-problem__preview {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.75rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
}

.task-complete-problem__preview-image {
    width: 5.5rem;
    height: 5.5rem;
    object-fit: cover;
    border-radius: 10px;
    flex-shrink: 0;
    background: #f1f5f9;
}

.task-complete-problem__preview-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.install-task-complete-page__shell {
    max-width: 38rem;
    margin: 0 auto;
}

.install-task-flow-page__shell {
    max-width: 38rem;
    margin: 0 auto;
}

.install-task-complete-page__back,
.install-task-flow-page__back {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--brand-secondary);
    text-decoration: none;
}

.install-task-complete-page__back:hover,
.install-task-flow-page__back:hover {
    color: var(--brand-primary);
}

.install-task-complete-page__card,
.install-task-flow-page__card {
    overflow: hidden;
}

.install-task-complete-page__header,
.install-task-flow-page__header {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding-bottom: 0.85rem;
}

.install-task-complete-page__icon,
.install-task-flow-page__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
    font-size: 1rem;
}

.install-task-flow-page__icon--photos {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.install-task-complete-page__title,
.install-task-flow-page__title {
    color: var(--brand-primary);
    font-weight: 700;
}

.install-task-complete-page__subtitle,
.install-task-flow-page__subtitle {
    font-size: 0.875rem;
    color: #64748b;
}

.install-task-complete-page__footer,
.install-task-flow-page__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
    padding-top: 0.85rem;
}

.install-task-complete-page__footer .btn,
.install-task-flow-page__footer .btn {
    min-width: 7.5rem;
}

.install-task-complete-page__body {
    padding-top: 0.25rem;
}

.install-task-complete-page__body .task-photo-upload__drop-inner {
    padding: 1rem;
}

.install-task-complete-page__body .task-photo-upload__grid {
    grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr));
}

.install-task-photos-page__body {
    padding-top: 0.25rem;
}

.install-task-photos-page__section-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.55rem;
}

.install-task-photos-page__existing {
    margin-bottom: 1.15rem;
    padding-bottom: 1rem;
    border-bottom: 1px dashed rgba(30, 58, 95, 0.12);
}

.install-task-photos-page__existing .apartment-task-photos-card--embedded {
    margin: 0;
}

.install-task-photos-page__existing .apartment-task-photos-gallery__track {
    grid-auto-columns: 5.5rem;
}

.install-task-photos-page__existing .apartment-task-photos-gallery__thumb {
    width: 5.5rem;
    height: 5.5rem;
}

.install-task-photos-page__upload .task-photo-upload__drop-inner {
    padding: 1rem;
}

.install-task-photos-page__upload .task-photo-upload__grid {
    grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr));
}

.install-task-photos-page__upload--has-existing {
    padding-top: 0.15rem;
}

@media (max-width: 575.98px) {
    .install-task-complete-page__footer,
    .install-task-flow-page__footer {
        flex-direction: column-reverse;
    }

    .install-task-complete-page__footer .btn,
    .install-task-flow-page__footer .btn {
        width: 100%;
        min-width: 0;
    }
}

.apartment-task-problem-card__notes-label {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.35rem;
    font-weight: 600;
}

.apartment-task-problem-card__photo {
    display: inline-block;
    max-width: 220px;
    text-decoration: none;
    color: inherit;
}

.apartment-task-problem-card__photo-image {
    display: block;
    width: 100%;
    border-radius: 12px;
    border: 1px solid rgba(234, 179, 8, 0.35);
    aspect-ratio: 4 / 3;
    object-fit: cover;
    background: #f1f5f9;
}

.apartment-task-problem-card__photo-caption {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.78rem;
    color: #64748b;
}

.apartment-task-card--clickable {
    cursor: pointer;
}

.apartment-task-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.35rem;
}

.apartment-task-card__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.72rem;
    color: #64748b;
}

.apartment-task-card__chip--details {
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.08);
}

.apartment-task-detail-modal__head {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.apartment-task-detail-modal__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    flex-shrink: 0;
}

.apartment-task-detail-stat__label {
    display: block;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.15rem;
}

.apartment-task-detail-stat__value {
    font-weight: 600;
    color: var(--brand-primary);
}

.apartment-task-detail-modal__timeline {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
    border: 1px solid var(--border);
}

.apartment-task-detail-modal__notes {
    padding: 1rem;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: #fff;
}

.apartment-task-detail-modal__todos {
    padding-top: 0.25rem;
}

.apartment-todo-item--compact {
    padding-left: 0;
    padding-right: 0;
}

.apartment-tasks-empty {
    border: 1px dashed var(--border);
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.02);
}

.work-overview-page .page-header {
    margin-bottom: 1.25rem;
}

.work-overview-hero__banner {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 1rem;
    min-height: 11.5rem;
    padding: 1.35rem 1.5rem;
    border-radius: 1rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background:
        radial-gradient(circle at 85% 20%, rgba(251, 146, 60, 0.22), transparent 42%),
        linear-gradient(135deg, #eef4ff 0%, #f8fafc 55%, #fff7ed 100%);
    overflow: hidden;
}

.work-overview-hero__copy {
    max-width: 22rem;
    align-self: center;
}

.work-overview-hero__title {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.45rem;
    line-height: 1.25;
}

.work-overview-hero__help {
    color: #64748b;
    font-size: 0.95rem;
}

.work-overview-hero__art {
    width: min(42%, 18rem);
    align-self: flex-end;
}

.work-overview-hero__art svg {
    width: 100%;
    height: auto;
    display: block;
}

.work-overview-actions {
    display: grid;
    gap: 0.75rem;
    height: 100%;
}

.work-overview-action {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    border-radius: 0.9rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: #fff;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    width: 100%;
    text-align: left;
}

.work-overview-action:hover {
    border-color: rgba(30, 58, 95, 0.16);
    color: inherit;
}

.work-overview-action__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}

.work-overview-action--reports .work-overview-action__icon {
    background: rgba(34, 197, 94, 0.14);
    color: #15803d;
}

.work-overview-action--export .work-overview-action__icon {
    background: rgba(139, 92, 246, 0.14);
    color: #6d28d9;
}

.work-overview-action--alerts .work-overview-action__icon {
    background: rgba(59, 130, 246, 0.14);
    color: #1d4ed8;
}

.work-overview-action__title {
    display: block;
    font-weight: 700;
    color: var(--brand-primary);
    font-size: 0.95rem;
}

.work-overview-action__help {
    display: block;
    font-size: 0.8rem;
    color: #64748b;
}

.work-overview-filters-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 1rem;
    padding: 1rem 1.1rem;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    overflow: visible;
}

.work-overview-filters__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    gap: 0.85rem 1rem;
    align-items: end;
}

.work-overview-filters__actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.work-overview-kpi {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-height: 6.5rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    height: 100%;
}

.work-overview-kpi__ring {
    --progress: 0;
    width: 3.6rem;
    height: 3.6rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    background:
        radial-gradient(circle at center, #fff 58%, transparent 59%),
        conic-gradient(#22c55e calc(var(--progress) * 1%), #e2e8f0 0);
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.work-overview-kpi__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.1rem;
}

.work-overview-kpi__icon--apartments {
    background: rgba(230, 126, 34, 0.14);
    color: #c2410c;
}

.work-overview-kpi__icon--completed {
    background: rgba(59, 130, 246, 0.14);
    color: #1d4ed8;
}

.work-overview-kpi__icon--pending {
    background: rgba(139, 92, 246, 0.14);
    color: #6d28d9;
}

.work-overview-kpi__value {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1.1;
}

.work-overview-kpi__label {
    font-weight: 700;
    color: var(--brand-primary);
    font-size: 0.92rem;
}

.work-overview-kpi__meta {
    font-size: 0.78rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.work-overview-panel {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 1rem;
    padding: 1rem 1.1rem 1.1rem;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.work-overview-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.work-overview-panel__title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0;
}

.work-overview-panel__link {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-secondary);
    text-decoration: none;
}

.work-overview-panel__footer {
    margin-top: auto;
    padding-top: 0.85rem;
}

.work-overview-projects {
    display: grid;
    gap: 0.7rem;
}

.work-overview-project {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.85rem;
    align-items: start;
    padding: 0.9rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.9rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.work-overview-project:hover {
    color: inherit;
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.work-overview-project__thumb {
    width: 3rem;
    height: 3rem;
    border-radius: 0.85rem;
    background: linear-gradient(145deg, #dbeafe 0%, #fff7ed 100%);
    color: var(--brand-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    box-shadow: inset 0 0 0 1px rgba(30, 58, 95, 0.06);
}

.work-overview-project__body {
    min-width: 0;
    display: grid;
    gap: 0.45rem;
}

.work-overview-project__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.work-overview-project__copy {
    min-width: 0;
}

.work-overview-project__name {
    display: block;
    font-weight: 800;
    color: var(--brand-primary);
    font-size: 0.95rem;
    line-height: 1.25;
}

.work-overview-project__meta {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    color: #64748b;
    min-width: 0;
}

.work-overview-project__meta > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.work-overview-project__meta i {
    color: var(--brand-accent);
    font-size: 0.7rem;
    flex-shrink: 0;
}

.work-overview-project__side {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.work-overview-project__progress {
    font-weight: 800;
    color: var(--brand-primary);
    font-size: 0.92rem;
    background: rgba(30, 58, 95, 0.06);
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    line-height: 1.2;
}

.work-overview-project__chevron {
    color: #94a3b8;
    font-size: 0.75rem;
}

.work-overview-project:hover .work-overview-project__chevron {
    color: var(--brand-secondary);
}

.work-overview-project__track {
    display: block;
    height: 0.4rem;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.work-overview-project__fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #22c55e, #86efac);
}

.work-overview-project__footer {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}

.work-overview-panel__head--stack {
    flex-wrap: wrap;
    align-items: flex-start;
}

.work-overview-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    font-size: 0.72rem;
    color: #64748b;
}

.work-overview-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
    font-weight: 600;
}

.work-overview-legend__dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    display: inline-block;
    flex-shrink: 0;
}

.work-overview-legend__dot--done { background: #22c55e; }
.work-overview-legend__dot--progress { background: #f59e0b; }
.work-overview-legend__dot--pending { background: #94a3b8; }

.work-overview-blocks {
    display: grid;
    gap: 0.7rem;
}

.work-overview-block {
    padding: 0.9rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.9rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.work-overview-block__head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    align-items: start;
    margin-bottom: 0.65rem;
}

.work-overview-block__thumb {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.75rem;
    background: linear-gradient(145deg, #dbeafe 0%, #fff7ed 100%);
    color: var(--brand-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(30, 58, 95, 0.06);
}

.work-overview-block__copy {
    min-width: 0;
}

.work-overview-block__name {
    font-weight: 800;
    color: var(--brand-primary);
    font-size: 0.95rem;
    line-height: 1.25;
}

.work-overview-block__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    color: #64748b;
}

.work-overview-block__dot {
    width: 0.25rem;
    height: 0.25rem;
    border-radius: 999px;
    background: #cbd5e1;
}

.work-overview-block__pct {
    font-weight: 800;
    font-size: 0.92rem;
    background: rgba(34, 197, 94, 0.12);
    color: #15803d;
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    line-height: 1.2;
}

.work-overview-block__bar {
    display: flex;
    height: 0.55rem;
    border-radius: 999px;
    overflow: hidden;
    background: #e2e8f0;
}

.work-overview-block__seg {
    display: block;
    height: 100%;
    min-width: 0;
}

.work-overview-block__seg--done {
    background: linear-gradient(90deg, #16a34a, #4ade80);
}

.work-overview-block__seg--progress {
    background: linear-gradient(90deg, #d97706, #fbbf24);
}

.work-overview-block__seg--pending {
    background: #cbd5e1;
}

.work-overview-block__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.85rem;
    margin-top: 0.55rem;
}

.work-overview-block__stat {
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 600;
}

.work-overview-block__stat strong {
    font-weight: 800;
}

.work-overview-block__stat--done strong { color: #15803d; }
.work-overview-block__stat--progress strong { color: #b45309; }
.work-overview-block__stat--pending strong { color: #475569; }

.work-overview-blocks-empty {
    text-align: center;
    padding: 2rem 1.25rem;
    margin-top: 0.15rem;
    border-radius: 0.9rem;
    background:
        radial-gradient(circle at top, rgba(45, 90, 135, 0.06), transparent 55%),
        linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    border: 1px dashed rgba(30, 58, 95, 0.14);
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 11rem;
}

.work-overview-blocks-empty__art {
    position: relative;
    width: 4.75rem;
    height: 4.75rem;
    margin: 0 auto 1rem;
    border-radius: 1.15rem;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #dbeafe 0%, #fff7ed 100%);
    color: var(--brand-secondary);
    font-size: 1.55rem;
    box-shadow: inset 0 0 0 1px rgba(30, 58, 95, 0.06);
}

.work-overview-blocks-empty__ring {
    position: absolute;
    inset: -0.35rem;
    border-radius: 1.35rem;
    border: 1px dashed rgba(45, 90, 135, 0.22);
    pointer-events: none;
}

.work-overview-blocks-empty__title {
    font-weight: 800;
    color: var(--brand-primary);
    margin-bottom: 0.4rem;
    font-size: 0.98rem;
}

.work-overview-blocks-empty__help {
    color: #64748b;
    font-size: 0.88rem;
    max-width: 28rem;
    margin: 0 auto 1rem;
    line-height: 1.45;
}

.work-overview-panel--blocks .work-overview-panel__head {
    margin-bottom: 1rem;
}

@media (max-width: 1199.98px) {
    .work-overview-filters__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .work-overview-filters__actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767.98px) {
    .work-overview-hero__banner {
        flex-direction: column;
    }

    .work-overview-hero__art {
        width: 100%;
        max-width: 16rem;
        margin-left: auto;
    }

    .work-overview-filters__grid {
        grid-template-columns: 1fr;
    }
}

.work-overview-filters-panel,
.work-overview-filters,
.work-overview-filters .row {
    overflow: visible;
}

.work-overview-filters .form-label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.work-overview-filters__select.app-form-select {
    width: 100%;
    margin: 0;
}

.work-overview-filters__select .app-dropdown--form .app-dropdown__toggle {
    min-height: 2.5rem;
    border-radius: 0.65rem;
}

.work-overview-filters .row > [class*="col-"] {
    position: relative;
}

.work-overview-filters .row > [class*="col-"]:has(.dropdown.show) {
    z-index: 5;
}

.work-overview-filters-badge {
    background: var(--brand-primary);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 600;
}

.work-overview-filters__actions .btn {
    min-height: 2.5rem;
}

.work-overview-filters-toggle {
    min-height: 2.75rem;
}

.work-overview-group__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.work-overview-group__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.15rem;
}

.work-overview-group__address {
    font-size: 0.85rem;
}

.work-overview-group__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.work-overview-apartment-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1rem;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: #fff;
    color: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.work-overview-apartment-card:hover {
    border-color: rgba(45, 90, 135, 0.35);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.work-overview-apartment-card__main {
    display: block;
    color: inherit;
    text-decoration: none;
}

.work-overview-apartment-card__main:hover {
    color: inherit;
}

.work-overview-apartment-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.work-overview-apartment-card__title {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 0.1rem;
    color: var(--brand-primary);
}

.work-overview-apartment-card__sub {
    font-size: 0.78rem;
}

.work-overview-progress {
    height: 0.45rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
}

.work-overview-progress .progress-bar {
    background: linear-gradient(90deg, var(--brand-secondary), var(--brand-accent));
}

.work-overview-apartment-card__tasks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--border);
}

.work-overview-apartment-card__interactive {
    position: relative;
    z-index: 2;
}

.work-overview-apartment-card__link::after {
    z-index: 1;
}

.work-overview-apartments {
    --bs-gutter-x: 1rem;
}

.work-overview-apartments .project-overview-apt-card {
    margin-bottom: 0;
    height: 100%;
}

.work-overview-apartments .project-overview-apt-card__file-title {
    max-width: 12rem;
}

.subcontractor-apartments-grid {
    --bs-gutter-x: 1rem;
}

.subcontractor-apartments-grid .project-overview-apt-card {
    margin-bottom: 0;
    height: 100%;
}

.subcontractor-apartments-grid .project-overview-apt-card__file-title {
    max-width: 12rem;
}

.work-overview-task-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
}

.work-overview-task-chip.has-popover {
    cursor: help;
}

.work-overview-task-popover {
    position: absolute;
    left: 0;
    bottom: calc(100% + 0.45rem);
    z-index: 20;
    min-width: 12rem;
    max-width: 16rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: #fff;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.14);
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
    pointer-events: none;
}

.work-overview-task-chip.has-popover:hover .work-overview-task-popover,
.work-overview-task-chip.has-popover:focus .work-overview-task-popover,
.work-overview-task-chip.has-popover:focus-within .work-overview-task-popover {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.work-overview-task-popover__title {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-primary);
    margin-bottom: 0.35rem;
}

.work-overview-task-popover__list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 11rem;
    overflow-y: auto;
}

.work-overview-task-popover__list li {
    font-size: 0.75rem;
    line-height: 1.35;
    color: #334155;
    padding: 0.2rem 0;
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.work-overview-task-popover__list li:last-child {
    border-bottom: none;
}

.work-overview-task-chip--done {
    color: #1e7e45;
    background: rgba(39, 174, 96, 0.12);
}

.work-overview-task-chip--progress {
    color: #2471a3;
    background: rgba(52, 152, 219, 0.12);
}

.work-overview-task-chip--pending {
    color: #64748b;
    background: rgba(148, 163, 184, 0.16);
}

.work-overview-task-chip__count {
    font-weight: 700;
}

@media (min-width: 992px) {
    .work-overview-filters-panel.collapse {
        display: block !important;
        height: auto !important;
        visibility: visible !important;
    }
}

@media (max-width: 991.98px) {
    .work-overview-page .admin-panel-card__head {
        padding-bottom: 0.75rem;
    }

    .work-overview-page .admin-panel-card__title {
        font-size: 1.05rem;
    }

    .work-overview-page .admin-panel-card__subtitle {
        font-size: 0.82rem;
    }

    .work-overview-stats .admin-stat-card {
        padding: 0.85rem;
        gap: 0.65rem;
    }

    .work-overview-stats .admin-stat-card__icon {
        width: 2.15rem;
        height: 2.15rem;
        font-size: 0.9rem;
    }

    .work-overview-stats .admin-stat-card__value {
        font-size: 1.35rem;
    }

    .work-overview-stats .admin-stat-card__label {
        font-size: 0.72rem;
        line-height: 1.25;
    }

    .work-overview-stats .admin-stat-card__meta {
        font-size: 0.68rem;
        line-height: 1.35;
    }

    .work-overview-group__head {
        flex-direction: column;
        align-items: stretch;
    }

    .work-overview-group__meta {
        flex-direction: column;
        align-items: stretch;
    }

    .work-overview-group__meta .apartment-header-chip {
        justify-content: flex-start;
        width: 100%;
    }

    .work-overview-apartment-card {
        padding: 0.85rem;
    }

    .work-overview-apartment-card:hover {
        transform: none;
    }

    .work-overview-apartment-card__head {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .work-overview-apartment-card__tasks {
        flex-direction: column;
        align-items: stretch;
        gap: 0.35rem;
    }

    .work-overview-task-chip {
        width: 100%;
        justify-content: flex-start;
        padding: 0.45rem 0.65rem;
        border-radius: 8px;
    }

    .work-overview-task-popover {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        pointer-events: auto;
        min-width: 0;
        max-width: none;
        width: 100%;
        margin-top: 0.45rem;
        box-shadow: none;
        border-style: dashed;
        display: none;
    }

    .work-overview-task-chip.has-popover.is-open .work-overview-task-popover {
        display: block;
    }

    .work-overview-task-chip.has-popover:hover .work-overview-task-popover {
        display: none;
    }

    .work-overview-task-chip.has-popover.is-open:hover .work-overview-task-popover {
        display: block;
    }

    .project-overview-apt-card__tasks {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.25rem;
    }

    .project-overview-apt-card__stat.has-popover {
        min-width: 0;
        justify-content: center;
        padding: 0.2rem 0.3rem;
        font-size: 0.62rem;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        border-radius: 999px;
    }

    .project-overview-apt-card__stat.has-popover.is-open .work-overview-task-popover {
        display: block;
    }

    .project-overview-apt-card__stat.has-popover:hover .work-overview-task-popover {
        display: none;
    }

    .project-overview-apt-card__stat.has-popover.is-open:hover .work-overview-task-popover {
        display: block;
    }

    .project-member-avatars__item.has-popover .project-member-popover {
        top: 50%;
        right: calc(100% + 0.5rem);
        left: auto;
        bottom: auto;
        transform: translateY(-50%) translateX(6px);
        display: none;
    }

    .project-member-avatars__item.has-popover.is-open .project-member-popover {
        display: block;
        opacity: 1;
        visibility: visible;
        transform: translateY(-50%) translateX(0);
    }

    .project-member-avatars__item.has-popover:hover .project-member-popover {
        display: none;
        opacity: 0;
        visibility: hidden;
    }

    .project-member-avatars__item.has-popover.is-open:hover .project-member-popover {
        display: block;
        opacity: 1;
        visibility: visible;
        transform: translateY(-50%) translateX(0);
    }

    .work-overview-map-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin-bottom: 0.5rem;
        padding-bottom: 0.25rem;
    }

    .work-overview-map-wrap .apartment-map {
        min-width: 16rem;
    }
}

@media (max-width: 575.98px) {
    .work-overview-stats > [class*="col-"] {
        padding-left: calc(var(--bs-gutter-x) * 0.5);
        padding-right: calc(var(--bs-gutter-x) * 0.5);
    }

    .work-overview-stats .admin-stat-card {
        flex-direction: row;
        align-items: center;
    }

    .work-overview-stats .admin-stat-card__value {
        font-size: 1.25rem;
    }

    .work-overview-group__title {
        font-size: 0.95rem;
    }

    .work-overview-group__address {
        font-size: 0.78rem;
    }

    .work-overview-map-wrap .apartment-map {
        grid-template-columns: repeat(auto-fill, minmax(52px, 1fr));
        gap: 0.35rem;
    }

    .work-overview-map-wrap .apartment-cell {
        min-height: 44px;
        font-size: 0.75rem;
    }

    .work-overview-task-chip__label {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        min-width: 0;
        flex: 1;
    }
}

.apartment-todos-panel .admin-panel-card__body {
    padding: 0;
}

.apartment-todos-empty {
    padding: 1.25rem 1.15rem;
}

.apartment-todos-empty-state,
.apartment-panel-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.85rem;
    padding: 2rem 1.25rem;
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.03) 0%, rgba(30, 58, 95, 0.01) 100%);
    border: 1px dashed rgba(30, 58, 95, 0.14);
    border-radius: 12px;
}

.apartment-todos-empty-state__icon,
.apartment-panel-empty-state__icon {
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 1.25rem;
}

.apartment-todos-empty-state__title,
.apartment-panel-empty-state__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.apartment-todos-empty-state__text,
.apartment-panel-empty-state__text {
    font-size: 0.84rem;
    color: #64748b;
    line-height: 1.45;
    max-width: 26rem;
}

.apartment-todos-empty-state__action,
.apartment-panel-empty-state__action {
    margin-top: 0.25rem;
    min-height: 38px;
    padding-inline: 1rem;
}

@media (max-width: 575.98px) {
    .apartment-todos-empty-state,
    .apartment-panel-empty-state {
        padding: 1.5rem 1rem;
    }

    .apartment-todos-empty-state__action,
    .apartment-panel-empty-state__action {
        width: 100%;
        justify-content: center;
    }
}

.apartment-todo-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--border);
}

.apartment-todo-item:last-child {
    border-bottom: none;
}

.apartment-todo-item__main {
    min-width: 0;
    flex: 1;
}

.apartment-todo-item__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.35rem;
}

.apartment-todo-item__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.apartment-todo-item__dates {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
    background: rgba(100, 116, 139, 0.1);
    border-radius: 999px;
    padding: 0.15rem 0.55rem;
}

.apartment-todo-item__description {
    margin: 0 0 0.55rem;
    font-size: 0.85rem;
    color: #475569;
    line-height: 1.45;
    white-space: pre-wrap;
}

.apartment-todo-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

@media (max-width: 767.98px) {
    .apartment-todo-item {
        flex-direction: column;
    }
}

.data-table-section {
    margin-bottom: 0;
}

/* Contractor project flow tip */
.project-flow-tip {
    display: flex;
    gap: 0.85rem;
    padding: 0.9rem 1.1rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.04);
}

.project-flow-tip__icon {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.project-flow-tip__title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.35rem;
}

.project-flow-tip__steps {
    padding-left: 1.1rem;
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.45;
}

.project-flow-tip__steps li + li {
    margin-top: 0.2rem;
}

/* App modal system */
.modal .modal-content,
.app-modal-content {
    border: none;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 48px rgba(30, 58, 95, 0.18);
}

.modal .modal-header,
.app-modal-header {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.15rem 1.35rem;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    border-bottom: none;
}

.app-modal-header__main {
    flex: 1;
    min-width: 0;
}

.app-modal-header__title,
.modal .modal-header .modal-title,
.app-modal-header .modal-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.35;
}

.app-modal-subtitle,
.app-modal-eyebrow,
.modal .modal-header .app-modal-subtitle,
.modal .modal-header .small.text-muted,
.modal .modal-header .text-muted {
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 0.82rem;
    line-height: 1.45;
}

.app-modal-eyebrow {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.72) !important;
    margin-bottom: 0.2rem;
}

.app-modal-header__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    flex-shrink: 0;
}

.app-modal-header__close,
.modal .modal-header .btn-close {
    flex-shrink: 0;
    margin: 0;
    padding: 0.65rem;
    filter: invert(1);
    opacity: 0.88;
}

.app-modal-header__close:hover,
.modal .modal-header .btn-close:hover {
    opacity: 1;
}

.app-modal-header .btn-outline-brand,
.modal .modal-header .btn-outline-brand {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.45);
    color: #fff;
}

.app-modal-header .btn-outline-brand:hover,
.app-modal-header .btn-outline-brand:focus,
.modal .modal-header .btn-outline-brand:hover,
.modal .modal-header .btn-outline-brand:focus {
    background: rgba(255, 255, 255, 0.16);
    border-color: #fff;
    color: #fff;
}

.modal .modal-body,
.app-modal-body {
    padding: 1.25rem 1.35rem;
}

.modal .modal-footer,
.app-modal-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.9rem 1.35rem 1.15rem;
    background: #f8fafc;
    border-top: 1px solid rgba(226, 232, 240, 0.95);
}

.modal-dialog-scrollable .modal-content {
    display: flex;
    flex-direction: column;
    max-height: 100%;
}

.modal-dialog-scrollable .modal-content > form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
}

.modal-dialog-scrollable .modal-content > form .modal-header,
.modal-dialog-scrollable .modal-content > form .app-modal-header,
.modal-dialog-scrollable .modal-content > form .modal-footer,
.modal-dialog-scrollable .modal-content > form .app-modal-footer {
    flex-shrink: 0;
}

.modal-dialog-scrollable .modal-content > form .modal-body {
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
}

.app-modal-footer--between {
    justify-content: space-between;
}

.app-modal-footer--between > .d-flex {
    margin-left: auto;
}

.modal .modal-footer .btn-brand,
.app-modal-footer .btn-brand {
    min-width: 6.5rem;
}

@media (max-width: 575.98px) {
    .modal .modal-header,
    .app-modal-header {
        flex-wrap: wrap;
        padding: 1rem 1rem 0.95rem;
    }

    .app-modal-header__actions {
        width: 100%;
        order: 3;
    }

    .app-modal-header__close,
    .modal .modal-header .btn-close {
        margin-left: auto;
    }

    .modal .modal-body,
    .app-modal-body {
        padding: 1rem;
    }

    .modal .modal-footer,
    .app-modal-footer {
        padding: 0.85rem 1rem 1rem;
    }

    .modal .modal-footer .btn,
    .app-modal-footer .btn {
        flex: 1 1 auto;
    }
}

.modal .btn-brand,
.modal .btn-outline-brand {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.modal .btn-brand:hover,
.modal .btn-brand:focus,
.modal .btn-brand:active,
.modal .btn-outline-brand:hover,
.modal .btn-outline-brand:focus,
.modal .btn-outline-brand:active {
    background-color: var(--brand-secondary);
    border-color: var(--brand-secondary);
    color: #fff;
}

/* QR code card */
.qr-panel {
    padding: 1.25rem;
    background: var(--surface, #fff);
    border: 1px solid var(--border);
    border-radius: 12px;
}

.qr-section {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
}

.qr-section--compact {
    flex-direction: row;
    align-items: center;
    gap: 0.75rem;
}

.qr-section__side {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    min-width: 0;
}

.qr-section--compact .qr-section__side {
    flex: 1 1 auto;
}

.qr-section__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.qr-section__regenerate-form {
    display: inline-flex;
    margin: 0;
}

.qr-section__meta {
    word-break: break-all;
    line-height: 1.3;
}

.qr-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 160px;
    min-height: 160px;
    padding: 0.35rem;
    background: #fff;
    border: 2px solid var(--border);
    border-radius: 10px;
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.06);
}

.qr-card__canvas {
    display: block;
    width: 148px;
    height: 148px;
}

.qr-card--compact {
    width: 112px;
    min-height: 112px;
    padding: 0.25rem;
}

.qr-card--compact .qr-card__canvas {
    width: 96px;
    height: 96px;
}

.qr-card__empty,
.qr-card__error {
    width: 100%;
}

/* App dropdowns (language, role switcher, shared) */
.app-dropdown__toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 500;
    white-space: nowrap;
}

.app-dropdown__toggle::after {
    margin-left: 0.15rem;
}

.app-dropdown__toggle-icon {
    font-size: 0.95rem;
    opacity: 0.9;
}

.app-dropdown__toggle-label {
    max-width: 10rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.app-dropdown__menu {
    --bs-dropdown-min-width: 13rem;
    min-width: 220px;
    padding: 0.5rem;
    border: 1px solid var(--border);
    border-radius: var(--dropdown-radius);
    box-shadow: var(--dropdown-shadow);
    margin-top: 0.5rem !important;
    overflow: hidden;
    z-index: 1100;
}

.app-dropdown__menu--portal {
    position: fixed !important;
    margin-top: 0.5rem !important;
    z-index: 1200 !important;
}

.app-dropdown__menu--form-portal {
    overflow-x: hidden;
    overflow-y: auto;
    max-height: min(16rem, calc(100dvh - 8rem));
}

.app-dropdown__menu--form-portal .app-dropdown__item {
    align-items: flex-start;
}

.app-dropdown__menu--form-portal .app-dropdown__item-main {
    flex: 1 1 auto;
    min-width: 0;
}

.app-dropdown__menu--form-portal .app-dropdown__item-label {
    display: block;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.35;
}

.app-dropdown__header {
    list-style: none;
    padding: 0.4rem 0.75rem 0.55rem;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6c757d;
    pointer-events: none;
}

.app-dropdown__header--sub {
    padding-top: 0.65rem;
    font-size: 0.62rem;
    color: #94a3b8;
}

.account-mode-switcher__item .app-dropdown__item-main {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.12rem;
}

.account-mode-switcher__desc {
    font-size: 0.74rem;
    font-weight: 400;
    line-height: 1.35;
    color: #64748b;
    text-transform: none;
    letter-spacing: normal;
}

.app-dropdown--profile .account-mode-switcher__item .app-dropdown__item-main {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 0.65rem;
    row-gap: 0.1rem;
    align-items: start;
}

.app-dropdown--profile .account-mode-switcher__item .app-dropdown__item-icon {
    grid-row: 1 / span 2;
    margin-top: 0.1rem;
}

.app-dropdown--profile .account-mode-switcher__item .app-dropdown__item-label {
    grid-column: 2;
}

.app-dropdown--profile .account-mode-switcher__item .account-mode-switcher__desc {
    grid-column: 2;
}

.profile-account-mode__shell {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.04) 0%, rgba(255, 255, 255, 0.98) 70%);
}

.profile-account-mode__intro {
    flex: 1 1 220px;
    min-width: 0;
}

.profile-account-mode__title {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.profile-account-mode__help {
    margin-top: 0.2rem;
    font-size: 0.8rem;
    color: #64748b;
}

.profile-account-mode__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.profile-account-mode__current {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-left: auto;
}

.profile-account-mode__current-label {
    font-size: 0.74rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.app-dropdown__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.6rem 0.75rem;
    border-radius: 8px;
    font-size: 0.9rem;
    color: var(--brand-primary);
    min-height: 44px;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.app-dropdown__item:hover,
.app-dropdown__item:focus {
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
}

.app-dropdown__item.is-active {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-primary);
    font-weight: 600;
}

.app-dropdown__item-main {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.app-dropdown__item-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.1rem;
    padding: 0.2rem 0.45rem;
    border-radius: 6px;
    background: rgba(30, 58, 95, 0.08);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--brand-secondary);
    flex-shrink: 0;
}

.app-dropdown__item.is-active .app-dropdown__item-code {
    background: rgba(230, 126, 34, 0.2);
    color: #c06512;
}

.app-dropdown__item-label {
    line-height: 1.35;
}

.app-dropdown__item-check {
    color: var(--brand-accent);
    font-size: 0.85rem;
    flex-shrink: 0;
}

/* Toolbar variant (dashboard topbar) */
.app-dropdown--toolbar .app-dropdown__toggle {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.35rem 0.75rem;
    color: var(--brand-primary);
    font-size: 0.875rem;
    min-height: 38px;
}

.app-dropdown--toolbar .app-dropdown__toggle:hover,
.app-dropdown--toolbar .app-dropdown__toggle:focus,
.app-dropdown--toolbar .app-dropdown__toggle.show {
    background: var(--surface);
    border-color: var(--brand-secondary);
    color: var(--brand-primary);
    box-shadow: none;
}

.app-dropdown--toolbar .app-dropdown__toggle::after {
    border-top-color: var(--brand-secondary);
}

/* Form field variant (styled select for dashboards) */
.app-form-select {
    width: 100%;
}

.app-form-select__native {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.app-form-select:has(.dropdown.show) {
    position: relative;
    z-index: 1050;
}

.app-dropdown--form {
    position: relative;
    width: 100%;
}

.app-dropdown--form .app-dropdown__toggle {
    width: 100%;
    justify-content: space-between;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 0.45rem 0.85rem;
    color: var(--brand-primary);
    font-size: 0.9375rem;
    font-weight: 500;
    min-height: 38px;
    text-align: left;
}

.app-dropdown--form .app-dropdown__toggle:hover,
.app-dropdown--form .app-dropdown__toggle:focus,
.app-dropdown--form .app-dropdown__toggle.show {
    background: var(--surface);
    border-color: var(--brand-secondary);
    color: var(--brand-primary);
    box-shadow: none;
}

.app-dropdown--form .app-dropdown__toggle::after {
    border-top-color: var(--brand-secondary);
    flex-shrink: 0;
}

.app-dropdown--form .app-dropdown__toggle-label {
    max-width: none;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-dropdown--form .app-dropdown__menu {
    width: max-content;
    min-width: 100%;
    max-width: min(36rem, calc(100vw - 2rem));
    max-height: 16rem;
    overflow-x: hidden;
    overflow-y: auto;
}

.app-dropdown--form .app-dropdown__item {
    align-items: flex-start;
}

.app-dropdown--form .app-dropdown__item-main {
    flex: 1 1 auto;
    min-width: 0;
}

.app-dropdown--form .app-dropdown__item-label {
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.35;
}

.app-dropdown--form .app-dropdown__item:not(.is-active) .app-dropdown__item-check {
    visibility: hidden;
}

.app-form-select:has(.app-form-select__native:invalid) .app-dropdown--form .app-dropdown__toggle {
    border-color: var(--bs-danger, #dc3545);
}

/* Form date field (styled calendar matching form selects) */
.app-form-date {
    width: 100%;
}

.app-form-date__native {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.app-form-date:has(.dropdown.show) {
    position: relative;
    z-index: 1050;
}

.app-form-date__toggle::after {
    display: none !important;
}

.app-form-date__icon {
    flex-shrink: 0;
    margin-left: 0.5rem;
    color: var(--brand-secondary);
    font-size: 0.95rem;
}

.app-form-date__toggle .app-dropdown__toggle-label.is-placeholder {
    color: #64748b;
    font-weight: 500;
}

.app-form-date__menu {
    width: 100%;
    min-width: 17.5rem;
    max-width: min(20rem, calc(100vw - 2rem));
    padding: 0.75rem;
    overflow: visible;
}

.app-form-date__menu.app-dropdown__menu--portal {
    width: auto;
}

.app-form-date__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.app-form-date__month {
    flex: 1;
    min-width: 0;
    text-align: center;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.app-form-date__nav {
    width: 2rem;
    height: 2rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    color: var(--brand-primary);
    line-height: 1;
}

.app-form-date__nav:hover,
.app-form-date__nav:focus {
    border-color: var(--brand-secondary);
    background: var(--surface);
    color: var(--brand-primary);
}

.app-form-date__weekdays,
.app-form-date__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.2rem;
}

.app-form-date__weekdays {
    margin-bottom: 0.35rem;
}

.app-form-date__weekday {
    text-align: center;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    padding: 0.15rem 0;
}

.app-form-date__day {
    aspect-ratio: 1;
    min-height: 2rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--brand-primary);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1;
    padding: 0;
}

.app-form-date__day:hover:not(:disabled):not(.is-selected) {
    background: var(--surface);
}

.app-form-date__day.is-outside {
    color: #94a3b8;
    font-weight: 500;
}

.app-form-date__day.is-today:not(.is-selected) {
    box-shadow: inset 0 0 0 1.5px var(--brand-secondary);
}

.app-form-date__day.is-selected {
    background: var(--brand-secondary);
    color: #fff;
}

.app-form-date__day:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.app-form-date__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--border);
}

.app-form-date:has(.app-form-date__native:invalid) .app-form-date__toggle {
    border-color: var(--bs-danger, #dc3545);
}

.admin-panel-card:has(.app-form-date .dropdown.show) {
    overflow: visible;
    z-index: 1200;
}

/* Navbar variant (frontend header) */
.app-dropdown--navbar .app-dropdown__toggle {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 8px;
    padding: 0.35rem 0.85rem !important;
    color: #fff !important;
    font-size: 0.9rem;
    min-height: 44px;
}

.app-dropdown--navbar .app-dropdown__toggle:hover,
.app-dropdown--navbar .app-dropdown__toggle:focus,
.app-dropdown--navbar .app-dropdown__toggle.show {
    background: rgba(255, 255, 255, 0.18);
    color: #fff !important;
}

.app-dropdown--navbar .app-dropdown__toggle::after {
    border-top-color: rgba(255, 255, 255, 0.85);
}

.site-navbar .app-dropdown--navbar-profile .app-dropdown__toggle--profile {
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    padding: 0.2rem 0.55rem 0.2rem 0.2rem;
    gap: 0.5rem;
    max-width: 220px;
    background: rgba(255, 255, 255, 0.1);
    min-height: 44px;
}

.site-navbar .app-dropdown--navbar-profile .app-dropdown__toggle--profile:hover,
.site-navbar .app-dropdown--navbar-profile .app-dropdown__toggle--profile:focus,
.site-navbar .app-dropdown--navbar-profile .app-dropdown__toggle--profile.show {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.3);
    color: #fff !important;
}

.site-navbar .app-dropdown--navbar-profile .app-dropdown__profile-name {
    color: #fff;
    max-width: 9rem;
}

.dashboard-topbar .app-dropdown__menu {
    max-height: min(70vh, 320px);
    overflow-y: auto;
}

.dashboard-topbar .app-dropdown__menu--todos,
.dashboard-topbar .app-dropdown__menu--notifications {
    --bs-dropdown-min-width: 26rem;
    width: min(26rem, calc(100vw - 1rem));
    min-width: min(26rem, calc(100vw - 1rem));
    max-width: min(26rem, calc(100vw - 1rem));
    padding: 0;
    max-height: min(72vh, 28rem);
    overflow: hidden;
}

.dashboard-topbar .app-dropdown__menu--todos .notification-panel__body,
.dashboard-topbar .app-dropdown__menu--notifications .notification-panel__body {
    overflow-y: auto;
    flex: 1 1 auto;
}

@media (max-width: 575.98px) {
    .dashboard-topbar .app-dropdown__menu--todos,
    .dashboard-topbar .app-dropdown__menu--notifications {
        position: fixed !important;
        inset: 3.5rem 0.5rem auto 0.5rem !important;
        transform: none !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0.35rem 0 0 !important;
        z-index: 1035;
    }

    .dashboard-topbar .app-dropdown__menu--todos .notification-panel__header,
    .dashboard-topbar .app-dropdown__menu--todos .notification-panel__footer,
    .dashboard-topbar .app-dropdown__menu--todos .subcontractor-todo-panel-item {
        padding-left: 0.85rem;
        padding-right: 0.85rem;
    }

    .dashboard-topbar .app-dropdown__menu--todos .notification-panel__subtitle {
        font-size: 0.74rem;
        line-height: 1.4;
    }
}

/* Data tables (DataTables-style) */
.data-table-panel {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.06);
    overflow: hidden;
}

.data-table-panel:has(.dropdown.show),
.data-table-panel--dropdown-open {
    overflow: visible;
    z-index: 1100;
}

.data-table-responsive:has(.dropdown.show),
.data-table-panel--dropdown-open .data-table-responsive {
    overflow: visible;
}

table.data-table tbody tr:has(.dropdown.show),
.data-table-panel--dropdown-open table.data-table tbody tr:has(.dropdown.show) {
    position: relative;
    z-index: 4;
}

table.data-table tbody td:has(.dropdown.show),
table.data-table tbody td.data-table-cell-actions:has(.dropdown.show),
.data-table-panel--dropdown-open table.data-table tbody td.data-table-cell-actions {
    overflow: visible;
    z-index: 25;
}

.subcontractors-index-toolbar {
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.subcontractors-index-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.55rem;
    min-width: 0;
    flex: 1 1 16rem;
}

.subcontractors-index-filter__select {
    min-width: min(100%, 18rem);
    max-width: 22rem;
}

.subcontractors-index-filter__clear {
    align-self: flex-end;
    margin-bottom: 0.1rem;
}

.subcontractors-index-card {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.9rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.subcontractors-index-card:hover {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.subcontractors-index-card__top {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.7rem;
    align-items: start;
}

.subcontractors-index-card__avatar {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #dbeafe 0%, #fff7ed 100%);
    color: var(--brand-primary);
    font-size: 0.75rem;
    font-weight: 800;
    box-shadow: inset 0 0 0 1px rgba(30, 58, 95, 0.06);
}

.subcontractors-index-card__heading {
    min-width: 0;
}

.subcontractors-index-card__title {
    display: block;
    font-weight: 800;
    color: var(--brand-primary);
    text-decoration: none;
    font-size: 0.98rem;
    line-height: 1.3;
}

a.subcontractors-index-card__title:hover {
    color: var(--brand-secondary);
}

.subcontractors-index-card__project {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.25rem;
    font-size: 0.78rem;
    color: #64748b;
    text-decoration: none;
    min-width: 0;
}

.subcontractors-index-card__project:hover {
    color: var(--brand-secondary);
}

.subcontractors-index-card__project i {
    color: var(--brand-accent);
    font-size: 0.7rem;
    flex-shrink: 0;
}

.subcontractors-index-card__project span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.subcontractors-index-card__details {
    display: grid;
    gap: 0.5rem;
}

.subcontractors-index-card__chip {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    min-width: 0;
    padding: 0.55rem 0.6rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
}

.subcontractors-index-card__chip > i {
    margin-top: 0.15rem;
    color: var(--brand-accent);
    font-size: 0.78rem;
    flex-shrink: 0;
}

.subcontractors-index-card__chip-copy {
    min-width: 0;
    display: grid;
    gap: 0.08rem;
}

.subcontractors-index-card__chip-label {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
}

.subcontractors-index-card__chip-value {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.subcontractors-index-card__chip-value.is-empty {
    color: #94a3b8;
    font-weight: 600;
}

.subcontractors-index-card__footer {
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    display: flex;
    justify-content: stretch;
}

.subcontractors-index-card__footer .subcontractor-status-actions {
    width: 100%;
    flex-wrap: wrap;
}

.subcontractors-data-table .data-table-responsive {
    overflow-x: auto;
}

.subcontractors-data-table table.data-table {
    min-width: 68rem;
}

.subcontractors-data-table table.data-table thead th.data-table-cell-actions,
.subcontractors-data-table table.data-table tbody td.data-table-cell-actions {
    min-width: 11.5rem;
    width: 11.5rem;
    overflow: visible;
}

.subcontractors-data-table .subcontractor-status-actions {
    justify-content: flex-end;
}

.subcontractor-direct-email__sender {
    padding: 0.75rem 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #f8fafc;
}

.subcontractor-direct-email__sender-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.2rem;
}

.subcontractor-direct-email__sender-name {
    font-weight: 800;
    color: var(--brand-primary);
    font-size: 0.95rem;
}

.subcontractor-direct-email__sender-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.9rem;
    margin-top: 0.3rem;
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 600;
}

.subcontractor-direct-email__sender-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.subcontractor-direct-email__sender-meta i {
    color: var(--brand-accent);
    font-size: 0.72rem;
}

.worker-broadcast-history__body.rich-text-content {
    white-space: normal;
}

.worker-broadcast-history__body.rich-text-content p {
    margin: 0 0 0.5rem;
}

.worker-broadcast-history__body.rich-text-content p:last-child {
    margin-bottom: 0;
}

.projects-index-panel {
    display: grid;
    gap: 0.75rem;
}

.projects-index-panel__toolbar {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.projects-index-panel__view-toggle {
    display: inline-flex;
    gap: 0.2rem;
    padding: 0.2rem;
    border: 1px solid rgba(30, 58, 95, 0.14);
    border-radius: 0.65rem;
    background: #eef2f7;
    box-shadow: inset 0 1px 1px rgba(30, 58, 95, 0.04);
}

.projects-index-panel__view-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 2.05rem;
    padding: 0.35rem 0.8rem;
    color: #64748b;
    text-decoration: none;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid transparent;
    border-radius: 0.5rem;
    background: transparent;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.projects-index-panel__view-btn i {
    font-size: 0.85rem;
}

.projects-index-panel__view-btn:hover {
    color: var(--brand-primary);
    background: rgba(255, 255, 255, 0.7);
}

.projects-index-panel__view-btn.is-active {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
    box-shadow: 0 1px 3px rgba(30, 58, 95, 0.22);
    pointer-events: none;
}

.projects-index-panel__view-btn.is-active:hover {
    background: var(--brand-primary);
    color: #fff;
}

.projects-index-cards-panel {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.projects-index-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr));
    gap: 0.85rem;
}

.projects-index-cards-empty {
    text-align: center;
    padding: 2.5rem 1rem;
}

.projects-index-card {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.9rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.projects-index-card:hover {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.projects-index-card__top {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.7rem;
    align-items: start;
}

.projects-index-card__thumb {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.75rem;
    background: linear-gradient(145deg, #dbeafe 0%, #fff7ed 100%);
    color: var(--brand-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(30, 58, 95, 0.06);
}

.projects-index-card__heading {
    min-width: 0;
}

.projects-index-card__title {
    display: block;
    font-weight: 800;
    color: var(--brand-primary);
    text-decoration: none;
    font-size: 0.98rem;
    line-height: 1.3;
}

.projects-index-card__title:hover {
    color: var(--brand-secondary);
}

.projects-index-card__address {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.25rem;
    font-size: 0.78rem;
    color: #64748b;
    min-width: 0;
}

.projects-index-card__address i {
    color: var(--brand-accent);
    font-size: 0.7rem;
    flex-shrink: 0;
}

.projects-index-card__address span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.projects-index-card__status {
    flex-shrink: 0;
}

.projects-index-card__details {
    display: grid;
    gap: 0.65rem;
}

.projects-index-card__schedule {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0.45rem;
    align-items: center;
    padding: 0.7rem 0.75rem;
    border-radius: 0.75rem;
    background: #f1f5f9;
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.projects-index-card__schedule-item {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    min-width: 0;
}

.projects-index-card__schedule-icon {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--brand-secondary);
    font-size: 0.75rem;
    flex-shrink: 0;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.06);
}

.projects-index-card__schedule-copy {
    min-width: 0;
    display: grid;
    gap: 0.1rem;
}

.projects-index-card__schedule-label {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
}

.projects-index-card__schedule-value {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.25;
}

.projects-index-card__schedule-value.is-empty,
.projects-index-card__chip-value.is-empty {
    color: #94a3b8;
    font-weight: 600;
}

.projects-index-card__schedule-arrow {
    color: #94a3b8;
    font-size: 0.7rem;
    flex-shrink: 0;
}

.projects-index-card__chips {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

.projects-index-card__chip {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    min-width: 0;
    padding: 0.55rem 0.6rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
}

.projects-index-card__chip > i {
    margin-top: 0.15rem;
    color: var(--brand-accent);
    font-size: 0.78rem;
    flex-shrink: 0;
}

.projects-index-card__chip--code > i {
    color: var(--brand-secondary);
}

.projects-index-card__chip-copy {
    min-width: 0;
    display: grid;
    gap: 0.08rem;
}

.projects-index-card__chip-label {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
}

.projects-index-card__chip-value {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.projects-index-card__chip-value code,
code.projects-index-card__chip-value {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-primary);
    background: transparent;
    padding: 0;
}

.projects-index-card__team {
    display: grid;
    gap: 0.35rem;
    padding-top: 0.15rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.projects-index-card__team-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
}

.projects-index-card__footer {
    margin-top: auto;
    display: flex;
    justify-content: flex-end;
    padding-top: 0.15rem;
}

@media (max-width: 575.98px) {
    .projects-index-panel__view-btn span {
        display: none;
    }

    .projects-index-panel__view-btn {
        width: 2.1rem;
        justify-content: center;
        padding: 0;
    }

    .projects-index-card__schedule {
        grid-template-columns: 1fr;
        gap: 0.55rem;
    }

    .projects-index-card__schedule-arrow {
        display: none;
    }

    .projects-index-card__chips {
        grid-template-columns: 1fr;
    }
}

.data-table-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 0.85rem 1rem;
    background: #fff;
    border-bottom: 1px solid var(--border);
}

.data-table-toolbar-left,
.data-table-toolbar-right {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.data-table-perpage,
.data-table-search {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 0.8125rem;
    color: var(--brand-secondary);
    white-space: nowrap;
}

.data-table-perpage-select {
    width: auto;
    min-width: 4.25rem;
    border: 1px solid #cfd8e3;
    border-radius: 7px;
    padding: 0.3rem 1.75rem 0.3rem 0.55rem;
    color: var(--brand-primary);
    font-weight: 600;
    font-size: 0.8125rem;
    background-color: #fff;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.data-table-search-input {
    min-width: 11rem;
    border: 1px solid #cfd8e3;
    border-radius: 7px;
    padding: 0.35rem 0.65rem;
    font-size: 0.8125rem;
    color: var(--brand-primary);
    background: #fff;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.data-table-search-input:focus {
    border-color: var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.14);
    outline: none;
}

.data-table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    overscroll-behavior-x: contain;
}

table.data-table {
    width: 100%;
    margin-bottom: 0;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.875rem;
}

table.data-table thead th {
    background: #f8fafc;
    color: var(--brand-secondary);
    font-weight: 600;
    font-size: 0.8125rem;
    letter-spacing: 0.01em;
    padding: 0.45rem 0.85rem;
    border: none;
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}

table.data-table thead th:first-child {
    border-top-left-radius: 0;
}

table.data-table thead th:last-child {
    border-top-right-radius: 0;
}

table.data-table tbody td {
    padding: 0.4rem 0.85rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--border);
    color: #334155;
    line-height: 1.35;
    white-space: nowrap;
}

table.data-table tbody td.data-table-cell-wrap {
    white-space: normal;
}

table.data-table tbody td.data-table-cell-ellipsis {
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

table.data-table tbody td.data-table-cell-actions,
table.data-table thead th.data-table-cell-actions {
    width: 1%;
    min-width: 7.25rem;
    white-space: nowrap;
    vertical-align: middle;
}

table.data-table thead th.data-table-cell-actions {
    position: sticky;
    right: 0;
    z-index: 4;
    background-color: #f8fafc;
    background-clip: padding-box;
    border-left: 1px solid var(--border);
    box-shadow: -10px 0 14px rgba(30, 58, 95, 0.1);
}

table.data-table tbody td.data-table-cell-actions {
    position: sticky;
    right: 0;
    z-index: 2;
    background-color: #fff;
    background-clip: padding-box;
    border-left: 1px solid var(--border);
    box-shadow: -10px 0 14px rgba(30, 58, 95, 0.1);
}

table.data-table tbody tr:nth-child(even) td.data-table-cell-actions {
    background-color: #f8fafc;
}

table.data-table tbody tr:hover td.data-table-cell-actions {
    background-color: #fff6ef;
}

table.data-table tbody tr:nth-child(even):hover td.data-table-cell-actions {
    background-color: #fef0e6;
}

table.data-table tbody td:has(.app-table-check),
table.data-table tbody td:has(input[type="checkbox"]),
table.data-table tbody td:has(input[type="radio"]) {
    text-align: center;
}

table.data-table .form-control-sm,
table.data-table .app-table-input {
    min-height: 2rem;
}

table.data-table .btn-brand,
table.data-table .btn-outline-brand {
    padding: 0.38rem 0.75rem;
    font-size: 0.8125rem;
}

.data-table-actions {
    display: inline-flex;
    flex-wrap: nowrap;
    flex-shrink: 0;
    justify-content: flex-end;
    align-items: center;
    gap: 0.35rem;
    white-space: nowrap;
}

.data-table-actions-wrap {
    display: inline-flex;
    justify-content: flex-end;
    align-items: center;
}

.data-table-actions--dropdown {
    display: none;
}

.app-dropdown--table-actions .app-dropdown__toggle.data-table-actions__toggle {
    min-width: 2.25rem;
    min-height: 2.25rem;
    padding: 0.35rem 0.55rem;
    justify-content: center;
    gap: 0;
}

.app-dropdown--table-actions .app-dropdown__toggle.data-table-actions__toggle::after {
    display: none;
}

.app-dropdown--table-actions .app-dropdown__menu {
    --bs-dropdown-min-width: 12.5rem;
    min-width: 12.5rem;
}

.app-dropdown--table-actions button.app-dropdown__item {
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
    appearance: none;
}

.app-dropdown--table-actions .app-dropdown__item {
    justify-content: flex-start;
    min-height: 2.5rem;
    padding: 0.55rem 0.7rem;
    font-size: 0.8125rem;
}

.app-dropdown--table-actions .app-dropdown__item-label {
    font-weight: 600;
}

.app-dropdown--table-actions .app-dropdown__item--danger {
    color: #b02a37;
}

.app-dropdown--table-actions .app-dropdown__item--danger:hover,
.app-dropdown--table-actions .app-dropdown__item--danger:focus {
    background: rgba(220, 53, 69, 0.08);
    color: #b02a37;
}

@media (max-width: 991.98px) {
    .data-table-actions--inline {
        display: none;
    }

    .data-table-actions--dropdown {
        display: inline-block;
    }

    table.data-table thead th.data-table-cell-actions,
    table.data-table tbody td.data-table-cell-actions,
    table.table thead th.data-table-cell-actions,
    table.table tbody td.data-table-cell-actions {
        width: 3.5rem;
        min-width: 3.5rem;
        padding-left: 0.35rem;
        padding-right: 0.35rem;
    }
}

.btn-icon {
    width: 2rem;
    height: 2rem;
    min-height: 2rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.btn-icon i {
    font-size: 0.8rem;
}

table.data-table .btn-icon {
    padding: 0;
}

table.data-table tbody tr:nth-child(even) {
    background: rgba(30, 58, 95, 0.03);
}

table.data-table tbody tr:hover {
    background: rgba(230, 126, 34, 0.06);
}

table.data-table tbody tr:last-child td {
    border-bottom: none;
}

table.data-table tbody tr.data-table-empty td {
    text-align: center;
    color: #6c757d;
    padding: 2rem 1rem;
}

table.data-table a:not(.btn) {
    color: var(--brand-secondary);
    font-weight: 600;
    text-decoration: none;
}

table.data-table a:not(.btn):hover {
    color: var(--brand-accent);
}

.data-table-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--border);
    background: rgba(30, 58, 95, 0.02);
    font-size: 0.8125rem;
    color: var(--brand-secondary);
}

.data-table-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.data-table-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.55rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
    color: var(--brand-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.data-table-page-btn:hover:not(:disabled):not(.is-active) {
    border-color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.05);
}

.data-table-page-btn.is-active {
    background: var(--brand-accent);
    border-color: var(--brand-accent);
    color: #fff;
}

.data-table-page-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.data-table-panel .pagination {
    margin: 0;
    gap: 0.25rem;
}

.data-table-panel .page-link {
    color: var(--brand-primary);
    border-color: var(--border);
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.35rem 0.65rem;
    border-radius: 6px !important;
}

.data-table-panel .page-link:hover {
    background: rgba(30, 58, 95, 0.05);
    border-color: var(--brand-primary);
    color: var(--brand-primary);
}

.data-table-panel .page-item.active .page-link {
    background: var(--brand-accent);
    border-color: var(--brand-accent);
    color: #fff;
}

.data-table-panel .page-item.disabled .page-link {
    color: #94a3b8;
}

/* Tables desktop only helper */
@media (max-width: 767.98px) {
    .table-desktop-only {
        display: none;
    }
}

@media (min-width: 768px) {
    .cards-mobile-only {
        display: none;
    }
}

@media (max-width: 991.98px) {
    .table-lg-desktop-only {
        display: none;
    }
}

@media (min-width: 992px) {
    .cards-lg-mobile-only {
        display: none;
    }
}

.data-table-panel--wide table.data-table {
    min-width: 68rem;
}

.data-table-panel--wide .data-table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
}

@media (max-width: 1199.98px) {
    .data-table-panel--wide .data-table-toolbar,
    .data-table-panel--wide .data-table-footer {
        min-width: 0;
    }
}

.data-table-toolbar-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.data-table-panel--attendance {
    max-width: 100%;
}

.data-table-panel--attendance table.data-table {
    min-width: 44rem;
}

.data-table-panel--attendance .data-table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
    max-width: 100%;
}

.data-table-panel--attendance .data-table-responsive:has(.dropdown.show) {
    overflow: visible;
}

.data-table-footer--attendance {
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
}

.data-table-footer--attendance .data-table-footer__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    width: 100%;
}

.data-table-footer--attendance .data-table-footer__total {
    font-weight: 700;
    color: var(--brand-primary);
    white-space: nowrap;
}

.data-table-footer--attendance .data-table-pagination {
    width: 100%;
    justify-content: center;
}

.data-table-footer--attendance .data-table-pagination .pagination {
    flex-wrap: wrap;
    justify-content: center;
}

@media (min-width: 768px) {
    .data-table-footer--attendance {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .data-table-footer--attendance .data-table-footer__meta {
        flex: 1 1 auto;
        justify-content: flex-start;
    }

    .data-table-footer--attendance .data-table-pagination {
        width: auto;
        flex: 0 0 auto;
        justify-content: flex-end;
    }
}

@media (max-width: 767.98px) {
    .data-table-panel--attendance table.data-table {
        min-width: 38rem;
    }

    .data-table-footer--attendance .data-table-footer__meta {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* Landing */
.landing-hero {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
}

.landing-hero-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    padding: 0.35rem 0.9rem;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin-bottom: 1rem;
}

.landing-hero .btn-outline-light {
    border-color: rgba(255, 255, 255, 0.5);
    color: #fff;
    min-height: 48px;
}

.landing-hero .btn-outline-light:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: #fff;
    color: #fff;
}

.landing-hero-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
}

.landing-hero-actions__primary {
    width: 100%;
}

.landing-hero-actions__secondary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 0.5rem;
    width: 100%;
}

.landing-hero-actions__secondary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 0.5rem 0.55rem;
    font-size: 0.78rem;
    line-height: 1.25;
    text-align: center;
    white-space: normal;
    min-height: 2.65rem;
}

.landing-hero-actions__primary {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
    font-size: 0.95rem;
}

@media (min-width: 992px) {
    .landing-hero-actions {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.5rem;
        width: auto;
    }

    .landing-hero-actions__primary {
        width: auto;
        padding: 0.5rem 1.5rem;
        font-size: 1.25rem;
    }

    .landing-hero-actions__secondary {
        display: flex;
        flex-wrap: wrap;
        width: auto;
        gap: 0.5rem;
    }

    .landing-hero-actions__secondary-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        height: auto;
        padding: 0.5rem 1.5rem;
        font-size: 1.25rem;
        white-space: nowrap;
        min-height: auto;
    }
}

.landing-hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.landing-hero-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 700;
    backdrop-filter: blur(6px);
}

.landing-hero-pill i {
    color: var(--brand-accent);
    font-size: 0.78rem;
}

.landing-hero-ai {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    max-width: 34rem;
    margin-left: 0;
    margin-right: 0;
    padding: 0.9rem 1rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(6px);
    text-align: left;
}

.landing-hero-ai__icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}

.landing-hero-ai__copy {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.92rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, 0.92);
}

.landing-hero-ai__copy strong {
    color: #fff;
    font-size: 0.98rem;
}

.landing-hero-visual {
    position: relative;
    display: flex;
    justify-content: center;
    padding: 1rem 0 2rem;
}

.landing-phone-mock {
    width: min(100%, 280px);
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.25);
    padding: 1rem;
    color: var(--brand-primary);
}

.landing-phone-mock--chat {
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    width: min(100%, 300px);
}

.landing-phone-chat-ui {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1;
    background: #fff;
}

.landing-phone-mock--chat .floating-knowledge-chat__header {
    padding: 0.65rem 0.75rem;
}

.landing-phone-mock--chat .floating-knowledge-chat__header-icon {
    width: 1.75rem;
    height: 1.75rem;
    font-size: 0.85rem;
}

.landing-phone-mock--chat .floating-knowledge-chat__title {
    font-size: 0.82rem;
}

.landing-phone-mock--chat .floating-knowledge-chat__subtitle {
    font-size: 0.66rem;
}

.landing-phone-mock--chat .floating-knowledge-chat__icon-btn {
    padding: 0.3rem 0.4rem;
    font-size: 0.72rem;
}

.landing-phone-mock--chat .floating-knowledge-chat__main {
    min-height: 0;
    background: var(--surface);
}

.landing-phone-chat-ui__messages {
    padding: 0.75rem 0.65rem;
    overflow: hidden;
    min-height: 0;
}

.landing-phone-mock--chat .floating-knowledge-chat__avatar {
    width: 1.55rem;
    height: 1.55rem;
    font-size: 0.58rem;
}

.landing-phone-mock--chat .floating-knowledge-chat__bubble {
    max-width: 88%;
    padding: 0.55rem 0.65rem;
    font-size: 0.68rem;
    line-height: 1.4;
}

.landing-phone-mock--chat .floating-knowledge-chat__bubble p {
    font-size: inherit;
}

.landing-phone-mock--chat .floating-knowledge-chat__sources {
    font-size: 0.62rem;
    margin-top: 0.4rem;
}

.landing-phone-chat-ui__source-note {
    display: block;
    margin-top: 0.15rem;
    color: #64748b;
    font-style: italic;
}

.landing-phone-chat-ui__avatar {
    font-weight: 800;
    letter-spacing: 0.02em;
}

.landing-phone-mock--chat .floating-knowledge-chat__composer {
    padding: 0.55rem 0.65rem 0.65rem;
    background: #fff;
}

.landing-phone-mock--chat .floating-knowledge-chat__composer-box textarea {
    min-height: 2.2rem;
    font-size: 0.72rem;
    padding: 0.5rem 0.6rem;
    pointer-events: none;
    background: #fff;
}

.landing-phone-mock--chat .floating-knowledge-chat__composer-tool-btn {
    width: 1.65rem;
    height: 1.65rem;
    font-size: 0.68rem;
}

.landing-phone-mock--chat .floating-knowledge-chat__send-btn {
    font-size: 0.72rem;
    padding: 0.3rem 0.55rem;
    pointer-events: none;
}

.landing-phone-mock--chat .floating-knowledge-chat__disclaimer {
    font-size: 0.6rem;
    line-height: 1.35;
}

.landing-phone-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    font-weight: 700;
}

.landing-phone-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--border);
}

.landing-phone-title {
    font-size: 1.1rem;
}

.landing-phone-qr {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 120px;
    background: var(--surface);
    border-radius: 12px;
    font-size: 3.5rem;
    color: var(--brand-secondary);
    margin-bottom: 1rem;
}

.landing-phone-task {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: var(--surface);
    margin-bottom: 0.5rem;
    font-size: 0.85rem;
}

.landing-phone-task:last-child {
    margin-bottom: 0;
}

.landing-phone-task i:first-child {
    width: 1.25rem;
    color: var(--brand-secondary);
}

.landing-phone-task span {
    flex: 1;
}

.landing-phone-task.active {
    background: rgba(230, 126, 34, 0.12);
    border: 1px solid rgba(230, 126, 34, 0.35);
}

.landing-phone-task.done {
    opacity: 0.75;
}

.landing-hero-float {
    position: absolute;
    background: #fff;
    color: var(--brand-primary);
    border-radius: 10px;
    padding: 0.5rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 600;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    white-space: nowrap;
}

.landing-hero-float--xp {
    top: 8%;
    right: 5%;
    color: var(--brand-accent);
}

.landing-hero-float--photo {
    bottom: 12%;
    left: 0;
}

.landing-hero-float--ai {
    top: 42%;
    right: 0;
    color: var(--brand-secondary);
    white-space: normal;
    max-width: 11.5rem;
    line-height: 1.25;
}

.landing-hero-float__title {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.35rem;
}

.landing-hero-float__languages {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(30, 58, 95, 0.1);
}

.landing-hero-float__languages-label {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.landing-hero-float__lang-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.landing-hero-float__lang-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.65rem;
    padding: 0.12rem 0.35rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-primary);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    line-height: 1.2;
}

.landing-hero-float--ai i {
    color: var(--brand-accent);
}

.landing-hero-float__languages-label i {
    color: var(--brand-secondary);
    font-size: 0.72rem;
}

.landing-hero-float--first-ai {
    bottom: 8%;
    left: 0;
    color: var(--brand-accent);
    white-space: normal;
    max-width: 10rem;
    line-height: 1.25;
    text-align: center;
}

.landing-hero-float--source {
    top: 10%;
    left: 0;
    color: var(--brand-primary);
}

.landing-hero-float--first-ai i {
    color: var(--brand-secondary);
}

.landing-chat-engineer-section {
    background: #fff;
    position: relative;
}

.landing-chat-engineer-section::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(90%, 720px);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--border), transparent);
}

.landing-chat-engineer-section__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.landing-chat-engineer-section__title {
    color: var(--brand-primary);
    line-height: 1.2;
}

.landing-chat-engineer-section__title-accent {
    color: var(--brand-secondary);
}

.landing-chat-engineer-section__subtitle {
    color: #64748b;
    font-size: 0.98rem;
    line-height: 1.6;
}

.landing-chat-engineer-agent-stack {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.landing-chat-engineer-agent {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1rem 1.1rem;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.05);
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

a.landing-chat-engineer-agent:hover,
.landing-chat-engineer-agent:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(30, 58, 95, 0.09);
    border-color: rgba(45, 90, 135, 0.22);
    color: inherit;
}

.landing-chat-engineer-agent__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 12px;
    background: var(--brand-primary);
    color: #fff;
    flex-shrink: 0;
    font-size: 1.05rem;
}

.landing-chat-engineer-agent--data .landing-chat-engineer-agent__icon {
    background: var(--brand-secondary);
}

.landing-chat-engineer-agent--datacenter .landing-chat-engineer-agent__icon {
    background: var(--brand-primary);
}

.landing-chat-engineer-agent__body {
    flex: 1;
    min-width: 0;
}

.landing-chat-engineer-agent__name-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.2rem;
}

.landing-chat-engineer-agent__name {
    display: block;
    color: var(--brand-primary);
    font-size: 1.02rem;
    font-weight: 700;
    margin-bottom: 0.15rem;
}

.landing-chat-engineer-agent__name-row .landing-chat-engineer-agent__name {
    margin-bottom: 0;
}

.landing-chat-engineer-agent__pill {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.landing-chat-engineer-agent__desc {
    color: #64748b;
    font-size: 0.88rem;
    line-height: 1.45;
}

.landing-chat-engineer-agent__chevron {
    color: #94a3b8;
    font-size: 0.8rem;
    flex-shrink: 0;
}

.landing-chat-engineer-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1.15rem;
}

.landing-chat-engineer-actions__primary {
    padding-inline: 1.25rem;
}

.landing-chat-engineer-actions__secondary {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--brand-primary);
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
}

.landing-chat-engineer-actions__secondary:hover {
    color: var(--brand-secondary);
}

.landing-chat-engineer-actions__play {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
    font-size: 0.7rem;
}

.landing-chat-engineer-secure {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    color: #94a3b8;
    font-size: 0.82rem;
}

.landing-chat-engineer-secure i {
    color: #64748b;
    font-size: 0.78rem;
}

.landing-chat-engineer-panel {
    position: relative;
    padding: 1.15rem 1.15rem 1.25rem;
    border-radius: 24px;
    background:
        linear-gradient(160deg, rgba(45, 90, 135, 0.06) 0%, rgba(255, 255, 255, 0) 42%),
        linear-gradient(180deg, #f4f8fc 0%, #fff 100%);
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.landing-chat-engineer-hero-art {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    align-items: end;
    margin-bottom: 1rem;
    padding: 0.35rem 0.25rem 0.15rem;
    min-height: 7.5rem;
}

.landing-chat-engineer-hero-art__chat,
.landing-chat-engineer-hero-art__site {
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.landing-chat-engineer-hero-art svg {
    width: 100%;
    max-width: 210px;
    height: auto;
    opacity: 0.85;
}

.landing-chat-engineer-hero-art__site {
    justify-content: flex-end;
}

.landing-chat-engineer-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-bottom: 0;
}

.landing-chat-engineer-card {
    position: relative;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    padding: 1.15rem 1.2rem 1.35rem;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    overflow: hidden;
}

.landing-chat-engineer-card--wide {
    grid-column: 1 / -1;
}

.landing-chat-engineer-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(30, 58, 95, 0.1);
}

.landing-chat-engineer-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    margin-bottom: 0.85rem;
    font-size: 1rem;
}

.landing-chat-engineer-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.4rem;
}

.landing-chat-engineer-card__desc {
    color: #64748b;
    font-size: 0.88rem;
    line-height: 1.5;
}

.landing-chat-engineer-card__bar {
    position: absolute;
    left: 1.2rem;
    bottom: 0;
    width: 2.5rem;
    height: 3px;
    border-radius: 999px 999px 0 0;
}

.landing-chat-engineer-card--chat .landing-chat-engineer-card__icon {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.landing-chat-engineer-card--chat .landing-chat-engineer-card__bar {
    background: var(--brand-secondary);
}

.landing-chat-engineer-card--learn .landing-chat-engineer-card__icon {
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
}

.landing-chat-engineer-card--learn .landing-chat-engineer-card__bar {
    background: var(--brand-accent);
}

.landing-chat-engineer-card--accurate .landing-chat-engineer-card__icon {
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
}

.landing-chat-engineer-card--accurate .landing-chat-engineer-card__bar {
    background: var(--brand-success);
}

.landing-chat-engineer-card--sources .landing-chat-engineer-card__icon {
    background: rgba(30, 58, 95, 0.12);
    color: var(--brand-primary);
}

.landing-chat-engineer-card--sources .landing-chat-engineer-card__bar {
    background: var(--brand-primary);
}

.landing-chat-engineer-card--language .landing-chat-engineer-card__icon {
    background: rgba(243, 156, 18, 0.16);
    color: #d68910;
}

.landing-chat-engineer-card--language .landing-chat-engineer-card__bar {
    background: #f1c40f;
}

.landing-chat-engineer-values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem 1.5rem;
    margin-top: 1.75rem;
    padding: 1.15rem 1.25rem;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.landing-chat-engineer-value {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.25rem 0;
}

.landing-chat-engineer-value__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    flex-shrink: 0;
    font-size: 0.9rem;
}

.landing-chat-engineer-value--reliable .landing-chat-engineer-value__icon {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.landing-chat-engineer-value--time .landing-chat-engineer-value__icon {
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
}

.landing-chat-engineer-value--team .landing-chat-engineer-value__icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-chat-engineer-value__title {
    display: block;
    color: var(--brand-primary);
    font-size: 0.95rem;
    margin-bottom: 0.2rem;
}

.landing-chat-engineer-value__desc {
    color: #64748b;
    font-size: 0.84rem;
    line-height: 1.4;
}

@media (max-width: 991.98px) {
    .landing-chat-engineer-hero-art {
        min-height: 5.5rem;
    }

    .landing-chat-engineer-values {
        grid-template-columns: 1fr;
        margin-top: 1.25rem;
    }
}

@media (max-width: 575.98px) {
    .landing-chat-engineer-grid {
        grid-template-columns: 1fr;
    }

    .landing-chat-engineer-card--wide {
        grid-column: auto;
    }

    .landing-chat-engineer-hero-art {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .landing-chat-engineer-hero-art__site {
        justify-content: center;
    }
}

.landing-backlog-section {
    background:
        linear-gradient(180deg, #f7f9fc 0%, #fff 38%, #f7f9fc 100%);
    position: relative;
    border-top: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-backlog-section__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.landing-backlog-section__title {
    color: var(--brand-primary);
    line-height: 1.2;
}

.landing-backlog-section__title-accent {
    color: var(--brand-secondary);
}

.landing-backlog-section__subtitle {
    color: #64748b;
    font-size: 0.98rem;
    line-height: 1.65;
}

.landing-backlog-points {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.landing-backlog-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.92rem;
    font-weight: 600;
    color: #334155;
    line-height: 1.45;
}

.landing-backlog-points__icon {
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.82rem;
}

.landing-backlog-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1.1rem;
}

.landing-backlog-actions__secondary {
    color: var(--brand-primary);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
}

.landing-backlog-actions__secondary:hover {
    color: var(--brand-accent);
}

.landing-backlog-panel {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 1.15rem 1.2rem 1.25rem;
    box-shadow: 0 18px 40px rgba(30, 58, 95, 0.08);
}

.landing-backlog-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.landing-backlog-panel__eyebrow {
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.2rem;
}

.landing-backlog-panel__project {
    display: block;
    font-size: 1.05rem;
    color: var(--brand-primary);
}

.landing-backlog-panel__status {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.12);
    color: #c2410c;
    font-size: 0.74rem;
    font-weight: 800;
    white-space: nowrap;
}

.landing-backlog-impact {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1.1rem;
}

.landing-backlog-impact__item {
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 14px;
    padding: 0.8rem 0.85rem;
}

.landing-backlog-impact__value {
    display: block;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--brand-primary);
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.landing-backlog-impact__value.is-warn { color: #c2410c; }
.landing-backlog-impact__value.is-ok { color: #15803d; }

.landing-backlog-impact__label {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #64748b;
}

.landing-backlog-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding-left: 0.35rem;
    margin-bottom: 1rem;
}

.landing-backlog-timeline__rail {
    position: absolute;
    left: 0.72rem;
    top: 0.55rem;
    bottom: 0.55rem;
    width: 2px;
    background: rgba(30, 58, 95, 0.12);
}

.landing-backlog-timeline__item {
    position: relative;
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
}

.landing-backlog-timeline__dot {
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 999px;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px rgba(30, 58, 95, 0.15);
    background: #94a3b8;
    margin-top: 0.3rem;
    flex-shrink: 0;
    z-index: 1;
}

.landing-backlog-timeline__item--critical .landing-backlog-timeline__dot {
    background: #c0392b;
    box-shadow: 0 0 0 2px rgba(192, 57, 43, 0.2);
}

.landing-backlog-timeline__item--high .landing-backlog-timeline__dot {
    background: #e67e22;
    box-shadow: 0 0 0 2px rgba(230, 126, 34, 0.22);
}

.landing-backlog-timeline__item--planned .landing-backlog-timeline__dot {
    background: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.landing-backlog-timeline__body {
    flex: 1;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 12px;
    padding: 0.7rem 0.85rem;
}

.landing-backlog-timeline__body strong {
    display: block;
    font-size: 0.88rem;
    color: var(--brand-primary);
    margin-bottom: 0.15rem;
}

.landing-backlog-timeline__body span {
    display: block;
    font-size: 0.76rem;
    font-weight: 600;
    color: #64748b;
    line-height: 1.4;
}

.landing-backlog-ai-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.landing-backlog-ai-strip__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-secondary);
    font-size: 0.74rem;
    font-weight: 800;
}

.landing-backlog-ai-strip__chip.is-hazard {
    background: rgba(192, 57, 43, 0.1);
    color: #b91c1c;
}

.landing-backlog-ai-strip__chip.is-plan {
    background: rgba(22, 163, 74, 0.1);
    color: #15803d;
}

.landing-backlog-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
    margin-top: 2rem;
}

.landing-backlog-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    padding: 1.1rem 1.05rem;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.04);
    min-height: 100%;
}

.landing-backlog-card__icon {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.landing-backlog-card--reschedule .landing-backlog-card__icon {
    background: rgba(230, 126, 34, 0.12);
    color: #c2410c;
}

.landing-backlog-card--plan .landing-backlog-card__icon {
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
}

.landing-backlog-card--impact .landing-backlog-card__icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-backlog-card--ai .landing-backlog-card__icon {
    background: rgba(22, 163, 74, 0.1);
    color: #15803d;
}

.landing-backlog-card__title {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.4rem;
}

.landing-backlog-card__desc {
    font-size: 0.82rem;
    font-weight: 500;
    color: #64748b;
    line-height: 1.5;
}

@media (max-width: 1199.98px) {
    .landing-backlog-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .landing-backlog-impact {
        grid-template-columns: 1fr;
    }

    .landing-backlog-cards {
        grid-template-columns: 1fr;
    }
}

.landing-permitting-section {
    background:
        linear-gradient(180deg, #fff 0%, #f4f8fc 40%, #fff 100%);
    position: relative;
    border-top: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-permitting-section__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.landing-permitting-section__title {
    color: var(--brand-primary);
    line-height: 1.2;
}

.landing-permitting-section__title-accent {
    color: var(--brand-secondary);
}

.landing-permitting-section__subtitle {
    color: #64748b;
    font-size: 0.98rem;
    line-height: 1.65;
}

.landing-permitting-points {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.landing-permitting-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.92rem;
    font-weight: 600;
    color: #334155;
    line-height: 1.45;
}

.landing-permitting-points__icon {
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
    font-size: 0.82rem;
}

.landing-permitting-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1.1rem;
}

.landing-permitting-panel {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 1.15rem 1.2rem 1.25rem;
    box-shadow: 0 18px 40px rgba(30, 58, 95, 0.08);
}

.landing-permitting-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.landing-permitting-panel__eyebrow {
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.2rem;
}

.landing-permitting-panel__project {
    display: block;
    font-size: 1.05rem;
    color: var(--brand-primary);
}

.landing-permitting-panel__status {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
    font-size: 0.74rem;
    font-weight: 800;
    white-space: nowrap;
}

.landing-permitting-impact {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1.1rem;
}

.landing-permitting-impact__item {
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 14px;
    padding: 0.8rem 0.85rem;
}

.landing-permitting-impact__value {
    display: block;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--brand-primary);
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.landing-permitting-impact__value.is-live {
    color: #2563eb;
    font-size: 1.15rem;
}

.landing-permitting-impact__value.is-ok { color: #15803d; }

.landing-permitting-impact__label {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #64748b;
}

.landing-permitting-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding-left: 0.35rem;
    margin-bottom: 1rem;
}

.landing-permitting-timeline__rail {
    position: absolute;
    left: 0.72rem;
    top: 0.55rem;
    bottom: 0.55rem;
    width: 2px;
    background: rgba(30, 58, 95, 0.12);
}

.landing-permitting-timeline__item {
    position: relative;
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
}

.landing-permitting-timeline__dot {
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 999px;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px rgba(30, 58, 95, 0.15);
    background: #94a3b8;
    margin-top: 0.3rem;
    flex-shrink: 0;
    z-index: 1;
}

.landing-permitting-timeline__item--done .landing-permitting-timeline__dot {
    background: #16a34a;
    box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.2);
}

.landing-permitting-timeline__item--current .landing-permitting-timeline__dot {
    background: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.22);
}

.landing-permitting-timeline__item--upcoming .landing-permitting-timeline__dot {
    background: #fff;
    border: 2px solid #94a3b8;
    box-shadow: none;
}

.landing-permitting-timeline__body {
    flex: 1;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 12px;
    padding: 0.7rem 0.85rem;
}

.landing-permitting-timeline__body strong {
    display: block;
    font-size: 0.88rem;
    color: var(--brand-primary);
    margin-bottom: 0.15rem;
}

.landing-permitting-timeline__body span {
    display: block;
    font-size: 0.76rem;
    font-weight: 600;
    color: #64748b;
    line-height: 1.4;
}

.landing-permitting-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.landing-permitting-strip__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
    font-size: 0.74rem;
    font-weight: 800;
}

.landing-permitting-strip__chip.is-docs {
    background: rgba(14, 116, 144, 0.1);
    color: #0e7490;
}

.landing-permitting-strip__chip.is-track {
    background: rgba(22, 163, 74, 0.1);
    color: #15803d;
}

.landing-permitting-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
    margin-top: 2rem;
}

.landing-permitting-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    padding: 1.1rem 1.05rem;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.04);
    min-height: 100%;
}

.landing-permitting-card__icon {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.landing-permitting-card--control .landing-permitting-card__icon {
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
}

.landing-permitting-card--live .landing-permitting-card__icon {
    background: rgba(14, 116, 144, 0.1);
    color: #0e7490;
}

.landing-permitting-card--parties .landing-permitting-card__icon {
    background: rgba(230, 126, 34, 0.12);
    color: #c2410c;
}

.landing-permitting-card--risk .landing-permitting-card__icon {
    background: rgba(22, 163, 74, 0.1);
    color: #15803d;
}

.landing-permitting-card__title {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.4rem;
}

.landing-permitting-card__desc {
    font-size: 0.82rem;
    font-weight: 500;
    color: #64748b;
    line-height: 1.5;
}

.landing-permitting-page-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.landing-permitting-page-hero__subtitle {
    max-width: 36rem;
}

.landing-permitting-page-hero__panel {
    display: grid;
    gap: 0.75rem;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 18px;
    padding: 1rem;
}

.landing-permitting-page-hero__stat {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 0.8rem 0.9rem;
}

.landing-permitting-page-hero__stat strong {
    display: block;
    font-size: 1.05rem;
    margin-bottom: 0.15rem;
}

.landing-permitting-page-hero__stat span {
    display: block;
    font-size: 0.8rem;
    opacity: 0.85;
}

.landing-permitting-process {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.landing-permitting-process__item {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    padding: 1.1rem 1.15rem;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.04);
}

.landing-permitting-process__num {
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
    font-size: 0.82rem;
    font-weight: 800;
}

.landing-permitting-process__title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.35rem;
}

.landing-permitting-process__desc {
    font-size: 0.88rem;
    color: #64748b;
    line-height: 1.55;
}

.landing-permitting-flow-section {
    background:
        linear-gradient(180deg, #f7f9fc 0%, #fff 55%, #f7f9fc 100%);
}

.landing-permitting-flow {
    position: relative;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 0.35rem;
    padding: 1.25rem 1rem 1.1rem;
    border-radius: 1.25rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background:
        linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 16px 36px rgba(30, 58, 95, 0.06);
    overflow-x: auto;
}

.landing-permitting-flow__track {
    position: absolute;
    left: 3.5rem;
    right: 3.5rem;
    top: 3.35rem;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, #93c5fd 0%, #2563eb 45%, #16a34a 100%);
    opacity: 0.55;
    pointer-events: none;
}

.landing-permitting-flow__node {
    position: relative;
    z-index: 1;
    flex: 1 1 0;
    min-width: 7.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.55rem;
    padding: 0.35rem 0.25rem;
}

.landing-permitting-flow__index {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #94a3b8;
}

.landing-permitting-flow__icon {
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #fff;
    border: 2px solid #bfdbfe;
    color: #1d4ed8;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.12);
    font-size: 1rem;
}

.landing-permitting-flow__node--start .landing-permitting-flow__icon {
    border-color: #93c5fd;
    color: #1d4ed8;
}

.landing-permitting-flow__node--party .landing-permitting-flow__icon {
    border-color: #fdba74;
    color: #c2410c;
    box-shadow: 0 8px 18px rgba(194, 65, 12, 0.12);
}

.landing-permitting-flow__node--docs .landing-permitting-flow__icon {
    border-color: #67e8f9;
    color: #0e7490;
    box-shadow: 0 8px 18px rgba(14, 116, 144, 0.12);
}

.landing-permitting-flow__node--stage .landing-permitting-flow__icon {
    border-color: #93c5fd;
    color: #2563eb;
}

.landing-permitting-flow__node--live .landing-permitting-flow__icon {
    border-color: #86efac;
    color: #15803d;
    box-shadow: 0 8px 18px rgba(22, 163, 74, 0.14);
}

.landing-permitting-flow__node--done .landing-permitting-flow__icon {
    border-color: #86efac;
    background: #f0fdf4;
    color: #15803d;
}

.landing-permitting-flow__label {
    font-size: 0.82rem;
    font-weight: 750;
    color: var(--brand-primary);
    line-height: 1.3;
    max-width: 8.5rem;
}

.landing-permitting-flow__arrow {
    flex: 0 0 auto;
    align-self: center;
    margin-top: 1.1rem;
    color: #94a3b8;
    font-size: 0.75rem;
    z-index: 1;
}

.landing-permitting-flow-legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem 1.25rem;
    margin-top: 1.25rem;
}

.landing-permitting-flow-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.84rem;
    font-weight: 650;
    color: #475569;
}

.landing-permitting-flow-legend__dot {
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 999px;
    background: #94a3b8;
}

.landing-permitting-flow-legend__item--start .landing-permitting-flow-legend__dot {
    background: #2563eb;
}

.landing-permitting-flow-legend__item--live .landing-permitting-flow-legend__dot {
    background: #0e7490;
}

.landing-permitting-flow-legend__item--done .landing-permitting-flow-legend__dot {
    background: #16a34a;
}

@media (max-width: 991.98px) {
    .landing-permitting-flow {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 1rem;
    }

    .landing-permitting-flow__track {
        left: 2.05rem;
        right: auto;
        top: 1.5rem;
        bottom: 1.5rem;
        width: 3px;
        height: auto;
        background: linear-gradient(180deg, #93c5fd 0%, #2563eb 45%, #16a34a 100%);
    }

    .landing-permitting-flow__node {
        flex-direction: row;
        justify-content: flex-start;
        text-align: left;
        min-width: 0;
        gap: 0.85rem;
        padding: 0.7rem 0.25rem;
    }

    .landing-permitting-flow__label {
        max-width: none;
    }

    .landing-permitting-flow__arrow {
        display: none;
    }
}

.landing-permitting-handle-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    padding: 1.25rem 1.2rem;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.04);
}

.landing-permitting-handle-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.85rem;
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
}

.landing-permitting-handle-card__title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.4rem;
}

.landing-permitting-handle-card__desc {
    font-size: 0.9rem;
    color: #64748b;
    line-height: 1.55;
}

@media (max-width: 1199.98px) {
    .landing-permitting-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .landing-permitting-process {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .landing-permitting-impact {
        grid-template-columns: 1fr;
    }

    .landing-permitting-cards {
        grid-template-columns: 1fr;
    }
}

.landing-cases-section {
    background:
        linear-gradient(180deg, #fff 0%, #f8fafc 42%, #fff 100%);
    position: relative;
    border-top: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-cases-section__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.landing-cases-section__title {
    color: var(--brand-primary);
    line-height: 1.2;
}

.landing-cases-section__title-accent {
    color: var(--brand-secondary);
}

.landing-cases-section__subtitle {
    color: #64748b;
    font-size: 0.98rem;
    line-height: 1.65;
}

.landing-cases-points {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.landing-cases-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.92rem;
    font-weight: 600;
    color: #334155;
    line-height: 1.45;
}

.landing-cases-points__icon {
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 0.82rem;
}

.landing-cases-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1.1rem;
}

.landing-cases-actions__secondary {
    color: var(--brand-primary);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
}

.landing-cases-actions__secondary:hover {
    color: var(--brand-accent);
}

.landing-cases-panel {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 1.15rem 1.2rem 1.25rem;
    box-shadow: 0 18px 40px rgba(30, 58, 95, 0.08);
}

.landing-cases-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.landing-cases-panel__eyebrow {
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.2rem;
}

.landing-cases-panel__project {
    display: block;
    color: var(--brand-primary);
    font-size: 1.05rem;
    font-weight: 800;
}

.landing-cases-panel__status {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.12);
    color: #c06512;
    font-size: 0.75rem;
    font-weight: 800;
    white-space: nowrap;
}

.landing-cases-demo-card {
    border: 1px solid #e8eef5;
    border-radius: 16px;
    padding: 0.95rem 1rem;
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(230, 126, 34, 0.08), transparent 55%),
        linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    margin-bottom: 0.95rem;
}

.landing-cases-demo-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.landing-cases-demo-card__id {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: var(--brand-primary);
}

.landing-cases-demo-card__priority {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: #ffedd5;
    color: #c2410c;
    font-size: 0.7rem;
    font-weight: 800;
}

.landing-cases-demo-card__title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.35;
}

.landing-cases-demo-card__meta {
    margin: 0 0 0.85rem;
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 600;
}

.landing-cases-demo-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
}

.landing-cases-demo-stats__item {
    min-width: 0;
    padding: 0.55rem 0.5rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #eef2f7;
}

.landing-cases-demo-stats__label {
    display: block;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #94a3b8;
    margin-bottom: 0.2rem;
}

.landing-cases-demo-stats__value {
    display: block;
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.landing-cases-demo-stats__value.is-warn {
    color: #c2410c;
}

.landing-cases-flow {
    display: grid;
    gap: 0.55rem;
    margin-bottom: 0.95rem;
}

.landing-cases-flow__item {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.7rem 0.75rem;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}

.landing-cases-flow__icon {
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.8rem;
}

.landing-cases-flow__item--solve .landing-cases-flow__icon {
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
}

.landing-cases-flow__item--learn .landing-cases-flow__icon {
    background: rgba(22, 163, 74, 0.12);
    color: #15803d;
}

.landing-cases-flow__body {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.landing-cases-flow__body strong {
    font-size: 0.86rem;
    font-weight: 800;
    color: #0f172a;
}

.landing-cases-flow__body span {
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 500;
    line-height: 1.4;
}

.landing-cases-ai-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.landing-cases-ai-strip__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.7rem;
    border-radius: 999px;
    background: #e8eef5;
    color: var(--brand-primary);
    font-size: 0.74rem;
    font-weight: 700;
}

.landing-cases-ai-strip__chip.is-solution {
    background: #fff4e8;
    color: #c06512;
}

.landing-cases-ai-strip__chip.is-kb {
    background: #e8f8ef;
    color: #15803d;
}

.landing-cases-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
    margin-top: 1.75rem;
}

.landing-cases-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    padding: 1rem 1.05rem;
    box-shadow: 0 10px 24px rgba(30, 58, 95, 0.05);
}

.landing-cases-card__icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.95rem;
}

.landing-cases-card--capture .landing-cases-card__icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-cases-card--impact .landing-cases-card__icon {
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
}

.landing-cases-card--solve .landing-cases-card__icon {
    background: rgba(52, 152, 219, 0.14);
    color: #1d6fa5;
}

.landing-cases-card--learn .landing-cases-card__icon {
    background: rgba(22, 163, 74, 0.12);
    color: #15803d;
}

.landing-cases-card__title {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.4rem;
}

.landing-cases-card__desc {
    font-size: 0.82rem;
    font-weight: 500;
    color: #64748b;
    line-height: 1.5;
}

@media (max-width: 1199.98px) {
    .landing-cases-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .landing-cases-demo-stats {
        grid-template-columns: 1fr;
    }

    .landing-cases-cards {
        grid-template-columns: 1fr;
    }
}

.landing-data-center-section {
    background:
        linear-gradient(160deg, rgba(30, 58, 95, 0.05) 0%, rgba(255, 255, 255, 0) 45%),
        linear-gradient(180deg, #f5f8fb 0%, #fff 42%, #f3f6fa 100%);
    position: relative;
    overflow: hidden;
    border-top: 1px solid rgba(30, 58, 95, 0.06);
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-data-center-section__glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(2px);
}

.landing-data-center-section__glow--left {
    top: -40px;
    left: -100px;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(30, 58, 95, 0.12) 0%, transparent 70%);
}

.landing-data-center-section__glow--right {
    bottom: -70px;
    right: -90px;
    width: 340px;
    height: 340px;
    background: radial-gradient(circle, rgba(230, 126, 34, 0.14) 0%, transparent 68%);
}

.landing-data-center-section__badge {
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.12) 0%, rgba(230, 126, 34, 0.1) 100%);
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.landing-data-center-section__intro {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 1.75rem 1.6rem;
    box-shadow: 0 18px 45px rgba(30, 58, 95, 0.08);
}

.landing-data-center-section__title {
    font-size: clamp(1.55rem, 2.4vw, 2rem);
    color: var(--brand-primary);
    line-height: 1.2;
}

.landing-data-center-section__subtitle {
    color: #5c6b7a;
    font-size: 1.02rem;
    line-height: 1.6;
}

.landing-data-center-note {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.05rem;
    border-radius: 14px;
    border: 1px solid rgba(230, 126, 34, 0.22);
    background: linear-gradient(135deg, rgba(230, 126, 34, 0.08) 0%, rgba(30, 58, 95, 0.04) 100%);
}

.landing-data-center-note__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(230, 126, 34, 0.16);
    color: var(--brand-accent);
}

.landing-data-center-note__label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--brand-primary);
    margin-bottom: 0.2rem;
}

.landing-data-center-note__text {
    color: #4a5b6c;
    font-size: 0.9rem;
    line-height: 1.45;
}

.landing-data-center-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    color: #3f4f61;
    line-height: 1.5;
    font-size: 0.95rem;
}

.landing-data-center-points li:last-child {
    margin-bottom: 0;
}

.landing-data-center-points__icon {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.72rem;
    margin-top: 0.1rem;
}

.landing-data-center-section__flow-panel {
    background: linear-gradient(165deg, #1e3a5f 0%, #25476f 52%, #2f5f8f 100%);
    border-radius: 22px;
    padding: 1.35rem 1.25rem 1.5rem;
    box-shadow: 0 22px 50px rgba(30, 58, 95, 0.22);
    position: relative;
    overflow: hidden;
}

.landing-data-center-section__flow-panel::before {
    content: "";
    position: absolute;
    top: -30%;
    right: -18%;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, transparent 70%);
    pointer-events: none;
}

.landing-data-center-section__flow-head {
    margin-bottom: 1rem;
}

.landing-data-center-section__flow-label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.82);
}

.landing-data-center-section__flow-label::before {
    content: "";
    width: 1.35rem;
    height: 2px;
    border-radius: 999px;
    background: var(--brand-accent);
}

.landing-data-center-section__visual {
    position: relative;
    z-index: 1;
    margin-top: 1.15rem;
    display: flex;
    justify-content: center;
}

.landing-data-center-section__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.landing-data-center-flow {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    position: relative;
    z-index: 1;
}

.landing-data-center-flow__connector {
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.55);
}

.landing-data-center-flow__connector-line {
    display: none;
}

.landing-data-center-flow__connector i {
    font-size: 0.8rem;
}

.landing-data-center-flow__node {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.95rem 1rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 28px rgba(15, 35, 60, 0.18);
    position: relative;
}

.landing-data-center-flow__node-step {
    position: absolute;
    top: 0.6rem;
    right: 0.7rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: rgba(30, 58, 95, 0.28);
}

.landing-data-center-flow__node-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1rem;
}

.landing-data-center-flow__node--upload .landing-data-center-flow__node-icon {
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
}

.landing-data-center-flow__node--index .landing-data-center-flow__node-icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-data-center-flow__node--link .landing-data-center-flow__node-icon {
    background: rgba(47, 111, 173, 0.14);
    color: #2f6fad;
}

.landing-data-center-flow__node--use .landing-data-center-flow__node-icon {
    background: rgba(40, 167, 69, 0.14);
    color: var(--brand-success);
}

.landing-data-center-flow__node-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.25rem;
    padding-right: 1.5rem;
}

.landing-data-center-flow__node-desc {
    font-size: 0.82rem;
    color: #64748b;
    line-height: 1.45;
}

.landing-data-center-section__cards {
    position: relative;
    z-index: 1;
}

.landing-data-center-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 16px;
    padding: 1.35rem 1.2rem 1.25rem;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.07);
    position: relative;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.landing-data-center-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
}

.landing-data-center-card--who::before {
    background: linear-gradient(90deg, var(--brand-primary), var(--brand-secondary));
}

.landing-data-center-card--what::before {
    background: linear-gradient(90deg, var(--brand-accent), #f39c4d);
}

.landing-data-center-card--how::before {
    background: linear-gradient(90deg, #2f6fad, #58a0d8);
}

.landing-data-center-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 36px rgba(30, 58, 95, 0.12);
}

.landing-data-center-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.9rem;
    font-size: 1rem;
}

.landing-data-center-card--who .landing-data-center-card__icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-data-center-card--what .landing-data-center-card__icon {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.landing-data-center-card--how .landing-data-center-card__icon {
    background: rgba(47, 111, 173, 0.12);
    color: #2f6fad;
}

@media (min-width: 1200px) {
    .landing-data-center-flow {
        display: grid;
        grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
        align-items: stretch;
        gap: 0.4rem;
    }

    .landing-data-center-flow__connector {
        flex-direction: column;
        min-width: 1.1rem;
    }

    .landing-data-center-flow__connector-line {
        display: block;
        width: 2px;
        height: 1.4rem;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.15));
        border-radius: 999px;
    }

    .landing-data-center-flow__node {
        flex-direction: column;
        height: 100%;
    }
}

@media (max-width: 991.98px) {
    .landing-data-center-section__intro,
    .landing-data-center-section__flow-panel {
        padding: 1.35rem 1.15rem;
    }

    .landing-data-center-flow__connector i {
        transform: rotate(90deg);
    }
}

/* What we manage */
.landing-manage-section {
    background: linear-gradient(180deg, #fff 0%, #f4f7fb 42%, #fff 100%);
    position: relative;
    border-top: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-manage-section::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(90%, 720px);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--border), transparent);
}

.landing-manage-section__subtitle {
    color: #64748b;
    font-size: 1.02rem;
    line-height: 1.6;
    max-width: 44rem;
    margin-left: auto;
    margin-right: auto;
}

.landing-manage-banner {
    display: grid;
    grid-template-columns: minmax(100px, 160px) minmax(0, 1fr) minmax(110px, 180px);
    align-items: center;
    gap: 1.25rem 1.75rem;
    padding: 1.35rem 1.5rem;
    border-radius: 22px;
    border: 1px solid rgba(45, 90, 135, 0.12);
    background:
        linear-gradient(135deg, rgba(45, 90, 135, 0.07) 0%, rgba(30, 58, 95, 0.03) 48%, rgba(230, 126, 34, 0.05) 100%),
        #edf3f9;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.05);
}

.landing-manage-banner__art {
    display: flex;
    align-items: center;
    justify-content: center;
}

.landing-manage-banner__art svg {
    width: 100%;
    max-width: 160px;
    height: auto;
}

.landing-manage-banner__art--site svg {
    max-width: 180px;
}

.landing-manage-banner__text {
    color: #475569;
    font-size: 0.98rem;
    line-height: 1.6;
    text-align: center;
}

.landing-manage-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 18px;
    padding: 1.2rem 1.2rem 1.35rem;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.05);
    height: 100%;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.landing-manage-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(30, 58, 95, 0.1);
}

.landing-manage-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 0.95rem;
}

.landing-manage-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.55rem;
    height: 2.55rem;
    border-radius: 12px;
    font-size: 1rem;
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-manage-card__num {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: rgba(45, 90, 135, 0.45);
}

.landing-manage-card--flow .landing-manage-card__icon {
    background: rgba(124, 58, 237, 0.1);
    color: #7c3aed;
}

.landing-manage-card--flow .landing-manage-card__num {
    color: rgba(124, 58, 237, 0.45);
}

.landing-manage-card--users .landing-manage-card__icon {
    background: rgba(14, 165, 233, 0.12);
    color: #0284c7;
}

.landing-manage-card--tasks .landing-manage-card__icon {
    background: rgba(16, 185, 129, 0.12);
    color: #059669;
}

.landing-manage-card--tasks .landing-manage-card__num {
    color: rgba(5, 150, 105, 0.45);
}

.landing-manage-card--materials .landing-manage-card__icon {
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
}

.landing-manage-card--materials .landing-manage-card__num {
    color: rgba(230, 126, 34, 0.55);
}

.landing-manage-card--contracts .landing-manage-card__icon {
    background: rgba(100, 116, 139, 0.14);
    color: #475569;
}

.landing-manage-card--phases .landing-manage-card__icon {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.landing-manage-card--comms .landing-manage-card__icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-manage-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.45rem;
    line-height: 1.3;
}

.landing-manage-card__desc {
    color: #64748b;
    font-size: 0.88rem;
    line-height: 1.5;
    padding-bottom: 1.5rem;
}

.landing-manage-card__arrow {
    position: absolute;
    right: 1.1rem;
    bottom: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-secondary);
    font-size: 0.7rem;
}

.landing-manage-hub {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.35rem 1.4rem;
    border-radius: 18px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.05) 0%, rgba(45, 90, 135, 0.08) 100%);
}

.landing-manage-hub--ai {
    border-color: rgba(230, 126, 34, 0.18);
    background: linear-gradient(135deg, rgba(230, 126, 34, 0.08) 0%, rgba(243, 156, 18, 0.06) 100%);
}

.landing-manage-hub__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.85rem;
    height: 2.85rem;
    border-radius: 14px;
    background: var(--brand-primary);
    color: #fff;
    flex-shrink: 0;
    font-size: 1.15rem;
}

.landing-manage-hub--ai .landing-manage-hub__icon {
    background: var(--brand-accent);
}

.landing-manage-hub__title {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.4rem;
}

.landing-manage-hub__desc {
    color: #64748b;
    font-size: 0.9rem;
    line-height: 1.5;
}

.landing-manage-closing {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    text-align: center;
    max-width: 40rem;
    margin: 0 auto;
}

.landing-manage-closing__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
    font-size: 1rem;
}

.landing-manage-closing__text {
    color: #334155;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.55;
}

@media (max-width: 991.98px) {
    .landing-manage-banner {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 1rem;
        padding: 1.25rem 1.15rem;
    }

    .landing-manage-banner__art {
        order: 0;
    }

    .landing-manage-banner__text {
        order: 1;
    }

    .landing-manage-banner__art--city {
        display: none;
    }

    .landing-manage-banner__art--site svg {
        max-width: 150px;
    }
}

/* Mission / what we solve */
.landing-mission-section {
    background: linear-gradient(180deg, var(--surface) 0%, #fff 50%, var(--surface) 100%);
    position: relative;
}

.landing-mission-section::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(90%, 720px);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--border), transparent);
}

.mission-compare-card {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0.75rem;
    align-items: stretch;
}

.mission-compare-col {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 1.15rem 1.25rem;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
}

.mission-compare-col--old {
    border-color: rgba(220, 53, 69, 0.2);
    background: linear-gradient(180deg, #fff 0%, rgba(220, 53, 69, 0.03) 100%);
}

.mission-compare-col--new {
    border-color: rgba(39, 174, 96, 0.25);
    background: linear-gradient(180deg, #fff 0%, rgba(39, 174, 96, 0.04) 100%);
}

.mission-compare-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.85rem;
}

.mission-compare-col--old .mission-compare-head {
    color: #b02a37;
}

.mission-compare-col--old .mission-compare-head i {
    color: #dc3545;
}

.mission-compare-col--new .mission-compare-head {
    color: #1e7e34;
}

.mission-compare-col--new .mission-compare-head i {
    color: var(--brand-success);
}

.mission-compare-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    font-size: 0.88rem;
    color: #495057;
    line-height: 1.45;
    padding: 0.35rem 0;
}

.mission-compare-list li i {
    margin-top: 0.15rem;
    flex-shrink: 0;
}

.mission-compare-col--old .mission-compare-list i {
    color: #dc3545;
}

.mission-compare-col--new .mission-compare-list i {
    color: var(--brand-success);
}

.mission-compare-bridge {
    display: flex;
    align-items: center;
    justify-content: center;
}

.mission-compare-arrow {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: var(--brand-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.25);
}

.mission-solve-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 1.35rem 1.25rem 1.25rem;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.mission-solve-card:hover {
    border-color: rgba(230, 126, 34, 0.35);
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.1);
    transform: translateY(-2px);
}

.mission-solve-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.mission-solve-num {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--brand-accent);
}

.mission-solve-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

/* Subcontract opportunities landing section */
.landing-opportunities-section {
    background: linear-gradient(180deg, var(--surface) 0%, #fff 45%, rgba(30, 58, 95, 0.03) 100%);
    position: relative;
}

.landing-opportunities-section::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(90%, 720px);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--border), transparent);
}

.landing-opportunities-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 0.85rem;
    color: #495057;
    line-height: 1.45;
}

.landing-opportunities-points li i {
    color: var(--brand-success);
    margin-top: 0.2rem;
}

.landing-opportunities-flow-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(30, 58, 95, 0.1);
}

.landing-opportunities-flow-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1.15rem;
    background: linear-gradient(135deg, var(--brand-primary) 0%, #2c5282 100%);
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
}

.landing-opportunities-flow-card__pill {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    padding: 0.25rem 0.65rem;
    white-space: nowrap;
}

.landing-opportunities-flow-card__body {
    padding: 1rem 1.15rem 1.15rem;
}

.landing-opportunities-flow-step {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 0.75rem;
    align-items: start;
    padding: 0.85rem 0;
    border-bottom: 1px dashed rgba(30, 58, 95, 0.12);
}

.landing-opportunities-flow-step:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.landing-opportunities-flow-step__num {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--brand-accent);
    padding-top: 0.35rem;
}

.landing-opportunities-flow-step__icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.landing-opportunities-flow-step__title {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 0.2rem;
}

.landing-opportunities-flow-step__desc {
    font-size: 0.84rem;
    color: #6c757d;
    line-height: 1.45;
}

.landing-opportunities-preview__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.85rem;
}

.landing-opportunities-empty {
    border-radius: 14px;
    color: #6c757d;
}

.landing-opportunities-carousel-wrap {
    position: relative;
}

.landing-opportunities-carousel .carousel-inner {
    padding-bottom: 0.25rem;
}

.landing-opportunities-carousel .carousel-item {
    padding: 0.15rem 0.35rem 0.5rem;
}

.landing-opportunities-carousel .public-opportunity-card {
    min-height: 100%;
}

.landing-opportunities-carousel__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    margin-top: 0.85rem;
}

.landing-opportunities-carousel__btn {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 999px;
    border: 1px solid rgba(30, 58, 95, 0.14);
    background: #fff;
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.landing-opportunities-carousel__btn:hover {
    background: rgba(30, 58, 95, 0.06);
    border-color: rgba(30, 58, 95, 0.22);
    color: var(--brand-primary);
}

.landing-opportunities-carousel__indicators {
    position: static;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.landing-opportunities-carousel__indicators [data-bs-target] {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    border: 0;
    background: rgba(30, 58, 95, 0.18);
    opacity: 1;
    margin: 0;
}

.landing-opportunities-carousel__indicators .active {
    background: var(--brand-accent);
    transform: scale(1.15);
}

@media (max-width: 991.98px) {
    .mission-compare-card {
        grid-template-columns: 1fr;
    }

    .mission-compare-bridge {
        padding: 0.25rem 0;
    }

    .mission-compare-arrow {
        transform: rotate(90deg);
    }
}

.landing-section--alt {
    background: #fff;
}

.landing-problem-card,
.landing-step-card,
.landing-audience-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 1.5rem;
    height: 100%;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.landing-section:not(.landing-section--alt) .landing-problem-card,
.landing-section:not(.landing-section--alt) .landing-audience-card {
    background: #fff;
}

.landing-problem-card:hover,
.landing-step-card:hover,
.landing-audience-card:hover,
.landing-feature-card:hover {
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.1);
    transform: translateY(-2px);
}

.landing-problem-icon,
.landing-step-icon,
.landing-audience-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    font-size: 1.2rem;
    margin-bottom: 1rem;
}

.landing-step-card {
    position: relative;
    padding-top: 2rem;
}

.landing-step-card--ai {
    border-color: rgba(45, 90, 135, 0.14);
    background: linear-gradient(180deg, rgba(244, 246, 248, 0.55) 0%, #fff 100%);
}

.landing-step-icon--ai {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-how-ai-section {
    background:
        linear-gradient(135deg, rgba(30, 58, 95, 0.05) 0%, rgba(255, 255, 255, 0) 42%),
        linear-gradient(180deg, #f8fafc 0%, #fff 40%, #f1f5f9 100%);
    position: relative;
    overflow: hidden;
    border-top: 1px solid rgba(30, 58, 95, 0.06);
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-how-ai-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(30, 58, 95, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(30, 58, 95, 0.03) 1px, transparent 1px);
    background-size: 28px 28px;
    mask-image: radial-gradient(ellipse at center, #000 35%, transparent 85%);
    pointer-events: none;
}

.landing-how-ai-section__glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(2px);
}

.landing-how-ai-section__glow--left {
    top: 10%;
    left: -100px;
    width: 320px;
    height: 320px;
    background: radial-gradient(circle, rgba(230, 126, 34, 0.15) 0%, transparent 68%);
}

.landing-how-ai-section__glow--right {
    bottom: -60px;
    right: -80px;
    width: 360px;
    height: 360px;
    background: radial-gradient(circle, rgba(30, 58, 95, 0.14) 0%, transparent 70%);
}

.landing-how-ai-section__badge {
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.12) 0%, rgba(230, 126, 34, 0.12) 100%);
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.landing-how-ai-section__intro {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 1.75rem 1.6rem;
    box-shadow: 0 18px 45px rgba(30, 58, 95, 0.08);
    backdrop-filter: blur(6px);
}

.landing-how-ai-section__title {
    font-size: clamp(1.45rem, 2.2vw, 1.85rem);
    color: var(--brand-primary);
    line-height: 1.25;
}

.landing-how-ai-section__subtitle {
    color: #5c6b7a;
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 0;
}

.landing-how-ai-section__cta {
    box-shadow: 0 10px 24px rgba(30, 58, 95, 0.18);
}

.landing-how-ai-section__flow-panel {
    background: linear-gradient(160deg, var(--brand-primary) 0%, #25476f 52%, #2f5f8f 100%);
    border-radius: 22px;
    padding: 1.35rem 1.25rem 1.5rem;
    box-shadow: 0 22px 50px rgba(30, 58, 95, 0.22);
    position: relative;
    overflow: hidden;
}

.landing-how-ai-section__flow-panel::before {
    content: "";
    position: absolute;
    top: -40%;
    right: -20%;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, transparent 70%);
    pointer-events: none;
}

.landing-how-ai-section__flow-head {
    margin-bottom: 1rem;
    padding: 0 0.15rem;
    position: relative;
    z-index: 1;
}

.landing-how-ai-section__flow-label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.82);
}

.landing-how-ai-section__flow-label::before {
    content: "";
    width: 1.35rem;
    height: 2px;
    border-radius: 999px;
    background: var(--brand-accent);
}

.landing-how-ai-flow {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    position: relative;
    z-index: 1;
}

.landing-how-ai-flow__connector {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.55);
    padding: 0.1rem 0;
}

.landing-how-ai-flow__connector-line {
    display: none;
}

.landing-how-ai-flow__connector i {
    font-size: 0.8rem;
}

.landing-how-ai-flow__node {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 1rem 1rem 1rem 0.95rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 28px rgba(15, 35, 60, 0.18);
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.landing-how-ai-flow__node:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(15, 35, 60, 0.24);
}

.landing-how-ai-flow__node-step {
    position: absolute;
    top: 0.65rem;
    right: 0.75rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: rgba(30, 58, 95, 0.28);
}

.landing-how-ai-flow__node-icon {
    flex-shrink: 0;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
}

.landing-how-ai-flow__node--finland .landing-how-ai-flow__node-icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-how-ai-flow__node--knowledge .landing-how-ai-flow__node-icon {
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
}

.landing-how-ai-flow__node--assistant .landing-how-ai-flow__node-icon {
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
}

.landing-how-ai-flow__node-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.35rem;
    line-height: 1.35;
    padding-right: 1.5rem;
}

.landing-how-ai-flow__node-desc {
    font-size: 0.86rem;
    color: #5c6b7a;
    line-height: 1.5;
}

@media (min-width: 992px) {
    .landing-how-ai-flow {
        flex-direction: row;
        align-items: stretch;
        gap: 0.45rem;
    }

    .landing-how-ai-flow__connector {
        flex-direction: column;
        justify-content: center;
        padding: 0 0.1rem;
        min-width: 1.35rem;
    }

    .landing-how-ai-flow__connector-line {
        display: block;
        width: 2px;
        height: 1.5rem;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.15));
        border-radius: 999px;
    }

    .landing-how-ai-flow__node {
        flex: 1 1 0;
        flex-direction: column;
        align-items: flex-start;
        min-height: 100%;
        min-width: 0;
        padding: 1.15rem 1rem 1.15rem;
    }

    .landing-how-ai-flow__node-title {
        padding-right: 0;
    }
}

@media (max-width: 991.98px) {
    .landing-how-ai-section__intro,
    .landing-how-ai-section__flow-panel {
        padding: 1.35rem 1.15rem;
    }

    .landing-how-ai-flow__connector i {
        transform: rotate(90deg);
    }
}

.landing-step-num {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-primary);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.landing-audience-tag {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-secondary);
    background: rgba(30, 58, 95, 0.08);
    border-radius: 6px;
    padding: 0.25rem 0.5rem;
}

.landing-feature-card {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

/* Hierarchy section */
.landing-hierarchy-section {
    background: linear-gradient(180deg, #fff 0%, var(--surface) 45%, #fff 100%);
    position: relative;
    overflow: hidden;
}

.landing-hierarchy-section::before {
    content: "";
    position: absolute;
    top: -120px;
    right: -80px;
    width: 320px;
    height: 320px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(230, 126, 34, 0.08) 0%, transparent 70%);
    pointer-events: none;
}

.landing-section-badge {
    display: inline-block;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.hierarchy-steps-list {
    position: relative;
    margin: 0;
    padding: 0;
}

.hierarchy-step {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding-bottom: 1.1rem;
    position: relative;
}

.hierarchy-step:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 1.15rem;
    top: 2.35rem;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, var(--border) 0%, rgba(222, 226, 230, 0.2) 100%);
}

.hierarchy-step-marker {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid var(--border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-secondary);
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.06);
    z-index: 1;
}

.hierarchy-step-body {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding-top: 0.15rem;
}

.hierarchy-step-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6c757d;
}

.hierarchy-step-value {
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--brand-primary);
    line-height: 1.35;
}

.hierarchy-step.is-highlight .hierarchy-step-marker {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.25);
}

.hierarchy-step.is-highlight .hierarchy-step-value {
    color: var(--brand-accent);
}

.hierarchy-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    padding-top: 0.25rem;
}

.hierarchy-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.8rem;
    color: #6c757d;
}

.hierarchy-legend-item .dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

.hierarchy-legend-item .dot.is-done {
    background: var(--brand-success);
}

.hierarchy-legend-item .dot.is-active {
    background: var(--brand-accent);
}

.hierarchy-legend-item .dot.is-pending {
    background: #adb5bd;
}

.hierarchy-info-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 18px;
    box-shadow: 0 20px 50px rgba(30, 58, 95, 0.1);
    overflow: hidden;
}

.hierarchy-info-card__header {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1.15rem;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
}

.hierarchy-info-card__header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 0.95rem;
}

.hierarchy-info-card__header-title {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.hierarchy-info-card__body {
    padding: 1.35rem 1.35rem 1.25rem;
    background: linear-gradient(180deg, #fafbfc 0%, #fff 100%);
}

.hierarchy-info-card__body .hierarchy-step-marker {
    background: #fff;
}

.hierarchy-info-card__body .hierarchy-legend {
    padding-top: 0.5rem;
    border-top: 1px solid var(--border);
    margin-top: 0.25rem;
}

/* AI landing section */
.landing-ai-section {
    background:
        linear-gradient(135deg, rgba(30, 58, 95, 0.04) 0%, rgba(255, 255, 255, 0) 42%),
        linear-gradient(180deg, #f8fafc 0%, #fff 38%, #f4f7fb 100%);
    position: relative;
    overflow: hidden;
    border-top: 1px solid rgba(30, 58, 95, 0.06);
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-ai-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(30, 58, 95, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(30, 58, 95, 0.03) 1px, transparent 1px);
    background-size: 28px 28px;
    mask-image: radial-gradient(ellipse at center, #000 35%, transparent 85%);
    pointer-events: none;
}

.landing-ai-section__glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(2px);
}

.landing-ai-section__glow--left {
    top: 8%;
    left: -120px;
    width: 340px;
    height: 340px;
    background: radial-gradient(circle, rgba(230, 126, 34, 0.14) 0%, transparent 68%);
}

.landing-ai-section__glow--right {
    bottom: -80px;
    right: -100px;
    width: 380px;
    height: 380px;
    background: radial-gradient(circle, rgba(30, 58, 95, 0.12) 0%, transparent 70%);
}

.landing-ai-section__badge {
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.12) 0%, rgba(230, 126, 34, 0.12) 100%);
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.landing-ai-section__intro {
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 1.75rem 1.6rem;
    box-shadow: 0 18px 45px rgba(30, 58, 95, 0.08);
    backdrop-filter: blur(6px);
}

.landing-ai-section__title {
    font-size: clamp(1.55rem, 2.4vw, 2rem);
    color: var(--brand-primary);
    line-height: 1.2;
}

.landing-ai-section__title-accent {
    color: var(--brand-secondary);
}

.landing-ai-section__subtitle {
    color: #5c6b7a;
    font-size: 1.02rem;
    line-height: 1.6;
}

.landing-ai-section__cta {
    box-shadow: 0 10px 24px rgba(30, 58, 95, 0.18);
}

.landing-ai-section__flow-panel {
    background: linear-gradient(160deg, var(--brand-primary) 0%, #25476f 52%, #2f5f8f 100%);
    border-radius: 22px;
    padding: 1.35rem 1.25rem 1.5rem;
    box-shadow: 0 22px 50px rgba(30, 58, 95, 0.22);
    position: relative;
    overflow: hidden;
}

.landing-ai-section__flow-panel::before {
    content: "";
    position: absolute;
    top: -40%;
    right: -20%;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, transparent 70%);
    pointer-events: none;
}

.landing-ai-section__flow-head {
    margin-bottom: 1rem;
    padding: 0 0.15rem;
}

.landing-ai-section__flow-label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.82);
}

.landing-ai-section__flow-label::before {
    content: "";
    width: 1.35rem;
    height: 2px;
    border-radius: 999px;
    background: var(--brand-accent);
}

.landing-ai-section__visual {
    position: relative;
    z-index: 1;
    margin-top: 1.15rem;
    display: flex;
    justify-content: center;
}

.landing-ai-section__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.landing-ai-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
    color: #3f4f61;
    line-height: 1.5;
    font-size: 0.95rem;
}

.landing-ai-points li:last-child {
    margin-bottom: 0;
}

.landing-ai-points__icon {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.72rem;
    margin-top: 0.1rem;
}

.landing-ai-flow {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    position: relative;
    z-index: 1;
}

.landing-ai-flow__connector {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.55);
    padding: 0.1rem 0;
}

.landing-ai-flow__connector-line {
    display: none;
}

.landing-ai-flow__connector i {
    font-size: 0.8rem;
}

.landing-ai-flow__node {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 1rem 1rem 1rem 0.95rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 28px rgba(15, 35, 60, 0.18);
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.landing-ai-flow__node:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(15, 35, 60, 0.24);
}

.landing-ai-flow__node-step {
    position: absolute;
    top: 0.65rem;
    right: 0.75rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: rgba(30, 58, 95, 0.28);
}

.landing-ai-flow__node-icon {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.05rem;
}

.landing-ai-flow__node--site .landing-ai-flow__node-icon {
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
}

.landing-ai-flow__node--knowledge .landing-ai-flow__node-icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-ai-flow__node--assistant .landing-ai-flow__node-icon {
    background: rgba(40, 167, 69, 0.14);
    color: var(--brand-success);
}

.landing-ai-flow__node-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.3rem;
    padding-right: 1.5rem;
}

.landing-ai-flow__node-desc {
    font-size: 0.84rem;
    color: #64748b;
    line-height: 1.45;
}

.landing-ai-section__cards {
    position: relative;
    z-index: 1;
}

.landing-ai-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 16px;
    padding: 1.35rem 1.2rem 1.25rem;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.07);
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
    position: relative;
    overflow: hidden;
}

.landing-ai-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-primary), var(--brand-secondary));
    opacity: 0.85;
}

.landing-ai-card--search::before {
    background: linear-gradient(90deg, var(--brand-accent), #f39c4d);
}

.landing-ai-card--project::before {
    background: linear-gradient(90deg, var(--brand-primary), var(--brand-secondary));
}

.landing-ai-card--trust::before {
    background: linear-gradient(90deg, var(--brand-success), #58d68d);
}

.landing-ai-card:hover {
    box-shadow: 0 16px 36px rgba(30, 58, 95, 0.12);
    transform: translateY(-3px);
    border-color: rgba(30, 58, 95, 0.14);
}

.landing-ai-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 11px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.9rem;
    font-size: 1rem;
}

.landing-ai-card--search .landing-ai-card__icon {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.landing-ai-card--project .landing-ai-card__icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-ai-card--trust .landing-ai-card__icon {
    background: rgba(40, 167, 69, 0.12);
    color: var(--brand-success);
}

@media (min-width: 992px) {
    .landing-ai-flow {
        flex-direction: row;
        align-items: stretch;
        gap: 0.45rem;
    }

    .landing-ai-flow__connector {
        flex-direction: column;
        justify-content: center;
        padding: 0 0.1rem;
        min-width: 1.35rem;
    }

    .landing-ai-flow__connector-line {
        display: block;
        width: 2px;
        height: 1.5rem;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.15));
        border-radius: 999px;
    }

    .landing-ai-flow__node {
        flex: 1 1 0;
        flex-direction: column;
        align-items: flex-start;
        min-height: 100%;
        padding-top: 1.15rem;
    }
}

@media (max-width: 991.98px) {
    .landing-ai-section__intro,
    .landing-ai-section__flow-panel {
        padding: 1.35rem 1.15rem;
    }

    .landing-ai-flow__connector i {
        transform: rotate(90deg);
    }
}

.landing-ai-quiz-section {
    background:
        linear-gradient(145deg, rgba(230, 126, 34, 0.05) 0%, rgba(255, 255, 255, 0) 40%),
        linear-gradient(180deg, #fff 0%, #f7f9fc 45%, #eef3f8 100%);
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-ai-quiz-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(rgba(30, 58, 95, 0.05) 1px, transparent 1px);
    background-size: 22px 22px;
    mask-image: radial-gradient(ellipse at 70% 40%, #000 30%, transparent 80%);
    pointer-events: none;
}

.landing-ai-quiz-section__glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(2px);
}

.landing-ai-quiz-section__glow--left {
    bottom: -60px;
    left: -90px;
    width: 320px;
    height: 320px;
    background: radial-gradient(circle, rgba(30, 58, 95, 0.1) 0%, transparent 70%);
}

.landing-ai-quiz-section__glow--right {
    top: 5%;
    right: -110px;
    width: 360px;
    height: 360px;
    background: radial-gradient(circle, rgba(230, 126, 34, 0.16) 0%, transparent 68%);
}

.landing-ai-quiz-section__badge {
    background: linear-gradient(135deg, rgba(230, 126, 34, 0.14) 0%, rgba(30, 58, 95, 0.1) 100%);
    border: 1px solid rgba(230, 126, 34, 0.18);
}

.landing-ai-quiz-section__intro {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 1.75rem 1.6rem;
    box-shadow: 0 18px 45px rgba(30, 58, 95, 0.08);
    backdrop-filter: blur(6px);
}

.landing-ai-quiz-section__title {
    font-size: clamp(1.55rem, 2.4vw, 2rem);
    color: var(--brand-primary);
    line-height: 1.2;
}

.landing-ai-quiz-section__subtitle {
    color: #5c6b7a;
    font-size: 1.02rem;
    line-height: 1.6;
}

.landing-ai-quiz-section__cta {
    box-shadow: 0 10px 24px rgba(230, 126, 34, 0.2);
}

.landing-ai-quiz-section__flow-panel {
    background: linear-gradient(165deg, #243b5c 0%, #1e3a5f 48%, #2a4f78 100%);
    border-radius: 22px;
    padding: 1.35rem 1.25rem 1.35rem;
    box-shadow: 0 22px 50px rgba(30, 58, 95, 0.22);
    position: relative;
    overflow: hidden;
}

.landing-ai-quiz-section__flow-panel::before {
    content: "";
    position: absolute;
    bottom: -35%;
    left: -15%;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(230, 126, 34, 0.22) 0%, transparent 70%);
    pointer-events: none;
}

.landing-ai-quiz-section__flow-head {
    margin-bottom: 1rem;
    padding: 0 0.15rem;
}

.landing-ai-quiz-section__flow-label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.82);
}

.landing-ai-quiz-section__flow-label::before {
    content: "";
    width: 1.35rem;
    height: 2px;
    border-radius: 999px;
    background: var(--brand-accent);
}

.landing-ai-quiz-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
    color: #3f4f61;
    line-height: 1.5;
    font-size: 0.95rem;
}

.landing-ai-quiz-points li:last-child {
    margin-bottom: 0;
}

.landing-ai-quiz-points__icon {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.72rem;
    margin-top: 0.1rem;
}

.landing-ai-quiz-flow {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    position: relative;
    z-index: 1;
}

.landing-ai-quiz-flow__connector {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.55);
    padding: 0.1rem 0;
}

.landing-ai-quiz-flow__connector-line {
    display: none;
}

.landing-ai-quiz-flow__connector i {
    font-size: 0.8rem;
}

.landing-ai-quiz-flow__node {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 1rem 1rem 1rem 0.95rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 28px rgba(15, 35, 60, 0.18);
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.landing-ai-quiz-flow__node:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(15, 35, 60, 0.24);
}

.landing-ai-quiz-flow__node-step {
    position: absolute;
    top: 0.65rem;
    right: 0.75rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: rgba(30, 58, 95, 0.28);
}

.landing-ai-quiz-flow__node-icon {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.05rem;
}

.landing-ai-quiz-flow__node--knowledge .landing-ai-quiz-flow__node-icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-ai-quiz-flow__node--generate .landing-ai-quiz-flow__node-icon {
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
}

.landing-ai-quiz-flow__node--coach .landing-ai-quiz-flow__node-icon {
    background: rgba(40, 167, 69, 0.14);
    color: var(--brand-success);
}

.landing-ai-quiz-flow__node-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.3rem;
    padding-right: 1.5rem;
}

.landing-ai-quiz-flow__node-desc {
    font-size: 0.84rem;
    color: #64748b;
    line-height: 1.45;
}

.landing-ai-quiz-demo {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-top: 1.1rem;
    position: relative;
    z-index: 1;
}

.landing-ai-quiz-demo__bubble {
    border-radius: 14px;
    padding: 0.85rem 1rem;
    font-size: 0.86rem;
    line-height: 1.45;
    max-width: 92%;
}

.landing-ai-quiz-demo__bubble--coach {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: rgba(255, 255, 255, 0.95);
    align-self: flex-start;
}

.landing-ai-quiz-demo__bubble--worker {
    background: rgba(230, 126, 34, 0.92);
    color: #fff;
    align-self: flex-end;
    box-shadow: 0 8px 20px rgba(230, 126, 34, 0.28);
}

.landing-ai-quiz-demo__role {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    opacity: 0.75;
    margin-bottom: 0.2rem;
}

.landing-ai-quiz-section__cards {
    position: relative;
    z-index: 1;
}

.landing-ai-quiz-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 16px;
    padding: 1.35rem 1.2rem 1.25rem;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.07);
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
    position: relative;
    overflow: hidden;
}

.landing-ai-quiz-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    opacity: 0.9;
}

.landing-ai-quiz-card--safety::before {
    background: linear-gradient(90deg, var(--brand-primary), var(--brand-secondary));
}

.landing-ai-quiz-card--speed::before {
    background: linear-gradient(90deg, var(--brand-accent), #f39c4d);
}

.landing-ai-quiz-card--language::before {
    background: linear-gradient(90deg, #2f6fad, #58a0d8);
}

.landing-ai-quiz-card:hover {
    box-shadow: 0 16px 36px rgba(30, 58, 95, 0.12);
    transform: translateY(-3px);
    border-color: rgba(30, 58, 95, 0.14);
}

.landing-ai-quiz-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.9rem;
    font-size: 1rem;
}

.landing-ai-quiz-card--safety .landing-ai-quiz-card__icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-ai-quiz-card--speed .landing-ai-quiz-card__icon {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.landing-ai-quiz-card--language .landing-ai-quiz-card__icon {
    background: rgba(47, 111, 173, 0.12);
    color: #2f6fad;
}

@media (min-width: 992px) {
    .landing-ai-quiz-flow {
        flex-direction: row;
        align-items: stretch;
        gap: 0.45rem;
    }

    .landing-ai-quiz-flow__connector {
        flex-direction: column;
        justify-content: center;
        padding: 0 0.1rem;
        min-width: 1.35rem;
    }

    .landing-ai-quiz-flow__connector-line {
        display: block;
        width: 2px;
        height: 1.5rem;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.15));
        border-radius: 999px;
    }

    .landing-ai-quiz-flow__node {
        flex: 1 1 0;
        flex-direction: column;
        align-items: flex-start;
        min-height: 100%;
        padding-top: 1.15rem;
    }
}

@media (max-width: 991.98px) {
    .landing-ai-quiz-section__intro,
    .landing-ai-quiz-section__flow-panel {
        padding: 1.35rem 1.15rem;
    }

    .landing-ai-quiz-flow__connector i {
        transform: rotate(90deg);
    }

    .landing-ai-quiz-demo__bubble {
        max-width: 100%;
    }
}

.landing-safety-ai-section {
    background: linear-gradient(180deg, #fff 0%, #f4f8fc 40%, #fff 100%);
    position: relative;
    border-top: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-safety-ai-section__intro {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 1.75rem 1.6rem;
    box-shadow: 0 18px 40px rgba(30, 58, 95, 0.08);
}

.landing-safety-ai-section__title {
    font-size: clamp(1.55rem, 2.4vw, 2rem);
    color: var(--brand-primary);
    line-height: 1.2;
}

.landing-safety-ai-section__subtitle {
    color: #64748b;
    font-size: 0.98rem;
    line-height: 1.65;
}

.landing-safety-ai-section__flow-panel {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 1.15rem 1.2rem 1.25rem;
    box-shadow: 0 18px 40px rgba(30, 58, 95, 0.08);
    position: relative;
}

.landing-safety-ai-section__flow-head {
    margin-bottom: 1rem;
}

.landing-safety-ai-section__flow-label {
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
}

.landing-safety-ai-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
    color: #475569;
    line-height: 1.55;
    font-size: 0.95rem;
}

.landing-safety-ai-points li:last-child {
    margin-bottom: 0;
}

.landing-safety-ai-points__icon {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.72rem;
    margin-top: 0.1rem;
}

.landing-safety-ai-flow {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.landing-safety-ai-flow__connector {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: #94a3b8;
    padding: 0.1rem 0;
}

.landing-safety-ai-flow__connector-line {
    display: none;
}

.landing-safety-ai-flow__connector i {
    font-size: 0.8rem;
}

.landing-safety-ai-flow__node {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 1rem 1rem 1rem 0.95rem;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.05);
    position: relative;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.landing-safety-ai-flow__node:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(30, 58, 95, 0.1);
}

.landing-safety-ai-flow__node-step {
    position: absolute;
    top: 0.65rem;
    right: 0.75rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: rgba(30, 58, 95, 0.35);
}

.landing-safety-ai-flow__node-icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.95rem;
}

.landing-safety-ai-flow__node--cases .landing-safety-ai-flow__node-icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-safety-ai-flow__node--board .landing-safety-ai-flow__node-icon {
    background: rgba(37, 99, 235, 0.12);
    color: #2563eb;
}

.landing-safety-ai-flow__node--ai .landing-safety-ai-flow__node-icon {
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
}

.landing-safety-ai-flow__node-title {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.25rem;
    line-height: 1.25;
}

.landing-safety-ai-flow__node-desc {
    font-size: 0.82rem;
    color: #64748b;
    line-height: 1.45;
}

.landing-safety-ai-demo {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    margin-top: 1rem;
}

.landing-safety-ai-demo__board {
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 14px;
    padding: 0.95rem 1rem;
}

.landing-safety-ai-demo__board-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    color: var(--brand-primary);
    font-size: 0.88rem;
}

.landing-safety-ai-demo__board-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.landing-safety-ai-demo__board-pill.is-overdue {
    background: rgba(220, 38, 38, 0.12);
    color: #dc2626;
    border: 1px solid rgba(220, 38, 38, 0.18);
}

.landing-safety-ai-demo__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.landing-safety-ai-demo__stat {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 10px;
    padding: 0.55rem 0.6rem;
    text-align: center;
}

.landing-safety-ai-demo__stat-value {
    display: block;
    font-size: 1.15rem;
    font-weight: 750;
    line-height: 1;
    color: var(--brand-primary);
}

.landing-safety-ai-demo__stat--red .landing-safety-ai-demo__stat-value {
    color: #dc2626;
}

.landing-safety-ai-demo__stat--blue .landing-safety-ai-demo__stat-value {
    color: #2563eb;
}

.landing-safety-ai-demo__stat-label {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.68rem;
    color: #64748b;
    line-height: 1.2;
}

.landing-safety-ai-demo__chat {
    display: grid;
    gap: 0.55rem;
}

.landing-safety-ai-demo__bubble {
    border-radius: 12px;
    padding: 0.7rem 0.85rem;
    font-size: 0.82rem;
    line-height: 1.45;
    max-width: 92%;
}

.landing-safety-ai-demo__bubble--user {
    justify-self: end;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.landing-safety-ai-demo__bubble--ai {
    justify-self: start;
    background: #fff;
    color: #334155;
    border: 1px solid rgba(30, 58, 95, 0.1);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.05);
}

.landing-safety-ai-demo__role {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.2rem;
}

.landing-safety-ai-section__cards {
    position: relative;
}

.landing-safety-ai-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 16px;
    padding: 1.35rem 1.2rem 1.25rem;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.07);
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
    position: relative;
    overflow: hidden;
}

.landing-safety-ai-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    opacity: 0.9;
}

.landing-safety-ai-card--schedule::before {
    background: linear-gradient(90deg, #2563eb, #60a5fa);
}

.landing-safety-ai-card--forms::before {
    background: linear-gradient(90deg, var(--brand-primary), var(--brand-secondary));
}

.landing-safety-ai-card--compliance::before {
    background: linear-gradient(90deg, var(--brand-primary), var(--brand-accent));
}

.landing-safety-ai-card:hover {
    box-shadow: 0 16px 36px rgba(30, 58, 95, 0.12);
    transform: translateY(-3px);
    border-color: rgba(30, 58, 95, 0.14);
}

.landing-safety-ai-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.9rem;
    font-size: 1rem;
}

.landing-safety-ai-card--schedule .landing-safety-ai-card__icon {
    background: rgba(37, 99, 235, 0.12);
    color: #2563eb;
}

.landing-safety-ai-card--forms .landing-safety-ai-card__icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-safety-ai-card--compliance .landing-safety-ai-card__icon {
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
}

@media (min-width: 992px) {
    .landing-safety-ai-flow {
        flex-direction: row;
        align-items: stretch;
        gap: 0.45rem;
    }

    .landing-safety-ai-flow__connector {
        flex-direction: column;
        justify-content: center;
        padding: 0 0.1rem;
        min-width: 1.35rem;
    }

    .landing-safety-ai-flow__connector-line {
        display: block;
        width: 2px;
        height: 1.5rem;
        background: linear-gradient(180deg, rgba(30, 58, 95, 0.08), rgba(30, 58, 95, 0.22), rgba(30, 58, 95, 0.08));
        border-radius: 999px;
    }

    .landing-safety-ai-flow__node {
        flex: 1 1 0;
        flex-direction: column;
        align-items: flex-start;
        min-height: 100%;
        padding-top: 1.15rem;
    }

    .landing-safety-ai-demo {
        grid-template-columns: 1.05fr 0.95fr;
        align-items: stretch;
    }
}

@media (max-width: 991.98px) {
    .landing-safety-ai-section__intro,
    .landing-safety-ai-section__flow-panel {
        padding: 1.35rem 1.15rem;
    }

    .landing-safety-ai-flow__connector i {
        transform: rotate(90deg);
    }

    .landing-safety-ai-demo__bubble {
        max-width: 100%;
    }
}

.landing-ai-page-hero {
    background: linear-gradient(135deg, var(--brand-primary) 0%, #2c5282 55%, var(--brand-secondary) 100%);
}

.landing-ai-page-hero__badge {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    margin-bottom: 1.25rem;
}

.landing-ai-page-hero__icon {
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
}

.landing-ai-page-hero__subtitle {
    max-width: 34rem;
}

.landing-ai-page-hero__visual {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.5rem;
}

.landing-ai-page-hero__image {
    display: block;
    width: 100%;
    max-width: 560px;
    height: auto;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
}

@media (min-width: 992px) {
    .landing-ai-page-hero__subtitle {
        margin-left: 0;
        margin-right: 0;
    }
}

.landing-how-page-hero__subtitle {
    max-width: 32rem;
}

.landing-how-page-hero__visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.landing-how-page-hero__image {
    display: block;
    width: 100%;
    max-width: 560px;
    height: auto;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
}

.landing-projects-page-hero__subtitle {
    max-width: 34rem;
}

.landing-projects-page-hero__lead {
    max-width: 34rem;
    font-size: 0.98rem;
    line-height: 1.6;
}

.landing-projects-page-hero__visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.landing-projects-page-hero__image {
    display: block;
    width: 100%;
    max-width: 560px;
    height: auto;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
}

.landing-opportunities-page-hero__subtitle {
    max-width: 34rem;
}

.landing-opportunities-page-hero__lead {
    max-width: 34rem;
    font-size: 0.98rem;
    line-height: 1.6;
}

.landing-opportunities-page-hero__visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.landing-opportunities-page-hero__image {
    display: block;
    width: 100%;
    max-width: 560px;
    height: auto;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
}

.landing-info-page-hero__subtitle {
    max-width: 34rem;
}

.landing-info-page-hero__lead {
    max-width: 34rem;
    font-size: 0.98rem;
    line-height: 1.6;
}

.landing-info-page-hero__visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.landing-info-page-hero__image {
    display: block;
    width: 100%;
    max-width: 560px;
    height: auto;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
}

.landing-audience-page-hero__subtitle {
    max-width: 34rem;
}

.landing-audience-page-hero__visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.landing-audience-page-hero__image {
    display: block;
    width: 100%;
    max-width: 560px;
    height: auto;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
}

.landing-ai-role-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 16px;
    padding: 1.5rem 1.35rem;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.07);
    height: 100%;
}

.landing-ai-role-card__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    font-size: 1.15rem;
}

.landing-ai-role-card--engineer .landing-ai-role-card__icon {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.landing-ai-role-card--pm .landing-ai-role-card__icon {
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
}

.landing-ai-role-card--assist .landing-ai-role-card__icon {
    background: rgba(40, 167, 69, 0.12);
    color: var(--brand-success);
}

.landing-ai-role-card__list li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin-bottom: 0.65rem;
    font-size: 0.9rem;
    color: #495057;
    line-height: 1.45;
}

.landing-ai-role-card__list li:last-child {
    margin-bottom: 0;
}

.landing-ai-role-card__list li i {
    color: var(--brand-success);
    margin-top: 0.2rem;
    font-size: 0.75rem;
}

.landing-ai-examples__item {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.1rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.06);
    margin-bottom: 0.85rem;
    font-weight: 500;
    color: var(--brand-primary);
    line-height: 1.45;
}

.landing-ai-examples__item:last-child {
    margin-bottom: 0;
}

.landing-ai-examples__bubble {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.landing-ai-examples-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(125deg, rgba(30, 58, 95, 0.96) 0%, #25476f 42%, #2f5f8f 68%, rgba(47, 95, 143, 0.92) 100%);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.landing-ai-examples-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
    background-size: 24px 24px;
    mask-image: radial-gradient(ellipse at center, #000 45%, transparent 90%);
    pointer-events: none;
}

.landing-ai-examples-section__glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.landing-ai-examples-section__glow--left {
    top: -30%;
    left: -8%;
    width: 360px;
    height: 360px;
    background: radial-gradient(circle, rgba(230, 126, 34, 0.22) 0%, transparent 68%);
}

.landing-ai-examples-section__glow--right {
    bottom: -35%;
    right: -6%;
    width: 420px;
    height: 420px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, transparent 70%);
}

.landing-ai-examples-section__intro {
    position: relative;
    z-index: 1;
}

.landing-ai-examples-section__badge {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
}

.landing-ai-examples-section__intro h2 {
    color: #fff;
    font-size: clamp(1.45rem, 2.2vw, 1.9rem);
    line-height: 1.2;
}

.landing-ai-examples-section__subtitle {
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.02rem;
    line-height: 1.6;
    margin-bottom: 0;
}

.landing-ai-access-note--panel {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.16);
    backdrop-filter: blur(8px);
    color: #fff;
}

.landing-ai-access-note--panel strong {
    color: #fff;
}

.landing-ai-access-note--panel .text-muted {
    color: rgba(255, 255, 255, 0.78) !important;
}

.landing-ai-access-note--panel > i {
    color: var(--brand-accent);
}

.landing-ai-examples-section .landing-ai-examples__item {
    background: rgba(255, 255, 255, 0.97);
    border-color: rgba(255, 255, 255, 0.35);
    box-shadow: 0 12px 30px rgba(15, 35, 60, 0.2);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.landing-ai-examples-section .landing-ai-examples__item:hover {
    transform: translateX(4px);
    box-shadow: 0 16px 36px rgba(15, 35, 60, 0.26);
}

.landing-ai-examples-section .landing-ai-examples__bubble {
    background: rgba(30, 58, 95, 0.1);
}

.landing-ai-access-note {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.1rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.05);
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.landing-ai-access-note > i {
    color: var(--brand-secondary);
    margin-top: 0.15rem;
}

.landing-ai-providers {
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    border-top: 1px solid rgba(30, 58, 95, 0.06);
}

.landing-ai-providers__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1.5rem;
}

.landing-ai-providers__head .text-center {
    flex: 1 1 100%;
}

.landing-ai-providers__nav {
    display: flex;
    gap: 0.5rem;
    margin-left: auto;
    margin-right: auto;
}

.landing-ai-providers__nav-btn {
    width: 2.35rem;
    height: 2.35rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 999px;
    background: #fff;
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.08);
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.landing-ai-providers__nav-btn:hover {
    border-color: var(--brand-secondary);
    background: rgba(30, 58, 95, 0.04);
    transform: translateY(-1px);
}

.landing-ai-providers__track {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: 0.25rem 0.15rem 0.5rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.landing-ai-provider-card {
    flex: 0 0 min(100%, 15.5rem);
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.9rem;
    padding: 1.35rem 1.1rem 1.2rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.08);
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.landing-ai-provider-card:hover {
    transform: translateY(-3px);
    border-color: rgba(30, 58, 95, 0.16);
    box-shadow: 0 16px 36px rgba(30, 58, 95, 0.12);
}

.landing-ai-provider-card__logo-wrap {
    width: 4.75rem;
    height: 4.75rem;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 0.55rem;
}

.landing-ai-provider-card__logo {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.landing-ai-provider-card__logo-fallback {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.landing-ai-provider-card__company {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0;
    line-height: 1.35;
}

.landing-ai-provider-card__data-center {
    margin-top: 0.25rem;
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.35;
}

@media (min-width: 768px) {
    .landing-ai-providers__head .text-center {
        flex: 1 1 auto;
        text-align: left;
        margin-left: 0;
        margin-right: 0;
    }

    .landing-ai-providers__nav {
        margin-left: 0;
        margin-right: 0;
    }
}

.landing-feedback-section {
    background:
        linear-gradient(135deg, rgba(52, 152, 219, 0.05) 0%, rgba(255, 255, 255, 0) 38%),
        linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    border-top: 1px solid rgba(30, 58, 95, 0.06);
    position: relative;
    overflow: hidden;
}

.landing-feedback-section__title {
    color: var(--brand-primary);
}

.landing-feedback-section__subtitle {
    font-size: 1rem;
    line-height: 1.6;
}

.landing-feedback-carousel-wrap {
    max-width: 54rem;
    margin-inline: auto;
}

.landing-feedback-carousel .carousel-inner {
    overflow: visible;
}

.landing-feedback-carousel .carousel-item {
    padding: 0.35rem 0.15rem 0.5rem;
}

.landing-feedback-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 18rem;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 24px;
    background: #fff;
    box-shadow:
        0 24px 60px rgba(30, 58, 95, 0.1),
        0 2px 0 rgba(255, 255, 255, 0.85) inset;
}

.landing-feedback-card__accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--brand-accent) 0%, var(--brand-secondary) 55%, var(--brand-primary) 100%);
}

.landing-feedback-card__glow {
    position: absolute;
    width: 14rem;
    height: 14rem;
    border-radius: 999px;
    pointer-events: none;
    filter: blur(40px);
    opacity: 0.35;
}

.landing-feedback-card__glow--left {
    top: -4rem;
    left: -3rem;
    background: rgba(230, 126, 34, 0.22);
}

.landing-feedback-card__glow--right {
    right: -3rem;
    bottom: -4rem;
    background: rgba(52, 152, 219, 0.18);
}

.landing-feedback-card__watermark {
    position: absolute;
    top: 1.15rem;
    right: 1.35rem;
    color: rgba(30, 58, 95, 0.06);
    font-size: 4.5rem;
    line-height: 1;
    pointer-events: none;
}

.landing-feedback-card__content {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    padding: 2.15rem 2.25rem 1.5rem;
    text-align: center;
}

.landing-feedback-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.65rem 1rem;
    margin-bottom: 1.25rem;
}

.landing-feedback-card__rating {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.1);
    color: var(--brand-accent);
    font-size: 0.92rem;
}

.landing-feedback-card__verified {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(52, 152, 219, 0.08);
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.landing-feedback-card__verified i {
    color: var(--brand-secondary);
    font-size: 0.82rem;
}

.landing-feedback-card__message {
    margin: 0;
    color: var(--brand-primary);
    font-size: clamp(1.05rem, 1.6vw, 1.35rem);
    line-height: 1.7;
    font-style: normal;
    max-width: 38rem;
    margin-inline: auto;
}

.landing-feedback-card__message p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
    overflow: hidden;
}

.landing-feedback-card__footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.9rem;
    padding: 1.1rem 1.5rem 1.35rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    background: linear-gradient(180deg, #fafbfc 0%, #f4f7fb 100%);
    text-align: left;
}

.landing-feedback-card__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-primary) 100%);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    flex: 0 0 auto;
    box-shadow:
        0 0 0 3px #fff,
        0 0 0 4px rgba(52, 152, 219, 0.22);
}

.landing-feedback-card__author-copy {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.landing-feedback-card__name {
    color: var(--brand-primary);
    font-size: 1.02rem;
    font-weight: 700;
    font-style: normal;
    line-height: 1.3;
}

.landing-feedback-card__role {
    color: #64748b;
    font-size: 0.875rem;
    line-height: 1.4;
}

.landing-feedback-carousel__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.5rem;
}

.landing-feedback-carousel__btn {
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 999px;
    background: #fff;
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.08);
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.landing-feedback-carousel__btn:hover {
    border-color: var(--brand-secondary);
    background: rgba(30, 58, 95, 0.04);
    transform: translateY(-1px);
}

.landing-feedback-carousel__indicators {
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    margin: 0;
    padding: 0;
}

.landing-feedback-carousel__indicators [data-bs-target] {
    width: 0.55rem;
    height: 0.55rem;
    margin: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.18);
    opacity: 1;
    transition: transform 0.15s ease, background 0.15s ease;
}

.landing-feedback-carousel__indicators .active {
    background: var(--brand-accent);
    transform: scale(1.15);
}

@media (max-width: 575.98px) {
    .landing-feedback-card {
        min-height: auto;
    }

    .landing-feedback-card__content {
        padding: 1.65rem 1.25rem 1.15rem;
    }

    .landing-feedback-card__watermark {
        font-size: 3.25rem;
        top: 0.85rem;
        right: 0.85rem;
    }

    .landing-feedback-card__message {
        font-size: 1.02rem;
    }

    .landing-feedback-card__footer {
        padding: 1rem 1.15rem 1.15rem;
    }
}

.hierarchy-map-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 18px;
    box-shadow: 0 20px 50px rgba(30, 58, 95, 0.12);
    overflow: hidden;
}

.hierarchy-map-toolbar {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.75rem 1rem;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
}

.hierarchy-map-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
}

.hierarchy-map-dot:first-child {
    background: #ff6b6b;
}

.hierarchy-map-dot:nth-child(2) {
    background: #ffd166;
}

.hierarchy-map-dot:nth-child(3) {
    background: #06d6a0;
}

.hierarchy-map-toolbar-title {
    margin-left: auto;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    opacity: 0.9;
}

.hierarchy-map-body {
    padding: 1.25rem 1.25rem 1rem;
    background: linear-gradient(180deg, #fafbfc 0%, #fff 100%);
}

.hierarchy-tree-node {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
}

.hierarchy-tree-node--root {
    background: rgba(30, 58, 95, 0.06);
    border: 1px solid rgba(30, 58, 95, 0.1);
    margin-bottom: 0.5rem;
}

.hierarchy-tree-icon {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 8px;
    background: #fff;
    border: 1px solid var(--border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-accent);
    flex-shrink: 0;
    font-size: 0.85rem;
}

.hierarchy-tree-text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.hierarchy-tree-label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c757d;
}

.hierarchy-tree-value {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--brand-primary);
    line-height: 1.3;
}

.hierarchy-tree-branch {
    margin-left: 0.85rem;
    padding-left: 0.85rem;
    border-left: 2px solid rgba(30, 58, 95, 0.1);
}

.hierarchy-tree-branch--floors {
    margin-top: 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.hierarchy-floor-row {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 0.65rem 0.75rem;
}

.hierarchy-floor-row.is-current-floor {
    border-color: rgba(230, 126, 34, 0.45);
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.1);
}

.hierarchy-floor-head {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-secondary);
    margin-bottom: 0.55rem;
}

.hierarchy-floor-head i {
    color: var(--brand-accent);
}

.hierarchy-floor-units {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.hierarchy-unit-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 36px;
    padding: 0.25rem 0.55rem;
    border-radius: 8px;
    border: 1px solid var(--border);
    background: var(--surface);
    font-size: 0.82rem;
    font-weight: 700;
    color: #6c757d;
}

.hierarchy-unit-pill.is-done {
    background: rgba(39, 174, 96, 0.1);
    border-color: rgba(39, 174, 96, 0.35);
    color: var(--brand-success);
}

.hierarchy-unit-pill.is-active {
    background: rgba(230, 126, 34, 0.12);
    border-color: rgba(230, 126, 34, 0.4);
    color: #c06512;
}

.hierarchy-unit-pill.is-pending {
    background: #f8f9fa;
    color: #adb5bd;
}

.hierarchy-unit-pill.is-selected {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
    box-shadow: 0 4px 12px rgba(30, 58, 95, 0.25);
    transform: scale(1.04);
}

.hierarchy-unit-qr {
    font-size: 0.75rem;
    opacity: 0.95;
}

.hierarchy-map-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
}

.hierarchy-map-scan {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.hierarchy-map-scan > i {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.hierarchy-map-scan-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c757d;
}

.hierarchy-map-scan-value {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.text-brand-accent {
    color: var(--brand-accent) !important;
}

.landing-stats {
    background: var(--brand-primary);
    color: #fff;
}

.landing-stat-value {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 0.35rem;
}

.landing-stat-label {
    font-size: 0.9rem;
    opacity: 0.8;
    max-width: 14rem;
    margin: 0 auto;
}

.landing-cta {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-primary) 100%);
    color: #fff;
}

.landing-cta .btn-link {
    text-decoration: none;
    opacity: 0.9;
}

.landing-cta .btn-link:hover {
    opacity: 1;
    color: #fff;
}

/* Contact modal (legacy aliases) */
.app-modal-content {
    border: none;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 48px rgba(30, 58, 95, 0.2);
}

.app-modal-header {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    border-bottom: none;
    padding: 1.25rem 1.5rem;
}

.app-modal-header .btn-close {
    filter: invert(1);
    opacity: 0.85;
}

.app-modal-subtitle {
    font-size: 0.85rem;
    opacity: 0.85;
}

.app-modal-body {
    padding: 1.25rem 1.5rem;
}

.app-modal-footer {
    padding: 0.9rem 1.5rem 1.25rem;
    gap: 0.5rem;
}

.app-modal-success-icon {
    font-size: 3rem;
    color: var(--brand-success);
    line-height: 1;
}

.frontend-page-hero,
.contact-page-hero {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
}

.legal-document-lead {
    font-size: 1.05rem;
    line-height: 1.65;
}

.legal-page-hero {
    position: relative;
    overflow: hidden;
}

.legal-page-hero::after {
    content: '';
    position: absolute;
    inset: auto -10% -40% -10%;
    height: 70%;
    background: radial-gradient(circle at center, rgba(255, 255, 255, 0.14) 0%, transparent 70%);
    pointer-events: none;
}

.legal-page-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.22);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.legal-page-hero__date {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.92rem;
    opacity: 0.85;
}

.legal-page-body {
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

.legal-page-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 992px) {
    .legal-page-sidebar {
        position: sticky;
        top: 6rem;
    }
}

.legal-page-intro,
.legal-page-related,
.legal-page-toc,
.legal-page-help,
.legal-page-section,
.legal-page-footer {
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(30, 58, 95, 0.06);
}

.legal-page-intro {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    padding: 1.1rem 1.15rem;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.04) 0%, rgba(45, 90, 135, 0.08) 100%);
}

.legal-page-intro__icon {
    flex: 0 0 2.2rem;
    width: 2.2rem;
    height: 2.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
    font-size: 1rem;
}

.legal-page-intro__text {
    color: #475569;
    line-height: 1.65;
    font-size: 0.95rem;
}

.legal-page-intro__text a {
    color: var(--brand-primary);
    font-weight: 600;
    text-decoration: none;
}

.legal-page-intro__text a:hover {
    text-decoration: underline;
}

.legal-page-auth-banner {
    padding: 1.15rem 1.2rem;
    border: 1px solid rgba(45, 90, 135, 0.18);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.05) 0%, rgba(45, 90, 135, 0.1) 100%);
    box-shadow: 0 10px 30px rgba(30, 58, 95, 0.06);
}

.legal-page-auth-banner__title {
    margin: 0 0 0.35rem;
    font-size: 0.98rem;
    font-weight: 700;
    color: #0f172a;
}

.legal-page-auth-banner__text {
    margin: 0 0 0.85rem;
    color: #64748b;
    font-size: 0.9rem;
    line-height: 1.55;
}

.legal-page-section__body .legal-document-deflist-row dd,
.legal-page-section__body .legal-document-deflist-row dt {
    font-size: 0.98rem;
}

.legal-page-related,
.legal-page-toc,
.legal-page-help {
    padding: 1.15rem 1.2rem;
}

.legal-page-sidebar__title,
.legal-page-help__title {
    margin: 0 0 0.85rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}

.legal-page-related__links {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.legal-page-related__link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 0.75rem;
    border-radius: 12px;
    background: #f8fafc;
    color: #334155;
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 500;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.legal-page-related__link i {
    width: 1rem;
    color: var(--brand-primary);
    text-align: center;
}

.legal-page-related__link:hover {
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    transform: translateX(2px);
}

.legal-page-toc__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.legal-page-toc__list a {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    color: #475569;
    text-decoration: none;
    font-size: 0.9rem;
    line-height: 1.45;
    transition: background 0.15s ease, color 0.15s ease;
}

.legal-page-toc__list a:hover,
.legal-page-toc__list a.is-active {
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.legal-page-toc__num {
    flex: 0 0 auto;
    min-width: 1.7rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--brand-secondary);
    padding-top: 0.1rem;
}

.legal-page-help__text {
    color: #64748b;
    font-size: 0.92rem;
    line-height: 1.6;
    margin-bottom: 0.9rem;
}

.legal-page-content {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.legal-page-section {
    overflow: hidden;
}

.legal-page-section__head {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1.15rem 1.35rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.95);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.legal-page-section__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.4rem;
    height: 2.4rem;
    padding: 0 0.55rem;
    border-radius: 12px;
    background: var(--brand-primary);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.legal-page-section__title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #0f172a;
}

.legal-page-section__body {
    padding: 1.2rem 1.35rem 1.35rem;
}

.legal-page-section__body p,
.legal-page-section__body li {
    color: #334155;
    line-height: 1.75;
    font-size: 0.98rem;
}

.legal-page-section__body p:last-child {
    margin-bottom: 0;
}

.legal-page-section__body a {
    color: var(--brand-primary);
    font-weight: 600;
}

.legal-page-section__list {
    margin: 0;
    padding-left: 1.2rem;
}

.legal-page-section__list li + li {
    margin-top: 0.55rem;
}

.legal-page-section {
    scroll-margin-top: 6rem;
}

.legal-page-footer {
    margin-top: 1rem;
    padding: 1.15rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 768px) {
    .legal-page-footer {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

.legal-page-footer__label {
    color: #64748b;
    font-size: 0.88rem;
}

.legal-page-footer__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.legal-document-toc {
    padding: 1.25rem 1.5rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.05);
}

.legal-document-toc-list {
    columns: 1;
    padding-left: 1.25rem;
}

.legal-document-toc-list a {
    color: var(--brand-primary);
    text-decoration: none;
}

.legal-document-toc-list a:hover {
    text-decoration: underline;
}

.legal-document-section {
    margin-bottom: 2.5rem;
    scroll-margin-top: 6rem;
}

.legal-document-section h2 {
    margin-bottom: 1rem;
    color: var(--brand-primary);
}

.legal-document-section p,
.legal-document-section li {
    line-height: 1.7;
    color: #334155;
}

.legal-document-section ul {
    padding-left: 1.25rem;
}

.legal-document-section ul li + li {
    margin-top: 0.5rem;
}

.legal-document-deflist {
    margin: 0;
}

.legal-document-deflist-row {
    margin-bottom: 1rem;
}

.legal-document-deflist-row dt {
    font-weight: 600;
    color: #0f172a;
    margin-bottom: 0.25rem;
}

.legal-document-deflist-row dd {
    margin: 0;
    color: #334155;
    line-height: 1.7;
}

@media (min-width: 768px) {
    .legal-document-toc-list {
        columns: 2;
        column-gap: 2rem;
    }
}

.legal-document-table-wrap {
    margin: 1rem 0 1.25rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 12px;
    overflow: hidden;
}

.legal-document-table {
    margin-bottom: 0;
    font-size: 0.92rem;
}

.legal-document-table thead th {
    background: #f8fafc;
    color: #0f172a;
    font-weight: 600;
    white-space: nowrap;
}

.legal-document-table td,
.legal-document-table th {
    padding: 0.85rem 1rem;
    vertical-align: top;
}

.faq-page-body {
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

.faq-page-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.22);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.faq-page-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

@media (min-width: 992px) {
    .faq-page-sidebar {
        position: sticky;
        top: 6rem;
    }
}

.faq-page-sidebar__lead {
    margin: 0;
    padding: 1.1rem 1.15rem;
    border-radius: 18px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    background: #fff;
    box-shadow: 0 10px 30px rgba(30, 58, 95, 0.06);
    color: #64748b;
    line-height: 1.65;
    font-size: 0.95rem;
}

.faq-page-jump {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem;
    border-radius: 18px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    background: #fff;
    box-shadow: 0 10px 30px rgba(30, 58, 95, 0.06);
}

.faq-page-jump__link {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    color: #475569;
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 500;
    transition: background 0.15s ease, color 0.15s ease;
}

.faq-page-jump__link i {
    width: 1rem;
    color: var(--brand-primary);
    text-align: center;
}

.faq-page-jump__link:hover {
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.faq-page-sidebar__cta {
    padding: 1.1rem 1.15rem;
    border-radius: 18px;
    border: 1px solid rgba(45, 90, 135, 0.18);
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.04) 0%, rgba(45, 90, 135, 0.1) 100%);
    box-shadow: 0 10px 30px rgba(30, 58, 95, 0.06);
}

.faq-page-sidebar__cta p {
    color: #0f172a;
    font-size: 0.95rem;
}

.faq-page-group {
    scroll-margin-top: 6rem;
}

.faq-page-group + .faq-page-group {
    margin-top: 2rem;
}

.faq-page-group__head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    color: var(--brand-primary);
}

.faq-page-group__head i {
    width: 1.25rem;
    text-align: center;
    font-size: 1.1rem;
}

.faq-page-accordion {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.faq-page-accordion__item {
    overflow: hidden;
    border: 1px solid rgba(226, 232, 240, 0.95) !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.05);
}

.faq-page-accordion__item .accordion-button {
    padding: 1rem 1.15rem;
    font-size: 0.98rem;
    font-weight: 600;
    color: #0f172a;
    background: #fff;
    box-shadow: none;
}

.faq-page-accordion__item .accordion-button:not(.collapsed) {
    color: var(--brand-primary);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: none;
}

.faq-page-accordion__item .accordion-button:focus {
    box-shadow: 0 0 0 0.2rem rgba(30, 58, 95, 0.12);
}

.faq-page-accordion__body {
    padding: 0 1.15rem 1.15rem;
    color: #334155;
    line-height: 1.75;
    font-size: 0.96rem;
}

.faq-page-accordion__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(226, 232, 240, 0.95);
}

.faq-page-accordion__link {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
}

.faq-page-accordion__link:hover {
    background: rgba(30, 58, 95, 0.14);
    color: var(--brand-primary);
}

.dc-provider-invite-body {
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}

.dc-provider-invite-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.22);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dc-provider-invite-card {
    max-width: 960px;
    margin: 0 auto;
    padding: 1.5rem;
    border-radius: 20px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    background: #fff;
    box-shadow: 0 12px 40px rgba(30, 58, 95, 0.08);
}

.dc-provider-invite-card__rep {
    margin-bottom: 1.5rem;
    padding: 1rem 1.15rem;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.05) 0%, rgba(45, 90, 135, 0.1) 100%);
    border: 1px solid rgba(45, 90, 135, 0.14);
}

.dc-provider-invite-card__rep-label {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.dc-provider-invite-card__rep-name {
    font-size: 1.05rem;
    font-weight: 600;
    color: #0f172a;
}

.dc-provider-invite-card__rep-email {
    color: #64748b;
    font-size: 0.92rem;
}

.dc-provider-onboarding-section {
    padding-top: 1.5rem;
    margin-top: 1.5rem;
    border-top: 1px solid rgba(226, 232, 240, 0.95);
}

.dc-provider-onboarding-section:first-of-type {
    padding-top: 0;
    margin-top: 0;
    border-top: 0;
}

.dc-provider-onboarding-section__head {
    margin-bottom: 1rem;
}

.dc-provider-onboarding-consent {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(226, 232, 240, 0.95);
}

.dc-provider-onboarding-actions {
    margin-top: 1.5rem;
    display: flex;
    justify-content: flex-end;
}

.cookie-consent {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1080;
    padding: 1rem 0 calc(1rem + env(safe-area-inset-bottom, 0px));
    background: rgba(15, 23, 42, 0.96);
    color: #f8fafc;
    box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.28);
    transform: translateY(110%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.28s ease, opacity 0.28s ease;
}

.cookie-consent.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.cookie-consent__inner {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cookie-consent__title {
    color: #fff;
    font-weight: 600;
}

.cookie-consent__text {
    color: rgba(248, 250, 252, 0.88);
    line-height: 1.6;
}

.cookie-consent__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.cookie-consent__read-more {
    color: #cbd5e1;
    text-decoration: none;
    padding-left: 0;
    padding-right: 0.75rem;
}

.cookie-consent__read-more:hover {
    color: #fff;
}

body.cookie-consent-open .floating-knowledge-chat-toggle {
    bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 768px) {
    .cookie-consent__inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .cookie-consent__copy {
        flex: 1 1 auto;
        padding-right: 1.5rem;
    }

    .cookie-consent__actions {
        flex: 0 0 auto;
        justify-content: flex-end;
    }
}

.public-projects-filters {
    padding: 1.25rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
}

.public-projects-filters .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.public-projects-filters__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.public-projects-filters__field {
    flex: 1 1 12rem;
    min-width: 10rem;
}

.public-projects-filters__field .app-dropdown--form .app-dropdown__toggle {
    min-height: 3rem;
    border-radius: 12px;
    border-color: rgba(226, 232, 240, 0.95);
    font-size: 1rem;
    background: #fff;
}

.public-projects-filters__field .app-dropdown--form .app-dropdown__toggle:hover,
.public-projects-filters__field .app-dropdown--form .app-dropdown__toggle:focus,
.public-projects-filters__field .app-dropdown--form .app-dropdown__toggle.show {
    border-color: rgba(45, 90, 135, 0.45);
    box-shadow: 0 0 0 0.2rem rgba(30, 58, 95, 0.1);
}

.public-projects-filters__field .app-dropdown--form .app-dropdown__menu {
    border-radius: 12px;
}

.public-projects-filters__actions {
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.5rem;
    width: auto;
    flex: 0 0 auto;
}

.public-projects-filters__actions .btn {
    white-space: nowrap;
}

.public-opportunities-empty-card {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(226, 232, 240, 0.85);
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 12px 32px rgba(30, 58, 95, 0.08);
    overflow: hidden;
}

.public-opportunities-empty-card__accent {
    height: 4px;
    background: linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-secondary) 55%, var(--brand-accent) 100%);
}

.public-opportunities-empty-card__body {
    padding: 2.5rem 2rem 1.75rem;
}

.public-opportunities-empty-card__icon {
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 1.5rem;
}

.public-opportunities-empty-card__title {
    margin-bottom: 0.5rem;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.public-opportunities-empty-card__lead {
    margin-bottom: 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    color: #334155;
}

.public-opportunities-empty-card__text {
    margin: 0 auto 1.5rem;
    max-width: 36rem;
    font-size: 0.95rem;
    line-height: 1.55;
    color: #64748b;
}

.public-opportunities-empty-card__tips {
    display: grid;
    gap: 0.85rem;
    max-width: 34rem;
    margin: 0 auto;
    text-align: left;
}

.public-opportunities-empty-card__tips li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(226, 232, 240, 0.9);
    border-radius: 12px;
    background: rgba(248, 250, 252, 0.85);
    font-size: 0.9rem;
    line-height: 1.45;
    color: #475569;
}

.public-opportunities-empty-card__tip-icon {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.85rem;
}

.public-opportunities-empty-card__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    padding: 1.25rem 2rem 2rem;
    border-top: 1px solid rgba(226, 232, 240, 0.85);
    background: rgba(248, 250, 252, 0.55);
}

@media (max-width: 575.98px) {
    .public-opportunities-empty-card__body {
        padding: 2rem 1.25rem 1.5rem;
    }

    .public-opportunities-empty-card__footer {
        padding: 1rem 1.25rem 1.5rem;
    }

    .public-opportunities-empty-card__footer .btn {
        width: 100%;
    }
}

.public-listing-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 0.5rem;
}

.public-listing-pagination__summary {
    font-size: 0.875rem;
}

.public-listing-pagination__nav .pagination {
    margin-bottom: 0;
    gap: 0.35rem;
}

.public-listing-pagination__nav .page-link {
    min-width: 2.35rem;
    text-align: center;
    border-radius: 8px;
    color: var(--brand-primary);
    border-color: rgba(226, 232, 240, 0.95);
}

.public-listing-pagination__nav .page-link:hover {
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.05);
    border-color: rgba(45, 90, 135, 0.22);
}

.public-listing-pagination__nav .page-item.active .page-link {
    background: var(--brand-accent);
    border-color: var(--brand-accent);
    color: #fff;
}

.public-listing-pagination__nav .page-item.disabled .page-link {
    color: #94a3b8;
}

@media (max-width: 575.98px) {
    .public-listing-pagination {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }

.public-listing-pagination__nav .pagination {
    justify-content: center;
    }
}

.public-opportunity-hero__main {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-top: 0.25rem;
}

.public-opportunity-hero__icon {
    width: 4rem;
    height: 4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    font-size: 1.35rem;
    flex-shrink: 0;
}

.public-opportunity-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.65rem;
}

.public-opportunity-hero__pill,
.public-opportunity-hero__meta-item,
.public-opportunity-hero__status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: #fff;
    font-size: 0.84rem;
    font-weight: 600;
}

.public-opportunity-hero__status {
    background: rgba(255, 255, 255, 0.2);
}

.public-opportunity-hero__comments-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.3rem 0.8rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    font-size: 0.84rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.public-opportunity-hero__comments-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.4);
    color: #fff;
}

.public-opportunity-hero__comments-count,
.public-opportunity-hero__comments-btn .subcontract-opportunity-comments-open-button__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.22);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
}

.subcontract-opportunity-comments-open-button__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.2rem;
    height: 1.2rem;
    margin-left: 0.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
}

.subcontract-opportunity-comments-offcanvas {
    width: min(100vw, 28rem);
}

.subcontract-opportunity-comments-offcanvas__subtitle {
    font-size: 0.84rem;
    color: #64748b;
}

.subcontract-opportunity-comments-offcanvas__list {
    overflow-y: auto;
    padding: 1rem;
}

.subcontract-opportunity-comments-offcanvas__loading,
.subcontract-opportunity-comments-offcanvas__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    min-height: 12rem;
    padding: 1.5rem 1rem;
    text-align: center;
    color: #64748b;
}

.subcontract-opportunity-comments-offcanvas__empty i {
    font-size: 1.5rem;
    color: #94a3b8;
}

.subcontract-opportunity-comments-offcanvas__composer {
    padding: 1rem;
    background: rgba(248, 250, 252, 0.95);
}

.subcontract-opportunity-comment {
    padding: 0.95rem 0;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.subcontract-opportunity-comment:last-child {
    border-bottom: 0;
}

.subcontract-opportunity-comment__author {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-bottom: 0.55rem;
}

.subcontract-opportunity-comment__avatar {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 700;
    flex-shrink: 0;
}

.subcontract-opportunity-comment__name {
    font-size: 0.88rem;
    font-weight: 700;
    color: #0f172a;
}

.subcontract-opportunity-comment__badge {
    display: inline-flex;
    align-items: center;
    margin-left: 0.35rem;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    vertical-align: middle;
}

.subcontract-opportunity-comment__badge--poster {
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.subcontract-opportunity-comment__badge--question {
    display: inline-flex;
    margin-bottom: 0.45rem;
    background: rgba(245, 158, 11, 0.14);
    color: #b45309;
}

.subcontract-opportunity-comment__body {
    font-size: 0.9rem;
    line-height: 1.55;
    color: #334155;
    white-space: normal;
}

.subcontract-opportunity-comment__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    margin-top: 0.55rem;
}

.subcontract-opportunity-comment__time {
    font-size: 0.78rem;
    color: #94a3b8;
}

.subcontract-opportunity-comment__action {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.subcontract-opportunity-comment__action:hover,
.subcontract-opportunity-comment__action.is-active {
    color: var(--brand-primary);
}

.subcontract-opportunity-comment__reply-slot {
    margin-top: 0.75rem;
}

.subcontract-opportunity-comment__replies {
    margin-top: 0.75rem;
    padding-left: 0.85rem;
    border-left: 2px solid rgba(226, 232, 240, 0.95);
}

.subcontract-opportunity-comment--reply {
    padding: 0.75rem 0 0;
    border-bottom: 0;
}

.public-opportunity-detail-card {
    border: 1px solid rgba(226, 232, 240, 0.85);
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
    overflow: hidden;
}

.public-opportunity-detail-card__head {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.25rem 1.35rem 0.35rem;
}

.public-opportunity-detail-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    flex-shrink: 0;
}

.public-opportunity-detail-card__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
}

.public-opportunity-detail-card__lead {
    font-size: 0.875rem;
    color: #64748b;
}

.public-opportunity-detail-card__body {
    padding: 0.35rem 1.35rem 1.35rem 4.7rem;
}

.public-opportunity-detail-card__text {
    font-size: 0.95rem;
    line-height: 1.65;
    color: #334155;
}

.public-opportunity-criteria {
    display: grid;
    gap: 0.85rem;
}

.public-opportunity-criteria__item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(226, 232, 240, 0.9);
    border-radius: 14px;
    background: rgba(248, 250, 252, 0.85);
}

.public-opportunity-criteria__icon {
    color: var(--brand-accent);
    font-size: 1rem;
    line-height: 1.4;
    flex-shrink: 0;
}

.public-opportunity-criteria__title {
    font-size: 0.92rem;
    font-weight: 700;
    color: #0f172a;
}

.public-opportunity-criteria__required {
    margin-left: 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--brand-accent);
}

.public-opportunity-criteria__description {
    margin-top: 0.25rem;
    font-size: 0.84rem;
    line-height: 1.5;
    color: #64748b;
}

.public-opportunity-files {
    display: grid;
    gap: 0.75rem;
}

.public-opportunity-files__item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(226, 232, 240, 0.9);
    border-radius: 14px;
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.public-opportunity-files__item:hover {
    border-color: rgba(45, 90, 135, 0.22);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
    color: inherit;
}

.public-opportunity-files__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.public-opportunity-files__body {
    min-width: 0;
    flex: 1;
}

.public-opportunity-files__name {
    display: block;
    font-weight: 600;
    color: #0f172a;
    word-break: break-word;
}

.public-opportunity-files__meta {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.8125rem;
    color: #64748b;
}

.public-opportunity-files__action {
    flex-shrink: 0;
    color: #94a3b8;
    font-size: 0.85rem;
}

.public-opportunity-sidebar {
    position: sticky;
    top: 6rem;
}

.public-opportunity-sidebar__card {
    padding: 1.35rem 1.4rem;
    border: 1px solid rgba(226, 232, 240, 0.85);
    border-radius: 20px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.07);
}

.public-opportunity-sidebar__card + .public-opportunity-sidebar__card {
    margin-top: 1rem;
}

.public-opportunity-sidebar__card--apply {
    border-color: rgba(45, 90, 135, 0.18);
}

.public-opportunity-sidebar__eyebrow {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.public-opportunity-sidebar__title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
}

.public-opportunity-sidebar__contractor {
    font-size: 0.875rem;
    color: #64748b;
}

.public-opportunity-sidebar__facts {
    display: grid;
    gap: 0.75rem;
    margin: 1rem 0 1.15rem;
}

.public-opportunity-sidebar__fact {
    display: grid;
    grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
    gap: 0.75rem;
    align-items: start;
}

.public-opportunity-sidebar__fact dt {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #64748b;
}

.public-opportunity-sidebar__fact dd {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: #0f172a;
}

.public-opportunity-related {
    display: grid;
    gap: 0.65rem;
}

.public-opportunity-related__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid rgba(226, 232, 240, 0.9);
    border-radius: 14px;
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.public-opportunity-related__item:hover {
    border-color: rgba(45, 90, 135, 0.22);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
    color: inherit;
}

.public-opportunity-related__content {
    min-width: 0;
    flex: 1;
    display: grid;
    gap: 0.15rem;
}

.public-opportunity-related__trade {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--brand-accent);
}

.public-opportunity-related__title {
    font-size: 0.92rem;
    font-weight: 700;
    color: #0f172a;
}

.public-opportunity-related__meta {
    font-size: 0.78rem;
    color: #64748b;
}

.public-opportunity-related__status {
    font-size: 0.75rem;
    font-weight: 600;
    color: #475569;
}

.public-opportunity-related__arrow {
    flex-shrink: 0;
    color: #94a3b8;
    font-size: 0.8rem;
    transition: transform 0.2s ease, color 0.2s ease;
}

.public-opportunity-related__item:hover .public-opportunity-related__arrow {
    color: var(--brand-primary);
    transform: translateX(2px);
}

.public-opportunity-related__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.65rem;
    padding: 1.25rem 0.75rem;
    text-align: center;
    color: #64748b;
    font-size: 0.875rem;
}

.public-opportunity-related__empty i {
    font-size: 1.35rem;
    color: #94a3b8;
}

.public-opportunity-share__lead {
    margin-top: 0.35rem;
    font-size: 0.84rem;
    line-height: 1.45;
    color: #64748b;
}

.public-opportunity-share {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

.public-opportunity-share__button {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 2.85rem;
    padding: 0.65rem 0.8rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 14px;
    background: #fff;
    color: #0f172a;
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 600;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

button.public-opportunity-share__button {
    width: 100%;
    text-align: left;
}

.public-opportunity-share__button:hover {
    border-color: rgba(45, 90, 135, 0.22);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
    color: #0f172a;
}

.public-opportunity-share__button-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.95rem;
}

.public-opportunity-share__button-label {
    min-width: 0;
}

.public-opportunity-share__button--facebook .public-opportunity-share__button-icon {
    background: rgba(24, 119, 242, 0.12);
    color: #1877f2;
}

.public-opportunity-share__button--whatsapp .public-opportunity-share__button-icon {
    background: rgba(37, 211, 102, 0.14);
    color: #1fa855;
}

.public-opportunity-share__button--x .public-opportunity-share__button-icon {
    background: rgba(15, 23, 42, 0.08);
    color: #0f172a;
}

.public-opportunity-share__button--email .public-opportunity-share__button-icon {
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.public-opportunity-share__button--copy .public-opportunity-share__button-icon {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.public-opportunity-share__button--copy {
    grid-column: 1 / -1;
}

@media (max-width: 991.98px) {
    .public-opportunity-sidebar {
        position: static;
    }

    .public-opportunity-detail-card__body {
        padding-left: 1.35rem;
    }
}

@media (max-width: 575.98px) {
    .public-opportunity-hero__main {
        flex-direction: column;
    }

    .public-opportunity-sidebar__fact {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
}

.public-project-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 0;
    border: 1px solid rgba(226, 232, 240, 0.85);
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 12px 32px rgba(30, 58, 95, 0.08);
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.public-project-card:hover {
    border-color: rgba(45, 90, 135, 0.22);
    box-shadow:
        0 2px 4px rgba(15, 23, 42, 0.04),
        0 20px 40px rgba(30, 58, 95, 0.12);
    transform: translateY(-4px);
}

.public-project-card__accent {
    height: 4px;
    background: linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-secondary) 55%, var(--brand-accent) 100%);
}

.public-project-card__header {
    padding: 1.15rem 1.25rem 1rem;
}

.public-project-card__header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.public-project-card__location-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    max-width: 70%;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
}

.public-project-card__location-pill span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-project-card__title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
    margin: 0 0 0.35rem;
    letter-spacing: -0.01em;
}

.public-project-card__title-link {
    color: inherit;
    text-decoration: none;
}

.public-project-card__title-link:hover {
    color: var(--brand-secondary);
}

.public-project-card__address {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.5;
    color: #64748b;
}

.public-project-card__status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.public-project-card__status-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: currentColor;
}

.public-project-card__status--active {
    background: rgba(34, 197, 94, 0.12);
    color: #15803d;
}

.public-project-card__status--ended {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.public-project-card__status--canceled {
    background: rgba(239, 68, 68, 0.12);
    color: #b91c1c;
}

.public-project-card__body {
    flex: 1 1 auto;
    padding: 0 1.25rem 1.15rem;
}

.public-project-card__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 0.85rem;
}

.public-project-card__stat {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    min-width: 0;
    padding: 0.7rem 0.75rem;
    border-radius: 14px;
    background: rgba(248, 250, 252, 0.95);
    border: 1px solid rgba(226, 232, 240, 0.85);
}

.public-project-card__stat-icon {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.82rem;
    flex-shrink: 0;
}

.public-project-card__stat-content {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.public-project-card__stat-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
}

.public-project-card__stat-value {
    font-size: 0.84rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}

.public-project-card__template {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.7rem;
    border-radius: 10px;
    background: rgba(230, 126, 34, 0.1);
    color: #9a3412;
    font-size: 0.8rem;
    font-weight: 600;
}

.public-project-card__contractor {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
}

.public-project-card__contractor-avatar {
    display: inline-flex;
    text-decoration: none;
    color: inherit;
    transition: transform 0.15s ease;
}

.public-project-card__contractor-avatar:hover,
.public-project-card__contractor-avatar:focus-visible {
    transform: translateY(-2px);
}

.public-project-card__contractor-avatar-circle {
    margin-left: 0;
}

.public-project-card__contractor-label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
}

.public-project-card__contractor-link,
.public-project-about a.public-project-card__contractor-link {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--brand-primary);
    text-decoration: none;
}

.public-project-card__contractor-link:hover {
    color: var(--brand-secondary);
}

.public-project-card__contractor-name {
    font-size: 0.88rem;
    font-weight: 700;
    color: #0f172a;
}

.public-project-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: auto;
    padding: 0.9rem 1.25rem;
    border-top: 1px solid rgba(226, 232, 240, 0.85);
    background: rgba(248, 250, 252, 0.75);
    backdrop-filter: blur(6px);
}

.public-project-card__footer-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    white-space: nowrap;
}

.public-project-card__footer-label i {
    color: var(--brand-primary);
}

.public-project-card__footer-content {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.45rem;
    min-width: 0;
}

.public-project-card__footer-count {
    font-size: 0.76rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
}

.public-project-card__footer-empty {
    font-size: 0.8rem;
    color: #94a3b8;
}

.public-project-card__meta {
    display: grid;
    gap: 0.65rem;
    margin: 0;
}

.public-project-card__meta-row {
    display: grid;
    grid-template-columns: minmax(6rem, 34%) 1fr;
    gap: 0.65rem;
    align-items: center;
}

.public-project-card__meta-row dt {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
}

.public-project-card__meta-row dd {
    margin: 0;
    font-size: 0.9rem;
    color: #0f172a;
}

.public-project-card__location {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: #64748b;
}

.public-subcontractor-hero__back {
    display: inline-flex;
    align-items: center;
    color: rgba(255, 255, 255, 0.88);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.public-subcontractor-hero__back:hover {
    color: #fff;
}

.public-project-hero__main {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.public-project-hero__icon {
    width: 4rem;
    height: 4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    font-size: 1.35rem;
    flex-shrink: 0;
}

.public-project-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.45rem;
}

.public-project-hero__location {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.84rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
}

.public-project-about {
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(226, 232, 240, 0.85);
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
}

.public-project-about__title {
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 0.85rem;
}

.public-project-team__head {
    margin-bottom: 1rem;
}

.public-project-team__tabs {
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.public-project-team__tabs .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 999px;
    padding: 0.45rem 0.9rem;
    font-size: 0.84rem;
    font-weight: 600;
    color: #475569;
    background: #fff;
}

.public-project-team__tabs .nav-link:hover {
    color: var(--brand-primary);
    border-color: rgba(30, 58, 95, 0.18);
}

.public-project-team__tabs .nav-link.active {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.public-project-team__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.08);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
}

.public-project-team__tabs .nav-link.active .public-project-team__count {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.public-project-team-card {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    height: 100%;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.05);
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.public-project-team-card:hover {
    border-color: rgba(45, 90, 135, 0.22);
    box-shadow: 0 10px 24px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
    color: inherit;
}

.public-project-team-card--static {
    cursor: default;
}

.public-project-team-card__avatar {
    width: 2.6rem;
    height: 2.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 700;
    flex-shrink: 0;
}

.public-project-team-card__avatar--photo {
    object-fit: cover;
    padding: 0;
    background: #fff;
    border: 2px solid rgba(30, 58, 95, 0.12);
}

.public-project-team-card__body {
    min-width: 0;
    flex: 1 1 auto;
}

.public-project-team-card__name {
    font-size: 0.92rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}

.public-project-team-card__trade {
    font-size: 0.78rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.public-project-team-card--professional {
    align-items: flex-start;
}

.public-project-team-card__company {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.82rem;
    color: #475569;
    margin-top: 0.15rem;
}

.public-project-team-card__company i {
    color: #94a3b8;
}

.public-project-team-card__role {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #94a3b8;
    margin-top: 0.25rem;
}

.public-project-team-card__professions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.55rem;
}

.public-project-team-card__profession {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.18rem 0.45rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: #334155;
    font-size: 0.72rem;
    font-weight: 600;
}

.public-project-team-card__profession i {
    color: var(--brand-primary);
    font-size: 0.68rem;
}

.public-project-team-card__arrow {
    color: #94a3b8;
    font-size: 0.82rem;
    flex-shrink: 0;
}

.public-subcontractor-hero__main {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.public-subcontractor-hero__avatar {
    width: 4rem;
    height: 4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.public-subcontractor-hero__avatar--photo {
    object-fit: cover;
    padding: 0;
    background: #fff;
    border: 3px solid rgba(255, 255, 255, 0.35);
}

.public-subcontractor-stat {
    padding: 1rem 1.1rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.05);
}

.public-subcontractor-stat__value {
    font-size: 1.5rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.2;
}

.public-subcontractor-stat__label {
    font-size: 0.82rem;
    color: #64748b;
    margin-top: 0.2rem;
}

.public-subcontractor-projects__head {
    margin-bottom: 1rem;
}

.public-subcontractor-projects__tabs {
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.public-subcontractor-projects__tabs .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 999px;
    padding: 0.45rem 0.9rem;
    font-size: 0.84rem;
    font-weight: 600;
    color: #475569;
    background: #fff;
}

.public-subcontractor-projects__tabs .nav-link:hover {
    color: var(--brand-primary);
    border-color: rgba(30, 58, 95, 0.18);
}

.public-subcontractor-projects__tabs .nav-link.active {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.public-subcontractor-projects__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.08);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
}

.public-subcontractor-projects__tabs .nav-link.active .public-subcontractor-projects__count {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.public-subcontractor-projects__empty {
    padding: 2rem 1rem;
    border: 1px dashed rgba(226, 232, 240, 0.95);
    border-radius: 14px;
    text-align: center;
    color: #64748b;
    background: rgba(248, 250, 252, 0.8);
}

.public-subcontractor-about {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(226, 232, 240, 0.85);
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
}

.public-subcontractor-about__title {
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 0.55rem;
}

.public-subcontractor-about__description {
    font-size: 0.92rem;
    line-height: 1.6;
    color: #475569;
    max-width: 52rem;
}

.public-subcontractor-about__professions {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
    max-width: 52rem;
}

.public-subcontractor-about__profession-group + .public-subcontractor-about__profession-group {
    margin-top: 0.15rem;
}

.public-subcontractor-about__profession-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.45rem;
}

.public-subcontractor-about__trades {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.public-subcontractor-about__trade {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.76rem;
    font-weight: 700;
}

.public-subcontractor-about__trade--additional {
    background: rgba(230, 126, 34, 0.1);
    color: #9a3412;
}

.public-subcontractor-about__contact {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    min-width: min(100%, 16rem);
}

.public-subcontractor-about__contact-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.75rem;
    border-radius: 12px;
    border: 1px solid rgba(226, 232, 240, 0.9);
    background: #fff;
    color: #334155;
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 600;
}

.public-subcontractor-about__contact-item:hover {
    border-color: rgba(45, 90, 135, 0.28);
    color: var(--brand-primary);
}

.public-subcontractor-about__contact-item--static {
    cursor: default;
}

.public-subcontractor-about__contact-item--static:hover {
    border-color: rgba(226, 232, 240, 0.9);
    color: #334155;
}

.public-subcontractor-about__contact-copy {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.public-subcontractor-about__contact-label {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
}

.public-subcontractor-about__contact-value {
    font-size: 0.84rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.35;
    word-break: break-word;
}

.public-subcontractor-about__contact-item > i {
    flex: 0 0 auto;
    width: 1rem;
    text-align: center;
    color: var(--brand-accent);
}

.public-subcontractor-project-card__trade {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.55rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
}

.public-subcontractor-project-card__feedback {
    padding: 0.95rem 1.25rem 1.15rem;
    border-top: 1px solid rgba(226, 232, 240, 0.85);
    background: rgba(248, 250, 252, 0.85);
}

.public-subcontractor-project-card__feedback-head {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 0.8rem;
}

.public-subcontractor-project-card__feedback-head > i {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    flex-shrink: 0;
}

.public-subcontractor-project-card__feedback-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: #0f172a;
}

.public-subcontractor-project-card__feedback-meta {
    font-size: 0.76rem;
    color: #64748b;
    margin-top: 0.1rem;
}

.public-subcontractor-project-card__feedback-section + .public-subcontractor-project-card__feedback-section {
    margin-top: 0.75rem;
}

.public-subcontractor-project-card__feedback-label {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.25rem;
}

.public-subcontractor-project-card__feedback-text {
    margin: 0.35rem 0 0;
    font-size: 0.84rem;
    line-height: 1.5;
    color: #334155;
    white-space: pre-wrap;
}

.public-subcontractor-project-card {
    margin-top: 0;
}

.public-subcontractor-project-card .public-project-card__title {
    font-size: 1.05rem;
}

.public-subcontractor-feedback__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.public-subcontractor-feedback__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    color: #64748b;
    font-size: 0.9rem;
}

.public-subcontractor-feedback__average {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 600;
    color: #334155;
}

.public-subcontractor-feedback__average .support-star-rating i {
    font-size: 0.95rem;
}

.public-subcontractor-feedback__nav {
    display: flex;
    gap: 0.5rem;
    flex-shrink: 0;
}

.public-subcontractor-feedback__nav-btn {
    width: 2.25rem;
    height: 2.25rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 999px;
    background: #fff;
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.public-subcontractor-feedback__nav-btn:hover {
    border-color: rgba(30, 58, 95, 0.25);
    background: rgba(30, 58, 95, 0.04);
}

.public-subcontractor-feedback__track {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding-bottom: 0.25rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.public-subcontractor-feedback-card {
    flex: 0 0 min(100%, 22rem);
    scroll-snap-align: start;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 14px;
    background: #fff;
    padding: 1rem 1.1rem;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
}

.public-subcontractor-feedback-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.public-subcontractor-feedback-card__date {
    font-size: 0.78rem;
    color: #94a3b8;
    white-space: nowrap;
}

.public-subcontractor-feedback-card__message {
    margin: 0 0 0.85rem;
    color: #334155;
    font-size: 0.92rem;
    line-height: 1.55;
}

.public-subcontractor-feedback-card__meta {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.78rem;
    color: #64748b;
}

.hero-section {
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    padding: 4rem 0;
}

.feature-icon {
    width: 56px;
    height: 56px;
    background: rgba(230, 126, 34, 0.15);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--brand-accent);
}

/* Catalog task list */
.catalog-task-list {
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
}

.catalog-task-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--border);
    background: #fff;
}

.catalog-task-item:last-child {
    border-bottom: none;
}

.catalog-task-item:nth-child(even) {
    background: rgba(30, 58, 95, 0.02);
}

.catalog-task-item__main {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.catalog-task-item__name {
    font-weight: 600;
    color: var(--brand-primary);
    font-size: 0.9rem;
}

.catalog-task-item__meta {
    font-size: 0.78rem;
    color: #64748b;
}

.catalog-task-item__badge {
    display: inline-block;
    margin-left: 0.35rem;
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.catalog-task-empty {
    padding: 1rem 0.85rem;
    text-align: center;
}

#catalogTaskModal .modal-content {
    border-radius: 16px;
}

#catalogTaskModal .modal-body {
    padding-top: 0.25rem;
}

/* Celebration */
.celebration-check {
    font-size: 4rem;
    color: var(--brand-success);
}

/* SweetAlert2 toasts & confirmations */
.swal2-container {
    z-index: 2000;
}

.app-toast.swal2-popup {
    padding: 0.65rem 1rem;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.14);
    font-size: 0.875rem;
}

.app-toast .app-toast__title {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--brand-secondary);
    margin: 0;
}

.app-toast .swal2-icon {
    width: 1.75rem;
    height: 1.75rem;
    margin: 0 0.65rem 0 0;
    border-width: 2px;
}

.app-toast .swal2-icon .swal2-icon-content {
    font-size: 1rem;
}

.app-confirm.swal2-popup {
    border-radius: 12px;
    padding: 1.25rem 1.35rem 1.1rem;
    width: min(100%, 24rem);
}

.app-confirm .swal2-title {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.app-confirm .swal2-html-container,
.app-confirm .swal2-content {
    font-size: 0.9rem;
    color: #64748b;
}

.app-confirm__actions.swal2-actions {
    gap: 0.5rem;
    margin-top: 1.1rem;
}

.app-confirm .swal2-icon {
    border-color: var(--brand-accent);
    color: var(--brand-accent);
}

.worker-invite-alert {
    background: rgba(230, 126, 34, 0.08);
    border: 1px solid rgba(230, 126, 34, 0.35);
    color: var(--brand-primary);
}

.worker-invite-alert__icon {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.15);
    color: var(--brand-accent);
    font-size: 1.1rem;
}

.worker-project-overview__document-alert {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(220, 53, 69, 0.28);
    border-radius: 12px;
    background: rgba(220, 53, 69, 0.08);
    color: #842029;
}

@media (min-width: 768px) {
    .worker-project-overview__document-alert {
        flex-direction: row;
        align-items: center;
    }
}

.worker-project-overview__document-alert-icon {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(220, 53, 69, 0.14);
    color: #b02a37;
    flex-shrink: 0;
}

.worker-project-overview__document-alert-title {
    font-size: 0.88rem;
    font-weight: 700;
}

.worker-project-overview__document-alert-text {
    font-size: 0.82rem;
    color: #842029;
}

.worker-project-overview__document-alert-btn {
    border-color: rgba(220, 53, 69, 0.35);
    background: #fff;
    color: #b02a37;
    font-weight: 700;
}

.worker-project-overview__document-alert-btn:hover {
    border-color: #b02a37;
    background: #b02a37;
    color: #fff;
}

.rfid-signal-status {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    vertical-align: middle;
}

.rfid-signal-status__icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    font-size: 0.78rem;
    flex-shrink: 0;
}

.rfid-signal-status__slash {
    position: absolute;
    font-size: 0.95rem;
    opacity: 0.95;
}

.rfid-signal-status__label {
    font-size: 0.8rem;
    font-weight: 650;
    line-height: 1.2;
}

.rfid-signal-status--active .rfid-signal-status__icon {
    background: rgba(39, 174, 96, 0.14);
    color: #1e7a45;
    box-shadow: inset 0 0 0 1px rgba(39, 174, 96, 0.22);
}

.rfid-signal-status--active .rfid-signal-status__label {
    color: #1e7a45;
}

.rfid-signal-status--inactive .rfid-signal-status__icon {
    background: rgba(220, 53, 69, 0.12);
    color: #b02a37;
    box-shadow: inset 0 0 0 1px rgba(220, 53, 69, 0.22);
}

.rfid-signal-status--inactive .rfid-signal-status__label {
    color: #b02a37;
}

.rfid-signal-status--none .rfid-signal-status__icon {
    background: rgba(148, 163, 184, 0.16);
    color: #64748b;
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.28);
}

.rfid-signal-status--none .rfid-signal-status__label {
    color: #64748b;
}

.rfid-signal-status--compact .rfid-signal-status__icon {
    width: 1.65rem;
    height: 1.65rem;
    font-size: 0.72rem;
}

.rfid-signal-status--banner .rfid-signal-status__icon {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1rem;
}

.rfid-signal-status--compact {
    position: relative;
}

.rfid-signal-status--compact[data-tooltip]::before,
.rfid-signal-status--compact[data-tooltip]::after {
    position: absolute;
    left: 50%;
    z-index: 40;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition:
        opacity 0.18s ease,
        transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0.18s ease;
}

.rfid-signal-status--compact[data-tooltip]::after {
    content: attr(data-tooltip);
    bottom: calc(100% + 0.55rem);
    transform: translate(-50%, 0.35rem) scale(0.94);
    min-width: max-content;
    max-width: 14rem;
    padding: 0.45rem 0.7rem;
    border-radius: 0.65rem;
    background: #0f172a;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.3;
    white-space: nowrap;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.24);
}

.rfid-signal-status--compact[data-tooltip]::before {
    content: '';
    bottom: calc(100% + 0.25rem);
    transform: translate(-50%, 0.35rem) rotate(45deg);
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 0.1rem;
    background: #0f172a;
}

.rfid-signal-status--compact[data-tooltip]:hover::before,
.rfid-signal-status--compact[data-tooltip]:hover::after,
.rfid-signal-status--compact[data-tooltip]:focus-visible::before,
.rfid-signal-status--compact[data-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0) scale(1);
}

.rfid-signal-status--compact[data-tooltip]:hover::before,
.rfid-signal-status--compact[data-tooltip]:focus-visible::before {
    transform: translate(-50%, 0) rotate(45deg) scale(1);
}

.worker-card-lock-banner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.85rem 1rem;
    align-items: start;
    margin-bottom: 1rem;
    padding: 0.95rem 1.05rem;
    border: 1px solid rgba(185, 28, 28, 0.18);
    border-radius: 14px;
    background:
        linear-gradient(135deg, rgba(254, 242, 242, 0.95) 0%, rgba(255, 255, 255, 0.96) 55%),
        #fff;
    box-shadow: 0 8px 20px rgba(185, 28, 28, 0.06);
    color: #7f1d1d;
}

.worker-card-lock-banner__eyebrow {
    margin-bottom: 0.15rem;
    font-size: 0.7rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #b91c1c;
}

.worker-card-lock-banner__title {
    margin-bottom: 0.2rem;
    font-size: 0.95rem;
    font-weight: 750;
    color: #7f1d1d;
}

.worker-card-lock-banner__text {
    font-size: 0.84rem;
    line-height: 1.45;
    color: #991b1b;
}

.people-show-panel__rfid-signals {
    align-items: flex-start;
}

.people-show-panel__rfid-signal-list {
    display: grid;
    gap: 0.45rem;
    width: 100%;
}

.people-show-panel__rfid-signal-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.45rem 0.6rem;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.people-show-panel__rfid-signal-project {
    font-size: 0.84rem;
    font-weight: 650;
    color: var(--brand-primary);
}

.people-show-panel__project-side {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    flex-shrink: 0;
}

.worker-project-card__head-badges {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.worker-attendance-card__card-lock {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.65rem;
    padding: 0.35rem 0.55rem 0.35rem 0.35rem;
    border-radius: 999px;
    background: rgba(220, 53, 69, 0.08);
    color: #b02a37;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
}

.worker-project-card__card-lock-note {
    margin: 0.5rem 0 0;
    font-size: 0.8rem;
    line-height: 1.35;
    color: #b02a37;
}

.worker-project-overview__hero-grid {
    display: grid;
    gap: 1.25rem;
    align-items: start;
}

@media (min-width: 992px) {
    .worker-project-overview__hero-grid {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
}

.worker-project-overview__hero-side {
    min-width: 0;
    align-self: start;
    justify-self: end;
}

.worker-project-overview__hero-side .worker-attendance-card--compact {
    width: 11.5rem;
    max-width: 100%;
    height: auto;
    padding: 0.6rem 0.7rem;
    border-radius: 0.75rem;
}

.worker-project-overview__hero-side .worker-attendance-card--compact .worker-attendance-card__summary-stats--compact {
    gap: 0.35rem;
    margin-bottom: 0;
}

.worker-project-overview__hero-side .worker-attendance-card--compact .worker-attendance-card__summary-stat {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    font-size: 0.66rem;
}

.worker-project-overview__hero-side .worker-attendance-card--compact .worker-attendance-card__summary-stat dd {
    text-align: left;
    font-size: 0.8rem;
    line-height: 1.2;
}

.worker-project-overview__hero-side .worker-attendance-card--compact .worker-attendance-card__actions {
    margin-top: 0.45rem;
}

.worker-project-overview__hero-side .worker-attendance-card--compact .worker-attendance-card__summary-btn {
    width: 100%;
    padding: 0.25rem 0.5rem;
    font-size: 0.68rem;
    line-height: 1.2;
}

.worker-attendance-card {
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 0.85rem;
    background: #f8fafc;
    padding: 1rem;
    height: 100%;
}

.worker-attendance-card--compact {
    padding: 0.85rem;
}

.worker-attendance-card--compact .worker-attendance-card__summary-stats--compact {
    margin-bottom: 0;
}

.worker-attendance-card--compact .worker-attendance-card__actions {
    margin-top: 0.65rem;
}

.worker-attendance-card--summary {
    padding: 0.65rem 0.75rem;
}

.worker-attendance-card__status--summary {
    margin-bottom: 0.45rem;
    font-size: 0.72rem;
}

.worker-attendance-card__summary-stats {
    display: grid;
    gap: 0.35rem;
    margin: 0 0 0.5rem;
}

.worker-attendance-card__summary-stat {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem;
    font-size: 0.72rem;
}

.worker-attendance-card__summary-stat dt {
    margin: 0;
    font-weight: 500;
    color: #64748b;
}

.worker-attendance-card__summary-stat dd {
    margin: 0;
    font-weight: 700;
    color: var(--brand-primary);
    text-align: right;
}

.worker-attendance-card--summary .worker-attendance-card__actions {
    margin-top: 0;
}

.worker-attendance-card__summary-btn {
    width: 100%;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    font-size: 0.72rem;
}

.worker-attendance-card__head {
    margin-bottom: 0.85rem;
}

.worker-attendance-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.worker-attendance-card__date {
    font-size: 0.78rem;
    color: #64748b;
}

.worker-attendance-card__status {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.82rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
}

.worker-attendance-card__status--idle {
    color: #64748b;
}

.worker-attendance-card__status--active {
    color: var(--brand-secondary);
}

.worker-attendance-card__status--done {
    color: #15803d;
}

.worker-attendance-card__meta {
    display: grid;
    gap: 0.55rem;
    margin-bottom: 0.85rem;
    font-size: 0.82rem;
}

.worker-attendance-card__meta--grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.worker-attendance-card__label {
    display: block;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.1rem;
}

.worker-attendance-card__payment {
    grid-column: 1 / -1;
}

.worker-attendance-card__actions {
    margin-top: 0.25rem;
}

.worker-attendance-status {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.85rem;
    font-size: 0.875rem;
    font-weight: 600;
}

.worker-attendance-status--done {
    background: rgba(34, 197, 94, 0.12);
    color: #15803d;
}

.worker-project-overview__eyebrow {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--brand-accent);
    margin-bottom: 0.35rem;
}

.worker-project-overview__title {
    color: var(--brand-primary);
}

.worker-project-overview__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.worker-project-overview__empty-icon {
    font-size: 2rem;
    display: block;
}

.worker-scan-page__hero-body {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1.25rem;
    align-items: center;
}

.worker-scan-page__hero-visual {
    position: relative;
    width: 5.5rem;
    height: 5.5rem;
    flex-shrink: 0;
}

.worker-scan-page__hero-ring {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    border: 2px dashed rgba(45, 90, 135, 0.22);
    animation: worker-scan-ring 3s linear infinite;
}

.worker-scan-page__hero-icon {
    position: absolute;
    inset: 0.55rem;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, rgba(45, 90, 135, 0.12) 0%, rgba(39, 174, 96, 0.1) 100%);
    color: var(--brand-primary);
    font-size: 2rem;
}

.worker-scan-page__hero-lead {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--brand-primary);
    margin-bottom: 0.35rem;
}

.worker-scan-page__hero-hint {
    font-size: 0.875rem;
}

.worker-scan-page__project {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
}

.worker-scan-page__project-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.worker-scan-page__project-name {
    font-weight: 700;
    color: var(--brand-primary);
}

.worker-scan-page__project-code {
    font-size: 0.78rem;
    padding: 0.15rem 0.45rem;
    border-radius: 6px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
}

.worker-scan-page__list-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.worker-scan-page__list-title {
    color: var(--brand-primary);
    font-weight: 700;
}

.worker-scan-page__list-sub {
    font-size: 0.875rem;
}

.worker-scan-page__count {
    flex-shrink: 0;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.55rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.08);
}

.worker-scan-page__list-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.65rem;
    flex-shrink: 0;
}

.worker-scan-page__flow-filter {
    display: inline-block;
}

.worker-scan-page__flow-filter .btn {
    color: var(--brand-primary);
    font-weight: 500;
}

.worker-scan-page__flow-filter .btn:hover,
.worker-scan-page__flow-filter .btn.show {
    background: var(--surface);
    border-color: var(--brand-secondary);
    color: var(--brand-primary);
}

.worker-scan-page__flow-filter .dropdown-menu {
    z-index: 1100;
    border-color: var(--border);
    box-shadow: var(--dropdown-shadow);
}

.worker-scan-page__flow-filter .dropdown-item {
    color: var(--brand-primary);
}

.worker-scan-page__flow-filter .dropdown-item:hover,
.worker-scan-page__flow-filter .dropdown-item:focus {
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
}

.worker-scan-page__flow-filter .dropdown-item.active {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-primary);
}

.worker-scan-page__grid > [data-worker-scan-item] {
    min-width: 0;
}

.worker-scan-page__floor-group + .worker-scan-page__floor-group {
    margin-top: 1.25rem;
}

.worker-scan-page__floor-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.65rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.worker-scan-page__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: 0.85rem;
}

.worker-scan-apt-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: #fff;
    color: inherit;
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.worker-scan-apt-card__main {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.85rem;
    align-items: center;
}

.worker-scan-apt-card:hover {
    border-color: rgba(45, 90, 135, 0.24);
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.08);
}

.worker-scan-apt-card__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    position: relative;
    z-index: 1;
}

.worker-scan-apt-card__open,
.worker-scan-apt-card__details {
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.worker-scan-apt-card__accent {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #94a3b8;
}

.worker-scan-apt-card--completed .worker-scan-apt-card__accent {
    background: var(--brand-success);
}

.worker-scan-apt-card--in_progress .worker-scan-apt-card__accent {
    background: var(--brand-accent);
}

.worker-scan-apt-card--not_started .worker-scan-apt-card__accent {
    background: #94a3b8;
}

.worker-scan-apt-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
    font-size: 1rem;
}

.worker-scan-apt-card--completed .worker-scan-apt-card__icon {
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
}

.worker-scan-apt-card--in_progress .worker-scan-apt-card__icon {
    background: rgba(243, 156, 18, 0.12);
    color: #946200;
}

.worker-scan-apt-card__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.worker-scan-apt-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.worker-scan-apt-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.35;
}

.worker-scan-apt-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.worker-scan-apt-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.16rem 0.48rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 500;
    color: #475569;
    background: rgba(30, 58, 95, 0.05);
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.worker-scan-apt-card__chip i {
    font-size: 0.64rem;
    color: var(--brand-secondary);
}

.worker-scan-apt-card__progress {
    display: grid;
    gap: 0.25rem;
}

.worker-scan-apt-card__progress-label {
    font-size: 0.72rem;
    color: #64748b;
}

.worker-scan-apt-card__progress-bar {
    height: 0.35rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    overflow: hidden;
}

.worker-scan-apt-card__progress-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand-secondary) 0%, var(--brand-success) 100%);
}

.worker-scan-apt-card__action {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
    font-size: 0.85rem;
    flex-shrink: 0;
}

.worker-scan-apt-card:hover .worker-scan-apt-card__action {
    background: var(--brand-primary);
    color: #fff;
}

@keyframes worker-scan-ring {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@media (max-width: 767.98px) {
    .worker-scan-page__hero-body {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .worker-scan-page__hero-visual {
        margin: 0 auto;
    }

    .worker-scan-page__project {
        justify-content: center;
    }

    .worker-scan-page__grid {
        grid-template-columns: 1fr;
    }

    .worker-scan-page__list-head {
        flex-direction: column;
        align-items: stretch;
    }

    .worker-scan-page__list-actions {
        justify-content: flex-end;
        gap: 0.5rem;
    }
}

.worker-apartment-floor-filter {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    min-width: min(100%, 16rem);
}

.worker-apartment-floor-filter__label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.worker-apartment-floor-filter__select {
    min-width: 14rem;
}

@media (min-width: 768px) {
    .worker-apartment-floor-filter {
        align-items: flex-end;
        min-width: 18rem;
    }
}

.worker-flow-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
    gap: 1rem;
}

.worker-flow-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 100%;
    border: 1px solid rgba(230, 126, 34, 0.18);
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, rgba(230, 126, 34, 0.04) 100%);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 4px 20px rgba(30, 58, 95, 0.06);
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.worker-flow-card:hover {
    border-color: rgba(230, 126, 34, 0.42);
    box-shadow: 0 12px 32px rgba(230, 126, 34, 0.12);
    transform: translateY(-2px);
    color: inherit;
}

.worker-flow-card__accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-accent) 0%, #f39c12 100%);
}

.worker-flow-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    flex: 1;
    padding: 1.15rem 1.2rem 1rem;
}

.worker-flow-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.worker-flow-card__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(230, 126, 34, 0.18) 0%, rgba(243, 156, 18, 0.1) 100%);
    color: var(--brand-accent);
    font-size: 1.05rem;
    box-shadow: 0 6px 16px rgba(230, 126, 34, 0.12);
}

.worker-flow-card:hover .worker-flow-card__icon {
    background: linear-gradient(135deg, var(--brand-accent) 0%, #f39c12 100%);
    color: #fff;
}

.worker-flow-card__status {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.22rem 0.6rem;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #946200;
    background: rgba(243, 156, 18, 0.16);
}

.worker-flow-card__pulse {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: var(--brand-warning);
    box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.45);
    animation: worker-flow-pulse 1.8s ease-out infinite;
}

@keyframes worker-flow-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(243, 156, 18, 0.45);
    }

    70% {
        box-shadow: 0 0 0 0.45rem rgba(243, 156, 18, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(243, 156, 18, 0);
    }
}

.worker-flow-card__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--brand-primary);
}

.worker-flow-card__category {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.4;
    color: #64748b;
}

.worker-flow-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.15rem;
}

.worker-flow-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.32rem 0.62rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 500;
    color: #475569;
    background: rgba(30, 58, 95, 0.05);
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.worker-flow-card__chip i {
    font-size: 0.68rem;
    color: var(--brand-secondary);
}

.worker-flow-card__chip-sub {
    color: #94a3b8;
}

.worker-flow-card__chip--xp {
    color: #946200;
    background: rgba(243, 156, 18, 0.1);
    border-color: rgba(243, 156, 18, 0.14);
}

.worker-flow-card__chip--xp i {
    color: var(--brand-accent);
}

.worker-flow-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: auto;
    padding: 0.85rem 1.2rem;
    border-top: 1px solid rgba(230, 126, 34, 0.12);
    background: rgba(255, 255, 255, 0.72);
}

.worker-flow-card__action {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-accent);
}

.worker-flow-card__arrow {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.worker-flow-card:hover .worker-flow-card__arrow {
    background: var(--brand-accent);
    color: #fff;
    transform: translateX(2px);
}

@media (max-width: 575.98px) {
    .worker-flow-cards {
        grid-template-columns: 1fr;
    }
}

.worker-apartment-card .project-overview-apt-card__chevron {
    font-size: 1rem;
}

/* Tools management demo */
.tools-management__stats {
    margin-bottom: 0.25rem;
}

.tools-stat-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.85rem 1rem;
    align-items: center;
    min-height: 7.5rem;
    padding: 1rem 1.1rem 1.75rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.85rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    position: relative;
    overflow: hidden;
}

.tools-stat-card__spark {
    position: absolute;
    left: 0.85rem;
    right: 0.85rem;
    bottom: 0.35rem;
    height: 1.35rem;
    opacity: 0.85;
}

.tools-stat-card__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.tools-stat-card--total .tools-stat-card__icon {
    background: rgba(59, 130, 246, 0.12);
    color: #2563eb;
}

.tools-stat-card--out .tools-stat-card__icon {
    background: rgba(34, 197, 94, 0.12);
    color: #16a34a;
}

.tools-stat-card--due .tools-stat-card__icon {
    background: rgba(234, 179, 8, 0.15);
    color: #ca8a04;
}

.tools-stat-card--overdue .tools-stat-card__icon {
    background: rgba(239, 68, 68, 0.12);
    color: #dc2626;
}

.tools-stat-card__value {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--brand-primary);
}

.tools-stat-card__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: #334155;
}

.tools-stat-card__meta {
    font-size: 0.75rem;
    color: #64748b;
}

.tools-management__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    margin-bottom: 1rem;
}

.tools-management__search-wrap {
    position: relative;
    flex: 1 1 14rem;
    width: auto;
    max-width: 100%;
    margin-left: 0;
}

@media (min-width: 768px) {
    .tools-management__search-wrap {
        flex: 0 0 auto;
        width: 16rem;
        margin-left: auto;
    }
}

.tools-management__search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    pointer-events: none;
    font-size: 0.8rem;
}

.tools-management__search {
    padding-left: 2.1rem;
    border-radius: 0.65rem;
}

.tools-management__filter-wrap {
    flex: 0 0 auto;
    min-width: 10.5rem;
}

.tools-management__status-filter {
    min-height: 2.5rem;
    border-radius: 0.65rem;
    font-size: 0.875rem;
}

.tools-management__table-wrap {
    margin: 0 -0.25rem;
}

.tools-management__table {
    font-size: 0.875rem;
}

.tools-management__table thead th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    border-bottom-width: 1px;
    white-space: nowrap;
}

.tools-management__row {
    cursor: pointer;
    transition: background 0.15s ease;
}

.tools-management__row:hover,
.tools-management__row.is-selected {
    background: rgba(30, 58, 95, 0.04);
}

.tools-management__row.is-selected {
    box-shadow: inset 3px 0 0 var(--brand-accent);
}

.tools-management__tool-cell {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 14rem;
}

.tools-management__tool-thumb {
    width: 3rem;
    height: 3rem;
    border-radius: 0.55rem;
    object-fit: cover;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: #f8fafc;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    overflow: hidden;
}

.tools-management__tool-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tools-management__tool-thumb--sm {
    width: 2.25rem;
    height: 2.25rem;
    font-size: 0.85rem;
}

.tools-overview-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 1rem;
}

.tools-overview-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.tools-overview-card__subtitle {
    margin-top: 0.2rem;
    font-size: 0.75rem;
    color: #64748b;
}

.tools-overview-card__badge {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(145deg, rgba(249, 115, 22, 0.16), rgba(251, 146, 60, 0.08));
    color: #ea580c;
    font-size: 0.9rem;
}

.tools-overview-card--top {
    background:
        linear-gradient(180deg, rgba(255, 247, 237, 0.55) 0%, rgba(255, 255, 255, 0) 42%),
        #fff;
}

.tools-top-empty {
    display: grid;
    justify-items: center;
    text-align: center;
    gap: 0.45rem;
    padding: 1.35rem 0.75rem 0.85rem;
    border-radius: 0.9rem;
    background:
        radial-gradient(circle at 50% 18%, rgba(249, 115, 22, 0.12), transparent 55%),
        #f8fafc;
    border: 1px dashed rgba(30, 58, 95, 0.12);
}

.tools-top-empty__visual {
    position: relative;
    width: 3.75rem;
    height: 3.75rem;
    margin-bottom: 0.35rem;
}

.tools-top-empty__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(249, 115, 22, 0.18);
    background: rgba(255, 255, 255, 0.75);
}

.tools-top-empty__icon {
    position: absolute;
    inset: 0.55rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #fff7ed, #ffedd5);
    color: #ea580c;
    font-size: 1.05rem;
    box-shadow: 0 6px 14px rgba(234, 88, 12, 0.12);
}

.tools-top-empty__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #0f172a;
}

.tools-top-empty__copy {
    max-width: 16rem;
    font-size: 0.78rem;
    line-height: 1.45;
    color: #64748b;
}

.tools-top-list {
    display: grid;
    gap: 0.55rem;
}

.tools-top-item {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 0.7rem;
    align-items: center;
    padding: 0.65rem 0.7rem;
    border-radius: 0.8rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(248, 250, 252, 0.7);
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.tools-top-item:hover {
    border-color: rgba(249, 115, 22, 0.28);
    background: #fff;
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.06);
}

.tools-top-item__rank {
    width: 1.45rem;
    height: 1.45rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 700;
    color: #64748b;
    background: #e2e8f0;
}

.tools-top-item--rank-1 .tools-top-item__rank {
    color: #9a3412;
    background: linear-gradient(145deg, #fdba74, #fb923c);
}

.tools-top-item--rank-2 .tools-top-item__rank {
    color: #334155;
    background: linear-gradient(145deg, #e2e8f0, #cbd5e1);
}

.tools-top-item--rank-3 .tools-top-item__rank {
    color: #9a3412;
    background: linear-gradient(145deg, #fdba74, #f97316);
    opacity: 0.85;
}

.tools-top-item__thumb {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.6rem;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    color: #64748b;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.tools-top-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tools-top-item__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.65rem;
}

.tools-top-item__name {
    font-size: 0.84rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.25;
    min-width: 0;
}

.tools-top-item__meta {
    margin-top: 0.1rem;
    font-size: 0.72rem;
    color: #64748b;
}

.tools-top-item__count {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    flex-shrink: 0;
    font-size: 0.68rem;
    color: #94a3b8;
}

.tools-top-item__count strong {
    font-size: 0.9rem;
    font-weight: 700;
    color: #ea580c;
}

.tools-top-item__bar {
    margin-top: 0.45rem;
    height: 0.35rem;
    border-radius: 999px;
    background: rgba(226, 232, 240, 0.9);
    overflow: hidden;
}

.tools-top-item__bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #f97316 0%, #fb923c 70%, #fdba74 100%);
}

.tools-overview-card__badge--attention {
    background: linear-gradient(145deg, rgba(239, 68, 68, 0.14), rgba(248, 113, 113, 0.08));
    color: #dc2626;
}

.tools-overview-card--attention {
    background:
        linear-gradient(180deg, rgba(254, 242, 242, 0.55) 0%, rgba(255, 255, 255, 0) 42%),
        #fff;
}

.tools-attention-empty {
    display: grid;
    justify-items: center;
    text-align: center;
    gap: 0.45rem;
    padding: 1.35rem 0.75rem 0.85rem;
    border-radius: 0.9rem;
    background:
        radial-gradient(circle at 50% 18%, rgba(34, 197, 94, 0.12), transparent 55%),
        #f8fafc;
    border: 1px dashed rgba(30, 58, 95, 0.12);
}

.tools-attention-empty__visual {
    position: relative;
    width: 3.75rem;
    height: 3.75rem;
    margin-bottom: 0.35rem;
}

.tools-attention-empty__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(34, 197, 94, 0.18);
    background: rgba(255, 255, 255, 0.75);
}

.tools-attention-empty__icon {
    position: absolute;
    inset: 0.55rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #f0fdf4, #dcfce7);
    color: #16a34a;
    font-size: 1.05rem;
    box-shadow: 0 6px 14px rgba(22, 163, 74, 0.12);
}

.tools-attention-empty__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #0f172a;
}

.tools-attention-empty__copy {
    max-width: 16rem;
    font-size: 0.78rem;
    line-height: 1.45;
    color: #64748b;
}

.tools-attention-list {
    display: grid;
    gap: 0.55rem;
}

.tools-attention-item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.7rem;
    align-items: center;
    padding: 0.65rem 0.7rem;
    border-radius: 0.8rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(248, 250, 252, 0.7);
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.tools-attention-item:hover {
    background: #fff;
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.06);
}

.tools-attention-item--due_soon {
    border-color: rgba(245, 158, 11, 0.22);
    background: rgba(255, 251, 235, 0.55);
}

.tools-attention-item--due_soon:hover {
    border-color: rgba(245, 158, 11, 0.4);
}

.tools-attention-item--overdue {
    border-color: rgba(239, 68, 68, 0.22);
    background: rgba(254, 242, 242, 0.6);
}

.tools-attention-item--overdue:hover {
    border-color: rgba(239, 68, 68, 0.4);
}

.tools-attention-item__thumb {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.6rem;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    color: #64748b;
    font-size: 0.85rem;
    flex-shrink: 0;
}

.tools-attention-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tools-attention-item__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
}

.tools-attention-item__name {
    font-size: 0.84rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.25;
    min-width: 0;
}

.tools-attention-item__meta {
    margin-top: 0.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    color: #64748b;
}

.tools-attention-item--due_soon .tools-attention-item__meta {
    color: #b45309;
}

.tools-attention-item--overdue .tools-attention-item__meta {
    color: #b91c1c;
}

.tools-status-donut-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem;
}

.tools-status-donut {
    width: 8.5rem;
    height: 8.5rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}

.tools-status-donut__hole {
    width: 5.4rem;
    height: 5.4rem;
    border-radius: 50%;
    background: #fff;
    display: grid;
    place-content: center;
    text-align: center;
}

.tools-status-donut__total {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--brand-primary);
}

.tools-status-donut__label {
    font-size: 0.7rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.tools-status-legend {
    display: grid;
    gap: 0.45rem;
    font-size: 0.8125rem;
    color: #475569;
}

.tools-status-legend__swatch {
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 999px;
    display: inline-block;
    margin-right: 0.4rem;
    vertical-align: middle;
}

.tools-rank-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    align-items: center;
}

.tools-rank-row__name {
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
}

.tools-rank-row__meta {
    font-size: 0.75rem;
    color: #64748b;
}

.tools-rank-row__count {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #475569;
}

.tools-rank-bar {
    margin-top: 0.35rem;
    height: 0.35rem;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.tools-rank-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #f97316, #fb923c);
}

.tools-management__tool-name {
    font-weight: 600;
    color: var(--brand-primary);
}

.tools-management__tool-model {
    font-size: 0.75rem;
    color: #64748b;
}

.tools-management__batch-ref-btn {
    display: inline-block;
    padding: 0;
    border: 0;
    background: none;
    font-weight: 600;
    color: var(--brand-primary);
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
    text-decoration: underline;
    text-decoration-color: rgba(30, 58, 95, 0.25);
    text-underline-offset: 0.15rem;
}

.tools-management__batch-ref-btn:hover {
    color: var(--brand-accent);
    text-decoration-color: currentColor;
}

.tools-management__actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
}

.tools-management__actions .tools-management__action-btn {
    min-width: 2rem;
    padding-inline: 0.45rem;
}

.tools-batch-offcanvas {
    width: min(100vw, 34rem);
}

#toolsRentalDetailOffcanvas.tools-management-offcanvas {
    z-index: 1065;
}

.tools-batch-detail {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.tools-batch-detail__summary {
    padding: 1rem;
    border-bottom: 1px solid var(--border);
    background: #f8fafc;
}

.tools-batch-detail__summary-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.8125rem;
    margin-bottom: 0.35rem;
}

.tools-batch-detail__summary-label {
    color: #64748b;
}

.tools-batch-detail__notes {
    margin-top: 0.5rem;
    font-size: 0.8125rem;
    color: #475569;
}

.tools-batch-detail__tools {
    padding: 1rem;
    flex: 1 1 auto;
}

.tools-batch-detail__tools-title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.75rem;
}

.tools-batch-detail__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}

.tools-batch-detail__item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.65rem;
    align-items: center;
    padding: 0.75rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.65rem;
    background: #fff;
}

.tools-batch-detail__item.is-returned {
    opacity: 0.72;
    background: #f8fafc;
}

.tools-batch-detail__tool-btn {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    text-align: left;
    cursor: pointer;
}

.tools-batch-detail__tool-name {
    display: block;
    font-weight: 600;
    color: var(--brand-primary);
}

.tools-batch-detail__tool-model {
    display: block;
    font-size: 0.75rem;
    color: #64748b;
}

.tools-batch-detail__tool-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
    margin-top: 0.35rem;
    align-items: center;
}

.tools-batch-detail__tool-due {
    font-size: 0.75rem;
    color: #64748b;
}

.tools-batch-detail__footer {
    padding: 1rem;
    border-top: 1px solid var(--border);
    background: #fff;
}

.tools-batch-detail__footer--done {
    background: #f8fafc;
}

.tools-management__batch-ref {
    font-weight: 600;
    color: var(--brand-primary);
}

.tools-management__batch-meta {
    font-size: 0.75rem;
    color: #64748b;
}

.tools-management__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    max-width: 22rem;
}

.tools-tool-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    border: 1px solid rgba(30, 58, 95, 0.14);
    background: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    color: #334155;
    cursor: pointer;
    transition: background 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.tools-tool-badge:hover {
    background: rgba(30, 58, 95, 0.04);
}

.tools-tool-badge.is-selected {
    border-color: var(--brand-accent);
    box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.25);
}

.tools-tool-badge__name {
    max-width: 9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tools-tool-badge__date {
    font-weight: 500;
    color: #64748b;
}

.tools-tool-badge--returned {
    background: rgba(34, 197, 94, 0.1);
    border-color: rgba(34, 197, 94, 0.35);
}

.tools-tool-badge--due_soon {
    background: rgba(234, 179, 8, 0.12);
    border-color: rgba(234, 179, 8, 0.4);
}

.tools-tool-badge--overdue {
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.35);
}

.tools-tool-badge--out {
    background: rgba(59, 130, 246, 0.08);
    border-color: rgba(59, 130, 246, 0.25);
}

.tools-rental-tool-row {
    background: #f8fafc;
}

.tools-add-supplier-btn {
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-bottom: 0.1rem;
}

.tools-settings .project-tabs-panel {
    margin-top: 0.25rem;
}

.tools-supplier-email__tabs .nav-link {
    font-size: 0.875rem;
    font-weight: 600;
}

.tools-supplier-email__empty {
    border: 1px dashed rgba(30, 58, 95, 0.14);
    border-radius: 0.75rem;
    background: #f8fafc;
}

.tools-general-settings__footer-preview,
.tools-supplier-email__footer-preview {
    padding: 0.85rem 1rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 0.75rem;
    background: #f8fafc;
    color: var(--brand-primary);
    font-family: inherit;
    font-size: 0.875rem;
    line-height: 1.5;
    white-space: pre-wrap;
}

.tools-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.tools-status-badge--returned {
    background: rgba(34, 197, 94, 0.14);
    color: #15803d;
}

.tools-status-badge--due_soon {
    background: rgba(234, 179, 8, 0.18);
    color: #a16207;
}

.tools-status-badge--overdue {
    background: rgba(239, 68, 68, 0.14);
    color: #b91c1c;
}

.tools-status-badge--out {
    background: #fff;
    color: #15803d;
    border: 1px solid rgba(34, 197, 94, 0.45);
}

.tools-management__action-btn {
    color: #64748b;
    text-decoration: none;
    padding: 0.15rem 0.35rem;
}

.tools-management__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--border);
}

.tools-management__pagination-info {
    font-size: 0.8125rem;
    color: #64748b;
}

.tools-management__pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.25rem;
    max-width: 100%;
    overflow-x: auto;
}

.tools-management__pagination .pagination {
    margin-bottom: 0;
    flex-wrap: wrap;
}

.tools-management__pagination .page-link {
    min-width: 2.1rem;
    text-align: center;
    border-radius: 0.45rem;
    margin: 0 0.1rem;
    color: #475569;
    border-color: var(--border);
}

.tools-management__pagination .page-item.active .page-link {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
}

.tools-rentals-list {
    display: grid;
    gap: 0.65rem;
}

.tools-rentals-list__head,
.tools-rental-card {
    display: grid;
    grid-template-columns:
        2rem
        minmax(11rem, 1.35fr)
        minmax(6rem, 0.75fr)
        minmax(7rem, 0.95fr)
        minmax(8rem, 1.1fr)
        minmax(5.5rem, 0.8fr)
        minmax(5.5rem, 0.85fr)
        minmax(3.5rem, 0.5fr)
        minmax(5.5rem, 0.7fr)
        auto;
    gap: 0.75rem;
    align-items: center;
}

.tools-rentals-list__head {
    padding: 0 0.35rem 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
}

.tools-rental-card {
    padding: 0.85rem 0.9rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 0.85rem;
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.tools-rental-card:hover {
    border-color: rgba(30, 58, 95, 0.16);
    box-shadow: 0 8px 18px rgba(30, 58, 95, 0.06);
}

.tools-rental-card__actions {
    display: flex;
    justify-content: flex-end;
}

.tools-rental-card__chat {
    white-space: nowrap;
}

.tools-rental-card__chat span {
    display: none;
}

.tools-rentals-list__empty {
    border: 1px dashed rgba(30, 58, 95, 0.14);
    border-radius: 0.85rem;
    background: #f8fafc;
    padding: 2rem 1rem;
    text-align: center;
}

.tools-rentals-list__head--supplier,
.tools-rental-card--supplier {
    grid-template-columns:
        minmax(6rem, 0.75fr)
        minmax(11rem, 1.35fr)
        minmax(8rem, 1.1fr)
        minmax(7rem, 0.95fr)
        minmax(5.5rem, 0.8fr)
        minmax(5.5rem, 0.85fr)
        minmax(3.5rem, 0.5fr)
        minmax(5.5rem, 0.7fr)
        auto;
}

.tools-rental-card--supplier .tools-rental-card__actions {
    gap: 0.4rem;
    flex-wrap: wrap;
}

@media (max-width: 1199.98px) {
    .tools-rentals-list__head {
        display: none;
    }

    .tools-rental-card {
        grid-template-columns: auto 1fr auto;
        grid-template-areas:
            "check tool actions"
            "check batch batch"
            "check supplier supplier"
            "check rented rented"
            "check rent due"
            "check days status";
        gap: 0.55rem 0.75rem;
    }

    .tools-rental-card--supplier {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "tool actions"
            "batch batch"
            "supplier supplier"
            "rented rented"
            "rent due"
            "days status";
    }

    .tools-rental-card__check { grid-area: check; align-self: start; padding-top: 0.35rem; }
    .tools-rental-card__tool { grid-area: tool; }
    .tools-rental-card__actions { grid-area: actions; align-self: start; }
    .tools-rental-card__batch { grid-area: batch; }
    .tools-rental-card__supplier { grid-area: supplier; }
    .tools-rental-card__rented { grid-area: rented; }
    .tools-rental-card__rent { grid-area: rent; }
    .tools-rental-card__due { grid-area: due; }
    .tools-rental-card__days { grid-area: days; }
    .tools-rental-card__status { grid-area: status; justify-self: end; }

    .tools-rental-card__field[data-label]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 0.15rem;
        font-size: 0.68rem;
        font-weight: 700;
        letter-spacing: 0.03em;
        text-transform: uppercase;
        color: #94a3b8;
    }

    .tools-rental-card__chat span {
        display: inline;
    }

    .tools-management__footer {
        flex-direction: column;
        align-items: stretch;
    }

    .tools-management__pagination {
        justify-content: center;
    }
}

@media (max-width: 575.98px) {
    .tools-rental-card {
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "check tool"
            "check actions"
            "check batch"
            "check supplier"
            "check rented"
            "check rent"
            "check due"
            "check days"
            "check status";
    }

    .tools-rental-card--supplier {
        grid-template-columns: 1fr;
        grid-template-areas:
            "tool"
            "actions"
            "batch"
            "supplier"
            "rented"
            "rent"
            "due"
            "days"
            "status";
    }

    .tools-rental-card__actions,
    .tools-rental-card__status {
        justify-self: stretch;
    }

    .tools-rental-card__chat {
        width: 100%;
        justify-content: center;
    }

    .tools-management__tool-cell {
        min-width: 0;
    }

    .tools-management__filter-wrap,
    .tools-management__search-wrap {
        flex: 1 1 100%;
        width: 100%;
    }
}

.tools-page-btn {
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.5rem;
    border: 1px solid var(--border);
    border-radius: 0.45rem;
    background: #fff;
    color: #475569;
    font-size: 0.8125rem;
}

.tools-page-btn.is-active {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.tools-management-offcanvas {
    width: min(100vw, 28rem);
}

.tools-management-offcanvas__head {
    min-width: 0;
    padding-right: 0.5rem;
}

.tools-management-offcanvas__subtitle {
    font-size: 0.8125rem;
    color: #64748b;
}

.tools-management-detail__head--offcanvas {
    justify-content: flex-start;
    margin-bottom: 0.75rem;
}

.tools-management__detail-card .admin-panel-card__body,
.tools-management__detail-card {
    height: 100%;
}

.tools-management-detail {
    padding: 1rem;
}

.tools-management-detail__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.tools-management-detail__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.tools-management-detail__hero {
    display: flex;
    gap: 0.85rem;
    align-items: center;
    margin-bottom: 1rem;
}

.tools-management-detail__image {
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 0.65rem;
    object-fit: cover;
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.tools-management-detail__tool-name {
    font-weight: 700;
    color: var(--brand-primary);
}

.tools-management-detail__tool-model {
    font-size: 0.8125rem;
    color: #64748b;
}

.tools-management-detail__list {
    display: grid;
    gap: 0.65rem;
    margin: 0 0 1rem;
}

.tools-management-detail__list div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    align-items: start;
}

.tools-management-detail__list dt {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 500;
    color: #64748b;
}

.tools-management-detail__list dt i {
    width: 1rem;
    margin-right: 0.35rem;
    color: #94a3b8;
}

.tools-management-detail__list dd {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1e293b;
    text-align: right;
}

.tools-management-detail__timeline-title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.75rem;
}

.tools-management-timeline {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
}

.tools-management-timeline__item {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.75rem;
    padding-bottom: 1rem;
    padding-left: 0.15rem;
}

.tools-management-timeline__item:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 0.45rem;
    top: 1rem;
    bottom: 0;
    width: 2px;
    background: #e2e8f0;
}

.tools-management-timeline__dot {
    width: 0.95rem;
    height: 0.95rem;
    border-radius: 999px;
    margin-top: 0.15rem;
    background: #cbd5e1;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px #e2e8f0;
}

.tools-management-timeline__item--done .tools-management-timeline__dot {
    background: #22c55e;
    box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.35);
}

.tools-management-timeline__item--pending .tools-management-timeline__dot {
    background: #94a3b8;
}

.tools-management-timeline__item--warning .tools-management-timeline__dot {
    background: #ef4444;
}

.tools-management-timeline__label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #1e293b;
}

.tools-management-timeline__meta {
    font-size: 0.75rem;
    color: #64748b;
}

.tools-management-detail__return-btn {
    margin-top: 0.15rem;
}

.tools-due-accordion .accordion-button {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--brand-primary);
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.tools-due-accordion__head {
    display: flex;
    align-items: stretch;
}

.tools-due-accordion__head .accordion-button {
    flex: 1 1 auto;
    border-right: 0;
}

.tools-due-accordion__extend-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    border: 0;
    border-left: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    color: var(--brand-primary);
    transition: background 0.15s ease, color 0.15s ease;
}

.tools-due-accordion__extend-btn:hover {
    background: rgba(30, 58, 95, 0.04);
    color: var(--brand-accent);
}

.tools-due-accordion__head .accordion-button:not(.collapsed) + .tools-due-accordion__extend-btn {
    background: #f8fafc;
}

.tools-due-accordion .accordion-body {
    padding-top: 0.85rem;
}

.tools-due-accordion__count {
    margin-left: 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}

.tools-due-history {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}

.tools-due-history__item {
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.65rem;
    padding: 0.65rem 0.75rem;
    background: #fff;
}

.tools-due-history__item--extension {
    border-color: rgba(245, 158, 11, 0.35);
    background: rgba(245, 158, 11, 0.06);
}

.tools-due-history__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.2rem;
}

.tools-due-history__date {
    font-weight: 700;
    color: var(--brand-primary);
}

.tools-due-history__type {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
}

.tools-due-history__item--extension .tools-due-history__type {
    color: #b45309;
}

.tools-due-history__meta {
    font-size: 0.75rem;
    color: #64748b;
}

.tools-due-history__note {
    margin-top: 0.35rem;
    font-size: 0.8125rem;
    color: #334155;
}

.tools-management__suppliers-table thead th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    white-space: nowrap;
}

.tools-management__suppliers-table td {
    font-size: 0.875rem;
    vertical-align: middle;
}

.tools-management__quick-actions .admin-panel-card__body {
    padding-top: 0.25rem;
}

@media (max-width: 1199.98px) {
    .tools-management-offcanvas {
        width: min(100vw, 26rem);
    }
}

@media (max-width: 767.98px) {
    .tools-management-detail__list div {
        grid-template-columns: 1fr;
    }

    .tools-management-detail__list dd {
        text-align: left;
    }
}

.project-article-show__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 1rem 1.5rem;
    margin-bottom: 1.5rem;
}

.project-article-show__meta-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 0.25rem;
}

.project-article-show__body {
    line-height: 1.7;
    color: #1e293b;
}

.project-article-show__images {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    gap: 1rem;
}

.project-article-show__image img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid var(--border);
}

.project-article-show__file-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--border);
}

.project-article-show__file-row:last-child {
    border-bottom: 0;
}

.project-article-show__file-main {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.project-article-form__existing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
    gap: 1rem;
}

.project-article-form__existing-item img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    border: 1px solid var(--border);
}

.project-article-form__existing-files {
    display: grid;
    gap: 0.65rem;
}

.project-article-form__existing-file {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: 10px;
}

.rich-text-editor-field .rich-text-editor {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.rich-text-editor-field .rich-text-editor.is-invalid {
    border-color: var(--bs-danger);
}

.rich-text-editor-field .ql-toolbar.ql-snow {
    border: 0;
    border-bottom: 1px solid var(--border);
    background: #f8fafc;
}

.rich-text-editor-field .ql-container.ql-snow {
    border: 0;
    font-size: 1rem;
}

.rich-text-editor__surface {
    min-height: 14rem;
}

.rich-text-editor-field .ql-editor {
    min-height: 14rem;
    line-height: 1.7;
    color: #1e293b;
}

.rich-text-editor-field .ql-editor.ql-blank::before {
    color: #94a3b8;
    font-style: normal;
}

.project-article-show__body--rich h2,
.project-article-show__body--rich h3 {
    margin-top: 1.25rem;
    margin-bottom: 0.75rem;
}

.project-article-show__body--rich p,
.project-article-show__body--rich ul,
.project-article-show__body--rich ol,
.project-article-show__body--rich blockquote {
    margin-bottom: 1rem;
}

.project-article-show__body--rich ul,
.project-article-show__body--rich ol {
    padding-left: 1.25rem;
}

.project-article-show__body--rich blockquote {
    padding-left: 1rem;
    border-left: 3px solid rgba(30, 58, 95, 0.18);
    color: #475569;
}

.project-article-show__body--rich a {
    color: var(--brand);
}

.article-list-attachments {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.35rem;
    max-width: 100%;
}

.article-list-attachments__item {
    position: relative;
    flex-shrink: 0;
    text-decoration: none;
}

.article-list-attachments__item--image {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--border);
    background: #fff;
}

.article-list-attachments__thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.article-list-attachments__badge {
    position: absolute;
    right: 0.1rem;
    bottom: 0.1rem;
    width: 1rem;
    height: 1rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.88);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.55rem;
}

.article-list-attachments__item--file {
    width: 2rem;
    height: 2rem;
    min-height: 2rem;
}

.public-info-article-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
}

.public-info-article-card__cover {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #f8fafc;
}

.public-info-article-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-info-article-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1.1rem 1.15rem 0.75rem;
    flex: 1;
}

.public-info-article-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.8125rem;
}

.public-info-article-card__project {
    color: var(--brand);
    text-decoration: none;
    font-weight: 600;
}

.public-info-article-card__date {
    color: #64748b;
}

.public-info-article-card__title {
    font-size: 1.15rem;
    margin: 0;
}

.public-info-article-card__title a {
    color: inherit;
    text-decoration: none;
}

.public-info-article-card__title a:hover {
    color: var(--brand);
}

.public-info-article-card__excerpt {
    color: #475569;
    margin: 0;
    line-height: 1.6;
}

.public-info-article-card__author {
    color: #64748b;
    font-size: 0.8125rem;
}

.public-info-article-card__project-panel {
    padding: 0.9rem 0.95rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #f8fafc;
}

.public-info-article-card__project-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.public-info-article-card__project-meta {
    display: grid;
    gap: 0.55rem;
    margin: 0;
}

.public-info-article-card__project-row {
    display: grid;
    grid-template-columns: minmax(5.5rem, 7rem) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: start;
}

.public-info-article-card__project-row dt {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}

.public-info-article-card__project-row dd {
    margin: 0;
    font-size: 0.875rem;
    color: #1e293b;
    word-break: break-word;
}

.public-info-article-card__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0 1.15rem 1.15rem;
}

.public-info-article-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    margin-bottom: 0.75rem;
}

.public-info-article-hero__date {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.875rem;
}

.public-info-article-page-hero__content {
    max-width: 48rem;
}

.public-info-article-page-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.public-info-article-page-hero__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
}

.public-info-article-page-hero__chip:hover {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

.public-info-article-page-hero__chip--muted {
    font-weight: 500;
}

.public-info-article-page-hero__title {
    font-size: clamp(1.75rem, 4vw, 2.6rem);
    line-height: 1.15;
    font-weight: 700;
    color: #fff;
    margin: 0 0 1rem;
}

.public-info-article-page-hero__byline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.9375rem;
}

.public-info-article-page-hero__byline-item {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.public-info-article-featured-wrap {
    margin-top: -1.5rem;
    position: relative;
    z-index: 2;
}

.public-info-article-featured {
    margin: 0;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.16);
    border: 4px solid #fff;
    aspect-ratio: 21 / 9;
    background: #e2e8f0;
}

.public-info-article-featured img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.public-info-article-main {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.public-info-article-prose {
    padding: 1.75rem 1.85rem;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.05);
    font-size: 1.05rem;
    line-height: 1.8;
}

.public-info-article-prose > :first-child {
    margin-top: 0;
}

.public-info-article-prose > :last-child {
    margin-bottom: 0;
}

.public-info-article-block {
    padding: 1.5rem 1.65rem;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.05);
}

.public-info-article-block__head {
    margin-bottom: 1.15rem;
}

.public-info-article-block__title {
    margin: 0 0 0.25rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: #0f172a;
}

.public-info-article-block__subtitle {
    margin: 0;
    color: #64748b;
    font-size: 0.875rem;
}

.public-info-article-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    gap: 0.85rem;
}

.public-info-article-gallery__item {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid var(--border);
    background: #f8fafc;
}

.public-info-article-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.25s ease;
}

.public-info-article-gallery__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.42);
    color: #fff;
    font-size: 1.2rem;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.public-info-article-gallery__item:hover img {
    transform: scale(1.04);
}

.public-info-article-gallery__item:hover .public-info-article-gallery__overlay {
    opacity: 1;
}

.public-info-article-files {
    display: grid;
    gap: 0.75rem;
}

.public-info-article-file {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.public-info-article-file__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.1rem;
}

.public-info-article-file__body {
    min-width: 0;
    flex: 1;
}

.public-info-article-file__name {
    font-weight: 600;
    color: #0f172a;
    word-break: break-word;
}

.public-info-article-file__meta {
    font-size: 0.8125rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.public-info-article-file__action {
    flex-shrink: 0;
}

.public-info-article-sidebar {
    position: sticky;
    top: 6rem;
}

.public-info-article-sidebar__card {
    padding: 1.35rem 1.4rem;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.07);
}

.public-info-article-sidebar__card + .public-info-article-sidebar__card {
    margin-top: 1rem;
}

.public-info-article-sidebar__card--related {
    background: #fff;
}

.public-info-article-sidebar__head {
    margin-bottom: 1.15rem;
}

.public-info-article-sidebar__eyebrow {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.35rem;
}

.public-info-article-sidebar__title {
    margin: 0 0 0.65rem;
    font-size: 1.2rem;
    line-height: 1.3;
}

.public-info-article-sidebar__title a {
    color: inherit;
    text-decoration: none;
}

.public-info-article-sidebar__title a:hover {
    color: var(--brand);
}

.public-info-article-sidebar__facts {
    display: grid;
    gap: 0.75rem;
    margin: 0 0 1.25rem;
}

.public-info-article-sidebar__fact {
    display: grid;
    grid-template-columns: minmax(5.5rem, 6.5rem) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: start;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.public-info-article-sidebar__fact:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.public-info-article-sidebar__fact dt {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}

.public-info-article-sidebar__fact dd {
    margin: 0;
    font-size: 0.875rem;
    color: #0f172a;
    word-break: break-word;
}

.public-info-article-related {
    display: grid;
    gap: 0.55rem;
}

.public-info-article-related__item {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.7rem 0.75rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #f8fafc;
    color: inherit;
    text-decoration: none;
    transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.public-info-article-related__item:hover {
    border-color: rgba(30, 58, 95, 0.18);
    background: #fff;
    color: inherit;
    transform: translateY(-1px);
}

.public-info-article-related__thumb {
    width: 3rem;
    height: 3rem;
    border-radius: 10px;
    overflow: hidden;
    background: #e2e8f0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.public-info-article-related__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.public-info-article-related__thumb--empty {
    color: #64748b;
    font-size: 1rem;
}

.public-info-article-related__content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.public-info-article-related__title {
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.public-info-article-related__date {
    font-size: 0.75rem;
    color: #64748b;
}

.public-info-article-related__arrow {
    color: #94a3b8;
    font-size: 0.75rem;
}

.public-info-article-related__item:hover .public-info-article-related__arrow {
    color: var(--brand);
}

.public-info-article-related__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.65rem;
    padding: 1.25rem 1rem;
    border: 1px dashed rgba(148, 163, 184, 0.55);
    border-radius: 14px;
    background: #f8fafc;
    text-align: center;
    color: #64748b;
    font-size: 0.875rem;
}

.public-info-article-related__empty i {
    font-size: 1.35rem;
    color: #94a3b8;
}

.public-info-article-detail {
    border: 1px solid var(--border);
    border-radius: 16px;
    background: #fff;
    padding: 1.5rem;
}

.public-info-article-detail__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.public-info-article-detail__meta-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 0.2rem;
}

.public-info-article-detail__section {
    margin-top: 1.75rem;
    padding-top: 1.75rem;
    border-top: 1px solid var(--border);
}

.public-info-article-detail__files .project-article-show__file-row:first-child {
    border-top: 1px solid var(--border);
}

@media (max-width: 991.98px) {
    .public-info-article-sidebar {
        position: static;
    }

    .public-info-article-featured {
        aspect-ratio: 16 / 10;
    }

    .public-info-article-prose,
    .public-info-article-block,
    .public-info-article-sidebar__card {
        padding-left: 1.15rem;
        padding-right: 1.15rem;
    }

    .public-info-article-file {
        flex-wrap: wrap;
    }

    .public-info-article-file__action {
        width: 100%;
    }
}

.project-article-type {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.project-article-type i {
    font-size: 0.72rem;
}

.project-article-type--news {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}

.project-article-type--info {
    background: rgba(14, 116, 144, 0.12);
    color: #0e7490;
}

.project-article-type--warning {
    background: rgba(234, 88, 12, 0.14);
    color: #c2410c;
}

.project-article-type--safety {
    background: rgba(220, 38, 38, 0.12);
    color: #b91c1c;
}

.project-article-type--schedule {
    background: rgba(109, 40, 217, 0.12);
    color: #6d28d9;
}

.project-article-type--milestone {
    background: rgba(22, 163, 74, 0.12);
    color: #15803d;
}

.public-info-article-page-hero__type {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.public-info-article-related__type {
    margin-bottom: 0.2rem;
}

/* Data center analytics dashboard */
.dc-sidebar-context {
    margin: 0 0.85rem 0.75rem;
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.dc-sidebar-context__logo {
    margin-bottom: 0.55rem;
}

.dc-sidebar-context__logo img {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    object-fit: cover;
    background: #fff;
}

.dc-sidebar-context__label {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.65);
    margin-bottom: 0.2rem;
}

.dc-sidebar-context__name {
    color: #fff;
    font-weight: 700;
    font-size: 0.88rem;
    line-height: 1.3;
}

.dc-sidebar-context__provider {
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.76rem;
    margin-top: 0.15rem;
}

.dc-analytics-kpi__icon--primary { background: rgba(30, 58, 95, 0.12); color: var(--brand-primary); }
.dc-analytics-kpi__icon--secondary { background: rgba(45, 90, 135, 0.12); color: var(--brand-secondary); }
.dc-analytics-kpi__icon--accent { background: rgba(230, 126, 34, 0.14); color: var(--brand-accent); }
.dc-analytics-kpi__icon--success { background: rgba(22, 163, 74, 0.12); color: #15803d; }
.dc-analytics-kpi__icon--warning { background: rgba(217, 119, 6, 0.12); color: #b45309; }

.dc-analytics-kpi__trend {
    font-size: 0.72rem;
    margin-top: 0.2rem;
    font-weight: 600;
}

.dc-analytics-kpi__trend--up { color: #15803d; }
.dc-analytics-kpi__trend--down { color: #b91c1c; }

.dc-analytics-toolbar__btn { white-space: nowrap; }

.dc-analytics-date-menu {
    min-width: 18rem;
}

.dc-analytics-date-menu .app-form-select,
.dc-analytics-date-menu .dropdown-menu {
    overflow: visible;
}

.dc-analytics-toolbar .dropdown-menu {
    z-index: 1200;
}

#dcAnalyticsExportRoot {
    background: #fff;
}

.dc-analytics-flow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr) 28px minmax(0, 1fr);
    gap: 0.75rem;
    align-items: start;
}

.dc-analytics-flow__heading {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    font-weight: 700;
    margin-bottom: 0.55rem;
}

.dc-analytics-flow__node {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.55rem 0.7rem;
    border-radius: 8px;
    margin-bottom: 0.45rem;
    border: 1px solid var(--border);
    background: #fff;
}

.dc-analytics-flow__node--source { border-left: 3px solid var(--brand-primary); }
.dc-analytics-flow__node--agent { border-left: 3px solid var(--brand-accent); }
.dc-analytics-flow__node--destination { border-left: 3px solid var(--brand-secondary); }

.dc-analytics-flow__node-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.dc-analytics-flow__node-meta {
    font-size: 0.72rem;
    color: #64748b;
}

.dc-analytics-flow__lanes {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding-top: 1.6rem;
}

.dc-analytics-flow__lane {
    display: block;
    height: 4px;
    border-radius: 999px;
    opacity: 0.85;
}

.dc-analytics-flow__lane--primary { background: var(--brand-primary); }
.dc-analytics-flow__lane--accent { background: var(--brand-accent); }
.dc-analytics-flow__lane--secondary { background: var(--brand-secondary); }

.dc-analytics-bar {
    height: 8px;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    overflow: hidden;
}

.dc-analytics-bar__fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand-secondary), var(--brand-accent));
}

.dc-analytics-query-feed__item {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 0.85rem;
    align-items: start;
    padding: 0.9rem 1.1rem;
    border-bottom: 1px solid var(--border);
}

.dc-analytics-query-feed__item:last-child { border-bottom: 0; }

.dc-analytics-query-feed__icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
}

.dc-analytics-query-feed__title {
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--brand-primary);
    margin-bottom: 0.25rem;
}

.dc-analytics-query-feed__badge {
    background: rgba(230, 126, 34, 0.14);
    color: #9a3412;
    margin-right: 0.35rem;
}

.dc-analytics-query-feed__detail {
    font-size: 0.76rem;
    color: #64748b;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    word-break: break-word;
}

.dc-analytics-query-feed__time { padding-top: 0.15rem; }

.dc-analytics-alerts__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.85rem;
}

.dc-analytics-alert {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    height: 100%;
    padding: 1rem;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: #fff;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
}

.dc-analytics-alert__icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: grid;
    place-items: center;
}

.dc-analytics-alert--warning .dc-analytics-alert__icon { background: rgba(217, 119, 6, 0.12); color: #b45309; }
.dc-analytics-alert--info .dc-analytics-alert__icon { background: rgba(45, 90, 135, 0.12); color: var(--brand-secondary); }
.dc-analytics-alert--success .dc-analytics-alert__icon { background: rgba(22, 163, 74, 0.12); color: #15803d; }
.dc-analytics-alert--accent .dc-analytics-alert__icon { background: rgba(230, 126, 34, 0.14); color: var(--brand-accent); }

.dc-analytics-alert__title {
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.dc-analytics-alert__message {
    font-size: 0.78rem;
    color: #64748b;
}

.dc-analytics-alert__action { align-self: flex-start; }

@media (max-width: 991.98px) {
    .dc-analytics-flow {
        grid-template-columns: 1fr;
    }

    .dc-analytics-flow__lanes {
        display: none;
    }
}

.dc-source-badge {
    font-weight: 600;
    font-size: 0.72rem;
}

.dc-source-badge--pending {
    background: rgba(217, 119, 6, 0.14);
    color: #b45309;
}

.dc-source-badge--approved {
    background: rgba(22, 163, 74, 0.12);
    color: #15803d;
}

.dc-source-badge--disabled {
    background: rgba(100, 116, 139, 0.14);
    color: #475569;
}

.dc-admin-source-stat {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 1rem 1.1rem;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: #fff;
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
}

.dc-admin-source-stat__value {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.dc-admin-source-stat__label {
    font-size: 0.78rem;
    color: #64748b;
}

.dc-admin-source-stat--approved .dc-admin-source-stat__value { color: #15803d; }
.dc-admin-source-stat--disabled .dc-admin-source-stat__value { color: #475569; }

.dc-settings-logo-card {
    display: grid;
    grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.02), rgba(255, 255, 255, 0.9));
    box-shadow: 0 4px 18px rgba(30, 58, 95, 0.05);
}

.dc-settings-panel-fields .form-label {
    margin-bottom: 0.35rem;
}

.dc-settings-panel-fields .form-text {
    margin-top: 0.35rem;
}

.dc-settings-logo-card__current {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
    padding: 0.85rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--border);
}

.dc-settings-logo-card__preview {
    width: 88px;
    height: 88px;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: rgba(30, 58, 95, 0.04);
    display: grid;
    place-items: center;
    overflow: hidden;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.dc-settings-logo-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dc-settings-logo-card__initials {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.dc-settings-logo-card__meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

.dc-settings-logo-card__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-secondary);
}

.dc-settings-logo-card__name {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary);
    line-height: 1.35;
    word-break: break-word;
}

.dc-settings-logo-card__remove {
    margin-top: 0.15rem;
}

.dc-settings-logo-card__upload {
    min-width: 0;
}

.dc-settings-logo-card__zone.file-upload-zone {
    margin-top: 0;
    height: 100%;
}

.dc-settings-logo-card__zone .file-upload-zone__drop {
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.file-upload-zone--compact .file-upload-zone__drop {
    padding: 1rem;
}

.file-upload-zone--compact .file-upload-zone__empty {
    gap: 0.5rem;
}

.file-upload-zone--compact .file-upload-zone__icon {
    width: 2.6rem;
    height: 2.6rem;
    font-size: 1rem;
}

.file-upload-zone--compact .file-upload-zone__title {
    font-size: 0.86rem;
}

.file-upload-zone--compact .file-upload-zone__hint {
    font-size: 0.74rem;
}

@media (max-width: 767.98px) {
    .dc-settings-logo-card {
        grid-template-columns: 1fr;
    }
}

/* Data center knowledge ingestion */
.dc-knowledge-alert {
    border-radius: 12px;
}

.dc-knowledge-provider-card {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(30, 58, 95, 0.06);
}

.dc-knowledge-provider-card__hero {
    height: 5.5rem;
    background:
        radial-gradient(circle at top right, rgba(230, 126, 34, 0.22), transparent 55%),
        linear-gradient(135deg, rgba(30, 58, 95, 0.96) 0%, rgba(45, 90, 135, 0.92) 100%);
}

.dc-knowledge-provider-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    margin-top: -2.75rem;
    padding: 0 1.25rem 1.25rem;
    text-align: center;
}

.dc-knowledge-provider-card__avatar-wrap {
    margin-bottom: 0.85rem;
}

.dc-knowledge-provider-card__avatar {
    width: 5.5rem;
    height: 5.5rem;
    border: 4px solid #fff;
    border-radius: 18px;
    object-fit: cover;
    box-shadow: 0 12px 28px rgba(30, 58, 95, 0.18);
}

.dc-knowledge-provider-card__avatar--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, rgba(30, 58, 95, 0.08), rgba(45, 90, 135, 0.14));
    color: var(--brand-primary);
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.dc-knowledge-provider-card__identity {
    width: 100%;
    margin-bottom: 1rem;
}

.dc-knowledge-provider-card__eyebrow {
    margin-bottom: 0.35rem;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.dc-knowledge-provider-card__company {
    margin: 0;
    color: #0f172a;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.35;
}

.dc-knowledge-provider-card__center {
    margin: 0.35rem 0 0;
    color: #64748b;
    font-size: 0.875rem;
    line-height: 1.45;
}

.dc-knowledge-provider-card__tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.45rem;
    width: 100%;
    margin-bottom: 1rem;
}

.dc-knowledge-provider-card__tag {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 999px;
    background: #f8fafc;
    color: #334155;
    font-size: 0.75rem;
    font-weight: 600;
}

.dc-knowledge-provider-card__tag i {
    color: var(--brand-secondary);
    font-size: 0.68rem;
}

.dc-knowledge-provider-card__tag--ok {
    border-color: rgba(39, 174, 96, 0.18);
    background: rgba(39, 174, 96, 0.08);
    color: #1e8449;
}

.dc-knowledge-provider-card__tag--ok i {
    color: #27ae60;
}

.dc-knowledge-provider-card__tag--warn {
    border-color: rgba(243, 156, 18, 0.22);
    background: rgba(243, 156, 18, 0.1);
    color: #9a6700;
}

.dc-knowledge-provider-card__tag--warn i {
    color: #f39c12;
}

.dc-knowledge-provider-card__tag--muted {
    border-color: rgba(100, 116, 139, 0.18);
    background: rgba(148, 163, 184, 0.12);
    color: #475569;
}

.dc-knowledge-provider-card__footer {
    width: 100%;
    margin-top: auto;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.dc-knowledge-provider-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: 100%;
    padding: 0.55rem 0.85rem;
    border-radius: 10px;
    color: var(--brand-primary);
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.dc-knowledge-provider-card__link:hover {
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
}

.dc-knowledge-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.dc-knowledge-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.72rem;
    font-weight: 600;
}

.dc-knowledge-provider-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(39, 174, 96, 0.1);
    color: #1e8449;
    font-size: 0.75rem;
    font-weight: 600;
}

.dc-knowledge-language-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    padding: 0.18rem 0.45rem;
    border-radius: 8px;
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.dc-knowledge-topic-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.1);
    color: #b45309;
    font-size: 0.72rem;
    font-weight: 600;
}

.dc-portfolio-topics-card {
    overflow: hidden;
}

.dc-portfolio-topics {
    padding-top: 0.25rem;
}

.dc-portfolio-topics-accordion {
    --bs-accordion-border-color: rgba(30, 58, 95, 0.1);
    --bs-accordion-btn-padding-x: 1rem;
    --bs-accordion-btn-padding-y: 0.85rem;
    --bs-accordion-body-padding-x: 1rem;
    --bs-accordion-body-padding-y: 1rem;
    --bs-accordion-active-color: #1e293b;
    --bs-accordion-active-bg: rgba(30, 58, 95, 0.03);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.2rem rgba(30, 58, 95, 0.12);
}

.dc-portfolio-topics-accordion .accordion-item {
    overflow: hidden;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 14px !important;
    background: #fff;
}

.dc-portfolio-topics-accordion .accordion-item + .accordion-item {
    margin-top: 0.65rem;
}

.dc-portfolio-topics__toggle {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-weight: 700;
    box-shadow: none !important;
}

.dc-portfolio-topics__toggle::after {
    flex-shrink: 0;
    margin-left: 0.35rem;
}

.dc-portfolio-topics__toggle:not(.collapsed) {
    background: rgba(30, 58, 95, 0.03);
}

.dc-portfolio-topics__group-count {
    margin-left: auto;
    margin-right: 0.35rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.12);
    color: #b45309;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.dc-portfolio-topics__group-body {
    padding-top: 0.25rem;
}

.dc-portfolio-topics__count {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(39, 174, 96, 0.1);
    color: #1e8449;
    font-size: 0.75rem;
    font-weight: 700;
}

.dc-portfolio-topics__group-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 0.85rem;
}

.dc-portfolio-topics__group-title {
    margin: 0;
    color: #1e293b;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-transform: none;
    text-align: left;
}

.dc-portfolio-topics__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9.75rem, 1fr));
    gap: 0.85rem;
}

.dc-portfolio-topic-option {
    position: relative;
    display: block;
    margin: 0;
    cursor: pointer;
}

.dc-portfolio-topic-option__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.dc-portfolio-topic-option__card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 7.25rem;
    padding: 0.95rem 0.7rem 0.85rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.04);
    text-align: center;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.dc-portfolio-topic-option__check {
    position: absolute;
    top: 0.55rem;
    right: 0.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: transparent;
    font-size: 0.62rem;
    transform: scale(0.85);
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.dc-portfolio-topic-option__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 14px;
    background: rgba(30, 58, 95, 0.07);
    color: var(--brand-secondary);
    font-size: 1rem;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.dc-portfolio-topic-option__name {
    font-size: 0.8rem;
    font-weight: 700;
    color: #334155;
    line-height: 1.35;
}

.dc-portfolio-topic-option:hover .dc-portfolio-topic-option__card {
    transform: translateY(-2px);
    border-color: rgba(45, 90, 135, 0.22);
    box-shadow: 0 10px 24px rgba(30, 58, 95, 0.1);
}

.dc-portfolio-topic-option:hover .dc-portfolio-topic-option__icon {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-primary);
}

.dc-portfolio-topic-option__input:checked + .dc-portfolio-topic-option__card,
.dc-portfolio-topic-card--selected .dc-portfolio-topic-option__card {
    transform: translateY(-3px);
    border-color: rgba(230, 126, 34, 0.45);
    background: linear-gradient(180deg, #fffaf5 0%, #fff4e8 100%);
    box-shadow:
        0 14px 30px rgba(230, 126, 34, 0.18),
        0 0 0 3px rgba(230, 126, 34, 0.12);
}

.dc-portfolio-topic-option__input:checked + .dc-portfolio-topic-option__card .dc-portfolio-topic-option__check,
.dc-portfolio-topic-card--selected .dc-portfolio-topic-option__card .dc-portfolio-topic-option__check {
    background: var(--brand-accent);
    color: #fff;
    transform: scale(1);
    box-shadow: 0 4px 10px rgba(230, 126, 34, 0.35);
}

.dc-portfolio-topic-option__input:checked + .dc-portfolio-topic-option__card .dc-portfolio-topic-option__icon,
.dc-portfolio-topic-card--selected .dc-portfolio-topic-option__card .dc-portfolio-topic-option__icon {
    background: rgba(230, 126, 34, 0.16);
    color: var(--brand-accent);
    transform: scale(1.04);
}

.dc-portfolio-topic-option__input:checked + .dc-portfolio-topic-option__card .dc-portfolio-topic-option__name,
.dc-portfolio-topic-card--selected .dc-portfolio-topic-option__card .dc-portfolio-topic-option__name {
    color: #9a3412;
}

.dc-portfolio-topic-option__input:focus-visible + .dc-portfolio-topic-option__card {
    outline: 2px solid rgba(30, 58, 95, 0.35);
    outline-offset: 3px;
}

@media (max-width: 575.98px) {
    .dc-portfolio-topics__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.dc-knowledge-status {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
}

.dc-knowledge-status--pending,
.dc-knowledge-status--processing {
    background: rgba(245, 158, 11, 0.15);
    color: #b45309;
}

.dc-knowledge-status--indexed {
    background: rgba(39, 174, 96, 0.12);
    color: #1e8449;
}

.dc-knowledge-status--failed {
    background: rgba(239, 68, 68, 0.12);
    color: #b91c1c;
}

.dc-knowledge-status--skipped {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.dc-knowledge-tabs .nav-link {
    font-size: 0.875rem;
    font-weight: 600;
    color: #64748b;
}

.dc-knowledge-tabs .nav-link.active {
    color: var(--brand-primary);
}

.dc-knowledge-badge-preview {
    padding: 0.75rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.03);
    border: 1px solid rgba(226, 232, 240, 0.9);
}

.dc-knowledge-badge-preview__title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #334155;
}

.dc-knowledge-link {
    color: var(--brand-primary);
    text-decoration: none;
}

.dc-knowledge-link:hover {
    text-decoration: underline;
}

.dc-knowledge-table-wrap.data-table-responsive {
    scrollbar-gutter: stable;
}

table.data-table.dc-knowledge-table {
    min-width: 80rem;
}

table.data-table.dc-knowledge-table th.data-table-cell-actions,
table.data-table.dc-knowledge-table td.data-table-cell-actions {
    min-width: 14rem;
}

.dc-knowledge-index-progress {
    text-align: left;
}

.dc-knowledge-index-progress__label {
    font-size: 0.875rem;
    color: #334155;
    margin-bottom: 0.75rem;
    min-height: 1.25rem;
}

.dc-knowledge-index-progress__bar {
    height: 0.65rem;
    border-radius: 999px;
    background: #e2e8f0;
}

.dc-knowledge-index-progress__bar .progress-bar {
    background-color: var(--brand-primary, #1e3a5f);
}

.dc-knowledge-index-progress__percent {
    margin-top: 0.45rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    text-align: right;
}

.dc-knowledge-index-progress__error {
    margin-top: 0.75rem;
    font-size: 0.8rem;
    color: #b91c1c;
    white-space: pre-wrap;
}

.dc-knowledge-table td {
    vertical-align: top;
}

.dc-knowledge-filters.worker-task-timeline-filters {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.dc-knowledge-filters .worker-task-timeline-filters__context {
    margin-bottom: 0;
}

.dc-kb-context-meta {
    margin: 0 0 1rem;
}

.dc-kb-page .dc-kb-stat-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(226, 232, 240, 0.95);
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.dc-kb-page .dc-kb-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    opacity: 0.85;
}

.dc-kb-page .dc-kb-stat-card--chunks::before {
    background: linear-gradient(90deg, var(--brand-accent) 0%, #f39c12 100%);
}

.dc-kb-page .dc-kb-stat-card--vectors::before {
    background: linear-gradient(90deg, var(--brand-success) 0%, #2ecc71 100%);
}

.dc-kb-page .dc-kb-stat-card--storage::before {
    background: linear-gradient(90deg, #64748b 0%, #94a3b8 100%);
}

.dc-kb-page .dc-kb-stat-card:hover {
    transform: translateY(-2px);
    border-color: rgba(45, 90, 135, 0.2);
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.1);
}

.dc-kb-page .dc-kb-panel-card {
    border: 1px solid rgba(226, 232, 240, 0.95);
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
}

.dc-kb-page .dc-kb-panel-card__head {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.05rem 1.2rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.04) 0%, rgba(45, 90, 135, 0.03) 100%);
}

.dc-kb-page .dc-kb-panel-card__head-icon {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 0.95rem;
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.18);
}

.dc-kb-page .dc-kb-panel-card--activity .dc-kb-panel-card__head-icon {
    background: linear-gradient(135deg, rgba(39, 174, 96, 0.95) 0%, #2ecc71 100%);
    box-shadow: 0 6px 16px rgba(39, 174, 96, 0.2);
}

.dc-kb-context-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 0.25rem;
}

.dc-kb-context-tile {
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    background: rgba(255, 255, 255, 0.85);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.dc-kb-context-tile--wide {
    grid-column: 1 / -1;
}

.dc-kb-context-tile__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.35rem;
}

.dc-kb-context-tile__value {
    font-size: 0.84rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.4;
    word-break: break-word;
}

.dc-kb-context-meta__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.dc-kb-context-meta__row:last-child {
    border-bottom: 0;
}

.dc-kb-context-meta__row dt {
    margin: 0;
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 600;
}

.dc-kb-context-meta__row dd {
    margin: 0;
    font-size: 0.84rem;
    color: #1e293b;
    text-align: right;
}

.dc-kb-context-meta__code {
    font-size: 0.78rem;
    color: #334155;
    background: #f1f5f9;
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
}

.dc-kb-context-description,
.dc-kb-context-topics {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
}

.dc-kb-context-description__label,
.dc-kb-context-topics__label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0;
}

.dc-kb-context-topics__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.dc-kb-context-topics__header .dc-portfolio-topics__count {
    flex-shrink: 0;
}

.dc-portfolio-topic-card {
    display: block;
}

.dc-kb-context-topics__grid {
    grid-template-columns: repeat(auto-fill, minmax(7.35rem, 1fr));
    gap: 0.65rem;
}

.dc-kb-context-topics__grid .dc-portfolio-topic-option__card {
    min-height: 6.35rem;
    padding: 0.8rem 0.55rem 0.7rem;
    border-radius: 14px;
}

.dc-kb-context-topics__grid .dc-portfolio-topic-option__icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 12px;
    font-size: 0.88rem;
}

.dc-kb-context-topics__grid .dc-portfolio-topic-option__name {
    font-size: 0.74rem;
}

.dc-kb-activity-tabs .dc-knowledge-tabs {
    margin-bottom: 0;
    border-bottom: 1px solid var(--border);
}

.dc-kb-page .dc-kb-activity-tabs__toolbar {
    padding: 0.85rem 1rem;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, rgba(255, 255, 255, 0.6) 100%);
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.dc-kb-page .dc-kb-activity-tabs__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0;
    padding: 0;
    border: 0;
}

.dc-kb-page .dc-kb-activity-tabs__nav .nav-item {
    flex: 1 1 0;
    min-width: 9rem;
}

.dc-kb-page .dc-kb-activity-tabs__btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 3.35rem;
    padding: 0.55rem 0.85rem;
    margin: 0;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 12px;
    background: #fff;
    color: #64748b;
    font-size: 0.8125rem;
    font-weight: 600;
    text-align: left;
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.dc-kb-page .dc-kb-activity-tabs__btn:hover {
    border-color: rgba(45, 90, 135, 0.25);
    color: var(--brand-primary);
    transform: translateY(-1px);
}

.dc-kb-page .dc-kb-activity-tabs__btn.active,
.dc-kb-page .dc-kb-activity-tabs__btn.active:hover {
    border-color: rgba(45, 90, 135, 0.35);
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.2);
    transform: none;
}

.dc-kb-page .dc-kb-activity-tabs__btn-icon {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.82rem;
    transition: background 0.18s ease, color 0.18s ease;
}

.dc-kb-page .dc-kb-activity-tabs__btn.active .dc-kb-activity-tabs__btn-icon {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.dc-kb-page .dc-kb-activity-tabs__btn-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    min-width: 0;
}

.dc-kb-page .dc-kb-activity-tabs__btn-label {
    line-height: 1.25;
}

.dc-kb-page .dc-kb-activity-tabs__btn-stat {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #94a3b8;
}

.dc-kb-page .dc-kb-activity-tabs__btn.active .dc-kb-activity-tabs__btn-stat {
    color: rgba(255, 255, 255, 0.82);
}

.dc-kb-page .dc-kb-activity-tabs__content {
    padding: 1rem 1rem 1.1rem;
}

.dc-kb-page .dc-kb-chart-panel {
    padding: 0.95rem 1rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(226, 232, 240, 0.95);
    background: linear-gradient(180deg, #fff 0%, rgba(248, 250, 252, 0.75) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

.dc-kb-page .dc-kb-chart-panel__title {
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.2rem;
}

.dc-kb-page .dc-kb-chart-panel__help {
    font-size: 0.76rem;
    color: #64748b;
    line-height: 1.45;
}

.dc-kb-page .dc-kb-chart-panel__canvas.dc-kb-line-chart--tab {
    height: 280px;
    margin-top: 0.85rem;
    padding: 0.35rem 0.15rem 0;
}

.dc-kb-activity-tabs__content {
    padding-top: 1rem;
}

.dc-kb-line-chart-block {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.dc-kb-line-chart-block__title {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.2rem;
}

.dc-kb-line-chart--tab {
    height: 280px;
    margin-top: 0.75rem;
}

.dc-kb-line-chart-block__help {
    font-size: 0.76rem;
    color: #64748b;
}

.dc-kb-line-chart {
    position: relative;
    height: 200px;
    margin-top: 0.75rem;
}

.dc-kb-line-chart--compact {
    height: 170px;
}

.dc-kb-breakdown__heading {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.65rem;
}

.dc-kb-breakdown-chart {
    position: relative;
    height: 220px;
}

.dc-kb-breakdown-chart__empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
}

.dc-kb-breakdown-charts {
    --bs-gutter-y: 1rem;
}

.dc-kb-breakdown__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid rgba(226, 232, 240, 0.7);
    font-size: 0.84rem;
}

.dc-kb-breakdown__row:last-child {
    border-bottom: 0;
}

.dc-kb-breakdown__count {
    font-weight: 700;
    color: var(--brand-primary);
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .dc-kb-page .dc-kb-context-grid {
        grid-template-columns: 1fr;
    }

    .dc-kb-page .dc-kb-activity-tabs__nav .nav-item {
        flex: 1 1 100%;
        min-width: 0;
    }

    .dc-kb-page .dc-kb-activity-tabs__btn {
        min-height: 3rem;
    }

    .dc-kb-page .dc-kb-chart-panel__canvas.dc-kb-line-chart--tab {
        height: 220px;
    }
}

.dc-kb-chunk-source {
    min-width: 14rem;
    max-width: 24rem;
}

.dc-kb-source-file {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.65rem;
    max-width: 100%;
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 10px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    color: #334155;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

a.dc-kb-source-file:hover {
    border-color: rgba(45, 90, 135, 0.28);
    color: var(--brand-primary);
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.dc-kb-source-file--static {
    cursor: default;
}

.dc-kb-source-file__icon {
    flex-shrink: 0;
    width: 1.85rem;
    height: 1.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 0.82rem;
}

.dc-kb-source-file--external .dc-kb-source-file__icon {
    background: rgba(39, 174, 96, 0.1);
    color: var(--brand-success);
}

.dc-kb-source-file--static .dc-kb-source-file__icon {
    background: rgba(100, 116, 139, 0.1);
    color: #64748b;
}

.dc-kb-source-file__copy {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.dc-kb-source-file__name {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.35;
    word-break: break-word;
}

.dc-kb-source-file__meta {
    font-size: 0.72rem;
    color: #94a3b8;
    line-height: 1.3;
}

.dc-kb-chunk-preview {
    max-width: 36rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #475569;
    white-space: normal;
}

table.data-table.dc-kb-chunks-table {
    min-width: 42rem;
}

.sa-vector-status {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.sa-vector-status--ok {
    background: rgba(39, 174, 96, 0.12);
    color: #1e8449;
}

.sa-vector-status--warn {
    background: rgba(245, 158, 11, 0.15);
    color: #b45309;
}

.sa-vector-status--danger {
    background: rgba(239, 68, 68, 0.12);
    color: #b91c1c;
}

.sa-vector-status--muted {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.sa-vector-meta {
    margin: 0;
}

.sa-vector-meta__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

.sa-vector-meta__row:last-child {
    border-bottom: 0;
}

.sa-vector-meta__row dt {
    margin: 0;
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 600;
}

.sa-vector-meta__row dd {
    margin: 0;
    font-size: 0.84rem;
    color: #334155;
    text-align: right;
    word-break: break-word;
}

.sa-vector-checklist {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.55rem;
}

.sa-vector-checklist li {
    position: relative;
    padding-left: 1.35rem;
    font-size: 0.84rem;
    color: #475569;
}

.sa-vector-checklist li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.35rem;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 999px;
    background: #cbd5e1;
}

.sa-vector-checklist li.is-ok::before {
    background: #27ae60;
}

.sa-vector-checklist li.is-bad::before {
    background: #ef4444;
}

.sa-vector-banner {
    border-radius: 12px;
}

.dc-vector-status-banner .badge {
    font-size: 0.75rem;
    font-weight: 600;
}

.sa-vector-collection-banner {
    border-radius: 12px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.sa-vector-collection-banner__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.sa-vector-collection-banner__label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.15rem;
}

.sa-vector-collection-banner__value {
    font-size: 0.875rem;
    font-weight: 600;
    color: #334155;
    word-break: break-word;
}

@media (max-width: 767.98px) {
    .sa-vector-collection-banner__grid {
        grid-template-columns: 1fr;
    }
}

/* AI Chat Agent */
.ai-chat-agent__project-scope {
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.06);
    padding: 1rem 1.1rem 1.1rem;
}

.ai-chat-agent__project-scope-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    margin-bottom: 0.85rem;
    flex-wrap: wrap;
}

.ai-chat-agent__project-scope-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0 0 0.2rem;
}

.ai-chat-agent__project-scope-help {
    font-size: 0.8rem;
    color: #64748b;
    margin: 0;
    max-width: 52ch;
    line-height: 1.45;
}

.ai-chat-agent__project-scope-active {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.08);
    border: 1px solid rgba(30, 58, 95, 0.12);
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ai-chat-agent__project-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
    gap: 0.75rem;
}

.ai-chat-agent-project-card {
    position: relative;
    display: grid;
    gap: 0.45rem;
    width: 100%;
    text-align: left;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 14px;
    background: #fff;
    padding: 0.85rem 0.9rem 0.8rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease, background-color 0.15s ease;
    overflow: hidden;
}

.ai-chat-agent-project-card:hover {
    border-color: rgba(45, 90, 135, 0.28);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(30, 58, 95, 0.08);
}

.ai-chat-agent-project-card.is-selected {
    border-color: var(--brand-secondary);
    background: linear-gradient(180deg, rgba(45, 90, 135, 0.06) 0%, #fff 100%);
    box-shadow: 0 12px 28px rgba(30, 58, 95, 0.12);
}

.ai-chat-agent-project-card__accent {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    opacity: 0;
    transition: opacity 0.15s ease;
}

.ai-chat-agent-project-card.is-selected .ai-chat-agent-project-card__accent,
.ai-chat-agent-project-card:hover .ai-chat-agent-project-card__accent {
    opacity: 1;
}

.ai-chat-agent-project-card__check {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.62rem;
    color: #fff;
    background: var(--brand-secondary);
    opacity: 0;
    transform: scale(0.85);
    transition: opacity 0.15s ease, transform 0.15s ease;
}

.ai-chat-agent-project-card.is-selected .ai-chat-agent-project-card__check {
    opacity: 1;
    transform: scale(1);
}

.ai-chat-agent-project-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    padding-right: 1.5rem;
}

.ai-chat-agent-project-card__location {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
}

.ai-chat-agent-project-card__location span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ai-chat-agent-project-card__status {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.18rem 0.45rem;
    border-radius: 999px;
}

.ai-chat-agent-project-card__status-dot {
    width: 0.35rem;
    height: 0.35rem;
    border-radius: 999px;
    background: currentColor;
}

.ai-chat-agent-project-card__status--active {
    color: #15803d;
    background: rgba(39, 174, 96, 0.12);
}

.ai-chat-agent-project-card__status--ended {
    color: #64748b;
    background: rgba(100, 116, 139, 0.12);
}

.ai-chat-agent-project-card__number {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
}

.ai-chat-agent-project-card__name {
    font-size: 0.92rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.3;
}

.ai-chat-agent-project-card__template {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    color: #64748b;
}

.ai-chat-agent-project-card__progress-wrap {
    display: grid;
    gap: 0.3rem;
    margin-top: 0.15rem;
}

.ai-chat-agent-project-card__progress-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.72rem;
    color: #64748b;
}

.ai-chat-agent-project-card__progress-meta strong {
    color: var(--brand-primary);
    font-size: 0.78rem;
}

.ai-chat-agent-project-card__progress-track {
    display: block;
    height: 0.35rem;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.22);
    overflow: hidden;
}

.ai-chat-agent-project-card__progress-bar {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
}

.ai-chat-agent-project-card__tasks {
    font-size: 0.68rem;
    color: #94a3b8;
}

.ai-chat-agent__project-empty {
    text-align: center;
    padding: 1.5rem 1rem;
    border: 1px dashed rgba(148, 163, 184, 0.45);
    border-radius: 12px;
    background: rgba(248, 250, 252, 0.8);
}

.ai-chat-agent__project-empty-icon {
    width: 2.5rem;
    height: 2.5rem;
    margin: 0 auto 0.65rem;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 1rem;
}

.ai-chat-agent__project-empty-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #334155;
    margin: 0 0 0.25rem;
}

.ai-chat-agent__project-empty-text {
    font-size: 0.8rem;
    color: #64748b;
    margin: 0;
}

.ai-chat-agent__panel-head-main {
    min-width: 0;
}

.ai-chat-agent__panel-context {
    font-size: 0.76rem;
    color: #64748b;
    margin-top: 0.2rem;
}

.ai-chat-agent__panel-context strong {
    color: var(--brand-primary);
}

.ai-chat-agent__intro-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(30, 58, 95, 0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.ai-chat-agent__intro-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    z-index: 2;
}

.ai-chat-agent__intro-card:hover {
    transform: translateY(-2px);
    border-color: rgba(45, 90, 135, 0.2);
    box-shadow: 0 16px 40px rgba(30, 58, 95, 0.12);
}

.ai-chat-agent__intro-hero {
    position: relative;
    padding: 1.1rem 1.15rem 1rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.04) 0%, rgba(45, 90, 135, 0.03) 100%);
}

.ai-chat-agent__intro-hero-content {
    position: relative;
}

.ai-chat-agent__intro-icon-wrap {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0.75rem;
}

.ai-chat-agent__intro-icon {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 1.15rem;
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.18);
}

.ai-chat-agent__intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.08);
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.ai-chat-agent__intro-badge i {
    font-size: 0.62rem;
    color: var(--brand-secondary);
}

.ai-chat-agent__intro-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0 0 0.35rem;
    letter-spacing: -0.01em;
}

.ai-chat-agent__intro-text {
    font-size: 0.84rem;
    color: #64748b;
    margin: 0;
    line-height: 1.55;
}

.ai-chat-agent__intro-body {
    padding: 1rem 1rem 1.1rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.ai-chat-agent__features {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.55rem;
}

.ai-chat-agent__feature {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.7rem;
    align-items: center;
    padding: 0.72rem 0.8rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 12px;
    background: #fff;
    transition: border-color 0.15s ease, background-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.ai-chat-agent__feature:hover {
    border-color: rgba(59, 130, 246, 0.28);
    background: rgba(59, 130, 246, 0.03);
    transform: translateX(2px);
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.06);
}

.ai-chat-agent__feature-icon {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.88rem;
}

.ai-chat-agent__feature:nth-child(1) .ai-chat-agent__feature-icon {
    background: rgba(59, 130, 246, 0.12);
    color: #2563eb;
}

.ai-chat-agent__feature:nth-child(2) .ai-chat-agent__feature-icon {
    background: rgba(39, 174, 96, 0.12);
    color: var(--brand-success);
}

.ai-chat-agent__feature:nth-child(3) .ai-chat-agent__feature-icon {
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.ai-chat-agent__feature-copy {
    display: grid;
    gap: 0.12rem;
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.35;
    min-width: 0;
}

.ai-chat-agent__feature-copy strong {
    color: #1e293b;
    font-size: 0.86rem;
    font-weight: 700;
}

.ai-chat-agent__feature-arrow {
    font-size: 0.68rem;
    color: #cbd5e1;
    transition: color 0.15s ease, transform 0.15s ease;
}

.ai-chat-agent__feature:hover .ai-chat-agent__feature-arrow {
    color: #3b82f6;
    transform: translateX(2px);
}

.ai-chat-agent__history-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 32px rgba(30, 58, 95, 0.08);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.ai-chat-agent__history-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    z-index: 2;
}

.ai-chat-agent__history-card:hover {
    border-color: rgba(45, 90, 135, 0.2);
    box-shadow: 0 14px 36px rgba(30, 58, 95, 0.1);
}

.ai-chat-agent__history-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.04) 0%, rgba(45, 90, 135, 0.03) 100%);
}

.ai-chat-agent__history-head-main {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.ai-chat-agent__history-head-icon {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 0.92rem;
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.18);
}

.ai-chat-agent__history-title {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin: 0 0 0.15rem;
    letter-spacing: -0.01em;
}

.ai-chat-agent__history-subtitle {
    font-size: 0.76rem;
    color: #64748b;
    margin: 0;
}

.ai-chat-agent__history-count {
    flex-shrink: 0;
    min-width: 1.65rem;
    height: 1.65rem;
    padding: 0 0.45rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.08);
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.ai-chat-agent__history-body {
    padding: 0.75rem;
    flex: 1 1 auto;
    min-height: 0;
}

.ai-chat-agent__history-list {
    display: grid;
    gap: 0.5rem;
    max-height: 17.5rem;
    overflow-y: auto;
    padding-right: 0.15rem;
}

.ai-chat-agent__history-list::-webkit-scrollbar {
    width: 5px;
}

.ai-chat-agent__history-list::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.55);
    border-radius: 999px;
}

.ai-chat-agent__history-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.7rem;
    align-items: center;
    width: 100%;
    text-align: left;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 12px;
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
    padding: 0.72rem 0.78rem;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.ai-chat-agent__history-item:hover {
    border-color: rgba(59, 130, 246, 0.28);
    background: rgba(59, 130, 246, 0.04);
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.06);
}

.ai-chat-agent__history-item.is-active {
    border-color: rgba(59, 130, 246, 0.45);
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(59, 130, 246, 0.04) 100%);
    box-shadow: 0 8px 20px rgba(59, 130, 246, 0.12);
}

.ai-chat-agent__history-item-icon {
    flex-shrink: 0;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.82rem;
    color: #64748b;
    background: rgba(148, 163, 184, 0.12);
    transition: background-color 0.15s ease, color 0.15s ease;
}

.ai-chat-agent__history-item.is-active .ai-chat-agent__history-item-icon {
    color: #2563eb;
    background: rgba(59, 130, 246, 0.16);
}

.ai-chat-agent__history-item-content {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.ai-chat-agent__history-item-title {
    font-size: 0.84rem;
    font-weight: 700;
    color: #1e293b;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ai-chat-agent__history-item-preview {
    font-size: 0.74rem;
    color: #64748b;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ai-chat-agent__history-item-time {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.7rem;
    color: #94a3b8;
    margin-top: 0.05rem;
}

.ai-chat-agent__history-item-time i {
    font-size: 0.65rem;
}

.ai-chat-agent__history-item-indicator {
    flex-shrink: 0;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: transparent;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.ai-chat-agent__history-item.is-active .ai-chat-agent__history-item-indicator {
    background: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
}

.ai-chat-agent__history-footer {
    padding: 0.75rem 0.85rem 0.95rem;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.ai-chat-agent__new-chat-btn {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    border: 0;
    border-radius: 12px;
    padding: 0.72rem 1rem;
    font-size: 0.86rem;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.2);
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.ai-chat-agent__new-chat-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(30, 58, 95, 0.24);
    filter: brightness(1.03);
}

.ai-chat-agent__new-chat-btn-icon {
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.16);
    font-size: 0.72rem;
}

.ai-chat-agent__panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.ai-chat-agent__panel-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.ai-chat-agent__panel-action-btn.btn {
    width: 2.1rem;
    height: 2.1rem;
    min-width: 2.1rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ai-chat-agent__panel--fullscreen {
    position: fixed;
    inset: 0;
    z-index: 1250;
    width: 100%;
    height: 100%;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border-radius: 0 !important;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
}

.ai-chat-agent__panel--fullscreen .admin-panel-card__head {
    flex-shrink: 0;
}

.ai-chat-agent__panel--fullscreen .ai-chat-agent__panel-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    overflow: hidden;
}

.ai-chat-agent__panel--fullscreen .ai-chat-agent__messages {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
}

body.ai-chat-agent--fullscreen {
    overflow: hidden;
}

.ai-chat-agent__panel-body {
    display: grid;
    gap: 1rem;
}

.ai-chat-agent__messages {
    display: grid;
    gap: 1.15rem;
    min-height: 20rem;
    max-height: 32rem;
    overflow-y: auto;
    padding-right: 0.25rem;
    align-content: start;
}

.ai-chat-agent__message {
    display: flex;
    gap: 0.65rem;
    align-items: flex-end;
}

.ai-chat-agent__message--user {
    justify-content: flex-end;
}

.ai-chat-agent__avatar {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 700;
}

.ai-chat-agent__avatar--user {
    background: var(--brand-primary);
    color: #fff;
}

.ai-chat-agent__avatar--assistant {
    background: var(--brand-primary);
    color: #fff;
    font-size: 0.85rem;
}

.ai-chat-agent__bubble {
    max-width: min(100%, 42rem);
    border-radius: 14px;
    padding: 0.85rem 1rem;
    position: relative;
}

.ai-chat-agent__bubble--user {
    background: #fff;
    border: 1px solid var(--brand-primary);
    color: #334155;
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.06);
}

.ai-chat-agent__bubble--user p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.45;
    color: #1e293b;
}

.ai-chat-agent__bubble--user .ai-chat-agent__message-time {
    color: #64748b;
    opacity: 1;
}

.ai-chat-agent__bubble--assistant {
    background: #f8fafc;
    border: 1px solid var(--border);
    color: #334155;
    font-size: 0.88rem;
    line-height: 1.5;
}

.ai-chat-agent__message-time {
    display: block;
    margin-top: 0.45rem;
    font-size: 0.72rem;
    opacity: 0.75;
}

.ai-chat-agent__stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.85rem;
}

.ai-chat-agent__stat {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0.65rem 0.5rem;
    text-align: center;
}

.ai-chat-agent__stat-icon {
    display: block;
    color: #64748b;
    font-size: 0.78rem;
    margin-bottom: 0.25rem;
}

.ai-chat-agent__stat-value {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.1;
}

.ai-chat-agent__stat-label {
    display: block;
    font-size: 0.68rem;
    color: #64748b;
    margin-top: 0.2rem;
    line-height: 1.25;
}

.ai-chat-agent__details {
    margin: 0 0 0.75rem;
    padding-left: 1.1rem;
    color: #475569;
    font-size: 0.84rem;
}

.ai-chat-agent__details li + li {
    margin-top: 0.25rem;
}

.ai-chat-agent__summary {
    color: #475569;
    font-size: 0.84rem;
}

.ai-chat-agent__suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.ai-chat-agent__suggestions.is-hidden {
    display: none;
}

.ai-chat-agent__suggestion {
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #475569;
    border-radius: 999px;
    padding: 0.35rem 0.75rem;
    font-size: 0.78rem;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.ai-chat-agent__suggestion:hover {
    border-color: #93c5fd;
    background: rgba(59, 130, 246, 0.06);
    color: #1d4ed8;
}

.ai-chat-agent__composer-box {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.ai-chat-agent__composer-box textarea {
    width: 100%;
    border: 0;
    resize: vertical;
    min-height: 5.5rem;
    max-height: 12rem;
    padding: 0.75rem 0.85rem 0.25rem;
    font-size: 0.9rem;
    color: #334155;
    background: transparent;
}

.ai-chat-agent__composer-box textarea:focus {
    outline: none;
    box-shadow: none;
}

.ai-chat-agent__composer-meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    padding: 0.2rem 0.45rem 0.3rem;
    border-top: 1px solid var(--border);
    background: #f8fafc;
}

.ai-chat-agent__char-count {
    font-size: 0.75rem;
    color: #94a3b8;
}

.ai-chat-agent__composer-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem;
    margin-left: auto;
}

.ai-chat-agent__composer-meta .ai-chat-agent__icon-btn,
.ai-chat-agent__composer-meta .ai-chat-agent__send-btn.btn {
    width: 1.85rem;
    height: 1.85rem;
    min-width: 1.85rem;
    border-radius: 6px;
    font-size: 0.78rem;
}

.ai-chat-agent__icon-btn {
    width: 2.1rem;
    height: 2.1rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ai-chat-agent__icon-btn:hover {
    border-color: #93c5fd;
    color: #2563eb;
    background: #eff6ff;
}

.ai-chat-agent__send-btn.btn {
    width: 2.1rem;
    height: 2.1rem;
    min-width: 2.1rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.ai-chat-agent__send-btn.btn:hover:not(:disabled),
.ai-chat-agent__send-btn.btn:focus:not(:disabled),
.ai-chat-agent__send-btn.btn:active:not(:disabled) {
    background-color: var(--brand-secondary);
    border-color: var(--brand-secondary);
    color: #fff;
    box-shadow: none;
}

.ai-chat-agent__send-btn.btn:disabled {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
    opacity: 0.55;
}

.ai-chat-agent__welcome {
    margin-bottom: 0.25rem;
}

.ai-chat-agent__sources {
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px solid #e2e8f0;
    font-size: 0.76rem;
    color: #64748b;
}

.ai-chat-agent__sources-label {
    font-weight: 600;
    color: #475569;
}

.ai-chat-agent__bubble--error {
    border-color: #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.ai-chat-agent__bubble--thinking {
    min-width: 4.5rem;
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}

.ai-chat-agent__thinking {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    min-height: 0.75rem;
}

.ai-chat-agent__thinking span {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: #94a3b8;
    animation: ai-chat-thinking-bounce 1.2s infinite ease-in-out;
}

.ai-chat-agent__thinking span:nth-child(2) {
    animation-delay: 0.15s;
}

.ai-chat-agent__thinking span:nth-child(3) {
    animation-delay: 0.3s;
}

@keyframes ai-chat-thinking-bounce {
    0%, 80%, 100% {
        transform: translateY(0);
        opacity: 0.45;
    }

    40% {
        transform: translateY(-0.28rem);
        opacity: 1;
    }
}

.ai-chat-agent__history-empty {
    padding: 0.35rem 0.15rem;
}

@media (max-width: 991.98px) {
    .ai-chat-agent__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .ai-chat-agent__project-grid {
        grid-template-columns: 1fr;
    }

    .ai-chat-agent__project-scope-active {
        width: 100%;
    }

    .ai-chat-agent__panel-actions {
        width: 100%;
        justify-content: flex-end;
    }
}

/* Floating knowledge chat (frontend) */
.floating-knowledge-chat {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 1060;
    pointer-events: none;
}

.floating-knowledge-chat__fab,
.floating-knowledge-chat__panel {
    pointer-events: auto;
}

.floating-knowledge-chat__fab {
    position: relative;
    width: 3.35rem;
    height: 3.35rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 999px;
    background: #fff;
    color: var(--brand-primary);
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.18);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    transition: box-shadow 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

.floating-knowledge-chat__fab:hover {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 12px 32px rgba(30, 58, 95, 0.22);
    transform: translateY(-1px);
}

.floating-knowledge-chat__fab:active {
    transform: translateY(0);
}

.floating-knowledge-chat__fab-badge {
    position: absolute;
    top: -0.15rem;
    right: -0.15rem;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: #dc3545;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.25rem;
    text-align: center;
    border: 2px solid #fff;
}

.floating-knowledge-chat__panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 0.75rem);
    display: flex;
    flex-direction: column;
    width: 26rem;
    max-width: calc(100vw - 2rem);
    height: 32rem;
    max-height: calc(100vh - 6rem);
    max-height: calc(100dvh - 6rem);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 18px 48px rgba(30, 58, 95, 0.22);
    border: 1px solid rgba(226, 232, 240, 0.95);
    transition: width 0.2s ease, height 0.2s ease, max-height 0.2s ease;
}

.floating-knowledge-chat__panel[data-zoom="in"] {
    width: min(56rem, calc(100vw - 2rem));
    height: min(48rem, calc(100vh - 3rem));
    max-height: calc(100vh - 3rem);
    height: min(48rem, calc(100dvh - 3rem));
    max-height: calc(100dvh - 3rem);
}

.floating-knowledge-chat__panel[hidden] {
    display: none !important;
}

.floating-knowledge-chat__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 0.85rem;
    background: linear-gradient(180deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
}

.floating-knowledge-chat__header-main {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.floating-knowledge-chat__header-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.12);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.floating-knowledge-chat__title {
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.2;
}

.floating-knowledge-chat__subtitle {
    font-size: 0.72rem;
    opacity: 0.9;
}

.floating-knowledge-chat__online span {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: #27ae60;
    margin: 0 0.35rem 0 0;
}

.floating-knowledge-chat__header-actions {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.floating-knowledge-chat__icon-btn,
.floating-knowledge-chat__utility-btn {
    border: 0;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    border-radius: 8px;
    padding: 0.35rem 0.45rem;
    font-size: 0.78rem;
}

.floating-knowledge-chat__utilities {
    display: flex;
    gap: 0.25rem;
}

.floating-knowledge-chat__zoom-label {
    font-size: 0.72rem;
    min-width: 3.5rem;
    text-align: center;
    opacity: 0.9;
}

.floating-knowledge-chat__body {
    display: flex;
    min-height: 0;
    flex: 1;
}

.floating-knowledge-chat__sidebar {
    width: 28%;
    min-width: 9rem;
    border-right: 1px solid var(--border);
    background: var(--surface);
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.floating-knowledge-chat__main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.floating-knowledge-chat__new-chat-btn,
.floating-knowledge-chat__view-all-btn {
    border: 0;
    background: transparent;
    text-align: left;
    font-size: 0.82rem;
    color: var(--brand-primary);
    font-weight: 600;
}

.floating-knowledge-chat__history {
    flex: 1;
    overflow: auto;
    font-size: 0.78rem;
}

.floating-knowledge-chat__history-group-label {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin: 0.5rem 0 0.25rem;
}

.floating-knowledge-chat__history-item {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    padding: 0.45rem 0.5rem;
    border-radius: 8px;
    font-size: 0.78rem;
}

.floating-knowledge-chat__history-item.is-active {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-primary);
}

.floating-knowledge-chat__welcome,
.floating-knowledge-chat__messages {
    padding: 0.85rem 1rem 0;
    overflow: auto;
}

.floating-knowledge-chat__welcome h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.floating-knowledge-chat__welcome-languages {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: 0.65rem;
    margin-bottom: 0.15rem;
}

.floating-knowledge-chat__welcome-languages-label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.68rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.floating-knowledge-chat__lang-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.floating-knowledge-chat__lang-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    padding: 0.15rem 0.4rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-primary);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    line-height: 1.2;
}

.floating-knowledge-chat__quick-actions {
    display: grid;
    gap: 0.55rem;
    margin-top: 0.75rem;
}

.floating-knowledge-chat__quick-action {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #f8fafc;
    padding: 0.65rem 0.75rem;
    text-align: left;
    font-size: 0.82rem;
}

.floating-knowledge-chat__messages {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.floating-knowledge-chat__message {
    display: flex;
    gap: 0.55rem;
    align-items: flex-start;
}

.floating-knowledge-chat__message--user {
    flex-direction: row-reverse;
}

.floating-knowledge-chat__avatar {
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    background: var(--brand-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    font-weight: 700;
    flex-shrink: 0;
}

.floating-knowledge-chat__bubble {
    max-width: 85%;
    border-radius: 14px;
    padding: 0.65rem 0.75rem;
    font-size: 0.84rem;
    line-height: 1.45;
}

.floating-knowledge-chat__bubble--assistant {
    background: #fff;
    border: 1px solid var(--border);
}

.floating-knowledge-chat__bubble--user {
    background: #e8f0f8;
}

.floating-knowledge-chat__message-time {
    display: block;
    font-size: 0.68rem;
    color: #64748b;
    margin-top: 0.35rem;
}

.floating-knowledge-chat__sources {
    margin-top: 0.45rem;
    font-size: 0.72rem;
    color: #64748b;
}

.floating-knowledge-chat__message-actions {
    display: flex;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.floating-knowledge-chat__message-actions button {
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 0.72rem;
}

.floating-knowledge-chat__suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0 1rem 0.5rem;
}

.floating-knowledge-chat__suggestion {
    border: 1px solid rgba(45, 90, 135, 0.22);
    border-radius: 999px;
    background: #fff;
    color: var(--brand-primary);
    font-size: 0.74rem;
    padding: 0.35rem 0.65rem;
}

.floating-knowledge-chat__composer {
    padding: 0.65rem 0.85rem 0.85rem;
    border-top: 1px solid var(--border);
}

.floating-knowledge-chat__composer-box textarea {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 0.65rem 0.75rem;
    resize: vertical;
    min-height: 2.6rem;
    font-size: 0.84rem;
}

.floating-knowledge-chat__composer-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 0.45rem;
    gap: 0.5rem;
}

.floating-knowledge-chat__composer-tools {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.floating-knowledge-chat__composer-tool-btn {
    border: 1px solid var(--border);
    background: #fff;
    color: var(--brand-primary);
    border-radius: 8px;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    padding: 0;
}

.floating-knowledge-chat__composer-tool-btn:hover,
.floating-knowledge-chat__composer-tool-btn:focus {
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
}

.floating-knowledge-chat__composer-tool-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.floating-knowledge-chat__char-count {
    font-size: 0.72rem;
    color: #64748b;
}

.floating-knowledge-chat__disclaimer {
    font-size: 0.68rem;
    color: #64748b;
    margin: 0.45rem 0 0;
}

.floating-knowledge-chat__verify-pending {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    overflow: auto;
    min-height: 0;
}

.floating-knowledge-chat__verify-card {
    width: 100%;
    max-width: 22rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    padding: 1.15rem 1rem 1rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(226, 232, 240, 0.95);
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.08);
    text-align: center;
}

.floating-knowledge-chat__verify-icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(45, 90, 135, 0.14) 0%, rgba(45, 90, 135, 0.06) 100%);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
}

.floating-knowledge-chat__verify-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
}

.floating-knowledge-chat__verify-text {
    margin: 0;
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.45;
}

.floating-knowledge-chat__verify-email {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #cfd8e3;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--brand-primary);
    word-break: break-all;
}

.floating-knowledge-chat__verify-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    font-size: 0.74rem;
    color: #64748b;
}

.floating-knowledge-chat__verify-status .floating-knowledge-chat__spinner {
    width: 1.15rem;
    height: 1.15rem;
    border-width: 2px;
    margin: 0;
}

.floating-knowledge-chat__verify-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
    width: 100%;
    margin-top: 0.15rem;
}

.floating-knowledge-chat__verify-submit.btn {
    width: 100%;
    min-height: 2.5rem;
    border-radius: 999px;
    font-size: 0.84rem;
    font-weight: 600;
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.22);
}

.floating-knowledge-chat__verify-submit.btn:hover,
.floating-knowledge-chat__verify-submit.btn:focus {
    background-color: var(--brand-secondary);
    border-color: var(--brand-secondary);
}

.floating-knowledge-chat__verify-resend {
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 500;
    padding: 0.35rem 0.5rem;
    align-self: center;
    transition: color 0.15s ease;
}

.floating-knowledge-chat__verify-resend:hover {
    color: var(--brand-primary);
}

.floating-knowledge-chat__spinner {
    width: 2rem;
    height: 2rem;
    border: 3px solid rgba(30, 58, 95, 0.15);
    border-top-color: var(--brand-primary);
    border-radius: 999px;
    animation: floating-knowledge-chat-spin 0.8s linear infinite;
    margin: 0 auto 1rem;
}

@keyframes floating-knowledge-chat-spin {
    to { transform: rotate(360deg); }
}

.floating-knowledge-chat__onboarding-form {
    flex-shrink: 0;
    padding: 0.65rem 0.85rem 0.85rem;
    border-top: 1px solid var(--border);
    background: #fff;
}

.floating-knowledge-chat__onboarding-form-inner {
    margin: 0;
}

.floating-knowledge-chat__onboarding-input-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    border: 1px solid #cfd8e3;
    border-radius: 999px;
    background: #f8fafc;
    padding: 0.3rem 0.3rem 0.3rem 0.85rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.floating-knowledge-chat__onboarding-input-row:focus-within {
    border-color: var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.14);
    background: #fff;
}

.floating-knowledge-chat__onboarding-input-icon {
    color: #64748b;
    font-size: 0.82rem;
    flex-shrink: 0;
    line-height: 1;
}

.floating-knowledge-chat__onboarding-input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    font-size: 0.84rem;
    color: #334155;
    min-height: 2.35rem;
    padding: 0;
    outline: none;
}

.floating-knowledge-chat__onboarding-input::placeholder {
    color: #94a3b8;
}

.floating-knowledge-chat__onboarding-submit {
    border: 0;
    border-radius: 999px;
    background: var(--brand-primary);
    color: #fff;
    min-height: 2.35rem;
    padding: 0 0.95rem;
    font-size: 0.78rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background-color 0.15s ease, transform 0.1s ease;
}

.floating-knowledge-chat__onboarding-submit:hover {
    background: var(--brand-secondary);
}

.floating-knowledge-chat__onboarding-submit:active {
    transform: scale(0.98);
}

.floating-knowledge-chat__onboarding-otp-field {
    margin-top: 0.55rem;
}

.floating-knowledge-chat__onboarding-otp-field .floating-knowledge-chat__onboarding-input-row {
    padding-left: 0.85rem;
}

.floating-knowledge-chat__onboarding-card {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 0.75rem;
    background: #f8fafc;
    display: grid;
    gap: 0.55rem;
}

.floating-knowledge-chat__onboarding-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
}

.floating-knowledge-chat__onboarding-field {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.floating-knowledge-chat__onboarding-field--full {
    grid-column: 1 / -1;
}

.floating-knowledge-chat__onboarding-field-label {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #64748b;
}

.floating-knowledge-chat__onboarding-field-input {
    width: 100%;
    border: 1px solid #cfd8e3;
    border-radius: 10px;
    padding: 0.52rem 0.7rem;
    font-size: 0.82rem;
    color: #334155;
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.floating-knowledge-chat__onboarding-field-input:focus {
    outline: none;
    border-color: var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.14);
}

.floating-knowledge-chat__onboarding-field-input::placeholder {
    color: #94a3b8;
}

.floating-knowledge-chat__onboarding-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.15rem;
}

.floating-knowledge-chat__onboarding-actions .floating-knowledge-chat__onboarding-submit {
    min-width: 6.5rem;
}

.floating-knowledge-chat__onboarding-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    margin-top: 0.45rem;
}

.floating-knowledge-chat__onboarding-tool-btn {
    width: 2rem;
    height: 2rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.82rem;
    padding: 0;
    transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.floating-knowledge-chat__onboarding-tool-btn:hover {
    border-color: #93c5fd;
    color: var(--brand-primary);
    background: #eff6ff;
}

.floating-knowledge-chat__onboarding-tool-btn:active {
    transform: scale(0.96);
}

.floating-knowledge-chat__onboarding-file-chip {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.45rem;
    padding: 0.35rem 0.5rem 0.35rem 0.65rem;
    border: 1px solid rgba(45, 90, 135, 0.22);
    border-radius: 999px;
    background: #eff6ff;
    color: var(--brand-primary);
    font-size: 0.74rem;
    max-width: 100%;
}

.floating-knowledge-chat__onboarding-file-chip span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    flex: 1;
}

.floating-knowledge-chat__onboarding-file-remove {
    border: 0;
    background: transparent;
    color: #64748b;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
}

.floating-knowledge-chat__onboarding-file-remove:hover {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-primary);
}

.floating-knowledge-chat__role-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-bottom: 0.15rem;
}

.floating-knowledge-chat__role-chip {
    border: 1px solid var(--border);
    border-radius: 999px;
    background: #fff;
    padding: 0.35rem 0.7rem;
    font-size: 0.78rem;
}

.floating-knowledge-chat__role-chip.is-selected {
    border-color: var(--brand-secondary);
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-primary);
}

.floating-knowledge-chat__feedback {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15, 23, 42, 0.35);
    backdrop-filter: blur(4px);
}

.floating-knowledge-chat__feedback-card {
    width: 100%;
    max-width: 22rem;
    max-height: 100%;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.25rem 1.15rem 1.15rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(226, 232, 240, 0.95);
    box-shadow: 0 16px 40px rgba(30, 58, 95, 0.18);
}

.floating-knowledge-chat__feedback-header {
    text-align: center;
}

.floating-knowledge-chat__feedback-icon {
    width: 2.75rem;
    height: 2.75rem;
    margin: 0 auto 0.65rem;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(45, 90, 135, 0.14) 0%, rgba(45, 90, 135, 0.06) 100%);
    color: var(--brand-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.floating-knowledge-chat__feedback-title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
}

.floating-knowledge-chat__feedback-subtitle {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.45;
}

.floating-knowledge-chat__feedback-section {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.floating-knowledge-chat__feedback-label {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #64748b;
}

.floating-knowledge-chat__feedback-stars {
    justify-content: center;
    gap: 0.35rem;
    width: 100%;
}

.floating-knowledge-chat__feedback-stars .support-star-rating__star {
    font-size: 1.65rem;
    padding: 0.2rem;
    color: #cbd5e1;
}

.floating-knowledge-chat__feedback-stars .support-star-rating__star:hover,
.floating-knowledge-chat__feedback-stars .support-star-rating__star.is-active {
    color: #f59e0b;
    transform: scale(1.08);
}

.floating-knowledge-chat__feedback-stars .support-star-rating__star.is-active i,
.floating-knowledge-chat__feedback-stars .support-star-rating__star:hover i {
    color: inherit;
}

.floating-knowledge-chat__feedback-textarea {
    width: 100%;
    border: 1px solid #cfd8e3;
    border-radius: 12px;
    padding: 0.65rem 0.75rem;
    font-size: 0.84rem;
    color: #334155;
    background: #f8fafc;
    resize: vertical;
    min-height: 5.5rem;
    line-height: 1.45;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.floating-knowledge-chat__feedback-textarea:focus {
    outline: none;
    border-color: var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.14);
    background: #fff;
}

.floating-knowledge-chat__feedback-textarea::placeholder {
    color: #94a3b8;
}

.floating-knowledge-chat__feedback-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
    margin-top: 0.15rem;
}

.floating-knowledge-chat__feedback-submit.btn {
    width: 100%;
    min-height: 2.5rem;
    border-radius: 999px;
    font-size: 0.84rem;
    font-weight: 600;
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.22);
}

.floating-knowledge-chat__feedback-submit.btn:hover,
.floating-knowledge-chat__feedback-submit.btn:focus {
    background-color: var(--brand-secondary);
    border-color: var(--brand-secondary);
}

.floating-knowledge-chat__feedback-skip {
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 500;
    padding: 0.35rem 0.5rem;
    text-align: center;
    align-self: center;
    transition: color 0.15s ease;
}

.floating-knowledge-chat__feedback-skip:hover {
    color: var(--brand-primary);
}

.floating-knowledge-chat__thinking span {
    display: inline-block;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: #94a3b8;
    animation: floating-knowledge-chat-bounce 1.2s infinite ease-in-out;
}

.floating-knowledge-chat__thinking span:nth-child(2) { animation-delay: 0.15s; }
.floating-knowledge-chat__thinking span:nth-child(3) { animation-delay: 0.3s; }

@keyframes floating-knowledge-chat-bounce {
    0%, 80%, 100% { transform: translateY(0); opacity: 0.45; }
    40% { transform: translateY(-0.28rem); opacity: 1; }
}

@media (max-width: 991.98px) {
    .floating-knowledge-chat__panel[data-zoom="in"] {
        width: calc(100vw - 2rem);
        height: min(48rem, calc(100dvh - 3.5rem));
        max-height: calc(100dvh - 3.5rem);
    }
}

@media (max-width: 767.98px) {
    .floating-knowledge-chat {
        right: max(1rem, env(safe-area-inset-right, 0px));
        bottom: max(1rem, env(safe-area-inset-bottom, 0px));
    }

    .floating-knowledge-chat.is-open .floating-knowledge-chat__panel {
        position: fixed;
        left: max(0.75rem, env(safe-area-inset-left, 0px));
        right: max(0.75rem, env(safe-area-inset-right, 0px));
        bottom: calc(max(0.75rem, env(safe-area-inset-bottom, 0px)) + 3.35rem + 0.65rem);
        width: auto;
        max-width: none;
        height: min(38rem, calc(100dvh - 5.75rem));
        max-height: calc(100dvh - 5.75rem);
    }

    .floating-knowledge-chat.is-open .floating-knowledge-chat__panel[data-zoom="in"] {
        top: max(0.75rem, env(safe-area-inset-top, 0px));
        right: max(0.75rem, env(safe-area-inset-right, 0px));
        bottom: max(0.75rem, env(safe-area-inset-bottom, 0px));
        left: max(0.75rem, env(safe-area-inset-left, 0px));
        width: auto;
        height: auto;
        max-width: none;
        max-height: none;
        border-radius: 12px;
    }

    .floating-knowledge-chat__panel[data-zoom="in"] .floating-knowledge-chat__body {
        flex-direction: column;
    }

    .floating-knowledge-chat__panel[data-zoom="in"] .floating-knowledge-chat__sidebar:not(.d-none) {
        width: 100%;
        min-width: 0;
        max-height: 7.5rem;
        border-right: 0;
        border-bottom: 1px solid var(--border);
        flex-shrink: 0;
    }

    .floating-knowledge-chat__zoom-label {
        display: none;
    }

    .floating-knowledge-chat__onboarding-grid {
        grid-template-columns: 1fr;
    }
}

.dc-datasets-filters__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem;
}

.dc-datasets-filters__field {
    flex: 1 1 12rem;
    min-width: 10rem;
}

.dc-datasets-filters__field--search {
    flex: 1 1 16rem;
    max-width: 22rem;
}

.dc-datasets-filters__actions {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.65rem;
}

.dc-datasets-filters,
.dc-datasets-filters__toolbar,
.dc-datasets-page .admin-panel-card__body {
    overflow: visible;
}

.admin-panel-card:has(.dc-datasets-filters .dropdown.show) {
    position: relative;
    overflow: visible;
    z-index: 1200;
}

.dc-datasets-group__icon {
    width: 2.25rem;
    height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-navy);
}

.dc-datasets-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: 1rem;
}

.dc-dataset-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 15.5rem;
    padding: 1rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.06);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.dc-dataset-card:hover {
    box-shadow: 0 14px 32px rgba(30, 58, 95, 0.09);
}

.dc-dataset-card--active {
    border-color: rgba(39, 174, 96, 0.24);
    background: linear-gradient(180deg, #fff 0%, rgba(236, 253, 245, 0.35) 100%);
}

.dc-dataset-card--active:hover {
    border-color: rgba(39, 174, 96, 0.4);
    transform: translateY(-2px);
}

.dc-dataset-card--empty {
    padding: 0;
    border: 1px dashed rgba(148, 163, 184, 0.55);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 100%);
}

.dc-dataset-card--empty:hover {
    border-color: rgba(45, 90, 135, 0.5);
    transform: translateY(-2px);
}

.dc-dataset-card__hero {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 0.95rem;
}

.dc-dataset-card__hero-icon {
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(145deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 1.1rem;
    box-shadow: 0 10px 20px rgba(30, 58, 95, 0.18);
}

.dc-dataset-card__hero-copy {
    min-width: 0;
}

.dc-dataset-card__title {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--brand-navy);
}

.dc-dataset-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.45rem;
    padding: 0.22rem 0.62rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.dc-dataset-card__badge--live {
    background: rgba(39, 174, 96, 0.12);
    color: #1e8449;
}

.dc-dataset-card__badge--waiting {
    background: rgba(230, 126, 34, 0.12);
    color: #b9770e;
}

.dc-dataset-card__badge-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 0 3px rgba(39, 174, 96, 0.18);
}

.dc-dataset-card__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.85rem;
}

.dc-dataset-card__metric {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    padding: 0.7rem 0.75rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(226, 232, 240, 0.95);
}

.dc-dataset-card__metric-value {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--brand-navy);
    line-height: 1.2;
}

.dc-dataset-card__metric-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
}

.dc-dataset-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
}

.dc-dataset-card__meta-chip {
    display: inline-flex;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: #64748b;
    font-size: 0.74rem;
    font-weight: 600;
}

.dc-dataset-card__empty-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    height: 100%;
    min-height: 15.5rem;
    padding: 1.35rem 1.1rem 1.1rem;
    text-align: center;
}

.dc-dataset-card__empty-visual {
    position: relative;
    width: 5rem;
    height: 5rem;
    display: grid;
    place-items: center;
}

.dc-dataset-card__empty-glow {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: radial-gradient(circle at 50% 35%, rgba(45, 90, 135, 0.18), rgba(45, 90, 135, 0.02) 72%);
}

.dc-dataset-card__empty-icon {
    position: relative;
    z-index: 1;
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(226, 232, 240, 0.95);
    color: var(--brand-secondary);
    font-size: 1.15rem;
    box-shadow: 0 12px 24px rgba(30, 58, 95, 0.08);
}

.dc-dataset-card__empty-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    max-width: 15rem;
}

.dc-dataset-card__empty-content .dc-dataset-card__badge {
    margin-bottom: 0;
}

.dc-dataset-card__empty-lead {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.5;
    color: #64748b;
}

.dc-dataset-card__footer {
    margin-top: auto;
    width: 100%;
}

.dc-dataset-card__action {
    width: 100%;
    justify-content: center;
    border-radius: 999px;
    min-height: 2.45rem;
    font-weight: 600;
}

.dc-dataset-card--empty .dc-dataset-card__action {
    background: #fff;
}

.dc-alerts-filters__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem;
}

.dc-alerts-filters__field {
    flex: 0 1 12rem;
    min-width: 10rem;
}

.dc-alerts-filters__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
}

.dc-alerts-filters,
.dc-alerts-filters__toolbar,
.dc-alerts-page .admin-panel-card__body {
    overflow: visible;
}

.admin-panel-card:has(.dc-alerts-filters .dropdown.show) {
    position: relative;
    overflow: visible;
    z-index: 1200;
}

.dc-alerts-timeline {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
}

.dc-alerts-timeline__day-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.dc-alerts-timeline__day-label {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--brand-navy);
}

.dc-alerts-timeline__day-count {
    display: inline-flex;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 0.72rem;
    font-weight: 700;
}

.dc-alerts-timeline__events {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding-left: 0.35rem;
    border-left: 2px solid rgba(45, 90, 135, 0.14);
}

.dc-alerts-timeline-item {
    position: relative;
    padding-left: 1rem;
}

.dc-alerts-timeline-item__marker {
    position: absolute;
    left: -0.47rem;
    top: 1.1rem;
    width: 0.72rem;
    height: 0.72rem;
    border-radius: 999px;
    background: #fff;
    border: 2px solid var(--brand-secondary);
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.1);
}

.dc-alerts-timeline-item__card {
    padding: 0.9rem 1rem;
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.05);
}

.dc-alerts-timeline-item__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.dc-alerts-timeline-item__user {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 0;
}

.dc-alerts-timeline-item__avatar {
    flex-shrink: 0;
    width: 2.2rem;
    height: 2.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: linear-gradient(145deg, var(--brand-primary) 0%, var(--brand-secondary) 100%);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
}

.dc-alerts-timeline-item__user-name {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--brand-navy);
}

.dc-alerts-timeline-item__project {
    font-size: 0.78rem;
    color: #64748b;
}

.dc-alerts-timeline-item__time {
    flex-shrink: 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    white-space: nowrap;
}

.dc-alerts-timeline-item__query {
    margin: 0 0 0.65rem;
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--brand-navy);
}

.dc-alerts-timeline-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.dc-alerts-timeline-item__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    background: rgba(244, 246, 248, 0.95);
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 600;
}

.dc-alerts-rank-list {
    display: flex;
    flex-direction: column;
}

.dc-alerts-rank-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    border-bottom: 1px solid rgba(226, 232, 240, 0.95);
}

.dc-alerts-rank-row:last-child {
    border-bottom: 0;
}

.dc-alerts-rank-row__main {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 0;
}

.dc-alerts-rank-row__avatar {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-navy);
    font-size: 0.72rem;
    font-weight: 700;
}

.dc-alerts-rank-row__title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--brand-navy);
}

.dc-alerts-rank-row__subtitle {
    font-size: 0.76rem;
    color: #64748b;
    word-break: break-word;
}

.dc-alerts-rank-row__stats {
    text-align: right;
    flex-shrink: 0;
}

.dc-alerts-rank-row__count {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-navy);
}

.dc-alerts-rank-row__meta,
.dc-alerts-rank-row__last {
    font-size: 0.72rem;
    color: #64748b;
}

#dcAlertsUsageChart {
    min-height: 9rem;
}

.dc-job-knowledge-hub {
    overflow: hidden;
}

.dc-job-knowledge-hub__body {
    padding-top: 0.25rem;
}

.dc-job-knowledge-hub__count {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

.dc-job-knowledge-hub-accordion {
    --bs-accordion-border-color: rgba(30, 58, 95, 0.1);
    --bs-accordion-btn-padding-x: 1rem;
    --bs-accordion-btn-padding-y: 0.85rem;
    --bs-accordion-body-padding-x: 1rem;
    --bs-accordion-body-padding-y: 1rem;
    --bs-accordion-active-color: #1e293b;
    --bs-accordion-active-bg: rgba(30, 58, 95, 0.03);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.2rem rgba(30, 58, 95, 0.12);
}

.dc-job-knowledge-hub-accordion .accordion-item {
    overflow: hidden;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 14px !important;
    background: #fff;
}

.dc-job-knowledge-hub-accordion .accordion-item + .accordion-item {
    margin-top: 0.65rem;
}

.dc-job-knowledge-hub__toggle {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-weight: 700;
    box-shadow: none !important;
}

.dc-job-knowledge-hub__toggle::after {
    flex-shrink: 0;
    margin-left: 0.35rem;
}

.dc-job-knowledge-hub__toggle:not(.collapsed) {
    background: rgba(30, 58, 95, 0.03);
}

.dc-job-knowledge-hub__group-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
    font-size: 0.85rem;
    flex-shrink: 0;
}

.dc-job-knowledge-hub__group-title {
    margin: 0;
    color: #1e293b;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-align: left;
}

.dc-job-knowledge-hub__group-count {
    margin-left: auto;
    margin-right: 0.35rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: #475569;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.dc-job-knowledge-hub__group-active {
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(39, 174, 96, 0.1);
    color: #1e8449;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.dc-job-knowledge-hub__group-body {
    padding-top: 0.25rem;
}

.dc-job-knowledge-hub__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: 0.85rem;
}

.dc-job-knowledge-hub__card {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    min-height: 100%;
    padding: 1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.dc-job-knowledge-hub__card--active {
    border-color: rgba(39, 174, 96, 0.25);
    box-shadow: 0 4px 14px rgba(39, 174, 96, 0.08);
}

.dc-job-knowledge-hub__card-head {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.dc-job-knowledge-hub__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 76, 129, 0.08);
    color: var(--brand-primary);
    font-size: 0.95rem;
    flex-shrink: 0;
}

.dc-job-knowledge-hub__card-title-wrap {
    min-width: 0;
    flex: 1;
}

.dc-job-knowledge-hub__card-title {
    margin: 0;
    color: #1e293b;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.35;
}

.dc-job-knowledge-hub__profile-badge {
    display: inline-block;
    margin-top: 0.25rem;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.12);
    color: #b45309;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.dc-job-knowledge-hub__stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(4.5rem, 1fr));
    gap: 0.5rem;
}

.dc-job-knowledge-hub__stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    padding: 0.55rem 0.35rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.04);
    text-align: center;
}

.dc-job-knowledge-hub__stat-value {
    color: #1e293b;
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1;
}

.dc-job-knowledge-hub__stat-label {
    color: #64748b;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.25;
}

.dc-job-knowledge-hub__stat-meta {
    color: #1e8449;
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1.2;
}

.dc-job-knowledge-hub__actions {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: auto;
}

.dc-job-knowledge-hub__action {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 10px;
    background: #fff;
    color: #334155;
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.dc-job-knowledge-hub__action i {
    width: 1rem;
    color: var(--brand-primary);
    text-align: center;
    flex-shrink: 0;
}

.dc-job-knowledge-hub__action:hover {
    border-color: rgba(15, 76, 129, 0.25);
    background: rgba(15, 76, 129, 0.04);
    color: var(--brand-primary);
}

.dc-portfolio-topic-option__manage {
    display: block;
    margin-top: 0.35rem;
    color: var(--brand-primary);
    text-decoration: none;
}

.dc-portfolio-topic-option__manage:hover {
    text-decoration: underline;
}

@media (max-width: 991.98px) {
    .dc-job-knowledge-hub__grid {
        grid-template-columns: 1fr;
    }

    .dc-job-knowledge-hub__group-count,
    .dc-job-knowledge-hub__group-active {
        display: none;
    }
}

.dc-job-knowledge-tabs {
    display: block;
}

.dc-job-knowledge-tabs__shell {
    display: inline-flex;
    max-width: 100%;
    padding: 0.35rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 14px;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    box-shadow: 0 2px 10px rgba(30, 58, 95, 0.06);
}

.dc-job-knowledge-tabs__track {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
}

.dc-job-knowledge-tabs__tab {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.9rem;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: #64748b;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}

.dc-job-knowledge-tabs__tab i {
    font-size: 0.78rem;
    opacity: 0.85;
    flex-shrink: 0;
    transition: color 0.15s ease, opacity 0.15s ease;
}

.dc-job-knowledge-tabs__tab:hover {
    color: var(--brand-primary);
    background: rgba(255, 255, 255, 0.55);
    border-color: rgba(30, 58, 95, 0.08);
}

.dc-job-knowledge-tabs__tab--active {
    color: var(--brand-primary);
    background: #fff;
    border-color: rgba(30, 58, 95, 0.12);
    box-shadow: 0 2px 8px rgba(30, 58, 95, 0.1);
}

.dc-job-knowledge-tabs__tab--active i {
    color: var(--brand-accent);
    opacity: 1;
}

.dc-job-knowledge-tabs__label {
    color: inherit;
}

.dc-job-knowledge-tabs__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: #475569;
    font-size: 0.625rem;
    font-weight: 800;
    line-height: 1;
    flex-shrink: 0;
}

.dc-job-knowledge-tabs__tab--active .dc-job-knowledge-tabs__count {
    background: rgba(230, 126, 34, 0.16);
    color: #c06512;
}

@media (max-width: 767.98px) {
    .dc-job-knowledge-tabs__shell {
        display: flex;
        width: 100%;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .dc-job-knowledge-tabs__shell::-webkit-scrollbar {
        display: none;
    }

    .dc-job-knowledge-tabs__track {
        flex-wrap: nowrap;
    }

    .dc-job-knowledge-tabs__tab {
        padding: 0.5rem 0.75rem;
        font-size: 0.78rem;
    }
}

.dc-job-knowledge-ai-notice {
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.dc-job-knowledge-ai-notice__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    background: rgba(15, 76, 129, 0.08);
    color: var(--brand-primary);
    flex-shrink: 0;
}

.dc-job-knowledge-index-status {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.2;
}

.dc-job-knowledge-index-status--draft {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.dc-job-knowledge-index-status--pending {
    background: rgba(230, 126, 34, 0.12);
    color: #b45309;
}

.dc-job-knowledge-import__documents {
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    padding-top: 1rem;
}

.dc-job-knowledge-import__form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.dc-job-knowledge-import__upload-wrap.is-invalid .file-upload-zone__drop {
    border-color: #dc3545;
    box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.12);
}

.file-upload-zone--import {
    margin-top: 0;
}

.file-upload-zone--import .file-upload-zone__drop {
    min-height: 10.5rem;
    padding: 1.35rem 1.25rem;
    border-radius: 16px;
    background: linear-gradient(180deg, #fff 0%, rgba(30, 58, 95, 0.03) 100%);
}

.file-upload-zone--import .file-upload-zone__empty {
    gap: 0.75rem;
}

.file-upload-zone--import .file-upload-zone__icon {
    width: 3.35rem;
    height: 3.35rem;
    font-size: 1.2rem;
    background: rgba(15, 76, 129, 0.1);
    color: var(--brand-primary);
}

.file-upload-zone--import .file-upload-zone__title {
    font-size: 0.95rem;
}

.file-upload-zone--import .file-upload-zone__hint {
    max-width: 34rem;
    font-size: 0.8rem;
}

.file-upload-zone--import .file-upload-zone__preview {
    width: 100%;
    padding: 0.35rem 0.15rem;
}

.file-upload-zone--import .file-upload-zone__preview-thumb {
    width: 3.75rem;
    height: 3.75rem;
    border-radius: 12px;
}

.file-upload-zone--import .file-upload-zone__preview-meta {
    flex: 1;
    min-width: 0;
}

.file-upload-zone--import .file-upload-zone__preview-name {
    font-size: 0.9rem;
    font-weight: 700;
    color: #1e293b;
    word-break: break-word;
}

.file-upload-zone--import .file-upload-zone__preview-actions {
    margin-left: auto;
}

.dc-job-knowledge-import__formats {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.45rem;
    margin-top: 0.75rem;
}

.dc-job-knowledge-import__format {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 700;
}

.dc-job-knowledge-import__format i {
    font-size: 0.68rem;
    opacity: 0.85;
}

.dc-job-knowledge-import__options {
    padding-top: 0.15rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

@media (max-width: 767.98px) {
    .file-upload-zone--import .file-upload-zone__drop {
        min-height: 9rem;
        padding: 1rem;
    }

    .file-upload-zone--import .file-upload-zone__preview {
        flex-wrap: wrap;
    }

    .file-upload-zone--import .file-upload-zone__preview-actions {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }
}

.dc-translation-languages-card .dc-translation-languages__grid {
    grid-template-columns: repeat(auto-fill, minmax(7.25rem, 1fr));
    gap: 0.65rem;
}

.dc-translation-languages-card .dc-portfolio-topic-option__card {
    min-height: 5.75rem;
    padding: 0.8rem 0.55rem 0.7rem;
    border-radius: 14px;
}

.dc-translation-languages-card .dc-portfolio-topic-option__icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.dc-translation-languages-card .dc-portfolio-topic-option__name {
    font-size: 0.74rem;
}

@media (max-width: 575.98px) {
    .dc-translation-languages-card .dc-translation-languages__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.attendance-mark-panel {
    overflow: hidden;
    min-width: 0;
    max-width: 100%;
}

.team-attendance-page {
    min-width: 0;
    max-width: 100%;
}

.attendance-mark-panel__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color, #e9ecef);
}

.attendance-mark-panel__quick {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.attendance-mark-panel__quick-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6c757d;
}

.attendance-mark-panel__quick-buttons {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.attendance-mark-panel__quick-btn {
    border: 1px solid #dee2e6;
    border-radius: 999px;
    padding: 0.35rem 0.85rem;
    font-size: 0.875rem;
    color: #495057;
    text-decoration: none;
    background: #fff;
}

.attendance-mark-panel__quick-btn.is-active,
.attendance-mark-panel__quick-btn:hover {
    border-color: var(--brand-color, #e85d04);
    color: var(--brand-color, #e85d04);
}

.attendance-mark-panel__week-nav {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.attendance-mark-panel__week-arrow {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dee2e6;
    border-radius: 999px;
    color: #495057;
    text-decoration: none;
}

.attendance-mark-panel__week-range {
    font-weight: 600;
    white-space: nowrap;
}

.attendance-mark-panel__meta {
    padding: 0.85rem 1.25rem 1rem;
    border-bottom: 1px solid var(--border-color, #e9ecef);
    min-width: 0;
    max-width: 100%;
}

.attendance-mark-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    margin: 0.75rem 0;
}

.attendance-mark-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8125rem;
    color: #495057;
}

@media (max-width: 767.98px) {
    .attendance-mark-panel__meta {
        padding-inline: 1rem;
    }

    .attendance-mark-legend {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        margin-bottom: 0;
        padding-bottom: 0.35rem;
        scrollbar-width: thin;
    }

    .attendance-mark-legend__item {
        flex: 0 0 auto;
        white-space: nowrap;
    }
}

.attendance-mark-grid-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    padding: 0 0.5rem 1rem;
}

.attendance-mark-grid {
    width: 100%;
    min-width: 760px;
    border-collapse: separate;
    border-spacing: 0;
}

.attendance-mark-grid th,
.attendance-mark-grid td {
    padding: 0.75rem 0.5rem;
    vertical-align: middle;
    border-bottom: 1px solid #eef1f4;
}

.attendance-mark-grid__staff {
    min-width: 180px;
    position: sticky;
    left: 0;
    background: #fff;
    z-index: 1;
}

.attendance-mark-grid thead .attendance-mark-grid__staff {
    background: #fff;
}

.attendance-mark-grid__day {
    text-align: center;
    min-width: 72px;
}

.attendance-mark-grid__day-name {
    display: block;
    font-size: 0.75rem;
    color: #6c757d;
    text-transform: uppercase;
}

.attendance-mark-grid__day-date {
    display: block;
    font-weight: 700;
}

.attendance-mark-grid__cell {
    text-align: center;
}

.attendance-mark-cell {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 999px;
    border: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.875rem;
    cursor: pointer;
    background: #f8f9fa;
    color: #495057;
}

.attendance-mark-cell.is-static {
    cursor: default;
}

.attendance-mark-cell--present {
    background: #d1f2e1;
    color: #0f7a45;
}

.attendance-mark-cell--half {
    background: #dbeafe;
    color: #1d4ed8;
}

.attendance-mark-cell--off {
    background: #ffedd5;
    color: #c2410c;
}

.attendance-mark-cell--leave {
    background: #ede9fe;
    color: #6d28d9;
}

.attendance-mark-cell--absent,
.attendance-mark-cell--open_today {
    background: #fee2e2;
    color: #b91c1c;
}

.attendance-mark-cell--stale_open {
    background: #fef3c7;
    color: #b45309;
}

.attendance-mark-cell--open {
    background: #fee2e2;
    color: #b91c1c;
}

.attendance-mark-modal__icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.75rem;
    border-radius: 999px;
    background: rgba(232, 93, 4, 0.12);
    color: var(--brand-color, #e85d04);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.attendance-mark-type-list {
    display: grid;
    gap: 0.65rem;
}

.attendance-mark-type-option {
    width: 100%;
    border: 1px solid #dee2e6;
    border-radius: 12px;
    background: #fff;
    padding: 0.75rem 0.85rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-align: left;
}

.attendance-mark-type-option.is-selected,
.attendance-mark-type-option:hover {
    border-color: var(--brand-color, #e85d04);
    box-shadow: 0 0 0 1px rgba(232, 93, 4, 0.08);
}

.attendance-mark-type-option__text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.attendance-mark-type-option__label {
    font-weight: 600;
    color: #212529;
}

.attendance-mark-type-option__help {
    font-size: 0.8125rem;
    color: #6c757d;
}

.attendance-mark-panel__week-arrow.is-disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.attendance-mark-panel__filters {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1.25rem;
    border-bottom: 1px solid var(--border-color, #e9ecef);
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.attendance-mark-panel__worker-select.app-form-select {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: 14rem;
    margin: 0;
}

.attendance-mark-panel__worker-select .app-dropdown--form {
    min-width: 0;
}

.attendance-mark-panel__worker-select .app-dropdown__toggle-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.attendance-mark-panel__worker-select .form-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.attendance-mark-panel__worker-select .app-dropdown--form .app-dropdown__toggle {
    min-height: 2.5rem;
    padding: 0.5rem 2rem 0.5rem 0.85rem;
    font-size: 0.9rem;
    font-weight: 600;
    border-radius: 12px;
}

.attendance-mark-panel__filter-submit {
    flex: 0 0 auto;
    min-height: 2.5rem;
    padding-inline: 1rem;
    white-space: nowrap;
    border-radius: 12px;
    font-weight: 600;
}

@media (max-width: 575.98px) {
    .attendance-mark-panel__filters {
        gap: 0.5rem;
        padding-inline: 1rem;
    }

    .attendance-mark-panel__worker-select.app-form-select {
        flex: 1 1 0;
        max-width: none;
    }

    .attendance-mark-panel__filter-submit {
        padding-inline: 0.75rem;
        font-size: 0.875rem;
    }
}

.attendance-mark-cell--future {
    background: #f1f3f5;
    color: #adb5bd;
}

.attendance-mark-grid__day.is-future .attendance-mark-grid__day-date,
.attendance-mark-grid__day.is-future .attendance-mark-grid__day-name {
    color: #adb5bd;
}

.attendance-mark-times {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #eef1f4;
}

.subcontractor-opportunities-panel {
    max-width: 100%;
    overflow: hidden;
}

.subcontractor-opportunities-panel__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-color, #e9ecef);
}

.subcontractor-opportunities-panel__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem;
    flex: 1 1 auto;
    min-width: 0;
}

.subcontractor-opportunities-panel__filter-field {
    flex: 1 1 10rem;
    min-width: 9rem;
    max-width: 14rem;
}

.subcontractor-opportunities-panel__filter-submit,
.subcontractor-opportunities-panel__filter-clear {
    flex: 0 0 auto;
}

.subcontractor-opportunities-panel__view-toggle {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--border-color, #e9ecef);
    border-radius: 0.5rem;
    overflow: hidden;
    flex: 0 0 auto;
}

.subcontractor-opportunities-panel__view-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.85rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--brand-primary);
    text-decoration: none;
    background: #fff;
    border: 0;
}

.subcontractor-opportunities-panel__view-btn + .subcontractor-opportunities-panel__view-btn {
    border-left: 1px solid var(--border-color, #e9ecef);
}

.subcontractor-opportunities-panel__view-btn.is-active {
    background: rgba(var(--brand-primary-rgb, 13, 110, 253), 0.08);
}

.subcontractor-opportunities-panel .data-table-panel--attendance table.data-table {
    min-width: 56rem;
}

@media (max-width: 767.98px) {
    .subcontractor-opportunities-panel__toolbar {
        padding-inline: 1rem;
    }

    .subcontractor-opportunities-panel__filters {
        width: 100%;
    }

    .subcontractor-opportunities-panel__filter-field {
        flex: 1 1 calc(50% - 0.375rem);
        max-width: none;
    }

    .subcontractor-opportunities-panel__view-toggle {
        width: 100%;
    }

    .subcontractor-opportunities-panel__view-btn {
        flex: 1 1 50%;
        justify-content: center;
    }
}

.public-opportunity-card__footer {
    justify-content: center;
}

.public-opportunity-card__footer-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
}

.public-opportunity-card__footer-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.375rem;
    height: 2.375rem;
    padding: 0;
    flex: 0 0 auto;
}

.public-opportunity-card__footer-btn .subcontract-opportunity-comments-open-button__count {
    position: absolute;
    top: -0.35rem;
    right: -0.35rem;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    background: var(--brand-primary);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1.1rem;
    text-align: center;
}

.public-opportunity-card__footer-actions .btn {
    position: relative;
}

/* Public training quiz (AI Training Assistant) */
.public-training-quiz-body {
    margin: 0;
    background: #eef2f6;
    min-height: 100vh;
    font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

.public-training-quiz {
    max-width: 430px;
    margin: 0 auto;
    min-height: 100vh;
    background: #fff;
    display: flex;
    flex-direction: column;
    box-shadow: 0 0 40px rgba(30, 58, 95, 0.08);
}

.public-training-quiz__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.1rem 0.75rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
}

.public-training-quiz__brand {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

.public-training-quiz__logo {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #e67e22, #f39c4d);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.public-training-quiz__brand-name {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #1e3a5f;
}

.public-training-quiz__brand-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1e3a5f;
    line-height: 1.2;
}

.public-training-quiz__brand-sub {
    font-size: 0.82rem;
    color: #6b7c8f;
}

.public-training-quiz__course-chip {
    margin: 0.75rem 1.1rem 0;
    display: inline-flex;
    align-self: flex-start;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: #1e3a5f;
    font-size: 0.78rem;
    font-weight: 600;
}

.public-training-quiz__panel {
    padding: 1rem 1.1rem 1.25rem;
    flex: 1;
}

.public-training-quiz__heading {
    font-size: 1.35rem;
    font-weight: 700;
    color: #1e3a5f;
    margin-bottom: 0.5rem;
}

.public-training-quiz__help {
    color: #64748b;
    font-size: 0.95rem;
    margin-bottom: 1.25rem;
}

.public-training-quiz__form {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.public-training-quiz__field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: #334155;
}

.public-training-quiz__field input,
.public-training-quiz__composer textarea {
    border: 1px solid rgba(30, 58, 95, 0.16);
    border-radius: 12px;
    padding: 0.75rem 0.85rem;
    font-size: 1rem;
    font-weight: 400;
}

.public-training-quiz__primary-btn {
    width: 100%;
    padding: 0.8rem 1rem;
    margin-top: 0.25rem;
}

.public-training-quiz__status {
    font-size: 0.9rem;
    color: #1e3a5f;
    margin: 0.5rem 0 0;
}

.public-training-quiz__status.is-error {
    color: #b42318;
}

.public-training-quiz__meta {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.78rem;
    color: #64748b;
    margin-bottom: 0.55rem;
}

.public-training-quiz__progress {
    height: 6px;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.15);
    overflow: hidden;
    margin-bottom: 1rem;
}

.public-training-quiz__progress-bar {
    height: 100%;
    background: linear-gradient(90deg, #e67e22, #f39c4d);
    transition: width 0.25s ease;
}

.public-training-quiz__question-card {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 0.85rem;
    align-items: start;
    margin-bottom: 1rem;
}

.public-training-quiz__question-media {
    width: 88px;
    height: 88px;
    border-radius: 14px;
    overflow: hidden;
    background: #e8edf3;
    position: relative;
}

.public-training-quiz__question-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-training-quiz__question-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1e3a5f;
    font-size: 1.6rem;
    background: linear-gradient(145deg, #dfe7f0, #f4f7fb);
}

.public-training-quiz__question-text {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 600;
    color: #1e3a5f;
    line-height: 1.4;
}

.public-training-quiz__section-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: #475569;
    margin-bottom: 0.45rem;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.public-training-quiz__answer-box {
    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
    border: 1.5px solid rgba(34, 197, 94, 0.45);
    background: rgba(34, 197, 94, 0.08);
    border-radius: 12px;
    padding: 0.85rem 0.9rem;
    margin-bottom: 0.9rem;
    color: #1e3a5f;
}

.public-training-quiz__answer-box.is-incorrect {
    border-color: rgba(239, 68, 68, 0.45);
    background: rgba(239, 68, 68, 0.08);
}

.public-training-quiz__answer-check {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    background: #22c55e;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.75rem;
}

.public-training-quiz__answer-box.is-incorrect .public-training-quiz__answer-check {
    background: #ef4444;
}

.public-training-quiz__eval-card {
    border-radius: 14px;
    border: 1px solid rgba(34, 197, 94, 0.25);
    background: rgba(34, 197, 94, 0.08);
    padding: 0.95rem 1rem;
    margin-bottom: 0.9rem;
}

.public-training-quiz__eval-card .public-training-quiz__section-label {
    color: #15803d;
}

.public-training-quiz__eval-feedback {
    margin: 0 0 0.45rem;
    color: #1e3a5f;
}

.public-training-quiz__eval-score {
    margin: 0 0 0.25rem;
    font-weight: 700;
    color: #15803d;
}

.public-training-quiz__eval-reference {
    margin: 0;
    font-size: 0.86rem;
    color: #64748b;
}

.public-training-quiz__explain-card {
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 14px;
    padding: 0.95rem 1rem;
    margin-bottom: 1rem;
    background: #fff;
}

.public-training-quiz__ref-link {
    font-size: 0.9rem;
    font-weight: 600;
    color: #2563eb;
    text-decoration: none;
}

.public-training-quiz__composer {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-top: 0.5rem;
}

.public-training-quiz__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
    margin-top: 1rem;
}

.public-training-quiz__actions .btn-brand {
    grid-column: 1 / -1;
}

.public-training-quiz__motivation {
    margin-top: auto;
    background: #1e3a5f;
    color: #fff;
    padding: 0.85rem 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.9rem;
}

.public-training-quiz__motivation i {
    color: #e67e22;
}

.tc-quiz-card__public {
    margin-top: 0.9rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.tc-quiz-card__public-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
    margin-top: 0.55rem;
}

.tc-quiz-card__public-url {
    font-size: 0.75rem;
    word-break: break-all;
    color: #64748b;
}

.tc-quiz-card__qr {
    width: 120px;
    height: 120px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 10px;
    padding: 0.35rem;
    background: #fff;
}

/* User activities page (system brand colors) */
.user-activities-page {
    --ua-rail: #d7e0ea;
    --ua-info: #2d5a87;
    --ua-info-soft: rgba(45, 90, 135, 0.12);
    --ua-warn: var(--brand-accent);
    --ua-warn-soft: rgba(230, 126, 34, 0.14);
    --ua-ok: var(--brand-success);
    --ua-ok-soft: rgba(39, 174, 96, 0.14);
}

.ua-hero {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.ua-hero__intro {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    min-width: min(100%, 20rem);
}

.ua-hero__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ua-info-soft);
    color: var(--brand-secondary);
    font-size: 1.1rem;
    flex-shrink: 0;
}

.ua-hero__title {
    margin: 0;
    font-size: 1.65rem;
    font-weight: 750;
    color: var(--brand-primary);
    line-height: 1.2;
}

.ua-hero__subtitle {
    margin-top: 0.25rem;
    color: #64748b;
    font-size: 0.95rem;
}

.ua-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.ua-hero__filter.is-active {
    border-color: var(--brand-secondary);
    color: var(--brand-secondary);
    background: var(--ua-info-soft);
}

.ua-filters-card {
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 1rem;
    background: #fff;
    padding: 1rem 1.15rem;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.04);
}

.ua-demo-banner {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.15rem;
    padding: 1.05rem 1.2rem;
    border-radius: 1.15rem;
    border: 1.5px dashed rgba(45, 90, 135, 0.28);
    background: linear-gradient(135deg, rgba(45, 90, 135, 0.08) 0%, rgba(248, 250, 252, 0.95) 55%, rgba(230, 126, 34, 0.06) 100%);
}

.ua-demo-banner__main {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: min(100%, 18rem);
    flex: 1;
}

.ua-demo-banner__icon {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--brand-secondary);
    border: 1px solid rgba(45, 90, 135, 0.12);
    flex-shrink: 0;
}

.ua-demo-banner__title {
    font-weight: 750;
    color: var(--brand-primary);
    margin-bottom: 0.15rem;
}

.ua-demo-banner__text {
    color: #64748b;
    font-size: 0.9rem;
}

.ua-demo-banner__art {
    margin-left: auto;
    width: 3.4rem;
    height: 3.4rem;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.75);
    color: var(--brand-accent);
    font-size: 1.45rem;
    border: 1px solid rgba(230, 126, 34, 0.18);
    flex-shrink: 0;
}

.ua-board {
    position: relative;
    margin-bottom: 1.25rem;
    padding: 0.35rem 0.15rem 0.5rem 0.35rem;
}

.ua-board--demo {
    margin-bottom: 1.35rem;
}

.user-activities-timeline {
    position: relative;
    padding-left: 0.25rem;
}

.user-activities-timeline::before {
    content: "";
    position: absolute;
    top: 0.85rem;
    bottom: 1rem;
    left: 1.05rem;
    width: 2px;
    background: linear-gradient(180deg, #c9d6e4 0%, #e4ebf2 100%);
}

.user-activities-timeline__section + .user-activities-timeline__section {
    margin-top: 1.35rem;
}

.user-activities-timeline__section-title {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 0.7rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
    margin: 0 0 0.85rem;
}

.user-activities-timeline__section-dot {
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 999px;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--ua-rail);
    background: var(--ua-info);
    flex-shrink: 0;
    margin-left: 0.62rem;
}

.user-activities-timeline__section--upcoming .user-activities-timeline__section-dot {
    background: var(--ua-warn);
}

.user-activities-timeline__section--earlier .user-activities-timeline__section-dot {
    background: var(--ua-ok);
}

.user-activities-timeline__track {
    display: grid;
    gap: 0.85rem;
}

.ua-card {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 2.1rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: stretch;
}

.ua-card__rail {
    display: flex;
    justify-content: center;
    padding-top: 1.35rem;
}

.ua-card__dot {
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.45rem;
    background: #fff;
    color: var(--ua-info);
    border: 2px solid var(--ua-info);
    box-shadow: 0 0 0 3px #fff;
}

.ua-card--warning .ua-card__dot {
    color: var(--ua-warn);
    border-color: var(--ua-warn);
}

.ua-card--success .ua-card__dot,
.ua-card--done .ua-card__dot {
    color: #fff;
    background: var(--ua-ok);
    border-color: var(--ua-ok);
}

.ua-card__body {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.85rem;
    align-items: start;
    padding: 1rem 1.05rem;
    border-radius: 1.05rem;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.05);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ua-card:not(.ua-card--demo):hover .ua-card__body {
    border-color: rgba(45, 90, 135, 0.18);
    box-shadow: 0 14px 32px rgba(30, 58, 95, 0.08);
}

.ua-card__icon {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ua-info-soft);
    color: var(--ua-info);
    flex-shrink: 0;
}

.ua-card--warning .ua-card__icon {
    background: var(--ua-warn-soft);
    color: var(--ua-warn);
}

.ua-card--success .ua-card__icon,
.ua-card--done .ua-card__icon {
    background: var(--ua-ok-soft);
    color: var(--ua-ok);
}

.ua-card__main {
    min-width: 0;
}

.ua-card__title-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: space-between;
    align-items: flex-start;
}

.ua-card__title {
    font-weight: 700;
    color: var(--brand-primary);
    font-size: 1.02rem;
    line-height: 1.3;
    margin-bottom: 0.35rem;
}

.ua-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.55rem;
    align-items: center;
    font-size: 0.8rem;
    color: #64748b;
    margin-bottom: 0.45rem;
}

.ua-card__description {
    margin: 0;
    color: #475569;
    font-size: 0.9rem;
    line-height: 1.45;
    white-space: pre-wrap;
}

.ua-card__chevron {
    color: #94a3b8;
    padding-top: 0.55rem;
    font-size: 0.85rem;
}

.ua-card__actions {
    display: flex;
    gap: 0.3rem;
}

.ua-card__edit summary {
    cursor: pointer;
    color: var(--brand-secondary);
    font-size: 0.85rem;
    font-weight: 600;
}

.ua-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    background: rgba(100, 116, 139, 0.1);
    color: #475569;
}

.ua-chip--open {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.ua-chip--done {
    background: rgba(39, 174, 96, 0.14);
    color: #1e7e34;
}

.ua-chip--todo {
    background: rgba(45, 90, 135, 0.14);
    color: var(--brand-primary);
}

.ua-chip--demo {
    background: var(--ua-warn-soft);
    color: #b35c12;
}

.user-activities-timeline--demo .ua-card__body {
    pointer-events: none;
}

.ua-handover {
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.04);
    overflow: hidden;
    margin-bottom: 0.5rem;
}

.ua-handover__head {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    padding: 1.1rem 1.2rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.ua-handover__icon {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ua-info-soft);
    color: var(--brand-secondary);
    flex-shrink: 0;
}

.ua-handover__title {
    font-weight: 750;
    color: var(--brand-primary);
    margin-bottom: 0.15rem;
}

.ua-handover__help {
    color: #64748b;
    font-size: 0.9rem;
}

.ua-handover__body {
    padding: 1.1rem 1.2rem 1.25rem;
}

.ua-handover__empty {
    text-align: center;
    border: 1.5px dashed rgba(30, 58, 95, 0.16);
    border-radius: 1rem;
    padding: 1.5rem 1rem;
    background: rgba(248, 250, 252, 0.85);
}

.ua-handover__empty-icon {
    width: 2.75rem;
    height: 2.75rem;
    margin: 0 auto 0.75rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.06);
    color: #64748b;
}

.ua-handover__empty-title {
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.25rem;
}

.ua-handover__empty-text {
    color: #64748b;
    font-size: 0.9rem;
    max-width: 28rem;
    margin-inline: auto;
}

.user-activities-viewer-list {
    display: grid;
    gap: 0.35rem;
    max-height: 14rem;
    overflow: auto;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 10px;
    background: rgba(248, 250, 252, 0.8);
}

.ua-share-preview__card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.85rem;
    background: rgba(248, 250, 252, 0.9);
}

.ua-share-preview__avatar {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
    flex-shrink: 0;
}

.ua-share-preview__name {
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.25;
}

.ua-share-preview__email {
    font-size: 0.85rem;
    color: #64748b;
}

.ua-share-list__items {
    display: grid;
    gap: 0.5rem;
}

.ua-share-list__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.8rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 0.75rem;
    background: #fff;
}

.ua-share-list__name {
    font-weight: 650;
    color: var(--brand-primary);
    font-size: 0.9rem;
}

.ua-share-list__email {
    font-size: 0.8rem;
    color: #64748b;
}

@media (max-width: 767.98px) {
    .ua-card__body {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .ua-card__chevron {
        display: none;
    }

    .ua-demo-banner__art {
        display: none;
    }

    .user-activities-timeline::before {
        left: 0.95rem;
    }
}

/* Supplier / tools chat */
.supplier-chat {
    display: flex;
    height: min(78vh, 720px);
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 30px rgba(30, 58, 95, 0.06);
}

.supplier-chat__list {
    width: min(38%, 420px);
    min-width: 280px;
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(30, 58, 95, 0.1);
    background:
        linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, #fff 28%),
        #fff;
}

.supplier-chat__list-head {
    padding: 1rem 1rem 0.85rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
}

.supplier-chat__list-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.supplier-chat__list-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.supplier-chat__list-subtitle {
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: #64748b;
}

.supplier-chat__new-btn {
    white-space: nowrap;
}

.supplier-chat__search-wrap {
    position: relative;
}

.supplier-chat__search-wrap > i {
    position: absolute;
    left: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 0.8rem;
    pointer-events: none;
}

.supplier-chat__search-input {
    padding-left: 2.2rem;
    border-radius: 0.75rem;
    background: #f8fafc;
}

.supplier-chat__threads {
    flex: 1;
    overflow: auto;
    padding: 0.5rem;
}

.supplier-chat__thread {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.7rem;
    align-items: start;
    padding: 0.75rem 0.8rem;
    border-radius: 0.85rem;
    text-decoration: none;
    color: inherit;
    border: 1px solid transparent;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.supplier-chat__thread:hover {
    background: rgba(241, 245, 249, 0.9);
}

.supplier-chat__thread.is-active {
    background: #fff;
    border-color: rgba(249, 115, 22, 0.28);
    box-shadow: 0 8px 18px rgba(30, 58, 95, 0.06);
}

.supplier-chat__thread.has-unread .supplier-chat__thread-name,
.supplier-chat__thread.has-unread .supplier-chat__thread-preview {
    font-weight: 700;
    color: #0f172a;
}

.supplier-chat__avatar {
    width: 2.45rem;
    height: 2.45rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.75rem;
    font-weight: 700;
    color: #9a3412;
    background: linear-gradient(145deg, #ffedd5, #fed7aa);
}

.supplier-chat__avatar--lg {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 0.85rem;
}

.supplier-chat__avatar--sm {
    width: 1.85rem;
    height: 1.85rem;
    font-size: 0.65rem;
}

.supplier-chat__thread-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.supplier-chat__thread-name {
    font-size: 0.9rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.25;
}

.supplier-chat__thread-time {
    flex-shrink: 0;
    font-size: 0.7rem;
    color: #94a3b8;
}

.supplier-chat__thread-meta {
    margin-top: 0.1rem;
    font-size: 0.72rem;
    color: #64748b;
}

.supplier-chat__thread-preview {
    margin-top: 0.2rem;
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.35;
}

.supplier-chat__unread {
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 700;
    color: #fff;
    background: #ef4444;
}

.supplier-chat__empty,
.supplier-chat__pane-empty {
    display: grid;
    justify-items: center;
    text-align: center;
    gap: 0.4rem;
    padding: 2rem 1.25rem;
}

.supplier-chat__pane-empty {
    margin: auto;
}

.supplier-chat__empty-visual {
    position: relative;
    width: 3.75rem;
    height: 3.75rem;
    margin-bottom: 0.35rem;
}

.supplier-chat__empty-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(59, 130, 246, 0.16);
    background: rgba(255, 255, 255, 0.8);
}

.supplier-chat__empty-icon {
    position: absolute;
    inset: 0.55rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #eff6ff, #dbeafe);
    color: #2563eb;
    box-shadow: 0 6px 14px rgba(37, 99, 235, 0.12);
}

.supplier-chat__empty-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
}

.supplier-chat__empty-copy {
    max-width: 18rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #64748b;
}

.supplier-chat__pane {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background:
        radial-gradient(circle at top right, rgba(255, 237, 213, 0.35), transparent 35%),
        #f8fafc;
}

.supplier-chat__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 1.1rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(6px);
}

.supplier-chat__header-title {
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
}

.supplier-chat__header-meta {
    font-size: 0.78rem;
    color: #64748b;
}

.supplier-chat__header-text {
    min-width: 0;
    flex: 1;
}

.supplier-chat__messages {
    flex: 1;
    overflow: auto;
    padding: 1.15rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.supplier-chat__system {
    display: flex;
    justify-content: center;
}

.supplier-chat__system span {
    max-width: 85%;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.14);
    color: #64748b;
    font-size: 0.72rem;
    text-align: center;
}

.supplier-chat__msg {
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
    max-width: 78%;
}

.supplier-chat__msg--them {
    align-self: flex-start;
}

.supplier-chat__msg--me {
    align-self: flex-end;
    flex-direction: row-reverse;
}

.supplier-chat__bubble {
    padding: 0.7rem 0.85rem;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}

.supplier-chat__msg--me .supplier-chat__bubble {
    background: linear-gradient(145deg, #fff7ed, #ffedd5);
    border-color: rgba(249, 115, 22, 0.18);
    border-bottom-right-radius: 0.35rem;
}

.supplier-chat__msg--them .supplier-chat__bubble {
    border-bottom-left-radius: 0.35rem;
}

.supplier-chat__bubble-meta {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.25rem;
    font-size: 0.68rem;
    color: #94a3b8;
}

.supplier-chat__bubble-body {
    font-size: 0.9rem;
    line-height: 1.45;
    color: #0f172a;
    white-space: pre-wrap;
    word-break: break-word;
}

.supplier-chat__compose {
    padding: 0.85rem 1rem 1rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    background: rgba(255, 255, 255, 0.96);
}

.supplier-chat__compose-box {
    display: flex;
    align-items: flex-end;
    gap: 0.55rem;
    padding: 0.45rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 1rem;
    background: #f8fafc;
}

.supplier-chat__compose-input {
    border: 0;
    background: transparent;
    box-shadow: none;
    resize: none;
    min-height: 2.4rem;
    max-height: 8.75rem;
    padding: 0.55rem 0.65rem;
}

.supplier-chat__compose-input:focus {
    box-shadow: none;
}

.supplier-chat__send {
    width: 2.55rem;
    height: 2.55rem;
    border-radius: 0.85rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.supplier-chat__compose-hint {
    margin-top: 0.4rem;
    font-size: 0.7rem;
    color: #94a3b8;
}

.supplier-chat__compose-list {
    display: grid;
    gap: 0.45rem;
}

.supplier-chat__compose-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    text-decoration: none;
    color: inherit;
    background: #f8fafc;
}

.supplier-chat__compose-item:hover {
    border-color: rgba(249, 115, 22, 0.28);
    background: #fff;
}

@media (max-width: 991.98px) {
    .supplier-chat {
        flex-direction: column;
        height: auto;
        min-height: 75vh;
    }

    .supplier-chat__list {
        width: 100%;
        min-width: 0;
        max-height: 42vh;
        border-right: 0;
        border-bottom: 1px solid rgba(30, 58, 95, 0.1);
    }

    .supplier-chat__pane {
        min-height: 52vh;
    }

    .supplier-chat__msg {
        max-width: 92%;
    }
}

.tools-return-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    padding: 0.75rem 0.9rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(249, 115, 22, 0.28);
    background: linear-gradient(90deg, rgba(255, 247, 237, 0.95), rgba(255, 255, 255, 0.95));
}

.tools-return-bar__copy {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
    font-size: 0.875rem;
    color: #334155;
}

.tools-return-bar__hint {
    color: #9a3412;
    font-size: 0.8rem;
}

.tools-return-bar__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.tools-rental-card__check,
.tools-rentals-list__check {
    display: flex;
    align-items: center;
    justify-content: center;
}

.tools-rentals-list .form-check-input,
.tools-rental-card .form-check-input {
    accent-color: var(--brand-accent);
    background-color: #fff;
    border-color: #c5d0dc;
    box-shadow: none;
}

.tools-rentals-list .form-check-input:hover,
.tools-rental-card .form-check-input:hover {
    border-color: var(--brand-accent);
}

.tools-rentals-list .form-check-input:focus,
.tools-rentals-list .form-check-input:focus-visible,
.tools-rentals-list .form-check-input:active,
.tools-rental-card .form-check-input:focus,
.tools-rental-card .form-check-input:focus-visible,
.tools-rental-card .form-check-input:active {
    border-color: var(--brand-accent);
    outline: none;
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.22);
}

.tools-rentals-list .form-check-input:checked,
.tools-rental-card .form-check-input:checked {
    background-color: var(--brand-accent);
    border-color: var(--brand-accent);
    background-image: none;
}

.tools-rentals-list .form-check-input:indeterminate,
.tools-rental-card .form-check-input:indeterminate {
    background-color: var(--brand-accent);
    border-color: var(--brand-accent);
    background-image: none;
}

.tools-rentals-list .form-check-input:indeterminate::after,
.tools-rental-card .form-check-input:indeterminate::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0.55rem;
    height: 0.125rem;
    background: #fff;
    border: 0;
    transform: translate(-50%, -50%);
}

.tools-rental-card__check-spacer {
    width: 1rem;
    height: 1rem;
    display: inline-block;
}

.tools-rental-card.is-return-pending {
    border-color: rgba(249, 115, 22, 0.28);
    background: rgba(255, 247, 237, 0.35);
}

.tools-return-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.3rem;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    color: #9a3412;
    background: rgba(249, 115, 22, 0.14);
}

.tools-return-summary {
    padding: 0.75rem 0.85rem;
    border-radius: 0.75rem;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.tools-return-summary__list {
    padding-left: 1.1rem;
    font-size: 0.875rem;
    color: #334155;
}

.tools-overview-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.85rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.tools-overview-pagination__info {
    font-size: 0.72rem;
    color: #64748b;
}

.tools-overview-pagination__nav .pagination {
    margin-bottom: 0;
    gap: 0.15rem;
}

.tools-overview-pagination__nav .page-link {
    min-width: 1.85rem;
    padding: 0.2rem 0.45rem;
    font-size: 0.75rem;
    border-radius: 0.4rem;
    color: #475569;
    border-color: var(--border);
}

.tools-overview-pagination__nav .page-item.active .page-link {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
}

/* Tools Chat (renter) - mockup layout with brand colors */
.tools-chat {
    display: flex;
    height: min(78vh, 720px);
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 30px rgba(30, 58, 95, 0.06);
}

.tools-chat__list {
    width: min(36%, 400px);
    min-width: 280px;
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(30, 58, 95, 0.1);
    background: #f8fafc;
}

.tools-chat__list-head {
    padding: 0.9rem 0.9rem 0.75rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
    background: #fff;
}

.tools-chat__search-wrap {
    position: relative;
}

.tools-chat__search-wrap > i {
    position: absolute;
    left: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 0.8rem;
    pointer-events: none;
}

.tools-chat__search-input {
    padding-left: 2.2rem;
    border-radius: 0.75rem;
    background: #f8fafc;
    border-color: rgba(30, 58, 95, 0.12);
}

.tools-chat__search-input:focus {
    border-color: var(--brand-accent);
    box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.18);
}

.tools-chat__threads {
    flex: 1;
    overflow: auto;
    padding: 0.45rem;
}

.tools-chat__thread {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.7rem;
    align-items: start;
    padding: 0.8rem 0.85rem;
    border-radius: 0.85rem;
    text-decoration: none;
    color: inherit;
    border: 1px solid transparent;
    border-left: 3px solid transparent;
    margin-bottom: 0.25rem;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.tools-chat__thread:hover {
    background: rgba(255, 255, 255, 0.9);
}

.tools-chat__thread.is-active {
    background: rgba(230, 126, 34, 0.08);
    border-color: rgba(230, 126, 34, 0.18);
    border-left-color: var(--brand-accent);
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.05);
}

.tools-chat__thread.has-unread .tools-chat__thread-name {
    font-weight: 700;
}

.tools-chat__avatar {
    width: 2.55rem;
    height: 2.55rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.78rem;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(145deg, var(--brand-primary), #2d5a87);
}

.tools-chat__avatar--lg {
    width: 2.75rem;
    height: 2.75rem;
}

.tools-chat__thread-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.tools-chat__thread-name {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--brand-primary);
    line-height: 1.25;
}

.tools-chat__thread-time {
    flex-shrink: 0;
    font-size: 0.7rem;
    color: #94a3b8;
}

.tools-chat__thread-meta,
.tools-chat__thread-preview {
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: #64748b;
    line-height: 1.35;
}

.tools-chat__unread {
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 700;
    color: #fff;
    background: #dc2626;
    align-self: center;
}

.tools-chat__dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    background: var(--brand-accent);
    align-self: center;
}

.tools-chat__list-foot {
    padding: 0.65rem 1rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    font-size: 0.75rem;
    color: #64748b;
    background: #fff;
}

.tools-chat__pane {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: #f1f5f9;
}

.tools-chat__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 1.1rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
    background: #fff;
}

.tools-chat__header-text {
    min-width: 0;
    flex: 1;
}

.tools-chat__header-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.3;
}

.tools-chat__header-status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.2rem;
    font-size: 0.75rem;
    color: #64748b;
}

.tools-chat__status-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15);
}

.tools-chat__header-action {
    color: #64748b;
    padding: 0.35rem 0.5rem;
}

.tools-chat__header-action:hover {
    color: var(--brand-accent);
}

.tools-chat__messages {
    flex: 1;
    overflow: auto;
    padding: 1.15rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.tools-chat__day {
    display: flex;
    justify-content: center;
    margin: 0.25rem 0;
}

.tools-chat__day span {
    padding: 0.25rem 0.7rem;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 600;
}

.tools-chat__system {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.4rem 0.55rem;
    margin: 0.15rem auto;
    max-width: 90%;
    padding: 0.55rem 0.85rem;
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(30, 58, 95, 0.08);
    color: #64748b;
    font-size: 0.78rem;
    text-align: center;
}

.tools-chat__system time {
    color: #94a3b8;
    font-size: 0.7rem;
}

.tools-chat__msg {
    display: flex;
    max-width: 72%;
}

.tools-chat__msg--them {
    align-self: flex-start;
}

.tools-chat__msg--me {
    align-self: flex-end;
}

.tools-chat__bubble {
    padding: 0.7rem 0.9rem 0.55rem;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.08);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}

.tools-chat__msg--me .tools-chat__bubble {
    background: linear-gradient(145deg, #fff7ed, #ffedd5);
    border-color: rgba(230, 126, 34, 0.22);
    border-bottom-right-radius: 0.35rem;
}

.tools-chat__msg--them .tools-chat__bubble {
    border-bottom-left-radius: 0.35rem;
}

.tools-chat__bubble-name {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.tools-chat__msg--me .tools-chat__bubble-name {
    color: #9a3412;
}

.tools-chat__bubble-body {
    margin-top: 0.2rem;
    font-size: 0.9rem;
    line-height: 1.45;
    color: #0f172a;
    white-space: pre-wrap;
    word-break: break-word;
}

.tools-chat__bubble-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    margin-top: 0.35rem;
    font-size: 0.68rem;
    color: #94a3b8;
}

.tools-chat__msg--me .tools-chat__bubble-foot i {
    color: var(--brand-accent);
}

.tools-chat__compose {
    padding: 0.85rem 1rem 1rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    background: #fff;
}

.tools-chat__compose-box {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 1rem;
    background: #f8fafc;
}

.tools-chat__compose-input {
    border: 0;
    background: transparent;
    box-shadow: none;
    resize: none;
    width: 100%;
    min-height: 5.5rem;
    max-height: 12.5rem;
    padding: 0.35rem 0.15rem;
    line-height: 1.45;
    font-size: 0.95rem;
}

.tools-chat__compose-input:focus {
    box-shadow: none;
}

.tools-chat__compose-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.tools-chat__send {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border-radius: 0.8rem;
    padding: 0.55rem 1.05rem;
    flex-shrink: 0;
    margin-left: auto;
}

.tools-chat__compose-hint {
    font-size: 0.7rem;
    color: #94a3b8;
}

.tools-chat__empty,
.tools-chat__pane-empty {
    display: grid;
    justify-items: center;
    text-align: center;
    gap: 0.4rem;
    padding: 2rem 1.25rem;
}

.tools-chat__pane-empty {
    margin: auto;
}

.tools-chat__empty-visual {
    position: relative;
    width: 3.75rem;
    height: 3.75rem;
    margin-bottom: 0.35rem;
}

.tools-chat__empty-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(30, 58, 95, 0.12);
    background: rgba(255, 255, 255, 0.8);
}

.tools-chat__empty-icon {
    position: absolute;
    inset: 0.55rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #fff7ed, #ffedd5);
    color: var(--brand-accent);
    box-shadow: 0 6px 14px rgba(230, 126, 34, 0.12);
}

.tools-chat__empty-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.tools-chat__empty-copy {
    max-width: 18rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: #64748b;
}

@media (max-width: 991.98px) {
    .tools-chat {
        flex-direction: column;
        height: auto;
        min-height: 75vh;
    }

    .tools-chat__list {
        width: 100%;
        min-width: 0;
        max-height: 40vh;
        border-right: 0;
        border-bottom: 1px solid rgba(30, 58, 95, 0.1);
    }

    .tools-chat__pane {
        min-height: 55vh;
    }

    .tools-chat__msg {
        max-width: 92%;
    }

    .tools-chat__send span {
        display: none;
    }
}

/* -------------------------------------------------------------------------
   Supplier hub dashboard
   ------------------------------------------------------------------------- */
.supplier-hub-welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    flex-wrap: wrap;
    padding: 1.35rem 1.5rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(230, 126, 34, 0.08), rgba(30, 58, 95, 0.04)),
        #fff;
}

.supplier-hub-welcome__title {
    margin: 0 0 0.35rem;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.supplier-hub-welcome__text {
    margin: 0;
    color: #64748b;
    font-size: 0.95rem;
}

.supplier-hub-welcome__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.supplier-hub-setup {
    padding: 1.25rem 1.4rem;
    border: 1px solid rgba(230, 126, 34, 0.28);
    border-radius: 16px;
    background: #fff7ed;
}

.supplier-hub-setup__title {
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.25rem;
}

.supplier-hub-setup__text {
    margin: 0 0 0.85rem;
    color: #64748b;
    font-size: 0.92rem;
}

.supplier-hub-setup__list {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
}

.supplier-hub-setup__list li {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.45rem;
    color: var(--brand-primary);
}

.supplier-hub-setup__list li.is-done {
    color: #64748b;
}

.supplier-hub-setup__list a {
    margin-left: auto;
    font-size: 0.85rem;
    color: var(--brand-accent);
    text-decoration: none;
    font-weight: 600;
}

.supplier-hub-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.supplier-hub-stat {
    position: relative;
    overflow: hidden;
    padding: 1.1rem 1.15rem 1.35rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 14px;
    background: #fff;
}

.supplier-hub-stat__value {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1;
    color: var(--brand-primary);
}

.supplier-hub-stat__label {
    margin-top: 0.45rem;
    font-weight: 600;
    color: #334155;
    font-size: 0.92rem;
}

.supplier-hub-stat__meta {
    margin-top: 0.2rem;
    color: #94a3b8;
    font-size: 0.8rem;
}

.supplier-hub-stat__spark {
    position: absolute;
    right: 0.85rem;
    bottom: 0.7rem;
    width: 72px;
    height: 28px;
    opacity: 0.9;
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

.supplier-hub-stat__spark--blue {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 28' fill='none'%3E%3Cpath d='M1 20 C12 18 16 8 26 10 C36 12 40 22 50 16 C60 10 66 6 71 8' stroke='%232d5a87' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.supplier-hub-stat__spark--green {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 28' fill='none'%3E%3Cpath d='M1 18 C10 16 18 22 28 14 C38 6 46 10 54 12 C62 14 68 8 71 10' stroke='%2327ae60' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.supplier-hub-stat__spark--orange {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 28' fill='none'%3E%3Cpath d='M1 16 C12 14 18 22 28 18 C38 14 44 8 54 12 C64 16 68 10 71 12' stroke='%23e67e22' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.supplier-hub-stat__spark--navy {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 28' fill='none'%3E%3Cpath d='M1 14 C14 10 20 20 30 16 C40 12 48 6 58 10 C66 13 69 16 71 14' stroke='%231e3a5f' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.supplier-hub-supply {
    padding: 1.2rem 1.35rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: #fff;
}

.supplier-hub-supply__head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-bottom: 0.95rem;
}

.supplier-hub-supply__title {
    margin: 0 0 0.25rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.supplier-hub-supply__help {
    margin: 0;
    color: #64748b;
    font-size: 0.9rem;
    max-width: 46rem;
}

.supplier-hub-supply__learn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--brand-secondary);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 600;
    white-space: nowrap;
}

.supplier-hub-supply__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.supplier-hub-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.95rem;
    border-radius: 999px;
    border: 1px solid rgba(30, 58, 95, 0.14);
    background: #f8fafc;
    color: #64748b;
    font-weight: 600;
    font-size: 0.9rem;
}

.supplier-hub-chip.is-active {
    background: var(--brand-accent);
    border-color: var(--brand-accent);
    color: #fff;
}

.supplier-hub-tiles {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.9rem;
}

.supplier-hub-tile {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-height: 132px;
    padding: 1.15rem 1.1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.supplier-hub-tile:hover {
    border-color: rgba(230, 126, 34, 0.45);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
    transform: translateY(-1px);
    color: inherit;
}

.supplier-hub-tile--accent {
    background: linear-gradient(160deg, #e67e22 0%, #cf6d14 100%);
    border-color: transparent;
    color: #fff;
}

.supplier-hub-tile--accent:hover {
    color: #fff;
    border-color: transparent;
    box-shadow: 0 12px 28px rgba(230, 126, 34, 0.28);
}

.supplier-hub-tile__icon {
    width: 2.1rem;
    height: 2.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    margin-bottom: 0.35rem;
}

.supplier-hub-tile--accent .supplier-hub-tile__icon {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.supplier-hub-tile__title {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.supplier-hub-tile--accent .supplier-hub-tile__title {
    color: #fff;
}

.supplier-hub-tile__text {
    font-size: 0.86rem;
    color: #64748b;
}

.supplier-hub-tile--accent .supplier-hub-tile__text {
    color: rgba(255, 255, 255, 0.9);
}

.supplier-hub-tile__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: #c0392b;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
}

.supplier-hub-opportunity {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1.15rem 1.35rem;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.18);
    background: linear-gradient(135deg, rgba(30, 58, 95, 0.06), rgba(230, 126, 34, 0.08));
}

.supplier-hub-opportunity__title {
    margin: 0 0 0.25rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.supplier-hub-opportunity__text {
    margin: 0;
    color: #64748b;
    font-size: 0.9rem;
}

.supplier-hub-opportunity__side {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
}

.supplier-hub-opportunity__strength {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    font-size: 0.8rem;
    color: #64748b;
}

.supplier-hub-opportunity__strength strong {
    color: var(--brand-primary);
    font-size: 1.05rem;
}

.supplier-hub-detail {
    display: grid;
    grid-template-columns: 1.6fr 0.8fr;
    gap: 1rem;
    padding: 1.25rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    background: #fff;
}

.supplier-hub-detail__main {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.supplier-hub-detail__icon {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
    flex-shrink: 0;
}

.supplier-hub-detail__title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.supplier-hub-detail__text {
    margin: 0 0 0.85rem;
    color: #64748b;
    font-size: 0.92rem;
}

.supplier-hub-detail__points {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.4rem;
}

.supplier-hub-detail__points li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #334155;
    font-size: 0.9rem;
    font-weight: 600;
}

.supplier-hub-detail__points i {
    color: var(--brand-success);
}

.supplier-hub-detail__action {
    padding: 1rem;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.supplier-hub-detail__action-title {
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.35rem;
}

.supplier-hub-detail__action-text {
    margin: 0 0 0.85rem;
    color: #64748b;
    font-size: 0.86rem;
}

@media (max-width: 1199.98px) {
    .supplier-hub-tiles {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .supplier-hub-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .supplier-hub-tiles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .supplier-hub-detail {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .supplier-hub-stats,
    .supplier-hub-tiles {
        grid-template-columns: 1fr;
    }

    .supplier-hub-welcome__actions .btn {
        width: 100%;
    }
}

/* Supplier rental detail */
.supplier-rental-detail__hero-top {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1.15rem;
}

.supplier-rental-detail__kicker {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.25rem;
}

.supplier-rental-detail__title {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 700;
    color: #1e3a5f;
}

.supplier-rental-detail__subtitle {
    margin-top: 0.35rem;
    color: #64748b;
    font-size: 0.92rem;
}

.supplier-rental-detail__hero-status {
    text-align: right;
    flex-shrink: 0;
}

.supplier-rental-detail__metrics {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.75rem;
}

.supplier-rental-detail__metric {
    padding: 0.85rem 0.9rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: #f8fafc;
}

.supplier-rental-detail__metric-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-bottom: 0.25rem;
}

.supplier-rental-detail__metric-value {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1e3a5f;
}

.supplier-rental-detail__metric-meta {
    margin-top: 0.15rem;
    font-size: 0.78rem;
    color: #64748b;
}

.supplier-rental-detail__section-head {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.supplier-rental-detail__section-icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: #1e3a5f;
    flex-shrink: 0;
}

.supplier-rental-detail__dl {
    display: grid;
    gap: 0.75rem;
    margin: 0;
}

.supplier-rental-detail__dl > div {
    display: grid;
    gap: 0.15rem;
}

.supplier-rental-detail__dl dt {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
}

.supplier-rental-detail__dl dd {
    margin: 0;
    color: #1e3a5f;
    font-weight: 600;
    word-break: break-word;
}

.supplier-rental-detail__tools {
    display: grid;
    gap: 0.75rem;
}

.supplier-rental-detail__tool {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.85rem;
    align-items: flex-start;
    padding: 0.9rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 0.85rem;
    background: #fff;
}

.supplier-rental-detail__tool-top {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
}

.supplier-rental-detail__tool-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    margin-top: 0.55rem;
    font-size: 0.82rem;
    color: #64748b;
}

.supplier-rental-detail__tool-meta i {
    margin-right: 0.25rem;
    opacity: 0.8;
}

.supplier-rental-detail__note {
    font-size: 0.86rem;
    color: #475569;
    background: #f8fafc;
    border-radius: 0.55rem;
    padding: 0.55rem 0.7rem;
}

.supplier-rental-detail__returns {
    display: grid;
    gap: 0.65rem;
}

.supplier-rental-detail__return {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.85rem 0.9rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 0.85rem;
    background: #f8fafc;
}

.supplier-rental-detail__messages {
    display: grid;
    gap: 0.55rem;
}

.supplier-rental-detail__message {
    padding: 0.7rem 0.8rem;
    border-radius: 0.75rem;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.supplier-rental-detail__message.is-supplier {
    background: rgba(30, 58, 95, 0.06);
}

.supplier-rental-detail__message-meta {
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
    margin-bottom: 0.2rem;
}

.supplier-rental-detail__message-body {
    font-size: 0.88rem;
    color: #1e3a5f;
    white-space: pre-wrap;
}

@media (max-width: 1199.98px) {
    .supplier-rental-detail__metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .supplier-rental-detail__hero-top {
        flex-direction: column;
    }

    .supplier-rental-detail__hero-status {
        text-align: left;
    }

    .supplier-rental-detail__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .supplier-rental-detail__tool-top {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 575.98px) {
    .supplier-rental-detail__metrics {
        grid-template-columns: 1fr;
    }

    .supplier-rental-detail__tool {
        grid-template-columns: 1fr;
    }
}

/* Supplier locations */
.supplier-locations__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.supplier-locations__card {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.15rem 1.2rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 18px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.supplier-locations__card:hover {
    border-color: rgba(30, 58, 95, 0.18);
    box-shadow: 0 12px 24px rgba(30, 58, 95, 0.07);
}

.supplier-locations__card.is-primary {
    border-color: rgba(34, 197, 94, 0.35);
    background: linear-gradient(180deg, rgba(34, 197, 94, 0.05), #fff 42%);
}

.supplier-locations__card-top {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.supplier-locations__icon {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: #1e3a5f;
    flex-shrink: 0;
}

.supplier-locations__card.is-primary .supplier-locations__icon {
    background: rgba(34, 197, 94, 0.14);
    color: #15803d;
}

.supplier-locations__card-heading {
    min-width: 0;
    flex: 1;
}

.supplier-locations__name-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.supplier-locations__name {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #1e3a5f;
}

.supplier-locations__primary-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.14);
    color: #15803d;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.supplier-locations__place {
    margin-top: 0.2rem;
    color: #64748b;
    font-size: 0.88rem;
}

.supplier-locations__edit {
    flex-shrink: 0;
}

.supplier-locations__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 1rem;
    margin: 0;
}

.supplier-locations__meta > div {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.supplier-locations__meta dt {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
}

.supplier-locations__meta dd {
    margin: 0;
    color: #1e3a5f;
    font-weight: 600;
    font-size: 0.9rem;
    word-break: break-word;
}

.supplier-locations__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    margin-top: auto;
}

.supplier-locations__rentals {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #64748b;
    font-size: 0.86rem;
    font-weight: 600;
}

@media (max-width: 991.98px) {
    .supplier-locations__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .supplier-locations__card-top {
        flex-wrap: wrap;
    }

    .supplier-locations__edit {
        width: 100%;
    }

    .supplier-locations__meta {
        grid-template-columns: 1fr;
    }

    .supplier-locations__footer {
        flex-direction: column;
        align-items: stretch;
    }
}

.supplier-team__location-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.supplier-team__card .worker-member-card__footer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
}

.supplier-kb__notice {
    border-radius: 0.85rem;
    border-color: rgba(30, 58, 95, 0.12);
}

.supplier-kb__quick-add {
    padding: 0.95rem 1rem;
    border: 1px dashed rgba(30, 58, 95, 0.18);
    border-radius: 0.85rem;
    background: #f8fafc;
}

.supplier-kb__list {
    display: grid;
    gap: 0.75rem;
}

.supplier-kb__item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 0.85rem;
    background: #fff;
}

.supplier-kb__item-main {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    min-width: 0;
}

.supplier-kb__item-icon {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: #1e3a5f;
    flex-shrink: 0;
}

.supplier-kb__item-title {
    font-weight: 700;
    color: #1e3a5f;
}

.supplier-kb__item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.2rem;
    font-size: 0.84rem;
    color: #64748b;
}

.supplier-kb__item-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.45rem;
    flex-shrink: 0;
}

.supplier-company-geo {
    padding: 0.95rem 1rem;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.85rem;
    background: #f8fafc;
}

.supplier-company-geo__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

@media (max-width: 767.98px) {
    .supplier-kb__item {
        flex-direction: column;
    }

    .supplier-kb__item-side {
        width: 100%;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .supplier-company-geo__head .btn {
        width: 100%;
    }
}





/* =============================================================================
   Contracts management
   ============================================================================= */

.contracts-stat-card--purple .tools-stat-card__icon {
    background: rgba(124, 58, 237, 0.12);
    color: #7c3aed;
}

.contracts-filters {
    display: grid;
    gap: 0.85rem;
    overflow: visible;
}

.contracts-management__toolbar.admin-panel-card,
.contracts-management__toolbar .admin-panel-card__body,
.contracts-filters__grid,
.contracts-filters__field,
.contracts-filters__select {
    overflow: visible;
}

.contracts-filters__search {
    position: relative;
}

.contracts-filters__search-icon {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    pointer-events: none;
    font-size: 0.85rem;
}

.contracts-filters__search-input {
    padding-left: 2.35rem;
    min-height: 2.65rem;
    border-radius: 0.7rem;
}

.contracts-filters__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.contracts-filters__field {
    min-width: 0;
}

.contracts-filters__field .form-label,
.contracts-filters__label {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #94a3b8;
}

.contracts-filters__select .app-dropdown--form .app-dropdown__toggle {
    min-height: 2.5rem;
    border-radius: 0.65rem;
    font-size: 0.875rem;
}

.contracts-filters__select .app-dropdown--form .app-dropdown__menu,
.contracts-filters__select .app-dropdown--form .app-dropdown__menu--portal {
    min-width: 100%;
    max-height: min(16rem, calc(100dvh - 8rem));
    overflow-y: auto;
    z-index: 1300;
}

.contracts-filters__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

@media (max-width: 1199.98px) {
    .contracts-filters__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .contracts-filters__grid {
        grid-template-columns: 1fr;
    }

    .contracts-filters__actions .btn {
        flex: 1 1 auto;
    }
}

.contracts-management__table thead th {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #64748b;
    background: #f8fafc;
    border-bottom-color: rgba(30, 58, 95, 0.1);
    white-space: nowrap;
    padding: 0.85rem 1rem;
}

.contracts-management__table tbody td {
    padding: 0.9rem 1rem;
    vertical-align: middle;
}

.contracts-management__empty-row td {
    border-bottom: 0;
    padding: 0;
}

.contracts-management__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 2.5rem 1.25rem;
    text-align: center;
}

.contracts-management__empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    margin-bottom: 0.35rem;
    border-radius: 0.75rem;
    background: rgba(30, 58, 95, 0.06);
    color: #94a3b8;
    font-size: 1.15rem;
}

.contracts-management__empty .btn-brand {
    margin-top: 0.15rem;
}

.contracts-management__empty-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #334155;
}

.contracts-management__empty-help {
    margin: 0 0 0.75rem;
    font-size: 0.8125rem;
    color: #94a3b8;
    max-width: 28rem;
}

.contracts-management__tabs-bar {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.9rem;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    overflow: hidden;
}

.contracts-management__tabs-bar-main {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem 0;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
}

.contracts-management__tabs {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    gap: 0;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}

.contracts-management__tabs::-webkit-scrollbar {
    height: 4px;
}

.contracts-management__tabs::-webkit-scrollbar-thumb {
    background: rgba(30, 58, 95, 0.2);
    border-radius: 999px;
}

.contracts-management__tab {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    flex: 0 0 auto;
    padding: 0.7rem 0.85rem;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: #64748b;
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 600;
    white-space: nowrap;
    transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.contracts-management__tab i {
    font-size: 0.78rem;
    opacity: 0.75;
}

.contracts-management__tab:hover {
    color: var(--brand-primary);
    background: rgba(30, 58, 95, 0.04);
}

.contracts-management__tab.is-active {
    color: var(--brand-primary);
    border-bottom-color: var(--brand-accent);
    background: transparent;
}

.contracts-management__tab.is-active i {
    opacity: 1;
    color: var(--brand-accent);
}

.contracts-management__tab-label {
    line-height: 1.2;
}

.contracts-management__tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.07);
    color: #475569;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
}

.contracts-management__tab.is-active .contracts-management__tab-count,
.contracts-management__party-tab.is-active .contracts-management__tab-count {
    background: rgba(230, 126, 34, 0.16);
    color: #c2410c;
}

.contracts-management__view-toggle {
    display: inline-flex;
    align-self: center;
    flex-shrink: 0;
    margin: 0 0.25rem 0.35rem 0;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 0.55rem;
    overflow: hidden;
    background: #f8fafc;
}

.contracts-management__view-btn {
    width: 2.1rem;
    height: 2.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    text-decoration: none;
}

.contracts-management__view-btn.is-active,
.contracts-management__view-btn:hover {
    background: #fff;
    color: var(--brand-primary);
}

.contracts-management__party-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    padding: 0.65rem 0.85rem;
    background: #f8fafc;
}

.contracts-management__party-tabs-label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #94a3b8;
    margin-right: 0.15rem;
}

.contracts-management__party-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: #fff;
    color: #475569;
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 600;
}

.contracts-management__party-tab:hover {
    color: var(--brand-primary);
    border-color: rgba(30, 58, 95, 0.28);
}

.contracts-management__party-tab.is-active {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}

.contracts-management__party-tab.is-active .contracts-management__tab-count {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.contracts-management__party-tab i {
    font-size: 0.75rem;
}

.contracts-management__cards {
    display: grid;
    gap: 0.85rem;
}

.contracts-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.9rem;
    padding: 1rem 1.1rem;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.contracts-card__top {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.85rem;
}

.contracts-card__identity {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    min-width: 0;
}

.contracts-card__file-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(239, 68, 68, 0.1);
    color: #dc2626;
    flex-shrink: 0;
}

.contracts-card__title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.3;
}

.contracts-card__title a {
    color: var(--brand-primary);
    text-decoration: none;
}

.contracts-card__title a:hover {
    color: var(--brand-accent);
}

.contracts-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.2rem;
    color: #64748b;
    font-size: 0.8125rem;
}

.contracts-card__dot {
    width: 0.25rem;
    height: 0.25rem;
    border-radius: 50%;
    background: #94a3b8;
}

.contracts-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.contracts-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.contracts-badge--active {
    background: rgba(22, 163, 74, 0.12);
    color: #15803d;
}

.contracts-badge--expiring {
    background: rgba(220, 38, 38, 0.12);
    color: #b91c1c;
}

.contracts-badge--expired {
    background: rgba(100, 116, 139, 0.15);
    color: #475569;
}

.contracts-badge--archived {
    background: rgba(30, 58, 95, 0.1);
    color: #334155;
}

.contracts-badge--supplier {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}

.contracts-badge--subcontractor {
    background: rgba(124, 58, 237, 0.12);
    color: #6d28d9;
}

.contracts-badge--contractor {
    background: rgba(230, 126, 34, 0.14);
    color: #c2410c;
}

.contracts-badge--muted {
    background: #f1f5f9;
    color: #64748b;
}

.contracts-card__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    padding: 0.75rem 0;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
}

.contracts-card__label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
    font-weight: 700;
    margin-bottom: 0.15rem;
}

.contracts-card__value {
    font-size: 0.875rem;
    font-weight: 600;
    color: #1e293b;
}

.contracts-card__hint {
    font-weight: 500;
    color: #64748b;
    font-size: 0.8rem;
}

.contracts-card__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    justify-content: space-between;
    margin-top: 0.85rem;
}

.contracts-card__updated {
    font-size: 0.75rem;
    color: #94a3b8;
}

.contracts-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.contracts-ai-chat {
    display: flex;
    flex-direction: column;
    min-height: 18rem;
    border-radius: 1rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: #fff;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    overflow: hidden;
}

.contracts-ai-chat__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
    background: #f8fafc;
}

.contracts-ai-chat__avatar {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--brand-primary);
    color: #fff;
    flex-shrink: 0;
}

.contracts-ai-chat__header-text {
    min-width: 0;
    flex: 1 1 auto;
}

.contracts-ai-chat__title {
    font-size: 0.95rem;
    font-weight: 750;
    color: var(--brand-primary);
    line-height: 1.2;
}

.contracts-ai-chat__status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.15rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
}

.contracts-ai-chat__status-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15);
}

.contracts-ai-chat__open {
    flex-shrink: 0;
}

.contracts-ai-chat__thread {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
    background:
        linear-gradient(180deg, rgba(244, 246, 248, 0.9), #fff 48%),
        #fff;
    min-height: 10rem;
}

.contracts-ai-chat__bubble {
    max-width: min(92%, 28rem);
    padding: 0.75rem 0.9rem;
    border-radius: 1rem;
    font-size: 0.875rem;
    line-height: 1.45;
}

.contracts-ai-chat__bubble--bot {
    align-self: flex-start;
    border-bottom-left-radius: 0.35rem;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    color: #334155;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.contracts-ai-chat__suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-self: flex-end;
    max-width: min(100%, 34rem);
    justify-content: flex-end;
}

.contracts-ai-chat__suggestion {
    display: inline-flex;
    max-width: 100%;
    padding: 0.45rem 0.75rem;
    border-radius: 1rem 1rem 0.3rem 1rem;
    border: 1px solid rgba(230, 126, 34, 0.28);
    background: rgba(230, 126, 34, 0.08);
    color: var(--brand-primary);
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.contracts-ai-chat__suggestion:hover {
    background: rgba(230, 126, 34, 0.16);
    border-color: rgba(230, 126, 34, 0.5);
    color: var(--brand-primary);
}

.contracts-ai-chat__composer {
    padding: 0.75rem 0.85rem 0.9rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
    background: #fff;
}

.contracts-ai-chat__form {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.contracts-ai-chat__input {
    flex: 1 1 auto;
    min-height: 2.65rem;
    border-radius: 999px;
    padding-inline: 1rem;
    border-color: rgba(30, 58, 95, 0.14);
    background: #f8fafc;
}

.contracts-ai-chat__input:focus {
    background: #fff;
    border-color: rgba(230, 126, 34, 0.55);
    box-shadow: 0 0 0 0.2rem rgba(230, 126, 34, 0.12);
}

.contracts-ai-chat__send {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 999px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.contracts-ai-chat__hint {
    font-size: 0.8125rem;
    color: #64748b;
}

.contracts-indexed-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 1rem 1.1rem;
    border-radius: 0.9rem;
    border: 1px solid transparent;
}

.contracts-indexed-banner--ready {
    background: linear-gradient(135deg, rgba(34, 197, 94, 0.1), rgba(30, 58, 95, 0.04));
    border-color: rgba(34, 197, 94, 0.28);
}

.contracts-indexed-banner--pending {
    background: linear-gradient(135deg, rgba(230, 126, 34, 0.12), rgba(30, 58, 95, 0.04));
    border-color: rgba(230, 126, 34, 0.3);
}

.contracts-indexed-banner__icon {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.05rem;
}

.contracts-indexed-banner--ready .contracts-indexed-banner__icon {
    background: rgba(34, 197, 94, 0.16);
    color: #15803d;
}

.contracts-indexed-banner--pending .contracts-indexed-banner__icon {
    background: rgba(230, 126, 34, 0.16);
    color: #c2410c;
}

.contracts-indexed-banner__copy {
    flex: 1;
    min-width: 0;
}

.contracts-indexed-banner__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--brand-primary);
    margin-bottom: 0.2rem;
}

.contracts-indexed-banner__help {
    font-size: 0.9rem;
    color: #475569;
}

.contracts-indexed-banner__meta {
    margin-top: 0.45rem;
    font-size: 0.8125rem;
    color: #64748b;
}

.contracts-indexed-banner__action {
    flex-shrink: 0;
    align-self: center;
}

@media (max-width: 575.98px) {
    .contracts-indexed-banner {
        flex-direction: column;
    }

    .contracts-indexed-banner__action {
        align-self: stretch;
    }
}

.contracts-side-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 0.9rem;
    padding: 1rem;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.contracts-side-card__title {
    font-size: 0.9rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
    color: var(--brand-primary);
}

.contracts-side-card__lead {
    font-size: 0.8125rem;
    color: #64748b;
    margin-bottom: 0.75rem;
}

.contracts-side-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
    text-decoration: none;
    color: inherit;
}

.contracts-side-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.contracts-side-item__title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--brand-primary);
}

.contracts-side-item__meta {
    font-size: 0.72rem;
    color: #64748b;
    margin-top: 0.15rem;
}

.contracts-side-item__pill {
    flex-shrink: 0;
    display: inline-flex;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: rgba(220, 38, 38, 0.12);
    color: #b91c1c;
    font-size: 0.7rem;
    font-weight: 700;
}

.contracts-activity__item {
    display: flex;
    gap: 0.65rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.contracts-activity__item:last-child {
    border-bottom: 0;
}

.contracts-activity__dot {
    width: 0.5rem;
    height: 0.5rem;
    margin-top: 0.35rem;
    border-radius: 50%;
    background: var(--brand-accent);
    flex-shrink: 0;
}

.contracts-activity__text {
    font-size: 0.8125rem;
    color: #334155;
    line-height: 1.35;
}

.contracts-activity__time {
    font-size: 0.7rem;
    color: #94a3b8;
    margin-top: 0.15rem;
}

@media (max-width: 767.98px) {
    .contracts-card__grid {
        grid-template-columns: 1fr;
    }

    .contracts-management__tabs-bar-main {
        flex-direction: column;
        align-items: stretch;
        padding-top: 0.5rem;
    }

    .contracts-management__view-toggle {
        align-self: flex-end;
        margin: 0 0.35rem 0.5rem;
    }

    .contracts-management__tab {
        padding: 0.65rem 0.7rem;
    }

    .contracts-management__tab-label {
        max-width: 7.5rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .contracts-ai-chat__header {
        flex-wrap: wrap;
    }

    .contracts-ai-chat__open {
        width: 100%;
        text-align: center;
    }

    .contracts-ai-chat__suggestions {
        align-self: stretch;
        justify-content: flex-start;
    }
}

/* AI Image Analysis */
.sidebar-nav-new {
    display: inline-flex;
    align-items: center;
    margin-left: 0.4rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    background: var(--brand-accent);
    color: #fff;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ai-image-analysis-nav-pill {
    display: inline-flex;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.ai-image-analysis-hub {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.ai-image-analysis-hub__crumbs ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    padding: 0;
    list-style: none;
    color: #7c93b0;
    font-size: 0.84rem;
}

.ai-image-analysis-hub__crumbs li:not(:last-child)::after {
    content: "/";
    margin-left: 0.35rem;
    color: #b6c4d6;
}

.ai-image-analysis-hub__crumbs a {
    color: #5b7ea8;
    text-decoration: none;
}

.ai-image-analysis-hub__crumbs a:hover {
    color: var(--brand-secondary);
    text-decoration: underline;
}

.ai-image-analysis-hub__crumbs [aria-current="page"] {
    color: #7c93b0;
}

.ai-image-analysis-hub__hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    min-height: 10.5rem;
    padding: 1.5rem 1.6rem;
    border-radius: 18px;
    overflow: hidden;
    background:
        radial-gradient(circle at 86% 35%, rgba(140, 185, 230, 0.2), transparent 46%),
        linear-gradient(135deg, #eef5fb 0%, #f7fbfe 55%, #eaf2fa 100%);
    border: 1px solid rgba(120, 160, 200, 0.22);
}

.ai-image-analysis-hub__hero-main {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    min-width: 0;
    max-width: 44rem;
    position: relative;
    z-index: 1;
}

.ai-image-analysis-hub__hero-icon {
    position: relative;
    width: 3.4rem;
    height: 3.4rem;
    flex-shrink: 0;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(61, 122, 176, 0.14);
    color: #1e3a5f;
    font-size: 1.35rem;
    box-shadow: none;
}

.ai-image-analysis-hub__hero-spark {
    position: absolute;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: #7ec8ff;
    box-shadow: 0 0 0 2px rgba(126, 200, 255, 0.25);
}

.ai-image-analysis-hub__hero-spark--a {
    top: 0.2rem;
    right: 0.15rem;
}

.ai-image-analysis-hub__hero-spark--b {
    bottom: 0.25rem;
    left: 0.15rem;
    width: 0.32rem;
    height: 0.32rem;
    background: #f0b429;
}

.ai-image-analysis-hub__title {
    margin: 0 0 0.35rem;
    font-size: clamp(1.45rem, 2vw, 1.85rem);
    font-weight: 800;
    color: var(--brand-primary);
    letter-spacing: -0.02em;
}

.ai-image-analysis-hub__subtitle {
    max-width: 36rem;
    color: #64748b;
    font-size: 0.98rem;
    line-height: 1.45;
}

.ai-image-analysis-hub__hero-art {
    display: none;
    position: absolute;
    right: -0.5rem;
    top: 50%;
    transform: translateY(-50%);
    width: min(420px, 38%);
    height: auto;
    max-height: 118%;
    object-fit: contain;
    object-position: right center;
    opacity: 0.95;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

@media (min-width: 992px) {
    .ai-image-analysis-hub__hero-art {
        display: block;
    }

    .ai-image-analysis-hub__hero {
        padding-right: min(28%, 11rem);
    }
}

.ai-image-analysis-hub__upload {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.9fr);
    gap: 0;
    align-items: stretch;
    padding: 0;
    border-radius: 18px;
    background: #fff;
    border: 1.5px dashed rgba(74, 124, 180, 0.42);
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.05);
    overflow: hidden;
}

.ai-image-analysis-hub__upload-main {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.1rem;
    padding: 1.45rem 1.5rem;
}

.ai-image-analysis-hub__upload-top {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
}

.ai-image-analysis-hub__upload-icon {
    width: 3.75rem;
    height: 3.75rem;
    flex-shrink: 0;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(61, 122, 176, 0.12);
    color: #2d5a87;
    font-size: 1.45rem;
}

.ai-image-analysis-hub__upload-copy {
    min-width: 0;
}

.ai-image-analysis-hub__upload-title {
    margin: 0 0 0.25rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.ai-image-analysis-hub__upload-help {
    color: #64748b;
    font-size: 0.9rem;
}

.ai-image-analysis-hub__upload-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    width: 100%;
    padding-left: 0;
}

.ai-image-analysis-hub__upload-form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.ai-image-analysis-hub__upload-actions .btn,
.ai-image-analysis-hub__upload-form .btn {
    min-height: 2.55rem;
    padding-inline: 1.05rem;
    border-radius: 10px;
    font-weight: 700;
}

.ai-image-analysis-hub__file-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ai-image-analysis-hub__detect {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.85rem;
    padding: 1.45rem 1.5rem;
    border-left: 1px solid rgba(30, 58, 95, 0.1);
    background: linear-gradient(180deg, #fbfcfe 0%, #f7fafc 100%);
}

.ai-image-analysis-hub__detect-label {
    margin: 0;
    color: #64748b;
    font-size: 0.9rem;
    font-weight: 600;
}

.ai-image-analysis-hub__detect-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ai-image-analysis-hub__detect-item {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.4rem;
    padding: 0.45rem 0.7rem;
    border-radius: 10px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    color: var(--brand-primary);
    font-size: 0.84rem;
    font-weight: 650;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.03);
}

.ai-image-analysis-hub__detect-icon {
    width: 1.55rem;
    height: 1.55rem;
    flex-shrink: 0;
    border-radius: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
}

.ai-image-analysis-hub__detect-icon--danger {
    background: rgba(220, 53, 69, 0.12);
    color: #c0392b;
}

.ai-image-analysis-hub__detect-icon--purple {
    background: rgba(111, 66, 193, 0.12);
    color: #6f42c1;
}

.ai-image-analysis-hub__detect-icon--blue {
    background: rgba(45, 90, 135, 0.12);
    color: #2d5a87;
}

.ai-image-analysis-hub__detect-icon--orange {
    background: rgba(230, 126, 34, 0.14);
    color: #d35400;
}

.ai-image-analysis-hub__detect-icon--green {
    background: rgba(39, 174, 96, 0.12);
    color: #1e8449;
}

.ai-image-analysis-hub__detect-icon--teal {
    background: rgba(23, 162, 184, 0.12);
    color: #117a8b;
}

.ai-image-analysis-hub__projects-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.ai-image-analysis-hub__projects-title {
    margin: 0 0 0.3rem;
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.ai-image-analysis-hub__projects-help {
    max-width: 40rem;
    color: #64748b;
    font-size: 0.92rem;
}

.ai-image-analysis-hub__search {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.ai-image-analysis-hub__search-field {
    position: relative;
    min-width: min(260px, 70vw);
}

.ai-image-analysis-hub__search-field i {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 0.85rem;
    pointer-events: none;
}

.ai-image-analysis-hub__search-field .form-control {
    padding-left: 2.25rem;
    border-radius: 10px;
    border-color: rgba(30, 58, 95, 0.14);
    min-height: 2.55rem;
}

.ai-image-analysis-hub__filter-btn {
    width: 2.55rem;
    height: 2.55rem;
    border-radius: 10px;
    border: 1px solid rgba(30, 58, 95, 0.14);
    background: #fff;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ai-image-analysis-hub__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1rem;
}

.ai-image-analysis-hub__no-results {
    margin-top: 0.75rem;
    color: #64748b;
    font-size: 0.92rem;
}

.ai-image-analysis-empty {
    text-align: center;
    padding: 3rem 1.5rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.ai-image-analysis-empty__icon {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 1rem;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-primary);
    font-size: 1.4rem;
}

.ai-image-analysis-project-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 16px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.ai-image-analysis-project-card:hover,
.ai-image-analysis-project-card.is-selected {
    transform: translateY(-2px);
    border-color: rgba(45, 90, 135, 0.4);
    box-shadow: 0 14px 28px rgba(30, 58, 95, 0.1);
}

.ai-image-analysis-project-card.is-selected {
    border-width: 1.5px;
    border-color: #3d7ab0;
}

.ai-image-analysis-project-card__media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #dbe7f3;
}

.ai-image-analysis-project-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.ai-image-analysis-project-card:hover .ai-image-analysis-project-card__media img {
    transform: scale(1.04);
}

.ai-image-analysis-project-card__badge {
    position: absolute;
    top: 0.7rem;
    right: 0.7rem;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    backdrop-filter: blur(6px);
}

.ai-image-analysis-project-card__badge.is-active {
    background: rgba(45, 90, 135, 0.92);
    color: #fff;
}

.ai-image-analysis-project-card__badge.is-ended {
    background: rgba(100, 116, 139, 0.9);
    color: #fff;
}

.ai-image-analysis-project-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.95rem 1rem 1.05rem;
    flex: 1;
}

.ai-image-analysis-project-card__top {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    align-items: flex-start;
}

.ai-image-analysis-project-card__location {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.35rem;
    color: #64748b;
    font-size: 0.78rem;
    line-height: 1.35;
    min-width: 0;
}

.ai-image-analysis-project-card__location i {
    margin-top: 0.15rem;
    color: #94a3b8;
}

.ai-image-analysis-project-card__menu {
    width: 1.75rem;
    height: 1.75rem;
    flex-shrink: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #94a3b8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ai-image-analysis-project-card__menu:hover,
.ai-image-analysis-project-card__menu:focus-visible {
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
}

.ai-image-analysis-project-card__name {
    font-size: 1.02rem;
    font-weight: 750;
    color: var(--brand-primary);
    text-decoration: none;
    line-height: 1.3;
}

.ai-image-analysis-project-card__name:hover {
    color: var(--brand-secondary);
}

.ai-image-analysis-project-card__meta {
    color: #64748b;
    font-size: 0.84rem;
}

.ai-image-analysis-project-card__count {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.35rem;
    color: var(--brand-secondary);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
}

.ai-image-analysis-project-card__count:hover {
    color: var(--brand-primary);
}

.ai-image-analysis-project-card__cta {
    margin-top: auto;
    padding-top: 0.55rem;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--brand-secondary);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
}

.ai-image-analysis-project-card__cta:hover {
    color: var(--brand-primary);
}

.ai-image-analysis-hub__security {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1rem;
    padding: 1rem 1.2rem;
    border-radius: 14px;
    background: linear-gradient(135deg, #eef5fb 0%, #f5f9fc 100%);
    border: 1px solid rgba(120, 160, 200, 0.28);
}

.ai-image-analysis-hub__security-icon {
    width: 2.4rem;
    height: 2.4rem;
    flex-shrink: 0;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(45, 90, 135, 0.12);
    color: #2d5a87;
}

.ai-image-analysis-hub__security-text {
    flex: 1 1 16rem;
    min-width: 0;
    color: #475569;
    font-size: 0.9rem;
    line-height: 1.45;
}

.ai-image-analysis-hub__security-text strong {
    color: var(--brand-primary);
    font-weight: 750;
}

.ai-image-analysis-hub__security-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-left: auto;
    color: var(--brand-secondary);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    white-space: nowrap;
}

.ai-image-analysis-hub__security-link:hover {
    color: var(--brand-primary);
}

@media (max-width: 991.98px) {
    .ai-image-analysis-hub__upload {
        grid-template-columns: 1fr;
    }

    .ai-image-analysis-hub__detect {
        border-left: 0;
        border-top: 1px solid rgba(30, 58, 95, 0.1);
    }
}

@media (max-width: 575.98px) {
    .ai-image-analysis-hub__hero {
        padding: 1.1rem 1.05rem;
    }

    .ai-image-analysis-hub__upload-main,
    .ai-image-analysis-hub__detect {
        padding: 1.15rem 1.05rem;
    }

    .ai-image-analysis-hub__detect-grid {
        grid-template-columns: 1fr;
    }

    .ai-image-analysis-hub__security-link {
        margin-left: 0;
    }
}

.ai-image-analysis-page__header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.ai-image-analysis-page__back {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--brand-secondary);
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    margin-bottom: 0.55rem;
}

.ai-image-analysis-page__title {
    font-size: clamp(1.45rem, 2vw, 1.85rem);
    font-weight: 800;
    color: var(--brand-primary);
    margin-bottom: 0.25rem;
}

.ai-image-analysis-page__subtitle {
    color: #64748b;
    max-width: 36rem;
}

.ai-image-analysis-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: flex-start;
}

.ai-image-analysis-page__actions .dropdown-menu,
.ai-image-analysis-actions__dropdown .app-dropdown__menu,
.ai-image-analysis-page__create-task .app-dropdown__menu {
    min-width: 16rem;
}

.ai-image-analysis-task-option {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.ai-image-analysis-task-option__risk {
    flex-shrink: 0;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 0.15rem 0.4rem;
    border-radius: 999px;
    line-height: 1.2;
}

.ai-image-analysis-task-option__risk--critical {
    background: rgba(220, 53, 69, 0.12);
    color: #b02a37;
}

.ai-image-analysis-task-option__risk--medium {
    background: rgba(230, 126, 34, 0.14);
    color: #c06512;
}

.ai-image-analysis-page__create-task button.app-dropdown__item,
.ai-image-analysis-actions__dropdown button.app-dropdown__item {
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
    appearance: none;
}

.ai-image-analysis-page__create-task .app-dropdown__item,
.ai-image-analysis-actions__dropdown .app-dropdown__item {
    justify-content: flex-start;
}

.ai-image-analysis-page__create-task .app-dropdown__item-main,
.ai-image-analysis-actions__dropdown .app-dropdown__item-main {
    flex: 1 1 auto;
    min-width: 0;
}

.ai-image-analysis-page__create-task .app-dropdown__item.disabled,
.ai-image-analysis-actions__dropdown .app-dropdown__item.disabled {
    opacity: 0.65;
    pointer-events: none;
    color: #64748b;
}

.ai-image-analysis-upload {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.05);
    padding: 1rem 1.1rem;
}

.ai-image-analysis-upload__drop {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.9rem 1.1rem;
}

.ai-image-analysis-upload__icon {
    width: 2.75rem;
    height: 2.75rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid rgba(30, 58, 95, 0.1);
    color: var(--brand-secondary);
    font-size: 1.1rem;
}

.ai-image-analysis-upload__copy {
    flex: 1 1 14rem;
    min-width: 0;
}

.ai-image-analysis-upload__copy strong {
    display: block;
    color: var(--brand-primary);
    font-size: 0.95rem;
    margin-bottom: 0.2rem;
}

.ai-image-analysis-upload__copy p {
    color: #64748b;
    font-size: 0.84rem;
    line-height: 1.4;
}

.ai-image-analysis-upload__current {
    display: inline-block;
    margin-top: 0.35rem;
    color: var(--brand-secondary);
    font-size: 0.78rem;
    font-weight: 700;
}

.ai-image-analysis-upload__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-left: auto;
}

.ai-image-analysis-upload__input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.ai-image-analysis-upload__hint {
    margin-top: 0.55rem;
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 600;
}

.ai-image-analysis-actions__grid > .dropdown {
    min-width: 0;
}

.ai-image-analysis-actions__grid > .dropdown > .ai-image-analysis-action,
.ai-image-analysis-actions__reanalyze > .ai-image-analysis-action {
    width: 100%;
}

.ai-image-analysis-actions__reanalyze {
    min-width: 0;
    margin: 0;
}

body.ai-image-analysis-loader-open {
    overflow: hidden;
}

.ai-image-analysis-loader {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
}

.ai-image-analysis-loader[hidden] {
    display: none !important;
}

.ai-image-analysis-loader__panel {
    width: min(100%, 22rem);
    padding: 1.5rem 1.35rem;
    border-radius: 0.85rem;
    background: #fff;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.28);
    text-align: center;
}

.ai-image-analysis-loader__spinner {
    width: 2.35rem;
    height: 2.35rem;
    margin: 0 auto 1rem;
    border: 3px solid rgba(45, 90, 135, 0.18);
    border-top-color: var(--brand-secondary, #2d5a87);
    border-radius: 50%;
    animation: ai-image-analysis-spin 0.75s linear infinite;
}

.ai-image-analysis-loader__title {
    display: block;
    color: #0f172a;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.35;
}

.ai-image-analysis-loader__help {
    margin-top: 0.45rem;
    color: #64748b;
    font-size: 0.875rem;
    line-height: 1.45;
}

@keyframes ai-image-analysis-spin {
    to {
        transform: rotate(360deg);
    }
}

.ai-image-analysis-actions__dropdown > .ai-image-analysis-action.dropdown-toggle::after {
    display: none;
}

.ai-image-analysis-actions__dropdown > .ai-image-analysis-action.show .ai-image-analysis-action__chevron {
    transform: rotate(90deg);
}

.ai-image-analysis-demo-badge {
    display: inline-flex;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
    font-size: 0.75rem;
    font-weight: 800;
}

.ai-image-analysis-demo-badge--live {
    background: rgba(39, 174, 96, 0.14);
    color: #1e7a45;
}

.ai-image-analysis-empty-state {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.05);
    padding: 1.75rem 1.25rem;
    text-align: center;
}

.ai-image-analysis-empty-state__icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
    font-size: 1.25rem;
}

.ai-image-analysis-empty-state__title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin-bottom: 0.35rem;
}

.ai-image-analysis-empty-state__help {
    color: #64748b;
    font-size: 0.9rem;
    max-width: 36rem;
    margin: 0 auto 1rem;
}

.ai-image-analysis-empty-state__cats {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.45rem;
}

.ai-image-analysis-empty-state__cats li {
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 700;
}

.ai-image-analysis-note {
    color: #64748b;
    font-size: 0.92rem;
    margin-bottom: 1rem;
}

.ai-image-analysis-tabs-panel {
    margin-bottom: 0;
}

.ai-image-analysis-tabs-panel .project-tabs__content {
    padding: 1.15rem 1.2rem 1.25rem;
}

.ai-image-analysis-tabs-panel .ai-image-analysis-placeholder {
    padding: 1.75rem 0.5rem;
    border: 0;
    background: transparent;
    border-radius: 0;
}

.ai-image-analysis-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.85fr);
    gap: 1.15rem;
    align-items: start;
}

.ai-image-analysis-viewer {
    position: relative;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(30, 58, 95, 0.06);
    margin-bottom: 1rem;
}

.ai-image-analysis-viewer__fullscreen {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.55);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.4rem 0.7rem;
    cursor: pointer;
    transition: background 0.15s ease;
}

.ai-image-analysis-viewer__fullscreen:hover,
.ai-image-analysis-viewer__fullscreen:focus-visible {
    background: rgba(15, 23, 42, 0.78);
    color: #fff;
}

.ai-image-analysis-viewer__frame {
    position: relative;
    min-height: 280px;
    background: #0f172a;
}

.ai-image-analysis-viewer__image {
    display: block;
    width: 100%;
    height: auto;
    max-height: 420px;
    object-fit: cover;
}

.ai-image-analysis-viewer--fullscreen {
    position: fixed;
    inset: 0;
    z-index: 1250;
    width: 100%;
    height: 100%;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0f172a;
    border: 0;
    box-shadow: none;
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}

.ai-image-analysis-viewer--fullscreen .ai-image-analysis-viewer__fullscreen {
    top: calc(0.85rem + env(safe-area-inset-top));
    right: calc(0.85rem + env(safe-area-inset-right));
}

.ai-image-analysis-viewer--fullscreen .ai-image-analysis-viewer__frame {
    position: relative;
    width: fit-content;
    max-width: 100%;
    max-height: 100%;
    min-height: 0;
    margin: 0;
}

.ai-image-analysis-viewer--fullscreen .ai-image-analysis-viewer__image {
    width: auto;
    height: auto;
    max-width: 100vw;
    max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    object-fit: contain;
}

body.ai-image-analysis--fullscreen {
    overflow: hidden;
}

.ai-image-analysis-box {
    position: absolute;
    border: 2px solid;
    border-radius: 8px;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35);
}

.ai-image-analysis-box--critical { border-color: #dc3545; }
.ai-image-analysis-box--warning { border-color: #e67e22; }
.ai-image-analysis-box--good { border-color: #27ae60; }

.ai-image-analysis-box__label {
    position: absolute;
    left: 0;
    top: 0;
    transform: translateY(-100%);
    padding: 0.15rem 0.4rem;
    border-radius: 6px 6px 0 0;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 800;
    white-space: nowrap;
}

.ai-image-analysis-box--critical .ai-image-analysis-box__label { background: #dc3545; }
.ai-image-analysis-box--warning .ai-image-analysis-box__label { background: #e67e22; }
.ai-image-analysis-box--good .ai-image-analysis-box__label { background: #27ae60; }

.ai-image-analysis-issues,
.ai-image-analysis-actions,
.ai-image-analysis-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.05);
}

.ai-image-analysis-issues {
    margin-bottom: 1rem;
    overflow: hidden;
}

.ai-image-analysis-issues__head {
    padding: 0.95rem 1.1rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.08);
}

.ai-image-analysis-issues__empty {
    padding: 1.15rem 1.1rem 1.25rem;
    color: #64748b;
}

.ai-image-analysis-issues__empty strong {
    display: block;
    color: var(--brand-primary);
    margin-bottom: 0.35rem;
}

.ai-image-analysis-issue {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.9rem 1.1rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
}

.ai-image-analysis-issue__icon {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ai-image-analysis-issue__icon--critical { background: rgba(220, 53, 69, 0.12); color: #dc3545; }
.ai-image-analysis-issue__icon--medium { background: rgba(230, 126, 34, 0.14); color: #e67e22; }
.ai-image-analysis-issue__icon--good { background: rgba(39, 174, 96, 0.12); color: #27ae60; }

.ai-image-analysis-issue__copy strong {
    display: block;
    color: var(--brand-primary);
    margin-bottom: 0.15rem;
}

.ai-image-analysis-issue__copy p {
    color: #64748b;
    font-size: 0.84rem;
}

.ai-image-analysis-issue__risk {
    font-size: 0.75rem;
    font-weight: 800;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
}

.ai-image-analysis-issue__risk--critical { background: rgba(220, 53, 69, 0.12); color: #b02a37; }
.ai-image-analysis-issue__risk--medium { background: rgba(230, 126, 34, 0.14); color: #c0392b; }
.ai-image-analysis-issue__risk--good { background: rgba(39, 174, 96, 0.12); color: #1e7e34; }

.ai-image-analysis-issue__confidence {
    text-align: right;
    font-weight: 800;
    color: var(--brand-primary);
    font-size: 0.92rem;
    line-height: 1.2;
}

.ai-image-analysis-issue__confidence small {
    display: block;
    font-weight: 600;
    color: #94a3b8;
    font-size: 0.68rem;
}

.ai-image-analysis-issue__chevron { color: #94a3b8; }

.ai-image-analysis-issues__more {
    width: 100%;
    border: 0;
    background: #f8fafc;
    padding: 0.85rem;
    color: var(--brand-secondary);
    font-weight: 700;
}

.ai-image-analysis-actions {
    padding: 1.1rem 1.15rem 1.2rem;
}

.ai-image-analysis-actions .ai-image-analysis-card__title {
    margin-bottom: 0.9rem;
}

.ai-image-analysis-actions__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
    gap: 0.65rem;
}

.ai-image-analysis-action {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    text-align: left;
    padding: 0.85rem 0.9rem;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    color: var(--brand-primary);
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.ai-image-analysis-action:disabled {
    opacity: 0.62;
    cursor: not-allowed;
}

.ai-image-analysis-action:not(:disabled):hover {
    color: var(--brand-primary);
    border-color: rgba(30, 58, 95, 0.18);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.08);
    transform: translateY(-1px);
}

.ai-image-analysis-action__icon {
    width: 2.4rem;
    height: 2.4rem;
    flex-shrink: 0;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid rgba(30, 58, 95, 0.1);
    color: var(--brand-secondary);
    font-size: 0.95rem;
}

.ai-image-analysis-action__label {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.3;
}

.ai-image-analysis-action__chevron {
    flex-shrink: 0;
    font-size: 0.72rem;
    color: #94a3b8;
    transition: transform 0.15s ease, color 0.15s ease;
}

.ai-image-analysis-action:not(:disabled):hover .ai-image-analysis-action__chevron {
    color: var(--brand-accent);
}

.ai-image-analysis-side {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.ai-image-analysis-card {
    padding: 1.1rem 1.15rem;
}

.ai-image-analysis-card__title {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.92rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin-bottom: 0.85rem;
}

.ai-image-analysis-card__title i {
    font-size: 0.85rem;
    color: var(--brand-accent);
    opacity: 0.95;
}

.ai-image-analysis-risk-badge {
    display: inline-flex;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(220, 53, 69, 0.12);
    color: #b02a37;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin-bottom: 0.85rem;
}

.ai-image-analysis-risk-badge--medium {
    background: rgba(230, 126, 34, 0.14);
    color: #c06512;
}

.ai-image-analysis-risk-badge--good {
    background: rgba(39, 174, 96, 0.12);
    color: #1e7e34;
}

.ai-image-analysis-risk-badge.is-pending,
.ai-image-analysis-risk-badge--medium.is-pending {
    background: rgba(30, 58, 95, 0.08);
    color: #64748b;
}

.ai-image-analysis-score.is-pending .ai-image-analysis-score__value strong {
    font-size: 0.95rem;
    color: #64748b;
}

.ai-image-analysis-score {
    --score: 62;
    position: relative;
    width: 9rem;
    height: 5rem;
    margin: 0 auto 1rem;
}

.ai-image-analysis-score__ring {
    width: 9rem;
    height: 4.5rem;
    border-radius: 9rem 9rem 0 0;
    background:
        radial-gradient(circle at 50% 100%, #fff 58%, transparent 59%),
        conic-gradient(from 180deg at 50% 100%, #dc3545 0deg, #e67e22 calc(var(--score) * 1.8deg), #e2e8f0 calc(var(--score) * 1.8deg), #e2e8f0 180deg);
}

.ai-image-analysis-score__value {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0.1rem;
    text-align: center;
}

.ai-image-analysis-score__value strong {
    display: block;
    font-size: 1.35rem;
    color: var(--brand-primary);
}

.ai-image-analysis-score__value span {
    color: #64748b;
    font-size: 0.75rem;
    font-weight: 700;
}

.ai-image-analysis-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}

.ai-image-analysis-stats__item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.65rem 0.7rem;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.ai-image-analysis-stats__icon {
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    font-size: 0.78rem;
}

.ai-image-analysis-stats__copy {
    min-width: 0;
    display: grid;
    gap: 0.05rem;
}

.ai-image-analysis-stats__copy strong {
    color: var(--brand-primary);
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.15;
}

.ai-image-analysis-stats__copy span {
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
}

.ai-image-analysis-stats__item--issues .ai-image-analysis-stats__icon {
    color: var(--brand-secondary);
    background: rgba(45, 90, 135, 0.1);
    border-color: rgba(45, 90, 135, 0.16);
}

.ai-image-analysis-stats__item--critical {
    background: linear-gradient(180deg, #fff5f5 0%, #ffe8ea 100%);
    border-color: rgba(220, 53, 69, 0.14);
}

.ai-image-analysis-stats__item--critical .ai-image-analysis-stats__icon {
    color: #dc3545;
    background: rgba(220, 53, 69, 0.12);
    border-color: rgba(220, 53, 69, 0.18);
}

.ai-image-analysis-stats__item--critical .ai-image-analysis-stats__copy strong {
    color: #b02a37;
}

.ai-image-analysis-stats__item--warnings {
    background: linear-gradient(180deg, #fffaf3 0%, #fff1e0 100%);
    border-color: rgba(230, 126, 34, 0.16);
}

.ai-image-analysis-stats__item--warnings .ai-image-analysis-stats__icon {
    color: #e67e22;
    background: rgba(230, 126, 34, 0.14);
    border-color: rgba(230, 126, 34, 0.2);
}

.ai-image-analysis-stats__item--warnings .ai-image-analysis-stats__copy strong {
    color: #c06512;
}

.ai-image-analysis-stats__item--suggestions {
    background: linear-gradient(180deg, #f3faf6 0%, #e8f6ee 100%);
    border-color: rgba(39, 174, 96, 0.14);
}

.ai-image-analysis-stats__item--suggestions .ai-image-analysis-stats__icon {
    color: #27ae60;
    background: rgba(39, 174, 96, 0.12);
    border-color: rgba(39, 174, 96, 0.18);
}

.ai-image-analysis-stats__item--suggestions .ai-image-analysis-stats__copy strong {
    color: #1e7e34;
}

.ai-image-analysis-info-list {
    display: grid;
    gap: 0.45rem;
    margin: 0 0 0.85rem;
}

.ai-image-analysis-info-list__item {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.55rem 0.65rem;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.ai-image-analysis-info-list__icon {
    width: 1.85rem;
    height: 1.85rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    color: var(--brand-secondary);
    font-size: 0.72rem;
}

.ai-image-analysis-info-list__copy {
    min-width: 0;
    display: grid;
    gap: 0.1rem;
}

.ai-image-analysis-info-list__label {
    color: #94a3b8;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.ai-image-analysis-info-list__copy strong {
    color: var(--brand-primary);
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.3;
    word-break: break-word;
}

.ai-image-analysis-info-list__file {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ai-image-analysis-info-confidence {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    background: rgba(39, 174, 96, 0.08);
    border: 1px solid rgba(39, 174, 96, 0.18);
}

.ai-image-analysis-info-confidence__label {
    color: #1e7e34;
    font-size: 0.78rem;
    font-weight: 700;
}

.ai-image-analysis-info-confidence__value {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #1e7e34;
    font-size: 0.84rem;
    font-weight: 800;
}

.ai-image-analysis-info-confidence__value em {
    font-style: normal;
    padding: 0.18rem 0.45rem;
    border-radius: 999px;
    background: rgba(39, 174, 96, 0.16);
    font-size: 0.78rem;
}

.ai-image-analysis-recs {
    display: grid;
    gap: 0.45rem;
    margin: 0 0 0.85rem;
    counter-reset: none;
}

.ai-image-analysis-recs__item {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.65rem 0.7rem;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.ai-image-analysis-recs__step {
    width: 1.85rem;
    height: 1.85rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.14);
    color: #c06512;
    font-size: 0.75rem;
    font-weight: 800;
    line-height: 1;
}

.ai-image-analysis-recs__text {
    color: #475569;
    font-size: 0.86rem;
    line-height: 1.45;
    padding-top: 0.2rem;
}

.ai-image-analysis-recs__more {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--brand-secondary);
    font-size: 0.82rem;
    font-weight: 700;
}

.ai-image-analysis-recs__more:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.ai-image-analysis-recs__more i {
    font-size: 0.72rem;
}

.ai-image-analysis-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.ai-image-analysis-tags span {
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    border: 1px solid rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 700;
    box-shadow: 0 1px 2px rgba(30, 58, 95, 0.04);
}

.ai-image-analysis-standards {
    display: grid;
    gap: 0.45rem;
    margin: 0;
}

.ai-image-analysis-standards__item {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.65rem 0.7rem;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.ai-image-analysis-standards__icon {
    width: 1.85rem;
    height: 1.85rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    color: var(--brand-secondary);
    font-size: 0.72rem;
}

.ai-image-analysis-standards__copy {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
}

.ai-image-analysis-standards__copy strong {
    color: var(--brand-primary);
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1.3;
}

.ai-image-analysis-standards__copy small {
    color: #64748b;
    font-size: 0.78rem;
    line-height: 1.35;
}

.ai-image-analysis-placeholder {
    padding: 2rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.ai-image-analysis-tab-intro {
    margin-bottom: 1rem;
}

.ai-image-analysis-tab-intro__help {
    color: #64748b;
    font-size: 0.88rem;
    line-height: 1.45;
}

.ai-image-analysis-details-grid {
    display: grid;
    gap: 0.75rem;
}

.ai-image-analysis-detail-card {
    padding: 1rem 1.05rem;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.ai-image-analysis-detail-card--critical {
    border-color: rgba(220, 53, 69, 0.18);
}

.ai-image-analysis-detail-card--medium {
    border-color: rgba(230, 126, 34, 0.18);
}

.ai-image-analysis-detail-card--good {
    border-color: rgba(39, 174, 96, 0.18);
}

.ai-image-analysis-detail-card__head {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.ai-image-analysis-detail-card__icon {
    width: 2.1rem;
    height: 2.1rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.08);
    color: var(--brand-secondary);
}

.ai-image-analysis-detail-card--critical .ai-image-analysis-detail-card__icon {
    background: rgba(220, 53, 69, 0.12);
    color: #dc3545;
}

.ai-image-analysis-detail-card--medium .ai-image-analysis-detail-card__icon {
    background: rgba(230, 126, 34, 0.14);
    color: #e67e22;
}

.ai-image-analysis-detail-card--good .ai-image-analysis-detail-card__icon {
    background: rgba(39, 174, 96, 0.12);
    color: #27ae60;
}

.ai-image-analysis-detail-card__titles {
    flex: 1 1 auto;
    min-width: 0;
}

.ai-image-analysis-detail-card__titles h3 {
    margin: 0 0 0.2rem;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.ai-image-analysis-detail-card__titles p {
    color: #64748b;
    font-size: 0.84rem;
    line-height: 1.4;
}

.ai-image-analysis-detail-card__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 0.55rem 0.75rem;
    margin: 0;
}

.ai-image-analysis-detail-card__meta div {
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.06);
}

.ai-image-analysis-detail-card__meta dt {
    margin: 0 0 0.15rem;
    color: #94a3b8;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.ai-image-analysis-detail-card__meta dd {
    margin: 0;
    color: var(--brand-primary);
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.35;
}

.ai-image-analysis-detail-card__action {
    margin-top: 0.85rem;
}

.ai-image-analysis-activity {
    display: grid;
    gap: 0.65rem;
    margin: 0;
    position: relative;
}

.ai-image-analysis-activity__item {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.85rem 0.95rem;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.08);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.ai-image-analysis-activity__icon {
    width: 2.2rem;
    height: 2.2rem;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-secondary);
    font-size: 0.85rem;
}

.ai-image-analysis-activity__item--critical .ai-image-analysis-activity__icon {
    background: rgba(220, 53, 69, 0.12);
    color: #dc3545;
}

.ai-image-analysis-activity__item--upload .ai-image-analysis-activity__icon,
.ai-image-analysis-activity__item--analyze .ai-image-analysis-activity__icon {
    background: rgba(45, 90, 135, 0.1);
    color: var(--brand-secondary);
}

.ai-image-analysis-activity__item--recs .ai-image-analysis-activity__icon {
    background: rgba(230, 126, 34, 0.14);
    color: #c06512;
}

.ai-image-analysis-activity__item--export .ai-image-analysis-activity__icon {
    background: rgba(39, 174, 96, 0.12);
    color: #27ae60;
}

.ai-image-analysis-activity__copy {
    min-width: 0;
    flex: 1 1 auto;
}

.ai-image-analysis-activity__top {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.2rem;
}

.ai-image-analysis-activity__top strong {
    color: var(--brand-primary);
    font-size: 0.9rem;
}

.ai-image-analysis-activity__top time {
    color: #94a3b8;
    font-size: 0.75rem;
    font-weight: 600;
}

.ai-image-analysis-activity__copy p {
    color: #64748b;
    font-size: 0.84rem;
    line-height: 1.4;
}

.ai-image-analysis-history {
    display: grid;
    gap: 0.7rem;
}

.ai-image-analysis-history__item {
    display: block;
    padding: 0.95rem 1.05rem;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

a.ai-image-analysis-history__item:hover {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.06);
    color: inherit;
}

.ai-image-analysis-history__item.is-current {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.06);
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.ai-image-analysis-history__main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    margin-bottom: 0.75rem;
}

.ai-image-analysis-history__titles h3 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.ai-image-analysis-history__titles p {
    color: #64748b;
    font-size: 0.82rem;
}

.ai-image-analysis-history__titles p i {
    margin-right: 0.3rem;
    opacity: 0.75;
}

.ai-image-analysis-history__badge {
    display: inline-flex;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.ai-image-analysis-history__score {
    text-align: right;
    flex-shrink: 0;
}

.ai-image-analysis-history__score strong {
    display: block;
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.1;
}

.ai-image-analysis-history__score span {
    color: #94a3b8;
    font-size: 0.7rem;
    font-weight: 700;
}

.ai-image-analysis-history__score--high strong { color: #b02a37; }
.ai-image-analysis-history__score--medium strong { color: #c06512; }
.ai-image-analysis-history__score--good strong { color: #1e7e34; }

.ai-image-analysis-history__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.85rem;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 600;
}

.ai-image-analysis-history__meta i {
    margin-right: 0.25rem;
    opacity: 0.8;
}

.ai-image-analysis-history__risk {
    margin-left: auto;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.ai-image-analysis-history__risk--high {
    background: rgba(220, 53, 69, 0.12);
    color: #b02a37;
}

.ai-image-analysis-history__risk--medium {
    background: rgba(230, 126, 34, 0.14);
    color: #c06512;
}

.ai-image-analysis-history__risk--good {
    background: rgba(39, 174, 96, 0.12);
    color: #1e7e34;
}

.ai-image-analysis-list-summary {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-bottom: 1rem;
    color: #64748b;
    font-size: 0.9rem;
    font-weight: 600;
}

.ai-image-analysis-list {
    display: grid;
    gap: 1rem;
}

.ai-image-analysis-list__card {
    display: grid;
    grid-template-columns: minmax(140px, 220px) minmax(0, 1fr);
    gap: 1rem;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.05);
    overflow: hidden;
}

.ai-image-analysis-list__media {
    position: relative;
    display: block;
    min-height: 160px;
    background: #0f172a;
}

.ai-image-analysis-list__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ai-image-analysis-list__media-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 160px;
    color: rgba(255, 255, 255, 0.55);
    font-size: 1.6rem;
}

.ai-image-analysis-list__risk {
    position: absolute;
    top: 0.65rem;
    left: 0.65rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    background: rgba(15, 23, 42, 0.7);
    color: #fff;
}

.ai-image-analysis-list__risk--high,
.ai-image-analysis-list__risk--critical {
    background: rgba(176, 42, 55, 0.92);
}

.ai-image-analysis-list__risk--medium {
    background: rgba(192, 101, 18, 0.92);
}

.ai-image-analysis-list__risk--good {
    background: rgba(30, 126, 52, 0.92);
}

.ai-image-analysis-list__body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem 1.1rem 1.1rem 0;
}

.ai-image-analysis-list__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
}

.ai-image-analysis-list__title {
    font-size: 1.05rem;
    font-weight: 800;
    margin: 0 0 0.25rem;
    line-height: 1.3;
}

.ai-image-analysis-list__title a {
    color: var(--brand-primary);
    text-decoration: none;
}

.ai-image-analysis-list__title a:hover {
    color: var(--brand-secondary);
}

.ai-image-analysis-list__file {
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 600;
}

.ai-image-analysis-list__file i {
    margin-right: 0.25rem;
    opacity: 0.8;
}

.ai-image-analysis-list__score {
    text-align: right;
    flex-shrink: 0;
}

.ai-image-analysis-list__score strong {
    display: block;
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.1;
}

.ai-image-analysis-list__score span {
    color: #94a3b8;
    font-size: 0.7rem;
    font-weight: 700;
}

.ai-image-analysis-list__score--high strong { color: #b02a37; }
.ai-image-analysis-list__score--medium strong { color: #c06512; }
.ai-image-analysis-list__score--good strong { color: #1e7e34; }

.ai-image-analysis-list__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.9rem;
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 650;
}

.ai-image-analysis-list__stats i {
    margin-right: 0.25rem;
}

.ai-image-analysis-list__stat--critical {
    color: #b02a37;
}

.ai-image-analysis-list__issues {
    display: grid;
    gap: 0.4rem;
}

.ai-image-analysis-list__issues li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--brand-primary);
}

.ai-image-analysis-list__issue-cat {
    color: #64748b;
    font-size: 0.75rem;
    font-weight: 700;
}

.ai-image-analysis-list__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.85rem;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 600;
}

.ai-image-analysis-list__meta i {
    margin-right: 0.25rem;
    opacity: 0.8;
}

.ai-image-analysis-list__source {
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
}

.ai-image-analysis-list__source--live {
    background: rgba(39, 174, 96, 0.14);
    color: #1e7a45;
}

.ai-image-analysis-list__source--demo {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}

.ai-image-analysis-list__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

@media (max-width: 767.98px) {
    .ai-image-analysis-list__card {
        grid-template-columns: 1fr;
    }

    .ai-image-analysis-list__media {
        min-height: 180px;
    }

    .ai-image-analysis-list__body {
        padding: 0 1rem 1rem;
    }

    .ai-image-analysis-history__main {
        flex-direction: column;
    }

    .ai-image-analysis-history__score {
        text-align: left;
    }

    .ai-image-analysis-history__risk {
        margin-left: 0;
    }
}

@media (max-width: 1100px) {
    .ai-image-analysis-layout {
        grid-template-columns: 1fr;
    }

    .ai-image-analysis-actions__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .ai-image-analysis-issue {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .ai-image-analysis-issue__risk,
    .ai-image-analysis-issue__confidence,
    .ai-image-analysis-issue__chevron {
        display: none;
    }
}

/* Task Backlog */
.task-backlog-demo-pill {
    display: inline-flex;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: rgba(230, 126, 34, 0.14);
    color: var(--brand-accent);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.task-backlog-demo-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    background: rgba(230, 126, 34, 0.08);
    border: 1px solid rgba(230, 126, 34, 0.22);
    color: var(--brand-primary);
    font-size: 0.9rem;
}

.task-backlog-demo-banner i {
    color: var(--brand-accent);
    margin-top: 0.15rem;
}

.task-backlog-top {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.75fr);
    gap: 1rem;
    align-items: stretch;
}

.task-backlog-overview,
.task-backlog-actions-card,
.task-backlog-featured,
.task-backlog-timeline-footer,
.task-backlog-main__left {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.05);
}

.task-backlog-overview {
    padding: 1.05rem 1.15rem 1.15rem;
}

.task-backlog-actions-card {
    padding: 1rem 1.1rem;
}

.task-backlog-card-title {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.85rem;
}

.task-backlog-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.task-backlog-stat {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.95rem 1rem;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
    min-height: 7.25rem;
}

.task-backlog-stat__value {
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1.1;
    letter-spacing: -0.02em;
}

.task-backlog-stat__label {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 600;
}

.task-backlog-stat__delta {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: auto;
    padding-top: 0.55rem;
    font-size: 0.78rem;
    font-weight: 700;
}

.task-backlog-stat__delta i {
    font-size: 0.72rem;
}

.task-backlog-stat__delta.is-accent { color: var(--brand-accent); }
.task-backlog-stat__delta.is-success { color: var(--brand-success); }
.task-backlog-stat__delta.is-info { color: var(--brand-secondary); }

.task-backlog-priority {
    margin-top: 1rem;
    padding-top: 0.95rem;
    border-top: 1px solid rgba(30, 58, 95, 0.08);
}

.task-backlog-priority__title {
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.65rem;
}

.task-backlog-priority-bar {
    display: flex;
    height: 0.7rem;
    border-radius: 999px;
    overflow: hidden;
    background: #eef2f7;
}

.task-backlog-priority-bar span { display: block; height: 100%; }
.task-backlog-priority-bar .is-critical,
.task-backlog-priority-legend .is-critical { background: #c0392b; }
.task-backlog-priority-bar .is-high,
.task-backlog-priority-legend .is-high { background: #e67e22; }
.task-backlog-priority-bar .is-medium,
.task-backlog-priority-legend .is-medium { background: #f1c40f; }
.task-backlog-priority-bar .is-low,
.task-backlog-priority-legend .is-low { background: #94a3b8; }

.task-backlog-priority-legend {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.15rem;
    font-size: 0.8rem;
    color: #475569;
}

.task-backlog-priority-legend .dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    display: inline-block;
    margin-right: 0.35rem;
}

.task-backlog-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.task-backlog-action {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    padding: 0.55rem 0.7rem;
    border-radius: 10px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: #f8fafc;
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 700;
    text-align: left;
}

.task-backlog-action i { width: 1rem; text-align: center; color: var(--brand-secondary); }
.task-backlog-action.is-primary {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}
.task-backlog-action.is-primary i { color: #fff; }
.task-backlog-action:disabled { opacity: 0.55; cursor: not-allowed; }

.task-backlog-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 1rem;
    align-items: start;
}

.task-backlog-main__left {
    padding: 0.9rem 1.05rem 1rem;
    overflow: hidden;
}

.task-backlog-main__left:has(.dropdown.show),
.task-backlog-table-wrap:has(.dropdown.show) {
    overflow: visible;
}

.task-backlog-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem 0.35rem;
    margin: 0 0 0.95rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.1);
}

.task-backlog-tabs button {
    border: 0;
    background: transparent;
    color: #64748b;
    font-size: 0.84rem;
    font-weight: 700;
    padding: 0.55rem 0.7rem 0.7rem;
    border-radius: 0;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}

.task-backlog-tabs button.is-active {
    background: transparent;
    color: var(--brand-primary);
    border-bottom-color: var(--brand-accent);
}

.task-backlog-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.85rem;
}

.task-backlog-search {
    position: relative;
    display: block;
    flex: 1 1 180px;
    min-width: 160px;
}

.task-backlog-search i {
    position: absolute;
    left: 0.7rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 0.8rem;
}

.task-backlog-search input {
    width: 100%;
    border: 1px solid rgba(30, 58, 95, 0.14);
    border-radius: 10px;
    padding: 0.45rem 0.7rem 0.45rem 2rem;
    font-size: 0.84rem;
    background: #fff;
}

.task-backlog-filters .form-select {
    width: auto;
    min-width: 7.5rem;
    border-radius: 10px;
    border-color: rgba(30, 58, 95, 0.14);
    font-size: 0.8rem;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

.task-backlog-filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid rgba(30, 58, 95, 0.14);
    background: #fff;
    color: var(--brand-primary);
    border-radius: 10px;
    padding: 0.4rem 0.7rem;
    font-size: 0.8rem;
    font-weight: 700;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
}

.task-backlog-filter-btn.is-clear {
    border-color: transparent;
    background: transparent;
    color: #64748b;
}

.task-backlog-filter-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.task-backlog-table-wrap {
    overflow-x: auto;
    border: 1px solid rgba(30, 58, 95, 0.08);
    border-radius: 12px;
}

.task-backlog-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
    margin: 0;
}

.task-backlog-table th,
.task-backlog-table td {
    padding: 0.8rem 0.7rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.07);
    vertical-align: middle;
    white-space: nowrap;
    background: #fff;
}

.task-backlog-table tbody tr:last-child td {
    border-bottom: 0;
}

.task-backlog-table tbody tr:hover td {
    background: #f8fafc;
}

.task-backlog-table th {
    color: #64748b;
    font-weight: 700;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    background: #f8fafc;
}

.task-backlog-table__check { width: 2.2rem; }
.task-backlog-table__menu { width: 2.4rem; text-align: right; }

.task-backlog-table .data-table-actions-wrap {
    justify-content: flex-end;
}

.task-backlog-table .data-table-actions--inline {
    display: none;
}

.task-backlog-table .data-table-actions--dropdown {
    display: inline-block;
}

.task-backlog-task-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.task-backlog-task-link:hover .task-backlog-task-name {
    color: var(--brand-secondary);
    text-decoration: underline;
}

.task-backlog-task-name {
    font-weight: 700;
    color: var(--brand-primary);
    white-space: normal;
    max-width: 200px;
    line-height: 1.25;
}

.task-backlog-task-code {
    font-size: 0.72rem;
    color: #94a3b8;
    margin-top: 0.1rem;
}

.task-backlog-shared-badge {
    display: inline-flex;
    margin-top: 0.3rem;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.task-backlog-partner-help {
    margin: -0.15rem 0 0.75rem;
    font-size: 0.82rem;
    color: #64748b;
}

#taskBacklogCaseModal .modal-body {
    overflow: visible;
}

#taskBacklogCaseModal .modal-dialog-scrollable .modal-content {
    overflow: visible;
}

#taskBacklogCaseModal .modal-dialog-scrollable .modal-body {
    overflow-y: auto;
    overflow-x: visible;
}

#taskBacklogCaseModal .app-dropdown__menu,
#taskBacklogCaseModal .app-form-date__menu {
    z-index: 1080;
}

.task-backlog-partner-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.75rem;
}

.task-backlog-partner-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    min-height: 100%;
    padding: 0.95rem 0.9rem 0.9rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 16px;
    background: linear-gradient(165deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.05);
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
    overflow: hidden;
}

.task-backlog-partner-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--brand-secondary), var(--brand-accent));
    opacity: 0.75;
}

.task-backlog-partner-card:hover {
    border-color: rgba(45, 90, 135, 0.3);
    box-shadow: 0 12px 26px rgba(30, 58, 95, 0.1);
    transform: translateY(-2px);
}

.task-backlog-partner-card__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.task-backlog-partner-card__check {
    position: absolute;
    top: 0.7rem;
    right: 0.7rem;
    width: 1.45rem;
    height: 1.45rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(30, 58, 95, 0.08);
    color: transparent;
    font-size: 0.7rem;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.task-backlog-partner-card:has(.task-backlog-partner-card__input:checked) {
    border-color: rgba(230, 126, 34, 0.55);
    background: linear-gradient(165deg, #fff 0%, #fff7ed 100%);
    box-shadow: 0 0 0 1px rgba(230, 126, 34, 0.2), 0 12px 26px rgba(230, 126, 34, 0.12);
}

.task-backlog-partner-card:has(.task-backlog-partner-card__input:checked)::before {
    background: linear-gradient(90deg, var(--brand-accent), #f1c40f);
    opacity: 1;
}

.task-backlog-partner-card:has(.task-backlog-partner-card__input:checked) .task-backlog-partner-card__check {
    background: var(--brand-accent);
    color: #fff;
    transform: scale(1.05);
}

.task-backlog-partner-card__avatar {
    position: relative;
    width: 3.1rem;
    height: 3.1rem;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--partner-color, #1e3a5f) 18%, #fff);
    color: var(--partner-color, #1e3a5f);
    font-size: 0.88rem;
    font-weight: 800;
    box-shadow:
        inset 0 0 0 1px rgba(30, 58, 95, 0.06),
        0 0 0 3px color-mix(in srgb, var(--partner-color, #1e3a5f) 16%, transparent);
}

.task-backlog-partner-card__level {
    position: absolute;
    right: -0.35rem;
    bottom: -0.35rem;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.28rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--brand-primary);
    color: #fff;
    font-size: 0.62rem;
    font-weight: 800;
    border: 2px solid #fff;
}

.task-backlog-partner-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.task-backlog-partner-card__name {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1.25;
    padding-right: 1.6rem;
}

.task-backlog-partner-card__meta {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.76rem;
    color: #64748b;
    font-weight: 600;
}

.task-backlog-partner-card__meta i {
    color: var(--brand-secondary);
    font-size: 0.7rem;
}

.task-backlog-partner-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.15rem;
}

.task-backlog-partner-card__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.07);
    color: var(--brand-secondary);
    font-size: 0.7rem;
    font-weight: 700;
}

.task-backlog-partner-card__chip--xp {
    background: rgba(230, 126, 34, 0.14);
    color: #d35400;
}

.task-backlog-partner-card__chip--xp i {
    color: var(--brand-accent);
}

.task-backlog-share-task {
    font-weight: 700;
    color: var(--brand-primary);
}

.task-backlog-share-empty {
    text-align: center;
    padding: 1.5rem 1rem;
    color: #64748b;
}

.task-backlog-share-empty i {
    font-size: 1.4rem;
    margin-bottom: 0.5rem;
    color: #94a3b8;
}

.task-backlog-detail-schedule {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.task-backlog-detail-schedule > div:not(.task-backlog-detail-schedule__arrow) {
    flex: 1 1 140px;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.08);
}

.task-backlog-detail-label {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #94a3b8;
    margin-bottom: 0.35rem;
}

.task-backlog-detail-schedule strong {
    font-size: 1.05rem;
    color: var(--brand-primary);
}

.task-backlog-detail-schedule__arrow {
    color: #94a3b8;
}

.task-backlog-detail-impact {
    font-weight: 800;
    color: var(--brand-primary);
}

.task-backlog-detail-summary {
    margin: 0;
    display: grid;
    gap: 0.85rem;
}

.task-backlog-detail-summary > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
}

.task-backlog-detail-summary dt {
    margin: 0;
    color: #94a3b8;
    font-size: 0.78rem;
    font-weight: 700;
}

.task-backlog-detail-summary dd {
    margin: 0;
    font-weight: 700;
    color: var(--brand-primary);
    text-align: right;
}

.task-backlog-detail-siblings {
    list-style: none;
    margin: 0;
    padding: 0;
}

.task-backlog-detail-siblings li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.07);
}

.task-backlog-detail-siblings li:last-child {
    border-bottom: 0;
}

.task-backlog-detail-siblings li.is-current {
    background: rgba(45, 90, 135, 0.06);
}

.task-backlog-detail-siblings a,
.task-backlog-detail-siblings strong {
    display: block;
    color: var(--brand-primary);
    text-decoration: none;
    font-size: 0.9rem;
}

.task-backlog-detail-siblings a:hover strong {
    text-decoration: underline;
}

.task-backlog-detail-siblings span {
    display: block;
    font-size: 0.72rem;
    color: #94a3b8;
    font-weight: 600;
}

.task-backlog-detail-share-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.task-backlog-share-person {
    position: relative;
    list-style: none;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 14px;
    background: linear-gradient(165deg, #fff 0%, #f8fafc 100%);
    box-shadow: 0 6px 16px rgba(30, 58, 95, 0.05);
    overflow: hidden;
}

.task-backlog-share-person.is-partner {
    background: linear-gradient(165deg, #fff 0%, #fffaf5 100%);
}

.task-backlog-share-person__accent {
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--share-color, var(--brand-secondary)), color-mix(in srgb, var(--share-color, var(--brand-secondary)) 35%, #fff));
}

.task-backlog-share-person__inner {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding: 0.9rem 0.9rem 0.85rem 1.05rem;
}

.task-backlog-share-person__header {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.task-backlog-share-person__avatar {
    flex: 0 0 auto;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--share-color, #1e3a5f) 16%, #fff);
    color: var(--share-color, #1e3a5f);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    box-shadow:
        inset 0 0 0 1px rgba(30, 58, 95, 0.06),
        0 0 0 3px color-mix(in srgb, var(--share-color, #1e3a5f) 14%, transparent);
}

.task-backlog-share-person__heading {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}

.task-backlog-share-person__name {
    font-size: 0.92rem;
    color: #0f172a;
    font-weight: 800;
    line-height: 1.25;
    word-break: break-word;
}

.task-backlog-share-person__type {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1;
}

.task-backlog-share-person__type i {
    font-size: 0.62rem;
}

.task-backlog-share-person__type.is-partner {
    background: rgba(230, 126, 34, 0.14);
    color: #c2410c;
}

.task-backlog-share-person__type.is-staff {
    background: rgba(30, 58, 95, 0.1);
    color: #1e3a5f;
}

.task-backlog-share-person__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.task-backlog-share-person__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 100%;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: #334155;
    font-size: 0.74rem;
    font-weight: 700;
    line-height: 1.2;
}

.task-backlog-share-person__chip i {
    color: #64748b;
    font-size: 0.68rem;
}

.task-backlog-share-person__chip.is-trade {
    background: rgba(45, 90, 135, 0.1);
    color: #1e3a5f;
}

.task-backlog-share-person__chip.is-trade i {
    color: var(--brand-secondary);
}

.task-backlog-share-person__meta {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-top: 0.15rem;
}

.task-backlog-share-person__meta-row {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    font-size: 0.78rem;
    color: #475569;
    line-height: 1.35;
    text-decoration: none;
    word-break: break-word;
}

.task-backlog-share-person__meta-row i {
    margin-top: 0.15rem;
    width: 0.9rem;
    text-align: center;
    color: #94a3b8;
    flex: 0 0 auto;
}

a.task-backlog-share-person__meta-row:hover {
    color: var(--brand-secondary);
}

a.task-backlog-share-person__meta-row:hover span {
    text-decoration: underline;
}

.task-backlog-share-person__footer {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.1rem;
    padding-top: 0.65rem;
    border-top: 1px dashed rgba(30, 58, 95, 0.12);
    font-size: 0.72rem;
    font-weight: 700;
    color: #94a3b8;
}

.task-backlog-share-person__footer i {
    color: var(--brand-accent);
    font-size: 0.7rem;
}

.task-backlog-detail-photos__title {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
    font-weight: 800;
    margin: 0 0 0.65rem;
}

.task-backlog-detail-photos__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr));
    gap: 0.55rem;
}

.task-backlog-detail-photos__item {
    display: block;
    aspect-ratio: 1;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: #f1f5f9;
    box-shadow: 0 4px 12px rgba(30, 58, 95, 0.06);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.task-backlog-detail-photos__item:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(30, 58, 95, 0.12);
}

.task-backlog-detail-photos__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.task-backlog-date {
    color: #64748b;
    font-weight: 600;
}

.task-backlog-date.is-target {
    color: var(--brand-primary);
    font-weight: 800;
}

.task-backlog-case-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    background: rgba(30, 58, 95, 0.06);
    color: var(--brand-secondary);
    font-size: 0.74rem;
    font-weight: 700;
}

.task-backlog-case-chip i {
    font-size: 0.72rem;
    color: var(--brand-accent);
}

.task-backlog-priority-pill,
.task-backlog-status-pill {
    display: inline-flex;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 800;
}

.task-backlog-priority-pill.is-critical {
    background: rgba(192, 57, 43, 0.12);
    color: #c0392b;
}
.task-backlog-priority-pill.is-high {
    background: rgba(230, 126, 34, 0.14);
    color: #d35400;
}
.task-backlog-priority-pill.is-medium {
    background: rgba(241, 196, 15, 0.2);
    color: #b7950b;
}
.task-backlog-priority-pill.is-low {
    background: rgba(148, 163, 184, 0.2);
    color: #64748b;
}

.task-backlog-status-pill.is-pending {
    background: rgba(100, 116, 139, 0.14);
    color: #475569;
}
.task-backlog-status-pill.is-planned {
    background: rgba(45, 90, 135, 0.12);
    color: var(--brand-secondary);
}
.task-backlog-status-pill.is-in_progress {
    background: rgba(230, 126, 34, 0.14);
    color: #d35400;
}
.task-backlog-status-pill.is-done,
.task-backlog-status-pill.is-active {
    background: rgba(39, 174, 96, 0.14);
    color: #1e8449;
}
.task-backlog-status-pill.is-resolved {
    background: rgba(148, 163, 184, 0.18);
    color: #64748b;
}

.task-backlog-assignee {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.task-backlog-assignee__name {
    font-weight: 600;
    color: var(--brand-primary);
}

.task-backlog-avatar {
    width: 1.55rem;
    height: 1.55rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 0.62rem;
    font-weight: 800;
    flex-shrink: 0;
}

.task-backlog-table-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.85rem;
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 600;
}

.task-backlog-view-all {
    border: 0;
    background: transparent;
    color: var(--brand-secondary);
    font-size: 0.8rem;
    font-weight: 800;
    padding: 0;
    text-decoration: none;
}

.task-backlog-view-all:hover {
    color: var(--brand-primary);
    text-decoration: underline;
}

.task-backlog-filters--list {
    margin-bottom: 1rem;
}

.task-backlog-list-table {
    margin-top: 0;
}

.task-backlog-list-table .task-backlog-table-wrap,
.task-backlog-list-table .data-table-responsive {
    border: 0;
    border-radius: 0;
    overflow-x: auto;
}

.task-backlog-list-table .data-table-footer {
    align-items: center;
}

.task-backlog-bulk-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.65rem 0.85rem;
}

.task-backlog-bulk-actions[hidden] {
    display: none !important;
}

.task-backlog-bulk-actions__count {
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--brand-primary);
    white-space: nowrap;
}

.task-backlog-bulk-actions__btns {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.task-backlog-list-table .data-table-pagination .pagination {
    margin-bottom: 0;
}

.task-backlog-featured__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.task-backlog-shared-avatars {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.task-backlog-featured {
    padding: 1rem 1.1rem 1.2rem;
    position: sticky;
    top: 1rem;
}

.task-backlog-featured__title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.85rem;
}

.task-backlog-featured__meta {
    display: grid;
    gap: 0.45rem;
    margin: 0 0 1rem;
}

.task-backlog-featured__meta div {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.82rem;
}

.task-backlog-featured__meta dt { color: #94a3b8; margin: 0; }
.task-backlog-featured__meta dd { margin: 0; font-weight: 700; color: var(--brand-primary); }

.task-backlog-featured__block + .task-backlog-featured__block { margin-top: 0.95rem; }
.task-backlog-featured__block h5 {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
    margin: 0 0 0.35rem;
}
.task-backlog-featured__block p {
    margin: 0;
    font-size: 0.88rem;
    color: #334155;
    line-height: 1.45;
}
.task-backlog-featured__impact { font-weight: 700; color: var(--brand-primary) !important; }

.task-backlog-timeline-footer {
    padding: 1.1rem 1.2rem 1.25rem;
}

.task-backlog-timeline-footer__head {
    margin-bottom: 1rem;
}

.task-backlog-timeline-footer__subtitle {
    margin: 0.25rem 0 0;
    font-size: 0.82rem;
    color: #64748b;
}

.task-backlog-timeline {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    position: relative;
}

.task-backlog-timeline__item {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    padding: 0 0.4rem;
}

.task-backlog-timeline__date {
    font-size: 0.74rem;
    font-weight: 700;
    color: #64748b;
    text-align: center;
    margin-bottom: 0.55rem;
    white-space: nowrap;
}

.task-backlog-timeline__rail {
    position: relative;
    height: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.65rem;
}

.task-backlog-timeline__rail::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    background: rgba(30, 58, 95, 0.14);
    transform: translateY(-50%);
}

.task-backlog-timeline__item:first-child .task-backlog-timeline__rail::before {
    left: 50%;
}

.task-backlog-timeline__item:last-child .task-backlog-timeline__rail::before {
    right: 50%;
}

.task-backlog-timeline__dot {
    position: relative;
    z-index: 1;
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 999px;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px rgba(30, 58, 95, 0.12);
    background: var(--brand-primary);
}

.task-backlog-timeline__item.is-accent .task-backlog-timeline__dot { background: var(--brand-accent); }
.task-backlog-timeline__item.is-secondary .task-backlog-timeline__dot { background: var(--brand-secondary); }
.task-backlog-timeline__item.is-muted .task-backlog-timeline__dot { background: #94a3b8; }
.task-backlog-timeline__item.is-primary .task-backlog-timeline__dot { background: var(--brand-primary); }

.task-backlog-timeline__card {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    align-items: center;
    text-align: center;
    padding: 0.85rem 0.65rem;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid rgba(30, 58, 95, 0.1);
    min-height: 4.4rem;
    justify-content: center;
}

.task-backlog-timeline__card strong {
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.task-backlog-timeline__card span {
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 600;
}

.task-backlog-timeline__item.is-active .task-backlog-timeline__card {
    background: rgba(45, 90, 135, 0.08);
    border-color: rgba(45, 90, 135, 0.45);
    box-shadow: 0 0 0 1px rgba(45, 90, 135, 0.12);
}

.task-backlog-timeline__item.is-active .task-backlog-timeline__date {
    color: var(--brand-primary);
}

.task-backlog-timeline__item.is-active .task-backlog-timeline__dot {
    box-shadow: 0 0 0 3px rgba(45, 90, 135, 0.22);
}

.task-backlog-panel .task-backlog-timeline {
    padding: 0.35rem 0 0.15rem;
}

.task-backlog-case-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.85rem;
}

.task-backlog-case-card {
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 14px;
    padding: 0.9rem 1rem;
    background: #f8fafc;
}

.task-backlog-case-card__head {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.task-backlog-case-card h4 {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--brand-primary);
    margin: 0 0 0.4rem;
}

.task-backlog-case-card p {
    font-size: 0.82rem;
    color: #475569;
    margin: 0 0 0.65rem;
}

.task-backlog-case-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 700;
}

.task-backlog-empty-tab {
    text-align: center;
    padding: 2.5rem 1rem;
    color: #94a3b8;
}

.task-backlog-empty-tab i { font-size: 1.6rem; margin-bottom: 0.5rem; }

@media (max-width: 1199.98px) {
    .task-backlog-main { grid-template-columns: 1fr; }
    .task-backlog-featured { position: static; }
    .task-backlog-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .task-backlog-timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1rem; }
    .task-backlog-timeline__item .task-backlog-timeline__rail::before {
        left: 0;
        right: 0;
    }
}

@media (max-width: 991.98px) {
    .task-backlog-top { grid-template-columns: 1fr; }
    .task-backlog-filters { grid-template-columns: 1fr 1fr; }
    .task-backlog-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
    .task-backlog-stats { grid-template-columns: 1fr; }
    .task-backlog-actions { grid-template-columns: 1fr; }
    .task-backlog-filters { grid-template-columns: 1fr; }
    .task-backlog-timeline { grid-template-columns: 1fr; }
    .task-backlog-timeline__item:first-child .task-backlog-timeline__rail::before,
    .task-backlog-timeline__item:last-child .task-backlog-timeline__rail::before {
        left: 50%;
        right: 50%;
    }
}

/* To-Do Management (contractor workspace) */
.todo-mgmt-demo-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #9a3412;
    background: #ffedd5;
}

.todo-mgmt-demo-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
    font-size: 0.88rem;
    font-weight: 600;
}

.todo-mgmt-demo-banner i {
    margin-top: 0.15rem;
    color: #ea580c;
}

.todo-mgmt__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    margin-bottom: 1rem;
}

.todo-mgmt-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.todo-mgmt-tabs__item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    font-size: 0.84rem;
    font-weight: 700;
    color: #64748b;
    text-decoration: none;
    border: 1px solid transparent;
    background: transparent;
}

.todo-mgmt-tabs__item span {
    font-weight: 800;
    color: #94a3b8;
}

.todo-mgmt-tabs__item.is-active {
    color: var(--brand-primary);
    background: #fff;
    border-color: rgba(30, 58, 95, 0.12);
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.06);
}

.todo-mgmt-tabs__item.is-active span {
    color: var(--brand-accent);
}

.todo-mgmt-tabs__item.is-disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.todo-mgmt__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.todo-mgmt-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.todo-mgmt-stat {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 14px;
    padding: 0.95rem 1rem;
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.04);
    min-height: 7rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.todo-mgmt-stat__value {
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--brand-primary);
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.todo-mgmt-stat__label {
    font-size: 0.84rem;
    font-weight: 700;
    color: #334155;
}

.todo-mgmt-stat__meta {
    font-size: 0.75rem;
    color: #94a3b8;
    font-weight: 600;
}

.todo-mgmt-stat__bar {
    margin-top: auto;
    height: 0.35rem;
    border-radius: 999px;
    background: #eef2f7;
    overflow: hidden;
}

.todo-mgmt-stat__bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--brand-secondary);
}

.todo-mgmt-stat.is-danger .todo-mgmt-stat__bar span { background: #e74c3c; }
.todo-mgmt-stat.is-warning .todo-mgmt-stat__bar span { background: #e67e22; }
.todo-mgmt-stat.is-success .todo-mgmt-stat__bar span { background: #27ae60; }
.todo-mgmt-stat.is-info .todo-mgmt-stat__bar span { background: #3498db; }

.todo-mgmt-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
    gap: 1rem;
    align-items: start;
}

.todo-mgmt-filters {
    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(120px, 0.8fr)) auto auto;
    gap: 0.55rem;
    margin-bottom: 0.85rem;
    align-items: center;
}

.todo-mgmt-search {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.75rem;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 10px;
    background: #fff;
    min-height: 2.15rem;
}

.todo-mgmt-search i { color: #94a3b8; font-size: 0.8rem; }
.todo-mgmt-search input {
    border: 0;
    outline: 0;
    width: 100%;
    background: transparent;
    font-size: 0.86rem;
    color: #1e293b;
}

.todo-mgmt-filter-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    border: 1px solid rgba(30, 58, 95, 0.14);
    background: #fff;
    color: var(--brand-primary);
    border-radius: 10px;
    padding: 0.4rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.todo-mgmt-filter-btn.is-clear {
    color: #64748b;
    background: #f8fafc;
}

.todo-mgmt-table-panel {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(30, 58, 95, 0.05);
    overflow: hidden;
}

.todo-mgmt-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}

.todo-mgmt-table th,
.todo-mgmt-table td {
    padding: 0.75rem 0.85rem;
    border-bottom: 1px solid rgba(30, 58, 95, 0.07);
    vertical-align: middle;
    font-size: 0.84rem;
}

.todo-mgmt-table thead th {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    font-weight: 800;
    background: #f8fafc;
    white-space: nowrap;
}

.todo-mgmt-table__check { width: 2.25rem; text-align: center; }
.todo-mgmt-table__menu { width: 2.5rem; text-align: right; }

.todo-mgmt-table tr.is-completed .todo-mgmt-task__title {
    text-decoration: line-through;
    color: #94a3b8;
}

.todo-mgmt-task {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 12rem;
}

.todo-mgmt-task__icon {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef2f7;
    color: var(--brand-primary);
    flex-shrink: 0;
    margin-top: 0.05rem;
}

.todo-mgmt-task__title {
    font-weight: 700;
    color: #0f172a;
    line-height: 1.25;
}

.todo-mgmt-task__code {
    font-size: 0.72rem;
    color: #94a3b8;
    font-weight: 700;
    margin-top: 0.15rem;
}

.todo-mgmt-project__name { font-weight: 700; color: #1e293b; }
.todo-mgmt-project__code { font-size: 0.72rem; color: #94a3b8; font-weight: 700; }

.todo-mgmt-assignee {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    white-space: nowrap;
}

.todo-mgmt-assignee__avatar {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    background: #dbeafe;
    color: #1d4ed8;
    font-size: 0.68rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.todo-mgmt-priority,
.todo-mgmt-status {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    white-space: nowrap;
}

.todo-mgmt-priority.is-critical { background: #fde8e8; color: #c0392b; }
.todo-mgmt-priority.is-high { background: #fff1e6; color: #d35400; }
.todo-mgmt-priority.is-medium { background: #fef9c3; color: #a16207; }
.todo-mgmt-priority.is-low { background: #e8f8ef; color: #1e8449; }

.todo-mgmt-status.is-in_progress { background: #e8f1ff; color: #2563eb; }
.todo-mgmt-status.is-pending { background: #eef6ff; color: #0284c7; }
.todo-mgmt-status.is-planned { background: #f3e8ff; color: #7c3aed; }
.todo-mgmt-status.is-completed { background: #ecfdf5; color: #059669; }

.todo-mgmt-due__rel {
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 700;
    margin-top: 0.1rem;
}

.todo-mgmt-due__rel.is-overdue { color: #dc2626; }

.todo-mgmt-row-action {
    color: #94a3b8 !important;
    padding: 0.15rem 0.35rem !important;
}

.todo-mgmt-footer-right {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.todo-mgmt-aside {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.todo-mgmt-card {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 16px;
    padding: 1rem 1.05rem;
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.04);
}

.todo-mgmt-card__title {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--brand-primary);
}

.todo-mgmt-card__empty {
    margin: 0;
    font-size: 0.82rem;
    color: #94a3b8;
    font-weight: 600;
}

.todo-mgmt-breakdown,
.todo-mgmt-upcoming,
.todo-mgmt-donut-legend,
.todo-mgmt-activity {
    list-style: none;
    margin: 0;
    padding: 0;
}

.todo-mgmt-breakdown li,
.todo-mgmt-upcoming li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0;
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
    font-size: 0.84rem;
}

.todo-mgmt-breakdown li:last-child,
.todo-mgmt-upcoming li:last-child { border-bottom: 0; }

.todo-mgmt-breakdown__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    background: #94a3b8;
    flex-shrink: 0;
}

.todo-mgmt-breakdown__dot.is-danger { background: #e74c3c; }
.todo-mgmt-breakdown__dot.is-warning { background: #e67e22; }
.todo-mgmt-breakdown__dot.is-info { background: #3498db; }
.todo-mgmt-breakdown__dot.is-success { background: #27ae60; }
.todo-mgmt-breakdown__dot.is-neutral { background: #64748b; }

.todo-mgmt-breakdown__label { flex: 1; color: #475569; font-weight: 600; }
.todo-mgmt-breakdown__count { font-weight: 800; color: var(--brand-primary); }

.todo-mgmt-upcoming li span { flex: 1; color: #475569; font-weight: 600; }
.todo-mgmt-upcoming li strong { color: var(--brand-primary); }

.todo-mgmt-donut-wrap {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.todo-mgmt-donut {
    width: 5.5rem;
    height: 5.5rem;
    border-radius: 50%;
    position: relative;
    flex-shrink: 0;
    display: grid;
    place-items: center;
}

.todo-mgmt-donut::before {
    content: '';
    position: absolute;
    inset: 1.05rem;
    border-radius: 50%;
    background: #fff;
}

.todo-mgmt-donut span {
    position: relative;
    z-index: 1;
    font-weight: 800;
    color: var(--brand-primary);
    font-size: 0.95rem;
}

.todo-mgmt-donut-legend {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: #475569;
    font-weight: 600;
    flex: 1;
}

.todo-mgmt-donut-legend li {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.todo-mgmt-donut-legend strong {
    margin-left: auto;
    color: var(--brand-primary);
}

.todo-mgmt-donut-legend__swatch {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
}

.todo-mgmt-donut-legend__swatch.is-critical { background: #c0392b; }
.todo-mgmt-donut-legend__swatch.is-high { background: #e67e22; }
.todo-mgmt-donut-legend__swatch.is-medium { background: #f1c40f; }
.todo-mgmt-donut-legend__swatch.is-low { background: #27ae60; }

.todo-mgmt-activity li {
    display: flex;
    gap: 0.65rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(30, 58, 95, 0.06);
    font-size: 0.82rem;
    color: #334155;
    font-weight: 600;
}

.todo-mgmt-activity li:last-child { border-bottom: 0; }

.todo-mgmt-activity__avatar {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-size: 0.68rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.todo-mgmt-activity__when {
    font-size: 0.72rem;
    color: #94a3b8;
    margin-top: 0.15rem;
    font-weight: 600;
}

@media (max-width: 1199.98px) {
    .todo-mgmt-layout { grid-template-columns: 1fr; }
    .todo-mgmt-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
    .todo-mgmt-filters { grid-template-columns: 1fr 1fr; }
    .todo-mgmt-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
    .todo-mgmt-stats { grid-template-columns: 1fr; }
    .todo-mgmt-filters { grid-template-columns: 1fr; }
}

.todo-to-backlog-focus {
    outline: 2px solid rgba(230, 126, 34, 0.55);
    outline-offset: 4px;
    border-radius: 12px;
    transition: outline-color 0.2s ease;
}

.todo-to-backlog-modal__footer {
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* ===== Project Cases / Case Management ===== */
.project-cases-demo-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: #fff4e5;
    color: #b35c00;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}
.project-cases-demo-banner {
    display: flex;
    gap: 0.65rem;
    align-items: flex-start;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    background: #f4f7fb;
    border: 1px solid #d9e3f0;
    color: #334155;
    font-size: 0.9rem;
}
.project-cases-subnav-panel,
.project-cases-show-tabs {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-bottom: 1.25rem;
    overflow: hidden;
}

.project-cases-subnav-panel .project-tabs-scroll,
.project-cases-show-tabs .project-tabs-scroll {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
}

.project-cases-subnav-panel ul.project-tabs.nav-tabs,
.project-cases-show-tabs ul.project-tabs.nav-tabs,
.project-cases-subnav-panel ul.nav.nav-tabs.project-tabs,
.project-cases-show-tabs ul.nav.nav-tabs.project-tabs {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    min-width: max-content;
    max-width: none;
}

.project-cases-subnav-panel .project-tabs .nav-item,
.project-cases-show-tabs .project-tabs .nav-item {
    flex: 0 0 auto;
}

.project-cases-subnav-panel .project-tabs .nav-link,
.project-cases-show-tabs .project-tabs .nav-link {
    white-space: nowrap;
}

.project-cases-cost-page,
.project-cases-delay-page,
.project-cases-show,
.project-cases-page {
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
}

@media (max-width: 991.98px) {
    .project-cases-subnav-panel .project-tabs-scroll,
    .project-cases-show-tabs .project-tabs-scroll {
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: thin;
        scrollbar-color: rgba(30, 58, 95, 0.4) rgba(30, 58, 95, 0.08);
    }

    .project-cases-subnav-panel .project-tabs-scroll::-webkit-scrollbar,
    .project-cases-show-tabs .project-tabs-scroll::-webkit-scrollbar {
        height: 6px;
        display: block;
    }

    .project-cases-subnav-panel .project-tabs-scroll::-webkit-scrollbar-thumb,
    .project-cases-show-tabs .project-tabs-scroll::-webkit-scrollbar-thumb {
        background: rgba(30, 58, 95, 0.4);
        border-radius: 999px;
    }

    .project-cases-subnav-panel ul.project-tabs.nav-tabs,
    .project-cases-show-tabs ul.project-tabs.nav-tabs,
    .project-cases-subnav-panel ul.nav.nav-tabs.project-tabs,
    .project-cases-show-tabs ul.nav.nav-tabs.project-tabs {
        display: flex;
        flex-wrap: nowrap;
        width: max-content;
        min-width: max-content;
        max-width: none;
        padding: 0.55rem 0.75rem;
        gap: 0.3rem;
    }

    .project-cases-subnav-panel .project-tabs .nav-link,
    .project-cases-show-tabs .project-tabs .nav-link {
        padding: 0.4rem 0.7rem;
        font-size: 0.76rem;
        white-space: nowrap;
    }

    .project-cases-show-tabs.is-scrollable-hint .project-tabs-scroll.is-scrollable-right::after,
    .project-cases-show-tabs .project-tabs-scroll.is-scrollable::after {
        opacity: 1;
    }
}

@media (max-width: 575.98px) {
    .project-cases-show-tabs .project-tabs .nav-link i {
        font-size: 0.7rem;
    }
}

.project-cases-kpi {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.project-cases-kpi__card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 0.9rem 1rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.project-cases-kpi__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.35rem;
    margin-bottom: 0.55rem;
}
.project-cases-kpi__icon {
    width: 2rem;
    height: 2rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff4e8;
    color: var(--brand-accent);
    font-size: 0.85rem;
}
.project-cases-kpi__card.is-red .project-cases-kpi__icon { background: #fee2e2; color: #dc2626; }
.project-cases-kpi__card.is-orange .project-cases-kpi__icon { background: #ffedd5; color: #ea580c; }
.project-cases-kpi__card.is-green .project-cases-kpi__icon { background: #dcfce7; color: #16a34a; }
.project-cases-kpi__card.is-purple .project-cases-kpi__icon { background: #f3e8ff; color: #9333ea; }
.project-cases-kpi__card.is-teal .project-cases-kpi__icon { background: #ccfbf1; color: #0d9488; }
.project-cases-kpi__card.is-violet .project-cases-kpi__icon { background: #ede9fe; color: #7c3aed; }
.project-cases-kpi__card.is-brand .project-cases-kpi__icon { background: #fff4e8; color: var(--brand-accent); }
.project-cases-kpi__card.is-navy .project-cases-kpi__icon { background: #e8eef5; color: var(--brand-primary, #0f3356); }
.project-cases-kpi__card.is-blue .project-cases-kpi__icon { background: #dbeafe; color: #2563eb; }
.project-cases-kpi__trend {
    font-size: 0.68rem;
    font-weight: 700;
    white-space: nowrap;
}
.project-cases-kpi__trend.is-up { color: #16a34a; }
.project-cases-kpi__trend.is-down { color: #dc2626; }
.project-cases-kpi__trend.is-warn { color: #ea580c; }
.project-cases-kpi__card.is-critical .project-cases-kpi__value,
.project-cases-kpi__card.is-red .project-cases-kpi__value { color: #dc2626; }
.project-cases-kpi__value {
    font-size: 1.35rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.2;
}
.project-cases-kpi__label {
    margin-top: 0.25rem;
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 600;
}
.project-cases-toolbar { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.project-cases-table-card {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
}
.project-cases-table thead th {
    background: #f8fafc;
    color: #64748b;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-bottom-color: #e2e8f0;
}
.project-cases-case-id {
    color: #dc2626;
    font-weight: 700;
    text-decoration: none;
}
.project-cases-case-id.is-lg { font-size: 1rem; }
.project-cases-case-title {
    color: #0f172a;
    font-weight: 600;
    text-decoration: none;
}
.project-cases-case-title:hover { color: var(--brand-accent); }
.project-cases-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: #e2e8f0;
    color: #334155;
}
.project-cases-badge.is-critical,
.project-cases-badge.is-high { background: #fee2e2; color: #b91c1c; }
.project-cases-badge.is-medium { background: #ffedd5; color: #c2410c; }
.project-cases-badge.is-low { background: #e2e8f0; color: #475569; }
.project-cases-status-pill {
    display: inline-flex;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: #fde8d4;
    color: var(--brand-secondary);
}
.project-cases-status-pill.is-pending,
.project-cases-status-pill.is-identified,
.project-cases-status-pill.is-investigating { background: #fef3c7; color: #b45309; }
.project-cases-status-pill.is-planned,
.project-cases-status-pill.is-planning { background: #e0e7ff; color: #4338ca; }
.project-cases-status-pill.is-in_progress { background: #e8f1ff; color: #2563eb; }
.project-cases-status-pill.is-rejected { background: #fee2e2; color: #b91c1c; }
.project-cases-status-pill.is-completed,
.project-cases-status-pill.is-closed,
.project-cases-status-pill.is-approved { background: #dcfce7; color: #15803d; }
.project-cases-show__top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}
.project-cases-back {
    color: var(--brand-accent);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
}
.project-cases-show__actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.project-cases-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(240px, 0.75fr);
    gap: 1.25rem;
    padding: 1.35rem 1.4rem;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    margin-bottom: 1rem;
    background:
        linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border-top: 3px solid var(--brand-accent);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.project-cases-hero__id-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-bottom: 0.55rem;
}
.project-cases-hero__title {
    font-size: clamp(1.35rem, 2vw, 1.7rem);
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 0.45rem;
    line-height: 1.25;
    letter-spacing: -0.02em;
}
.project-cases-hero__location {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.4rem;
    color: #64748b;
    margin: 0 0 1rem;
    font-size: 0.9rem;
    line-height: 1.4;
}
.project-cases-hero__location i {
    margin-top: 0.15rem;
    color: var(--brand-accent);
}
.project-cases-hero__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 0.95rem;
}
.project-cases-hero__stat {
    display: grid;
    gap: 0.2rem;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    border: 1px solid #eef2f7;
    background: #fff;
}
.project-cases-hero__stat > span {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #64748b;
}
.project-cases-hero__stat > strong {
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.2;
}
.project-cases-hero__stat.is-cost {
    background: linear-gradient(180deg, #fff8f1 0%, #fff4e8 100%);
    border-color: #fde8d4;
}
.project-cases-hero__stat.is-cost > strong { color: var(--brand-accent); }
.project-cases-hero__stat.is-delay {
    background: linear-gradient(180deg, #fff5f5 0%, #fee2e2 100%);
    border-color: #fecaca;
}
.project-cases-hero__stat.is-delay > strong { color: #b91c1c; }
.project-cases-hero__stat.is-due {
    background: #f8fafc;
}
.project-cases-meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
}
.project-cases-meta__item {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.65rem 0.7rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #eef2f7;
    min-width: 0;
}
.project-cases-meta__icon {
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: #e8eef5;
    color: var(--brand-primary, #0f3356);
    font-size: 0.78rem;
}
.project-cases-meta__item > div {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}
.project-cases-meta__label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #94a3b8;
    margin: 0;
}
.project-cases-meta__item strong {
    font-size: 0.88rem;
    color: #0f172a;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
}
.project-cases-hero__aside {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 0;
}
.project-cases-hero__media {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    background: #e2e8f0;
    min-height: 170px;
    flex: 1;
    border: 1px solid #e2e8f0;
}
.project-cases-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    min-height: 170px;
}
.project-cases-hero__media-badge {
    position: absolute;
    left: 0.6rem;
    bottom: 0.6rem;
    background: rgba(15, 23, 42, 0.78);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 650;
    padding: 0.35rem 0.6rem;
    border-radius: 999px;
    backdrop-filter: blur(4px);
}
.project-cases-hero__people {
    display: grid;
    gap: 0.45rem;
}
.project-cases-hero__person {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.65rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #eef2f7;
}
.project-cases-hero__person .project-cases-avatar {
    margin-right: 0;
}
.project-cases-hero__person > div {
    display: grid;
    gap: 0.05rem;
    min-width: 0;
}
.project-cases-hero__person span {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #94a3b8;
}
.project-cases-hero__person strong {
    font-size: 0.86rem;
    color: #0f172a;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.project-cases-media-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 96px;
    background: linear-gradient(135deg, #cbd5e1, #94a3b8);
    color: rgba(255,255,255,0.85);
    font-size: 1.4rem;
}
.project-cases-media-placeholder.is-hero { min-height: 170px; }
.project-cases-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.9fr);
    gap: 1rem;
}
.project-cases-overview__main,
.project-cases-overview__aside {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.project-cases-panel {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 1rem 1.1rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.project-cases-panel__title {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
    color: #0f172a;
}
.project-cases-panel__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}
.project-cases-panel__text {
    color: #334155;
    font-size: 0.92rem;
    line-height: 1.55;
}
.project-cases-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.6rem;
    margin-top: 1rem;
}
.project-cases-gallery__item {
    border-radius: 10px;
    overflow: hidden;
    background: #e2e8f0;
    aspect-ratio: 4 / 3;
    position: relative;
}
.project-cases-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.project-cases-gallery__caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0.25rem 0.4rem;
    background: rgba(15,23,42,0.65);
    color: #fff;
    font-size: 0.68rem;
}
.project-cases-solution__gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 0.65rem;
}
.project-cases-solution__thumb {
    display: block;
    border-radius: 10px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #e2e8f0;
    border: 1px solid #e2e8f0;
}
.project-cases-solution__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.project-cases-solution__body {
    color: #334155;
    font-size: 0.92rem;
    line-height: 1.55;
}
.project-cases-solution__form .rich-text-editor-field {
    margin-bottom: 0.35rem;
}
.project-cases-analysis-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    align-items: stretch;
}
.project-cases-analysis-grid > .project-cases-info-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}
.project-cases-analysis-grid > .is-cause {
    border-top: 3px solid #ea580c;
}
.project-cases-analysis-grid > .is-impact {
    border-top: 3px solid #dc2626;
}
.project-cases-analysis-grid > .is-resolution {
    border-top: 3px solid #0d9488;
}
.project-cases-info-card {
    border: 1px solid #e2e8f0;
    background: #fff;
}
.project-cases-info-card__head {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-bottom: 0.85rem;
}
.project-cases-info-card__icon {
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.9rem;
}
.project-cases-info-card__icon.is-navy { background: #e8eef5; color: var(--brand-primary, #0f3356); }
.project-cases-info-card__icon.is-orange { background: #ffedd5; color: #ea580c; }
.project-cases-info-card__icon.is-red { background: #fee2e2; color: #dc2626; }
.project-cases-info-card__icon.is-teal { background: #ccfbf1; color: #0d9488; }
.project-cases-info-card__icon.is-brand { background: #fff4e8; color: var(--brand-accent); }
.project-cases-info-card__meta {
    display: grid;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.85rem;
}
.project-cases-info-card__chip {
    display: grid;
    gap: 0.15rem;
    padding: 0.55rem 0.7rem;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-info-card__chip > span {
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #64748b;
}
.project-cases-info-card__chip > strong {
    font-size: 0.88rem;
    color: #0f172a;
    font-weight: 700;
    line-height: 1.35;
}
.project-cases-metric-tiles {
    display: grid;
    gap: 0.55rem;
    margin-bottom: 0.55rem;
}
.project-cases-metric-tile {
    display: grid;
    gap: 0.2rem;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    border: 1px solid transparent;
}
.project-cases-metric-tile > span {
    font-size: 0.7rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #64748b;
}
.project-cases-metric-tile > strong {
    font-size: 1.15rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.2;
}
.project-cases-metric-tile.is-cost {
    background: linear-gradient(180deg, #fff8f1 0%, #fff4e8 100%);
    border-color: #fde8d4;
}
.project-cases-metric-tile.is-cost > strong { color: var(--brand-accent); }
.project-cases-metric-tile.is-delay {
    background: linear-gradient(180deg, #fff5f5 0%, #fee2e2 100%);
    border-color: #fecaca;
}
.project-cases-metric-tile.is-delay > strong { color: #b91c1c; }
.project-cases-people-list {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 0.85rem;
}
.project-cases-people-row {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.65rem 0.7rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-people-row .project-cases-avatar {
    margin-right: 0;
    margin-top: 0.1rem;
}
.project-cases-people-row__text {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}
.project-cases-people-row__label {
    font-size: 0.68rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #64748b;
}
.project-cases-people-row__text > strong {
    font-size: 0.92rem;
    color: #0f172a;
}
.project-cases-people-row__role {
    font-size: 0.78rem;
    color: #64748b;
}
.project-cases-due-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    background: linear-gradient(180deg, #fff8f1 0%, #fff4e8 100%);
    border: 1px solid #fde8d4;
}
.project-cases-due-box > div {
    display: grid;
    gap: 0.15rem;
}
.project-cases-due-box strong {
    font-size: 0.95rem;
    color: #0f172a;
}
.project-cases-cost-card__hint {
    margin: 0.15rem 0 0.85rem;
    font-size: 0.78rem;
    color: #64748b;
}
.project-cases-cost-bars--compact {
    gap: 0.65rem;
}
.project-cases-time-rail {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.75rem;
}
.project-cases-time-rail__item {
    display: grid;
    gap: 0.2rem;
    padding: 0.65rem 0.7rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
    min-width: 0;
}
.project-cases-time-rail__item > span {
    font-size: 0.68rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #64748b;
}
.project-cases-time-rail__item > strong {
    font-size: 0.88rem;
    color: #0f172a;
}
.project-cases-time-rail__item.is-new {
    background: linear-gradient(180deg, #fff5f5 0%, #fee2e2 100%);
    border-color: #fecaca;
}
.project-cases-time-rail__item.is-new > strong { color: #b91c1c; }
.project-cases-time-rail__arrow {
    color: #94a3b8;
    font-size: 0.85rem;
}
.project-cases-time-card__delay {
    width: 100%;
}
.project-cases-update {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    padding: 0.85rem 0.9rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-update .project-cases-avatar {
    margin-right: 0;
}
.project-cases-avatar.is-lg {
    width: 2.35rem;
    height: 2.35rem;
    font-size: 0.85rem;
}
.project-cases-update__body {
    min-width: 0;
    flex: 1;
}
.project-cases-update__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.65rem;
    margin-bottom: 0.25rem;
}
.project-cases-update__meta strong {
    font-size: 0.92rem;
    color: #0f172a;
}
.project-cases-update__meta span {
    font-size: 0.78rem;
    color: #64748b;
}
.project-cases-update__text {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #334155;
}
.project-cases-dl {
    margin: 0;
    display: grid;
    gap: 0.65rem;
}
.project-cases-dl > div {
    display: grid;
    gap: 0.15rem;
}
.project-cases-dl dt {
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 600;
    margin: 0;
}
.project-cases-dl dd {
    margin: 0;
    color: #0f172a;
    font-size: 0.9rem;
}
.project-cases-dl dd.is-emphasis { font-weight: 700; }
.project-cases-dl dd.is-danger { color: #dc2626; font-weight: 700; }
.project-cases-details {
    display: grid;
    gap: 1rem;
}
.project-cases-details__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.9fr);
    gap: 1rem;
    align-items: start;
}
.project-cases-details__side {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.project-cases-details > .is-cause,
.project-cases-details__grid > .is-cause {
    border-top: 3px solid #ea580c;
}
.project-cases-details__side > .is-resolution {
    border-top: 3px solid #0d9488;
}
.project-cases-details__spotlight {
    display: grid;
    gap: 0.25rem;
    padding: 0.85rem 0.95rem;
    margin-bottom: 0.85rem;
    border-radius: 12px;
    background: linear-gradient(180deg, #fff8f1 0%, #fff4e8 100%);
    border: 1px solid #fde8d4;
}
.project-cases-details__spotlight > span {
    font-size: 0.68rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #9a3412;
}
.project-cases-details__spotlight > strong {
    font-size: 1.05rem;
    color: #0f172a;
    line-height: 1.35;
}
.project-cases-details__blocks {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 0.85rem;
}
.project-cases-details__block,
.project-cases-details__risk {
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-details__block-head {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #64748b;
}
.project-cases-details__block-head i {
    font-size: 0.78rem;
    color: var(--brand-accent);
}
.project-cases-details__block p,
.project-cases-details__risk p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #334155;
}
.project-cases-details__risks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}
.project-cases-details__risk.is-immediate {
    background: linear-gradient(180deg, #fff5f5 0%, #fee2e2 100%);
    border-color: #fecaca;
}
.project-cases-details__risk.is-immediate .project-cases-details__block-head,
.project-cases-details__risk.is-immediate .project-cases-details__block-head i {
    color: #b91c1c;
}
.project-cases-details__risk.is-longterm {
    background: linear-gradient(180deg, #f8fafc 0%, #eef2ff 100%);
    border-color: #e0e7ff;
}
.project-cases-details__risk.is-longterm .project-cases-details__block-head,
.project-cases-details__risk.is-longterm .project-cases-details__block-head i {
    color: #4338ca;
}
.project-cases-details__meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}
.project-cases-details__meta-grid .project-cases-info-card__chip > em {
    font-style: normal;
    font-size: 0.78rem;
    margin-top: 0.15rem;
}
.project-cases-costs-tab__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(260px, 0.85fr);
    gap: 1rem;
    align-items: start;
}
.project-cases-costs-tab .project-cases-cost-card {
    border-top: 3px solid var(--brand-accent);
}
.project-cases-costs-tab .project-cases-time-card {
    border-top: 3px solid #0d9488;
}
.project-cases-costs-add {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
}
.project-cases-costs-add__fields {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(140px, 0.8fr) auto;
    gap: 0.75rem;
    align-items: end;
}
.project-cases-costs-add__amount-input {
    display: flex;
    align-items: stretch;
    border: 1px solid #cbd5e1;
    border-radius: 0.5rem;
    overflow: hidden;
    background: #fff;
}
.project-cases-costs-add__amount-input > span {
    display: inline-flex;
    align-items: center;
    padding: 0 0.75rem;
    background: #f8fafc;
    color: #64748b;
    font-weight: 700;
    border-right: 1px solid #e2e8f0;
}
.project-cases-costs-add__amount-input .form-control {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.project-cases-costs-add__amount-input .form-control:focus {
    box-shadow: none;
}
.project-cases-costs-add__action .btn {
    white-space: nowrap;
    min-height: 2.5rem;
}
.project-cases-costs-add__menu {
    z-index: 1080;
}
.project-cases-time-rail--stack {
    grid-template-columns: 1fr;
    justify-items: stretch;
}
.project-cases-time-rail--stack .project-cases-time-rail__arrow {
    justify-self: center;
}
@media (max-width: 991.98px) {
    .project-cases-costs-tab__grid { grid-template-columns: 1fr; }
    .project-cases-details__grid { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
    .project-cases-costs-add__fields {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .project-cases-costs-add__action .btn {
        width: 100%;
    }
}
@media (max-width: 575.98px) {
    .project-cases-details__risks,
    .project-cases-details__meta-grid { grid-template-columns: 1fr; }
}
.project-cases-resources-tab {
    border-top: 3px solid var(--brand-primary, #0f3356);
}
.project-cases-resources-tab .project-cases-info-card__head {
    align-items: center;
}
.project-cases-resources-tab__hint {
    margin-top: 0.2rem;
    font-size: 0.8rem;
    color: #64748b;
}
.project-cases-resources-tab__count {
    margin-left: auto;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.55rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8eef5;
    color: var(--brand-primary, #0f3356);
    font-size: 0.85rem;
    font-weight: 700;
}
.project-cases-resources-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}
.project-cases-resource-card {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 0.95rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-resource-card__icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.95rem;
}
.project-cases-resource-card.is-orange .project-cases-resource-card__icon {
    background: #ffedd5;
    color: #ea580c;
}
.project-cases-resource-card.is-navy .project-cases-resource-card__icon {
    background: #e8eef5;
    color: var(--brand-primary, #0f3356);
}
.project-cases-resource-card.is-teal .project-cases-resource-card__icon {
    background: #ccfbf1;
    color: #0d9488;
}
.project-cases-resource-card.is-brand .project-cases-resource-card__icon {
    background: #fff4e8;
    color: var(--brand-accent);
}
.project-cases-resource-card__body {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}
.project-cases-resource-card__body strong {
    font-size: 0.95rem;
    color: #0f172a;
    line-height: 1.35;
}
.project-cases-resource-card__body span {
    font-size: 0.78rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #64748b;
}
.project-cases-resources-empty {
    grid-column: 1 / -1;
    display: grid;
    justify-items: center;
    gap: 0.4rem;
    padding: 1.5rem 1rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    color: #64748b;
    text-align: center;
}
.project-cases-resources-empty i {
    font-size: 1.4rem;
    color: #94a3b8;
}
.project-cases-resources-empty p {
    margin: 0;
    font-size: 0.9rem;
}
.project-cases-resources-add {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
}
.project-cases-resources-add__fields {
    display: grid;
    grid-template-columns: minmax(180px, 0.85fr) minmax(0, 1.35fr) auto;
    gap: 0.75rem;
    align-items: end;
}
.project-cases-resources-add__action .btn {
    white-space: nowrap;
    min-height: 2.5rem;
}
.project-cases-resources-add__menu {
    z-index: 1080;
}
@media (max-width: 767.98px) {
    .project-cases-resources-grid { grid-template-columns: 1fr; }
    .project-cases-resources-add__fields {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
    .project-cases-resources-add__action .btn { width: 100%; }
}
.project-cases-tasks-tab {
    border-top: 3px solid var(--brand-primary, #0f3356);
}
.project-cases-tasks-tab__hint {
    margin-top: 0.2rem;
    font-size: 0.8rem;
    color: #64748b;
}
.project-cases-tasks-table-wrap {
    border: 1px solid #eef2f7;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}
.project-cases-tasks-table {
    margin-bottom: 0;
}
.project-cases-tasks-table thead th {
    background: #f8fafc;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #64748b;
    font-weight: 700;
    border-bottom-color: #e2e8f0;
    white-space: nowrap;
}
.project-cases-tasks-table tbody td {
    vertical-align: middle;
    font-size: 0.9rem;
}
.project-cases-task-name {
    font-weight: 650;
    color: #0f172a;
    line-height: 1.35;
}
.project-cases-task-date {
    color: #475569;
    white-space: nowrap;
}
.project-cases-tasks-table .project-cases-avatar {
    margin-right: 0;
}
.project-cases-task-assignee {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.project-cases-task-assignee__avatar {
    position: relative;
    cursor: default;
}
.project-cases-task-assignee__avatar::after {
    content: attr(data-assignee-tip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 0.4rem);
    transform: translateX(-50%) translateY(0.15rem);
    padding: 0.28rem 0.55rem;
    border-radius: 6px;
    background: #0f172a;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.12s ease, transform 0.12s ease;
    z-index: 5;
}
.project-cases-task-assignee__avatar:hover::after,
.project-cases-task-assignee__avatar:focus-visible::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.project-cases-task-assignee__empty {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #94a3b8;
    font-size: 0.7rem;
}
.project-cases-task-assignee__edit {
    width: 1.55rem;
    height: 1.55rem;
    border-radius: 999px;
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    padding: 0;
    line-height: 1;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}
.project-cases-task-assignee__edit:hover,
.project-cases-task-assignee__edit:focus-visible {
    background: #fff4e8;
    border-color: #fde8d4;
    color: var(--brand-accent);
}
.project-cases-task-member-picker__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}
.project-cases-task-member-chip {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    cursor: pointer;
    margin: 0;
}
.project-cases-task-member-chip__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.project-cases-task-member-chip:has(.project-cases-task-member-chip__input:checked) {
    border-color: var(--brand-accent);
    background: #fff4e8;
}
.project-cases-task-member-chip:has(.project-cases-task-member-chip__input:disabled) {
    opacity: 0.45;
    cursor: not-allowed;
}
.project-cases-task-member-chip__name {
    font-size: 0.85rem;
    font-weight: 600;
    color: #0f172a;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@media (max-width: 575.98px) {
    .project-cases-task-member-picker__grid {
        grid-template-columns: 1fr;
    }
}
.project-cases-tasks-add {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
}
.project-cases-tasks-add__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(180px, 1fr) minmax(140px, 0.7fr) minmax(150px, 0.8fr);
    gap: 0.75rem;
    align-items: end;
}
.project-cases-tasks-add__share {
    margin-top: 1rem;
}
.project-cases-tasks-add__share-help {
    margin: 0 0 0.75rem;
    font-size: 0.8rem;
    color: #64748b;
}
.project-cases-tasks-add__actions {
    margin-top: 1rem;
}
.project-cases-tasks-add__menu {
    z-index: 1080;
}
@media (max-width: 991.98px) {
    .project-cases-tasks-add__grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 575.98px) {
    .project-cases-tasks-add__grid {
        grid-template-columns: 1fr;
    }
    .project-cases-tasks-add__actions .btn {
        width: 100%;
    }
}
.project-cases-documents-tab {
    border-top: 3px solid var(--brand-primary, #0f3356);
}
.project-cases-documents-tab__hint {
    margin-top: 0.2rem;
    font-size: 0.8rem;
    color: #64748b;
}
.project-cases-documents-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}
.project-cases-document-card {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 0.95rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-document-card__icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.95rem;
}
.project-cases-document-card.is-orange .project-cases-document-card__icon {
    background: #ffedd5;
    color: #ea580c;
}
.project-cases-document-card.is-navy .project-cases-document-card__icon {
    background: #e8eef5;
    color: var(--brand-primary, #0f3356);
}
.project-cases-document-card.is-teal .project-cases-document-card__icon {
    background: #ccfbf1;
    color: #0d9488;
}
.project-cases-document-card.is-brand .project-cases-document-card__icon {
    background: #fff4e8;
    color: var(--brand-accent);
}
.project-cases-document-card__body {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
    flex: 1;
}
.project-cases-document-card__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.35;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
a.project-cases-document-card__title:hover {
    color: var(--brand-accent);
}
.project-cases-document-card__type {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #64748b;
}
.project-cases-document-card__action {
    width: 2rem;
    height: 2rem;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    background: #fff;
    border: 1px solid #e2e8f0;
    flex-shrink: 0;
    text-decoration: none;
}
.project-cases-document-card__action:hover {
    color: var(--brand-accent);
    border-color: #fde8d4;
    background: #fff4e8;
}
.project-cases-documents-empty {
    grid-column: 1 / -1;
    display: grid;
    justify-items: center;
    gap: 0.4rem;
    padding: 1.5rem 1rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    color: #64748b;
    text-align: center;
}
.project-cases-documents-empty i {
    font-size: 1.4rem;
    color: #94a3b8;
}
.project-cases-documents-empty p {
    margin: 0;
    font-size: 0.9rem;
}
.project-cases-documents-add {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
    display: grid;
    gap: 0.85rem;
}
.project-cases-documents-add__type {
    max-width: 320px;
}
.project-cases-documents-add__menu {
    z-index: 1080;
}
.project-cases-documents-add__actions .btn {
    min-height: 2.5rem;
}
@media (max-width: 767.98px) {
    .project-cases-documents-grid { grid-template-columns: 1fr; }
    .project-cases-documents-add__type { max-width: none; }
    .project-cases-documents-add__actions .btn { width: 100%; }
}
.project-cases-approvals-tab {
    border-top: 3px solid #0d9488;
}
.project-cases-approvals-tab__hint {
    margin-top: 0.2rem;
    font-size: 0.8rem;
    color: #64748b;
}
.project-cases-approvals-tab__stats {
    margin-left: auto;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}
.project-cases-approvals-stat {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
}
.project-cases-approvals-stat.is-pending {
    background: #fef3c7;
    color: #b45309;
}
.project-cases-approvals-stat.is-approved {
    background: #dcfce7;
    color: #15803d;
}
.project-cases-approvals-progress {
    margin: 0 0 1rem;
    display: grid;
    gap: 0.4rem;
}
.project-cases-approvals-progress__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.78rem;
    color: #64748b;
    font-weight: 600;
}
.project-cases-approvals-progress__meta strong {
    color: #0d9488;
}
.project-cases-approvals-progress__track {
    height: 8px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}
.project-cases-approvals-progress__track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #0d9488, #14b8a6);
}
.project-cases-approvals-list {
    display: grid;
    gap: 0.65rem;
}
.project-cases-approval-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 0.95rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-approval-card.is-approved {
    background: linear-gradient(180deg, #f0fdf4 0%, #ecfdf5 100%);
    border-color: #bbf7d0;
}
.project-cases-approval-card.is-pending {
    border-left: 3px solid #f59e0b;
}
.project-cases-approval-card.is-approved {
    border-left: 3px solid #16a34a;
}
.project-cases-approval-card__icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.95rem;
    background: #fef3c7;
    color: #b45309;
}
.project-cases-approval-card.is-approved .project-cases-approval-card__icon {
    background: #dcfce7;
    color: #15803d;
}
.project-cases-approval-card.is-rejected .project-cases-approval-card__icon {
    background: #fee2e2;
    color: #b91c1c;
}
.project-cases-approval-card__body {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    min-width: 0;
    flex: 1;
}
.project-cases-approval-card__body strong {
    font-size: 0.95rem;
    color: #0f172a;
}
.project-cases-approvals-empty {
    display: grid;
    justify-items: center;
    gap: 0.4rem;
    padding: 1.5rem 1rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    color: #64748b;
    text-align: center;
}
.project-cases-approvals-empty i {
    font-size: 1.4rem;
    color: #94a3b8;
}
.project-cases-approvals-empty p {
    margin: 0;
    font-size: 0.9rem;
}
.project-cases-approvals-actions {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
}
.project-cases-approvals-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.85rem 0.95rem;
    border-radius: 12px;
    font-size: 0.9rem;
}
.project-cases-approvals-banner i {
    margin-top: 0.15rem;
}
.project-cases-approvals-banner > div {
    display: grid;
    gap: 0.15rem;
}
.project-cases-approvals-banner strong {
    font-weight: 700;
}
.project-cases-approvals-banner span {
    font-size: 0.8rem;
    font-weight: 500;
    opacity: 0.85;
}
.project-cases-approvals-banner.is-done {
    background: linear-gradient(180deg, #f0fdf4 0%, #dcfce7 100%);
    border: 1px solid #bbf7d0;
    color: #15803d;
}
.project-cases-timeline-tab {
    border-top: 3px solid var(--brand-primary, #0f3356);
}
.project-cases-timeline-tab__hint {
    margin-top: 0.2rem;
    font-size: 0.8rem;
    color: #64748b;
}
.project-cases-timeline-feed {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0;
}
.project-cases-timeline-feed__item {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 0.85rem;
    position: relative;
}
.project-cases-timeline-feed__item:not(:last-child) .project-cases-timeline-feed__rail::after {
    content: '';
    position: absolute;
    top: 2.4rem;
    bottom: -0.15rem;
    left: 50%;
    width: 2px;
    transform: translateX(-50%);
    background: #e2e8f0;
}
.project-cases-timeline-feed__rail {
    position: relative;
    display: flex;
    justify-content: center;
    padding-top: 0.15rem;
}
.project-cases-timeline-feed__dot {
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.82rem;
    background: #e8eef5;
    color: var(--brand-primary, #0f3356);
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px #e2e8f0;
    z-index: 1;
}
.project-cases-timeline-feed__item.is-brand .project-cases-timeline-feed__dot {
    background: #fff4e8;
    color: var(--brand-accent);
}
.project-cases-timeline-feed__item.is-orange .project-cases-timeline-feed__dot {
    background: #ffedd5;
    color: #ea580c;
}
.project-cases-timeline-feed__item.is-teal .project-cases-timeline-feed__dot {
    background: #ccfbf1;
    color: #0d9488;
}
.project-cases-timeline-feed__item.is-navy .project-cases-timeline-feed__dot {
    background: #e8eef5;
    color: var(--brand-primary, #0f3356);
}
.project-cases-timeline-feed__card {
    padding: 0.75rem 0.9rem 1rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
    margin-bottom: 0.75rem;
}
.project-cases-timeline-feed__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.65rem;
    margin-bottom: 0.35rem;
}
.project-cases-timeline-feed__meta time {
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
}
.project-cases-timeline-feed__type {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #94a3b8;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #e2e8f0;
}
.project-cases-timeline-feed__title {
    display: block;
    font-size: 0.95rem;
    color: #0f172a;
    line-height: 1.35;
}
.project-cases-timeline-feed__body {
    margin: 0.35rem 0 0;
    font-size: 0.88rem;
    line-height: 1.5;
    color: #475569;
}
.project-cases-timeline-empty {
    display: grid;
    justify-items: center;
    gap: 0.4rem;
    padding: 1.5rem 1rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    color: #64748b;
    text-align: center;
    list-style: none;
}
.project-cases-timeline-empty i {
    font-size: 1.4rem;
    color: #94a3b8;
}
.project-cases-timeline-empty p {
    margin: 0;
    font-size: 0.9rem;
}
.project-cases-timeline-add {
    margin-top: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
}
.project-cases-timeline-add__grid {
    display: grid;
    grid-template-columns: minmax(160px, 0.8fr) minmax(140px, 0.7fr) minmax(0, 1.1fr) minmax(0, 1.2fr);
    gap: 0.75rem;
    align-items: end;
}
.project-cases-timeline-add__menu {
    z-index: 1080;
}
.project-cases-timeline-add__actions {
    margin-top: 0.85rem;
}
.project-cases-timeline-add__actions .btn {
    min-height: 2.5rem;
}
@media (max-width: 991.98px) {
    .project-cases-timeline-add__grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 575.98px) {
    .project-cases-timeline-add__grid {
        grid-template-columns: 1fr;
    }
    .project-cases-timeline-add__actions .btn {
        width: 100%;
    }
}
.project-cases-lessons-tab {
    border-top: 3px solid var(--brand-accent);
}
.project-cases-lessons-tab__hint {
    margin-top: 0.2rem;
    font-size: 0.8rem;
    color: #64748b;
}
.project-cases-lessons-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.project-cases-lessons-block--full {
    grid-column: 1 / -1;
}
.project-cases-lessons-form .rich-text-editor-field {
    margin-bottom: 0;
}
.project-cases-lessons-form .rich-text-editor__surface {
    min-height: 120px;
}
.project-cases-lessons-meta {
    display: grid;
    grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1.3fr);
    gap: 0.85rem;
    margin-top: 1rem;
    align-items: end;
}
.project-cases-lessons-form__menu {
    z-index: 1080;
}
.project-cases-lessons-ai {
    margin-top: 1rem;
    padding: 0.85rem 0.95rem;
    border-radius: 12px;
    background: linear-gradient(180deg, #fff8f1 0%, #fff4e8 100%);
    border: 1px solid #fde8d4;
}
.project-cases-lessons-ai__head {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.35rem;
    color: var(--brand-accent);
}
.project-cases-lessons-ai__head strong {
    font-size: 0.85rem;
}
.project-cases-lessons-ai p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #334155;
}
.project-cases-lessons-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
}
.project-cases-lessons-readonly {
    display: grid;
    gap: 0.85rem;
}
.project-cases-lessons-readonly__card {
    padding: 0.85rem 0.95rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-lessons-readonly__card h4 {
    margin: 0 0 0.45rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #64748b;
}
.project-cases-lessons-readonly__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}
.project-cases-lessons-readonly__meta > div {
    display: grid;
    gap: 0.2rem;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-lessons-readonly__meta span {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #64748b;
}
.project-cases-lessons-readonly__meta strong {
    font-size: 0.95rem;
    color: #0f172a;
}
@media (max-width: 991.98px) {
    .project-cases-lessons-grid,
    .project-cases-lessons-meta,
    .project-cases-lessons-readonly__meta {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 575.98px) {
    .project-cases-lessons-actions .btn {
        width: 100%;
    }
}
.project-cases-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    background: #fde8d4;
    color: var(--brand-secondary);
    font-size: 0.68rem;
    font-weight: 700;
    margin-right: 0.35rem;
}
.project-cases-map-placeholder {
    height: 120px;
    border-radius: 10px;
    background: linear-gradient(135deg, #fde8d4, #f5c89a);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--brand-secondary);
    font-size: 1.6rem;
    margin-bottom: 0.75rem;
}
.project-cases-stepper {
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 0.25rem;
    padding: 0;
    margin: 0;
}
.project-cases-stepper__step {
    flex: 1;
    text-align: center;
    position: relative;
}
.project-cases-stepper__dot {
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    border: 2px solid #cbd5e1;
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    margin-bottom: 0.35rem;
}
.project-cases-stepper__step.is-done .project-cases-stepper__dot {
    background: #16a34a;
    border-color: #16a34a;
    color: #fff;
}
.project-cases-stepper__step.is-current .project-cases-stepper__dot {
    border-color: var(--brand-accent);
    background: var(--brand-accent);
    box-shadow: 0 0 0 4px rgba(230, 126, 34, 0.2);
}
.project-cases-stepper__label {
    display: block;
    font-size: 0.68rem;
    color: #64748b;
    font-weight: 600;
}
.project-cases-stepper__step.is-current .project-cases-stepper__label { color: var(--brand-accent); }
.project-cases-days-left {
    color: #dc2626;
    font-size: 0.8rem;
    font-weight: 700;
}
.project-cases-cost-total {
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--brand-accent);
    letter-spacing: -0.02em;
    line-height: 1.15;
}
.project-cases-cost-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.project-cases-cost-list li {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.4rem 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.88rem;
}
.project-cases-share-row { display: flex; gap: 0.25rem; }
.project-cases-timeline {
    list-style: none;
    padding: 0;
    margin: 0;
}
.project-cases-timeline__item {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid #f1f5f9;
}
.project-cases-timeline__date {
    font-size: 0.8rem;
    color: #64748b;
    font-weight: 600;
}
@media (max-width: 1199.98px) {
    .project-cases-kpi { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .project-cases-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .project-cases-hero__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .project-cases-analysis-grid { grid-template-columns: 1fr; }
}
@media (max-width: 991.98px) {
    .project-cases-hero { grid-template-columns: 1fr; }
    .project-cases-hero__aside {
        display: grid;
        grid-template-columns: minmax(0, 1.1fr) minmax(200px, 0.9fr);
        align-items: stretch;
    }
    .project-cases-overview { grid-template-columns: 1fr; }
    .project-cases-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .project-cases-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .project-cases-meta { grid-template-columns: 1fr; }
    .project-cases-hero__stats { grid-template-columns: 1fr; }
    .project-cases-hero__aside { grid-template-columns: 1fr; }
    .project-cases-timeline__item { grid-template-columns: 1fr; }
    .project-cases-time-rail {
        grid-template-columns: 1fr;
        justify-items: stretch;
    }
    .project-cases-time-rail__arrow {
        display: none;
    }
}

/* Project Cases dashboard layout (mockup) */
.project-cases-dash-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 1rem;
    align-items: start;
}
.project-cases-dash-main {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}
.project-cases-dash-aside {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.project-cases-charts {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 1rem;
}
.project-cases-chart-card { min-height: 240px; }
.project-cases-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: 0.72rem;
    font-weight: 700;
}
.project-cases-donut-wrap {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
}
.project-cases-donut {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    display: grid;
    place-items: center;
}
.project-cases-donut__hole {
    width: 86px;
    height: 86px;
    border-radius: 50%;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.project-cases-donut__hole strong {
    font-size: 1.35rem;
    color: #0f172a;
    line-height: 1;
}
.project-cases-donut__hole span {
    font-size: 0.65rem;
    color: #64748b;
    font-weight: 600;
    margin-top: 0.2rem;
}
.project-cases-donut-legend {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}
.project-cases-donut-legend li {
    display: grid;
    grid-template-columns: 10px minmax(0, 1fr) auto;
    gap: 0.5rem;
    align-items: center;
    font-size: 0.82rem;
    color: #334155;
}
.project-cases-donut-legend__swatch {
    width: 10px;
    height: 10px;
    border-radius: 999px;
}
.project-cases-area-chart {
    position: relative;
    height: 170px;
}
.project-cases-area-chart__svg {
    width: 100%;
    height: 140px;
    display: block;
}
.project-cases-area-chart__fill {
    fill: rgba(230, 126, 34, 0.18);
}
.project-cases-area-chart__line {
    stroke: var(--brand-accent);
    stroke-width: 1.8;
    vector-effect: non-scaling-stroke;
}
.project-cases-area-chart__labels {
    display: flex;
    justify-content: space-between;
    font-size: 0.72rem;
    color: #64748b;
    font-weight: 600;
    margin-top: 0.25rem;
}
.project-cases-area-chart__peak {
    position: absolute;
    top: 0.35rem;
    right: 0.5rem;
    background: var(--brand-accent);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
}
.project-cases-quick-actions {
    display: grid;
    gap: 0.5rem;
}
.project-cases-deadlines-panel .project-cases-panel__title {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}
.project-cases-deadlines-panel__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    border-radius: 8px;
    background: #fff4e8;
    color: var(--brand-accent);
    font-size: 0.75rem;
    flex-shrink: 0;
}
.project-cases-deadlines {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}
.project-cases-deadlines__item {
    margin: 0;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.project-cases-deadlines__item:hover {
    background: #fff;
    border-color: #f5c89a;
    transform: translateY(-1px);
}
.project-cases-deadlines__item.is-critical {
    background: linear-gradient(90deg, rgba(239, 68, 68, 0.08), #f8fafc 14px);
    border-color: #fecaca;
}
.project-cases-deadlines__item.is-warn {
    background: linear-gradient(90deg, rgba(230, 126, 34, 0.1), #f8fafc 14px);
    border-color: #fde0c4;
}
.project-cases-deadlines__item.is-ok {
    background: linear-gradient(90deg, rgba(15, 51, 86, 0.08), #f8fafc 14px);
}
.project-cases-deadlines__link {
    display: grid;
    grid-template-columns: 2.6rem minmax(0, 1fr) auto;
    gap: 0.55rem;
    align-items: center;
    padding: 0.55rem 0.6rem;
    text-decoration: none;
    color: inherit;
}
.project-cases-deadlines__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    min-height: 2.6rem;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #e2e8f0;
    line-height: 1.05;
    box-shadow: 0 1px 1px rgba(15, 23, 42, 0.04);
}
.project-cases-deadlines__item.is-critical .project-cases-deadlines__date {
    border-color: #fecaca;
    color: #b91c1c;
}
.project-cases-deadlines__item.is-warn .project-cases-deadlines__date {
    border-color: #f5c89a;
    color: var(--brand-accent);
}
.project-cases-deadlines__item.is-ok .project-cases-deadlines__date {
    border-color: #cbd5e1;
    color: var(--brand-primary, #0f3356);
}
.project-cases-deadlines__date-month {
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: inherit;
    opacity: 0.85;
}
.project-cases-deadlines__date-day {
    font-size: 0.95rem;
    font-weight: 800;
    color: inherit;
}
.project-cases-deadlines__body {
    min-width: 0;
    display: grid;
    gap: 0.1rem;
}
.project-cases-deadlines__case {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #64748b;
    font-variant-numeric: tabular-nums;
}
.project-cases-deadlines__title {
    font-size: 0.82rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.project-cases-deadline-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    padding: 0.22rem 0.45rem;
    border-radius: 999px;
    font-size: 0.64rem;
    font-weight: 700;
    background: #e2e8f0;
    color: #475569;
    line-height: 1.1;
}
.project-cases-deadline-pill.is-critical { background: #fee2e2; color: #b91c1c; }
.project-cases-deadline-pill.is-warn { background: #ffedd5; color: #c2410c; }
.project-cases-deadline-pill.is-ok { background: #e8eef5; color: var(--brand-primary, #0f3356); }
.project-cases-deadlines__empty {
    display: grid;
    justify-items: center;
    gap: 0.35rem;
    text-align: center;
    padding: 1.1rem 0.5rem;
    color: #64748b;
    font-size: 0.82rem;
}
.project-cases-deadlines__empty i {
    font-size: 1.15rem;
    color: #94a3b8;
}
.project-cases-deadlines-panel__footer {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.75rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-accent);
    text-decoration: none;
}
.project-cases-deadlines-panel__footer:hover {
    color: var(--brand-secondary, #c45c12);
}
.project-cases-deadlines-panel__footer i {
    font-size: 0.68rem;
    transition: transform 0.15s ease;
}
.project-cases-deadlines-panel__footer:hover i {
    transform: translateX(2px);
}

/* Cost analytics page */
.project-cases-cost-page {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}
.project-cases-cost-hero {
    display: grid;
    grid-template-columns: minmax(260px, 0.95fr) minmax(0, 1.35fr);
    gap: 0.85rem;
    align-items: stretch;
}
.project-cases-cost-hero__total {
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(230, 126, 34, 0.22), transparent 55%),
        linear-gradient(145deg, #0f3356 0%, #163f66 55%, #1a4a74 100%);
    color: #fff;
    border-radius: 16px;
    padding: 1.25rem 1.35rem;
    box-shadow: 0 10px 28px rgba(15, 51, 86, 0.18);
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 100%;
}
.project-cases-cost-hero__total-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
}
.project-cases-cost-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.9);
}
.project-cases-cost-hero__badge i {
    width: 1.55rem;
    height: 1.55rem;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.14);
    color: #f5c89a;
}
.project-cases-cost-hero__trend {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    font-size: 0.82rem;
    font-weight: 800;
    color: #f5c89a;
    line-height: 1.15;
}
.project-cases-cost-hero__trend span {
    font-size: 0.66rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.65);
}
.project-cases-cost-hero__value {
    font-size: clamp(1.8rem, 2.4vw, 2.35rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.05;
}
.project-cases-cost-hero__note {
    margin: 0;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.45;
    max-width: 28rem;
}
.project-cases-cost-hero__split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    margin-top: auto;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.project-cases-cost-hero__split div {
    display: grid;
    gap: 0.15rem;
}
.project-cases-cost-hero__split span {
    font-size: 0.68rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.62);
}
.project-cases-cost-hero__split strong {
    font-size: 1rem;
    font-weight: 700;
}
.project-cases-cost-kpi {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}
.project-cases-cost-kpi__card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 1rem 1.05rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-height: 100%;
}
.project-cases-cost-kpi__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.45rem;
}
.project-cases-cost-kpi__icon {
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    background: #f1f5f9;
    color: #475569;
}
.project-cases-cost-kpi__card.is-brand .project-cases-cost-kpi__icon { background: #fff4e8; color: var(--brand-accent); }
.project-cases-cost-kpi__card.is-orange .project-cases-cost-kpi__icon { background: #ffedd5; color: #ea580c; }
.project-cases-cost-kpi__card.is-green .project-cases-cost-kpi__icon { background: #dcfce7; color: #16a34a; }
.project-cases-cost-kpi__card.is-navy .project-cases-cost-kpi__icon { background: #e8eef5; color: var(--brand-primary, #0f3356); }
.project-cases-cost-kpi__card.is-red .project-cases-cost-kpi__icon { background: #fee2e2; color: #dc2626; }
.project-cases-cost-kpi__card.is-teal .project-cases-cost-kpi__icon { background: #ccfbf1; color: #0d9488; }
.project-cases-cost-kpi__hint {
    margin-top: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
    line-height: 1.3;
}
.project-cases-cost-kpi__hint.is-warn { color: var(--brand-accent); }
.project-cases-cost-kpi__hint.is-muted { color: #94a3b8; }
.project-cases-cost-kpi__value {
    font-size: 1.4rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.15;
    letter-spacing: -0.02em;
}
.project-cases-cost-kpi__label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
}

/* Empty state */
.project-cases-table-empty-row > td {
    padding: 0 !important;
    border-bottom: 0 !important;
    background: #fafbfc;
}
.project-cases-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.45rem;
    padding: 2.25rem 1.5rem;
}
.project-cases-empty__icon {
    width: 3rem;
    height: 3rem;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff4e8;
    color: var(--brand-accent);
    font-size: 1.15rem;
    margin-bottom: 0.35rem;
}
.project-cases-empty__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
}
.project-cases-empty__text {
    margin: 0;
    max-width: 28rem;
    font-size: 0.88rem;
    line-height: 1.5;
    color: #64748b;
}
.project-cases-empty__actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: center;
    margin-top: 0.65rem;
}
.project-cases-cost-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
}
.project-cases-cost-grid--secondary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.project-cases-area-chart--tall {
    height: 210px;
}
.project-cases-area-chart--tall .project-cases-area-chart__svg {
    height: 170px;
}
.project-cases-cost-bars {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.85rem;
}
.project-cases-cost-bars__row {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    align-items: center;
    font-size: 0.82rem;
    margin-bottom: 0.3rem;
}
.project-cases-cost-bars__label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #334155;
    font-weight: 600;
    min-width: 0;
}
.project-cases-cost-bars__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    flex-shrink: 0;
}
.project-cases-cost-bars__track {
    height: 8px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}
.project-cases-cost-bars__track span {
    display: block;
    height: 100%;
    border-radius: inherit;
}
.project-cases-cost-top-cases {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}
.project-cases-cost-top-cases__link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.55rem 0.65rem;
    border-radius: 10px;
    border: 1px solid #eef2f7;
    background: #f8fafc;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.project-cases-cost-top-cases__link:hover {
    background: #fff;
    border-color: #f5c89a;
}
.project-cases-cost-top-cases__meta {
    min-width: 0;
    display: grid;
    gap: 0.08rem;
}
.project-cases-cost-top-cases__id {
    font-size: 0.68rem;
    font-weight: 700;
    color: #64748b;
    letter-spacing: 0.02em;
}
.project-cases-cost-top-cases__title {
    font-size: 0.84rem;
    font-weight: 600;
    color: #0f172a;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.project-cases-cost-top-cases__project {
    font-size: 0.72rem;
    color: #94a3b8;
}
.project-cases-cost-top-cases__amount {
    text-align: right;
    min-width: 5.5rem;
}
.project-cases-cost-top-cases__amount strong {
    display: block;
    font-size: 0.88rem;
    color: #0f172a;
    margin-bottom: 0.25rem;
}
.project-cases-cost-top-cases__bar {
    height: 5px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}
.project-cases-cost-top-cases__bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #f0b27a, var(--brand-accent));
    border-radius: inherit;
}
.project-cases-cost-hero--delay .project-cases-cost-hero__total {
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(13, 148, 136, 0.28), transparent 55%),
        linear-gradient(145deg, #0f3356 0%, #134e5e 50%, #0d9488 100%);
}
.project-cases-cost-hero--delay .project-cases-cost-hero__badge i {
    color: #99f6e4;
}
.project-cases-cost-hero--delay .project-cases-cost-hero__trend {
    color: #99f6e4;
}
.project-cases-area-chart__line--delay {
    stroke: #0d9488;
}
.project-cases-area-chart__peak--delay {
    background: #0d9488;
}
.project-cases-impact--delay .project-cases-impact__bar span {
    background: linear-gradient(90deg, #5eead4, #0d9488);
}
.project-cases-cost-top-cases__bar--delay span {
    background: linear-gradient(90deg, #5eead4, #0d9488);
}
.project-cases-cost-hero--report .project-cases-cost-hero__total {
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(37, 99, 235, 0.28), transparent 55%),
        linear-gradient(145deg, #0f3356 0%, #1e3a5f 48%, #2563eb 100%);
}
.project-cases-cost-hero--report .project-cases-cost-hero__badge i {
    color: #93c5fd;
}
.project-cases-cost-hero--report .project-cases-cost-hero__trend {
    color: #93c5fd;
}
.project-cases-area-chart__line--report {
    stroke: #2563eb;
}
.project-cases-area-chart__peak--report {
    background: #2563eb;
}
.project-cases-impact--report .project-cases-impact__bar span {
    background: linear-gradient(90deg, #93c5fd, #2563eb);
}
.project-cases-report-status {
    gap: 0.65rem;
}
.project-cases-report-status li {
    padding: 0.35rem 0;
    border-bottom: 1px solid #f1f5f9;
}
.project-cases-report-status li:last-child {
    border-bottom: 0;
}
.project-cases-report-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}
.project-cases-report-summary__card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 1rem 1.1rem;
    display: grid;
    gap: 0.35rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.project-cases-report-summary__label {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
}
.project-cases-report-summary__value {
    font-size: 1.25rem;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.02em;
}
.project-cases-report-summary__card.is-cost .project-cases-report-summary__value { color: var(--brand-accent); }
.project-cases-report-summary__card.is-delay .project-cases-report-summary__value { color: #0d9488; }
.project-cases-report-summary__card.is-lessons .project-cases-report-summary__value { color: #2563eb; }
@media (max-width: 900px) {
    .project-cases-report-summary { grid-template-columns: 1fr; }
}

/* AI Insights page */
.project-cases-cost-hero--ai .project-cases-cost-hero__total {
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(230, 126, 34, 0.28), transparent 55%),
        linear-gradient(145deg, #0f3356 0%, #1a3d5c 52%, #243b53 100%);
}
.project-cases-cost-hero--ai .project-cases-cost-hero__badge i {
    color: #f5c89a;
}
.project-cases-ai-confidence {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    font-size: 0.95rem;
    font-weight: 800;
    color: #f5c89a;
    line-height: 1.15;
}
.project-cases-ai-confidence span {
    font-size: 0.66rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.65);
}
.project-cases-ai-focus {
    display: grid;
    gap: 0.2rem;
}
.project-cases-ai-focus__id {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: rgba(255, 255, 255, 0.7);
}
.project-cases-ai-focus__title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}
.project-cases-ai-summary {
    font-size: 0.92rem !important;
    color: rgba(255, 255, 255, 0.86) !important;
}
.project-cases-ai-insights-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}
.project-cases-ai-insight {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 1.05rem 1.15rem;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    display: grid;
    gap: 0.55rem;
}
.project-cases-ai-insight__head {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}
.project-cases-ai-insight__icon {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8eef5;
    color: var(--brand-primary, #0f3356);
    flex-shrink: 0;
}
.project-cases-ai-insight.is-brand .project-cases-ai-insight__icon { background: #fff4e8; color: var(--brand-accent); }
.project-cases-ai-insight.is-teal .project-cases-ai-insight__icon { background: #ccfbf1; color: #0d9488; }
.project-cases-ai-insight.is-green .project-cases-ai-insight__icon { background: #dcfce7; color: #16a34a; }
.project-cases-ai-insight__title {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 700;
    color: #0f172a;
}
.project-cases-ai-insight__body {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #475569;
}
.project-cases-ai-actions {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}
.project-cases-ai-actions li {
    display: grid;
    grid-template-columns: 1.7rem minmax(0, 1fr);
    gap: 0.65rem;
    align-items: start;
    font-size: 0.9rem;
    color: #334155;
    line-height: 1.45;
}
.project-cases-ai-actions__step {
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff4e8;
    color: var(--brand-accent);
    font-size: 0.75rem;
    font-weight: 800;
}
.project-cases-ai-similar {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.55rem;
}
.project-cases-ai-similar li {
    border: 1px solid #eef2f7;
    background: #f8fafc;
    border-radius: 12px;
    padding: 0.75rem 0.85rem;
    display: grid;
    gap: 0.2rem;
}
.project-cases-ai-similar__top {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    align-items: center;
}
.project-cases-ai-similar__id {
    font-size: 0.7rem;
    font-weight: 700;
    color: #64748b;
    letter-spacing: 0.02em;
}
.project-cases-ai-similar__match {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--brand-accent);
    background: #fff4e8;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
}
.project-cases-ai-similar__project {
    font-size: 0.88rem;
    color: #0f172a;
}
.project-cases-ai-similar__problem {
    margin: 0;
    font-size: 0.82rem;
    color: #64748b;
    line-height: 1.4;
}
.project-cases-ai-similar__meta {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.25rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #0f3356;
}
@media (max-width: 900px) {
    .project-cases-ai-insights-grid { grid-template-columns: 1fr; }
}
.project-cases-ai-toolbar {
    margin-bottom: 0;
    overflow: visible;
    position: relative;
    z-index: 4;
}
.project-cases-ai-toolbar:has(.dropdown.show),
.project-cases-ai-toolbar:has(.app-form-select:focus-within) {
    z-index: 1060;
}
.project-cases-ai-toolbar__form {
    display: grid;
    gap: 0.65rem;
}
.project-cases-ai-toolbar__fields {
    display: grid;
    grid-template-columns: minmax(11rem, 18rem) auto;
    gap: 0.75rem;
    align-items: end;
}
.project-cases-ai-toolbar__field {
    min-width: 0;
}
.project-cases-ai-toolbar__select {
    max-width: 18rem;
}
.project-cases-ai-toolbar__select .app-dropdown--form .app-dropdown__toggle {
    min-height: 2.5rem;
    border-radius: 0.65rem;
    font-size: 0.875rem;
    font-weight: 600;
}
.project-cases-ai-toolbar__select .app-dropdown--form .app-dropdown__menu,
.project-cases-ai-toolbar__select .app-dropdown--form .app-dropdown__menu--portal,
.project-cases-ai-toolbar__menu.app-dropdown__menu--portal {
    min-width: 100%;
    max-width: min(22rem, calc(100vw - 2rem));
    max-height: min(16rem, calc(100dvh - 8rem));
    overflow-y: auto;
    z-index: 1300;
}
.project-cases-ai-toolbar__field .form-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
}
.project-cases-ai-toolbar__hint {
    font-size: 0.8rem;
    color: #64748b;
}
.project-cases-ai-toolbar__actions .btn {
    white-space: nowrap;
}
.project-cases-ai-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.project-cases-ai-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    background: #e8eef5;
    color: var(--brand-primary, #0f3356);
}
.project-cases-ai-tag.is-role {
    background: #fff4e8;
    color: var(--brand-accent);
}
.project-cases-ai-tag.is-code {
    background: #e8eef5;
    color: #0f3356;
}
.project-cases-ai-sources {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}
.project-cases-ai-sources li {
    display: grid;
    gap: 0.1rem;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-ai-sources strong {
    font-size: 0.84rem;
    color: #0f172a;
}
.project-cases-ai-sources span {
    font-size: 0.72rem;
    color: #64748b;
}
.project-cases-ai-similar--grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}
.project-cases-ai-loader__steps {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.35rem;
    text-align: left;
}
.project-cases-ai-loader__steps li {
    position: relative;
    padding-left: 1.1rem;
    font-size: 0.78rem;
    color: #64748b;
}
.project-cases-ai-loader__steps li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.4rem;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 999px;
    background: var(--brand-accent);
    animation: project-cases-ai-pulse 1.2s ease-in-out infinite;
}
.project-cases-ai-loader__steps li:nth-child(2)::before { animation-delay: 0.15s; }
.project-cases-ai-loader__steps li:nth-child(3)::before { animation-delay: 0.3s; }
.project-cases-ai-loader__steps li:nth-child(4)::before { animation-delay: 0.45s; }
@keyframes project-cases-ai-pulse {
    0%, 100% { opacity: 0.35; transform: scale(0.85); }
    50% { opacity: 1; transform: scale(1); }
}
@media (max-width: 900px) {
    .project-cases-ai-toolbar__fields { grid-template-columns: 1fr; }
    .project-cases-ai-toolbar__select { max-width: none; }
    .project-cases-ai-toolbar__actions .btn { width: 100%; }
    .project-cases-ai-similar--grid { grid-template-columns: 1fr; }
}
.project-cases-cost-table-wrap {
    margin-top: 0.25rem;
}
@media (max-width: 1200px) {
    .project-cases-cost-hero { grid-template-columns: 1fr; }
    .project-cases-cost-kpi { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .project-cases-cost-grid,
    .project-cases-cost-grid--secondary { grid-template-columns: 1fr; }
    .project-cases-cost-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .project-cases-cost-kpi { grid-template-columns: 1fr; }
    .project-cases-cost-hero__split { grid-template-columns: 1fr; }
}
.project-cases-impact {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}
.project-cases-impact__row {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.82rem;
    margin-bottom: 0.3rem;
}
.project-cases-impact__bar {
    height: 8px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}
.project-cases-impact__bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #f0b27a, var(--brand-accent));
}
.project-cases-table-shell { padding: 0; overflow: hidden; }
.project-cases-table-filters {
    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) repeat(4, minmax(110px, 0.8fr)) auto auto;
    gap: 0.5rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #e2e8f0;
    align-items: center;
}
.project-cases-filter-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.project-cases-id-cell {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.project-cases-copy-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #fff;
    color: #64748b;
    padding: 0;
    cursor: pointer;
}
.project-cases-copy-btn:hover {
    color: var(--brand-accent);
    border-color: #f5c89a;
    background: #fff4e8;
}
.project-cases-row-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    white-space: nowrap;
}
.project-cases-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    min-width: 2rem;
    padding: 0.2rem 0.45rem;
}
.project-cases-action-btn__label {
    display: none;
}
.project-cases-row-actions.is-icon-only .project-cases-action-btn__label {
    display: none !important;
}
.project-cases-card__footer-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}
@media (min-width: 1200px) {
    .project-cases-row-actions:not(.is-icon-only) .project-cases-action-btn__label {
        display: inline;
    }
}
.project-cases-search {
    position: relative;
}
.project-cases-search i {
    position: absolute;
    left: 0.7rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 0.8rem;
}
.project-cases-search .form-control {
    padding-left: 2rem;
    height: 2.1rem;
    font-size: 0.85rem;
}
.project-cases-table-filters .form-select {
    height: 2.1rem;
    font-size: 0.82rem;
}
.project-cases-view-toggle {
    display: inline-flex;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
}
.project-cases-view-toggle__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: #fff;
    width: 2.1rem;
    height: 2.1rem;
    color: #64748b;
    text-decoration: none;
}
.project-cases-view-toggle__btn + .project-cases-view-toggle__btn {
    border-left: 1px solid #e2e8f0;
}
.project-cases-view-toggle__btn.is-active,
.project-cases-view-toggle__btn:hover {
    background: #fff4e8;
    color: var(--brand-accent);
}
.project-cases-table-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.project-cases-table--nowrap {
    width: max-content;
    min-width: 100%;
}
.project-cases-table--nowrap th,
.project-cases-table--nowrap td {
    white-space: nowrap;
    vertical-align: middle;
}
.project-cases-table--nowrap .project-cases-case-title {
    display: inline-block;
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}
.project-cases-owner-cell {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    white-space: nowrap;
}
.project-cases-owner-cell__name {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
}
.project-cases-list-view[hidden],
.project-cases-cards-view[hidden] {
    display: none !important;
}
.project-cases-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
    padding: 1rem;
}
.project-cases-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 100%;
    background:
        linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(15, 51, 86, 0.06);
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.project-cases-card:hover {
    border-color: rgba(30, 58, 95, 0.18);
    box-shadow: 0 12px 28px rgba(15, 51, 86, 0.1);
    transform: translateY(-2px);
}
.project-cases-card__header {
    display: grid;
    gap: 0.55rem;
    padding: 1rem 1rem 0.85rem;
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(230, 126, 34, 0.08), transparent 55%),
        linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid #eef2f7;
}
.project-cases-card__header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
}
.project-cases-card__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
    color: #0f172a;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.project-cases-card__title a {
    color: inherit;
    text-decoration: none;
}
.project-cases-card__title a:hover {
    color: var(--brand-accent);
}
.project-cases-card__project {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 600;
    min-width: 0;
}
.project-cases-card__project i {
    color: var(--brand-primary);
    opacity: 0.7;
    flex-shrink: 0;
}
.project-cases-card__project span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.project-cases-card__body {
    display: grid;
    gap: 0.85rem;
    padding: 0.95rem 1rem 1rem;
    flex: 1 1 auto;
}
.project-cases-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
}
.project-cases-card__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    margin: 0;
}
.project-cases-card__stat {
    min-width: 0;
    padding: 0.55rem 0.5rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}
.project-cases-card__stats dt {
    margin: 0;
    font-size: 0.66rem;
    color: #64748b;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.project-cases-card__stats dd {
    margin: 0.2rem 0 0;
    font-size: 0.84rem;
    font-weight: 700;
    color: #0f172a;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.project-cases-card__owner {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}
.project-cases-card__owner-text {
    display: grid;
    gap: 0.05rem;
    min-width: 0;
}
.project-cases-card__owner-label {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #94a3b8;
}
.project-cases-card__owner-name {
    font-size: 0.84rem;
    font-weight: 600;
    color: #334155;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.project-cases-card__footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
    margin-top: auto;
    padding: 0.7rem 0.85rem;
    border-top: 1px solid #eef2f7;
    background: #f8fafc;
}
.project-cases-card__footer .project-cases-row-actions {
    margin-right: auto;
}
.project-cases-card__footer .project-cases-action-btn {
    width: 2.15rem;
    height: 2.15rem;
    min-width: 2.15rem;
    padding: 0;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.project-cases-card__icon-btn {
    width: 2.15rem;
    height: 2.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    border: 1px solid rgba(30, 58, 95, 0.14);
    background: #fff;
    color: var(--brand-primary);
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.project-cases-card__icon-btn:hover {
    color: var(--brand-accent);
    border-color: rgba(230, 126, 34, 0.35);
    background: #fff7ef;
}
.project-cases-card__icon-btn.is-primary {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}
.project-cases-card__icon-btn.is-primary:hover {
    background: #163f66;
    border-color: #163f66;
    color: #fff;
    box-shadow: 0 6px 14px rgba(15, 51, 86, 0.18);
}
.project-cases-category {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: #475569;
    font-size: 0.8rem;
    font-weight: 600;
    max-width: 100%;
    min-width: 0;
}
.project-cases-category span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.project-cases-table-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    border-top: 1px solid #e2e8f0;
    color: #64748b;
    font-size: 0.82rem;
}
.project-cases-table-footer__nav {
    margin-left: auto;
}
.project-cases-table-footer__nav .pagination {
    margin-bottom: 0;
}
.project-cases-table-footer__nav .page-item.active .page-link {
    background-color: var(--brand-accent);
    border-color: var(--brand-accent);
    color: #fff;
}
.project-cases-table-footer__nav .page-link {
    color: var(--brand-primary);
}
.project-cases-table-footer__nav .page-link:hover {
    color: var(--brand-accent);
    border-color: var(--brand-accent);
}
.project-cases-pagination {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.project-cases-status-pill.is-waiting_approval,
.project-cases-status-pill.is-resolving { background: #e0e7ff; color: #4338ca; }
@media (max-width: 1399.98px) {
    .project-cases-dash-grid { grid-template-columns: minmax(0, 1fr) 250px; }
    .project-cases-table-filters { grid-template-columns: minmax(160px, 1fr) 1fr 1fr auto auto; }
}
@media (max-width: 1199.98px) {
    .project-cases-dash-grid { grid-template-columns: 1fr; }
    .project-cases-charts { grid-template-columns: 1fr; }
    .project-cases-kpi { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .project-cases-table-filters { grid-template-columns: 1fr 1fr auto; }
}
@media (max-width: 767.98px) {
    .project-cases-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .project-cases-donut-wrap { grid-template-columns: 1fr; justify-items: center; }
    .project-cases-table-filters {
        grid-template-columns: 1fr;
    }
    .project-cases-cards-grid { grid-template-columns: 1fr; }
    .project-cases-table--nowrap .project-cases-case-title { max-width: 200px; }
}

/* Attendance scanners settings */
.attendance-scanners-page {
    display: grid;
    gap: 1.25rem;
}
.attendance-scanners-intro {
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 14px;
    padding: 1rem 1.15rem;
}
.attendance-scanners-intro__text {
    margin: 0 0 0.85rem;
    color: #5b6b7c;
    font-size: 0.95rem;
    line-height: 1.45;
}
.attendance-scanners-api {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.75rem;
    padding: 0.7rem 0.85rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.05);
}
.attendance-scanners-api__label {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--brand-primary);
}
.attendance-scanners-api__value {
    font-size: 0.82rem;
    color: #243447;
    word-break: break-all;
}
.attendance-scanners-empty {
    display: grid;
    place-items: center;
    gap: 0.6rem;
    padding: 2.5rem 1rem;
    text-align: center;
    background: #fff;
    border: 1px dashed rgba(30, 58, 95, 0.2);
    border-radius: 14px;
    color: #6b7a8a;
}
.attendance-scanners-empty i {
    font-size: 1.6rem;
    color: var(--brand-primary);
    opacity: 0.55;
}
.attendance-scanners-empty p {
    margin: 0;
}
.attendance-scanners-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.card-access-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}
.card-access-summary__stat {
    display: grid;
    gap: 0.2rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
    box-shadow: 0 4px 14px rgba(30, 58, 95, 0.04);
}
.card-access-summary__stat.is-active {
    border-color: rgba(39, 174, 96, 0.28);
    background: linear-gradient(180deg, #ffffff 0%, #f4fbf7 100%);
}
.card-access-summary__stat.is-inactive {
    border-color: rgba(148, 163, 184, 0.45);
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}
.card-access-summary__value {
    font-size: 1.35rem;
    font-weight: 750;
    color: var(--brand-primary);
    line-height: 1.1;
}
.card-access-summary__label {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
}
.card-access-table__uid {
    font-size: 0.82rem;
    word-break: break-all;
}
.card-access-table__name-link {
    color: var(--brand-primary);
    font-weight: 650;
    text-decoration: none;
}
.card-access-table__name-link:hover {
    text-decoration: underline;
}
.card-access-logs-offcanvas {
    width: min(28rem, 100vw);
}
.card-access-logs__summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin-bottom: 1.15rem;
}
.card-access-logs__stat {
    display: grid;
    gap: 0.15rem;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #f8fafc;
}
.card-access-logs__stat.is-on {
    border-color: rgba(39, 174, 96, 0.28);
    background: #f4fbf7;
}
.card-access-logs__stat.is-off {
    border-color: rgba(148, 163, 184, 0.4);
    background: #f8fafc;
}
.card-access-logs__stat-value {
    font-size: 1.2rem;
    font-weight: 750;
    color: var(--brand-primary);
    line-height: 1.1;
}
.card-access-logs__stat-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
}
.card-access-logs__empty,
.card-access-logs__loading {
    padding: 1.25rem 0.25rem;
    text-align: center;
}
.card-access-logs__timeline {
    display: flex;
    flex-direction: column;
}
.card-access-logs__item {
    display: grid;
    grid-template-columns: 1.4rem minmax(0, 1fr);
    gap: 0.75rem;
    padding-bottom: 1.1rem;
}
.card-access-logs__item:last-child {
    padding-bottom: 0;
}
.card-access-logs__item:last-child .card-access-logs__stem {
    display: none;
}
.card-access-logs__marker {
    position: relative;
    display: flex;
    justify-content: center;
    padding-top: 0.35rem;
}
.card-access-logs__dot {
    position: relative;
    z-index: 2;
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 50%;
    background: #94a3b8;
    box-shadow: 0 0 0 3px #fff;
}
.card-access-logs__item.is-on .card-access-logs__dot {
    background: #27ae60;
}
.card-access-logs__item.is-off .card-access-logs__dot {
    background: #64748b;
}
.card-access-logs__stem {
    position: absolute;
    top: 1.05rem;
    bottom: -1.1rem;
    width: 2px;
    background: rgba(148, 163, 184, 0.45);
}
.card-access-logs__body {
    min-width: 0;
    display: grid;
    gap: 0.25rem;
}
.card-access-logs__title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}
.card-access-logs__action {
    font-size: 0.92rem;
    color: var(--brand-primary);
}
.card-access-logs__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1.2;
}
.card-access-logs__badge.is-on {
    background: rgba(39, 174, 96, 0.14);
    color: #1e7a45;
}
.card-access-logs__badge.is-off {
    background: rgba(100, 116, 139, 0.16);
    color: #475569;
}
.card-access-logs__meta,
.card-access-logs__who {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: #64748b;
}
@media (max-width: 767.98px) {
    .card-access-summary {
        grid-template-columns: 1fr;
    }
}
.attendance-scanner-project-card {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.12);
    border-radius: 16px;
    padding: 1rem 1.1rem 1.1rem;
    min-width: 0;
    box-shadow: 0 8px 24px rgba(30, 58, 95, 0.05);
}
.attendance-scanner-project-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}
.attendance-scanner-project-card__identity {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}
.attendance-scanner-project-card__icon {
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}
.attendance-scanner-project-card__titles {
    min-width: 0;
}
.attendance-scanner-project-card__name {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.25;
    word-break: break-word;
}
.attendance-scanner-project-card__code {
    display: inline-block;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #6b7a8a;
}
.attendance-scanner-project-card__count {
    flex: 0 0 auto;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    background: rgba(30, 58, 95, 0.08);
    color: #5b6b7c;
    white-space: nowrap;
}
.attendance-scanner-project-card__count.is-active {
    background: rgba(39, 174, 96, 0.14);
    color: #1e7a45;
}
.attendance-scanner-project-card__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}
.attendance-scanner-project-card__stat {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.04);
    border: 1px solid rgba(30, 58, 95, 0.08);
}
.attendance-scanner-project-card__stat-value {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--brand-primary);
    line-height: 1.15;
    word-break: break-word;
}
.attendance-scanner-project-card__stat-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7a8a;
}
.attendance-scanner-project-card__help {
    margin: 0;
    font-size: 0.84rem;
    color: #6b7a8a;
    line-height: 1.4;
}
.attendance-scanner-project-card__empty {
    padding: 0.9rem 1rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.04);
    color: #6b7a8a;
    font-size: 0.9rem;
}
.attendance-scanner-project-card__shared-note {
    margin: 0;
    padding: 0.75rem 0.9rem;
    border-radius: 12px;
    background: rgba(45, 90, 135, 0.06);
    border: 1px solid rgba(45, 90, 135, 0.12);
    color: #4a5d73;
    font-size: 0.84rem;
    line-height: 1.4;
}

.project-card-access-panel {
    display: grid;
    gap: 0.65rem;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(226, 232, 240, 0.95);
}
.project-card-access-panel__head {
    display: grid;
    gap: 0.2rem;
}
.project-card-access-panel__title {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--brand-primary);
}
.project-card-access-panel__help {
    margin: 0;
    font-size: 0.78rem;
    color: #6b7a8a;
    line-height: 1.4;
}
.project-card-access-panel__empty {
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    background: rgba(30, 58, 95, 0.04);
    color: #6b7a8a;
    font-size: 0.84rem;
}
.project-card-access-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.55rem;
}
.project-card-access-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #fff;
}
.project-card-access-item__main {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
}
.project-card-access-item__name {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
}
.project-card-access-item__email,
.project-card-access-item__meta {
    font-size: 0.74rem;
    color: #6b7a8a;
}
.project-card-access-item__uid {
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    font-size: 0.72rem;
    font-weight: 600;
    color: #334155;
    background: rgba(30, 58, 95, 0.06);
    padding: 0.1rem 0.35rem;
    border-radius: 0.35rem;
    overflow: hidden;
    text-overflow: ellipsis;
}
.project-card-access-item__switch-form {
    flex: 0 0 auto;
}
.project-card-access-item__switch .form-check-label {
    font-size: 0.78rem;
    font-weight: 650;
    color: #475569;
}
.project-card-access-item__badge {
    flex: 0 0 auto;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
}
.project-card-access-item__badge.is-active {
    background: rgba(39, 174, 96, 0.14);
    color: #1e7a45;
}
.project-card-access-item__badge.is-inactive {
    background: rgba(148, 163, 184, 0.22);
    color: #64748b;
}

@media (max-width: 575.98px) {
    .project-card-access-item {
        flex-direction: column;
        align-items: stretch;
    }
}

.scanner-attendance-project-switch {
    margin-top: -0.35rem;
}

.scanner-attendance-project-switch__scroll {
    display: flex;
    gap: 0.75rem;
    overflow-x: auto;
    padding: 0.15rem 0.1rem 0.35rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable;
}

.scanner-attendance-project-card {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-width: 13.5rem;
    max-width: 18rem;
    flex: 0 0 auto;
    padding: 0.75rem 0.9rem;
    border-radius: 14px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 6px 18px rgba(30, 58, 95, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.scanner-attendance-project-card:hover {
    border-color: rgba(45, 90, 135, 0.28);
    box-shadow: 0 8px 20px rgba(30, 58, 95, 0.08);
    color: inherit;
    transform: translateY(-1px);
}

.scanner-attendance-project-card.is-active {
    border-color: rgba(39, 174, 96, 0.45);
    box-shadow: 0 0 0 3px rgba(39, 174, 96, 0.12);
    background: linear-gradient(180deg, #ffffff 0%, #f4fbf7 100%);
}

.scanner-attendance-project-card.is-empty {
    opacity: 0.88;
}

.scanner-attendance-project-card__icon {
    flex: 0 0 auto;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: rgba(230, 126, 34, 0.12);
    color: var(--brand-accent);
}

.scanner-attendance-project-card.is-active .scanner-attendance-project-card__icon {
    background: rgba(39, 174, 96, 0.14);
    color: #1e7a45;
}

.scanner-attendance-project-card__body {
    min-width: 0;
    display: grid;
    gap: 0.2rem;
}

.scanner-attendance-project-card__name {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--brand-primary);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.scanner-attendance-project-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    min-width: 0;
}

.scanner-attendance-project-card__code,
.scanner-attendance-project-card__device {
    font-size: 0.75rem;
    color: #6b7a8a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.scanner-attendance-project-card__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #1e7a45;
    background: rgba(39, 174, 96, 0.12);
}

.scanner-attendance-project-card__badge--muted {
    color: #6b7a8a;
    background: rgba(30, 58, 95, 0.08);
}

.attendance-scanner-device-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}
.attendance-scanner-device {
    display: grid;
    gap: 0.75rem;
    padding: 0.85rem 0.9rem;
    border-radius: 12px;
    border: 1px solid rgba(30, 58, 95, 0.1);
    background: #f8fafc;
}
.attendance-scanner-device__main {
    min-width: 0;
}
.attendance-scanner-device__title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.45rem;
}
.attendance-scanner-device__name {
    color: var(--brand-primary);
    font-size: 0.95rem;
}
.attendance-scanner-device__seen {
    font-size: 0.78rem;
    color: #7a8795;
}
.attendance-scanner-device__token-row {
    display: grid;
    gap: 0.25rem;
}
.attendance-scanner-device__token-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #7a8795;
}
.attendance-scanner-device__token {
    display: block;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    background: #fff;
    border: 1px solid rgba(30, 58, 95, 0.1);
    font-size: 0.72rem;
    line-height: 1.35;
    word-break: break-all;
    color: #243447;
}
.attendance-scanner-device__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    position: relative;
}
.attendance-scanner-device__actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.attendance-scanner-device__action-btn.btn-icon {
    position: relative;
    width: 2.15rem;
    height: 2.15rem;
    min-height: 2.15rem;
    flex: 0 0 auto;
    justify-content: center;
    padding: 0;
}
.attendance-scanner-device__action-btn.btn-icon i {
    font-size: 0.85rem;
}
.attendance-scanner-device__action-btn .attendance-scanner-device__badge {
    position: absolute;
    top: -0.3rem;
    right: -0.3rem;
    min-width: 1.05rem;
    height: 1.05rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    background: #0f172a;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1.05rem;
    box-shadow: 0 0 0 2px #fff;
}
.attendance-scanner-device__action-btn[data-tooltip]::before,
.attendance-scanner-device__action-btn[data-tooltip]::after {
    position: absolute;
    left: 50%;
    z-index: 40;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition:
        opacity 0.18s ease,
        transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0.18s ease;
}
.attendance-scanner-device__action-btn[data-tooltip]::after {
    content: attr(data-tooltip);
    bottom: calc(100% + 0.7rem);
    transform: translate(-50%, 0.45rem) scale(0.92);
    min-width: max-content;
    max-width: 14rem;
    padding: 0.55rem 0.8rem;
    border-radius: 0.7rem;
    background: #0f172a;
    color: #fff;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.3;
    letter-spacing: 0.01em;
    text-align: center;
    white-space: nowrap;
    box-shadow:
        0 12px 28px rgba(15, 23, 42, 0.28),
        0 2px 6px rgba(15, 23, 42, 0.16);
}
.attendance-scanner-device__action-btn[data-tooltip]::before {
    content: '';
    bottom: calc(100% + 0.35rem);
    transform: translate(-50%, 0.45rem) rotate(45deg);
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 0.12rem;
    background: #0f172a;
    box-shadow: 2px 2px 4px rgba(15, 23, 42, 0.12);
}
.attendance-scanner-device__action-btn[data-tooltip]:hover::before,
.attendance-scanner-device__action-btn[data-tooltip]:hover::after,
.attendance-scanner-device__action-btn[data-tooltip]:focus-visible::before,
.attendance-scanner-device__action-btn[data-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0) scale(1);
}
.attendance-scanner-device__action-btn[data-tooltip]:hover::before,
.attendance-scanner-device__action-btn[data-tooltip]:focus-visible::before {
    transform: translate(-50%, 0) rotate(45deg) scale(1);
}
.attendance-scanner-device__actions:has(.attendance-scanner-device__action-btn:hover),
.attendance-scanner-device__actions:has(.attendance-scanner-device__action-btn:focus-visible) {
    z-index: 5;
}
.attendance-scanner-device:has(.attendance-scanner-device__action-btn:hover),
.attendance-scanner-device:has(.attendance-scanner-device__action-btn:focus-visible),
.attendance-scanner-project-card:has(.attendance-scanner-device__action-btn:hover),
.attendance-scanner-project-card:has(.attendance-scanner-device__action-btn:focus-visible) {
    z-index: 6;
}
.attendance-scanner-device__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.22);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
}
.btn-outline-brand .attendance-scanner-device__badge {
    background: rgba(30, 58, 95, 0.12);
    color: var(--brand-primary);
}
.attendance-scanner-project-card__scanned-btn {
    display: flex;
    margin-top: 0.65rem;
}
.attendance-scanner-project-card__scanned-btn .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.attendance-scanner-add {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.55rem;
    margin-top: auto;
    padding-top: 0.25rem;
}
.attendance-scanner-add .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    white-space: nowrap;
}
@media (max-width: 1199.98px) {
    .attendance-scanners-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 991.98px) {
    .attendance-scanners-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 575.98px) {
    .attendance-scanner-add {
        grid-template-columns: 1fr;
    }
    .attendance-scanner-add .btn {
        width: 100%;
    }
    .attendance-scanner-device__actions {
        flex-wrap: nowrap;
    }
}

.attendance-scanner-device__token-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.4rem;
    align-items: stretch;
}
.attendance-scanner-device__token-wrap .attendance-scanner-device__token {
    margin: 0;
}
.attendance-scanner-device__copy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    border: 1px solid rgba(30, 58, 95, 0.14);
    border-radius: 8px;
    background: #fff;
    color: var(--brand-primary);
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.attendance-scanner-device__copy:hover {
    background: rgba(30, 58, 95, 0.06);
    border-color: rgba(30, 58, 95, 0.28);
}
.attendance-scanner-device__copy.is-copied {
    background: rgba(39, 174, 96, 0.12);
    border-color: rgba(39, 174, 96, 0.35);
    color: #1e7a45;
}

/* Workers panel table */
.workers-panel {
    min-width: 0;
    max-width: 100%;
}
.workers-panel > .admin-panel-card,
.workers-panel .admin-panel-card__body {
    min-width: 0;
    max-width: 100%;
}
.workers-panel__table-wrap {
    margin-top: 0.35rem;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-gutter: stable;
}
.workers-panel__table-wrap:has(.dropdown.show) {
    overflow: visible;
}
.workers-panel__table {
    width: 100%;
    min-width: 56rem;
    margin-bottom: 0;
    table-layout: auto;
}
.workers-panel__table thead th,
.workers-panel__table tbody td {
    white-space: nowrap;
    vertical-align: middle;
}
.workers-panel__table thead th {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6b7a8a;
    border-bottom-width: 1px;
}
.workers-panel__table-worker {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-width: 0;
}
.workers-panel__table-avatar {
    flex: 0 0 auto;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: rgba(30, 58, 95, 0.1);
    color: var(--brand-primary);
    font-size: 0.78rem;
    font-weight: 700;
}
.workers-panel__table-worker-meta {
    min-width: 0;
    display: grid;
    gap: 0.15rem;
}
.workers-panel__table-worker-meta strong {
    color: var(--brand-primary);
    font-size: 0.95rem;
    white-space: nowrap;
}
.workers-panel__table-badge {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    font-size: 0.72rem;
    font-weight: 600;
    color: #1e7a45;
    background: rgba(39, 174, 96, 0.12);
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
    white-space: nowrap;
}
.workers-panel__table-badge.is-muted {
    color: #6b7a8a;
    background: rgba(30, 58, 95, 0.08);
}
.workers-panel__table-link {
    color: var(--brand-primary);
    text-decoration: none;
    white-space: nowrap;
}
.workers-panel__table-link:hover {
    color: var(--brand-accent);
}
.workers-panel__table-card-uid {
    font-size: 0.78rem;
    white-space: nowrap;
}
.workers-panel__table td .btn {
    white-space: nowrap;
}
.workers-panel__table-actions {
    width: 1%;
}

@media (max-width: 991.98px) {
    .workers-panel__table-wrap {
        overflow-x: auto;
        overflow-y: visible;
    }
    .workers-panel__table {
        min-width: 52rem;
    }
    .workers-panel__table thead {
        display: table-header-group;
    }
    .workers-panel__table,
    .workers-panel__table tbody,
    .workers-panel__table tr,
    .workers-panel__table td {
        display: table;
        width: auto;
    }
    .workers-panel__table {
        display: table;
        width: 100%;
    }
    .workers-panel__table tbody {
        display: table-row-group;
    }
    .workers-panel__table tr {
        display: table-row;
        border: 0;
        border-radius: 0;
        background: transparent;
        padding: 0;
        box-shadow: none;
    }
    .workers-panel__table td {
        display: table-cell;
        padding: 0.75rem 0.75rem;
        border-top: 1px solid rgba(226, 232, 240, 0.95);
        text-align: left;
        white-space: nowrap;
    }
    .workers-panel__table td + td {
        border-top: 1px solid rgba(226, 232, 240, 0.95);
    }
    .workers-panel__table td::before {
        content: none;
    }
    .workers-panel__table-actions {
        display: table-cell !important;
        text-align: end;
    }
    .workers-panel__table-actions .dropdown {
        margin-left: 0;
    }
}

/* Access card modal */
.worker-access-card-modal__status {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 0.85rem;
    border-radius: 10px;
    background: rgba(30, 58, 95, 0.05);
    margin-bottom: 0.85rem;
    font-size: 0.9rem;
    color: #334155;
}
.worker-access-card-modal__status-dot {
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 999px;
    background: #94a3b8;
}
.worker-access-card-modal__status[data-state="connecting"] .worker-access-card-modal__status-dot,
.worker-access-card-modal__status[data-state="reading"] .worker-access-card-modal__status-dot,
.worker-access-card-modal__status[data-state="waiting"] .worker-access-card-modal__status-dot {
    background: var(--brand-warning);
    box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.55);
    animation: worker-access-card-pulse 1.2s ease-out infinite;
}
.worker-access-card-modal__status[data-state="connected"] .worker-access-card-modal__status-dot,
.worker-access-card-modal__status[data-state="detected"] .worker-access-card-modal__status-dot {
    background: var(--brand-success);
}
.worker-access-card-modal__status[data-state="error"],
.worker-access-card-modal__status[data-state="unsupported"] {
    background: rgba(192, 57, 43, 0.08);
}
.worker-access-card-modal__status[data-state="error"] .worker-access-card-modal__status-dot,
.worker-access-card-modal__status[data-state="unsupported"] .worker-access-card-modal__status-dot {
    background: var(--brand-danger);
}
.worker-access-card-modal__waiting {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 0.95rem;
    padding: 0.95rem 1rem;
    border-radius: 12px;
    border: 1px dashed rgba(30, 58, 95, 0.22);
    background: linear-gradient(180deg, rgba(30, 58, 95, 0.04), rgba(30, 58, 95, 0.02));
}
.worker-access-card-modal__waiting[hidden] {
    display: none !important;
}
.worker-access-card-modal__spinner {
    width: 1.85rem;
    height: 1.85rem;
    flex: 0 0 auto;
    border-radius: 999px;
    border: 3px solid rgba(30, 58, 95, 0.15);
    border-top-color: var(--brand-accent, #e67e22);
    animation: worker-access-card-spin 0.8s linear infinite;
}
.worker-access-card-modal__waiting-copy {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}
.worker-access-card-modal__waiting-copy strong {
    color: var(--brand-primary);
    font-size: 0.95rem;
}
.worker-access-card-modal__waiting-copy span {
    color: #6b7a8a;
    font-size: 0.82rem;
    line-height: 1.35;
}
@keyframes worker-access-card-spin {
    to { transform: rotate(360deg); }
}
@keyframes worker-access-card-pulse {
    0% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.45); }
    70% { box-shadow: 0 0 0 0.55rem rgba(245, 158, 11, 0); }
    100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }
}
.worker-access-card-modal__help {
    color: #6b7a8a;
    font-size: 0.9rem;
    margin-bottom: 0.9rem;
}
.worker-access-card-modal__help[hidden] {
    display: none !important;
}
.worker-access-card-modal__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.worker-access-card-modal__uid-box {
    display: grid;
    gap: 0.3rem;
    margin-bottom: 1rem;
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    border: 1px solid rgba(30, 58, 95, 0.12);
    background: #f8fafc;
}
.worker-access-card-modal__uid-box[hidden] {
    display: none !important;
}
.worker-access-card-modal__uid-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #7a8795;
}
.worker-access-card-modal__uid-box code {
    font-size: 0.95rem;
    word-break: break-all;
    color: var(--brand-primary);
}
.worker-access-card-modal [data-access-card-save][disabled] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* -------------------------------------------------------------------------
   App tooltip (system-wide Bootstrap tooltip skin)
   Usage:
     data-bs-toggle="tooltip" data-bs-custom-class="app-tooltip" data-bs-title="..."
     data-app-tooltip="..." (works with modal buttons; keeps data-bs-toggle intact)
     or <x-app-tooltip text="...">...</x-app-tooltip>
   Info variant:
     data-bs-custom-class="app-tooltip app-tooltip--info"
   -------------------------------------------------------------------------- */
.tooltip.app-tooltip {
    --app-tooltip-bg: #0f172a;
    --app-tooltip-fg: #f8fafc;
    --bs-tooltip-bg: var(--app-tooltip-bg);
    --bs-tooltip-color: var(--app-tooltip-fg);
    --bs-tooltip-opacity: 1;
    --bs-tooltip-padding-x: 0.75rem;
    --bs-tooltip-padding-y: 0.55rem;
    --bs-tooltip-border-radius: 0.7rem;
    --bs-tooltip-max-width: 22rem;
    z-index: 1090;
}
.tooltip.app-tooltip .tooltip-inner {
    max-width: var(--bs-tooltip-max-width);
    padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
    border-radius: var(--bs-tooltip-border-radius);
    background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
    color: var(--app-tooltip-fg);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.4;
    text-align: left;
    white-space: normal;
    word-break: break-word;
    box-shadow:
        0 10px 28px rgba(15, 23, 42, 0.28),
        0 0 0 1px rgba(148, 163, 184, 0.18);
}
.tooltip.app-tooltip .tooltip-arrow::before {
    border-top-color: var(--app-tooltip-bg);
    border-bottom-color: var(--app-tooltip-bg);
    border-left-color: var(--app-tooltip-bg);
    border-right-color: var(--app-tooltip-bg);
}
.tooltip.app-tooltip.bs-tooltip-top .tooltip-arrow::before,
.tooltip.app-tooltip.bs-tooltip-auto[data-popper-placement^='top'] .tooltip-arrow::before {
    border-top-color: var(--app-tooltip-bg);
}
.tooltip.app-tooltip.bs-tooltip-bottom .tooltip-arrow::before,
.tooltip.app-tooltip.bs-tooltip-auto[data-popper-placement^='bottom'] .tooltip-arrow::before {
    border-bottom-color: var(--app-tooltip-bg);
}
.tooltip.app-tooltip.bs-tooltip-start .tooltip-arrow::before,
.tooltip.app-tooltip.bs-tooltip-auto[data-popper-placement^='left'] .tooltip-arrow::before {
    border-left-color: var(--app-tooltip-bg);
}
.tooltip.app-tooltip.bs-tooltip-end .tooltip-arrow::before,
.tooltip.app-tooltip.bs-tooltip-auto[data-popper-placement^='right'] .tooltip-arrow::before {
    border-right-color: var(--app-tooltip-bg);
}
.tooltip.app-tooltip.app-tooltip--info {
    --app-tooltip-bg: #0891b2;
    --app-tooltip-fg: #ecfeff;
    --bs-tooltip-bg: var(--app-tooltip-bg);
    --bs-tooltip-color: var(--app-tooltip-fg);
}
.tooltip.app-tooltip.app-tooltip--info .tooltip-inner {
    background: linear-gradient(180deg, #06b6d4 0%, #0891b2 55%, #0e7490 100%);
    color: var(--app-tooltip-fg);
    box-shadow:
        0 12px 28px rgba(8, 145, 178, 0.32),
        0 0 0 1px rgba(165, 243, 252, 0.35);
}
.tooltip.app-tooltip.app-tooltip--info .tooltip-arrow::before {
    border-top-color: var(--app-tooltip-bg);
    border-bottom-color: var(--app-tooltip-bg);
    border-left-color: var(--app-tooltip-bg);
    border-right-color: var(--app-tooltip-bg);
}
.tooltip.app-tooltip.app-tooltip--info.bs-tooltip-top .tooltip-arrow::before,
.tooltip.app-tooltip.app-tooltip--info.bs-tooltip-auto[data-popper-placement^='top'] .tooltip-arrow::before {
    border-top-color: var(--app-tooltip-bg);
}
.tooltip.app-tooltip.app-tooltip--info.bs-tooltip-bottom .tooltip-arrow::before,
.tooltip.app-tooltip.app-tooltip--info.bs-tooltip-auto[data-popper-placement^='bottom'] .tooltip-arrow::before {
    border-bottom-color: var(--app-tooltip-bg);
}
.tooltip.app-tooltip.app-tooltip--info.bs-tooltip-start .tooltip-arrow::before,
.tooltip.app-tooltip.app-tooltip--info.bs-tooltip-auto[data-popper-placement^='left'] .tooltip-arrow::before {
    border-left-color: var(--app-tooltip-bg);
}
.tooltip.app-tooltip.app-tooltip--info.bs-tooltip-end .tooltip-arrow::before,
.tooltip.app-tooltip.app-tooltip--info.bs-tooltip-auto[data-popper-placement^='right'] .tooltip-arrow::before {
    border-right-color: var(--app-tooltip-bg);
}
[data-bs-toggle='tooltip'][data-bs-custom-class*='app-tooltip'],
[data-app-tooltip] {
    cursor: help;
}
