:root {
    --suite-brand-50: #edfaff;
    --suite-brand-100: #d2f0fb;
    --suite-brand-500: #059dd9;
    --suite-brand-600: #007eae;
    --suite-brand-700: #00638a;
    --suite-ink-950: #0b0c12;
    --suite-ink-700: #374151;
    --suite-ink-500: #6b7280;
    --suite-ink-400: #9ca3af;
    --suite-surface: #ffffff;
    --suite-canvas: #f6f7fb;
    --suite-border: #e5e7eb;
    --suite-success: #059669;
    --suite-success-soft: #ecfdf5;
    --suite-warning: #d97706;
    --suite-warning-soft: #fffbeb;
    --suite-danger: #dc2626;
    --suite-danger-soft: #fef2f2;
    --suite-info: #2563eb;
    --suite-info-soft: #eff6ff;
    --suite-radius-sm: 0.625rem;
    --suite-radius-md: 0.875rem;
    --suite-radius-lg: 1.125rem;
    --suite-shadow-sm: 0 1px 2px rgb(15 23 42 / 0.04);
    --suite-shadow-md: 0 12px 32px rgb(15 23 42 / 0.07);
    --suite-sidebar-width: 17rem;
    --suite-topbar-height: 4.5rem;
}

* {
    scrollbar-color: #d1d5db transparent;
    scrollbar-width: thin;
}

body.suite-body {
    margin: 0;
    background: var(--suite-canvas);
    color: var(--suite-ink-950);
    font-feature-settings: "cv02", "cv03", "cv04", "cv11";
}

/* Progressive enhancement for longer relational dropdowns. The original
   select remains the submitted form control and is only visually hidden. */
.suite-search-select {
    position: relative;
    width: 100%;
    min-width: 0;
}

.suite-search-select[hidden] {
    display: none !important;
}

