:root {
    --centralis-text: #1F2927;
    --centralis-slate: #3B4144;
    --centralis-sage: #7EA38A;
    --centralis-accent: #A8C83A;
    --centralis-sand: #EEE5D3;
    --centralis-forest: #2F6F50;
    --centralis-primary: #2F6F50;
    --centralis-primary-dark: #173B2C;
    --centralis-primary-strong: #214F3B;
    --centralis-primary-soft: #D8E8DE;
    --centralis-accent-soft: #EEF6F0;
    --centralis-bg: #F4F3EE;
    --centralis-bg-strong: #ECEDE7;
    --centralis-bg-soft: #EFEEE8;
    --centralis-surface: #FFFFFF;
    --centralis-surface-raised: #FFFFFF;
    --centralis-line: #D5DED7;
    --centralis-surface-muted: #E9EEE8;
    --centralis-border: var(--centralis-line);
    --centralis-border-strong: #B9C8BE;
    --centralis-text-muted: #596964;
    --centralis-text-soft: #75807C;
    --centralis-green: var(--centralis-accent);
    --centralis-green-light: #EAF2D3;
    --centralis-green-dark: var(--centralis-slate);
    --centralis-danger: #A94F46;
    --centralis-danger-bg: #FBE8E5;
    --centralis-warning: #765617;
    --centralis-warning-bg: #FFF4D8;
    --centralis-success: #23633F;
    --centralis-success-bg: #E2F3E8;
    --centralis-info-bg: #EAF1EB;
    --centralis-radius: 8px;
    --centralis-control-radius: 8px;
    --centralis-shadow-soft: 0 8px 22px rgba(31, 77, 57, 0.07);
    --centralis-shadow-card: 0 12px 30px rgba(31, 77, 57, 0.10);
    --centralis-shadow-control: 0 5px 14px rgba(31, 77, 57, 0.12);
    --centralis-topbar-height: 78px;
    --centralis-shell-width: 1480px;
    --centralis-font-display: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --centralis-font-body: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

html {
    background: var(--centralis-bg);
}

body {
    min-height: 100vh;
    background: var(--centralis-bg);
    color: var(--centralis-text);
    font-family: var(--centralis-font-body);
    font-size: 0.98rem;
    letter-spacing: 0;
    line-height: 1.5;
}

::selection {
    background: var(--centralis-green-light);
    color: var(--centralis-text);
}

a {
    color: var(--centralis-slate);
}

a:hover {
    color: var(--centralis-sage);
}

.centralis-topbar {
    min-height: var(--centralis-topbar-height);
    background: rgba(255, 255, 255, 0.97);
    border-bottom: 1px solid rgba(33, 79, 59, 0.16);
    box-shadow: 0 8px 24px rgba(31, 77, 57, 0.08);
    backdrop-filter: blur(10px);
}

.centralis-topbar > .container-fluid {
    padding-inline: clamp(1rem, 2.4vw, 2.4rem);
}

.navbar {
    --bs-navbar-color: var(--centralis-text-muted);
    --bs-navbar-hover-color: var(--centralis-slate);
    --bs-navbar-active-color: var(--centralis-slate);
    --bs-navbar-toggler-border-color: var(--centralis-border);
}

.navbar-toggler {
    background: var(--centralis-surface-muted);
    border-color: var(--centralis-border-strong);
    border-radius: var(--centralis-control-radius);
    padding: 0.45rem 0.6rem;
}

.centralis-header-search {
    max-width: 360px;
    min-width: min(320px, 100%);
    position: relative;
    width: 100%;
}

.centralis-header-search .form-control {
    background: #F4F7F3;
    border-color: var(--centralis-border-strong);
    border-radius: var(--centralis-control-radius);
    font-size: 0.9rem;
    min-height: 44px;
    padding-left: 2.55rem;
}

.centralis-header-search .form-control:focus {
    background: var(--centralis-surface);
}

.centralis-header-search-icon {
    color: var(--centralis-primary);
    left: 0.95rem;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

.centralis-search-large .form-control {
    flex: 1 1 20rem;
    min-height: 2.6rem;
}

.search-result {
    border-bottom: 1px solid var(--centralis-border);
    padding: 0.75rem 0;
}

.search-result:first-child {
    padding-top: 0;
}

.search-result:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.centralis-brand {
    align-items: center;
    color: var(--centralis-text) !important;
    display: inline-flex;
    gap: 0.8rem;
    letter-spacing: 0;
    min-width: 258px;
    padding-block: 0.3rem;
    text-decoration: none;
}

.centralis-brand-logo {
    display: block;
    height: 54px;
    max-width: 190px;
    object-fit: contain;
    width: auto;
}

.centralis-brand-fallback {
    color: var(--centralis-slate);
    display: none;
    font-family: var(--centralis-font-display);
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1;
}

.centralis-brand-subtitle {
    border-left: 1px solid var(--centralis-border-strong);
    color: var(--centralis-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.25;
    max-width: 5.5rem;
    padding-left: 0.8rem;
}

.centralis-topbar .nav-link {
    color: var(--centralis-text-muted) !important;
    font-weight: 700;
}

.centralis-topbar .nav-link:hover {
    color: var(--centralis-slate) !important;
}

.centralis-visibility-switch {
    background: var(--centralis-surface-muted);
    border: 1px solid var(--centralis-border-strong);
    border-radius: var(--centralis-control-radius);
    padding: 0.25rem 0.35rem 0.25rem 0.75rem;
}

.centralis-visibility-switch label {
    color: var(--centralis-text-muted);
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
}

.centralis-visibility-switch .form-select {
    background-color: var(--centralis-surface);
    border-color: var(--centralis-border);
    border-radius: 6px;
    color: var(--centralis-text);
    min-height: 34px;
    min-width: 11.5rem;
}

.user-menu {
    align-items: center;
    color: var(--centralis-text);
    display: flex;
    gap: 0.6rem;
    margin-right: 0.35rem;
}

.user-avatar {
    align-items: center;
    background: var(--centralis-primary-strong);
    border: 3px solid var(--centralis-primary-soft);
    border-radius: 999px;
    box-shadow: 0 0 0 1px var(--centralis-border-strong);
    color: #fff;
    display: flex;
    font-weight: 700;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.centralis-user-name {
    font-size: 0.88rem;
    font-weight: 700;
    max-width: 10rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.centralis-logout-link {
    border-radius: var(--centralis-control-radius);
    padding-inline: 0.65rem !important;
}

.centralis-tabs-wrap {
    background: rgba(244, 243, 238, 0.98);
    border-bottom: 1px solid var(--centralis-border-strong);
    box-shadow: 0 4px 14px rgba(31, 77, 57, 0.04);
    left: 0;
    padding: 0.62rem 0.75rem;
    position: fixed;
    right: 0;
    top: var(--centralis-topbar-height);
    z-index: 1010;
}

.sidebar,
.navbar-dark,
.bg-dark {
    background: var(--centralis-slate) !important;
    color: #fff;
}

.centralis-tabs {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 0.45rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.centralis-tabs a {
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--centralis-control-radius);
    color: var(--centralis-text-muted);
    display: flex;
    font-weight: 700;
    gap: 0.45rem;
    line-height: 1.15;
    padding: 0.68rem 0.95rem;
    text-decoration: none;
    white-space: nowrap;
}

.centralis-tabs a:hover {
    background: var(--centralis-primary-soft);
    border-color: var(--centralis-border-strong);
    color: var(--centralis-primary-dark);
}

.centralis-tabs a.active {
    background: var(--centralis-primary-strong);
    border-color: var(--centralis-primary-strong);
    box-shadow: var(--centralis-shadow-control);
    color: #fff;
}

.centralis-tabs i {
    color: var(--centralis-sage);
}

.centralis-tabs a.active i {
    color: var(--centralis-accent);
}

.centralis-tabs-wrap .container-fluid {
    overflow-x: auto;
    scrollbar-color: var(--centralis-border-strong) transparent;
    scrollbar-width: thin;
}

.centralis-tabs-wrap .container-fluid:has(.dropdown.show) {
    overflow: visible;
}

.centralis-admin-menu {
    border-color: var(--centralis-border);
    border-radius: var(--centralis-radius);
    box-shadow: var(--centralis-shadow-card);
}

.dropdown-menu {
    background: var(--centralis-surface);
    border-color: var(--centralis-border);
    border-radius: var(--centralis-radius);
    box-shadow: var(--centralis-shadow-card);
    padding: 0.45rem;
}

.dropdown-item {
    border-radius: 6px;
    color: var(--centralis-text);
    font-weight: 600;
    padding: 0.58rem 0.72rem;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: var(--centralis-surface-muted);
    color: var(--centralis-slate);
}

.main-content {
    margin-top: 142px;
    padding: 2.25rem;
}

.app-content {
    margin: 0 auto;
    max-width: var(--centralis-shell-width);
}

.page-header {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    border-left: 4px solid var(--centralis-accent);
    margin-bottom: 1.75rem;
    min-height: 3.25rem;
    padding-left: 1rem;
}

.page-title {
    border: 0;
    color: var(--centralis-text);
    font-family: var(--centralis-font-display);
    font-size: clamp(1.55rem, 2vw, 2.1rem);
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.2;
    margin: 0;
    padding: 0;
}

.page-subtitle {
    color: var(--centralis-text-muted);
    margin-top: 0.35rem;
    max-width: 56rem;
}

.action-bar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: flex-end;
}

.card,
.centralis-card {
    background: var(--centralis-surface-raised);
    border: 1px solid var(--centralis-border);
    border-radius: var(--centralis-radius);
    box-shadow: var(--centralis-shadow-soft);
}

.card:hover,
.centralis-card:hover {
    box-shadow: var(--centralis-shadow-soft);
    transform: none;
}

.card-header,
.centralis-card-header {
    background: #F6F8F5;
    border-bottom: 1px solid var(--centralis-border);
    color: var(--centralis-text);
    font-family: var(--centralis-font-display);
    font-weight: 700;
    padding: 1rem 1.2rem;
}

.card-title {
    color: var(--centralis-text);
    font-family: var(--centralis-font-display);
    font-weight: 700;
}

.card-body,
.centralis-card-body {
    padding: 1.2rem;
}

.metric-card {
    background: var(--centralis-surface-raised);
    border: 1px solid var(--centralis-border);
    border-top: 3px solid var(--centralis-sage);
    border-radius: var(--centralis-radius);
    box-shadow: var(--centralis-shadow-soft);
    height: 100%;
    padding: 1.2rem;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.metric-card:hover {
    border-color: var(--centralis-border-strong);
    box-shadow: var(--centralis-shadow-card);
}

.metric-card .card-body {
    padding: 0;
}

.metric-label {
    color: var(--centralis-text-muted);
    font-size: 0.8rem;
    font-weight: 750;
    margin-bottom: 0.4rem;
}

.metric-value {
    color: var(--centralis-text);
    font-family: var(--centralis-font-display);
    font-size: 1.85rem;
    font-weight: 800;
    line-height: 1.15;
}

.commercial-section {
    background: var(--centralis-info-bg);
    border-color: var(--centralis-line);
}

.commercial-section .card-header {
    background: transparent;
}

.table,
.table-clean {
    --bs-table-bg: transparent;
    --bs-table-hover-bg: #F0F6F1;
    color: var(--centralis-text);
    margin-bottom: 0;
}

.js-clickable-row {
    cursor: pointer;
}

.table thead th,
.table-clean thead th {
    background: #E5EBE5;
    border-bottom: 1px solid var(--centralis-border-strong);
    color: #3F514B;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.table-hover > tbody > tr:hover > * {
    --bs-table-color-state: var(--centralis-text);
    --bs-table-bg-state: var(--centralis-surface-muted);
}

.table td,
.table th,
.table-clean td,
.table-clean th {
    border-color: var(--centralis-border);
    padding: 0.9rem 0.8rem;
    vertical-align: middle;
}

.table tbody tr:last-child td,
.table-clean tbody tr:last-child td {
    border-bottom-width: 0;
}

.table td a:not(.btn),
.table-clean td a:not(.btn) {
    color: var(--centralis-primary-dark);
    font-weight: 650;
}

.table td a:not(.btn):hover,
.table-clean td a:not(.btn):hover {
    color: var(--centralis-primary);
}

.list-filter-card {
    border-color: var(--centralis-border-strong);
    box-shadow: var(--centralis-shadow-soft);
}

.list-filter-card .collapse > .row {
    border-top: 1px solid var(--centralis-border);
    margin-top: 1rem !important;
    padding-top: 1rem;
}

.data-table-card {
    border-color: var(--centralis-border-strong);
    box-shadow: var(--centralis-shadow-card);
}

.offer-summary-table .summary-col-position {
    width: 6%;
}

.offer-summary-table .summary-col-type {
    width: 12%;
}

.offer-summary-table .summary-col-trade {
    width: 24%;
}

.offer-summary-table .summary-col-title {
    width: 33%;
}

.offer-summary-table .summary-col-net {
    width: 14%;
}

.offer-summary-table .summary-col-actions {
    width: 11%;
}

.offer-version-position-table .summary-col-position {
    width: 7%;
}

.offer-version-position-table .summary-col-type {
    width: 12%;
}

.offer-version-position-table .summary-col-trade {
    width: 25%;
}

.offer-version-position-table .summary-col-title {
    width: 40%;
}

.offer-version-position-table .summary-col-net {
    width: 16%;
}

.offer-versions-table {
    min-width: 760px;
    table-layout: fixed;
}

.offer-versions-table .offer-versions-col-version {
    width: 30%;
}

.offer-versions-table .offer-versions-col-date {
    width: 14%;
}

.offer-versions-table .offer-versions-col-amount {
    width: 13%;
}

.offer-versions-table .offer-versions-col-vat {
    width: 15%;
}

.offer-versions-table .offer-versions-col-actions {
    width: 9%;
}

.offer-versions-table .offer-versions-actions-cell {
    white-space: nowrap;
}

@media (max-width: 768px) {
    .offer-summary-table .summary-col-position,
    .offer-summary-table .summary-col-type,
    .offer-summary-table .summary-col-trade,
    .offer-summary-table .summary-col-title,
    .offer-summary-table .summary-col-net,
    .offer-summary-table .summary-col-actions {
        width: auto;
    }

    .offer-version-position-table .summary-col-position,
    .offer-version-position-table .summary-col-type,
    .offer-version-position-table .summary-col-trade,
    .offer-version-position-table .summary-col-title,
    .offer-version-position-table .summary-col-net {
        width: auto;
    }

    .offer-versions-table {
        table-layout: auto;
    }

    .offer-versions-table .offer-versions-col-version,
    .offer-versions-table .offer-versions-col-date,
    .offer-versions-table .offer-versions-col-amount,
    .offer-versions-table .offer-versions-col-vat,
    .offer-versions-table .offer-versions-col-actions {
        width: auto;
    }
}

.btn {
    border-radius: var(--centralis-control-radius);
    font-weight: 700;
    min-height: 2.35rem;
    padding: 0.56rem 0.9rem;
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, color 150ms ease;
}

.btn-sm {
    min-height: 2rem;
    padding: 0.4rem 0.7rem;
}

.btn-lg {
    border-radius: var(--centralis-radius);
    min-height: 3.15rem;
    padding: 0.75rem 1.15rem;
}

.btn-primary,
.btn-success,
.btn-info {
    background: var(--centralis-primary-strong);
    border-color: var(--centralis-primary-strong);
    box-shadow: var(--centralis-shadow-control);
    color: #fff;
}

.btn-primary:hover,
.btn-success:hover,
.btn-info:hover {
    background: var(--centralis-primary-dark);
    border-color: var(--centralis-primary-dark);
    box-shadow: 0 7px 17px rgba(23, 59, 44, 0.20);
    color: #fff;
}

.btn-outline-primary,
.btn-outline-success,
.btn-outline-info,
.btn-outline-warning,
.btn-outline-secondary {
    background: var(--centralis-surface);
    border-color: var(--centralis-border-strong);
    color: var(--centralis-primary-dark);
}

.btn-outline-primary:hover,
.btn-outline-success:hover,
.btn-outline-info:hover,
.btn-outline-warning:hover,
.btn-outline-secondary:hover {
    background: var(--centralis-primary-soft);
    border-color: var(--centralis-primary);
    color: var(--centralis-primary-dark);
}

.bg-primary,
.text-bg-primary {
    background: var(--centralis-primary-soft) !important;
    border-color: var(--centralis-line) !important;
    color: var(--centralis-primary-dark) !important;
}

.text-primary,
.link-primary {
    color: var(--centralis-slate) !important;
}

.btn-warning {
    background: var(--centralis-warning-bg);
    border-color: #D7BA65;
    color: #5E430F;
}

.btn-danger,
.btn-outline-danger:hover {
    background: var(--centralis-danger);
    border-color: var(--centralis-danger);
    color: #fff;
}

.btn-danger {
    box-shadow: 0 6px 15px rgba(169, 79, 70, 0.16);
}

.btn-outline-danger {
    background: var(--centralis-surface);
    border-color: #d9aaa4;
    color: var(--centralis-danger);
}

.btn:focus-visible,
.btn-check:focus + .btn,
.btn-check:checked + .btn {
    box-shadow: 0 0 0 0.18rem rgba(126, 163, 138, 0.24);
}

.status-pill,
.badge {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.76rem;
    font-weight: 800;
    gap: 0.25rem;
    line-height: 1.1;
    padding: 0.38rem 0.68rem;
}

.badge.bg-success,
.badge.text-bg-success {
    background: var(--centralis-success-bg) !important;
    border-color: #B9DCC6 !important;
    color: var(--centralis-success) !important;
}

.badge.bg-secondary,
.badge.text-bg-secondary {
    background: var(--centralis-surface-muted) !important;
    border-color: var(--centralis-border) !important;
    color: var(--centralis-text-muted) !important;
}

.status-pill-neutral,
.status-neutral,
.status-muted,
.text-bg-light,
.text-bg-secondary {
    background: #EEF1ED !important;
    border-color: #CBD6CE !important;
    color: #465853 !important;
}

.status-pill-success,
.status-success,
.text-bg-success,
.text-bg-primary {
    background: var(--centralis-success-bg) !important;
    border-color: #B9DCC6 !important;
    color: var(--centralis-success) !important;
}

.status-pill-warning,
.status-warning,
.text-bg-warning,
.text-bg-info {
    background: var(--centralis-warning-bg) !important;
    border-color: #E2C670 !important;
    color: var(--centralis-warning) !important;
}

.status-pill-danger,
.status-danger,
.text-bg-danger {
    background: var(--centralis-danger-bg) !important;
    border-color: #E3B2AD !important;
    color: var(--centralis-danger) !important;
}

.empty-state {
    color: var(--centralis-text-muted);
    padding: 2rem;
    text-align: center;
}

.form-section {
    background: var(--centralis-surface);
    border: 1px solid var(--centralis-border);
    border-radius: var(--centralis-radius);
    box-shadow: var(--centralis-shadow-soft);
    padding: 1.2rem;
}

.form-control,
.form-select {
    background-color: var(--centralis-surface);
    border-color: var(--centralis-border-strong);
    border-radius: var(--centralis-control-radius);
    color: var(--centralis-text);
    min-height: 44px;
    transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}

.form-control::placeholder {
    color: #8B9692;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--centralis-primary);
    box-shadow: 0 0 0 0.22rem rgba(47, 111, 80, 0.14);
}

.form-check-input {
    border-color: var(--centralis-border-strong);
    height: 1.08rem;
    width: 1.08rem;
}

.form-check-input:checked {
    background-color: var(--centralis-primary);
    border-color: var(--centralis-primary);
}

.form-check-input[type="radio"] {
    width: 20px;
    height: 20px;
    min-width: 20px;
    min-height: 20px;
    max-width: 20px;
    max-height: 20px;
    flex: 0 0 20px;
    padding: 0;
    border-radius: 50%;
}

/* Keep copy-only fields switchable even without JavaScript. */
@supports selector(form:has(input:checked)) {
    .offer-version-form:has(input[name="source_mode"][value="copy_existing"]:checked) .offer-copy-field {
        display: block !important;
    }

    .offer-version-form:not(:has(input[name="source_mode"][value="copy_existing"]:checked)) .offer-copy-field {
        display: none !important;
    }
}

.table .table-money {
    min-width: 10rem;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Leistungs- und Abrechnungstabellen: kompakte Beträge, abgegrenzte Gruppen. */
.service-overview-table .table-money {
    min-width: 0;
}

.service-overview-table thead th {
    white-space: normal;
}

.service-overview-table .service-group-heading th {
    background-color: var(--bs-tertiary-bg, #f2f4ef);
    padding-top: 0.8rem;
    padding-bottom: 0.6rem;
}

.hoai-fee-table {
    min-width: 760px;
}

.hoai-fee-table thead th {
    text-align: left;
}

.hoai-fee-table thead th.table-money,
.hoai-fee-table thead th.fee-net-column {
    text-align: left;
}

.hoai-fee-table--editor {
    min-width: 860px;
    table-layout: fixed;
}

.hoai-fee-table--editor .fee-name-column {
    width: 41%;
}

.hoai-fee-table--editor .fee-groups-column {
    width: 27%;
}

.hoai-fee-table .fee-zone-column {
    min-width: 7.5rem;
    white-space: nowrap;
}

.hoai-fee-table--editor .fee-zone-column {
    width: 10%;
}

.hoai-fee-table .fee-net-column,
.hoai-fee-table tbody td.table-money,
.hoai-fee-table tfoot td.table-money,
.hoai-fee-table tfoot th.table-money {
    white-space: nowrap;
}

.hoai-fee-table--editor .fee-net-column {
    width: 12%;
}

.hoai-fee-table .fee-actions-column {
    min-width: 7rem;
    white-space: nowrap;
}

.hoai-fee-table--editor .fee-actions-column {
    width: 10%;
}

.hoai-action-stack {
    display: grid;
    gap: 0.4rem;
    justify-items: stretch;
    min-width: 6.25rem;
}

.hoai-action-form {
    margin: 0;
    width: 100%;
}

.hoai-action-btn {
    align-items: center;
    display: inline-flex;
    font-size: 0.8125rem;
    justify-content: center;
    min-height: 2.35rem;
    min-width: 6.25rem;
    padding: 0.45rem 0.7rem;
    width: 100%;
}

.form-check-input:focus {
    border-color: var(--centralis-sage);
    box-shadow: 0 0 0 0.18rem rgba(126, 163, 138, 0.22);
}

.centralis-radio-stack {
    display: grid;
    gap: 0.55rem;
}

.centralis-radio-stack .form-check {
    align-items: center;
    background: var(--centralis-surface-muted);
    border: 1px solid var(--centralis-border);
    border-radius: var(--centralis-radius);
    display: flex;
    gap: 0.65rem;
    margin: 0;
    padding: 0.7rem 0.85rem;
}

.centralis-radio-stack .form-check-input {
    flex: 0 0 auto;
    margin: 0;
}

.form-label {
    color: var(--centralis-text);
    font-weight: 700;
}

.form-text {
    color: var(--centralis-text-muted);
}

.alert {
    border-left-width: 4px;
    border-radius: var(--centralis-radius);
    border-width: 1px;
    box-shadow: var(--centralis-shadow-soft);
    padding: 0.9rem 1rem;
}

.alert-info {
    background: var(--centralis-info-bg);
    border-color: var(--centralis-sage);
    color: var(--centralis-text);
}

.alert-warning,
.centralis-visibility-banner {
    background: var(--centralis-warning-bg);
    border-color: #D7BA65;
    color: var(--centralis-text);
}

.alert-success {
    background: var(--centralis-success-bg);
    border-color: #92C9A7;
    color: var(--centralis-success);
}

.alert-danger {
    background: var(--centralis-danger-bg);
    border-color: #D89891;
    color: var(--centralis-danger);
}

.list-group {
    --bs-list-group-bg: var(--centralis-surface);
    --bs-list-group-border-color: var(--centralis-border);
    --bs-list-group-color: var(--centralis-text);
    --bs-list-group-action-hover-bg: var(--centralis-surface-muted);
    --bs-list-group-action-hover-color: var(--centralis-slate);
    --bs-list-group-active-bg: var(--centralis-slate);
    --bs-list-group-active-border-color: var(--centralis-slate);
}

.accordion {
    --bs-accordion-bg: var(--centralis-surface);
    --bs-accordion-border-color: var(--centralis-border-strong);
    --bs-accordion-btn-color: var(--centralis-text);
    --bs-accordion-active-bg: var(--centralis-success-bg);
    --bs-accordion-active-color: var(--centralis-slate);
    --bs-accordion-btn-focus-border-color: var(--centralis-sage);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.18rem rgba(126, 163, 138, 0.22);
}

.accordion-item {
    border-color: var(--centralis-border);
}

.accordion-button {
    font-weight: 700;
    min-height: 3.25rem;
}

.accordion-button:not(.collapsed) {
    box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--centralis-border);
}

.accordion-button::after {
    border-radius: 999px;
}

.dashboard-search-card {
    border-color: var(--centralis-border-strong);
    box-shadow: var(--centralis-shadow-card);
}

.dashboard-search-card .form-label {
    color: var(--centralis-primary-dark);
}

.time-today-card {
    border-color: var(--centralis-border-strong);
    border-left: 4px solid var(--centralis-accent);
    box-shadow: var(--centralis-shadow-card);
}

.time-today-card .card-header {
    background: var(--centralis-primary-soft);
    color: var(--centralis-primary-dark);
}

.time-status-label {
    color: var(--centralis-text-muted);
    font-size: 0.78rem;
    font-weight: 750;
    margin-bottom: 0.2rem;
}

.time-status-value {
    color: var(--centralis-text);
    font-size: 1.15rem;
    font-weight: 800;
}

.time-action-group {
    align-items: stretch;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: flex-end;
}

.time-action-group form {
    display: flex;
}

.time-action-group .btn {
    min-width: 8.8rem;
}

.time-action-grid .btn {
    min-height: 3.35rem;
}

.time-entry-row {
    border-bottom: 1px solid var(--centralis-border);
    padding: 0.75rem 0;
}

.time-entry-row:first-child {
    padding-top: 0;
}

.time-entry-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.login-shell {
    align-items: center;
    background: var(--centralis-bg);
    display: flex;
    justify-content: center;
    min-height: 100vh;
    padding: 2rem;
}

.login-card {
    max-width: 420px;
    width: 100%;
}

.text-muted {
    color: var(--centralis-text-muted) !important;
}

.document-preview-sheet {
    background: var(--centralis-surface);
    border-color: var(--centralis-line);
    margin-inline: auto;
    max-width: 1040px;
}

.document-preview-sheet .card-body {
    padding: clamp(1.5rem, 3vw, 3rem);
}

.document-preview-sheet h2 {
    color: var(--centralis-text);
}

.document-preview-sheet table {
    border-color: var(--centralis-line);
}

.document-preview-sheet tfoot th {
    background: var(--centralis-bg-soft);
}

.offer-document-pages {
    display: grid;
    gap: 1.75rem;
}

.offer-document-paper {
    border: 1px solid var(--centralis-line);
    border-radius: 4px;
    box-shadow: 0 18px 46px rgba(43, 47, 50, 0.08);
    color: var(--centralis-text);
    display: flex;
    flex-direction: column;
    min-height: 1122px;
    max-width: 794px;
    overflow: hidden;
    padding: 2.55rem 3.1rem 1.45rem;
    position: relative;
}

.offer-document-paper--continuation {
    padding-top: 2.25rem;
}

.offer-document-paper::before {
    background: rgba(59, 65, 68, 0.035);
    content: "";
    height: 130%;
    left: 55%;
    position: absolute;
    top: -10%;
    transform: skewX(-17deg);
    width: 26%;
    z-index: 0;
}

.offer-document-paper::after {
    background: rgba(59, 65, 68, 0.03);
    content: "";
    height: 120%;
    left: 84%;
    position: absolute;
    top: -8%;
    transform: skewX(-17deg);
    width: 28%;
    z-index: 0;
}

.offer-document-paper > * {
    position: relative;
    z-index: 1;
}

.offer-paper-header {
    align-items: flex-start;
    display: flex;
    gap: 2rem;
    justify-content: space-between;
    margin-bottom: 3.25rem;
}

.offer-paper-claim-wrap {
    padding-left: 2.7rem;
    position: relative;
    padding-top: 0.9rem;
}

.offer-paper-green-bar {
    background: var(--centralis-accent);
    height: 4.6rem;
    left: 0;
    position: absolute;
    top: -1.6rem;
    width: 0.42rem;
}

.offer-paper-claim {
    color: var(--centralis-accent);
    font-size: 1.04rem;
    font-weight: 700;
    letter-spacing: 0;
}

.offer-paper-logo-block {
    align-items: center;
    color: #717477;
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    min-width: 270px;
}

.offer-paper-logo-mark {
    border-right: 1px dotted #9a9c9e;
    font-size: 4.85rem;
    font-weight: 300;
    letter-spacing: 0;
    line-height: 0.85;
    padding-right: 0.75rem;
}

.offer-paper-logo-text {
    display: grid;
    font-size: 1.1rem;
    line-height: 1.15;
}

.offer-paper-logo-text strong {
    color: #777a7d;
}

.offer-paper-logo-text small {
    color: #777a7d;
    font-size: 0.72rem;
    margin-top: 0.15rem;
}

.offer-paper-meta {
    border-left: 1px solid var(--centralis-line);
    display: grid;
    gap: 0.55rem;
    margin: 0;
    min-width: 220px;
    padding-left: 1rem;
}

.offer-paper-meta div {
    display: grid;
    gap: 0.1rem;
}

.offer-paper-meta dt {
    color: var(--centralis-text-muted);
    font-size: 0.78rem;
    font-weight: 600;
}

.offer-paper-meta dd {
    font-weight: 650;
    margin: 0;
}

.offer-paper-address-grid {
    align-items: flex-start;
    display: grid;
    gap: 3.3rem;
    grid-template-columns: minmax(0, 1fr) 205px;
    margin-bottom: 3.25rem;
}

.offer-paper-recipient {
    font-size: 1rem;
    line-height: 1.45;
    min-height: 9rem;
    max-width: 25rem;
}

.offer-paper-sender-line {
    border-bottom: 1px solid var(--centralis-line);
    color: var(--centralis-text-muted);
    font-size: 0.68rem;
    margin-bottom: 0.8rem;
    padding-bottom: 0.15rem;
}

.offer-paper-info-card {
    border-left: 0;
    font-size: 0.86rem;
    padding-left: 0;
}

.offer-paper-info-title {
    color: var(--centralis-text-muted);
    font-weight: 600;
    margin: 1.5rem 0 0.45rem;
}

.offer-paper-info-card dl,
.offer-paper-meta-line,
.offer-paper-hoai-basics,
.offer-paper-adjustments {
    margin: 0;
}

.offer-paper-info-card dl {
    display: grid;
    gap: 0.2rem;
}

.offer-paper-service-list {
    display: grid;
    gap: 0.35rem;
    margin: 0;
    padding-left: 1.1rem;
}

.offer-paper-service-list li {
    padding-left: 0.25rem;
}

.offer-paper-contact-name {
    font-size: 1rem;
    font-weight: 500;
}

.offer-paper-info-card dt,
.offer-paper-meta-line dt,
.offer-paper-hoai-basics dt,
.offer-paper-adjustments dt {
    color: var(--centralis-text-muted);
    font-weight: 600;
}

.offer-paper-info-card dd,
.offer-paper-meta-line dd,
.offer-paper-hoai-basics dd,
.offer-paper-adjustments dd {
    margin: 0;
}

.offer-paper-subject {
    border-bottom: 0;
    margin-bottom: 2.25rem;
    padding-bottom: 0;
}

.offer-paper-meta-line {
    display: grid;
    font-size: 0.82rem;
    gap: 0.8rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 1.35rem;
}

.offer-paper-meta-line div {
    border-top: 1px solid var(--centralis-line);
    padding-top: 0.45rem;
}

.offer-paper-subject h2 {
    font-size: 1.13rem;
    font-weight: 750;
    line-height: 1.35;
    margin-bottom: 0.55rem;
}

.offer-paper-version-line {
    color: var(--centralis-text-muted);
    font-size: 0.78rem;
    margin: 0 0 0.85rem;
}

.offer-paper-version-line span {
    color: var(--centralis-line-strong);
    margin: 0 0.35rem;
}

.offer-paper-building {
    font-size: 1rem;
    font-weight: 650;
    margin-bottom: 1.1rem;
}

.offer-paper-building-lines {
    display: inline-block;
    vertical-align: top;
}

.offer-paper-building-lines span {
    display: block;
}

.offer-paper-short-description {
    color: var(--centralis-text-muted);
    font-size: 0.9rem;
}

.offer-paper-body {
    font-size: 0.94rem;
    line-height: 1.58;
    max-width: 40.8rem;
}

.offer-paper-body--letter {
    flex: 1 1 auto;
}

.offer-paper-body--positions {
    flex: 1 1 auto;
    max-width: none;
}

.offer-paper-body p {
    margin-bottom: 1.05rem;
    text-align: justify;
}

.offer-paper-continuation-header {
    align-items: flex-start;
    border-bottom: 1px solid var(--centralis-line);
    display: flex;
    gap: 2rem;
    justify-content: space-between;
    margin-bottom: 1.4rem;
    padding-bottom: 0.8rem;
}

.offer-paper-continuation-title {
    color: var(--centralis-text);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.35;
}

.offer-paper-continuation-logo {
    border-left: 1px dotted #9a9c9e;
    color: #717477;
    font-size: 2.7rem;
    font-weight: 300;
    line-height: 0.9;
    padding-left: 0.65rem;
}

.offer-paper-main-title {
    color: var(--centralis-text);
    font-size: 1.05rem;
    font-weight: 750;
    margin: 0 0 1rem;
}

.offer-paper-section {
    margin: 1.9rem 0 1.6rem;
}

.offer-paper-section-title {
    color: var(--centralis-slate);
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.8rem;
}

.offer-paper-table-wrap {
    margin: 0.7rem 0 1.2rem;
}

.offer-paper-table {
    background: rgba(255, 255, 255, 0.82);
    font-size: 0.78rem;
}

.offer-paper-table--compact {
    table-layout: fixed;
}

.offer-paper-table--compact th:first-child,
.offer-paper-table--compact td:first-child {
    width: 3rem;
}

.offer-paper-table--compact th:nth-child(2),
.offer-paper-table--compact td:nth-child(2) {
    width: auto;
}

.offer-paper-table--compact th:nth-last-child(-n + 2),
.offer-paper-table--compact td:nth-last-child(-n + 2) {
    width: 7.5rem;
}

.offer-paper-position-table th:first-child,
.offer-paper-position-table td:first-child {
    width: 3.2rem;
}

.offer-paper-table th {
    color: var(--centralis-slate);
    font-weight: 650;
    white-space: nowrap;
}

.offer-paper-table td,
.offer-paper-table th {
    border-color: var(--centralis-line);
    padding: 0.48rem 0.42rem;
    vertical-align: top;
}

.offer-paper-item-title {
    font-weight: 700;
}

.offer-paper-item-meta,
.offer-paper-item-description {
    color: var(--centralis-text-muted);
    font-size: 0.74rem;
    line-height: 1.42;
    margin-top: 0.12rem;
}

.offer-paper-subtotal td {
    border-top: 2px solid var(--centralis-line);
    font-weight: 650;
}

.offer-paper-hoai-card {
    border-top: 1px solid var(--centralis-line);
    padding: 1rem 0 0.5rem;
}

.offer-paper-hoai-card + .offer-paper-hoai-card {
    margin-top: 1rem;
}

.offer-paper-hoai-title {
    align-items: baseline;
    display: flex;
    gap: 0.7rem;
    margin-bottom: 0.75rem;
}

.offer-paper-hoai-title span {
    color: var(--centralis-forest);
    font-size: 0.82rem;
    font-weight: 700;
}

.offer-paper-hoai-basics {
    display: grid;
    font-size: 0.82rem;
    gap: 0.65rem 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 0.95rem;
}

.offer-paper-hoai-wide {
    grid-column: 1 / -1;
}

.offer-paper-adjustments {
    border-top: 1px solid var(--centralis-line);
    display: grid;
    font-size: 0.82rem;
    gap: 0.5rem 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding-top: 0.65rem;
}

.offer-paper-adjustments dd {
    font-weight: 650;
}

.offer-paper-sums {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 2rem;
}

.offer-paper-sums dl {
    border-top: 1px solid var(--centralis-line);
    margin: 0;
    min-width: min(100%, 320px);
    padding-top: 0.5rem;
}

.offer-paper-sums div {
    align-items: baseline;
    display: flex;
    gap: 1.5rem;
    justify-content: space-between;
    padding: 0.25rem 0;
}

.offer-paper-sums dt {
    color: var(--centralis-text-muted);
    font-weight: 600;
}

.offer-paper-sums dd {
    font-weight: 650;
    margin: 0;
    text-align: right;
}

.offer-paper-total {
    border-top: 1px solid var(--centralis-line);
    margin-top: 0.35rem;
    padding-top: 0.55rem !important;
}

.offer-paper-signature {
    margin-top: 2.2rem;
}

.signature-line {
    border-bottom: 1px solid var(--centralis-text);
    height: 3.5rem;
    margin-bottom: 0.65rem;
    max-width: 260px;
}

.offer-paper-footer {
    border-top: 1px solid var(--centralis-line);
    color: var(--centralis-text-muted);
    display: grid;
    font-size: 0.58rem;
    gap: 1.05rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    line-height: 1.45;
    margin-top: auto;
    padding-top: 0.58rem;
    position: relative;
}

.offer-paper-page-number {
    color: var(--centralis-text);
    font-size: 0.64rem;
    font-weight: 700;
    position: absolute;
    right: 0;
    top: -1.45rem;
}

.offer-paper-footer div {
    display: grid;
    gap: 0.1rem;
}

/* Geschäftsführer-Dashboard */
.executive-dashboard-header {
    align-items: flex-end;
}

.dashboard-as-of {
    color: var(--centralis-text-muted);
    font-size: 0.82rem;
    font-weight: 600;
}

.executive-dashboard {
    display: grid;
    gap: 2.25rem;
}

.dashboard-block {
    border-top: 1px solid var(--centralis-border-strong);
    padding-top: 1.25rem;
}

.dashboard-block-header {
    align-items: flex-end;
    display: flex;
    justify-content: space-between;
    border-bottom: 2px solid var(--centralis-primary-soft);
    margin-bottom: 1rem;
    padding-bottom: 0.8rem;
}

.dashboard-block-header h2 {
    color: var(--centralis-primary-dark);
    font-size: 1.28rem;
    font-weight: 800;
    margin: 0;
}

.dashboard-block-kicker {
    color: var(--centralis-primary);
    font-size: 0.72rem;
    font-weight: 800;
    margin-bottom: 0.15rem;
}

.dashboard-metric-detail {
    color: var(--centralis-text-muted);
    font-size: 0.78rem;
    line-height: 1.4;
    margin-top: 0.5rem;
}

.dashboard-card-details {
    border-top: 1px solid var(--centralis-border);
    margin-top: 0.85rem;
    padding-top: 0.65rem;
}

.dashboard-card-details summary {
    color: var(--centralis-primary-dark);
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 700;
    list-style-position: inside;
    user-select: none;
}

.dashboard-card-details summary:hover,
.dashboard-card-details summary:focus-visible {
    color: var(--centralis-primary-dark);
}

.dashboard-card-details[open] summary {
    margin-bottom: 0.35rem;
}

.dashboard-card-details-body {
    display: grid;
    max-height: 19rem;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.dashboard-offer-item {
    border-bottom: 1px solid var(--centralis-border);
    color: var(--centralis-text);
    display: grid;
    gap: 0.15rem;
    padding: 0.65rem 0.1rem;
    text-decoration: none;
}

.dashboard-offer-item:last-child {
    border-bottom: 0;
}

.dashboard-offer-item:hover,
.dashboard-offer-item:focus-visible {
    color: var(--centralis-forest);
}

.dashboard-offer-item-title {
    align-items: baseline;
    display: flex;
    gap: 0.4rem;
}

.dashboard-offer-item-title span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-offer-item-customer,
.dashboard-offer-item-meta,
.dashboard-offer-item-note,
.dashboard-card-empty {
    color: var(--centralis-text-muted);
    font-size: 0.72rem;
}

.dashboard-card-empty {
    margin: 0;
    padding: 0.65rem 0.1rem 0;
}

.metric-value-money {
    font-size: 1.22rem;
}

.dashboard-data-note {
    background: var(--centralis-info-bg);
    border: 1px solid var(--centralis-border);
    border-left: 4px solid var(--centralis-sage);
    border-radius: 6px;
    color: #465853;
    font-size: 0.82rem;
    padding: 0.7rem 0.8rem;
}

.dashboard-compact-list {
    display: grid;
    gap: 0;
}

.dashboard-compact-row {
    align-items: center;
    border-bottom: 1px solid var(--centralis-border);
    color: var(--centralis-text);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.65rem 0;
    text-decoration: none;
}

.dashboard-compact-row:first-child {
    padding-top: 0;
}

.dashboard-compact-row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.dashboard-compact-row:hover {
    color: var(--centralis-forest);
}

.dashboard-compact-row small,
.dashboard-period-totals small,
.dashboard-timeline-label small {
    color: var(--centralis-text-muted);
    display: block;
    font-size: 0.75rem;
    font-weight: 400;
    margin-top: 0.12rem;
}

.dashboard-chart {
    display: grid;
    gap: 0.6rem;
}

.dashboard-chart-row {
    align-items: center;
    display: grid;
    font-size: 0.8rem;
    gap: 0.7rem;
    grid-template-columns: minmax(110px, 0.8fr) minmax(100px, 2fr) minmax(100px, auto);
}

.dashboard-chart-row strong {
    text-align: right;
}

.dashboard-chart-track {
    background: var(--centralis-surface-muted);
    border-radius: 999px;
    height: 0.55rem;
    overflow: hidden;
}

.dashboard-chart-bar {
    background: var(--centralis-primary);
    border-radius: 999px;
    display: block;
    height: 100%;
}

.dashboard-period-totals h3 {
    color: var(--centralis-text-muted);
    font-size: 0.78rem;
    margin-bottom: 0.45rem;
    text-transform: uppercase;
}

.dashboard-period-totals > div > div,
.dashboard-period-totals.card-body > div {
    align-items: center;
    border-bottom: 1px solid var(--centralis-border);
    display: flex;
    justify-content: space-between;
    padding: 0.42rem 0;
}

.dashboard-period-totals > div > div:last-child,
.dashboard-period-totals.card-body > div:last-child {
    border-bottom: 0;
}

.dashboard-accordion .accordion-item {
    border-color: var(--centralis-border);
}

.dashboard-accordion .accordion-button {
    align-items: center;
    background: var(--centralis-surface);
    color: var(--centralis-text);
    justify-content: space-between;
}

.dashboard-accordion .accordion-button:not(.collapsed) {
    background: var(--centralis-surface-muted);
    box-shadow: none;
    color: var(--centralis-forest);
}

.dashboard-role-counts {
    color: var(--centralis-text-muted);
    font-size: 0.78rem;
    font-weight: 500;
    margin-left: auto;
    margin-right: 1rem;
}

.dashboard-timeline {
    display: grid;
    gap: 0.75rem;
}

.dashboard-timeline-row {
    align-items: center;
    display: grid;
    gap: 0.8rem;
    grid-template-columns: minmax(150px, 0.85fr) minmax(180px, 2fr);
}

.dashboard-timeline-track {
    background: var(--centralis-surface-muted);
    border-radius: 999px;
    height: 0.6rem;
    overflow: hidden;
    position: relative;
}

.dashboard-timeline-bar {
    background: var(--centralis-sage);
    border-radius: 999px;
    height: 100%;
    min-width: 3px;
    position: absolute;
    top: 0;
}

.dashboard-timeline-bar.is-sickness {
    background: var(--centralis-text-muted);
}

.dashboard-timeline-bar.is-birthday {
    background: var(--centralis-accent);
}

.dashboard-warning-row {
    align-items: baseline;
    border-bottom: 1px solid var(--centralis-border);
    display: flex;
    gap: 1rem;
    padding: 0.5rem 0;
}

.dashboard-warning-row:last-child {
    border-bottom: 0;
}

.dashboard-data-quality li {
    color: var(--centralis-text-muted);
    margin-bottom: 0.35rem;
}

.dashboard-data-quality li:last-child {
    margin-bottom: 0;
}

.schedule-summary-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.schedule-metric-value {
    font-size: 1.3rem;
}

.schedule-progress {
    background: var(--centralis-surface-muted);
    border-radius: 999px;
    height: 0.42rem;
    margin-top: 0.45rem;
    overflow: hidden;
}

.schedule-progress span {
    background: var(--centralis-primary);
    display: block;
    height: 100%;
}

.schedule-next-deadline {
    background: var(--centralis-info-bg);
    border: 1px solid var(--centralis-border);
    border-left: 4px solid var(--centralis-primary);
    border-radius: var(--centralis-radius);
    display: grid;
    gap: 0.12rem;
    padding: 0.75rem 0.9rem;
}

.schedule-next-deadline > span,
.schedule-next-deadline small {
    color: var(--centralis-text-muted);
    font-size: 0.78rem;
}

.schedule-summary-row > td {
    background: var(--centralis-surface-muted);
    font-weight: 600;
}

.schedule-row-actions {
    align-items: center;
    display: inline-flex;
    gap: 0.3rem;
}

.schedule-row-actions form {
    margin: 0;
}

.schedule-gantt-scroll {
    overflow-x: auto;
    padding-bottom: 0.45rem;
}

.schedule-gantt {
    border: 1px solid var(--centralis-border);
    border-radius: var(--centralis-radius);
    min-width: 1080px;
    overflow: hidden;
}

.schedule-gantt-header,
.schedule-gantt-row {
    display: grid;
    grid-template-columns: 360px minmax(700px, 1fr);
}

.schedule-gantt-header {
    background: var(--centralis-surface-muted);
    border-bottom: 1px solid var(--centralis-border-strong);
}

.schedule-gantt-label-head,
.schedule-gantt-label {
    border-right: 1px solid var(--centralis-border);
    padding: 0.65rem 0.75rem;
}

.schedule-gantt-label-head {
    align-self: center;
    color: var(--centralis-text-muted);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.schedule-gantt-axis {
    min-height: 58px;
    position: relative;
}

.schedule-gantt-months,
.schedule-gantt-weeks {
    height: 50%;
    left: 0;
    position: absolute;
    right: 0;
}

.schedule-gantt-months {
    border-bottom: 1px solid var(--centralis-border);
    top: 0;
}

.schedule-gantt-weeks {
    bottom: 0;
}

.schedule-gantt-months span,
.schedule-gantt-weeks span {
    align-items: center;
    border-right: 1px solid var(--centralis-border);
    display: flex;
    font-size: 0.68rem;
    justify-content: center;
    overflow: hidden;
    position: absolute;
    top: 0;
    bottom: 0;
    white-space: nowrap;
}

.schedule-gantt-months span {
    color: var(--centralis-primary-dark);
    font-weight: 700;
}

.schedule-gantt-weeks span {
    color: var(--centralis-text-muted);
}

.schedule-gantt-row {
    border-bottom: 1px solid var(--centralis-border);
    min-height: 48px;
}

.schedule-gantt-row:last-child {
    border-bottom: 0;
}

.schedule-gantt-row.is-summary {
    background: var(--centralis-surface-muted);
}

.schedule-gantt-label {
    align-items: baseline;
    display: grid;
    gap: 0.45rem;
    grid-template-columns: 42px minmax(0, 1fr) auto;
}

.schedule-gantt-label > span,
.schedule-gantt-label small {
    color: var(--centralis-text-muted);
    font-size: 0.72rem;
}

.schedule-gantt-label strong {
    font-size: 0.82rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.schedule-gantt-track {
    background-image: repeating-linear-gradient(
        to right,
        transparent,
        transparent calc(10% - 1px),
        rgba(126, 163, 138, 0.12) calc(10% - 1px),
        rgba(126, 163, 138, 0.12) 10%
    );
    position: relative;
}

.schedule-gantt-bar {
    background: var(--centralis-sage);
    border-radius: 4px;
    height: 12px;
    min-width: 4px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.schedule-gantt-bar.is-summary {
    background: var(--centralis-primary-dark);
    height: 8px;
}

.schedule-gantt-bar.status-done {
    background: var(--centralis-success);
}

.schedule-gantt-bar.status-overdue {
    background: var(--centralis-danger);
}

.schedule-gantt-milestone {
    background: var(--centralis-primary);
    height: 13px;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    width: 13px;
}

@media (max-width: 991.98px) {
    .centralis-brand {
        min-width: 0;
    }

    .centralis-brand-logo {
        height: 48px;
    }

    .centralis-brand-subtitle {
        display: none;
    }

    .main-content {
        margin-top: 142px;
        padding: 1.25rem;
    }

    .page-header {
        display: block;
    }

    .action-bar {
        justify-content: flex-start;
        margin-top: 1rem;
    }

    .dashboard-role-counts {
        display: none;
    }

    .centralis-topbar .navbar-collapse {
        background: var(--centralis-surface);
        border: 1px solid var(--centralis-border);
        border-radius: var(--centralis-radius);
        box-shadow: var(--centralis-shadow-card);
        margin-top: 0.65rem;
        padding: 0.85rem;
    }

    .centralis-header-search {
        max-width: none;
    }

    .time-action-group {
        justify-content: flex-start;
    }
}

@media (max-width: 767.98px) {
    .offer-document-paper {
        min-height: auto;
        padding: 1.25rem;
    }

    .offer-paper-header {
        display: block;
        margin-bottom: 2rem;
    }

    .offer-paper-logo-block {
        justify-content: flex-start;
        margin-top: 1.5rem;
        min-width: 0;
    }

    .offer-paper-logo-mark {
        font-size: 3rem;
    }

    .offer-paper-address-grid,
    .offer-paper-meta-line,
    .offer-paper-hoai-basics,
    .offer-paper-adjustments,
    .offer-paper-footer {
        grid-template-columns: 1fr;
    }

    .offer-paper-address-grid {
        gap: 1.5rem;
    }

    .offer-paper-meta {
        border-left: 0;
        border-top: 1px solid var(--centralis-line);
        margin-top: 1rem;
        padding-left: 0;
        padding-top: 1rem;
    }

    .centralis-tabs-wrap {
        position: static;
        margin-top: var(--centralis-topbar-height);
    }

    .main-content {
        margin-top: 0;
    }

    .centralis-tabs a {
        font-size: 0.9rem;
        padding: 0.62rem 0.78rem;
    }

    .centralis-tabs-wrap {
        padding-inline: 0.25rem;
    }

    .centralis-tabs-wrap .container-fluid {
        padding-inline: 0.5rem;
    }

    .page-header {
        padding-left: 0.8rem;
    }

    .metric-value {
        font-size: 1.65rem;
    }

    .time-action-group form,
    .time-action-group .btn {
        width: 100%;
    }

    .dashboard-block-header {
        align-items: flex-start;
        gap: 0.75rem;
    }

    .dashboard-chart-row,
    .dashboard-timeline-row {
        grid-template-columns: 1fr;
    }

    .schedule-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-chart-row strong {
        text-align: left;
    }
}

.commercial-cost-cell {
    min-width: 17rem;
    white-space: nowrap;
}

.commercial-cost-inline {
    max-width: 22rem;
}

.commercial-cost-inline .form-control {
    min-width: 8.5rem;
    text-align: right;
}

.commercial-phase-row > td {
    background: var(--centralis-surface-subtle);
    padding: 0.7rem 1rem 1rem;
}

.commercial-phase-row summary {
    color: var(--centralis-forest);
    cursor: pointer;
    width: fit-content;
}

@media (max-width: 767.98px) {
    .commercial-cost-cell {
        min-width: 15rem;
    }
}

/* Compact local rich-text editor for version-bound offer copy. */
.centralis-rich-text {
    --rich-text-border: var(--centralis-border, #dde3dc);
    --rich-text-toolbar: var(--centralis-surface-subtle, #f8f7f2);
}

.centralis-rich-text__toolbar,
.centralis-rich-text__surface {
    display: none;
}

.centralis-rich-text.is-enhanced .centralis-rich-text__toolbar {
    align-items: center;
    background: var(--rich-text-toolbar);
    border: 1px solid var(--rich-text-border);
    border-bottom: 0;
    border-radius: 6px 6px 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    padding: 0.5rem;
}

.centralis-rich-text.is-enhanced .centralis-rich-text__surface {
    background: #fff;
    border: 1px solid var(--rich-text-border);
    border-radius: 0 0 6px 6px;
    display: block;
    font-family: Calibri, Arial, Helvetica, sans-serif;
    font-size: 11pt;
    line-height: 1.45;
    min-height: 12rem;
    overflow-y: auto;
    padding: 0.8rem 0.9rem;
}

.centralis-rich-text--intro.is-enhanced .centralis-rich-text__surface {
    min-height: 24rem;
}

.centralis-rich-text--closing.is-enhanced .centralis-rich-text__surface {
    min-height: 8rem;
}

.centralis-rich-text.is-enhanced .centralis-rich-text__source {
    display: none;
}

.centralis-rich-text__surface:focus {
    border-color: var(--centralis-sage, #7ea38a);
    box-shadow: 0 0 0 0.2rem rgba(126, 163, 138, 0.16);
    outline: 0;
}

.centralis-rich-text__surface p,
.centralis-rich-text__surface div {
    margin: 0 0 0.7em;
}

.centralis-rich-text__surface ul,
.centralis-rich-text__surface ol {
    margin: 0 0 0.7em;
    padding-left: 1.6rem;
}

.centralis-rich-text__select {
    min-height: 2rem;
    padding-block: 0.2rem;
}

.centralis-rich-text__select--font {
    width: 8rem;
}

.centralis-rich-text__select--size {
    width: 5.2rem;
}

.centralis-rich-text__button {
    align-items: center;
    background: #fff;
    border: 1px solid var(--rich-text-border);
    border-radius: 4px;
    color: var(--centralis-text, #2b2f32);
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    padding: 0;
    width: 2rem;
}

.centralis-rich-text__button:hover,
.centralis-rich-text__button:focus-visible {
    background: rgba(126, 163, 138, 0.14);
    border-color: var(--centralis-sage, #7ea38a);
    color: var(--centralis-forest, #315a3d);
}

.centralis-rich-text__separator {
    background: var(--rich-text-border);
    height: 1.5rem;
    margin-inline: 0.15rem;
    width: 1px;
}

.centralis-rich-text-output {
    font-family: Calibri, Arial, Helvetica, sans-serif;
    font-size: 11pt;
    line-height: 1.45;
}

.centralis-rich-text-output > :last-child {
    margin-bottom: 0;
}

@media (max-width: 767.98px) {
    .centralis-rich-text__separator {
        display: none;
    }

    .centralis-rich-text__select--font {
        width: 7rem;
    }
}