.suite-search-select-native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.suite-search-select-control {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.suite-search-select-input {
    width: 100%;
    min-height: var(--suite-search-select-height, 2.5rem);
    padding: 0.5rem 2.35rem 0.5rem 2.3rem;
    border: 1px solid #d1d5db;
    border-radius: 0.625rem;
    background: #fff;
    color: var(--suite-ink-950);
    font: inherit;
    line-height: 1.35;
    text-overflow: ellipsis;
    transition: border-color 140ms ease, box-shadow 140ms ease, background 140ms ease;
}

.suite-search-select-input:hover {
    border-color: #9ca3af;
}

.suite-search-select-input:focus {
    outline: none;
    border-color: var(--suite-brand-500);
    box-shadow: 0 0 0 3px rgb(5 157 217 / 0.16);
}

.suite-search-select-input:disabled {
    cursor: not-allowed;
    background: #f3f4f6;
    color: var(--suite-ink-400);
}

.suite-search-select-icon,
.suite-search-select-chevron {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 1rem;
    height: 1rem;
    color: var(--suite-ink-400);
    pointer-events: none;
}

.suite-search-select-icon { left: 0.8rem; }
.suite-search-select-chevron { right: 0.8rem; transition: transform 140ms ease; }
.suite-search-select.is-open .suite-search-select-chevron { transform: translateY(-50%) rotate(180deg); }

.suite-search-select-panel {
    position: fixed;
    z-index: 120;
    display: none;
    max-height: min(22rem, calc(100vh - 1rem));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.35rem;
    border: 1px solid var(--suite-border);
    border-radius: 0.75rem;
    background: #fff;
    box-shadow: 0 18px 45px rgb(15 23 42 / 0.18), 0 3px 12px rgb(15 23 42 / 0.08);
}

.suite-search-select-panel.is-open { display: block; }

.suite-search-select-option {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    min-height: 2.25rem;
    padding: 0.48rem 0.65rem;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: var(--suite-ink-700);
    font: inherit;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

.suite-search-select-option:hover,
.suite-search-select-option.is-active {
    background: var(--suite-brand-50);
    color: var(--suite-brand-700);
}

.suite-search-select-option.is-selected {
    color: var(--suite-brand-700);
    font-weight: 650;
}

.suite-search-select-option:disabled {
    cursor: not-allowed;
    color: var(--suite-ink-400);
    background: transparent;
}

.suite-search-select-check {
    width: 1rem;
    flex: 0 0 1rem;
    color: var(--suite-brand-600);
    visibility: hidden;
}

.suite-search-select-option.is-selected .suite-search-select-check { visibility: visible; }

.suite-search-select-empty {
    padding: 0.85rem;
    color: var(--suite-ink-500);
    font-size: 0.82rem;
    text-align: center;
}

.suite-app {
    min-height: 100vh;
    display: flex;
}

.suite-main {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.suite-sidebar-shell {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 50;
    width: var(--suite-sidebar-width);
    transform: translateX(-100%);
    transition: transform 180ms ease;
}

.suite-sidebar-shell.is-open {
    transform: translateX(0);
}

.suite-sidebar {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #0b0c12;
    color: #d1d5db;
    border-right: 1px solid rgb(255 255 255 / 0.06);
}

.suite-sidebar-backdrop {
    position: fixed;
    inset: 0;
    z-index: 40;
    display: none;
    background: rgb(15 23 42 / 0.52);
    backdrop-filter: blur(2px);
}

.suite-sidebar-backdrop.is-open {
    display: block;
}

.suite-brand {
    min-height: var(--suite-topbar-height);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0 1.25rem;
    border-bottom: 1px solid rgb(255 255 255 / 0.08);
}

.suite-brand-mark {
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    border-radius: 0.65rem;
    background: linear-gradient(135deg, #28b6e4, #007eae);
    box-shadow: 0 8px 20px rgb(0 126 174 / 0.35);
    color: white;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

/* Card rows can use flex/grid; hidden pagination entries must stay hidden. */
[data-pagination-ready="true"] [data-pagination-visible="false"] {
    display: none !important;
}

.suite-table-toolbar,
.suite-table-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.875rem 1rem;
    background: #fff;
}

.suite-table-toolbar {
    border-bottom: 1px solid #e5e7eb;
}

.suite-table-pagination {
    border-top: 1px solid #e5e7eb;
}

.suite-table-search {
    position: relative;
    display: block;
    width: min(100%, 24rem);
}

.suite-table-search-icon {
    position: absolute;
    top: 50%;
    left: 0.75rem;
    color: #94a3b8;
    font-size: 1rem;
    line-height: 1;
    transform: translateY(-50%) rotate(-20deg);
    pointer-events: none;
}

.suite-table-search input {
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 0.625rem;
    padding: 0.55rem 0.75rem 0.55rem 2.15rem;
    background: #fff;
    color: #1e293b;
    font-size: 0.8125rem;
}

.suite-table-search input:focus {
    border-color: #059dd9;
    outline: 2px solid rgb(5 157 217 / 0.18);
    outline-offset: 1px;
}

.suite-table-pagination-summary {
    color: #64748b;
    font-size: 0.8125rem;
    white-space: nowrap;
}

.suite-table-pagination-actions,
.suite-table-pagination-pages,
.suite-table-pagination-size {
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.suite-table-pagination-size {
    margin-right: 0.5rem;
    color: #64748b;
    font-size: 0.75rem;
}

.suite-table-pagination-size select {
    min-width: 4rem;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    padding: 0.35rem 1.5rem 0.35rem 0.55rem;
    background: #fff;
    color: #334155;
    font-size: 0.75rem;
}

.suite-table-pagination-button {
    display: inline-grid;
    min-width: 2rem;
    height: 2rem;
    place-items: center;
    border: 1px solid #d1d5db;
    border-radius: 0.5rem;
    background: #fff;
    color: #475569;
    font-size: 0.75rem;
    font-weight: 600;
}

.suite-table-pagination-button:hover:not(:disabled) {
    border-color: #6bd0ef;
    background: #edfaff;
    color: #00638a;
}

.suite-table-pagination-button.is-current {
    border-color: #007eae;
    background: #007eae;
    color: #fff;
}

.suite-table-pagination-button:disabled {
    cursor: not-allowed;
    opacity: 0.4;
}

.suite-table-pagination-gap {
    padding: 0 0.125rem;
    color: #94a3b8;
}

@media (max-width: 640px) {
    .suite-table-toolbar,
    .suite-table-pagination {
        align-items: flex-start;
        flex-direction: column;
    }

    .suite-table-search {
        width: 100%;
    }

    .suite-table-pagination-actions {
        width: 100%;
        justify-content: space-between;
    }

    .suite-table-pagination-pages {
        flex-wrap: wrap;
        justify-content: flex-end;
    }
}

.suite-nav {
    min-height: 0;
    flex: 1;
    overflow-y: auto;
    padding: 1rem 0.75rem 1.5rem;
}

.suite-nav-section + .suite-nav-section {
    margin-top: 1.35rem;
}

.suite-nav-label {
    margin: 0 0 0.4rem;
    padding: 0 0.75rem;
    color: #6b7280;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.suite-nav-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 2.45rem;
    padding: 0.55rem 0.75rem;
    border-radius: 0.7rem;
    color: #9ca3af;
    font-size: 0.875rem;
    font-weight: 550;
    text-decoration: none;
    transition: background 140ms ease, color 140ms ease, transform 140ms ease;
}

.suite-nav-link:hover {
    background: rgb(255 255 255 / 0.06);
    color: #f9fafb;
}

.suite-nav-link.is-active {
    background: rgb(5 157 217 / 0.18);
    color: #a7e2f7;
    box-shadow: inset 2px 0 0 #28b6e4;
}

.suite-nav-link svg {
    width: 1.15rem;
    height: 1.15rem;
    flex: 0 0 auto;
}

.suite-sidebar-footer {
    padding: 0.8rem 1rem;
    border-top: 1px solid rgb(255 255 255 / 0.08);
    color: #6b7280;
    font-size: 0.7rem;
}

.suite-topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    min-height: var(--suite-topbar-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0 1rem;
    border-bottom: 1px solid var(--suite-border);
    background: rgb(255 255 255 / 0.92);
    backdrop-filter: blur(14px);
}

.suite-content {
    width: 100%;
    flex: 1;
    padding: clamp(1rem, 1.2vw, 1.5rem);
}

.suite-content-inner {
    width: 100%;
    margin-inline: auto;
}

/* Page containers always fill the available workspace, including forms and reports. */
.suite-content .suite-content-inner > :where(div, section, form) {
    width: 100%;
    min-width: 0;
    max-width: none;
}

.suite-icon-button {
    width: 2.5rem;
    height: 2.5rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--suite-border);
    border-radius: var(--suite-radius-sm);
    background: var(--suite-surface);
    color: var(--suite-ink-500);
}

.suite-icon-button:hover {
    background: #f9fafb;
    color: var(--suite-ink-950);
}

.suite-company-switcher,
.suite-user-menu {
    position: relative;
}

.suite-menu-panel {
    position: absolute;
    right: 0;
    z-index: 60;
    width: 15rem;
    margin-top: 0.5rem;
    padding: 0.4rem;
    border: 1px solid var(--suite-border);
    border-radius: var(--suite-radius-md);
    background: var(--suite-surface);
    box-shadow: var(--suite-shadow-md);
}

.suite-page-header {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.suite-eyebrow {
    color: var(--suite-brand-600);
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.suite-page-title {
    margin: 0.3rem 0 0;
    color: var(--suite-ink-950);
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    font-weight: 750;
    letter-spacing: -0.035em;
    line-height: 1.08;
}

.suite-page-description {
    max-width: 46rem;
    margin-top: 0.5rem;
    color: var(--suite-ink-500);
    font-size: 0.9rem;
    line-height: 1.55;
}

.suite-filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 0.7rem;
    padding: 0.8rem;
    border: 1px solid var(--suite-border);
    border-radius: var(--suite-radius-md);
    background: var(--suite-surface);
    box-shadow: var(--suite-shadow-sm);
}

.suite-field-label {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--suite-ink-500);
    font-size: 0.7rem;
    font-weight: 650;
}

.suite-input {
    min-height: 2.4rem;
    border: 1px solid #d1d5db;
    border-radius: 0.65rem;
    background: white;
    color: var(--suite-ink-700);
    font-size: 0.82rem;
}

.suite-button-primary {
    min-height: 2.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.55rem 0.9rem;
    border-radius: 0.65rem;
    background: var(--suite-brand-600);
    color: white;
    font-size: 0.82rem;
    font-weight: 700;
    transition: background 140ms ease, transform 140ms ease;
}

.suite-button-primary:hover {
    background: var(--suite-brand-700);
}

.suite-card {
    border: 1px solid var(--suite-border);
    border-radius: var(--suite-radius-lg);
    background: var(--suite-surface);
    box-shadow: var(--suite-shadow-sm);
}

.suite-kpi-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.9rem;
}

.suite-kpi-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 16rem;
    overflow: hidden;
    padding: 1.15rem;
}

.suite-kpi-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 2px;
    background: var(--suite-brand-500);
    opacity: 0;
}

.suite-kpi-card[data-state="warning"]::before,
.suite-kpi-card[data-state="negative"]::before {
    background: var(--suite-danger);
    opacity: 1;
}

.suite-kpi-label {
    color: var(--suite-ink-500);
    font-size: 0.78rem;
    font-weight: 650;
}

.suite-kpi-help {
    position: relative;
    z-index: 12;
    flex: 0 0 auto;
}

.suite-kpi-help-toggle {
    width: 1.5rem;
    height: 1.5rem;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: #f3f4f6;
    color: #6b7280;
    font-size: 0.7rem;
    font-weight: 800;
    cursor: help;
}

.suite-kpi-help-toggle:hover,
.suite-kpi-help-toggle:focus-visible,
.suite-kpi-help.is-open .suite-kpi-help-toggle {
    background: var(--suite-brand-100);
    color: var(--suite-brand-700);
}

.suite-kpi-help-toggle:focus-visible {
    outline: 3px solid rgb(5 157 217 / 0.2);
    outline-offset: 2px;
}

.suite-kpi-help-panel {
    position: absolute;
    top: 2rem;
    right: 0;
    z-index: 20;
    width: min(20rem, calc(100vw - 4rem));
    max-height: 14rem;
    overflow-y: auto;
    padding: 0.9rem;
    border: 1px solid #a7e2f7;
    border-radius: 0.85rem;
    background: #ffffff;
    color: var(--suite-ink-700);
    box-shadow: 0 18px 45px rgb(15 23 42 / 0.18), 0 4px 12px rgb(15 23 42 / 0.08);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-0.25rem) scale(0.98);
    transform-origin: top right;
    pointer-events: none;
    transition: opacity 120ms ease, transform 120ms ease, visibility 120ms ease;
}

.suite-kpi-help:hover .suite-kpi-help-panel,
.suite-kpi-help.is-open .suite-kpi-help-panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.suite-kpi-help-title {
    margin: 0;
    color: var(--suite-ink-950);
    font-size: 0.8rem;
    font-weight: 800;
}

.suite-kpi-help-description {
    margin: 0.35rem 0 0;
    color: var(--suite-ink-500);
    font-size: 0.7rem;
    line-height: 1.45;
}

.suite-kpi-help-facts {
    display: grid;
    gap: 0.45rem;
    margin: 0.7rem 0 0;
    padding-top: 0.65rem;
    border-top: 1px solid #edfaff;
}

.suite-kpi-help-facts div {
    display: grid;
    grid-template-columns: 4.7rem minmax(0, 1fr);
    gap: 0.5rem;
    font-size: 0.65rem;
    line-height: 1.35;
}

.suite-kpi-help-facts dt { color: var(--suite-ink-400); font-weight: 700; }
.suite-kpi-help-facts dd { margin: 0; color: var(--suite-ink-700); }

.suite-kpi-value {
    margin-top: 0.6rem;
    color: var(--suite-ink-950);
    font-size: clamp(1.65rem, 2.5vw, 2.1rem);
    font-weight: 760;
    letter-spacing: -0.035em;
    line-height: 1.1;
}

.suite-kpi-context {
    height: 1.2rem;
    overflow: hidden;
    margin-top: 0.55rem;
    color: var(--suite-ink-500);
    font-size: 0.72rem;
    line-height: 1.2rem;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.suite-trend {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    margin-right: 0.25rem;
    font-weight: 750;
}

.suite-trend.is-positive { color: var(--suite-success); }
.suite-trend.is-negative { color: var(--suite-danger); }
.suite-trend.is-neutral { color: var(--suite-ink-500); }

.suite-kpi-target-slot {
    flex: 0 0 2.75rem;
    height: 2.75rem;
    min-width: 0;
    padding-top: 0.65rem;
    font-variant-numeric: tabular-nums;
}

.suite-kpi-target-slot > div:first-child {
    min-width: 0;
    white-space: nowrap;
}

.suite-progress-track {
    width: 100%;
    height: 0.35rem;
    overflow: hidden;
    border-radius: 999px;
    background: #eef0f4;
}

.suite-progress-bar {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--suite-brand-500), #059dd9);
}

.suite-sparkline-panel,
.suite-sparkline-empty {
    flex: 0 0 5.25rem;
    width: 100%;
    height: 5.25rem;
    margin-top: 0.25rem;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    background:
        linear-gradient(to bottom, transparent 49%, rgb(203 213 225 / 0.34) 50%, transparent 51%),
        linear-gradient(180deg, #f8fafc, #ffffff);
}

.suite-sparkline-panel[data-tone="positive"] {
    border-color: rgb(4 120 87 / 0.2);
    background:
        linear-gradient(to bottom, transparent 49%, rgb(4 120 87 / 0.14) 50%, transparent 51%),
        linear-gradient(180deg, rgb(236 253 245 / 0.75), #ffffff);
}

.suite-sparkline-panel[data-tone="negative"] {
    border-color: rgb(220 38 38 / 0.2);
    background:
        linear-gradient(to bottom, transparent 49%, rgb(220 38 38 / 0.13) 50%, transparent 51%),
        linear-gradient(180deg, rgb(254 242 242 / 0.78), #ffffff);
}

.suite-sparkline {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

.suite-sparkline-empty {
    display: grid;
    place-items: center;
    border-style: dashed;
    color: var(--suite-ink-400);
    font-size: 0.68rem;
}

.suite-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    margin-top: auto;
    padding-top: 0.75rem;
    color: var(--suite-ink-400);
    font-size: 0.68rem;
}

.suite-link {
    color: var(--suite-brand-600);
    font-weight: 700;
    text-decoration: none;
}

.suite-link:hover { color: var(--suite-brand-700); }

.suite-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.suite-chart-card {
    min-height: 22rem;
    padding: 1.2rem;
}

.suite-chart-plot {
    position: relative;
    height: 18rem;
    padding: 0.75rem 0.45rem 0.25rem;
    border: 1px solid #e2e8f0;
    border-radius: 0.8rem;
    background: linear-gradient(180deg, #f8fafc, #ffffff 55%);
}

.suite-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.suite-panel-title {
    color: var(--suite-ink-950);
    font-size: 0.95rem;
    font-weight: 720;
}

.suite-panel-description {
    margin-top: 0.2rem;
    color: var(--suite-ink-500);
    font-size: 0.75rem;
}

.suite-attention-list {
    display: grid;
    gap: 0.65rem;
}

.suite-attention-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.8rem;
    border: 1px solid var(--suite-border);
    border-radius: var(--suite-radius-sm);
    background: #fafafa;
}

.suite-attention-dot {
    width: 0.55rem;
    height: 0.55rem;
    flex: 0 0 auto;
    margin-top: 0.3rem;
    border-radius: 999px;
    background: var(--suite-warning);
    box-shadow: 0 0 0 4px var(--suite-warning-soft);
}

.suite-attention-item[data-severity="critical"] .suite-attention-dot {
    background: var(--suite-danger);
    box-shadow: 0 0 0 4px var(--suite-danger-soft);
}

.suite-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.22rem 0.5rem;
    border-radius: 999px;
    background: #f3f4f6;
    color: var(--suite-ink-500);
    font-size: 0.67rem;
    font-weight: 700;
}

.suite-status-badge.is-success { background: var(--suite-success-soft); color: var(--suite-success); }
.suite-status-badge.is-warning { background: var(--suite-warning-soft); color: var(--suite-warning); }
.suite-status-badge.is-danger { background: var(--suite-danger-soft); color: var(--suite-danger); }

.suite-empty-state {
    display: grid;
    place-items: center;
    min-height: 10rem;
    padding: 1.5rem;
    color: var(--suite-ink-500);
    text-align: center;
}

.suite-assistant-floating {
    position: fixed;
    right: max(1.25rem, env(safe-area-inset-right));
    bottom: max(1.25rem, env(safe-area-inset-bottom));
    z-index: 45;
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    pointer-events: none;
}

.suite-assistant-panel {
    width: min(34rem, calc(100vw - 2rem));
    height: min(44rem, calc(100vh - 7rem));
    max-height: min(44rem, calc(100vh - 7rem));
    margin-bottom: 0.75rem;
    overflow: hidden;
    border: 1px solid rgb(67 56 202 / 0.35);
    border-radius: 1.1rem;
    background: #ffffff;
    box-shadow: 0 24px 70px rgb(15 23 42 / 0.24), 0 8px 24px rgb(15 23 42 / 0.12);
    pointer-events: auto;
    display: flex;
    flex-direction: column;
    transform-origin: bottom right;
    animation: suite-assistant-enter 160ms ease-out;
}

.suite-assistant-panel[hidden] { display: none; }

.suite-assistant-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1rem 0.9rem;
    background: linear-gradient(135deg, #0b0c12, #10465e);
    color: #ffffff;
}

.suite-assistant-eyebrow {
    margin: 0;
    color: #6bd0ef;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.suite-assistant-title {
    margin: 0.18rem 0 0;
    font-size: 1rem;
    font-weight: 750;
    line-height: 1.35;
}

.suite-assistant-status {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0.35rem 0 0;
    color: #a7e2f7;
    font-size: 0.68rem;
}

.suite-assistant-status-dot {
    width: 0.42rem;
    height: 0.42rem;
    flex: 0 0 auto;
    border-radius: 999px;
    background: #94a3b8;
}

.suite-assistant-status[data-state="available"] .suite-assistant-status-dot { background: #34d399; box-shadow: 0 0 0 3px rgb(52 211 153 / 0.16); }
.suite-assistant-status[data-state="warning"] .suite-assistant-status-dot { background: #fbbf24; }
.suite-assistant-status[data-state="error"] .suite-assistant-status-dot { background: #f87171; }

.suite-assistant-header-actions {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.suite-assistant-close,
.suite-assistant-header-button {
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 0.6rem;
    background: rgb(255 255 255 / 0.08);
    color: #a7e2f7;
    cursor: pointer;
}

.suite-assistant-close:hover,
.suite-assistant-header-button:hover { background: rgb(255 255 255 / 0.16); color: #ffffff; }
.suite-assistant-close:focus-visible, .suite-assistant-header-button:focus-visible, .suite-assistant-launcher:focus-visible, .suite-assistant-send:focus-visible { outline: 3px solid rgb(129 140 248 / 0.45); outline-offset: 2px; }
.suite-assistant-close svg,
.suite-assistant-header-button svg { width: 1rem; height: 1rem; }
.suite-assistant-header-button[hidden] { display: none; }
.suite-assistant-contract-icon { display: none; }
.suite-assistant-floating.is-fullscreen .suite-assistant-expand-icon { display: none; }
.suite-assistant-floating.is-fullscreen .suite-assistant-contract-icon { display: block; }

.suite-assistant-messages {
    min-height: 20rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    overflow-y: auto;
    padding: 1rem;
    background: #f8fafc;
}
.suite-assistant-messages[hidden],
.suite-assistant-form[hidden],
.suite-assistant-home[hidden] { display: none; }

.suite-assistant-home {
    min-height: 20rem;
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
    background: #f8fafc;
}

.suite-assistant-home-intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid #a7e2f7;
    border-radius: 0.9rem;
    background: linear-gradient(135deg, #ffffff, #edfaff);
    box-shadow: var(--suite-shadow-sm);
}
.suite-assistant-home-eyebrow {
    margin: 0 0 0.25rem;
    color: #007eae;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.suite-assistant-home-intro h3 { margin: 0; color: #0b0c12; font-size: 0.96rem; line-height: 1.35; }
.suite-assistant-home-intro p:not(.suite-assistant-home-eyebrow) { margin: 0.35rem 0 0; color: #64748b; font-size: 0.72rem; line-height: 1.5; }
.suite-assistant-new-primary {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 0;
    border-radius: 0.65rem;
    padding: 0.55rem 0.7rem;
    background: #007eae;
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 750;
    cursor: pointer;
}
.suite-assistant-new-primary:hover { background: #00638a; }
.suite-assistant-new-primary svg { width: 0.9rem; height: 0.9rem; }
.suite-assistant-session-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 1rem 0 0.45rem;
    color: #64748b;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.suite-assistant-session-list { display: flex; flex-direction: column; gap: 0.45rem; }
.suite-assistant-session-item {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    padding: 0.7rem 0.75rem;
    background: #ffffff;
    color: #334155;
    text-align: left;
    cursor: pointer;
    transition: border-color 140ms ease, transform 140ms ease, box-shadow 140ms ease;
}
.suite-assistant-session-item:hover {
    transform: translateY(-1px);
    border-color: #6bd0ef;
    box-shadow: var(--suite-shadow-sm);
}
.suite-assistant-session-main { min-width: 0; display: flex; flex-direction: column; gap: 0.18rem; }
.suite-assistant-session-main strong { overflow: hidden; color: #0b0c12; font-size: 0.78rem; text-overflow: ellipsis; white-space: nowrap; }
.suite-assistant-session-main span { color: #64748b; font-size: 0.64rem; }
.suite-assistant-session-side { flex: 0 0 auto; display: flex; align-items: center; gap: 0.45rem; color: #059dd9; }
.suite-assistant-session-side time { color: #94a3b8; font-size: 0.6rem; white-space: nowrap; }
.suite-assistant-session-side > span { font-size: 0.9rem; }
.suite-assistant-session-state,
.suite-assistant-session-empty {
    min-height: 7rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    margin: 0;
    border: 1px dashed #cbd5e1;
    border-radius: 0.75rem;
    color: #94a3b8;
    font-size: 0.72rem;
    text-align: center;
}
.suite-assistant-session-empty strong { color: #475569; font-size: 0.78rem; }

.suite-assistant-message {
    width: fit-content;
    max-width: 88%;
    padding: 0.7rem 0.8rem;
    border-radius: 0.85rem;
    font-size: 0.875rem;
    line-height: 1.58;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.suite-assistant-message.is-assistant {
    align-self: flex-start;
    border: 1px solid #e2e8f0;
    border-bottom-left-radius: 0.25rem;
    background: #ffffff;
    color: #334155;
    box-shadow: var(--suite-shadow-sm);
}

.suite-assistant-message.is-user {
    align-self: flex-end;
    border-bottom-right-radius: 0.25rem;
    background: var(--suite-brand-600);
    color: #ffffff;
}

.suite-assistant-message.is-assistant {
    white-space: normal;
}

.suite-assistant-message.is-assistant > :first-child { margin-top: 0; }
.suite-assistant-message.is-assistant > :last-child { margin-bottom: 0; }
.suite-assistant-message.is-assistant p { margin: 0 0 0.7rem; }
.suite-assistant-message.is-assistant h1,
.suite-assistant-message.is-assistant h2,
.suite-assistant-message.is-assistant h3 {
    margin: 0.9rem 0 0.4rem;
    color: #0f172a;
    font-weight: 750;
    line-height: 1.3;
}
.suite-assistant-message.is-assistant h1 { font-size: 1.08rem; }
.suite-assistant-message.is-assistant h2 { font-size: 1rem; }
.suite-assistant-message.is-assistant h3 { font-size: 0.94rem; }
.suite-assistant-message.is-assistant ul,
.suite-assistant-message.is-assistant ol { margin: 0.25rem 0 0.75rem; padding-left: 1.35rem; }
.suite-assistant-message.is-assistant ul { list-style: disc; }
.suite-assistant-message.is-assistant ol { list-style: decimal; }
.suite-assistant-message.is-assistant li { margin: 0.2rem 0; }
.suite-assistant-message.is-assistant strong { color: #172554; font-weight: 750; }
.suite-assistant-message.is-assistant em { color: #475569; }
.suite-assistant-message.is-assistant code {
    padding: 0.08rem 0.3rem;
    border-radius: 0.3rem;
    background: #edfaff;
    color: #3730a3;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.82em;
}
.suite-assistant-message.is-assistant pre {
    max-width: 100%;
    margin: 0.5rem 0 0.75rem;
    overflow-x: auto;
    border-radius: 0.65rem;
    background: #0b0c12;
    padding: 0.75rem;
    color: #e5e7eb;
    white-space: pre-wrap;
}
.suite-assistant-message.is-assistant pre code { padding: 0; background: transparent; color: inherit; }
.suite-assistant-message.is-assistant a { color: #007eae; font-weight: 650; text-decoration: underline; text-underline-offset: 2px; }
.suite-assistant-message.is-assistant blockquote { margin: 0.5rem 0 0.75rem; border-left: 3px solid #6bd0ef; padding-left: 0.75rem; color: #475569; }

.suite-assistant-draft {
    width: min(100%, 32rem);
    align-self: flex-start;
    border: 1px solid #a7e2f7;
    border-radius: 0.9rem;
    padding: 0.85rem;
    background: linear-gradient(145deg, #ffffff, #edfaff);
    color: #334155;
    box-shadow: var(--suite-shadow-sm);
}
.suite-assistant-draft.is-applied { border-color: #86efac; background: linear-gradient(145deg, #ffffff, #f0fdf4); }
.suite-assistant-draft.is-rejected,
.suite-assistant-draft.is-failed { border-color: #fecaca; background: linear-gradient(145deg, #ffffff, #fef2f2); }
.suite-assistant-draft-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
.suite-assistant-draft-header > div { display: flex; flex-direction: column; gap: 0.14rem; }
.suite-assistant-draft-header > div > span { color: #059dd9; font-size: 0.6rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.suite-assistant-draft-header strong { color: #0b0c12; font-size: 0.82rem; }
.suite-assistant-draft-status { flex: 0 0 auto; border-radius: 999px; padding: 0.2rem 0.45rem; background: #d2f0fb; color: #00638a; font-size: 0.62rem; font-weight: 750; }
.suite-assistant-draft.is-applied .suite-assistant-draft-status { background: #dcfce7; color: #15803d; }
.suite-assistant-draft.is-rejected .suite-assistant-draft-status,
.suite-assistant-draft.is-failed .suite-assistant-draft-status { background: #fee2e2; color: #b91c1c; }
.suite-assistant-draft-summary { margin: 0.65rem 0; font-size: 0.76rem; line-height: 1.48; }
.suite-assistant-draft-details { display: grid; gap: 0.36rem; margin: 0.65rem 0 0; }
.suite-assistant-draft-details > div { display: grid; grid-template-columns: minmax(6rem, 0.75fr) minmax(0, 1.5fr); gap: 0.6rem; font-size: 0.7rem; }
.suite-assistant-draft-details dt { color: #64748b; }
.suite-assistant-draft-details dd { margin: 0; color: #1e293b; font-weight: 700; overflow-wrap: anywhere; }
.suite-assistant-draft-note { margin: 0.75rem 0 0; border-top: 1px solid #dbeafe; padding-top: 0.65rem; color: #64748b; font-size: 0.66rem; line-height: 1.45; }
.suite-assistant-draft-note.is-error,
.suite-assistant-draft-error { color: #b91c1c; }
.suite-assistant-draft-error { margin: 0.65rem 0 0; font-size: 0.7rem; }
.suite-assistant-draft-actions { display: flex; justify-content: flex-end; gap: 0.45rem; margin-top: 0.65rem; }
.suite-assistant-draft-button { border: 1px solid transparent; border-radius: 0.55rem; padding: 0.45rem 0.65rem; font-size: 0.68rem; font-weight: 750; cursor: pointer; }
.suite-assistant-draft-button:disabled { cursor: wait; opacity: 0.55; }
.suite-assistant-draft-button.is-secondary { border-color: #cbd5e1; background: #ffffff; color: #475569; }
.suite-assistant-draft-button.is-primary { background: #007eae; color: #ffffff; }
.suite-assistant-draft-button.is-primary:hover { background: #00638a; }

.suite-assistant-message.is-thinking {
    min-width: 12rem;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.72rem 0.9rem;
    border-color: #a7e2f7;
    background: linear-gradient(110deg, #ffffff 15%, #edfaff 50%, #ffffff 85%);
    background-size: 220% 100%;
    color: #00638a;
    animation: suite-assistant-thinking-shimmer 1.8s ease-in-out infinite;
}

.suite-assistant-thinking-orb {
    position: relative;
    width: 1.35rem;
    height: 1.35rem;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border: 1px solid rgb(5 157 217 / 0.35);
    border-radius: 999px;
    animation: suite-assistant-thinking-orbit 1.4s linear infinite;
}

.suite-assistant-thinking-orb::before,
.suite-assistant-thinking-orb::after {
    content: "";
    position: absolute;
    width: 0.28rem;
    height: 0.28rem;
    border-radius: 999px;
    background: #059dd9;
    box-shadow: 0 0 0.55rem rgb(5 157 217 / 0.55);
}
.suite-assistant-thinking-orb::before { top: -0.12rem; left: 0.48rem; }
.suite-assistant-thinking-orb::after { right: -0.12rem; bottom: 0.28rem; background: #059dd9; }
.suite-assistant-thinking-core {
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #007eae, #a855f7);
    box-shadow: 0 0 0 0.22rem rgb(5 157 217 / 0.12);
}
.suite-assistant-thinking-label { font-size: 0.78rem; font-weight: 700; }
.suite-assistant-thinking-dots { display: inline-flex; align-items: center; gap: 0.2rem; margin-left: auto; }
.suite-assistant-thinking-dots span {
    width: 0.28rem;
    height: 0.28rem;
    border-radius: 999px;
    background: #28b6e4;
    animation: suite-assistant-thinking-dot 1.05s ease-in-out infinite;
}
.suite-assistant-thinking-dots span:nth-child(2) { animation-delay: 140ms; }
.suite-assistant-thinking-dots span:nth-child(3) { animation-delay: 280ms; }

.suite-assistant-form {
    padding: 0.8rem;
    border-top: 1px solid #e5e7eb;
    background: #ffffff;
}

.suite-assistant-composer {
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
    padding: 0.35rem 0.35rem 0.35rem 0.7rem;
    border: 1px solid #d1d5db;
    border-radius: 0.85rem;
    background: #ffffff;
}

.suite-assistant-composer:focus-within { border-color: #28b6e4; box-shadow: 0 0 0 3px rgb(5 157 217 / 0.12); }

.suite-assistant-input {
    min-width: 0;
    min-height: 2.1rem;
    max-height: 7rem;
    flex: 1;
    resize: vertical;
    border: 0;
    background: transparent;
    color: #0b0c12;
    font: inherit;
    font-size: 0.8rem;
    line-height: 1.4;
    outline: 0;
}

.suite-assistant-input::placeholder { color: #9ca3af; }
.suite-assistant-input:disabled { opacity: 0.65; }

.suite-assistant-send {
    width: 2.25rem;
    height: 2.25rem;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 0.65rem;
    background: var(--suite-brand-600);
    color: #ffffff;
    cursor: pointer;
}

.suite-assistant-send:hover { background: var(--suite-brand-700); }
.suite-assistant-send:disabled { cursor: wait; opacity: 0.55; }
.suite-assistant-send svg { width: 1rem; height: 1rem; }
.is-submitting .suite-assistant-send svg { animation: suite-assistant-pulse 900ms ease-in-out infinite; }

.suite-assistant-privacy {
    margin: 0.45rem 0 0;
    color: #9ca3af;
    font-size: 0.62rem;
    text-align: center;
}

.suite-assistant-launcher {
    min-width: 3.5rem;
    height: 3.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0 1rem;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #007eae, #00638a);
    color: #ffffff;
    box-shadow: 0 12px 28px rgb(67 56 202 / 0.34);
    font-size: 0.78rem;
    font-weight: 750;
    cursor: pointer;
    pointer-events: auto;
    transition: transform 150ms ease, box-shadow 150ms ease;
}

.suite-assistant-launcher:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgb(67 56 202 / 0.4); }
.suite-assistant-launcher svg { width: 1.2rem; height: 1.2rem; }
.suite-assistant-launcher-close { display: none; }
.suite-assistant-floating.is-open .suite-assistant-launcher-chat { display: none; }
.suite-assistant-floating.is-open .suite-assistant-launcher-close { display: block; }

.suite-assistant-floating.is-fullscreen {
    inset: 0;
    z-index: 100;
    align-items: stretch;
}

.suite-assistant-floating.is-fullscreen .suite-assistant-panel {
    width: 100vw;
    height: 100dvh;
    max-height: none;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.suite-assistant-floating.is-fullscreen .suite-assistant-header { padding: 1.15rem 1.5rem 1rem; }
.suite-assistant-floating.is-fullscreen .suite-assistant-messages { padding: 1.5rem max(1.25rem, calc((100vw - 70rem) / 2)); }
.suite-assistant-floating.is-fullscreen .suite-assistant-home { padding: 1.5rem max(1.25rem, calc((100vw - 70rem) / 2)); }
.suite-assistant-floating.is-fullscreen .suite-assistant-message { max-width: min(52rem, 86%); }
.suite-assistant-floating.is-fullscreen .suite-assistant-form { padding: 1rem max(1.25rem, calc((100vw - 70rem) / 2)); }
.suite-assistant-floating.is-fullscreen .suite-assistant-launcher { display: none; }
html.suite-assistant-fullscreen-active { overflow: hidden; }

@keyframes suite-assistant-enter {
    from { opacity: 0; transform: translateY(0.6rem) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes suite-assistant-pulse {
    50% { opacity: 0.45; transform: scale(0.9); }
}

@keyframes suite-assistant-thinking-shimmer {
    0%, 100% { background-position: 100% 0; }
    50% { background-position: 0 0; }
}

@keyframes suite-assistant-thinking-orbit {
    to { transform: rotate(360deg); }
}

@keyframes suite-assistant-thinking-dot {
    0%, 70%, 100% { transform: translateY(0); opacity: 0.38; }
    35% { transform: translateY(-0.22rem); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .suite-assistant-message.is-thinking,
    .suite-assistant-thinking-orb,
    .suite-assistant-thinking-dots span { animation: none; }
}

@media (min-width: 640px) {
    .suite-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 639px) {
    .suite-assistant-floating {
        right: max(0.75rem, env(safe-area-inset-right));
        bottom: max(0.75rem, env(safe-area-inset-bottom));
        left: max(0.75rem, env(safe-area-inset-left));
    }

    .suite-assistant-panel {
        width: 100%;
        height: auto;
        max-height: calc(100vh - 6rem - env(safe-area-inset-bottom));
    }

    .suite-assistant-launcher { align-self: flex-end; }
    .suite-assistant-launcher-label { display: none; }
    .suite-assistant-messages { min-height: 10rem; }
    .suite-assistant-home-intro { flex-direction: column; }
    .suite-assistant-new-primary { width: 100%; justify-content: center; }
    .suite-assistant-session-side time { display: none; }
}

@media (min-width: 1024px) {
    .suite-sidebar-shell {
        position: sticky;
        top: 0;
        height: 100vh;
        flex: 0 0 var(--suite-sidebar-width);
        transform: none;
    }

    .suite-sidebar-backdrop { display: none !important; }
    .suite-topbar { padding-inline: 1.5rem; }
    .suite-page-header { flex-direction: row; align-items: flex-end; justify-content: space-between; }
    .suite-dashboard-grid { grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 0.7fr); }
}

@media (min-width: 1280px) {
    .suite-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .suite-chart-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}

/* Explanations work with mouse, keyboard focus and touch, including dark cards. */
.suite-hint { display: inline-block; position: relative; margin-inline-start: .3rem; cursor: help; color: #64748b; font-size: .85rem; font-weight: 500; text-transform: none; letter-spacing: normal; }
.suite-hint:focus { outline: 2px solid #059dd9; outline-offset: 3px; border-radius: 4px; }
.suite-hint-text { display: none; position: absolute; z-index: 80; top: 1.5rem; left: 50%; transform: translateX(-50%); width: min(270px, 70vw); white-space: normal; padding: .75rem; border: 1px solid #cbd5e1; border-radius: .6rem; background: #fff; color: #172033; box-shadow: 0 6px 20px #0f172a22; font-size: .8rem; line-height: 1.5; text-align: left; }
.suite-hint:hover .suite-hint-text, .suite-hint:focus .suite-hint-text { display: block; }
@media(max-width: 640px) { .suite-hint-text { position: fixed; left: 5vw; right: 5vw; top: auto; bottom: 1rem; transform: none; width: auto; } }

/* Projects workspace: actionable inbox and focused project approval. */
.project-workspace { width: 100%; max-width: none; margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.project-page-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.project-page-heading h1 { margin: 0; font-size: clamp(1.5rem, 2vw, 1.9rem); font-weight: 750; letter-spacing: -.03em; overflow-wrap: anywhere; }
.project-page-heading p:not(.project-eyebrow) { margin-top: .45rem; color: var(--suite-ink-500); font-size: .9rem; line-height: 1.6; }
.project-eyebrow { margin-bottom: .4rem; color: var(--suite-brand-600); font-size: .73rem; font-weight: 700; }
.project-tabs { overflow-x: auto; display: flex; align-items: center; gap: 1.5rem; border-bottom: 1px solid var(--suite-border); }
.project-tabs > a { display: inline-flex; align-items: center; gap: .55rem; padding: .85rem 0; border-bottom: 2px solid transparent; color: var(--suite-ink-500); font-size: .9rem; font-weight: 600; }
.project-tabs > a[aria-current] { border-color: var(--suite-brand-600); color: var(--suite-brand-600); }
.project-count, .project-nav-count { min-width: 1.4rem; padding: .1rem .45rem; border-radius: 99px; font-size: .72rem; text-align: center; font-weight: 750; background: var(--suite-brand-100); color: var(--suite-brand-700); }
.project-nav-count { margin-left: auto; background: #059dd9; color: white; }
.project-button { display: inline-flex; justify-content: center; align-items: center; gap: .6rem; min-height: 2.65rem; padding: .65rem 1rem; border: 1px solid transparent; border-radius: .65rem; background: var(--suite-brand-600); color: white; font-size: .85rem; font-weight: 650; line-height: 1.3; text-align: center; }
.project-button:hover { background: var(--suite-brand-700); }
.project-button.secondary { background: white; color: var(--suite-ink-700); border-color: var(--suite-border); }
.project-button.secondary:hover { border-color: #a7e2f7; background: #f9fafb; }
.project-button.danger { color: #b91c1c; background: white; border-color: #fecaca; }
.project-button:disabled { opacity: .55; cursor: wait; }
.project-button:focus-visible, .project-tabs a:focus-visible, .project-attention:focus-visible { outline: 3px solid #6bd0ef; outline-offset: 3px; }
.project-attention { display: flex; align-items: center; gap: 1rem; padding: 1.35rem 1.5rem; border: 1px solid #a7e2f7; border-radius: .9rem; background: linear-gradient(100deg, #edfaff, #fff); }
.project-attention-icon { flex-shrink: 0; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; color: var(--suite-brand-600); background: white; border: 1px solid #d2f0fb; border-radius: .75rem; }
.project-attention strong { display: block; font-size: 1rem; font-weight: 700; }
.project-attention strong + span { display: block; margin-top: .35rem; font-size: .82rem; line-height: 1.5; color: var(--suite-ink-500); }
.project-attention-action { margin-left: auto; flex-shrink: 0; color: var(--suite-brand-600); font-weight: 650; font-size: .85rem; }
.project-panel { min-width: 0; background: white; border: 1px solid var(--suite-border); border-radius: .9rem; box-shadow: var(--suite-shadow-sm); }
.project-panel h2 { font-size: 1rem; font-weight: 700; }
.project-queue-summary { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; justify-content: space-between; font-size: .8rem; color: var(--suite-ink-500); }
.project-queue-summary strong { color: var(--suite-ink-950); font-size: 1.05rem; }
.project-queue-filter { display: flex; gap: .7rem; flex-wrap: wrap; padding: 1rem 1.25rem; border-bottom: 1px solid var(--suite-border); }
.project-search { flex: 1; min-width: 12rem; }
.project-input { display: block; width: 100%; min-height: 2.8rem; border: 1px solid #d1d5db; border-radius: .65rem; padding: .65rem .8rem; background: white; color: var(--suite-ink-950); font: inherit; font-size: .9rem; line-height: 1.5; }
.project-input:focus { outline: none; border-color: #28b6e4; box-shadow: 0 0 0 3px #059dd91a; }
.project-input[aria-invalid="true"] { border-color: #ef4444; }
.project-queue-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.project-queue-table th { padding: .85rem 1.25rem; text-align: left; font-size: .75rem; font-weight: 600; color: var(--suite-ink-500); background: #f9fafb; }
.project-queue-table td { padding: 1.05rem 1.25rem; border-top: 1px solid #f1f2f5; vertical-align: middle; }
.project-queue-table tr:hover td { background: #fafbff; }
.project-row-title { color: var(--suite-ink-950); font-weight: 650; }
.project-row-title:hover { color: var(--suite-brand-600); }
.project-muted { display: block; color: var(--suite-ink-500); font-size: .8rem; line-height: 1.55; margin-top: .3rem; }
.project-amount { white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 550; }
.project-task-dot { display: inline-block; width: .42rem; height: .42rem; border-radius: 50%; margin-right: .45rem; background: #f59e0b; vertical-align: middle; }
.project-row-action { text-align: right; }
.project-row-action .project-button { min-height: 2.2rem; padding: .45rem .85rem; }
.project-queue-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; border-top: 1px solid var(--suite-border); padding: 1rem 1.25rem; font-size: .8rem; color: var(--suite-ink-500); }
.project-queue-footer nav { display: flex; gap: 1rem; }
.project-queue-footer a { color: var(--suite-brand-600); font-weight: 600; }
.project-empty { padding: 3rem 1rem; text-align: center; }
.project-empty p { color: var(--suite-ink-500); margin: .65rem 0 1.25rem; }
.project-back, .project-text-button { font-size: .85rem; color: var(--suite-brand-600); font-weight: 600; }
.project-text-button { display: inline-block; margin-top: .7rem; }
.project-review-layout { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: 1.5rem; align-items: start; }
.project-review-main { display: grid; gap: 1.25rem; min-width: 0; }
.project-form-section { padding: 1.6rem; }
.project-form-section + .project-form-section { border-top: 1px solid var(--suite-border); }
.project-form-section h2 { display: flex; align-items: center; gap: .7rem; margin-bottom: 1.25rem; }
.project-step { width: 1.65rem; height: 1.65rem; display: grid; place-items: center; font-size: .75rem; font-weight: 700; color: var(--suite-brand-600); background: var(--suite-brand-50); border-radius: 50%; }
.project-field + .project-field, .project-override-fields, .project-override-fields + .project-field { margin-top: 1.15rem; }
.project-field > label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .5rem; color: var(--suite-ink-700); }
.project-field .suite-search-select-input { min-height: 2.8rem; font-size: .9rem; }
.project-field-help { color: var(--suite-ink-500); font-size: .8rem; line-height: 1.6; margin: .4rem 0 .65rem; }
.project-approval-footer { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; padding: 1.3rem 1.6rem; background: #fafbff; border-top: 1px solid var(--suite-border); border-radius: 0 0 .9rem .9rem; }
.project-approval-footer p { color: var(--suite-ink-500); font-size: .78rem; max-width: 20rem; line-height: 1.6; }
.project-approval-footer .project-button { flex-shrink: 0; }
.project-source-panel { padding: 1.4rem; }
.project-source-panel dl > div { margin-top: 1.35rem; padding-top: 1.1rem; border-top: 1px solid #f1f2f5; }
.project-source-panel dt { color: var(--suite-ink-500); font-size: .78rem; margin-bottom: .45rem; }
.project-source-panel dd { font-size: .95rem; font-weight: 650; overflow-wrap: anywhere; }
.project-source-panel .project-source-amount { font-size: 1.6rem; font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.project-source-amount span { font-size: .9rem; font-weight: 500; }
.project-notice { padding: 1rem; font-size: .82rem; line-height: 1.6; border-radius: .7rem; }
.project-notice.warning { color: #92400e; background: #fffbeb; }
.project-notice.success { color: #047857; background: #ecfdf5; }
.project-notice.danger { color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; }
.project-source-panel .project-notice { margin-top: 1rem; }
.project-budget-help { font-size: .8rem; color: var(--suite-ink-500); margin-top: 1.5rem; line-height: 1.6; }
.project-budget-help summary { cursor: pointer; font-weight: 550; }
.project-budget-help p { margin-top: .6rem; }
.project-customer-panel { padding: 1.5rem; }
dialog.project-customer-panel { width: min(46rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); margin: auto; overflow-y: auto; box-shadow: var(--suite-shadow-md); }
dialog.project-customer-panel::backdrop { background: rgb(15 23 42 / .4); backdrop-filter: blur(2px); }
.project-customer-actions { display: flex; gap: .8rem; flex-wrap: wrap; align-items: center; }
.project-other-actions { color: var(--suite-ink-500); font-size: .8rem; }
.project-other-actions > summary { cursor: pointer; padding: .5rem 0; }
.project-other-actions-content { display: grid; gap: 1.5rem; padding: 1.25rem; margin-top: .5rem; border: 1px solid var(--suite-border); border-radius: .8rem; background: white; }
.project-other-actions-content form { display: grid; gap: .65rem; }
.project-other-actions-content h3 { font-size: .9rem; color: var(--suite-ink-700); font-weight: 650; }
.project-other-actions-content .project-button { justify-self: start; }
.project-workspace .errorlist { color: #b91c1c; font-size: .8rem; margin-top: .4rem; }
@media (max-width: 1100px) { .project-review-layout { grid-template-columns: minmax(0, 1fr) 17rem; } .project-attention { flex-wrap: wrap; } .project-attention-action { margin-left: 3.8rem; } }
@media (max-width: 760px) {
    .project-review-layout { grid-template-columns: 1fr; }
    .project-source-panel { grid-row: 1; }
    .project-source-panel dl { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
    .project-source-panel dl > div { margin-top: .5rem; }
    .project-source-panel dl > div:first-child { grid-column: 1 / -1; }
    .project-queue-table thead { display: none; }
    .project-queue-table, .project-queue-table tbody, .project-queue-table tr, .project-queue-table td { display: block; }
    .project-queue-table tr { padding: 1.15rem; border-top: 1px solid var(--suite-border); }
    .project-queue-table td { padding: .35rem 0; border: 0; }
    .project-queue-table td[data-label]::before { content: attr(data-label); color: var(--suite-ink-500); font-size: .75rem; display: inline-block; min-width: 10rem; }
    .project-row-action { text-align: left; margin-top: .5rem; }
    .project-form-section { padding: 1.2rem; }
    .project-approval-footer { flex-direction: column; align-items: stretch; padding: 1.2rem; }
    .project-approval-footer p { max-width: none; }
    .project-attention { padding: 1.1rem; }
    .project-attention-icon { display: none; }
    .project-attention-action { margin-left: 0; }
    .project-queue-filter > label { width: 100%; }
}

/* Decision-first project and management overview. */
.project-health { display: grid; gap: 1rem; }
.health-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.health-eyebrow { color: #64748b; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .5rem; }
.health-title { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.health-title h2, .health-section-title { font-size: 1.2rem; font-weight: 700; color: #0f172a; }
.health-reason { margin-top: .45rem; color: #64748b; font-size: .85rem; line-height: 1.55; }
.health-badge { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .65rem; border-radius: 999px; font-size: .73rem; font-weight: 650; white-space: nowrap; background: #f1f5f9; color: #475569; }
.health-badge::before { content: ''; width: .4rem; height: .4rem; border-radius: 50%; background: currentColor; }
.health-badge[data-state=healthy] { background: #ecfdf5; color: #047857; }
.health-badge[data-state=warning] { background: #fffbeb; color: #92400e; }
.health-badge[data-state=critical] { background: #fef2f2; color: #b91c1c; }
.health-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.health-card { --health-color: #64748b; padding: 1.4rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: white; min-width: 0; }
.health-card[data-state=healthy] { --health-color: #047857; }
.health-card[data-state=warning] { --health-color: #b45309; }
.health-card[data-state=critical] { --health-color: #b91c1c; }
.health-card-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.health-card-heading h3 { font-size: .85rem; font-weight: 600; color: #475569; }
.health-dot { flex: 0 0 .5rem; height: .5rem; border-radius: 50%; background: var(--health-color); }
.health-value { font-size: clamp(1.5rem,2vw,2.4rem); color: #0f172a; font-weight: 750; letter-spacing: -.045em; line-height: 1.15; margin: 1rem 0 .5rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.health-value span { font-size: 1rem; font-weight: 500; letter-spacing: 0; }
.health-caption { font-size: .78rem; line-height: 1.6; color: #64748b; }
.health-card-status { color: var(--health-color); font-size: .82rem; font-weight: 650; margin-top: 1rem; }
.health-footnote { display: block; margin-top: .8rem; font-size: .72rem; color: #64748b; line-height: 1.5; }
.health-link { color: #00638a; }
.health-progress { margin-top: 1rem; height: .4rem; background: #f1f5f9; border-radius: 99px; overflow: hidden; }
.health-progress span { display: block; height: 100%; background: var(--health-color); }
.health-counts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.health-counts > * { display: flex; gap: .85rem; align-items: center; padding: 1.2rem; background: white; border: 1px solid #e2e8f0; border-radius: .8rem; }
.health-counts strong { font-size: 1.8rem; font-weight: 700; }
.health-counts span { color: #475569; font-size: .8rem; }
.health-counts [data-state=critical] strong { color: #b91c1c; }
.health-counts [data-state=warning] strong { color: #b45309; }
.health-counts [data-state=healthy] strong { color: #047857; }
.health-table-card { background: white; border: 1px solid #e2e8f0; border-radius: 1rem; overflow: hidden; }
.health-table-card > .health-heading { padding: 1.25rem; }
.health-table { width: 100%; border-collapse: collapse; text-align: left; font-size: .85rem; }
.health-table th { background: #f8fafc; color: #64748b; font-size: .68rem; text-transform: uppercase; white-space: nowrap; }
.health-table th, .health-table td { padding: .9rem 1rem; border-bottom: 1px solid #f1f5f9; }
.health-table a { color: #00638a; font-weight: 600; }
.health-table small { display: block; font-size: .7rem; color: #64748b; margin-top: .3rem; max-width: 19rem; }
.report-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; font-size: 1rem; font-weight: 650; list-style: none; }
.report-disclosure > summary::-webkit-details-marker { display: none; }
.report-disclosure > summary::after { content: '+'; font-size: 1.3rem; color: #64748b; }
.report-disclosure[open] > summary::after { content: '−'; }
.report-disclosure > summary > span > small { display: block; margin-top: .35rem; color: #64748b; font-size: .78rem; font-weight: 400; }
.report-disclosure[open] > summary { margin-bottom: 1.5rem; }
.report-disclosure, #completion-details { scroll-margin-top: 6rem; }
.health-compact .suite-kpi-target-slot:empty, .health-compact .suite-sparkline-empty { display: none; }
.suite-sparkline-panel { flex-basis: 130px; height: 130px; }
.health-compact .suite-sparkline-panel { flex-basis: 130px; height: 130px; margin-top: .7rem; }
@media(max-width:1200px) { .health-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .health-grid { grid-template-columns: 1fr; } .health-counts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; } .health-counts > * { padding: .9rem; flex-wrap: wrap; gap: .35rem .6rem; } .health-card { padding: 1.15rem; } }
.health-compact .suite-kpi-target-slot[aria-hidden="true"] { display: none; }
.health-compact .suite-kpi-card { min-height: 0; }
.health-compact .suite-kpi-value { font-size: clamp(1.6rem,2vw,2.25rem); overflow-wrap: anywhere; }
@media(min-width:1280px) { .health-compact .suite-kpi-grid { grid-template-columns: repeat(4,minmax(0,1fr)); } }

/* Shared navigation and in-product guide. */
.suite-nav-group > summary { cursor: pointer; color: #9ca3af; font-size: .76rem; font-weight: 650; padding: .65rem .7rem; }
.suite-nav-group[open] > summary { color: #e2e8f0; }
.suite-nav-marker { width: 1rem; flex-shrink: 0; text-align: center; opacity: .8; }
.suite-guide-link { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; font-weight: 600; color: #059dd9; white-space: nowrap; }
.suite-sidebar-footer .suite-guide-link { color: #6bd0ef; font-size: .72rem; }
.guide-start { padding: 1.25rem; background: #edfaff; border-radius: 1rem; color: #3730a3; font-size: .9rem; line-height: 1.7; }
.guide-search { display: grid; gap: .5rem; font-size: .85rem; font-weight: 600; }
.guide-search input { width: 100%; border: 1px solid #cbd5e1; border-radius: .8rem; padding: .85rem 1rem; font-weight: 400; background: white; }
.guide-topic-nav, .guide-topic-links { display: flex; gap: .6rem 1rem; flex-wrap: wrap; font-size: .82rem; color: #00638a; }
.guide-topic-nav a { padding: .45rem .7rem; border: 1px solid #e2e8f0; border-radius: .5rem; background: white; }
.guide-topics { display: grid; gap: 1rem; }
.guide-topic { padding: 1.4rem; background: white; border: 1px solid #e2e8f0; border-radius: 1rem; }
.guide-topic ol { list-style: decimal; padding-left: 1.4rem; line-height: 1.8; color: #334155; font-size: .9rem; }
.guide-topic li + li { margin-top: .65rem; }
.guide-note { padding: 1rem; margin: 1.2rem 0; border-left: 3px solid #28b6e4; background: #f8fafc; font-size: .83rem; line-height: 1.7; color: #475569; }
.guide-directory { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,250px),1fr)); gap: 1rem; }
.guide-directory-card { display: grid; gap: .6rem; padding: 1.25rem; border: 1px solid #e2e8f0; border-radius: 1rem; background: white; }
.guide-directory-card:hover { border-color: #28b6e4; }
.guide-directory-card span { font-size: .85rem; color: #64748b; }
[data-guide-search] [hidden] { display: none !important; }
@media(max-width:480px) { .suite-topbar { gap: .5rem; } .suite-topbar .suite-guide-link span { display: none; } .suite-topbar .suite-guide-link { padding: .5rem; } }

.suite-logo-link {display:flex; align-items:center; gap:8px; color:white; font-weight:700;}
.suite-logo-link img {width:142px; height:auto;}
.suite-sidebar {background:#0b0c12;}
.suite-edit-form input:not([type=checkbox]), .suite-edit-form select, .suite-edit-form textarea {width:100%; padding:.6rem; border:1px solid #cbd5e1; border-radius:.5rem;}
.suite-edit-form label {display:block; font-weight:600; margin-bottom:.35rem;}
.suite-edit-form .errorlist {color:#b91c1c;}

/* Shared operational lists keep headers readable and rows easy to scan. */
.suite-data-table { min-width: 640px; text-align: left; border-collapse: collapse; }
.suite-data-table th { background: #f7f9fc; font-size: .75rem; font-weight: 700; color: #64748b; }
.suite-data-table th, .suite-data-table td { padding: .8rem .9rem; text-align: left; vertical-align: top; border-bottom: 1px solid #edf2f7; }
.suite-data-table tbody tr:hover { background: #f8fcfe; }
.suite-data-table td:last-child { white-space: nowrap; }

.sales-order-chart { position: relative; height: 260px; width: 100%; }
